diff --git a/CtsCoverage.mk b/CtsCoverage.mk
index 61ad9c9..8d67a99 100644
--- a/CtsCoverage.mk
+++ b/CtsCoverage.mk
@@ -24,7 +24,7 @@
 
 coverage_out := $(HOST_OUT)/cts-api-coverage
 
-api_text_description := $(SRC_API_DIR)/current.txt
+api_text_description := frameworks/base/api/current.txt
 api_xml_description := $(coverage_out)/api.xml
 $(api_xml_description) : $(api_text_description) $(APICHECK)
 	$(hide) echo "Converting API file to XML: $@"
diff --git a/CtsTestCaseList.mk b/CtsTestCaseList.mk
index 1065a34..45150c1 100644
--- a/CtsTestCaseList.mk
+++ b/CtsTestCaseList.mk
@@ -30,7 +30,6 @@
 
 cts_support_packages := \
 	CtsAccelerationTestStubs \
-	CtsDelegatingAccessibilityService \
 	CtsDeviceAdmin \
 	CtsThemeDeviceApp \
 	CtsMonkeyApp \
@@ -39,7 +38,7 @@
 	CtsTestStubs \
 	SignatureTest \
 	TestDeviceSetup \
-        CtsUiAutomatorApp \
+	CtsUiAutomatorApp \
 	$(cts_security_apps_list)
 
 cts_external_packages := \
@@ -64,8 +63,10 @@
 	CtsCalendarcommon2TestCases \
 	CtsContentTestCases \
 	CtsDatabaseTestCases \
+	CtsDisplayTestCases \
 	CtsDpiTestCases \
 	CtsDpiTestCases2 \
+	CtsDreamsTestCases \
 	CtsDrmTestCases \
 	CtsEffectTestCases \
 	CtsExampleTestCases \
@@ -74,9 +75,11 @@
 	CtsGraphics2TestCases \
 	CtsHardwareTestCases \
 	CtsJniTestCases \
+	CtsKeystoreTestCases \
 	CtsLocationTestCases \
 	CtsMediaStressTestCases \
 	CtsMediaTestCases \
+	CtsNativeOpenGLTestCases \
 	CtsNdefTestCases \
 	CtsNetTestCases \
 	CtsOpenGLTestCases \
@@ -108,10 +111,12 @@
 
 # Host side only tests
 cts_host_libraries := \
+	CtsAdbTests \
 	CtsAppSecurityTests \
 	CtsThemeHostTestCases \
 	CtsMonkeyTestCases
 
+
 # Native test executables that need to have associated test XMLs.
 cts_native_exes := \
 	NativeMediaTest_SL \
diff --git a/apps/CtsVerifier/Android.mk b/apps/CtsVerifier/Android.mk
index aa3f117..3b1674e 100644
--- a/apps/CtsVerifier/Android.mk
+++ b/apps/CtsVerifier/Android.mk
@@ -25,7 +25,8 @@
 
 LOCAL_PACKAGE_NAME := CtsVerifier
 
-LOCAL_JNI_SHARED_LIBRARIES := libctsverifier_jni libcameraanalyzer
+LOCAL_JNI_SHARED_LIBRARIES := libctsverifier_jni \
+	#libcameraanalyzer # Needed for the disabled CameraAnalyzer tests
 
 LOCAL_PROGUARD_FLAG_FILES := proguard.flags
 
@@ -36,7 +37,7 @@
 # Builds and launches CTS Verifier on a device.
 .PHONY: cts-verifier
 cts-verifier: CtsVerifier adb
-	adb install -r $(ANDROID_PRODUCT_OUT)/data/app/CtsVerifier.apk \
+	adb install -r $(PRODUCT_OUT)/data/app/CtsVerifier.apk \
 		&& adb shell "am start -n com.android.cts.verifier/.CtsVerifierActivity"
 
 #
diff --git a/apps/CtsVerifier/AndroidManifest.xml b/apps/CtsVerifier/AndroidManifest.xml
index 219116f..c3232bf 100644
--- a/apps/CtsVerifier/AndroidManifest.xml
+++ b/apps/CtsVerifier/AndroidManifest.xml
@@ -18,7 +18,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
       package="com.android.cts.verifier"
       android:versionCode="1"
-      android:versionName="4.2_r6">
+      android:versionName="4.3_r1">
 
     <!-- Using 10+ for more complete NFC support... -->
     <uses-sdk android:minSdkVersion="12"></uses-sdk>
@@ -311,7 +311,7 @@
 
             <meta-data android:name="test_required_features" android:value="android.hardware.camera.any"/>
         </activity>
-<!-- Experimental
+<!-- Experimental. If re-enabling, libcameraanalyzer must be included in the build
         <activity android:name=".camera.analyzer.CameraAnalyzerActivity"
                  android:label="@string/camera_analyzer"
                  android:screenOrientation="landscape">
@@ -363,7 +363,7 @@
             </intent-filter>
             <meta-data android:name="test_category" android:value="@string/test_category_camera" />
             <meta-data android:name="test_required_features" android:value="android.hardware.sensor.gyroscope" />
-            <meta-data android:name="test_required_features" android:value="android.hardware.camera"/>
+            <meta-data android:name="test_required_features" android:value="android.hardware.camera.any"/>
         </activity>
         <activity
             android:name=".camera.fov.DetermineFovActivity"
@@ -397,7 +397,27 @@
             <meta-data android:name="test_category" android:value="@string/test_category_networking" />
             <meta-data android:name="test_required_features" android:value="android.hardware.wifi.direct" />
         </activity>
+        
+        <activity android:name=".nls.NotificationListenerVerifierActivity"
+                android:label="@string/nls_test">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.cts.intent.category.MANUAL_TEST" />
+            </intent-filter>
+            <meta-data android:name="test_category" android:value="@string/test_category_notifications" />
+        </activity>
 
+        <service android:name=".nls.MockListener"
+                 android:exported="true"
+                 android:label="@string/nls_service_name"
+                 android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
+            <intent-filter>
+                <action android:name="android.service.notification.NotificationListenerService" />
+            </intent-filter>
+        </service>
+        
+        <service  android:name="nls.NotificationListenerVerifierActivity$DismissService"/>
+        
         <activity android:name=".p2p.GoNegRequesterTestListActivity"
                 android:label="@string/p2p_go_neg_requester"
                 android:configChanges="keyboardHidden|orientation|screenSize" />
diff --git a/apps/CtsVerifier/jni/cameraanalyzer/Android.mk b/apps/CtsVerifier/jni/cameraanalyzer/Android.mk
index 2859074..ed66992 100644
--- a/apps/CtsVerifier/jni/cameraanalyzer/Android.mk
+++ b/apps/CtsVerifier/jni/cameraanalyzer/Android.mk
@@ -35,6 +35,6 @@
 LOCAL_SHARED_LIBRARIES := libjnigraphics \
                           libstlport \
                           libcutils \
-                          libutils
+                          libutils liblog
 
 include $(BUILD_SHARED_LIBRARY)
diff --git a/apps/CtsVerifier/jni/cameraanalyzer/com_android_cts_verifier_camera_analyzer_CameraTests.cpp b/apps/CtsVerifier/jni/cameraanalyzer/com_android_cts_verifier_camera_analyzer_CameraTests.cpp
index 83f5c17..ed91233 100644
--- a/apps/CtsVerifier/jni/cameraanalyzer/com_android_cts_verifier_camera_analyzer_CameraTests.cpp
+++ b/apps/CtsVerifier/jni/cameraanalyzer/com_android_cts_verifier_camera_analyzer_CameraTests.cpp
@@ -51,7 +51,7 @@
             inputBitmap,
             reinterpret_cast<void**>(&inputBuffer));
 
-    if (result != ANDROID_BITMAP_RESUT_SUCCESS) {
+    if (result != ANDROID_BITMAP_RESULT_SUCCESS) {
         ALOGE("Unable to lock input bitmap");
     }
 
@@ -106,7 +106,7 @@
     long lp = (long)input_testing_image;
 
     result = AndroidBitmap_unlockPixels(env, inputBitmap);
-    if (result != ANDROID_BITMAP_RESUT_SUCCESS) {
+    if (result != ANDROID_BITMAP_RESULT_SUCCESS) {
         ALOGE("Unable to unlock input bitmap");
     }
 
@@ -200,14 +200,14 @@
                 outputBitmap,
                 reinterpret_cast<void**>(&outputBuffer) );
 
-        if (result != ANDROID_BITMAP_RESUT_SUCCESS) {
+        if (result != ANDROID_BITMAP_RESULT_SUCCESS) {
             ALOGE("Unable to lock output bitmap");
         }
 
         memcpy(outputBuffer, outputImage, outputWidth * outputHeight * 4);
 
         result = AndroidBitmap_unlockPixels(env, outputBitmap);
-        if (result != ANDROID_BITMAP_RESUT_SUCCESS) {
+        if (result != ANDROID_BITMAP_RESULT_SUCCESS) {
             ALOGE("Unable to unlock output bitmap");
         }
 
diff --git a/apps/CtsVerifier/res/layout/camera_fov_calibration_photo_capture.xml b/apps/CtsVerifier/res/layout/camera_fov_calibration_photo_capture.xml
index 712960f..c142b15 100644
--- a/apps/CtsVerifier/res/layout/camera_fov_calibration_photo_capture.xml
+++ b/apps/CtsVerifier/res/layout/camera_fov_calibration_photo_capture.xml
@@ -26,6 +26,13 @@
             android:layout_alignParentLeft="true"
             android:text="@string/camera_fov_settings_button_text" />
 
+        <Button
+            android:id="@+id/camera_fov_change_preview_size_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/camera_fov_settings_button"
+            android:text="@string/camera_fov_change_preview_sizes_button_text" />
+
         <TextView
             android:id="@+id/camera_fov_tap_to_take_photo"
             android:layout_width="wrap_content"
diff --git a/apps/CtsVerifier/res/layout/nls_item.xml b/apps/CtsVerifier/res/layout/nls_item.xml
new file mode 100644
index 0000000..3ced3cc
--- /dev/null
+++ b/apps/CtsVerifier/res/layout/nls_item.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2013 The Android Open Source Project
+
+     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.
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content" >
+
+    <ImageView
+        android:id="@+id/nls_status"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentTop="true"
+        android:layout_marginTop="10dip"
+        android:contentDescription="@string/pass_button_text"
+        android:padding="10dip"
+        android:src="@drawable/fs_indeterminate" />
+
+    <TextView
+        android:id="@+id/nls_instructions"
+        style="@style/InstructionsSmallFont"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:layout_alignParentTop="true"
+        android:layout_toRightOf="@id/nls_status"
+        android:text="@string/nls_enable_service" />
+
+    <Button
+        android:id="@+id/nls_launch_settings"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:layout_below="@id/nls_instructions"
+        android:layout_marginLeft="20dip"
+        android:layout_marginRight="20dip"
+        android:layout_toRightOf="@id/nls_status"
+        android:onClick="launchSettings"
+        android:text="@string/nls_start_settings" />
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/apps/CtsVerifier/res/layout/nls_main.xml b/apps/CtsVerifier/res/layout/nls_main.xml
new file mode 100644
index 0000000..0ee4cbf
--- /dev/null
+++ b/apps/CtsVerifier/res/layout/nls_main.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2013 The Android Open Source Project
+
+     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.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:padding="10dip" >
+
+    <ScrollView
+        android:id="@+id/nls_test_scroller"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:orientation="vertical"
+        android:padding="10dip" >
+
+        <LinearLayout
+            android:id="@+id/nls_test_items"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical" >
+        </LinearLayout>
+    </ScrollView>
+
+    <include
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_weight="0"
+        layout="@layout/pass_fail_buttons" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/apps/CtsVerifier/res/values/strings.xml b/apps/CtsVerifier/res/values/strings.xml
index 78d544b..57ad890 100644
--- a/apps/CtsVerifier/res/values/strings.xml
+++ b/apps/CtsVerifier/res/values/strings.xml
@@ -564,8 +564,15 @@
     <string name="camera_fov_target_distance_description">The distance in centimeters from the
         device to the target pattern.</string>
     <string name="camera_fov_settings_button_text">Setup</string>
+    <string name="camera_fov_change_preview_sizes_button_text">Preview Sizes</string>
+    <string name="camera_fov_choose_preview_size_for_camera">Choose preview size for camera %1$s</string>
     <string name="camera_fov_displayed_fov_label">Displayed FOV : </string>
     <string name="camera_fov_reported_fov_label">Reported  FOV : </string>
+    <string name="camera_fov_reported_fov_problem">Reported FOV problem</string>
+    <string name="camera_fov_reported_fov_problem_message">The reported FOV before takePicture() is
+        different from when onPictureTaken() is called.\nAs picture size has not been changed, the
+        reported FOV should be identical at both times.\n\nFOV before/after: %1$f / %2$f</string>
+
     <string name="camera_fov_panorama_wallpaper_title">Photo Sphere Live Wallpaper</string>
     <string name="camera_fov_panorama_wallpaper_description">This live wallapper displays photo
         spheres.</string>
@@ -579,6 +586,26 @@
     <string name="camera_fov_enable_compass_mode_description">If enabled, the panorama orients
         itself according to the current rotation of the device.</string>
 
+    <string name="test_category_notifications">Notifications</string>
+    <string name="nls_test">Notification Listener Test</string>
+    <string name="nls_service_name">Notification Listener for CTS Verifier</string>
+    <string name="nls_info">This test checks that a NotificationListenerService can be enabled
+        and disabled, and that once enabled the service is able to receive notificaitons and
+        dismiss them.
+    </string>
+    <string name="nls_enable_service">Please enable \"Notification Listener for CTS Verifier\" 
+        under Security > Notification Access and return here.</string>
+    <string name="nls_disable_service">Please disable \"Notification Listener for CTS Verifier\" 
+        under Security > Notification Access and return here.</string>
+    <string name="nls_start_settings">Launch Settings</string>
+    <string name="nls_service_started">Service should start once enabled.</string>
+    <string name="nls_note_received">Check that notification was received.</string>
+    <string name="nls_payload_intact">Check that notification payload was intact.</string>
+    <string name="nls_clear_one">Check that service can clear a notification.</string>
+    <string name="nls_clear_all">Check that service can clear all notifications.</string>
+    <string name="nls_service_stopped">Service should stop once disabled.</string>
+    <string name="nls_note_missed">Check that notification was not received.</string>
+    
     <!-- Strings for Widget -->
     <string name="widget_framework_test">Widget Framework Test</string>
     <string name="widget_framework_test_info">This test checks some basic features of the widget
diff --git a/apps/CtsVerifier/res/values/styles.xml b/apps/CtsVerifier/res/values/styles.xml
index 0dfd02d..16fa87f 100644
--- a/apps/CtsVerifier/res/values/styles.xml
+++ b/apps/CtsVerifier/res/values/styles.xml
@@ -3,6 +3,8 @@
     <style name="InstructionsFont" parent="@android:style/TextAppearance.Large">
         <item name="android:padding">10dp</item>
     </style>
+    <style name="InstructionsSmallFont" parent="@android:style/TextAppearance.Medium">
+    </style>
     <style name="MessageRow">
         <item name="android:gravity">center_vertical</item>
         <item name="android:textSize">18sp</item>
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/camera/fov/CtsTestHelper.java b/apps/CtsVerifier/src/com/android/cts/verifier/camera/fov/CtsTestHelper.java
index c080729..bca217b 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/camera/fov/CtsTestHelper.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/camera/fov/CtsTestHelper.java
@@ -50,7 +50,7 @@
         String details = "PhotoSphere FOV test result:\n";
         for (int i = 0; i < resolutions.size(); i++) {
             SelectableResolution res = resolutions.get(i);
-            details += "Resolution:" + res.width + 'x' + res.height
+            details += "Camera:" + res.cameraId + ", Resolution:" + res.width + 'x' + res.height
                     + ", Measured FOV = " + res.measuredFOV + '\n';
 
         }
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/camera/fov/PhotoCaptureActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/camera/fov/PhotoCaptureActivity.java
index c5957c0..05013ed 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/camera/fov/PhotoCaptureActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/camera/fov/PhotoCaptureActivity.java
@@ -17,12 +17,15 @@
 package com.android.cts.verifier.camera.fov;
 
 import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
 import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.graphics.Color;
 import android.hardware.Camera;
 import android.hardware.Camera.PictureCallback;
-import android.hardware.Camera.Size;
+import android.hardware.Camera.ShutterCallback;
 import android.os.Bundle;
 import android.os.PowerManager;
 import android.os.PowerManager.WakeLock;
@@ -52,11 +55,12 @@
  * An activity for showing the camera preview and taking a picture.
  */
 public class PhotoCaptureActivity extends Activity
-implements PictureCallback, SurfaceHolder.Callback {
+        implements PictureCallback, SurfaceHolder.Callback {
     private static final String TAG = PhotoCaptureActivity.class.getSimpleName();
     private static final int FOV_REQUEST_CODE = 1006;
     private static final String PICTURE_FILENAME = "photo.jpg";
     private static float mReportedFovDegrees = 0;
+    private float mReportedFovPrePictureTaken = -1;
 
     private SurfaceView mPreview;
     private SurfaceHolder mSurfaceHolder;
@@ -64,11 +68,24 @@
     private List<SelectableResolution> mSupportedResolutions;
     private ArrayAdapter<SelectableResolution> mAdapter;
 
+    private int mCameraId;
     private Camera mCamera;
+    private Size mSurfaceSize;
     private boolean mCameraInitialized = false;
     private boolean mPreviewActive = false;
     private int mResolutionSpinnerIndex = -1;
     private WakeLock mWakeLock;
+    private long shutterStartTime;
+
+    private ArrayList<Integer> mPreviewSizeCamerasToProcess = new ArrayList<Integer>();
+
+    private Dialog mActiveDialog;
+
+    /**
+     * Selected preview size per camera. If null, preview size should be
+     * automatically detected.
+     */
+    private Size[] mPreviewSizes = null;
 
     public static File getPictureFile(Context context) {
         return new File(context.getExternalCacheDir(), PICTURE_FILENAME);
@@ -103,11 +120,40 @@
             }
         });
 
+        Button changePreviewSizeButton = (Button) findViewById(
+                R.id.camera_fov_change_preview_size_button);
+        changePreviewSizeButton.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                // Stop camera until preview sizes have been obtained.
+                if (mCamera != null) {
+                    mCamera.stopPreview();
+                    mCamera.release();
+                    mCamera = null;
+                }
+
+                mPreviewSizeCamerasToProcess.clear();
+                mPreviewSizes =  new Size[Camera.getNumberOfCameras()];
+                for (int cameraId = 0; cameraId < Camera.getNumberOfCameras(); ++cameraId) {
+                    mPreviewSizeCamerasToProcess.add(cameraId);
+                }
+                showNextDialogToChoosePreviewSize();
+            }
+        });
+
         View previewView = findViewById(R.id.camera_fov_preview_overlay);
         previewView.setOnClickListener(new OnClickListener() {
             @Override
             public void onClick(View v) {
-                mCamera.takePicture(null, null, PhotoCaptureActivity.this);
+                shutterStartTime = System.currentTimeMillis();
+
+                mCamera.takePicture(new ShutterCallback() {
+                    @Override
+                    public void onShutter() {
+                        long dT = System.currentTimeMillis() - shutterStartTime;
+                        Log.d("CTS", "Shutter Lag: " + dT);
+                    }
+                }, null, PhotoCaptureActivity.this);
             }
         });
 
@@ -119,10 +165,17 @@
                 if (mSupportedResolutions != null) {
                     SelectableResolution resolution = mSupportedResolutions.get(position);
 
+                    switchToCamera(resolution.cameraId, false);
+
                     Camera.Parameters params = mCamera.getParameters();
                     params.setPictureSize(resolution.width, resolution.height);
                     mCamera.setParameters(params);
+
+                    // It should be guaranteed that the FOV is correctly updated after setParameters().
+                    mReportedFovPrePictureTaken = mCamera.getParameters().getHorizontalViewAngle();
+
                     mResolutionSpinnerIndex = position;
+                    initializeCamera();
                 }
             }
 
@@ -131,54 +184,38 @@
         });
     }
 
-    /**
-     * Get the best supported focus mode.
-     *
-     * @param camera - Android camera object.
-     * @return the best supported focus mode.
-     */
-    protected String getFocusMode(Camera camera) {
-        List<String> modes = camera.getParameters().getSupportedFocusModes();
-        if (modes != null) {
-            if (modes.contains(Camera.Parameters.FOCUS_MODE_INFINITY)) {
-                Log.v(TAG, "Using Focus mode infinity");
-                return Camera.Parameters.FOCUS_MODE_INFINITY;
-            }
-            if (modes.contains(Camera.Parameters.FOCUS_MODE_FIXED)) {
-                Log.v(TAG, "Using Focus mode fixed");
-                return Camera.Parameters.FOCUS_MODE_FIXED;
-            }
-        }
-        Log.v(TAG, "Using Focus mode auto.");
-        return Camera.Parameters.FOCUS_MODE_AUTO;
-    }
-
     @Override
     protected void onResume() {
         super.onResume();
-        mCamera = Camera.open();
-
         // Keep the device from going to sleep.
         PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
         mWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, TAG);
         mWakeLock.acquire();
 
         if (mSupportedResolutions == null) {
-            // Get the supported picture sizes and fill the spinner.
-            List<Size> supportedSizes =
-                    mCamera.getParameters().getSupportedPictureSizes();
             mSupportedResolutions = new ArrayList<SelectableResolution>();
-            for (Size size : supportedSizes) {
-                mSupportedResolutions.add(
-                        new SelectableResolution(size.width, size.height));
+            int numCameras = Camera.getNumberOfCameras();
+            for (int cameraId = 0; cameraId < numCameras; ++cameraId) {
+                Camera camera = Camera.open(cameraId);
+
+                // Get the supported picture sizes and fill the spinner.
+                List<Camera.Size> supportedSizes =
+                        camera.getParameters().getSupportedPictureSizes();
+                for (Camera.Size size : supportedSizes) {
+                    mSupportedResolutions.add(
+                            new SelectableResolution(cameraId, size.width, size.height));
+                }
+                camera.release();
             }
         }
 
-        // find teh first untested one.
+        // Find the first untested entry.
         for (mResolutionSpinnerIndex = 0;
                 mResolutionSpinnerIndex < mSupportedResolutions.size();
                 mResolutionSpinnerIndex++) {
-            if (!mSupportedResolutions.get(mResolutionSpinnerIndex).tested) break;
+            if (!mSupportedResolutions.get(mResolutionSpinnerIndex).tested) {
+                break;
+            }
         }
 
         mAdapter = new ArrayAdapter<SelectableResolution>(
@@ -192,15 +229,16 @@
 
     @Override
     public void onPause() {
-        if (mPreviewActive) {
-            mCamera.stopPreview();
-        }
+        if (mCamera != null) {
+            if (mPreviewActive) {
+                mCamera.stopPreview();
+            }
 
-        mCamera.release();
-        mCamera = null;
+            mCamera.release();
+            mCamera = null;
+        }
         mPreviewActive = false;
         mWakeLock.release();
-
         super.onPause();
     }
 
@@ -209,26 +247,55 @@
         File pictureFile = getPictureFile(this);
         Camera.Parameters params = mCamera.getParameters();
         mReportedFovDegrees = params.getHorizontalViewAngle();
+
+        // Show error if FOV does not match the value reported before takePicture().
+        if (mReportedFovPrePictureTaken != mReportedFovDegrees) {
+            mSupportedResolutions.get(mResolutionSpinnerIndex).tested = true;
+            mSupportedResolutions.get(mResolutionSpinnerIndex).passed = false;
+
+            AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
+            dialogBuilder.setTitle(R.string.camera_fov_reported_fov_problem);
+            dialogBuilder.setNeutralButton(
+                    android.R.string.ok, new DialogInterface.OnClickListener() {
+                @Override
+                public void onClick(DialogInterface dialog, int which) {
+                    if (mActiveDialog != null) {
+                        mActiveDialog.dismiss();
+                        mActiveDialog = null;
+                        initializeCamera();
+                    }
+                }
+            });
+
+            String message  = getResources().getString(R.string.camera_fov_reported_fov_problem_message);
+            dialogBuilder.setMessage(String.format(message, mReportedFovPrePictureTaken, mReportedFovDegrees));
+            mActiveDialog = dialogBuilder.show();
+            return;
+        }
+
         try {
             FileOutputStream fos = new FileOutputStream(pictureFile);
             fos.write(data);
             fos.close();
             Log.d(TAG, "File saved to " + pictureFile.getAbsolutePath());
 
-            // Start activity which will use he taken picture to determine the FOV.
+            // Start activity which will use the taken picture to determine the
+            // FOV.
             startActivityForResult(new Intent(this, DetermineFovActivity.class),
                     FOV_REQUEST_CODE + mResolutionSpinnerIndex, null);
         } catch (IOException e) {
             Log.e(TAG, "Could not save picture file.", e);
             Toast.makeText(this, "Could not save picture file: " + e.getMessage(),
-                           Toast.LENGTH_LONG).show();
+                    Toast.LENGTH_LONG).show();
             return;
         }
     }
 
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (resultCode != RESULT_OK) return;
+        if (resultCode != RESULT_OK) {
+            return;
+        }
         int testIndex = requestCode - FOV_REQUEST_CODE;
         SelectableResolution res = mSupportedResolutions.get(testIndex);
         res.tested = true;
@@ -260,10 +327,10 @@
         }
         if (allPassed) {
             TestResult.setPassedResult(this, getClass().getName(),
-                                       CtsTestHelper.getTestDetails(mSupportedResolutions));
+                    CtsTestHelper.getTestDetails(mSupportedResolutions));
         } else {
             TestResult.setFailedResult(this, getClass().getName(),
-                                       CtsTestHelper.getTestDetails(mSupportedResolutions));
+                    CtsTestHelper.getTestDetails(mSupportedResolutions));
         }
         finish();
     }
@@ -271,32 +338,8 @@
     @Override
     public void surfaceChanged(
             SurfaceHolder holder, int format, int width, int height) {
-        if (mCamera == null || mSurfaceHolder.getSurface() == null) {
-            return;
-        }
-
-        try {
-            mCamera.setPreviewDisplay(mSurfaceHolder);
-        } catch (Throwable t) {
-            Log.e("TAG", "Could not set preview display", t);
-            Toast.makeText(this, t.getMessage(), Toast.LENGTH_LONG).show();
-            return;
-        }
-
-        // The picture size is taken and set from the spinner selection callback.
-        Camera.Parameters params = mCamera.getParameters();
-        params.setJpegThumbnailSize(0, 0);
-        params.setJpegQuality(100);
-        params.setFocusMode(getFocusMode(mCamera));
-        params.setZoom(0);
-
-        Camera.Size size = getBestPreviewSize(width, height, params);
-        if (size != null) {
-            params.setPreviewSize(size.width, size.height);
-            mCamera.setParameters(params);
-            mCameraInitialized = true;
-        }
-        startPreview();
+        mSurfaceSize = new Size(width, height);
+        initializeCamera();
     }
 
     @Override
@@ -309,6 +352,78 @@
         // Nothing to do.
     }
 
+    private void showNextDialogToChoosePreviewSize() {
+        final int cameraId = mPreviewSizeCamerasToProcess.remove(0);
+
+        Camera camera = Camera.open(cameraId);
+        final List<Camera.Size> sizes = camera.getParameters()
+                .getSupportedPreviewSizes();
+        String[] choices = new String[sizes.size()];
+        for (int i = 0; i < sizes.size(); ++i) {
+            Camera.Size size = sizes.get(i);
+            choices[i] = size.width + " x " + size.height;
+        }
+
+        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
+        String dialogTitle = String.format(
+                getResources().getString(R.string.camera_fov_choose_preview_size_for_camera),
+                cameraId);
+        builder.setTitle(
+                dialogTitle).
+                setOnCancelListener(new DialogInterface.OnCancelListener() {
+                    @Override
+                    public void onCancel(DialogInterface arg0) {
+                        // User cancelled preview size selection.
+                        mPreviewSizes = null;
+                        switchToCamera(mCameraId, true);
+                    }
+                }).
+                setSingleChoiceItems(choices, 0, new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        Camera.Size size = sizes.get(which);
+                        mPreviewSizes[cameraId] = new Size(
+                                size.width, size.height);
+                        dialog.dismiss();
+
+                        if (mPreviewSizeCamerasToProcess.isEmpty()) {
+                            // We're done, re-initialize camera.
+                            switchToCamera(mCameraId, true);
+                        } else {
+                            // Process other cameras.
+                            showNextDialogToChoosePreviewSize();
+                        }
+                    }
+                }).create().show();
+        camera.release();
+    }
+
+    private void initializeCamera() {
+        if (mCamera == null || mSurfaceHolder.getSurface() == null) {
+            return;
+        }
+
+        try {
+            mCamera.setPreviewDisplay(mSurfaceHolder);
+        } catch (Throwable t) {
+            Log.e("TAG", "Could not set preview display", t);
+            Toast.makeText(this, t.getMessage(), Toast.LENGTH_LONG).show();
+            return;
+        }
+        Camera.Parameters params = setCameraParams(mCamera);
+
+        // Either use chosen preview size for current camera or automatically
+        // choose preview size based on view dimensions.
+        Size selectedPreviewSize = (mPreviewSizes != null) ? mPreviewSizes[mCameraId] :
+            getBestPreviewSize(mSurfaceSize.width, mSurfaceSize.height, params);
+        if (selectedPreviewSize != null) {
+            params.setPreviewSize(selectedPreviewSize.width, selectedPreviewSize.height);
+            mCamera.setParameters(params);
+            mCameraInitialized = true;
+        }
+        startPreview();
+    }
+
     private void startPreview() {
         if (mCameraInitialized && mCamera != null) {
             mCamera.startPreview();
@@ -316,24 +431,74 @@
         }
     }
 
-    private Camera.Size getBestPreviewSize(
+    private void switchToCamera(int cameraId, boolean initializeCamera) {
+        if (mCamera != null) {
+            mCamera.stopPreview();
+            mCamera.release();
+        }
+        mCameraId = cameraId;
+        mCamera = Camera.open(cameraId);
+
+        if (initializeCamera){
+          initializeCamera();
+        }
+    }
+
+    /**
+     * Get the best supported focus mode.
+     *
+     * @param camera - Android camera object.
+     * @return the best supported focus mode.
+     */
+    private static String getFocusMode(Camera camera) {
+        List<String> modes = camera.getParameters().getSupportedFocusModes();
+        if (modes != null) {
+            if (modes.contains(Camera.Parameters.FOCUS_MODE_INFINITY)) {
+                Log.v(TAG, "Using Focus mode infinity");
+                return Camera.Parameters.FOCUS_MODE_INFINITY;
+            }
+            if (modes.contains(Camera.Parameters.FOCUS_MODE_FIXED)) {
+                Log.v(TAG, "Using Focus mode fixed");
+                return Camera.Parameters.FOCUS_MODE_FIXED;
+            }
+        }
+        Log.v(TAG, "Using Focus mode auto.");
+        return Camera.Parameters.FOCUS_MODE_AUTO;
+    }
+
+    /**
+     * Set the common camera parameters on the given camera and returns the
+     * parameter object for further modification, if needed.
+     */
+    private static Camera.Parameters setCameraParams(Camera camera) {
+        // The picture size is taken and set from the spinner selection
+        // callback.
+        Camera.Parameters params = camera.getParameters();
+        params.setJpegThumbnailSize(0, 0);
+        params.setJpegQuality(100);
+        params.setFocusMode(getFocusMode(camera));
+        params.setZoom(0);
+        return params;
+    }
+
+    private Size getBestPreviewSize(
             int width, int height, Camera.Parameters parameters) {
-        Camera.Size result = null;
+        Size result = null;
 
         for (Camera.Size size : parameters.getSupportedPreviewSizes()) {
             if (size.width <= width && size.height <= height) {
                 if (result == null) {
-                    result = size;
+                    result = new Size(size.width, size.height);
                 } else {
                     int resultArea = result.width * result.height;
                     int newArea = size.width * size.height;
 
                     if (newArea > resultArea) {
-                        result = size;
+                        result = new Size(size.width, size.height);
                     }
                 }
             }
         }
-        return (result);
+        return result;
     }
 }
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/camera/fov/SelectableResolution.java b/apps/CtsVerifier/src/com/android/cts/verifier/camera/fov/SelectableResolution.java
index 5e87eee..9057dbf 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/camera/fov/SelectableResolution.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/camera/fov/SelectableResolution.java
@@ -20,21 +20,24 @@
  * A resolution to be used in the adapter that feeds the resolution spinner.
  */
 public class SelectableResolution {
+    public final int cameraId;
     public final int width;
     public final int height;
     public boolean passed;
     public boolean tested;
     public float measuredFOV;
 
-    public SelectableResolution(int width, int height) {
+    public SelectableResolution(int cameraId, int width, int height) {
+        this.cameraId = cameraId;
         this.width = width;
         this.height = height;
-        passed = false;
-        tested = false;
+        this.passed = false;
+        this.tested = false;
     }
 
     @Override
     public String toString() {
-        return width + " x " + height + " - " + (!tested ? "untested" : "done");
+        return "Cam " + cameraId + ": " + width + " x " + height + " - "
+                + (!tested ? "untested" : "done");
     }
 }
diff --git a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DeviceReportLog.java b/apps/CtsVerifier/src/com/android/cts/verifier/camera/fov/Size.java
similarity index 62%
rename from suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DeviceReportLog.java
rename to apps/CtsVerifier/src/com/android/cts/verifier/camera/fov/Size.java
index 9747ca5..709478b 100644
--- a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DeviceReportLog.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/camera/fov/Size.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2013 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,19 +14,17 @@
  * limitations under the License.
  */
 
-package com.android.pts.util;
+package com.android.cts.verifier.camera.fov;
 
-import android.util.Log;
+/**
+ * Simple immutable class for keeping a size.
+ */
+public class Size {
+    public final int width;
+    public final int height;
 
-public class DeviceReportLog extends ReportLog {
-    private static final String TAG = "PtsReport";
-
-    DeviceReportLog() {
-        mDepth = 4;
-    }
-
-    @Override
-    protected void printLog(String msg) {
-        Log.i(TAG, msg);
+    public Size(int width, int height) {
+        this.width = width;
+        this.height = height;
     }
 }
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/features/FeatureSummaryActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/features/FeatureSummaryActivity.java
index 84d64cf..1a68b48 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/features/FeatureSummaryActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/features/FeatureSummaryActivity.java
@@ -172,8 +172,12 @@
             new Feature(PackageManager.FEATURE_TELEVISION, false),
     };
 
-    public static final Feature[] ALL_JELLY_BEAN_MR1_FEATURES = {
-            new Feature(PackageManager.FEATURE_CAMERA_ANY, false),
+    public static final Feature[] ALL_JELLY_BEAN_MR2_FEATURES = {
+            new Feature("android.software.app_widgets", false),
+            new Feature("android.software.input_methods", false),
+            new Feature("android.software.home_screen", false),
+            new Feature("android.hardware.bluetooth_le", false),
+            new Feature("android.hardware.camera.any", false),
     };
 
     @Override
@@ -206,8 +210,8 @@
 
         // add features from latest to last so that the latest requirements are put in the set first
         int apiVersion = Build.VERSION.SDK_INT;
-        if (apiVersion >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
-            Collections.addAll(features, ALL_JELLY_BEAN_MR1_FEATURES);
+        if (apiVersion >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
+            Collections.addAll(features, ALL_JELLY_BEAN_MR2_FEATURES);
         }
         if (apiVersion >= Build.VERSION_CODES.JELLY_BEAN) {
             Collections.addAll(features, ALL_JELLY_BEAN_FEATURES);
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/location/GpsTestActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/location/GpsTestActivity.java
index bb12b2b..da1ee88 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/location/GpsTestActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/location/GpsTestActivity.java
@@ -95,25 +95,25 @@
             case 1:
                 // Test GPS with minTime = 0
                 mLocationVerifier = new LocationVerifier(this, mLocationManager,
-                        LocationManager.GPS_PROVIDER, 0, 8);
+                        LocationManager.GPS_PROVIDER, 0, 8, false);
                 mLocationVerifier.start();
                 break;
             case 2:
                 // Test GPS with minTime = 1s
                 mLocationVerifier = new LocationVerifier(this, mLocationManager,
-                        LocationManager.GPS_PROVIDER, 1 * 1000, 8);
+                        LocationManager.GPS_PROVIDER, 1 * 1000, 8, false);
                 mLocationVerifier.start();
                 break;
             case 3:
                 // Test GPS with minTime = 5s
                 mLocationVerifier = new LocationVerifier(this, mLocationManager,
-                        LocationManager.GPS_PROVIDER, 5 * 1000, 8);
+                        LocationManager.GPS_PROVIDER, 5 * 1000, 8, false);
                 mLocationVerifier.start();
                 break;
             case 4:
                 // Test GPS with minTime = 15s
                 mLocationVerifier = new LocationVerifier(this, mLocationManager,
-                        LocationManager.GPS_PROVIDER, 15 * 1000, 8);
+                        LocationManager.GPS_PROVIDER, 15 * 1000, 8, false);
                 mLocationVerifier.start();
                 break;
             case 5:
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/location/LocationVerifier.java b/apps/CtsVerifier/src/com/android/cts/verifier/location/LocationVerifier.java
index 3315ba3..ee4068f 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/location/LocationVerifier.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/location/LocationVerifier.java
@@ -66,6 +66,7 @@
     private long mLastPassiveTimestamp = -1;
     private int mNumActiveUpdates = 0;
     private int mNumPassiveUpdates = 0;
+    private boolean mIsMockProvider = false;
     private boolean mRunning = false;
     private boolean mActiveLocationArrive = false;
 
@@ -89,6 +90,11 @@
                 mCb.log("(ignored) active " + mProvider + " update (" + delta + "ms)");
                 return;
             }
+            if (location.isFromMockProvider() != mIsMockProvider) {
+                fail("location coming from \"" + mProvider +
+                        "\" provider reports isFromMockProvider() to be " +
+                        location.isFromMockProvider());
+            }
 
             mActiveDeltas.add(delta);
             mCb.log("active " + mProvider + " update (" + delta + "ms)");
@@ -171,6 +177,11 @@
                 mCb.log("(ignored) passive " + mProvider + " update (" + delta + "ms)");
                 return;
             }
+            if (location.isFromMockProvider() != mIsMockProvider) {
+                fail("location coming from \"" + mProvider +
+                        "\" provider reports isFromMockProvider() to be " +
+                        location.isFromMockProvider());
+            }
 
             mPassiveDeltas.add(delta);
             mCb.log("passive " + mProvider + " update (" + delta + "ms)");
@@ -185,7 +196,7 @@
     }
 
     public LocationVerifier(PassFailLog cb, LocationManager locationManager,
-            String provider, long requestedInterval, int numUpdates) {
+            String provider, long requestedInterval, int numUpdates, boolean isMockProvider) {
         mProvider = provider;
         mInterval = requestedInterval;
         // timeout at 60 seconds after interval time
@@ -196,6 +207,7 @@
         mHandler = new Handler(this);
         mActiveListener = new ActiveListener();
         mPassiveListener = new PassiveListener();
+        mIsMockProvider = isMockProvider;
     }
 
     public void start() {
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/nls/MockListener.java b/apps/CtsVerifier/src/com/android/cts/verifier/nls/MockListener.java
new file mode 100644
index 0000000..8549214
--- /dev/null
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/nls/MockListener.java
@@ -0,0 +1,230 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+package com.android.cts.verifier.nls;
+
+import android.app.Activity;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Bundle;
+import android.service.notification.NotificationListenerService;
+import android.service.notification.StatusBarNotification;
+import android.util.Log;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class MockListener extends NotificationListenerService {
+    static final String TAG = "MockListener";
+
+    static final String SERVICE_CHECK = "android.service.notification.cts.SERVICE_CHECK";
+    static final String SERVICE_POSTED = "android.service.notification.cts.SERVICE_POSTED";
+    static final String SERVICE_PAYLOADS = "android.service.notification.cts.SERVICE_PAYLOADS";
+    static final String SERVICE_REMOVED = "android.service.notification.cts.SERVICE_REMOVED";
+    static final String SERVICE_RESET = "android.service.notification.cts.SERVICE_RESET";
+    static final String SERVICE_CLEAR_ONE = "android.service.notification.cts.SERVICE_CLEAR_ONE";
+    static final String SERVICE_CLEAR_ALL = "android.service.notification.cts.SERVICE_CLEAR_ALL";
+
+    static final String EXTRA_PAYLOAD = "TAGS";
+    static final String EXTRA_TAG = "TAG";
+    static final String EXTRA_CODE = "CODE";
+
+    static final int RESULT_TIMEOUT = Activity.RESULT_FIRST_USER;
+    static final int RESULT_NO_SERVER = Activity.RESULT_FIRST_USER + 1;
+
+    static final String JSON_FLAGS = "flag";
+    static final String JSON_ICON = "icon";
+    static final String JSON_ID = "id";
+    static final String JSON_PACKAGE = "pkg";
+    static final String JSON_WHEN = "when";
+    static final String JSON_TAG = "tag";
+
+    private ArrayList<String> mPosted = new ArrayList<String>();
+    private ArrayList<String> mPayloads = new ArrayList<String>();
+    private ArrayList<String> mRemoved = new ArrayList<String>();
+    private BroadcastReceiver mReceiver;
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        Log.d(TAG, "created");
+
+        mPosted = new ArrayList<String>();
+        mRemoved = new ArrayList<String>();
+
+        mReceiver = new BroadcastReceiver() {
+            @Override
+            public void onReceive(Context context, Intent intent) {
+                String action = intent.getAction();
+                if (SERVICE_CHECK.equals(action)) {
+                    Log.d(TAG, "SERVICE_CHECK");
+                    setResultCode(Activity.RESULT_OK);
+                } else if (SERVICE_POSTED.equals(action)) {
+                    Log.d(TAG, "SERVICE_POSTED");
+                    Bundle bundle = new Bundle();
+                    bundle.putStringArrayList(EXTRA_PAYLOAD, mPosted);
+                    setResultExtras(bundle);
+                    setResultCode(Activity.RESULT_OK);
+                } else if (SERVICE_PAYLOADS.equals(action)) {
+                    Log.d(TAG, "SERVICE_PAYLOADS");
+                    Bundle bundle = new Bundle();
+                    bundle.putStringArrayList(EXTRA_PAYLOAD, mPayloads);
+                    setResultExtras(bundle);
+                    setResultCode(Activity.RESULT_OK);
+                } else if (SERVICE_REMOVED.equals(action)) {
+                    Log.d(TAG, "SERVICE_REMOVED");
+                    Bundle bundle = new Bundle();
+                    bundle.putStringArrayList(EXTRA_PAYLOAD, mRemoved);
+                    setResultExtras(bundle);
+                    setResultCode(Activity.RESULT_OK);
+                } else if (SERVICE_CLEAR_ONE.equals(action)) {
+                    Log.d(TAG, "SERVICE_CLEAR_ONE");
+                    MockListener.this.cancelNotification(
+                            context.getApplicationInfo().packageName,
+                            intent.getStringExtra(EXTRA_TAG),
+                            intent.getIntExtra(EXTRA_CODE, 0));
+                } else if (SERVICE_CLEAR_ALL.equals(action)) {
+                    Log.d(TAG, "SERVICE_CLEAR_ALL");
+                    MockListener.this.cancelAllNotifications();
+                } else if (SERVICE_RESET.equals(action)) {
+                    Log.d(TAG, "SERVICE_RESET");
+                    resetData();
+                } else {
+                    Log.w(TAG, "unknown action");
+                    setResultCode(Activity.RESULT_CANCELED);
+                }
+            }
+        };
+        IntentFilter filter = new IntentFilter();
+        filter.addAction(SERVICE_CHECK);
+        filter.addAction(SERVICE_POSTED);
+        filter.addAction(SERVICE_PAYLOADS);
+        filter.addAction(SERVICE_REMOVED);
+        filter.addAction(SERVICE_CLEAR_ONE);
+        filter.addAction(SERVICE_CLEAR_ALL);
+        filter.addAction(SERVICE_RESET);
+        registerReceiver(mReceiver, filter);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        unregisterReceiver(mReceiver);
+        mReceiver = null;
+        Log.d(TAG, "destroyed");
+    }
+
+    public void resetData() {
+        mPosted.clear();
+        mPayloads.clear();
+        mRemoved.clear();
+    }
+
+    @Override
+    public void onNotificationPosted(StatusBarNotification sbn) {
+        Log.d(TAG, "posted: " + sbn.getTag());
+        mPosted.add(sbn.getTag());
+        JSONObject payload = new JSONObject();
+        try {
+            payload.put(JSON_TAG, sbn.getTag());
+            payload.put(JSON_ID, sbn.getId());
+            payload.put(JSON_PACKAGE, sbn.getPackageName());
+            payload.put(JSON_WHEN, sbn.getNotification().when);
+            payload.put(JSON_ICON, sbn.getNotification().icon);
+            payload.put(JSON_FLAGS, sbn.getNotification().flags);
+            mPayloads.add(payload.toString());
+        } catch (JSONException e) {
+            Log.e(TAG, "failed to pack up notification payload", e);
+        }
+    }
+
+    @Override
+    public void onNotificationRemoved(StatusBarNotification sbn) {
+        Log.d(TAG, "removed: " + sbn.getTag());
+        mRemoved.add(sbn.getTag());
+    }
+
+    public static void resetListenerData(Context context) {
+        sendCommand(context, SERVICE_RESET, null, 0);
+    }
+
+    public static void probeListenerStatus(Context context, IntegerResultCatcher catcher) {
+        requestIntegerResult(context, SERVICE_CHECK, catcher);
+    }
+
+    public static void probeListenerPosted(Context context, StringListResultCatcher catcher) {
+        requestStringListResult(context, SERVICE_POSTED, catcher);
+    }
+
+    public static void probeListenerPayloads(Context context, StringListResultCatcher catcher) {
+        requestStringListResult(context, SERVICE_PAYLOADS, catcher);
+    }
+
+    public static void probeListenerRemoved(Context context, StringListResultCatcher catcher) {
+        requestStringListResult(context, SERVICE_REMOVED, catcher);
+    }
+
+    public static void clearOne(Context context, String tag, int code) {
+        sendCommand(context, SERVICE_CLEAR_ONE, tag, code);
+    }
+
+    public static void clearAll(Context context) {
+        sendCommand(context, SERVICE_CLEAR_ALL, null, 0);
+    }
+
+    private static void sendCommand(Context context, String action, String tag, int code) {
+        Intent broadcast = new Intent(action);
+        if (tag != null) {
+            broadcast.putExtra(EXTRA_TAG, tag);
+            broadcast.putExtra(EXTRA_CODE, code);
+        }
+        context.sendBroadcast(broadcast);
+    }
+
+    public abstract static class IntegerResultCatcher extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            accept(Integer.valueOf(getResultCode()));
+        }
+
+        abstract public void accept(int result);
+    }
+
+    private static void requestIntegerResult(Context context, String action,
+            IntegerResultCatcher catcher) {
+        Intent broadcast = new Intent(action);
+        context.sendOrderedBroadcast(broadcast, null, catcher, null, RESULT_NO_SERVER, null, null);
+    }
+
+    public abstract static class StringListResultCatcher extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            accept(getResultExtras(true).getStringArrayList(EXTRA_PAYLOAD));
+        }
+
+        abstract public void accept(List<String> result);
+    }
+
+    private static void requestStringListResult(Context context, String action,
+            StringListResultCatcher catcher) {
+        Intent broadcast = new Intent(action);
+        context.sendOrderedBroadcast(broadcast, null, catcher, null, RESULT_NO_SERVER, null, null);
+    }
+}
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/nls/NotificationListenerVerifierActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/nls/NotificationListenerVerifierActivity.java
new file mode 100644
index 0000000..842c024
--- /dev/null
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/nls/NotificationListenerVerifierActivity.java
@@ -0,0 +1,630 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package com.android.cts.verifier.nls;
+
+import static com.android.cts.verifier.nls.MockListener.JSON_FLAGS;
+import static com.android.cts.verifier.nls.MockListener.JSON_ICON;
+import static com.android.cts.verifier.nls.MockListener.JSON_ID;
+import static com.android.cts.verifier.nls.MockListener.JSON_PACKAGE;
+import static com.android.cts.verifier.nls.MockListener.JSON_TAG;
+import static com.android.cts.verifier.nls.MockListener.JSON_WHEN;
+
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.app.Service;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.provider.Settings.Secure;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.android.cts.verifier.PassFailButtons;
+import com.android.cts.verifier.R;
+import com.android.cts.verifier.nfc.TagVerifierActivity;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.LinkedBlockingQueue;
+
+public class NotificationListenerVerifierActivity extends PassFailButtons.Activity
+implements Runnable {
+    static final String TAG = TagVerifierActivity.class.getSimpleName();
+    private static final String STATE = "state";
+    private static final String LISTENER_PATH = "com.android.cts.verifier/" + 
+            "com.android.cts.verifier.nls.MockListener";
+    private static final int SETUP = 0;
+    private static final int PASS = 1;
+    private static final int FAIL = 2;
+    private static final int WAIT_FOR_USER = 3;
+    private static final int CLEARED = 4;
+    private static final int READY = 5;
+    private static final int RETRY = 6;
+    private static final int NOTIFICATION_ID = 1001;
+    private static LinkedBlockingQueue<String> sDeletedQueue = new LinkedBlockingQueue<String>();
+
+    private int mState;
+    private int[] mStatus;
+    private LayoutInflater mInflater;
+    private ViewGroup mItemList;
+    private PackageManager mPackageManager;
+    private String mTag1;
+    private String mTag2;
+    private String mTag3;
+    private NotificationManager mNm;
+    private Context mContext;
+    private Runnable mRunner;
+    private View mHandler;
+    private String mPackageString;
+    private int mIcon1;
+    private int mIcon2;
+    private int mIcon3;
+    private int mId1;
+    private int mId2;
+    private int mId3;
+    private long mWhen1;
+    private long mWhen2;
+    private long mWhen3;
+    private int mFlag1;
+    private int mFlag2;
+    private int mFlag3;
+
+    public static class DismissService extends Service {
+        @Override
+        public IBinder onBind(Intent intent) {
+            return null;
+        }
+
+        @Override
+        public void onStart(Intent intent, int startId) {
+            sDeletedQueue.offer(intent.getAction());
+        }
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        if (savedInstanceState != null) {
+            mState = savedInstanceState.getInt(STATE, 0);
+        }
+        mContext = this;
+        mRunner = this;
+        mNm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+        mPackageManager = getPackageManager();
+        mInflater = getLayoutInflater();
+        View view = mInflater.inflate(R.layout.nls_main, null);
+        mItemList = (ViewGroup) view.findViewById(R.id.nls_test_items);
+        mHandler = mItemList;
+        createTestItems();
+        mStatus = new int[mItemList.getChildCount()];
+        setContentView(view);
+
+        setPassFailButtonClickListeners();
+        setInfoResources(R.string.nls_test, R.string.nls_info, -1);
+
+        getPassButton().setEnabled(false);
+    }
+
+    @Override
+    protected void onSaveInstanceState (Bundle outState) {
+        outState.putInt(STATE, mState);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        next();
+    }
+
+    // Interface Utilities
+
+    private void createTestItems() {
+        createUserItem(R.string.nls_enable_service);
+        createAutoItem(R.string.nls_service_started);
+        createAutoItem(R.string.nls_note_received);
+        createAutoItem(R.string.nls_payload_intact);
+        createAutoItem(R.string.nls_clear_one);
+        createAutoItem(R.string.nls_clear_all);
+        createUserItem(R.string.nls_disable_service);
+        createAutoItem(R.string.nls_service_stopped);
+        createAutoItem(R.string.nls_note_missed);
+    }
+
+    private void setItemState(int index, boolean passed) {
+        ViewGroup item = (ViewGroup) mItemList.getChildAt(index);
+        ImageView status = (ImageView) item.findViewById(R.id.nls_status);
+        status.setImageResource(passed ? R.drawable.fs_good : R.drawable.fs_error);
+        View button = item.findViewById(R.id.nls_launch_settings);
+        button.setClickable(false);
+        button.setEnabled(false);
+        status.invalidate();
+    }
+
+    private void markItemWaiting(int index) {
+        ViewGroup item = (ViewGroup) mItemList.getChildAt(index);
+        ImageView status = (ImageView) item.findViewById(R.id.nls_status);
+        status.setImageResource(R.drawable.fs_warning);
+        status.invalidate();
+    }
+
+    private View createUserItem(int stringId) {
+        View item = mInflater.inflate(R.layout.nls_item, mItemList, false);
+        TextView instructions = (TextView) item.findViewById(R.id.nls_instructions);
+        instructions.setText(stringId);
+        mItemList.addView(item);
+        return item;
+    }
+
+    private View createAutoItem(int stringId) {
+        View item = mInflater.inflate(R.layout.nls_item, mItemList, false);
+        TextView instructions = (TextView) item.findViewById(R.id.nls_instructions);
+        instructions.setText(stringId);
+        View button = item.findViewById(R.id.nls_launch_settings);
+        button.setVisibility(View.GONE);
+        mItemList.addView(item);
+        return item;
+    }
+
+    // Test management
+
+    public void run() {
+        while (mState < mStatus.length && mStatus[mState] != WAIT_FOR_USER) {
+            if (mStatus[mState] == PASS) {
+                setItemState(mState, true);
+                mState++;
+            } else if (mStatus[mState] == FAIL) {
+                setItemState(mState, false);
+                return;
+            } else {
+                break;
+            }
+        }
+
+        if (mState < mStatus.length && mStatus[mState] == WAIT_FOR_USER) {
+            markItemWaiting(mState);
+        }
+
+        switch (mState) {
+            case 0:
+                testIsEnabled(0);
+                break;
+            case 1:
+                testIsStarted(1);
+                break;
+            case 2:
+                testNotificationRecieved(2);
+                break;
+            case 3:
+                testDataIntact(3);
+                break;
+            case 4:
+                testDismissOne(4);
+                break;
+            case 5:
+                testDismissAll(5);
+                break;
+            case 6:
+                testIsDisabled(6);
+                break;
+            case 7:
+                testIsStopped(7);
+                break;
+            case 8:
+                testNotificationNotRecieved(8);
+                break;
+            case 9:
+                getPassButton().setEnabled(true);
+                mNm.cancelAll();
+                break;
+        }
+    }
+
+    public void launchSettings(View button) {
+        startActivity(
+                new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"));
+    }
+
+    private PendingIntent makeIntent(int code, String tag) {
+        Intent intent = new Intent(tag);
+        intent.setComponent(new ComponentName(mContext, DismissService.class));
+        PendingIntent pi = PendingIntent.getService(mContext, code, intent,
+                PendingIntent.FLAG_UPDATE_CURRENT);
+        return pi;
+    }
+
+    @SuppressLint("NewApi")
+    private void sendNotificaitons() {
+        mTag1 = UUID.randomUUID().toString();
+        mTag2 = UUID.randomUUID().toString();
+        mTag3 = UUID.randomUUID().toString();
+
+        mNm.cancelAll();
+
+        mWhen1 = System.currentTimeMillis() + 1;
+        mWhen2 = System.currentTimeMillis() + 2;
+        mWhen3 = System.currentTimeMillis() + 3;
+
+        mIcon1 = R.drawable.fs_good;
+        mIcon2 = R.drawable.fs_error;
+        mIcon3 = R.drawable.fs_warning;
+
+        mId1 = NOTIFICATION_ID + 1;
+        mId2 = NOTIFICATION_ID + 2;
+        mId3 = NOTIFICATION_ID + 3;
+
+        mPackageString = "com.android.cts.verifier";
+
+        Notification n1 = new Notification.Builder(mContext)
+        .setContentTitle("ClearTest 1")
+        .setContentText(mTag1.toString())
+        .setPriority(Notification.PRIORITY_LOW)
+        .setSmallIcon(mIcon1)
+        .setWhen(mWhen1)
+        .setDeleteIntent(makeIntent(1, mTag1))
+        .setOnlyAlertOnce(true)
+        .build();
+        mNm.notify(mTag1, mId1, n1);
+        mFlag1 = Notification.FLAG_ONLY_ALERT_ONCE;
+
+        Notification n2 = new Notification.Builder(mContext)
+        .setContentTitle("ClearTest 2")
+        .setContentText(mTag2.toString())
+        .setPriority(Notification.PRIORITY_HIGH)
+        .setSmallIcon(mIcon2)
+        .setWhen(mWhen2)
+        .setDeleteIntent(makeIntent(2, mTag2))
+        .setAutoCancel(true)
+        .build();
+        mNm.notify(mTag2, mId2, n2);
+        mFlag2 = Notification.FLAG_AUTO_CANCEL;
+
+        Notification n3 = new Notification.Builder(mContext)
+        .setContentTitle("ClearTest 3")
+        .setContentText(mTag3.toString())
+        .setPriority(Notification.PRIORITY_LOW)
+        .setSmallIcon(mIcon3)
+        .setWhen(mWhen3)
+        .setDeleteIntent(makeIntent(3, mTag3))
+        .setAutoCancel(true)
+        .setOnlyAlertOnce(true)
+        .build();
+        mNm.notify(mTag3, mId3, n3);
+        mFlag3 = Notification.FLAG_ONLY_ALERT_ONCE | Notification.FLAG_AUTO_CANCEL;
+    }
+
+    /**
+     * Return to the state machine to progress through the tests.
+     */
+    private void next() {
+        mHandler.post(mRunner);
+    }
+
+    /**
+     * Wait for things to settle before returning to the state machine.
+     */
+    private void delay() {
+        mHandler.postDelayed(mRunner, 2000);
+    }
+
+    boolean checkEquals(long expected, long actual, String message) {
+        if (expected == actual) {
+            return true;
+        }
+        logWithStack(String.format(message, expected, actual));
+        return false;
+    }
+
+    boolean checkEquals(String expected, String actual, String message) {
+        if (expected.equals(actual)) {
+            return true;
+        }
+        logWithStack(String.format(message, expected, actual));
+        return false;
+    }
+
+    boolean checkFlagSet(int expected, int actual, String message) {
+        if ((expected & actual) != 0) {
+            return true;
+        }
+        logWithStack(String.format(message, expected, actual));
+        return false;
+    };
+
+    private void logWithStack(String message) {
+        Throwable stackTrace = new Throwable();
+        stackTrace.fillInStackTrace();
+        Log.e(TAG, message, stackTrace);
+    }
+
+    // Tests
+
+    private void testIsEnabled(int i) {
+        // no setup required
+        Intent settings = new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS");
+        if (settings.resolveActivity(mPackageManager) == null) {
+            logWithStack("failed testIsEnabled: no settings activity");
+            mStatus[i] = FAIL;
+        } else {
+            // TODO: find out why Secure.ENABLED_NOTIFICATION_LISTENERS is hidden
+            String listeners = Secure.getString(getContentResolver(),
+                    "enabled_notification_listeners");
+            if (listeners != null && listeners.contains(LISTENER_PATH)) {
+                mStatus[i] = PASS;
+            } else {
+                mStatus[i] = WAIT_FOR_USER;
+            }
+        }
+        next();
+    }
+
+    private void testIsStarted(final int i) {
+        if (mStatus[i] == SETUP) {
+            mStatus[i] = READY;
+            // wait for the service to start
+            delay();
+        } else {
+            MockListener.probeListenerStatus(mContext,
+                    new MockListener.IntegerResultCatcher() {
+                @Override
+                public void accept(int result) {
+                    if (result == Activity.RESULT_OK) {
+                        mStatus[i] = PASS;
+                    } else {
+                        logWithStack("failed testIsStarted: " + result);
+                        mStatus[i] = FAIL;
+                    }
+                    next();
+                }
+            });
+        }
+    }
+
+    private void testNotificationRecieved(final int i) {
+        if (mStatus[i] == SETUP) {
+            MockListener.resetListenerData(this);
+            mStatus[i] = CLEARED;
+            // wait for intent to move through the system
+            delay();
+        } else if (mStatus[i] == CLEARED) {
+            sendNotificaitons();
+            mStatus[i] = READY;
+            // wait for notifications to move through the system
+            delay();
+        } else {
+            MockListener.probeListenerPosted(mContext,
+                    new MockListener.StringListResultCatcher() {
+                @Override
+                public void accept(List<String> result) {
+                    if (result.size() > 0 && result.contains(mTag1)) {
+                        mStatus[i] = PASS;
+                    } else {
+                        logWithStack("failed testNotificationRecieved");
+                        mStatus[i] = FAIL;
+                    }
+                    next();
+                }});
+        }
+    }
+
+    private void testDataIntact(final int i) {
+        // no setup required
+        MockListener.probeListenerPayloads(mContext,
+                new MockListener.StringListResultCatcher() {
+            @Override
+            public void accept(List<String> result) {
+                boolean pass = false;
+                Set<String> found = new HashSet<String>();
+                if (result.size() > 0) {
+                    pass = true;
+                    for(String payloadData : result) {
+                        try {
+                            JSONObject payload = new JSONObject(payloadData);
+                            pass &= checkEquals(mPackageString, payload.getString(JSON_PACKAGE),
+                                    "data integrity test fail: notificaiton package (%s, %s)");
+                            String tag = payload.getString(JSON_TAG);
+                            if (mTag1.equals(tag)) {
+                                found.add(mTag1);
+                                pass &= checkEquals(mIcon1, payload.getInt(JSON_ICON),
+                                        "data integrity test fail: notificaiton icon (%d, %d)");
+                                pass &= checkFlagSet(mFlag1, payload.getInt(JSON_FLAGS),
+                                        "data integrity test fail: notificaiton flags (%d, %d)");
+                                pass &= checkEquals(mId1, payload.getInt(JSON_ID),
+                                        "data integrity test fail: notificaiton ID (%d, %d)");
+                                pass &= checkEquals(mWhen1, payload.getLong(JSON_WHEN),
+                                        "data integrity test fail: notificaiton when (%d, %d)");
+                            } else if (mTag2.equals(tag)) {
+                                found.add(mTag2);
+                                pass &= checkEquals(mIcon2, payload.getInt(JSON_ICON),
+                                        "data integrity test fail: notificaiton icon (%d, %d)");
+                                pass &= checkFlagSet(mFlag2, payload.getInt(JSON_FLAGS),
+                                        "data integrity test fail: notificaiton flags (%d, %d)");
+                                pass &= checkEquals(mId2, payload.getInt(JSON_ID),
+                                        "data integrity test fail: notificaiton ID (%d, %d)");
+                                pass &= checkEquals(mWhen2, payload.getLong(JSON_WHEN),
+                                        "data integrity test fail: notificaiton when (%d, %d)");
+                            } else if (mTag3.equals(tag)) {
+                                found.add(mTag3);
+                                pass &= checkEquals(mIcon3, payload.getInt(JSON_ICON),
+                                        "data integrity test fail: notificaiton icon (%d, %d)");
+                                pass &= checkFlagSet(mFlag3, payload.getInt(JSON_FLAGS),
+                                        "data integrity test fail: notificaiton flags (%d, %d)");
+                                pass &= checkEquals(mId3, payload.getInt(JSON_ID),
+                                        "data integrity test fail: notificaiton ID (%d, %d)");
+                                pass &= checkEquals(mWhen3, payload.getLong(JSON_WHEN),
+                                        "data integrity test fail: notificaiton when (%d, %d)");
+                            } else {
+                                pass = false;
+                                logWithStack("failed on unexpected notification tag: " + tag);
+                            }
+                        } catch (JSONException e) {
+                            pass = false;
+                            Log.e(TAG, "failed to unpack data from mocklistener", e);
+                        }
+                    }
+                }
+                pass &= found.size() == 3;
+                mStatus[i] = pass ? PASS : FAIL;
+                next();
+            }});
+    }
+
+    private void testDismissOne(final int i) {
+        if (mStatus[i] == SETUP) {
+            MockListener.resetListenerData(this);
+            mStatus[i] = CLEARED;
+            // wait for intent to move through the system
+            delay();
+        } else if (mStatus[i] == CLEARED) {
+            MockListener.clearOne(mContext, mTag1, NOTIFICATION_ID + 1);
+            mStatus[i] = READY;
+            delay();
+        } else {
+            MockListener.probeListenerRemoved(mContext,
+                    new MockListener.StringListResultCatcher() {
+                @Override
+                public void accept(List<String> result) {
+                    if (result.size() > 0 && result.contains(mTag1)) {
+                        mStatus[i] = PASS;
+                        next();
+                    } else {
+                        if (mStatus[i] == RETRY) {
+                            logWithStack("failed testDismissOne");
+                            mStatus[i] = FAIL;
+                            next();
+                        } else {
+                            logWithStack("failed testDismissOne, once: retrying");
+                            mStatus[i] = RETRY;
+                            delay();
+                        }
+                    }
+                }});
+        }
+    }
+
+    private void testDismissAll(final int i) {
+        if (mStatus[i] == SETUP) {
+            MockListener.resetListenerData(this);
+            mStatus[i] = CLEARED;
+            // wait for intent to move through the system
+            delay();
+        } else if (mStatus[i] == CLEARED) {
+            MockListener.clearAll(mContext);
+            mStatus[i] = READY;
+            delay();
+        } else {
+            MockListener.probeListenerRemoved(mContext,
+                    new MockListener.StringListResultCatcher() {
+                @Override
+                public void accept(List<String> result) {
+                    if (result.size() == 2 && result.contains(mTag2) && result.contains(mTag3)) {
+                        mStatus[i] = PASS;
+                        next();
+                    } else {
+                        if (mStatus[i] == RETRY) {
+                            logWithStack("failed testDismissAll");
+                            mStatus[i] = FAIL;
+                            next();
+                        } else {
+                            logWithStack("failed testDismissAll, once: retrying");
+                            mStatus[i] = RETRY;
+                            delay();
+                        }
+                    }
+                }
+            });
+        }
+    }
+
+    private void testIsDisabled(int i) {
+        // no setup required
+        // TODO: find out why Secure.ENABLED_NOTIFICATION_LISTENERS is hidden
+        String listeners = Secure.getString(getContentResolver(),
+                "enabled_notification_listeners");
+        if (listeners == null || !listeners.contains(LISTENER_PATH)) {
+            mStatus[i] = PASS;
+            next();
+        } else {
+            mStatus[i] = WAIT_FOR_USER;
+            delay();
+        }
+    }
+
+    private void testIsStopped(final int i) {
+        if (mStatus[i] == SETUP) {
+            mStatus[i] = READY;
+            // wait for the service to start
+            delay();
+        } else {
+            MockListener.probeListenerStatus(mContext,
+                    new MockListener.IntegerResultCatcher() {
+                @Override
+                public void accept(int result) {
+                    if (result == Activity.RESULT_OK) {
+                        logWithStack("failed testIsStopped");
+                        mStatus[i] = FAIL;
+                    } else {
+                        mStatus[i] = PASS;
+                    }
+                    next();
+                }
+            });
+        }
+    }
+
+    private void testNotificationNotRecieved(final int i) {
+        if (mStatus[i] == SETUP) {
+            MockListener.resetListenerData(this);
+            mStatus[i] = CLEARED;
+            // wait for intent to move through the system
+            delay();
+        } else if (mStatus[i] == CLEARED) {
+            // setup for testNotificationRecieved
+            sendNotificaitons();
+            mStatus[i] = READY;
+            delay();
+        } else {
+            MockListener.probeListenerPosted(mContext,
+                    new MockListener.StringListResultCatcher() {
+                @Override
+                public void accept(List<String> result) {
+                    if (result == null || result.size() == 0) {
+                        mStatus[i] = PASS;
+                    } else {
+                        logWithStack("failed testNotificationNotRecieved");
+                        mStatus[i] = FAIL;
+                    }
+                    next();
+                }});
+        }
+    }
+}
diff --git a/build/config.mk b/build/config.mk
index a121dc5..b737ef7 100644
--- a/build/config.mk
+++ b/build/config.mk
@@ -14,5 +14,6 @@
 
 BUILD_CTS_EXECUTABLE := cts/build/test_executable.mk
 BUILD_CTS_PACKAGE := cts/build/test_package.mk
+BUILD_CTS_GTEST_PACKAGE := cts/build/test_gtest_package.mk
 BUILD_CTS_HOST_JAVA_LIBRARY := cts/build/test_host_java_library.mk
 BUILD_CTS_UI_JAVA_LIBRARY := cts/build/test_uiautomator.mk
diff --git a/build/test_gtest_package.mk b/build/test_gtest_package.mk
new file mode 100644
index 0000000..2f4c9bb
--- /dev/null
+++ b/build/test_gtest_package.mk
@@ -0,0 +1,49 @@
+# Copyright 2012 The Android Open Source Project
+#
+# 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.
+
+#
+# Builds a package and defines a rule to generate the associated test
+# package XML needed by CTS.
+#
+# Replace "include $(BUILD_PACKAGE)" with "include $(BUILD_CTS_GTEST_PACKAGE)"
+#
+
+# Disable by default so "m cts" will work in emulator builds
+LOCAL_DEX_PREOPT := false
+
+include $(BUILD_PACKAGE)
+
+cts_package_apk := $(CTS_TESTCASES_OUT)/$(LOCAL_PACKAGE_NAME).apk
+cts_package_xml := $(CTS_TESTCASES_OUT)/$(LOCAL_PACKAGE_NAME).xml
+
+$(cts_package_apk): PRIVATE_PACKAGE := $(LOCAL_PACKAGE_NAME)
+$(cts_package_apk): $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME))/package.apk | $(ACP)
+	$(hide) mkdir -p $(CTS_TESTCASES_OUT)
+	$(hide) $(ACP) -fp $(call intermediates-dir-for,APPS,$(PRIVATE_PACKAGE))/package.apk $@
+
+$(cts_package_xml): PRIVATE_PATH := $(LOCAL_PATH)
+$(cts_package_xml): PRIVATE_TEST_PACKAGE := android.$(notdir $(LOCAL_PATH))
+$(cts_package_xml): PRIVATE_EXECUTABLE := $(LOCAL_MODULE)
+$(cts_package_xml): PRIVATE_MANIFEST := $(LOCAL_PATH)/AndroidManifest.xml
+$(cts_package_xml): $(addprefix $(LOCAL_PATH)/,$(LOCAL_SRC_FILES))  $(CTS_NATIVE_TEST_SCANNER) $(CTS_XML_GENERATOR)
+	$(hide) echo Generating test description for wrapped native package $(PRIVATE_EXECUTABLE)
+	$(hide) mkdir -p $(CTS_TESTCASES_OUT)
+	$(hide) $(CTS_NATIVE_TEST_SCANNER) -s $(PRIVATE_PATH) \
+						-t $(PRIVATE_TEST_PACKAGE) | \
+			$(CTS_XML_GENERATOR) -t wrappednative \
+                                                -m $(PRIVATE_MANIFEST) \
+						-n $(PRIVATE_EXECUTABLE) \
+						-p $(PRIVATE_TEST_PACKAGE) \
+						-e $(CTS_EXPECTATIONS) \
+						-o $@
diff --git a/build/test_package.mk b/build/test_package.mk
index 071acee..46718a8 100644
--- a/build/test_package.mk
+++ b/build/test_package.mk
@@ -21,6 +21,7 @@
 
 # Disable by default so "m cts" will work in emulator builds
 LOCAL_DEX_PREOPT := false
+LOCAL_PROGUARD_ENABLED := disabled
 
 include $(BUILD_PACKAGE)
 
@@ -35,7 +36,12 @@
 $(cts_package_xml): PRIVATE_PATH := $(LOCAL_PATH)
 $(cts_package_xml): PRIVATE_INSTRUMENTATION := $(LOCAL_INSTRUMENTATION_FOR)
 $(cts_package_xml): PRIVATE_PACKAGE := $(LOCAL_PACKAGE_NAME)
-$(cts_package_xml): PRIVATE_TEST_PACKAGE := android.$(notdir $(LOCAL_PATH))
+ifneq ($(filter cts/suite/pts/%, $(LOCAL_PATH)),) # PTS
+PRIVATE_CTS_TEST_PACKAGE_NANE_ := com.android.pts.$(notdir $(LOCAL_PATH))
+else # CTS
+PRIVATE_CTS_TEST_PACKAGE_NANE_ := android.$(notdir $(LOCAL_PATH))
+endif # PTS
+$(cts_package_xml): PRIVATE_TEST_PACKAGE := $(PRIVATE_CTS_TEST_PACKAGE_NANE_)
 $(cts_package_xml): PRIVATE_MANIFEST := $(LOCAL_PATH)/AndroidManifest.xml
 $(cts_package_xml): PRIVATE_TEST_TYPE := $(if $(LOCAL_CTS_TEST_RUNNER),$(LOCAL_CTS_TEST_RUNNER),'')
 $(cts_package_xml): $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME))/package.apk $(CTS_EXPECTATIONS) $(CTS_JAVA_TEST_SCANNER_DOCLET) $(CTS_JAVA_TEST_SCANNER) $(CTS_XML_GENERATOR)
diff --git a/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/command/CompatibilityConsole.java b/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/command/CompatibilityConsole.java
index 56f7db8..dfd1c71 100644
--- a/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/command/CompatibilityConsole.java
+++ b/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/command/CompatibilityConsole.java
@@ -17,13 +17,14 @@
 package com.android.compatibility.common.tradefed.command;
 
 import com.android.tradefed.command.Console;
+import com.android.tradefed.config.ConfigurationException;
 
 /**
  * An extension of Tradefed's console which adds features specific to compatibility testing.
  */
 public class CompatibilityConsole extends Console {
 
-    public static void main(String[] args) throws InterruptedException {
+    public static void main(String[] args) throws InterruptedException, ConfigurationException {
         CompatibilityConsole console = new CompatibilityConsole();
         Console.startConsole(console, args);
     }
diff --git a/suite/pts/hostTests/browser/Android.mk b/hostsidetests/aadb/Android.mk
similarity index 74%
rename from suite/pts/hostTests/browser/Android.mk
rename to hostsidetests/aadb/Android.mk
index 9e45477..2f2113c 100644
--- a/suite/pts/hostTests/browser/Android.mk
+++ b/hostsidetests/aadb/Android.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2012 The Android Open Source Project
+# Copyright (C) 2013 The Android Open Source Project
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -16,16 +16,16 @@
 
 include $(CLEAR_VARS)
 
+# Only compile source java files in this apk.
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
-LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE := CtsAdbTests
 
-LOCAL_MODULE := PtsHostBrowser
+LOCAL_JAVA_LIBRARIES := cts-tradefed tradefed-prebuilt ddmlib-prebuilt junit
 
-LOCAL_JAVA_LIBRARIES := cts-tradefed tradefed-prebuilt ddmlib-prebuilt junit ptscommonutilhost ptshostutil
+LOCAL_CTS_TEST_PACKAGE := android.aadb
 
-LOCAL_PTS_TEST_PACKAGE := com.android.pts.browser
+include $(BUILD_CTS_HOST_JAVA_LIBRARY)
 
-include $(BUILD_PTS_HOST_JAVA_LIBRARY)
-
+# Build the test APKs using their own makefiles
 include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/hostsidetests/aadb/src/com/android/cts/aadb/TestDeviceFuncTest.java b/hostsidetests/aadb/src/com/android/cts/aadb/TestDeviceFuncTest.java
new file mode 100644
index 0000000..8257602
--- /dev/null
+++ b/hostsidetests/aadb/src/com/android/cts/aadb/TestDeviceFuncTest.java
@@ -0,0 +1,387 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+package com.android.cts.aadb;
+
+import com.android.ddmlib.IDevice;
+import com.android.ddmlib.Log;
+import com.android.ddmlib.testrunner.RemoteAndroidTestRunner;
+import com.android.tradefed.device.DeviceNotAvailableException;
+import com.android.tradefed.device.IFileEntry;
+import com.android.tradefed.device.ITestDevice;
+import com.android.tradefed.log.LogUtil.CLog;
+import com.android.tradefed.result.CollectingTestListener;
+import com.android.tradefed.result.InputStreamSource;
+import com.android.tradefed.testtype.DeviceTestCase;
+import com.android.tradefed.util.CommandStatus;
+import com.android.tradefed.util.FileUtil;
+import com.android.tradefed.util.RunUtil;
+import com.android.tradefed.util.StreamUtil;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+/**
+ * Functional tests for adb connection
+ * <p/>
+ * Requires a physical device to be connected.
+ */
+public class TestDeviceFuncTest extends DeviceTestCase {
+
+    private static final String LOG_TAG = "TestDeviceFuncTest";
+    private ITestDevice mTestDevice;
+    /** Expect bugreports to be at least a meg. */
+    private static final int mMinBugreportBytes = 1024 * 1024;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mTestDevice = getDevice();
+    }
+
+    /**
+     * Simple testcase to ensure that the grabbing a bugreport from a real TestDevice works.
+     */
+    public void testBugreport() throws Exception {
+        String data = StreamUtil.getStringFromStream(
+                mTestDevice.getBugreport().createInputStream());
+        assertTrue(String.format("Expected at least %d characters; only saw %d", mMinBugreportBytes,
+                data.length()), data.length() >= mMinBugreportBytes);
+        // TODO: check the captured report more extensively, perhaps using loganalysis
+    }
+
+    /**
+     * Simple normal case test for
+     * {@link TestDevice#executeShellCommand(String)}.
+     * <p/>
+     * Do a 'shell ls' command, and verify /data and /system are listed in result.
+     */
+    public void testExecuteShellCommand() throws IOException, DeviceNotAvailableException {
+        Log.i(LOG_TAG, "testExecuteShellCommand");
+        assertSimpleShellCommand();
+    }
+
+    /**
+     * Verify that a simple {@link TestDevice#executeShellCommand(String)} command is successful.
+     */
+    private void assertSimpleShellCommand() throws DeviceNotAvailableException {
+        final String output = mTestDevice.executeShellCommand("ls");
+        assertTrue(output.contains("data"));
+        assertTrue(output.contains("system"));
+    }
+
+
+    /**
+     * Push and then pull a file from device, and verify contents are as expected.
+     */
+    public void testPushPull_normal() throws IOException, DeviceNotAvailableException {
+        Log.i(LOG_TAG, "testPushPull");
+        File tmpFile = null;
+        File tmpDestFile = null;
+        String deviceFilePath = null;
+
+        try {
+            tmpFile = createTempTestFile(null);
+            String externalStorePath = mTestDevice.getMountPoint(IDevice.MNT_EXTERNAL_STORAGE);
+            assertNotNull(externalStorePath);
+            deviceFilePath = String.format("%s/%s", externalStorePath, "tmp_testPushPull.txt");
+            // ensure file does not already exist
+            mTestDevice.executeShellCommand(String.format("rm %s", deviceFilePath));
+            assertFalse(String.format("%s exists", deviceFilePath),
+                    mTestDevice.doesFileExist(deviceFilePath));
+
+            assertTrue(mTestDevice.pushFile(tmpFile, deviceFilePath));
+            assertTrue(mTestDevice.doesFileExist(deviceFilePath));
+            tmpDestFile = FileUtil.createTempFile("tmp", "txt");
+            assertTrue(mTestDevice.pullFile(deviceFilePath, tmpDestFile));
+            assertTrue(compareFiles(tmpFile, tmpDestFile));
+        } finally {
+            if (tmpDestFile != null) {
+                tmpDestFile.delete();
+            }
+            if (deviceFilePath != null) {
+                mTestDevice.executeShellCommand(String.format("rm %s", deviceFilePath));
+            }
+        }
+    }
+
+    /**
+     * Push and then pull a file from device, and verify contents are as expected.
+     * <p />
+     * This variant of the test uses "${EXTERNAL_STORAGE}" in the pathname.
+     */
+    public void testPushPull_extStorageVariable() throws IOException, DeviceNotAvailableException {
+        Log.i(LOG_TAG, "testPushPull");
+        File tmpFile = null;
+        File tmpDestFile = null;
+        File tmpDestFile2 = null;
+        String deviceFilePath = null;
+        final String filename = "tmp_testPushPull.txt";
+
+        try {
+            tmpFile = createTempTestFile(null);
+            String externalStorePath = "${EXTERNAL_STORAGE}";
+            assertNotNull(externalStorePath);
+            deviceFilePath = String.format("%s/%s", externalStorePath, filename);
+            // ensure file does not already exist
+            mTestDevice.executeShellCommand(String.format("rm %s", deviceFilePath));
+            assertFalse(String.format("%s exists", deviceFilePath),
+                    mTestDevice.doesFileExist(deviceFilePath));
+
+            assertTrue(mTestDevice.pushFile(tmpFile, deviceFilePath));
+            assertTrue(mTestDevice.doesFileExist(deviceFilePath));
+            tmpDestFile = FileUtil.createTempFile("tmp", "txt");
+            assertTrue(mTestDevice.pullFile(deviceFilePath, tmpDestFile));
+            assertTrue(compareFiles(tmpFile, tmpDestFile));
+
+            tmpDestFile2 = mTestDevice.pullFileFromExternal(filename);
+            assertNotNull(tmpDestFile2);
+            assertTrue(compareFiles(tmpFile, tmpDestFile2));
+        } finally {
+            if (tmpDestFile != null) {
+                tmpDestFile.delete();
+            }
+            if (tmpDestFile2 != null) {
+                tmpDestFile2.delete();
+            }
+            if (deviceFilePath != null) {
+                mTestDevice.executeShellCommand(String.format("rm %s", deviceFilePath));
+            }
+        }
+    }
+
+    /**
+     * Test pulling a file from device that does not exist.
+     * <p/>
+     * Expect {@link TestDevice#pullFile(String)} to return <code>false</code>
+     */
+    public void testPull_noexist() throws IOException, DeviceNotAvailableException {
+        Log.i(LOG_TAG, "testPull_noexist");
+
+        // make sure the root path is valid
+        String externalStorePath =  mTestDevice.getMountPoint(IDevice.MNT_EXTERNAL_STORAGE);
+        assertNotNull(externalStorePath);
+        String deviceFilePath = String.format("%s/%s", externalStorePath, "thisfiledoesntexist");
+        assertFalse(String.format("%s exists", deviceFilePath),
+                mTestDevice.doesFileExist(deviceFilePath));
+        assertNull(mTestDevice.pullFile(deviceFilePath));
+    }
+
+    private File createTempTestFile(File dir) throws IOException {
+        File tmpFile = null;
+        try {
+            final String fileContents = "this is the test file contents";
+            tmpFile = FileUtil.createTempFile("tmp", ".txt", dir);
+            FileUtil.writeToFile(fileContents, tmpFile);
+            return tmpFile;
+        } catch (IOException e) {
+            if (tmpFile != null) {
+                tmpFile.delete();
+            }
+            throw e;
+        }
+    }
+
+    /**
+     * Utility method to do byte-wise content comparison of two files.
+     */
+    private boolean compareFiles(File file1, File file2) throws IOException {
+        BufferedInputStream stream1 = null;
+        BufferedInputStream stream2 = null;
+
+        try {
+            stream1 = new BufferedInputStream(new FileInputStream(file1));
+            stream2 = new BufferedInputStream(new FileInputStream(file2));
+            boolean eof = false;
+            while (!eof) {
+                int byte1 = stream1.read();
+                int byte2 = stream2.read();
+                if (byte1 != byte2) {
+                    return false;
+                }
+                eof = byte1 == -1;
+            }
+            return true;
+        } finally {
+            if (stream1 != null) {
+                stream1.close();
+            }
+            if (stream2 != null) {
+                stream2.close();
+            }
+        }
+    }
+
+    /**
+     * Test syncing a single file using {@link TestDevice#syncFiles(File, String)}.
+     */
+    public void testSyncFiles_normal() throws Exception {
+        doTestSyncFiles(mTestDevice.getMountPoint(IDevice.MNT_EXTERNAL_STORAGE));
+    }
+
+    /**
+     * Test syncing a single file using {@link TestDevice#syncFiles(File, String)}.
+     * <p />
+     * This variant of the test uses "${EXTERNAL_STORAGE}" in the pathname.
+     */
+    public void testSyncFiles_extStorageVariable() throws Exception {
+        doTestSyncFiles("${EXTERNAL_STORAGE}");
+    }
+
+    /**
+     * Test syncing a single file using {@link TestDevice#syncFiles(File, String)}.
+     */
+    public void doTestSyncFiles(String externalStorePath) throws Exception {
+        String expectedDeviceFilePath = null;
+
+        // create temp dir with one temp file
+        File tmpDir = FileUtil.createTempDir("tmp");
+        try {
+            File tmpFile = createTempTestFile(tmpDir);
+            // set last modified to 10 minutes ago
+            tmpFile.setLastModified(System.currentTimeMillis() - 10*60*1000);
+            assertNotNull(externalStorePath);
+            expectedDeviceFilePath = String.format("%s/%s/%s", externalStorePath,
+                    tmpDir.getName(), tmpFile.getName());
+
+            assertTrue(mTestDevice.syncFiles(tmpDir, externalStorePath));
+            assertTrue(mTestDevice.doesFileExist(expectedDeviceFilePath));
+
+            // get 'ls -l' attributes of file which includes timestamp
+            String origTmpFileStamp = mTestDevice.executeShellCommand(String.format("ls -l %s",
+                    expectedDeviceFilePath));
+            // now create another file and verify that is synced
+            File tmpFile2 = createTempTestFile(tmpDir);
+            tmpFile2.setLastModified(System.currentTimeMillis() - 10*60*1000);
+            assertTrue(mTestDevice.syncFiles(tmpDir, externalStorePath));
+            String expectedDeviceFilePath2 = String.format("%s/%s/%s", externalStorePath,
+                    tmpDir.getName(), tmpFile2.getName());
+            assertTrue(mTestDevice.doesFileExist(expectedDeviceFilePath2));
+
+            // verify 1st file timestamp did not change
+            String unchangedTmpFileStamp = mTestDevice.executeShellCommand(String.format("ls -l %s",
+                    expectedDeviceFilePath));
+            assertEquals(origTmpFileStamp, unchangedTmpFileStamp);
+
+            // now modify 1st file and verify it does change remotely
+            String testString = "blah";
+            FileOutputStream stream = new FileOutputStream(tmpFile);
+            stream.write(testString.getBytes());
+            stream.close();
+
+            assertTrue(mTestDevice.syncFiles(tmpDir, externalStorePath));
+            String tmpFileContents = mTestDevice.executeShellCommand(String.format("cat %s",
+                    expectedDeviceFilePath));
+            assertTrue(tmpFileContents.contains(testString));
+        } finally {
+            if (expectedDeviceFilePath != null && externalStorePath != null) {
+                // note that expectedDeviceFilePath has externalStorePath prepended at definition
+                mTestDevice.executeShellCommand(String.format("rm -r %s", expectedDeviceFilePath));
+            }
+            FileUtil.recursiveDelete(tmpDir);
+        }
+    }
+
+    /**
+     * Test pushing a directory
+     */
+    public void testPushDir() throws IOException, DeviceNotAvailableException {
+        String expectedDeviceFilePath = null;
+        String externalStorePath = null;
+        File rootDir = FileUtil.createTempDir("tmp");
+        // create temp dir with one temp file
+        try {
+            File tmpDir = FileUtil.createTempDir("tmp", rootDir);
+            File tmpFile = createTempTestFile(tmpDir);
+            externalStorePath = mTestDevice.getMountPoint(IDevice.MNT_EXTERNAL_STORAGE);
+            assertNotNull(externalStorePath);
+            expectedDeviceFilePath = String.format("%s/%s/%s", externalStorePath,
+                    tmpDir.getName(), tmpFile.getName());
+
+            assertTrue(mTestDevice.pushDir(rootDir, externalStorePath));
+            assertTrue(mTestDevice.doesFileExist(expectedDeviceFilePath));
+
+        } finally {
+            if (expectedDeviceFilePath != null && externalStorePath != null) {
+                mTestDevice.executeShellCommand(String.format("rm -r %s/%s", externalStorePath,
+                        expectedDeviceFilePath));
+            }
+            FileUtil.recursiveDelete(rootDir);
+        }
+    }
+
+    /**
+     * Basic test for {@link TestDevice#getScreenshot()}.
+     * <p/>
+     * Grab a screenshot, save it to a file, and perform a cursory size check to ensure its valid.
+     */
+    public void testGetScreenshot() throws DeviceNotAvailableException, IOException {
+        CLog.i(LOG_TAG, "testGetScreenshot");
+        InputStreamSource source = getDevice().getScreenshot();
+        assertNotNull(source);
+        File tmpPngFile = FileUtil.createTempFile("screenshot", ".png");
+        try {
+            FileUtil.writeToFile(source.createInputStream(), tmpPngFile);
+            CLog.i("Created file at %s", tmpPngFile.getAbsolutePath());
+            assertTrue("Saved png file is less than 16K - is it invalid?",
+                    tmpPngFile.length() > 16*1024);
+            // TODO: add more stringent checks
+        } finally {
+            FileUtil.deleteFile(tmpPngFile);
+            source.cancel();
+        }
+    }
+
+    /**
+     * Basic test for {@link TestDevice#getLogcat(long)}.
+     * <p/>
+     * Dumps a bunch of messages to logcat, calls getLogcat(), and verifies size of capture file is
+     * equal to provided data.
+     */
+    public void testGetLogcat_size() throws DeviceNotAvailableException, IOException {
+        CLog.i(LOG_TAG, "testGetLogcat_size");
+        for (int i = 0; i < 100; i++) {
+            getDevice().executeShellCommand(String.format("log testGetLogcat_size log dump %d", i));
+        }
+        boolean passed = false;
+        int retry = 0;
+        while (!passed) {
+            // sleep a small amount of time to ensure last log message makes it into capture
+            RunUtil.getDefault().sleep(10);
+            InputStreamSource source = getDevice().getLogcat(100 * 1024);
+            assertNotNull(source);
+            File tmpTxtFile = FileUtil.createTempFile("logcat", ".txt");
+            try {
+                FileUtil.writeToFile(source.createInputStream(), tmpTxtFile);
+                CLog.i("Created file at %s", tmpTxtFile.getAbsolutePath());
+                // ensure last log message is present in log
+                String s = FileUtil.readStringFromFile(tmpTxtFile);
+                if (s.contains("testGetLogcat_size log dump 99")) {
+                    passed = true;
+                }
+            } finally {
+                FileUtil.deleteFile(tmpTxtFile);
+                source.cancel();
+            }
+            retry++;
+            if ((retry > 100) && !passed) {
+                fail("last log message is not in captured logcat");
+            }
+        }
+    }
+}
diff --git a/hostsidetests/aadb/src/com/android/cts/aadb/TestDeviceStressTest.java b/hostsidetests/aadb/src/com/android/cts/aadb/TestDeviceStressTest.java
new file mode 100644
index 0000000..c780fb9
--- /dev/null
+++ b/hostsidetests/aadb/src/com/android/cts/aadb/TestDeviceStressTest.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+package com.android.cts.aadb;
+
+import com.android.ddmlib.IDevice;
+import com.android.ddmlib.Log;
+import com.android.ddmlib.testrunner.RemoteAndroidTestRunner;
+import com.android.tradefed.config.Option;
+import com.android.tradefed.device.DeviceNotAvailableException;
+import com.android.tradefed.device.ITestDevice;
+import com.android.tradefed.result.CollectingTestListener;
+import com.android.tradefed.testtype.DeviceTestCase;
+import com.android.tradefed.util.FileUtil;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * Long running functional tests for {@link TestDevice} that verify an operation can be run
+ * many times in sequence
+ * <p/>
+ * Requires a physical device to be connected.
+ */
+public class TestDeviceStressTest extends DeviceTestCase {
+
+    private int mIterations = 50;
+
+    private static final String LOG_TAG = "TestDeviceStressTest";
+    private static final int TEST_FILE_COUNT= 200;
+    private ITestDevice mTestDevice;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mTestDevice = getDevice();
+    }
+
+    private File createTempTestFiles() throws IOException {
+        File tmpDir = null;
+        File tmpFile = null;
+
+        tmpDir = FileUtil.createTempDir("testDir");
+
+        final String fileContents = "this is the test file contents";
+        for (int i = 0; i < TEST_FILE_COUNT; i++) {
+            tmpFile = FileUtil.createTempFile(String.format("tmp_%d", i), ".txt", tmpDir);
+            FileUtil.writeToFile(fileContents, tmpFile);
+        }
+        return tmpDir;
+
+    }
+
+    /**
+     * Stress test to push a folder which contains 200 text file to device
+     * internal storage.
+     */
+    public void testPushFolderWithManyFiles() throws IOException, DeviceNotAvailableException {
+        File tmpDir = null;
+        String deviceFilePath = null;
+        String externalStorePath = mTestDevice.getMountPoint(IDevice.MNT_EXTERNAL_STORAGE);
+        assertNotNull(externalStorePath);
+        deviceFilePath = String.format("%s/%s", externalStorePath, "testDir");
+
+        // start the stress test
+        try {
+            // Create the test folder and make sure the test folder doesn't exist in
+            // device before the test start.
+            tmpDir = createTempTestFiles();
+            for (int i = 0; i < mIterations; i++) {
+                mTestDevice.executeShellCommand(String.format("rm -r %s", deviceFilePath));
+                assertFalse(String.format("%s exists", deviceFilePath),
+                        mTestDevice.doesFileExist(deviceFilePath));
+                assertTrue(mTestDevice.pushDir(tmpDir, deviceFilePath));
+                assertTrue(mTestDevice.doesFileExist(deviceFilePath));
+            }
+        } finally {
+            if (tmpDir != null) {
+                FileUtil.recursiveDelete(tmpDir);
+            }
+            mTestDevice.executeShellCommand(String.format("rm -r %s", deviceFilePath));
+            assertFalse(String.format("%s exists", deviceFilePath),
+                    mTestDevice.doesFileExist(deviceFilePath));
+        }
+    }
+}
diff --git a/hostsidetests/appsecurity/test-apps/AppAccessData/src/com/android/cts/appaccessdata/AccessPrivateDataTest.java b/hostsidetests/appsecurity/test-apps/AppAccessData/src/com/android/cts/appaccessdata/AccessPrivateDataTest.java
index 8a44dfa..40d3cff 100644
--- a/hostsidetests/appsecurity/test-apps/AppAccessData/src/com/android/cts/appaccessdata/AccessPrivateDataTest.java
+++ b/hostsidetests/appsecurity/test-apps/AppAccessData/src/com/android/cts/appaccessdata/AccessPrivateDataTest.java
@@ -16,21 +16,24 @@
 
 package com.android.cts.appaccessdata;
 
+import java.io.BufferedReader;
+import java.io.DataInputStream;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
+import java.io.FileReader;
 import java.io.IOException;
 
 import android.test.AndroidTestCase;
 
 /**
- * Test that another app's private data cannot be accessed.
+ * Test that another app's private data cannot be accessed, while its public data can.
  *
- * Assumes that {@link APP_WITH_DATA_PKG} has already created the private data.
+ * Assumes that {@link APP_WITH_DATA_PKG} has already created the private and public data.
  */
 public class AccessPrivateDataTest extends AndroidTestCase {
 
     /**
-     * The Android package name of the application that owns the private data
+     * The Android package name of the application that owns the data
      */
     private static final String APP_WITH_DATA_PKG = "com.android.cts.appwithdata";
 
@@ -39,9 +42,15 @@
      * {@link APP_WITH_DATA_PKG}.
      */
     private static final String PRIVATE_FILE_NAME = "private_file.txt";
+    /**
+     * Name of public file to access. This must match the name of the file created by
+     * {@link APP_WITH_DATA_PKG}.
+     */
+    private static final String PUBLIC_FILE_NAME = "public_file.txt";
 
     /**
-     * Tests that another app's private file cannot be accessed
+     * Tests that another app's private data cannot be accessed. It includes file
+     * and detailed traffic stats.
      * @throws IOException
      */
     public void testAccessPrivateData() throws IOException {
@@ -58,5 +67,60 @@
         } catch (SecurityException e) {
             // also valid
         }
+        accessPrivateTrafficStats();
+    }
+
+    /**
+     * Tests that another app's public file can be accessed
+     * @throws IOException
+     */
+    public void testAccessPublicData() throws IOException {
+        try {
+            getOtherAppUid();
+        } catch (FileNotFoundException e) {
+            fail("Was not able to access another app's public file: " + e);
+        } catch (SecurityException e) {
+            fail("Was not able to access another app's public file: " + e);
+        }
+    }
+
+    private int getOtherAppUid() throws IOException, FileNotFoundException, SecurityException {
+        // construct the absolute file path to the other app's public file
+        String publicFilePath = String.format("/data/data/%s/files/%s", APP_WITH_DATA_PKG,
+                PUBLIC_FILE_NAME);
+        DataInputStream inputStream = new DataInputStream(new FileInputStream(publicFilePath));
+        int otherAppUid = (int)inputStream.readInt();
+        inputStream.close();
+        return otherAppUid;
+    }
+
+    private void accessPrivateTrafficStats() throws IOException {
+        int otherAppUid = -1;
+        try {
+            otherAppUid = getOtherAppUid();
+        } catch (FileNotFoundException e) {
+            fail("Was not able to access another app's public file: " + e);
+        } catch (SecurityException e) {
+            fail("Was not able to access another app's public file: " + e);
+        }
+
+        boolean foundOtherStats = false;
+        try {
+            BufferedReader qtaguidReader = new BufferedReader(new FileReader("/proc/net/xt_qtaguid/stats"));
+            String line;
+            while ((line = qtaguidReader.readLine()) != null) {
+                String tokens[] = line.split(" ");
+                if (tokens.length > 3 && tokens[3].equals(String.valueOf(otherAppUid))) {
+                    foundOtherStats = true;
+                    if (!tokens[2].equals("0x0")) {
+                        fail("Other apps detailed traffic stats leaked");
+                    }
+                }
+            }
+            qtaguidReader.close();
+        } catch (FileNotFoundException e) {
+            fail("Was not able to access qtaguid/stats: " + e);
+        }
+        assertTrue("Was expecting to find other apps' traffic stats", foundOtherStats);
     }
 }
diff --git a/hostsidetests/appsecurity/test-apps/AppWithData/AndroidManifest.xml b/hostsidetests/appsecurity/test-apps/AppWithData/AndroidManifest.xml
index 4b10030..9decbcd 100644
--- a/hostsidetests/appsecurity/test-apps/AppWithData/AndroidManifest.xml
+++ b/hostsidetests/appsecurity/test-apps/AppWithData/AndroidManifest.xml
@@ -22,6 +22,7 @@
     access.
     -->
 
+    <uses-permission android:name="android.permission.INTERNET" />
     <application>
         <uses-library android:name="android.test.runner" />
     </application>
diff --git a/hostsidetests/appsecurity/test-apps/AppWithData/src/com/android/cts/appwithdata/CreatePrivateDataTest.java b/hostsidetests/appsecurity/test-apps/AppWithData/src/com/android/cts/appwithdata/CreatePrivateDataTest.java
index 1de6464..e11681a 100644
--- a/hostsidetests/appsecurity/test-apps/AppWithData/src/com/android/cts/appwithdata/CreatePrivateDataTest.java
+++ b/hostsidetests/appsecurity/test-apps/AppWithData/src/com/android/cts/appwithdata/CreatePrivateDataTest.java
@@ -22,10 +22,23 @@
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteOpenHelper;
+import android.net.TrafficStats;
 import android.test.AndroidTestCase;
+import android.util.Log;
 
+import java.net.ServerSocket;
+import java.net.Socket;
+
+import java.io.BufferedReader;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
+import java.io.FileReader;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 
 /**
  * Test that will create private app data.
@@ -36,9 +49,15 @@
 public class CreatePrivateDataTest extends AndroidTestCase {
 
     /**
+     * The Android package name of the application that owns the private data
+     */
+    private static final String APP_WITH_DATA_PKG = "com.android.cts.appwithdata";
+
+    /**
      * Name of private file to create.
      */
     private static final String PRIVATE_FILE_NAME = "private_file.txt";
+    private static final String PUBLIC_FILE_NAME = "public_file.txt";
 
     private static final String PREFERENCES_FILE_NAME = "preferences";
     private static final String PREFERENCE_KEY = "preference_key";
@@ -49,7 +68,8 @@
     static final String DB_VALUE = "test_value";
 
     /**
-     * Creates a file private to this app
+     * Creates the private data for this app, which includes
+     * file, database entries, and traffic stats.
      * @throws IOException if any error occurred when creating the file
      */
     public void testCreatePrivateData() throws IOException {
@@ -59,8 +79,34 @@
         outputStream.close();
         assertTrue(getContext().getFileStreamPath(PRIVATE_FILE_NAME).exists());
 
+        outputStream = getContext().openFileOutput(PUBLIC_FILE_NAME,
+                Context.MODE_WORLD_READABLE);
+        DataOutputStream dataOut = new DataOutputStream(outputStream);
+        dataOut.writeInt(getContext().getApplicationInfo().uid);
+        dataOut.close();
+        outputStream.close();
+        // Ensure that some file will be accessible via the same path that will be used by other app.
+        accessPublicData();
+
         writeToPreferences();
         writeToDatabase();
+        createTrafficStatsWithTags();
+    }
+
+    private void accessPublicData() throws IOException {
+        try {
+            // construct the absolute file path to the app's public's file the same
+            // way as the appaccessdata package will.
+            String publicFilePath = String.format("/data/data/%s/files/%s", APP_WITH_DATA_PKG,
+                    PUBLIC_FILE_NAME);
+            DataInputStream inputStream = new DataInputStream(new FileInputStream(publicFilePath));
+            int otherAppUid = (int)inputStream.readInt();
+            inputStream.close();
+        } catch (FileNotFoundException e) {
+            fail("Was not able to access own public file: " + e);
+        } catch (SecurityException e) {
+            fail("Was not able to access own public file: " + e);
+        }
     }
 
     private void writeToPreferences() {
@@ -127,6 +173,76 @@
         }
     }
 
+    private void accessOwnTrafficStats() throws IOException {
+        final int ownAppUid = getContext().getApplicationInfo().uid;
+
+        boolean foundOwnDetailedStats = false;
+        try {
+            BufferedReader qtaguidReader = new BufferedReader(new FileReader("/proc/net/xt_qtaguid/stats"));
+            String line;
+            while ((line = qtaguidReader.readLine()) != null) {
+                String tokens[] = line.split(" ");
+                if (tokens.length > 3 && tokens[3].equals(String.valueOf(ownAppUid))) {
+                    if (!tokens[2].equals("0x0")) {
+                      foundOwnDetailedStats = true;
+                    }
+                }
+            }
+            qtaguidReader.close();
+        } catch (FileNotFoundException e) {
+            fail("Was not able to access qtaguid/stats: " + e);
+        }
+        assertTrue("Was expecting to find own traffic stats", foundOwnDetailedStats);
+    }
+
+    private void createTrafficStatsWithTags() throws IOException {
+
+        // Transfer 1MB of data across an explicitly localhost socket.
+        final int byteCount = 1024;
+        final int packetCount = 1024;
+
+        final ServerSocket server = new ServerSocket(0);
+        new Thread("CreatePrivateDataTest.createTrafficStatsWithTags") {
+            @Override
+            public void run() {
+                try {
+                    Socket socket = new Socket("localhost", server.getLocalPort());
+                    // Make sure that each write()+flush() turns into a packet:
+                    // disable Nagle.
+                    socket.setTcpNoDelay(true);
+                    OutputStream out = socket.getOutputStream();
+                    byte[] buf = new byte[byteCount];
+                    for (int i = 0; i < packetCount; i++) {
+                        TrafficStats.setThreadStatsTag(i % 10);
+                        TrafficStats.tagSocket(socket);
+                        out.write(buf);
+                        out.flush();
+                    }
+                    out.close();
+                    socket.close();
+                } catch (IOException e) {
+                  assertTrue("io exception" + e, false);
+                }
+            }
+        }.start();
+
+        try {
+            Socket socket = server.accept();
+            InputStream in = socket.getInputStream();
+            byte[] buf = new byte[byteCount];
+            int read = 0;
+            while (read < byteCount * packetCount) {
+                int n = in.read(buf);
+                assertTrue("Unexpected EOF", n > 0);
+                read += n;
+            }
+        } finally {
+            server.close();
+        }
+
+        accessOwnTrafficStats();
+    }
+
     static class TestDatabaseOpenHelper extends SQLiteOpenHelper {
 
         static final String _ID = "_id";
diff --git a/hostsidetests/appsecurity/test-apps/UsePermissionDiffCert/src/com/android/cts/usespermissiondiffcertapp/AccessPermissionWithDiffSigTest.java b/hostsidetests/appsecurity/test-apps/UsePermissionDiffCert/src/com/android/cts/usespermissiondiffcertapp/AccessPermissionWithDiffSigTest.java
index e7d333c..8f40cf1 100644
--- a/hostsidetests/appsecurity/test-apps/UsePermissionDiffCert/src/com/android/cts/usespermissiondiffcertapp/AccessPermissionWithDiffSigTest.java
+++ b/hostsidetests/appsecurity/test-apps/UsePermissionDiffCert/src/com/android/cts/usespermissiondiffcertapp/AccessPermissionWithDiffSigTest.java
@@ -102,7 +102,7 @@
         }
     }
 
-    public void assertWritingContentUriNotAllowed(Uri uri, String msg) {
+    private void assertWritingContentUriNotAllowed(Uri uri, String msg) {
         final ContentResolver resolver = getContext().getContentResolver();
         try {
             resolver.insert(uri, new ContentValues());
diff --git a/hostsidetests/monkey/Android.mk b/hostsidetests/monkey/Android.mk
index 8a73df3..45d2e37 100644
--- a/hostsidetests/monkey/Android.mk
+++ b/hostsidetests/monkey/Android.mk
@@ -24,7 +24,8 @@
 
 LOCAL_JAVA_LIBRARIES := cts-tradefed tradefed-prebuilt ddmlib-prebuilt junit
 
-LOCAL_CTS_TEST_PACKAGE := android.monkey
+# prefix zzz intentional to run this last
+LOCAL_CTS_TEST_PACKAGE := zzz.android.monkey
 
 include $(BUILD_CTS_HOST_JAVA_LIBRARY)
 
diff --git a/hostsidetests/monkey/src/com/android/cts/monkey/AbstractMonkeyTest.java b/hostsidetests/monkey/src/com/android/cts/monkey/AbstractMonkeyTest.java
index 8580a9d..9c27b62 100644
--- a/hostsidetests/monkey/src/com/android/cts/monkey/AbstractMonkeyTest.java
+++ b/hostsidetests/monkey/src/com/android/cts/monkey/AbstractMonkeyTest.java
@@ -17,7 +17,7 @@
     /** 
      * Base monkey command with flags to avoid side effects like airplane mode.
      */
-    static final String MONKEY_CMD = "monkey --pct-touch 0 --pct-motion 0 --pct-majornav 0 --pct-syskeys 0 --pct-anyevent 0";
+    static final String MONKEY_CMD = "monkey --pct-touch 0 --pct-motion 0 --pct-majornav 0 --pct-syskeys 0 --pct-anyevent 0 --pct-rotation 0";
 
     CtsBuildHelper mBuild;
     ITestDevice mDevice;
diff --git a/hostsidetests/theme/assets/18/400dpi.zip b/hostsidetests/theme/assets/18/400dpi.zip
new file mode 100644
index 0000000..21d2ea8
--- /dev/null
+++ b/hostsidetests/theme/assets/18/400dpi.zip
Binary files differ
diff --git a/hostsidetests/theme/assets/18/hdpi.zip b/hostsidetests/theme/assets/18/hdpi.zip
new file mode 100644
index 0000000..3f7fb6d
--- /dev/null
+++ b/hostsidetests/theme/assets/18/hdpi.zip
Binary files differ
diff --git a/hostsidetests/theme/assets/18/ldpi.zip b/hostsidetests/theme/assets/18/ldpi.zip
new file mode 100644
index 0000000..957a6e3
--- /dev/null
+++ b/hostsidetests/theme/assets/18/ldpi.zip
Binary files differ
diff --git a/hostsidetests/theme/assets/18/mdpi.zip b/hostsidetests/theme/assets/18/mdpi.zip
new file mode 100644
index 0000000..833a8d5
--- /dev/null
+++ b/hostsidetests/theme/assets/18/mdpi.zip
Binary files differ
diff --git a/hostsidetests/theme/assets/18/tvdpi.zip b/hostsidetests/theme/assets/18/tvdpi.zip
new file mode 100644
index 0000000..017f059
--- /dev/null
+++ b/hostsidetests/theme/assets/18/tvdpi.zip
Binary files differ
diff --git a/hostsidetests/theme/assets/18/xhdpi.zip b/hostsidetests/theme/assets/18/xhdpi.zip
new file mode 100644
index 0000000..4bcdcae
--- /dev/null
+++ b/hostsidetests/theme/assets/18/xhdpi.zip
Binary files differ
diff --git a/libs/testserver/src/android/webkit/cts/CtsTestServer.java b/libs/testserver/src/android/webkit/cts/CtsTestServer.java
index 16d57ea..0d1db19 100755
--- a/libs/testserver/src/android/webkit/cts/CtsTestServer.java
+++ b/libs/testserver/src/android/webkit/cts/CtsTestServer.java
@@ -67,7 +67,9 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Hashtable;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Vector;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -129,9 +131,8 @@
     private Resources mResources;
     private boolean mSsl;
     private MimeTypeMap mMap;
-    private String mLastQuery;
+    private Vector<String> mQueries;
     private ArrayList<HttpEntity> mRequestEntities;
-    private int mRequestCount;
     private long mDocValidity;
     private long mDocAge;
 
@@ -168,6 +169,7 @@
         mSsl = ssl;
         mRequestEntities = new ArrayList<HttpEntity>();
         mMap = MimeTypeMap.getSingleton();
+        mQueries = new Vector<String>();
         mServerThread = new ServerThread(this, mSsl);
         if (mSsl) {
             mServerUri = "https://localhost:" + mServerThread.mSocket.getLocalPort();
@@ -379,8 +381,21 @@
                 .toString();
     }
 
-    public synchronized String getLastRequestUrl() {
-        return mLastQuery;
+    /**
+     * Returns true if the resource identified by url has been requested since
+     * the server was started or the last call to resetRequestState().
+     *
+     * @param url The relative url to check whether it has been requested.
+     */
+    public synchronized boolean wasResourceRequested(String url) {
+        Iterator<String> it = mQueries.iterator();
+        while (it.hasNext()) {
+            String request = it.next();
+            if (request.endsWith(url)) {
+                return true;
+            }
+        }
+        return false;
     }
 
     /**
@@ -391,7 +406,7 @@
     }
 
     public synchronized int getRequestCount() {
-        return mRequestCount;
+        return mQueries.size();
     }
 
     /**
@@ -417,30 +432,44 @@
      */
     public synchronized void resetRequestState() {
 
-        mRequestCount = 0;
-        mLastQuery = null;
+        mQueries.clear();
         mRequestEntities = new ArrayList<HttpEntity>();
     }
 
     /**
+     * Hook for adding stuffs for HTTP POST. Default implementation does nothing.
+     * @return null to use the default response mechanism of sending the requested uri as it is.
+     *         Otherwise, the whole response should be handled inside onPost.
+     */
+    protected HttpResponse onPost(HttpRequest request) throws Exception {
+        return null;
+    }
+
+    /**
      * Generate a response to the given request.
      * @throws InterruptedException
      * @throws IOException
      */
-    private HttpResponse getResponse(HttpRequest request) throws InterruptedException, IOException {
+    private HttpResponse getResponse(HttpRequest request) throws Exception {
         RequestLine requestLine = request.getRequestLine();
         HttpResponse response = null;
         String uriString = requestLine.getUri();
         Log.i(TAG, requestLine.getMethod() + ": " + uriString);
 
         synchronized (this) {
-            mRequestCount += 1;
-            mLastQuery = uriString;
+            mQueries.add(uriString);
             if (request instanceof HttpEntityEnclosingRequest) {
                 mRequestEntities.add(((HttpEntityEnclosingRequest)request).getEntity());
             }
         }
 
+        if (requestLine.getMethod().equals("POST")) {
+            HttpResponse responseOnPost = onPost(request);
+            if (responseOnPost != null) {
+                return responseOnPost;
+            }
+        }
+
         URI uri = URI.create(uriString);
         String path = uri.getPath();
         String query = uri.getQuery();
@@ -544,12 +573,11 @@
             Header[] cookies = request.getHeaders("Cookie");
             Pattern p = Pattern.compile("count=(\\d+)");
             StringBuilder cookieString = new StringBuilder(100);
+            cookieString.append(cookies.length);
             int count = 0;
             for (Header cookie : cookies) {
+                cookieString.append("|");
                 String value = cookie.getValue();
-                if (cookieString.length() > 0) {
-                    cookieString.append("|");
-                }
                 cookieString.append(value);
                 Matcher m = p.matcher(value);
                 if (m.find()) {
@@ -864,7 +892,7 @@
             }
 
             @Override
-            public Void call() throws IOException, InterruptedException, HttpException {
+            public Void call() throws Exception {
                 HttpResponse response = mServer.getResponse(mRequest);
                 mConnection.sendResponseHeader(response);
                 mConnection.sendResponseEntity(response);
diff --git a/tests/tests/openglperf/src/android/openglperf/cts/RenderingWatchDog.java b/libs/util/src/android/cts/util/WatchDog.java
similarity index 72%
rename from tests/tests/openglperf/src/android/openglperf/cts/RenderingWatchDog.java
rename to libs/util/src/android/cts/util/WatchDog.java
index 4872af2..ab2a9d9 100644
--- a/tests/tests/openglperf/src/android/openglperf/cts/RenderingWatchDog.java
+++ b/libs/util/src/android/cts/util/WatchDog.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.openglperf.cts;
+package android.cts.util;
 
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
@@ -26,17 +26,23 @@
  * class for checking if rendering function is alive or not.
  * panic if watch-dog is not reset over certain amount of time
  */
-public class RenderingWatchDog implements Runnable {
-    private static final String TAG = "RenderingWatchDog";
+public class WatchDog implements Runnable {
+    private static final String TAG = "WatchDog";
     private Thread mThread;
     private Semaphore mSemaphore;
     private volatile boolean mStopRequested;
     private final long mTimeoutInMilliSecs;
+    private TimeoutCallback mCallback = null;
 
-    public RenderingWatchDog(long timeoutInMilliSecs) {
+    public WatchDog(long timeoutInMilliSecs) {
         mTimeoutInMilliSecs = timeoutInMilliSecs;
     }
 
+    public WatchDog(long timeoutInMilliSecs, TimeoutCallback callback) {
+        this(timeoutInMilliSecs);
+        mCallback = callback;
+    }
+
     /** start watch-dog */
     public void start() {
         Log.i(TAG, "start");
@@ -74,12 +80,24 @@
     public void run() {
         while (!mStopRequested) {
             try {
-                Assert.assertTrue("Watchdog timed-out",
-                        mSemaphore.tryAcquire(mTimeoutInMilliSecs, TimeUnit.MILLISECONDS));
+                boolean success = mSemaphore.tryAcquire(mTimeoutInMilliSecs, TimeUnit.MILLISECONDS);
+                if (mCallback == null) {
+                    Assert.assertTrue("Watchdog timed-out", success);
+                } else if (!success) {
+                    mCallback.onTimeout();
+                }
             } catch (InterruptedException e) {
                 // this thread will not be interrupted,
                 // but if it happens, just check the exit condition.
             }
         }
     }
+
+    /**
+     * Called by the Watchdog when it has timed out.
+     */
+    public interface TimeoutCallback {
+
+        public void onTimeout();
+    }
 }
diff --git a/suite/pts/deviceTests/ptsutil/Android.mk b/libs/wrappedgtest/Android.mk
similarity index 78%
rename from suite/pts/deviceTests/ptsutil/Android.mk
rename to libs/wrappedgtest/Android.mk
index d488442..f89ba9d 100644
--- a/suite/pts/deviceTests/ptsutil/Android.mk
+++ b/libs/wrappedgtest/Android.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2012 The Android Open Source Project
+# Copyright 2012 The Android Open Source Project
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -20,12 +20,6 @@
 
 LOCAL_MODULE_TAGS := optional
 
-LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
-
-LOCAL_MODULE := ptsutil
-
-LOCAL_STATIC_JAVA_LIBRARIES := ptscommonutil
-
-LOCAL_SDK_VERSION := 16
+LOCAL_MODULE := ctswrappedgtest
 
 include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/libs/wrappedgtest/src/WrappedGTestActivity.java b/libs/wrappedgtest/src/WrappedGTestActivity.java
new file mode 100644
index 0000000..0633a5b
--- /dev/null
+++ b/libs/wrappedgtest/src/WrappedGTestActivity.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2012 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.test.wrappedgtest;
+
+import android.app.Activity;
+import android.app.Instrumentation;
+import android.os.Bundle;
+
+public class WrappedGTestActivity extends Activity {
+
+    private WrappedGTestInstrumentation mInstrumentation;
+
+    public void setInstrumentation(WrappedGTestInstrumentation instrumentation) {
+        mInstrumentation = instrumentation;
+    }
+
+    public int runGTests() {
+        return runTests(this);
+    }
+
+    public void sendStatus(String output) {
+        Bundle outputBundle = new Bundle();
+        outputBundle.putString("gtest", output);
+        mInstrumentation.sendStatus(1, outputBundle);
+    }
+
+    protected static native int runTests(WrappedGTestActivity activity);
+}
diff --git a/libs/wrappedgtest/src/WrappedGTestInstrumentation.java b/libs/wrappedgtest/src/WrappedGTestInstrumentation.java
new file mode 100644
index 0000000..b29aaab
--- /dev/null
+++ b/libs/wrappedgtest/src/WrappedGTestInstrumentation.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2012 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.test.wrappedgtest;
+
+import android.app.Activity;
+import android.app.Instrumentation;
+import android.app.KeyguardManager;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+
+
+public class WrappedGTestInstrumentation extends Instrumentation {
+
+    private static final String TAG = "WrappedGTestInstrumentation";
+    private WrappedGTestActivity mActivity;
+    protected Class mActivityClass;
+
+    public WrappedGTestInstrumentation() {
+    }
+
+    @Override
+    public void onCreate(Bundle arguments) {
+        // attempt to disable keyguard,  if current test has permission to do so
+        if (getContext().checkCallingOrSelfPermission(android.Manifest.permission.DISABLE_KEYGUARD)
+                == PackageManager.PERMISSION_GRANTED) {
+            Log.i(TAG, "Disabling keyguard");
+            KeyguardManager keyguardManager =
+                (KeyguardManager) getContext().getSystemService(Context.KEYGUARD_SERVICE);
+            keyguardManager.newKeyguardLock("cts").disableKeyguard();
+        } else {
+            Log.i(TAG, "Test lacks permission to disable keyguard. " +
+                    "UI based tests may fail if keyguard is up");
+        }
+        super.onCreate(arguments);
+        start();
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+
+        Intent intent = new Intent(getTargetContext(), mActivityClass);
+        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+        mActivity = (WrappedGTestActivity)startActivitySync(intent);
+        mActivity.setInstrumentation(this);
+        mActivity.runGTests();
+
+        finish(Activity.RESULT_OK, new Bundle());
+    }
+}
diff --git a/suite/audio_quality/client/AndroidManifest.xml b/suite/audio_quality/client/AndroidManifest.xml
index 9f1c6dd..70a6b7e 100644
--- a/suite/audio_quality/client/AndroidManifest.xml
+++ b/suite/audio_quality/client/AndroidManifest.xml
@@ -17,6 +17,7 @@
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.cts.audiotest" >
+<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
 <uses-permission android:name="android.permission.INTERNET"/>
 <uses-permission android:name="android.permission.RECORD_AUDIO"/>
 
@@ -24,7 +25,8 @@
         android:label="@string/app_name" >
         <activity
             android:name=".CtsAudioClientActivity"
-            android:label="@string/app_name" >
+            android:label="@string/app_name"
+            android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 
diff --git a/suite/audio_quality/client/src/com/android/cts/audiotest/CtsAudioClientActivity.java b/suite/audio_quality/client/src/com/android/cts/audiotest/CtsAudioClientActivity.java
index 7f801e8..7fc4960 100644
--- a/suite/audio_quality/client/src/com/android/cts/audiotest/CtsAudioClientActivity.java
+++ b/suite/audio_quality/client/src/com/android/cts/audiotest/CtsAudioClientActivity.java
@@ -17,6 +17,7 @@
 package com.android.cts.audiotest;
 
 import android.app.Activity;
+import android.app.KeyguardManager;
 import android.content.Context;
 import android.media.AudioManager;
 import android.os.Bundle;
@@ -54,6 +55,9 @@
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
+        KeyguardManager keyguardManager =
+            (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
+        keyguardManager.newKeyguardLock("cts-audio").disableKeyguard();
     }
 
     /**
diff --git a/suite/audio_quality/executable/src/main.cpp b/suite/audio_quality/executable/src/main.cpp
index cf33a0f..66d90cc 100644
--- a/suite/audio_quality/executable/src/main.cpp
+++ b/suite/audio_quality/executable/src/main.cpp
@@ -61,7 +61,7 @@
         fprintf(stderr, "%s [-l log_level][-s serial] test_xml\n", argv[0]);
         return 1;
     }
-    int logLevel = Log::ELogE;
+    int logLevel = Log::ELogW;
     char* serial = NULL;
     int opt;
     while ((opt = getopt(argc, argv, "l:s:")) != -1) {
diff --git a/suite/audio_quality/lib/src/audio/AudioHardware.cpp b/suite/audio_quality/lib/src/audio/AudioHardware.cpp
index eeb70f5..0eebe0a 100644
--- a/suite/audio_quality/lib/src/audio/AudioHardware.cpp
+++ b/suite/audio_quality/lib/src/audio/AudioHardware.cpp
@@ -34,7 +34,11 @@
 int AudioHardware::detectAudioHw()
 {
     android::String8 script("test_description/conf/detect_usb_audio.py");
-    android::String8 param("MobilePre");
+    /* This is the list of supported devices.
+       MobilePre: M-Audio MobilePre
+       Track: M-Audio FastTrack
+     */
+    android::String8 param("MobilePre Track");
     android::String8 resultStr;
     if (!SimpleScriptExec::runScript(script, param, resultStr)) {
         LOGE("cannot run script");
diff --git a/suite/audio_quality/test/MixerTest.cpp b/suite/audio_quality/test/MixerTest.cpp
index 308822c..96c23ed 100644
--- a/suite/audio_quality/test/MixerTest.cpp
+++ b/suite/audio_quality/test/MixerTest.cpp
@@ -40,9 +40,7 @@
     struct mixer* mixerp = mixer_open(hwId);
     ASSERT_TRUE(mixerp != NULL);
     int num_ctls = mixer_get_num_ctls(mixerp);
-    // no mixer control for MobilePre. If this assumption fails,
-    // mixer control should be added.
-    ASSERT_TRUE(num_ctls == 0);
+    LOGI("Number of mixel control %d", num_ctls);
     for (int i = 0; i < num_ctls; i++) {
         struct mixer_ctl* control = mixer_get_ctl(mixerp, i);
         ASSERT_TRUE(control != NULL);
@@ -50,6 +48,9 @@
                 mixer_ctl_get_type_string(control), mixer_ctl_get_num_values(control));
         free(control);
     }
+    // no mixer control for MobilePre. If this assumption fails,
+    // mixer control should be added.
+    ASSERT_TRUE(num_ctls == 0);
     mixer_close(mixerp);
 }
 
diff --git a/suite/audio_quality/test_description/dut_playback_spectrum.xml b/suite/audio_quality/test_description/dut_playback_spectrum.xml
index d945ff6..90a5a3d 100644
--- a/suite/audio_quality/test_description/dut_playback_spectrum.xml
+++ b/suite/audio_quality/test_description/dut_playback_spectrum.xml
@@ -28,7 +28,7 @@
 		</sequential>
 		<sequential repeat="1" index="k">
 			<!-- input: host record, device record, samping rate, low frequency in Hz, high frequency in Hz, allowed error for pass in smaller side, allowed error in bigger side%, output: min value in lower side calculated normalized to 1.0, max value in higher side, calculated amplitude ratio in mannitude only between low f to high f -->
-			<process method="script:check_spectrum" input="id:sound1,id:host_in_$k,consti:44100,consti:500,consti:8000,constf:85.0,constf:150.0" output="val:min_val_$k,val:max_val_$k,id:spectrum_$k" />
+			<process method="script:check_spectrum" input="id:sound1,id:host_in_$k,consti:44100,consti:500,consti:8000,constf:97.0,constf:200.0" output="val:min_val_$k,val:max_val_$k,id:spectrum_$k" />
 		</sequential>
 	</action>
 	<save file="sound1,host_in_.*,spectrum_.*" report="min_val_.*,max_val_.*" />
diff --git a/suite/audio_quality/test_description/dut_playback_thd.xml b/suite/audio_quality/test_description/dut_playback_thd.xml
index 819e17f..9e32756 100644
--- a/suite/audio_quality/test_description/dut_playback_thd.xml
+++ b/suite/audio_quality/test_description/dut_playback_thd.xml
@@ -31,7 +31,7 @@
 		</sequential>
 		<sequential repeat="1" index="k">
 			<!-- input: host record, signal frequency in Hz, THD for pass in percentile, output: THD calculated -->
-			<process method="script:playback_thd" input="id:host_in_$k,consti:1000,constf:1.0" output="val:thd_device_$k" />
+			<process method="script:playback_thd" input="id:host_in_$k,consti:1000,constf:5.0" output="val:thd_device_$k" />
 		</sequential>
 	</action>
 	<save file="host_in_.*" report="thd_.*" />
diff --git a/suite/audio_quality/test_description/dut_recording_spectrum.xml b/suite/audio_quality/test_description/dut_recording_spectrum.xml
index 2bfe661..a7373d2 100644
--- a/suite/audio_quality/test_description/dut_recording_spectrum.xml
+++ b/suite/audio_quality/test_description/dut_recording_spectrum.xml
@@ -32,7 +32,7 @@
 		</sequential>
 		<sequential repeat="5" index="k">
 			<!-- input: host record, device record, samping rate, low frequency in Hz, high frequency in Hz, allowed error for pass in smaller side, allowed error in bigger side%, output: min value in lower side calculated normalized to 1.0, max value in higher side, calculated amplitude ratio in mannitude only between low f to high f -->
-			<process method="script:check_spectrum" input="id:host_in_$k,id:dut_in_$k,consti:44100,consti:200,consti:4000,constf:50.0,constf:100.0" output="val:min_val_$k,val:max_val_$k,id:tf_$k" />
+			<process method="script:check_spectrum" input="id:host_in_$k,id:dut_in_$k,consti:44100,consti:200,consti:4000,constf:95.0,constf:200.0" output="val:min_val_$k,val:max_val_$k,id:tf_$k" />
 		</sequential>
 	</action>
 	<save file="sound1,host_in_.*,dut_in_.*,tf_.*" report="min_val_.*,max_val_.*" />
diff --git a/suite/audio_quality/test_description/dut_speaker_calibration.xml b/suite/audio_quality/test_description/dut_speaker_calibration.xml
index e0a613d..a70442c 100644
--- a/suite/audio_quality/test_description/dut_speaker_calibration.xml
+++ b/suite/audio_quality/test_description/dut_speaker_calibration.xml
@@ -18,7 +18,7 @@
 <case name="dut_speaker_calibration" version="1.0" description="Calibrate host recording gain">
 	<setup> <!-- 1 setup -->
 		<!-- prepare sound source id: to be used in output, sine 1000Hz, 20000ms long -->
-		<sound id="sound1" type="sin:32000:1000:5000" preload="1" />
+		<sound id="sound1" type="sin:32000:1000:20000" preload="1" />
 	</setup>
 
 	<action> <!-- 1 action -->
@@ -28,8 +28,8 @@
 			<!--  sync start : execute only sync complete : execute + complete
 			      For sync start, complete will be called when the parent completes -->
 			<output device="DUT" id="sound1" gain="100" sync="start"/>
-			<sequential repeat="8" index="j">
-				<input device="host" id="host_in" gain="100" time="500" sync="complete" />
+			<sequential repeat="50" index="j">
+				<input device="host" id="host_in" gain="100" time="250" sync="complete" />
 				<!-- ------------moving average RMS        min for pass, max for pass                result calculated -->
 				<process method="builtin:rms_mva" input="id:host_in,consti:1000,consti:8000" output="val:rms_$i_$j" />
 				<!-- <message input="val:passfail" output_low="Volume Low" output_ok="Volume OK" output_high="Volume High" /> -->
diff --git a/suite/audio_quality/test_description/dut_speaker_calibration_no_pass.xml b/suite/audio_quality/test_description/dut_speaker_calibration_no_pass.xml
index 6c97ddc..5ebdf8b 100644
--- a/suite/audio_quality/test_description/dut_speaker_calibration_no_pass.xml
+++ b/suite/audio_quality/test_description/dut_speaker_calibration_no_pass.xml
@@ -18,7 +18,7 @@
 <case name="dut_speaker_calibration" version="1.0" description="Calibrate host recording gain">
 	<setup> <!-- 1 setup -->
 		<!-- prepare sound source id: to be used in output, sine 1000Hz, 20000ms long -->
-		<sound id="sound1" type="sin:32000:1000:5000" preload="1" />
+		<sound id="sound1" type="sin:32000:1000:20000" preload="1" />
 	</setup>
 
 	<action> <!-- 1 action -->
@@ -28,8 +28,8 @@
 			<!--  sync start : execute only sync complete : execute + complete
 			      For sync start, complete will be called when the parent completes -->
 			<output device="DUT" id="sound1" gain="100" sync="start" waitforcompletion="1" />
-			<sequential repeat="8" index="j">
-				<input device="host" id="host_in" gain="100" time="500" sync="complete" />
+			<sequential repeat="50" index="j">
+				<input device="host" id="host_in" gain="100" time="250" sync="complete" />
 				<!-- ------------moving average RMS        min for pass, max for pass                result calculated -->
 				<process method="builtin:rms_mva" input="id:host_in,consti:2,consti:1" output="val:rms_$i_$j" />
 				<!-- <message input="val:passfail" output_low="Volume Low" output_ok="Volume OK" output_high="Volume High" /> -->
diff --git a/suite/audio_quality/test_description/host_speaker_calibration.xml b/suite/audio_quality/test_description/host_speaker_calibration.xml
index 576d999..7ec3b77 100644
--- a/suite/audio_quality/test_description/host_speaker_calibration.xml
+++ b/suite/audio_quality/test_description/host_speaker_calibration.xml
@@ -17,8 +17,8 @@
 
 <case name="host_speaker_calibration" version="1.0" description="Calibrate host speaker's volume.">
 	<setup> <!-- 1 setup -->
-		<!-- prepare sound source id: to be used in output, sine 1000Hz, 20000ms long -->
-		<sound id="sound1" type="sin:32000:1000:20000" />
+		<!-- prepare sound source id: to be used in output, sine 1000Hz, 30000ms long -->
+		<sound id="sound1" type="sin:32000:1000:30000" />
 	</setup>
 
 	<action> <!-- 1 action -->
@@ -28,10 +28,10 @@
 			<!--  sync start : execute only sync complete : execute + complete
 			      For sync start, complete will be called when the parent completes -->
 			<output device="host" id="sound1" gain="70" sync="start"/>
-			<sequential repeat="10" index="j">
-				<input device="host" id="host_in" gain="70" time="500" sync="complete" />
+			<sequential repeat="80" index="j">
+				<input device="host" id="host_in" gain="70" time="250" sync="complete" />
 				<!-- ------------moving average RMS        min for pass, max for pass                result calculated -->
-				<process method="builtin:rms_mva" input="id:host_in,consti:4000,consti:6000" output="val:rms_$i_$j" />
+				<process method="builtin:rms_mva" input="id:host_in,consti:2000,consti:6000" output="val:rms_$i_$j" />
 				<!-- <message input="val:passfail" output_low="Volume Low" output_ok="Volume OK" output_high="Volume High" /> -->
 			</sequential>
 		</sequential>
diff --git a/suite/audio_quality/test_description/host_speaker_calibration_no_pass.xml b/suite/audio_quality/test_description/host_speaker_calibration_no_pass.xml
index c2853af..a1d5afb 100644
--- a/suite/audio_quality/test_description/host_speaker_calibration_no_pass.xml
+++ b/suite/audio_quality/test_description/host_speaker_calibration_no_pass.xml
@@ -17,8 +17,8 @@
 
 <case name="host_speaker_calibration" version="1.0" description="Calibrate host speaker's volume.">
 	<setup> <!-- 1 setup -->
-		<!-- prepare sound source id: to be used in output, sine 1000Hz, 20000ms long -->
-		<sound id="sound1" type="sin:32000:1000:20000" />
+		<!-- prepare sound source id: to be used in output, sine 1000Hz, 30000ms long -->
+		<sound id="sound1" type="sin:32000:1000:30000" />
 	</setup>
 
 	<action> <!-- 1 action -->
@@ -28,8 +28,8 @@
 			<!--  sync start : execute only sync complete : execute + complete
 			      For sync start, complete will be called when the parent completes -->
 			<output device="host" id="sound1" gain="70" sync="start"/>
-			<sequential repeat="10" index="j">
-				<input device="host" id="host_in" gain="70" time="500" sync="complete" />
+			<sequential repeat="80" index="j">
+				<input device="host" id="host_in" gain="70" time="250" sync="complete" />
 				<!-- ------------moving average RMS        min for pass, max for pass                result calculated -->
 				<process method="builtin:rms_mva" input="id:host_in,consti:2,consti:1" output="val:rms_$i_$j" />
 				<!-- <message input="val:passfail" output_low="Volume Low" output_ok="Volume OK" output_high="Volume High" /> -->
diff --git a/suite/pts/Android.mk b/suite/pts/Android.mk
deleted file mode 100644
index 07b30e3..0000000
--- a/suite/pts/Android.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Copyright (C) 2012 The Android Open Source Project
-#
-# 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.
-#
-
-include cts/suite/pts/PtsBuild.mk
-include $(call all-subdir-makefiles)
diff --git a/suite/pts/PtsBuild.mk b/suite/pts/PtsBuild.mk
deleted file mode 100644
index 18306b9..0000000
--- a/suite/pts/PtsBuild.mk
+++ /dev/null
@@ -1,152 +0,0 @@
-#
-# Copyright (C) 2012 The Android Open Source Project
-#
-# 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.
-#
-
-# several makefiles for CTS merged for PTS
-
-LOCAL_PATH:= $(call my-dir)
-
-# New packages should be added here
-PTS_TEST_PACKAGES := \
-    PtsDeviceFilePerf \
-    PtsDeviceUi \
-    PtsDeviceDram
-
-
-PTS_SUPPORT_PACKAGES := \
-    TestDeviceSetup \
-    PtsDeviceTaskswitchingAppA \
-    PtsDeviceTaskswitchingAppB \
-    PtsDeviceTaskswitchingControl \
-    com.replica.replicaisland \
-    PtsDeviceBrowserLauncher
-
-PTS_HOST_CASES := \
-    PtsHostBootup \
-    PtsHostUi \
-    PtsHostBrowser
-
-PTS_HOST_LIBS := \
-    $(HOST_OUT_JAVA_LIBRARIES)/ptscommonutilhost.jar \
-    $(HOST_OUT_JAVA_LIBRARIES)/ptshostutil.jar
-
-BUILD_PTS_PACKAGE := cts/suite/pts/build/test_package.mk
-BUILD_PTS_HOST_JAVA_LIBRARY := cts/suite/pts/build/test_host_java_library.mk
-
-PTS_JAVA_TEST_SCANNER := $(HOST_OUT_EXECUTABLES)/cts-java-scanner
-PTS_JAVA_TEST_SCANNER_DOCLET := $(HOST_OUT_JAVA_LIBRARIES)/cts-java-scanner-doclet.jar
-
-# Generator of test XMLs from scanner output.
-PTS_XML_GENERATOR := $(HOST_OUT_EXECUTABLES)/cts-xml-generator
-
-# File indicating which tests should be blacklisted due to problems.
-PTS_EXPECTATIONS := cts/suite/pts/expectations/knownfailures.txt
-
-PTS_TESTCASES_OUT := $(HOST_OUT)/pts-testcases
-
-define pts-get-package-paths
-	$(foreach pkg,$(1),$(PTS_TESTCASES_OUT)/$(pkg).apk)
-endef
-
-define pts-get-test-xmls
-	$(foreach name,$(1),$(PTS_TESTCASES_OUT)/$(name).xml)
-endef
-
-define pts-get-lib-paths
-	$(foreach lib,$(1),$(HOST_OUT_JAVA_LIBRARIES)/$(lib).jar)
-endef
-
-PTS_TEST_CASE_LIST := \
-	$(PTS_SUPPORT_PACKAGES)
-
-PTS_TEST_CASES := \
-		$(call pts-get-package-paths,$(PTS_TEST_PACKAGES)) \
-		$(call pts-get-lib-paths,$(PTS_HOST_CASES))
-
-PTS_TEST_XMLS := \
-    $(call pts-get-test-xmls,$(PTS_TEST_PACKAGES)) \
-    $(call pts-get-test-xmls,$(PTS_HOST_CASES))
-
-pts_dir := $(HOST_OUT)/pts
-pts_tools_src_dir := cts/tools
-
-pts_name := android-pts
-
-DDMLIB_JAR := $(HOST_OUT_JAVA_LIBRARIES)/ddmlib-prebuilt.jar
-junit_host_jar := $(HOST_OUT_JAVA_LIBRARIES)/junit.jar
-HOSTTESTLIB_JAR := $(HOST_OUT_JAVA_LIBRARIES)/hosttestlib.jar
-TF_JAR := $(HOST_OUT_JAVA_LIBRARIES)/tradefed-prebuilt.jar
-PTS_TF_JAR := $(HOST_OUT_JAVA_LIBRARIES)/cts-tradefed.jar
-PTS_TF_EXEC := $(HOST_OUT_EXECUTABLES)/pts-tradefed
-PTS_TF_README := $(pts_tools_src_dir)/tradefed-host/README
-
-
-DEFAULT_TEST_PLAN := $(pts_dir)/$(pts_name)/resource/plans/PTS.xml
-
-$(pts_dir)/all_pts_files_stamp: PRIVATE_JUNIT_HOST_JAR := $(junit_host_jar)
-
-$(pts_dir)/all_pts_files_stamp: $(PTS_TEST_CASES) $(PTS_TEST_CASE_LIST) $(junit_host_jar) $(HOSTTESTLIB_JAR) $(PTS_HOST_LIBRARY_JARS) $(TF_JAR) $(VMTESTSTF_JAR) $(PTS_TF_JAR) $(PTS_TF_EXEC) $(PTS_TF_README) $(ACP) $(PTS_HOST_LIBS)
-# Make necessary directory for PTS
-	$(hide) rm -rf $(PRIVATE_PTS_DIR)
-	$(hide) mkdir -p $(TMP_DIR)
-	$(hide) mkdir -p $(PRIVATE_DIR)/docs
-	$(hide) mkdir -p $(PRIVATE_DIR)/tools
-	$(hide) mkdir -p $(PRIVATE_DIR)/repository/testcases
-	$(hide) mkdir -p $(PRIVATE_DIR)/repository/plans
-# Copy executable and JARs to PTS directory
-	$(hide) $(ACP) -fp $(DDMLIB_JAR) $(PRIVATE_JUNIT_HOST_JAR) $(HOSTTESTLIB_JAR) $(PTS_HOST_LIBRARY_JARS) $(TF_JAR) $(PTS_TF_JAR) $(PTS_TF_EXEC) $(PTS_TF_README) $(PTS_HOST_LIBS) $(PRIVATE_DIR)/tools
-# Change mode of the executables
-	$(foreach apk,$(PTS_TEST_CASE_LIST),$(call copy-testcase-apk,$(apk)))
-	$(foreach testcase,$(PTS_TEST_CASES),$(call copy-testcase,$(testcase)))
-	$(hide) touch $@
-
-# Generate the default test plan for User.
-# Usage: buildCts.py <testRoot> <ctsOutputDir> <tempDir> <androidRootDir> <docletPath>
-
-$(DEFAULT_TEST_PLAN): $(pts_dir)/all_pts_files_stamp $(pts_tools_src_dir)/utils/buildCts.py $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar $(PTS_TEST_XMLS) | $(ACP)
-	$(hide) $(ACP) -fp $(PTS_TEST_XMLS) $(PRIVATE_DIR)/repository/testcases
-	$(hide) $(pts_tools_src_dir)/utils/buildCts.py cts/suite/pts $(PRIVATE_DIR) $(TMP_DIR) \
-		$(TOP) $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar -pts
-
-# Package PTS and clean up.
-INTERNAL_PTS_TARGET := $(pts_dir)/$(pts_name).zip
-$(INTERNAL_PTS_TARGET): PRIVATE_NAME := $(pts_name)
-$(INTERNAL_PTS_TARGET): PRIVATE_PTS_DIR := $(pts_dir)
-$(INTERNAL_PTS_TARGET): PRIVATE_DIR := $(pts_dir)/$(pts_name)
-$(INTERNAL_PTS_TARGET): TMP_DIR := $(pts_dir)/temp
-$(INTERNAL_PTS_TARGET): $(pts_dir)/all_pts_files_stamp $(DEFAULT_TEST_PLAN)
-	$(hide) echo "Package PTS: $@"
-	$(hide) cd $(dir $@) && zip -rq $(notdir $@) $(PRIVATE_NAME)
-
-.PHONY: pts
-pts: $(INTERNAL_PTS_TARGET)
-cts: pts
-# generate PTS during CTS build
-ifneq ($(filter cts, $(MAKECMDGOALS)),)
-$(call dist-for-goals,cts,$(INTERNAL_PTS_TARGET))
-endif
-
-define copy-testcase-apk
-
-$(hide) $(ACP) -fp $(call intermediates-dir-for,APPS,$(1))/package.apk \
-	$(PRIVATE_DIR)/repository/testcases/$(1).apk
-
-endef
-
-define copy-testcase
-
-$(hide) $(ACP) -fp $(1) $(PRIVATE_DIR)/repository/testcases/$(notdir $1)
-
-endef
diff --git a/suite/pts/build/test_host_java_library.mk b/suite/pts/build/test_host_java_library.mk
deleted file mode 100644
index 3f410d1..0000000
--- a/suite/pts/build/test_host_java_library.mk
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (C) 2012 The Android Open Source Project
-#
-# 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.
-
-#
-# Builds a host library and defines a rule to generate the associated test
-# package XML needed by PTS.
-#
-
-include $(BUILD_HOST_JAVA_LIBRARY)
-
-pts_library_xml := $(PTS_TESTCASES_OUT)/$(LOCAL_MODULE).xml
-
-$(pts_library_xml): PRIVATE_PATH := $(LOCAL_PATH)/src
-$(pts_library_xml): PRIVATE_TEST_PACKAGE := $(LOCAL_PTS_TEST_PACKAGE)
-$(pts_library_xml): PRIVATE_LIBRARY := $(LOCAL_MODULE)
-$(pts_library_xml): PRIVATE_JAR_PATH := $(LOCAL_MODULE).jar
-$(pts_library_xml): $(HOST_OUT_JAVA_LIBRARIES)/$(LOCAL_MODULE).jar $(PTS_EXPECTATIONS) $(PTS_JAVA_TEST_SCANNER_DOCLET) $(PTS_JAVA_TEST_SCANNER) $(PTS_XML_GENERATOR)
-	$(hide) echo Generating test description for host library $(PRIVATE_LIBRARY)
-	$(hide) mkdir -p $(PTS_TESTCASES_OUT)
-	$(hide) $(PTS_JAVA_TEST_SCANNER) -s $(PRIVATE_PATH) \
-						-d $(PTS_JAVA_TEST_SCANNER_DOCLET) | \
-			$(PTS_XML_GENERATOR) -t hostSideOnly \
-						-j $(PRIVATE_JAR_PATH) \
-						-n $(PRIVATE_LIBRARY) \
-						-p $(PRIVATE_TEST_PACKAGE) \
-						-e $(PTS_EXPECTATIONS) \
-						-o $@
diff --git a/suite/pts/build/test_package.mk b/suite/pts/build/test_package.mk
deleted file mode 100644
index f677c3b..0000000
--- a/suite/pts/build/test_package.mk
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright (C) 2012 The Android Open Source Project
-#
-# 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.
-
-# copied from cts/build. modified for PTS
-
-# Disable by default so "m pts" will work in emulator builds
-LOCAL_DEX_PREOPT := false
-
-include $(BUILD_PACKAGE)
-
-pts_package_apk := $(PTS_TESTCASES_OUT)/$(LOCAL_PACKAGE_NAME).apk
-pts_package_xml := $(PTS_TESTCASES_OUT)/$(LOCAL_PACKAGE_NAME).xml
-
-$(pts_package_apk): PRIVATE_PACKAGE := $(LOCAL_PACKAGE_NAME)
-$(pts_package_apk): $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME))/package.apk | $(ACP)
-	$(hide) mkdir -p $(PTS_TESTCASES_OUT)
-	$(hide) $(ACP) -fp $< $@
-
-$(pts_package_xml): PRIVATE_PATH := $(LOCAL_PATH)
-$(pts_package_xml): PRIVATE_INSTRUMENTATION := $(LOCAL_INSTRUMENTATION_FOR)
-$(pts_package_xml): PRIVATE_PACKAGE := $(LOCAL_PACKAGE_NAME)
-$(pts_package_xml): PRIVATE_TEST_PACKAGE := com.android.pts.$(notdir $(LOCAL_PATH))
-$(pts_package_xml): PRIVATE_MANIFEST := $(LOCAL_PATH)/AndroidManifest.xml
-$(pts_package_xml): PRIVATE_TEST_TYPE := $(if $(LOCAL_PTS_TEST_RUNNER),$(LOCAL_PTS_TEST_RUNNER),'')
-$(pts_package_xml): $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME))/package.apk $(PTS_EXPECTATIONS) $(PTS_JAVA_TEST_SCANNER_DOCLET) $(PTS_JAVA_TEST_SCANNER) $(PTS_XML_GENERATOR)
-	$(hide) echo Generating test description for java package $(PRIVATE_PACKAGE)
-	$(hide) mkdir -p $(PTS_TESTCASES_OUT)
-	$(hide) $(PTS_JAVA_TEST_SCANNER) \
-						-s $(PRIVATE_PATH) \
-						-d $(PTS_JAVA_TEST_SCANNER_DOCLET) | \
-			$(PTS_XML_GENERATOR) \
-						-t $(PRIVATE_TEST_TYPE) \
-						-m $(PRIVATE_MANIFEST) \
-						-i "$(PRIVATE_INSTRUMENTATION)" \
-						-n $(PRIVATE_PACKAGE) \
-						-p $(PRIVATE_TEST_PACKAGE) \
-						-e $(PTS_EXPECTATIONS) \
-						-o $@
diff --git a/suite/pts/deviceTests/dram/Android.mk b/suite/pts/deviceTests/dram/Android.mk
deleted file mode 100644
index dbe0ad3..0000000
--- a/suite/pts/deviceTests/dram/Android.mk
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (C) 2012 The Android Open Source Project
-#
-# 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.
-
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-# don't include this package in any target
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-
-LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
-
-LOCAL_JNI_SHARED_LIBRARIES := libptsdram_jni
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := PtsDeviceDram
-
-LOCAL_SDK_VERSION := 16
-
-include $(BUILD_PTS_PACKAGE)
-
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/suite/pts/deviceTests/dram/AndroidManifest.xml b/suite/pts/deviceTests/dram/AndroidManifest.xml
deleted file mode 100644
index b3ee2f0..0000000
--- a/suite/pts/deviceTests/dram/AndroidManifest.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.android.pts.dram">
-
-    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-
-    <application>
-        <uses-library android:name="android.test.runner" />
-    </application>
-    <instrumentation android:name="android.test.InstrumentationCtsTestRunner"
-            android:targetPackage="com.android.pts.dram"
-            android:label="DRAM bandwidth measurement" />
-</manifest>
diff --git a/suite/pts/deviceTests/dram/jni/MemoryNativeJni.cpp b/suite/pts/deviceTests/dram/jni/MemoryNativeJni.cpp
deleted file mode 100644
index 0c429b7..0000000
--- a/suite/pts/deviceTests/dram/jni/MemoryNativeJni.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-#include <jni.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/time.h>
-
-long currentTimeMillis()
-{
-    struct timeval tv;
-    gettimeofday(&tv, (struct timezone *) NULL);
-    return (long)tv.tv_sec * 1000 + tv.tv_usec / 1000;
-}
-
-extern "C" JNIEXPORT jlong JNICALL Java_com_android_pts_dram_MemoryNative_runMemcpy(JNIEnv* env,
-        jclass clazz, jint bufferSize, jint repetition)
-{
-    char* src = new char[bufferSize];
-    char* dst = new char[bufferSize];
-    if ((src == NULL) || (dst == NULL)) {
-        delete[] src;
-        delete[] dst;
-        env->ThrowNew(env->FindClass("java/lang/OutOfMemoryError"), "No memory");
-        return -1;
-    }
-    memset(src, 0, bufferSize);
-    memset(dst, 0, bufferSize);
-    long start = currentTimeMillis();
-    for (int i = 0; i < repetition; i++) {
-        memcpy(dst, src, bufferSize);
-        src[bufferSize - 1] = i & 0xff;
-    }
-    long end = currentTimeMillis();
-    delete[] src;
-    delete[] dst;
-    return end - start;
-}
diff --git a/suite/pts/deviceTests/dram/src/com/android/pts/dram/BandwidthTest.java b/suite/pts/deviceTests/dram/src/com/android/pts/dram/BandwidthTest.java
deleted file mode 100644
index c731cc1..0000000
--- a/suite/pts/deviceTests/dram/src/com/android/pts/dram/BandwidthTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.dram;
-
-import android.content.Context;
-import android.graphics.Point;
-import android.util.Log;
-import android.view.WindowManager;
-
-import com.android.pts.util.PtsAndroidTestCase;
-import com.android.pts.util.ReportLog;
-import com.android.pts.util.Stat;
-
-/**
- * check how many screens the memcpy function can copy in a sec.
- * Note that this does not represent the total memory bandwidth available in the system
- * as typically CPU cannot use the whole bandwidth.
- * Smaller buffers can fit into L1 or L2 cache, which can show big boost.
- */
-public class BandwidthTest extends PtsAndroidTestCase {
-    private static final String TAG = "BandwidthTest";
-    private static final int REPETITION = 10;
-    private static final int REPEAT_IN_EACH_CALL = 100;
-    private static final int KB = 1024;
-    private static final int MB = 1024 * 1024;
-
-    public void testMemcpyK004() {
-        doRunMemcpy(4 * KB);
-    }
-
-    public void testMemcpyK008() {
-        doRunMemcpy(8 * KB);
-    }
-
-    public void testMemcpyK016() {
-        doRunMemcpy(16 * KB);
-    }
-
-    public void testMemcpyK032() {
-        doRunMemcpy(32 * KB);
-    }
-
-    public void testMemcpyK064() {
-        doRunMemcpy(64 * KB);
-    }
-
-    public void testMemcpyK128() {
-        doRunMemcpy(128 * KB);
-    }
-
-    public void testMemcpyK256() {
-        doRunMemcpy(256 * KB);
-    }
-
-    public void testMemcpyK512() {
-        doRunMemcpy(512 * KB);
-    }
-
-    public void testMemcpyM001() {
-        doRunMemcpy(1 * MB);
-    }
-
-    public void testMemcpyM002() {
-        doRunMemcpy(2 * MB);
-    }
-
-    public void testMemcpyM004() {
-        doRunMemcpy(4 * MB);
-    }
-
-    public void testMemcpyM008() {
-        doRunMemcpy(8 * MB);
-    }
-
-    public void testMemcpyM016() {
-        doRunMemcpy(16 * MB);
-    }
-
-    private void doRunMemcpy(int bufferSize) {
-        double[] result = new double[REPETITION];
-        for (int i = 0; i < REPETITION; i++) {
-            result[i] = MemoryNative.runMemcpy(bufferSize, REPEAT_IN_EACH_CALL);
-        }
-        getReportLog().printArray("ms", result, false);
-        double[] mbps = ReportLog.calcRatePerSecArray(
-                (double)bufferSize * REPEAT_IN_EACH_CALL / 1024.0 / 1024.0, result);
-        getReportLog().printArray("MB/s", mbps, true);
-        Stat.StatResult stat = Stat.getStat(mbps);
-        WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
-        Point size = new Point();
-        wm.getDefaultDisplay().getSize(size);
-        Log.i(TAG, " x " + size.x + " y " + size.y);
-        double pixels = size.x * size.y;
-        // now this represents how many times the whole screen can be copied in a sec.
-        double screensPerSecAverage = stat.mAverage / pixels * 1024.0 * 1024.0 / 4.0;
-        double screensPerSecStddev = stat.mStddev / pixels * 1024.0 * 1024.0 / 4.0;
-        getReportLog().printSummary("screen copies per sec", screensPerSecAverage,
-                screensPerSecStddev);
-    }
-}
diff --git a/suite/pts/deviceTests/filesystemperf/AndroidManifest.xml b/suite/pts/deviceTests/filesystemperf/AndroidManifest.xml
deleted file mode 100644
index 8cdeb45..0000000
--- a/suite/pts/deviceTests/filesystemperf/AndroidManifest.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.android.pts.filesystemperf">
-
-    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-
-    <application>
-        <uses-library android:name="android.test.runner" />
-    </application>
-    <instrumentation android:name="android.test.InstrumentationCtsTestRunner"
-            android:targetPackage="com.android.pts.filesystemperf"
-            android:label="UI Latency measurement" />
-</manifest>
diff --git a/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/AlmostFullTest.java b/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/AlmostFullTest.java
deleted file mode 100644
index 89c2f7c..0000000
--- a/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/AlmostFullTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.filesystemperf;
-
-import android.cts.util.TimeoutReq;
-import com.android.pts.util.MeasureRun;
-import com.android.pts.util.MeasureTime;
-import com.android.pts.util.PtsAndroidTestCase;
-import com.android.pts.util.ReportLog;
-import com.android.pts.util.Stat;
-import com.android.pts.util.SystemUtil;
-
-import android.util.Log;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicInteger;
-
-public class AlmostFullTest extends PtsAndroidTestCase {
-
-    private static final String DIR_INITIAL_FILL = "INITIAL_FILL";
-    private static final String DIR_SEQ_UPDATE = "SEQ_UPDATE";
-    private static final String DIR_RANDOM_WR = "RANDOM_WR";
-    private static final String DIR_RANDOM_RD = "RANDOM_RD";
-    private static final String TAG = "AlmostFullTest";
-
-    private static final long FREE_SPACE_FINAL = 1000L * 1024 * 1024L;
-
-    // test runner creates multiple instances at the begging.
-    // use that to fill disk only once.
-    private static AtomicInteger mRefCounter = new AtomicInteger(0);
-    private static AtomicBoolean mDiskFilled = new AtomicBoolean(false);
-
-    public AlmostFullTest() {
-        int currentCounter = mRefCounter.incrementAndGet();
-        Log.i(TAG, "++currentCounter: " + currentCounter);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        if (mDiskFilled.compareAndSet(false, true)) {
-            Log.i(TAG, "Filling disk");
-            // initial fill done in two stage as disk can be filled by other components
-            long freeDisk = SystemUtil.getFreeDiskSize(getContext());
-            long diskToFill = freeDisk - FREE_SPACE_FINAL;
-            Log.i(TAG, "free disk " + freeDisk + ", to fill " + diskToFill);
-            final long MAX_FILE_SIZE_TO_FILL = 1024L * 1024L * 1024L;
-            long filled = 0;
-            while (filled < diskToFill) {
-                long toFill = diskToFill - filled;
-                if (toFill > MAX_FILE_SIZE_TO_FILL) {
-                    toFill = MAX_FILE_SIZE_TO_FILL;
-                }
-                Log.i(TAG, "Generating file " + toFill);
-                FileUtil.createNewFilledFile(getContext(),
-                        DIR_INITIAL_FILL, toFill);
-                filled += toFill;
-            }
-        }
-        Log.i(TAG, "free disk " + SystemUtil.getFreeDiskSize(getContext()));
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        Log.i(TAG, "tearDown free disk " + SystemUtil.getFreeDiskSize(getContext()));
-        int currentCounter = mRefCounter.decrementAndGet();
-        Log.i(TAG, "--currentCounter: " + currentCounter);
-        if (currentCounter == 0) {
-            FileUtil.removeFileOrDir(getContext(), DIR_INITIAL_FILL);
-        }
-        FileUtil.removeFileOrDir(getContext(), DIR_SEQ_UPDATE);
-        FileUtil.removeFileOrDir(getContext(), DIR_RANDOM_WR);
-        FileUtil.removeFileOrDir(getContext(), DIR_RANDOM_RD);
-        Log.i(TAG, "tearDown free disk " + SystemUtil.getFreeDiskSize(getContext()));
-        super.tearDown();
-    }
-
-    @TimeoutReq(minutes = 30)
-    public void testSequentialUpdate() throws Exception {
-        // now about freeSpaceToLeave should be left
-        // and try updating exceeding the free space size
-        final long FILE_SIZE = 400L * 1024L * 1024L;
-        long freeDisk = SystemUtil.getFreeDiskSize(getContext());
-        Log.i(TAG, "Now free space is " + freeDisk);
-        assertTrue(freeDisk > FILE_SIZE);
-        final int BUFFER_SIZE = 10 * 1024 * 1024;
-        final int NUMBER_REPETITION = 10;
-        FileUtil.doSequentialUpdateTest(getContext(), DIR_SEQ_UPDATE, getReportLog(), FILE_SIZE,
-                BUFFER_SIZE, NUMBER_REPETITION);
-    }
-
-    //TODO: file size too small and caching will give wrong better result.
-    //      needs to flush cache by reading big files per each read.
-    @TimeoutReq(minutes = 60)
-    public void testRandomRead() throws Exception {
-        final int BUFFER_SIZE = 4 * 1024;
-        final long fileSize = 400L * 1024L * 1024L;
-        FileUtil.doRandomReadTest(getContext(), DIR_RANDOM_RD, getReportLog(), fileSize,
-                BUFFER_SIZE);
-    }
-
-    @TimeoutReq(minutes = 60)
-    public void testRandomUpdate() throws Exception {
-        final int BUFFER_SIZE = 4 * 1024;
-        final long fileSize = 400L * 1024L * 1024L;
-        FileUtil.doRandomWriteTest(getContext(), DIR_RANDOM_WR, getReportLog(), fileSize,
-                BUFFER_SIZE);
-    }
-}
diff --git a/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/FileUtil.java b/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/FileUtil.java
deleted file mode 100644
index 14fc45a..0000000
--- a/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/FileUtil.java
+++ /dev/null
@@ -1,396 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.filesystemperf;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.RandomAccessFile;
-import java.util.Random;
-
-import com.android.pts.util.MeasureRun;
-import com.android.pts.util.MeasureTime;
-import com.android.pts.util.ReportLog;
-import com.android.pts.util.Stat;
-import com.android.pts.util.SystemUtil;
-
-import android.content.Context;
-import android.util.Log;
-
-public class FileUtil {
-    private static final String TAG = "FileUtil";
-    private static final Random mRandom = new Random(0);
-    private static long mFileId = 0;
-    /**
-     * create array with different data per each call
-     *
-     * @param length
-     * @param randomSeed
-     * @return
-     */
-    public static byte[] generateRandomData(int length) {
-        byte[] buffer = new byte[length];
-        int val = mRandom.nextInt();
-        for (int i = 0; i < length / 4; i++) {
-            // in little-endian
-            buffer[i * 4] = (byte)(val & 0x000000ff);
-            buffer[i * 4 + 1] = (byte)((val & 0x0000ff00) >> 8);
-            buffer[i * 4 + 2] = (byte)((val & 0x00ff0000) >> 16);
-            buffer[i * 4 + 3] = (byte)((val & 0xff000000) >> 24);
-            val++;
-        }
-        for (int i = (length / 4) * 4; i < length; i++) {
-            buffer[i] = 0;
-        }
-        return buffer;
-    }
-
-    /**
-     * create a new file under the given dirName.
-     * Existing files will not be affected.
-     * @param context
-     * @param dirName
-     * @return
-     */
-    public static File createNewFile(Context context, String dirName) {
-        File topDir = new File(context.getFilesDir(), dirName);
-        topDir.mkdir();
-        String[] list = topDir.list();
-
-        String newFileName;
-        while (true) {
-            newFileName = Long.toString(mFileId);
-            boolean fileExist = false;
-            for (String child : list) {
-                if (child.equals(newFileName)) {
-                    fileExist = true;
-                    break;
-                }
-            }
-            if (!fileExist) {
-                break;
-            }
-            mFileId++;
-        }
-        mFileId++;
-        //Log.i(TAG, "filename" + Long.toString(mFileId));
-        return new File(topDir, newFileName);
-    }
-
-    /**
-     * create multiple new files
-     * @param context
-     * @param dirName
-     * @param count number of files to create
-     * @return
-     */
-    public static File[] createNewFiles(Context context, String dirName, int count) {
-        File[] files = new File[count];
-        for (int i = 0; i < count; i++) {
-            files[i] = createNewFile(context, dirName);
-        }
-        return files;
-    }
-
-    /**
-     * write file with given byte array
-     * @param file
-     * @param data
-     * @param append will append if set true. Otherwise, write from beginning
-     * @throws IOException
-     */
-    public static void writeFile(File file, byte[] data, boolean append) throws IOException {
-        final RandomAccessFile randomFile = new RandomAccessFile(file, "rwd"); // force O_SYNC
-        if (append) {
-            randomFile.seek(randomFile.length());
-        } else {
-            randomFile.seek(0L);
-        }
-        randomFile.write(data);
-        randomFile.close();
-    }
-
-    /**
-     * create a new file with given length.
-     * @param context
-     * @param dirName
-     * @param length
-     * @return
-     * @throws IOException
-     */
-    public static File createNewFilledFile(Context context, String dirName, long length)
-            throws IOException {
-        final int BUFFER_SIZE = 10 * 1024 * 1024;
-        File file = createNewFile(context, dirName);
-        FileOutputStream out = new FileOutputStream(file);
-        byte[] data = generateRandomData(BUFFER_SIZE);
-        long written = 0;
-        while (written < length) {
-            out.write(data);
-            written += BUFFER_SIZE;
-        }
-        out.flush();
-        out.close();
-        return file;
-    }
-
-    /**
-     * remove given file or directory under the current app's files dir.
-     * @param context
-     * @param name
-     */
-    public static void removeFileOrDir(Context context, String name) {
-        File entry = new File(context.getFilesDir(), name);
-        if (entry.exists()) {
-            removeEntry(entry);
-        }
-    }
-
-    private static void removeEntry(File entry) {
-        if (entry.isDirectory()) {
-            String[] children = entry.list();
-            for (String child : children) {
-                removeEntry(new File(entry, child));
-            }
-        }
-        Log.i(TAG, "delete file " + entry.getAbsolutePath());
-        entry.delete();
-    }
-
-    /**
-     * measure time taken for each IO run with amount R/W
-     * @param count
-     * @param run
-     * @param readAmount returns amount of read in bytes for each interval.
-     *        Value will not be written if /proc/self/io does not exist.
-     * @param writeAmount returns amount of write in bytes for each interval.
-     * @return time per each interval
-     * @throws IOException
-     */
-    public static double[] measureIO(int count, double[] readAmount, double[] writeAmount,
-            MeasureRun run)  throws Exception {
-        double[] result = new double[count];
-        File procIo = new File("/proc/self/io");
-        boolean measureIo = procIo.exists();
-        long prev = System.currentTimeMillis();
-        RWAmount prevAmount = new RWAmount();
-        if (measureIo) {
-            prevAmount = getRWAmount(procIo);
-        }
-        for (int i = 0; i < count; i++) {
-            run.run(i);
-            long current =  System.currentTimeMillis();
-            result[i] = current - prev;
-            prev = current;
-            if (measureIo) {
-                RWAmount currentAmount = getRWAmount(procIo);
-                readAmount[i] = currentAmount.mRd - prevAmount.mRd;
-                writeAmount[i] = currentAmount.mWr - prevAmount.mWr;
-                prevAmount = currentAmount;
-            }
-        }
-        return result;
-    }
-
-    private static class RWAmount {
-        public double mRd = 0.0;
-        public double mWr = 0.0;
-    };
-
-    private static RWAmount getRWAmount(File file) throws IOException {
-        RWAmount amount = new RWAmount();
-
-        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
-        String line;
-        while((line = br.readLine())!= null) {
-            if (line.startsWith("read_bytes")) {
-                amount.mRd = Double.parseDouble(line.split(" ")[1]);
-            } else if (line.startsWith("write_bytes")) {
-                amount.mWr = Double.parseDouble(line.split(" ")[1]);
-            }
-        }
-        br.close();
-        return amount;
-    }
-
-    /**
-     * get file size exceeding total memory size ( 2x total memory).
-     * The size is rounded in bufferSize. And the size will be bigger than 400MB.
-     * @param context
-     * @param bufferSize
-     * @return
-     * @throws IOException
-     */
-    public static long getFileSizeExceedingMemory(Context context, int bufferSize)
-            throws IOException {
-        long freeDisk = SystemUtil.getFreeDiskSize(context);
-        long memSize = SystemUtil.getTotalMemory(context);
-        long diskSizeTarget = (2 * memSize / bufferSize) * bufferSize;
-        final long minimumDiskSize = (512L * 1024L * 1024L / bufferSize) * bufferSize;
-        if ( diskSizeTarget < minimumDiskSize ) {
-            diskSizeTarget = minimumDiskSize;
-        }
-        if (diskSizeTarget > freeDisk) {
-            throw new IOException("Free disk size " + freeDisk + " too small");
-        }
-        return diskSizeTarget;
-    }
-
-    /**
-     *
-     * @param context
-     * @param dirName
-     * @param report
-     * @param fileSize
-     * @param bufferSize should be power of two
-     * @throws IOException
-     */
-    public static void doRandomReadTest(Context context, String dirName, ReportLog report,
-            long fileSize, int bufferSize) throws Exception {
-        File file = FileUtil.createNewFilledFile(context,
-                dirName, fileSize);
-
-        final byte[] data = FileUtil.generateRandomData(bufferSize);
-        Random random = new Random(0);
-        final int totalReadCount = (int)(fileSize / bufferSize);
-        final int[] readOffsets = new int[totalReadCount];
-        for (int i = 0; i < totalReadCount; i++) {
-            // align in buffer size
-            readOffsets[i] = (int)(random.nextFloat() * (fileSize - bufferSize)) &
-                    ~(bufferSize - 1);
-        }
-        final int runsInOneGo = 16;
-        final int readsInOneMeasure = totalReadCount / runsInOneGo;
-
-        final RandomAccessFile randomFile = new RandomAccessFile(file, "rw"); // do not need O_SYNC
-        double[] rdAmount = new double[runsInOneGo];
-        double[] wrAmount = new double[runsInOneGo];
-        double[] times = FileUtil.measureIO(runsInOneGo, rdAmount, wrAmount, new MeasureRun() {
-
-            @Override
-            public void run(int i) throws IOException {
-                int start = i * readsInOneMeasure;
-                int end = (i + 1) * readsInOneMeasure;
-                for (int j = start; j < end; j++) {
-                    randomFile.seek(readOffsets[j]);
-                    randomFile.read(data);
-                }
-            }
-        });
-        randomFile.close();
-        double[] mbps = ReportLog.calcRatePerSecArray((double)fileSize / runsInOneGo / 1024 / 1024,
-                times);
-        report.printArray("MB/s",
-                mbps, true);
-        report.printArray("Rd amount", rdAmount, true);
-        Stat.StatResult stat = Stat.getStat(mbps);
-
-        report.printSummary("MB/s", stat.mAverage, stat.mStddev);
-    }
-
-    /**
-     *
-     * @param context
-     * @param dirName
-     * @param report
-     * @param fileSize
-     * @param bufferSize should be power of two
-     * @throws IOException
-     */
-    public static void doRandomWriteTest(Context context, String dirName, ReportLog report,
-            long fileSize, int bufferSize) throws Exception {
-        File file = FileUtil.createNewFilledFile(context,
-                dirName, fileSize);
-        final byte[] data = FileUtil.generateRandomData(bufferSize);
-        Random random = new Random(0);
-        final int totalWriteCount = (int)(fileSize / bufferSize);
-        final int[] writeOffsets = new int[totalWriteCount];
-        for (int i = 0; i < totalWriteCount; i++) {
-            writeOffsets[i] = (int)(random.nextFloat() * (fileSize - bufferSize)) &
-                    ~(bufferSize - 1);
-        }
-        final int runsInOneGo = 16;
-        final int writesInOneMeasure = totalWriteCount / runsInOneGo; // 32MB at a time
-
-        final RandomAccessFile randomFile = new RandomAccessFile(file, "rwd"); // force O_SYNC
-        double[] rdAmount = new double[runsInOneGo];
-        double[] wrAmount = new double[runsInOneGo];
-        double[] times = FileUtil.measureIO(runsInOneGo, rdAmount, wrAmount, new MeasureRun() {
-
-            @Override
-            public void run(int i) throws IOException {
-                int start = i * writesInOneMeasure;
-                int end = (i + 1) * writesInOneMeasure;
-                for (int j = start; j < end; j++) {
-                    randomFile.seek(writeOffsets[j]);
-                    randomFile.write(data);
-                }
-            }
-        });
-        randomFile.close();
-        double[] mbps = ReportLog.calcRatePerSecArray((double)fileSize / runsInOneGo / 1024 / 1024,
-                times);
-        report.printArray("MB/s",
-                mbps, true);
-        report.printArray("Wr amount", wrAmount, true);
-        Stat.StatResult stat = Stat.getStat(mbps);
-
-        report.printSummary("MB/s", stat.mAverage, stat.mStddev);
-    }
-
-    /**
-     *
-     * @param context
-     * @param dirName
-     * @param report
-     * @param fileSize fileSize should be multiple of bufferSize.
-     * @param bufferSize
-     * @param numberRepetition
-     * @throws IOException
-     */
-    public static void doSequentialUpdateTest(Context context, String dirName, ReportLog report,
-            long fileSize, int bufferSize, int numberRepetition) throws Exception {
-        File file = FileUtil.createNewFilledFile(context,
-                dirName, fileSize);
-        final byte[] data = FileUtil.generateRandomData(bufferSize);
-        int numberRepeatInOneRun = (int)(fileSize / bufferSize);
-        double[] mbpsAll = new double[numberRepetition * numberRepeatInOneRun];
-        for (int i = 0; i < numberRepetition; i++) {
-            final RandomAccessFile randomFile = new RandomAccessFile(file, "rwd");  // force O_SYNC
-            randomFile.seek(0L);
-            double[] times = MeasureTime.measure(numberRepeatInOneRun, new MeasureRun() {
-
-                @Override
-                public void run(int i) throws IOException {
-                    randomFile.write(data);
-                }
-            });
-            randomFile.close();
-            double[] mbps = ReportLog.calcRatePerSecArray((double)bufferSize / 1024 / 1024,
-                    times);
-            report.printArray(i + "-th round MB/s",
-                    mbps, true);
-            ReportLog.copyArray(mbps, mbpsAll, i * numberRepeatInOneRun);
-        }
-        Stat.StatResult stat = Stat.getStat(mbpsAll);
-        report.printSummary("MB/s", stat.mAverage, stat.mStddev);
-    }
-}
diff --git a/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/RandomRWTest.java b/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/RandomRWTest.java
deleted file mode 100644
index 537d900..0000000
--- a/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/RandomRWTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.filesystemperf;
-
-import android.cts.util.TimeoutReq;
-import com.android.pts.util.MeasureRun;
-import com.android.pts.util.PtsAndroidTestCase;
-import com.android.pts.util.ReportLog;
-import com.android.pts.util.Stat;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.util.Random;
-
-
-public class RandomRWTest extends PtsAndroidTestCase {
-    private static final String DIR_RANDOM_WR = "RANDOM_WR";
-    private static final String DIR_RANDOM_RD = "RANDOM_RD";
-
-    @Override
-    protected void tearDown() throws Exception {
-        FileUtil.removeFileOrDir(getContext(), DIR_RANDOM_WR);
-        FileUtil.removeFileOrDir(getContext(), DIR_RANDOM_RD);
-        super.tearDown();
-    }
-
-    @TimeoutReq(minutes = 60)
-    public void testRandomRead() throws Exception {
-        final int READ_BUFFER_SIZE = 4 * 1024;
-        final long fileSize = FileUtil.getFileSizeExceedingMemory(getContext(), READ_BUFFER_SIZE);
-        FileUtil.doRandomReadTest(getContext(), DIR_RANDOM_RD, getReportLog(), fileSize,
-                READ_BUFFER_SIZE);
-    }
-
-    // It is taking too long in tuna, and thus cannot run multiple times
-    @TimeoutReq(minutes = 60)
-    public void testRandomUpdate() throws Exception {
-        final int WRITE_BUFFER_SIZE = 4 * 1024;
-        final long fileSize = 512 * 1024 * 1024;
-        FileUtil.doRandomWriteTest(getContext(), DIR_RANDOM_WR, getReportLog(), fileSize,
-                WRITE_BUFFER_SIZE);
-    }
-}
diff --git a/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/SequentialRWTest.java b/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/SequentialRWTest.java
deleted file mode 100644
index 252c59e..0000000
--- a/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/SequentialRWTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.filesystemperf;
-
-import android.cts.util.TimeoutReq;
-import com.android.pts.util.MeasureRun;
-import com.android.pts.util.MeasureTime;
-import com.android.pts.util.PtsAndroidTestCase;
-import com.android.pts.util.ReportLog;
-import com.android.pts.util.Stat;
-import com.android.pts.util.SystemUtil;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-public class SequentialRWTest extends PtsAndroidTestCase {
-    private static final String DIR_SEQ_WR = "SEQ_WR";
-    private static final String DIR_SEQ_UPD = "SEQ_UPD";
-    private static final String DIR_SEQ_RD = "SEQ_RD";
-    private static final int BUFFER_SIZE = 10 * 1024 * 1024;
-
-    @Override
-    protected void tearDown() throws Exception {
-        FileUtil.removeFileOrDir(getContext(), DIR_SEQ_WR);
-        FileUtil.removeFileOrDir(getContext(), DIR_SEQ_UPD);
-        FileUtil.removeFileOrDir(getContext(), DIR_SEQ_RD);
-        super.tearDown();
-    }
-
-    @TimeoutReq(minutes = 30)
-    public void testSingleSequentialWrite() throws Exception {
-        final int numberOfFiles =(int)(FileUtil.getFileSizeExceedingMemory(
-                getContext(), BUFFER_SIZE) / BUFFER_SIZE);
-        getReportLog().printValue("files", numberOfFiles);
-        final byte[] data = FileUtil.generateRandomData(BUFFER_SIZE);
-        final File[] files = FileUtil.createNewFiles(getContext(), DIR_SEQ_WR,
-                numberOfFiles);
-        double[] rdAmount = new double[numberOfFiles];
-        double[] wrAmount = new double[numberOfFiles];
-        double[] times = FileUtil.measureIO(numberOfFiles, rdAmount, wrAmount, new MeasureRun() {
-
-            @Override
-            public void run(int i) throws IOException {
-                FileUtil.writeFile(files[i], data, false);
-            }
-        });
-        double[] mbps = ReportLog.calcRatePerSecArray((double)BUFFER_SIZE / 1024 / 1024, times);
-        getReportLog().printArray("try " + numberOfFiles + " files, result MB/s",
-                mbps, true);
-        getReportLog().printArray("Wr amount", wrAmount, true);
-        Stat.StatResult stat = Stat.getStat(mbps);
-        getReportLog().printSummary("MB/s", stat.mAverage, stat.mStddev);
-    }
-
-    @TimeoutReq(minutes = 60)
-    public void testSingleSequentialUpdate() throws Exception {
-        final long fileSize = FileUtil.getFileSizeExceedingMemory(getContext(), BUFFER_SIZE);
-        final int NUMBER_REPETITION = 6;
-        FileUtil.doSequentialUpdateTest(getContext(), DIR_SEQ_UPD, getReportLog(), fileSize,
-                BUFFER_SIZE, NUMBER_REPETITION);
-    }
-
-    @TimeoutReq(minutes = 30)
-    public void testSingleSequentialRead() throws Exception {
-        final long fileSize = FileUtil.getFileSizeExceedingMemory(getContext(), BUFFER_SIZE);
-        long start = System.currentTimeMillis();
-        final File file = FileUtil.createNewFilledFile(getContext(),
-                DIR_SEQ_RD, fileSize);
-        long finish = System.currentTimeMillis();
-        getReportLog().printValue("write size " + fileSize + " result MB/s",
-                ReportLog.calcRatePerSec((double)fileSize / 1024 / 1024, finish - start));
-
-        final int NUMBER_READ = 10;
-
-        final byte[] data = new byte[BUFFER_SIZE];
-        double[] times = MeasureTime.measure(NUMBER_READ, new MeasureRun() {
-
-            @Override
-            public void run(int i) throws IOException {
-                final FileInputStream in = new FileInputStream(file);
-                long read = 0;
-                while (read < fileSize) {
-                    in.read(data);
-                    read += BUFFER_SIZE;
-                }
-                in.close();
-            }
-        });
-        double[] mbps = ReportLog.calcRatePerSecArray((double)fileSize / 1024 / 1024, times);
-        getReportLog().printArray("read MB/s",
-                mbps, true);
-        Stat.StatResult stat = Stat.getStat(mbps);
-        getReportLog().printSummary("MB/s", stat.mAverage, stat.mStddev);
-    }
-}
diff --git a/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/TestTest.java b/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/TestTest.java
deleted file mode 100644
index e333200..0000000
--- a/suite/pts/deviceTests/filesystemperf/src/com/android/pts/filesystemperf/TestTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-
-// code for testing, will be removed / moved before release
-
-package com.android.pts.filesystemperf;
-
-import android.cts.util.TimeoutReq;
-import com.android.pts.util.PtsAndroidTestCase;
-
-/**
- * This class is for testing PTS itself. Will be disabled in release.
- *
- */
-public class TestTest extends PtsAndroidTestCase {
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
-    }
-/* code for testing PTS logging. Disabled.
-    @TimeoutReq(minutes = 15)
-    public void testPass() {
-        double[] array = new double[] {1.0, 2.0, 3.0};
-        getReportLog().printArray(" ", array, true);
-        getReportLog().printArray(" ", array, false);
-        getReportLog().printValue(" ", 1.0);
-        getReportLog().printValue(" ", 2.0);
-        getReportLog().printSummary("This should be shown", 0, 0);
-    }
-
-    @TimeoutReq(minutes = 10)
-    public void testFail() throws Exception {
-        getReportLog().printValue(" ", 1.0);
-        getReportLog().printValue(" ", 2.0);
-        getReportLog().printSummary("This should not be shown", 0, 0);
-        throw new Exception("failed");
-    }
-*/
-}
diff --git a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/PtsActivityInstrumentationTestCase2.java b/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/PtsActivityInstrumentationTestCase2.java
deleted file mode 100644
index 0c9cdfa..0000000
--- a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/PtsActivityInstrumentationTestCase2.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-
-package com.android.pts.util;
-
-import android.app.Activity;
-import android.test.ActivityInstrumentationTestCase2;
-
-
-public class PtsActivityInstrumentationTestCase2<T extends Activity> extends
-        ActivityInstrumentationTestCase2<T> {
-
-    private ReportLog mReportLog = new DeviceReportLog();
-
-    public PtsActivityInstrumentationTestCase2(Class<T> activityClass) {
-        super(activityClass);
-    }
-
-    public ReportLog getReportLog() {
-        return mReportLog;
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        mReportLog.throwReportToHost();
-    }
-
-}
diff --git a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/PtsAndroidTestCase.java b/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/PtsAndroidTestCase.java
deleted file mode 100644
index b847df7..0000000
--- a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/PtsAndroidTestCase.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-
-package com.android.pts.util;
-
-import android.test.AndroidTestCase;
-
-public class PtsAndroidTestCase extends AndroidTestCase {
-
-    private ReportLog mReportLog = new DeviceReportLog();
-
-    public ReportLog getReportLog() {
-        return mReportLog;
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        mReportLog.throwReportToHost();
-    }
-}
diff --git a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/SystemUtil.java b/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/SystemUtil.java
deleted file mode 100644
index 7975463..0000000
--- a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/SystemUtil.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.util;
-
-import android.app.ActivityManager;
-import android.app.ActivityManager.MemoryInfo;
-import android.content.Context;
-import android.os.StatFs;
-
-public class SystemUtil {
-    public static long getFreeDiskSize(Context context) {
-        StatFs statFs = new StatFs(context.getFilesDir().getAbsolutePath());
-        return (long)statFs.getAvailableBlocks() * statFs.getBlockSize();
-    }
-
-    public static long getFreeMemory(Context context) {
-        MemoryInfo info = new MemoryInfo();
-        ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        activityManager.getMemoryInfo(info);
-        return info.availMem;
-    }
-
-    public static long getTotalMemory(Context context) {
-        MemoryInfo info = new MemoryInfo();
-        ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        activityManager.getMemoryInfo(info);
-        return info.totalMem; // TODO totalMem N/A in ICS.
-    }
-}
diff --git a/suite/pts/deviceTests/ui/Android.mk b/suite/pts/deviceTests/ui/Android.mk
deleted file mode 100644
index 28db8a1..0000000
--- a/suite/pts/deviceTests/ui/Android.mk
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (C) 2012 The Android Open Source Project
-#
-# 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.
-
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-# don't include this package in any target
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-
-LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := PtsDeviceUi
-
-LOCAL_SDK_VERSION := 16
-
-include $(BUILD_PTS_PACKAGE)
-
-
diff --git a/suite/pts/deviceTests/ui/AndroidManifest.xml b/suite/pts/deviceTests/ui/AndroidManifest.xml
deleted file mode 100644
index b5e4937b..0000000
--- a/suite/pts/deviceTests/ui/AndroidManifest.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.android.pts.ui">
-
-    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-
-    <application>
-        <uses-library android:name="android.test.runner" />
-        <activity
-                android:name=".ScrollingActivity"
-                android:screenOrientation="portrait"
-                android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER"/>
-            </intent-filter>
-        </activity>
-    </application>
-    <instrumentation android:name="android.test.InstrumentationCtsTestRunner"
-            android:targetPackage="com.android.pts.ui"
-            android:label="UI Latency measurement" />
-</manifest>
diff --git a/suite/pts/deviceTests/ui/src/com/android/pts/ui/ScrollingActivity.java b/suite/pts/deviceTests/ui/src/com/android/pts/ui/ScrollingActivity.java
deleted file mode 100644
index 7bdfff9..0000000
--- a/suite/pts/deviceTests/ui/src/com/android/pts/ui/ScrollingActivity.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.ui;
-
-import android.app.ListActivity;
-import android.os.Bundle;
-import android.widget.AbsListView;
-import android.widget.AbsListView.OnScrollListener;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-public class ScrollingActivity extends ListActivity implements OnScrollListener
-{
-    static final String TAG = "ScrollingActivity";
-    private static final int NUMBER_ELEMENTS = 10000;
-    private static final int SCROLL_TIME_IN_MS = 1;
-    private static final int WAIT_TIMEOUT_IN_SECS = 5 * 60;
-    private String[] mItems = new String[NUMBER_ELEMENTS];
-    private CountDownLatch mLatchStop = null;
-    private int mTargetLoc;
-
-    public void onCreate(Bundle icicle)
-    {
-        super.onCreate(icicle);
-        for (int i = 0; i < NUMBER_ELEMENTS; i++) {
-            mItems[i] = Integer.toString(i);
-        }
-        setListAdapter(new ArrayAdapter<String>(this,
-                android.R.layout.simple_list_item_1, mItems));
-        ListView view = getListView();
-        view.setOnScrollListener(this);
-        //view.setVelocityScale(100.0f);
-    }
-
-    public boolean scrollToTop() {
-        return doScroll(0);
-    }
-    public boolean scrollToBottom() {
-        return doScroll(NUMBER_ELEMENTS - 1);
-    }
-
-    private boolean doScroll(final int loc) {
-        mLatchStop = new CountDownLatch(1);
-        mTargetLoc = loc;
-        final ListView view = getListView();
-        runOnUiThread( new Runnable() {
-            @Override
-            public void run() {
-                view.smoothScrollToPositionFromTop(loc, 0, SCROLL_TIME_IN_MS);
-            }
-        });
-        boolean result = false;
-        try {
-            result = mLatchStop.await(WAIT_TIMEOUT_IN_SECS, TimeUnit.SECONDS);
-        } catch (InterruptedException e) {
-            // ignore
-        }
-        mLatchStop = null;
-        return result;
-    }
-    public void onStop()
-    {
-        super.onStop();
-    }
-
-    public void onResume()
-    {
-        super.onResume();
-    }
-
-    @Override
-    public void onScrollStateChanged(AbsListView view, int scrollState) {
-
-    }
-
-    @Override
-    public void onScroll(AbsListView view, int firstVisibleItem,
-            int visibleItemCount, int totalItemCount) {
-        //Log.i(TAG, "onScroll " + firstVisibleItem + " " + visibleItemCount);
-        if ((mTargetLoc >= firstVisibleItem) &&
-                (mTargetLoc <= (firstVisibleItem + visibleItemCount))) {
-            if (mLatchStop != null) {
-                mLatchStop.countDown();
-            }
-        }
-    }
-}
diff --git a/suite/pts/deviceTests/ui/src/com/android/pts/ui/ScrollingTest.java b/suite/pts/deviceTests/ui/src/com/android/pts/ui/ScrollingTest.java
deleted file mode 100644
index 8e4bbed..0000000
--- a/suite/pts/deviceTests/ui/src/com/android/pts/ui/ScrollingTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-package com.android.pts.ui;
-
-import android.cts.util.TimeoutReq;
-import com.android.pts.util.MeasureRun;
-import com.android.pts.util.MeasureTime;
-import com.android.pts.util.PtsActivityInstrumentationTestCase2;
-import com.android.pts.util.ReportLog;
-import com.android.pts.util.Stat;
-
-import java.io.IOException;
-
-public class ScrollingTest extends PtsActivityInstrumentationTestCase2<ScrollingActivity> {
-    private ScrollingActivity mActivity;
-
-    public ScrollingTest() {
-        super(ScrollingActivity.class);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mActivity = getActivity();
-        getInstrumentation().waitForIdleSync();
-        try {
-            runTestOnUiThread(new Runnable() {
-                public void run() {
-                }
-            });
-        } catch (Throwable e) {
-            e.printStackTrace();
-            fail();
-        }
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        mActivity = null;
-        super.tearDown();
-    }
-
-    @TimeoutReq(minutes = 30)
-    public void testFullScrolling() throws Exception {
-        final int NUMBER_REPEAT = 10;
-        final ScrollingActivity activity = mActivity;
-        double[] results = MeasureTime.measure(NUMBER_REPEAT, new MeasureRun() {
-
-            @Override
-            public void run(int i) throws IOException {
-                assertTrue(activity.scrollToBottom());
-                assertTrue(activity.scrollToTop());
-            }
-        });
-        getReportLog().printArray("ms", results, false);
-        Stat.StatResult stat = Stat.getStat(results);
-        getReportLog().printSummary("Time ms", stat.mAverage, stat.mStddev);
-    }
-}
diff --git a/suite/pts/expectations/knownfailures.txt b/suite/pts/expectations/knownfailures.txt
deleted file mode 100644
index 0d4f101..0000000
--- a/suite/pts/expectations/knownfailures.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-[
-]
diff --git a/suite/pts/hostTests/Android.mk b/suite/pts/hostTests/Android.mk
deleted file mode 100644
index c141484..0000000
--- a/suite/pts/hostTests/Android.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Copyright (C) 2012 The Android Open Source Project
-#
-# 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.
-#
-
-include $(call all-subdir-makefiles)
diff --git a/suite/pts/hostTests/bootup/Android.mk b/suite/pts/hostTests/bootup/Android.mk
deleted file mode 100644
index 4d779a0..0000000
--- a/suite/pts/hostTests/bootup/Android.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (C) 2012 The Android Open Source Project
-#
-# 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.
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_MODULE := PtsHostBootup
-
-LOCAL_JAVA_LIBRARIES := cts-tradefed tradefed-prebuilt ddmlib-prebuilt junit ptscommonutilhost
-
-LOCAL_PTS_TEST_PACKAGE := com.android.pts.bootup
-
-include $(BUILD_PTS_HOST_JAVA_LIBRARY)
-
diff --git a/suite/pts/hostTests/bootup/src/com/android/pts/bootup/BootupTimeTest.java b/suite/pts/hostTests/bootup/src/com/android/pts/bootup/BootupTimeTest.java
deleted file mode 100644
index e78289b..0000000
--- a/suite/pts/hostTests/bootup/src/com/android/pts/bootup/BootupTimeTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.bootup;
-
-import android.cts.util.TimeoutReq;
-import com.android.pts.util.MeasureRun;
-import com.android.pts.util.MeasureTime;
-import com.android.pts.util.ReportLog;
-import com.android.pts.util.Stat;
-import com.android.pts.util.Stat.StatResult;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.TestDeviceOptions;
-import com.android.tradefed.testtype.DeviceTestCase;
-
-/**
- *  Measure reboot-time using adb shell reboot
- */
-public class BootupTimeTest extends DeviceTestCase {
-
-    private ReportLog mReport = null;
-    // add some delay before each reboot
-    final static long SLEEP_BEFORE_REBOOT_TIME = 2 * 60 * 1000L;
-    final static int REBOOT_TIMEOUT_MS = 10 * 60 * 1000;
-
-    @Override
-    protected void setUp() throws Exception {
-        mReport = new ReportLog();
-        super.setUp();
-    }
-
-
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
-        mReport.throwReportToHost();
-    }
-
-    @TimeoutReq(minutes = 30)
-    public void testBootupTime() throws Exception {
-        final int NUMBER_REPEAT = 5;
-        double[] result = MeasureTime.measure(NUMBER_REPEAT, new MeasureRun() {
-            @Override
-            public void prepare(int i) throws Exception {
-                if (i == 0) {
-                    return;
-                }
-                Thread.sleep(SLEEP_BEFORE_REBOOT_TIME);
-            }
-            @Override
-            public void run(int i) throws Exception {
-                rebootDevice();
-            }
-        });
-        mReport.printArray("time in ms", result, false);
-        StatResult stat = Stat.getStat(result);
-        mReport.printSummary("time in ms", stat.mAverage, stat.mStddev);
-    }
-
-    private void rebootDevice() throws DeviceNotAvailableException {
-        TestDeviceOptions options = getDevice().getOptions();
-        // store default value and increase time-out for reboot
-        int rebootTimeout = options.getRebootTimeout();
-        long onlineTimeout = options.getOnlineTimeout();
-        options.setRebootTimeout(REBOOT_TIMEOUT_MS);
-        options.setOnlineTimeout(REBOOT_TIMEOUT_MS);
-        getDevice().setOptions(options);
-        getDevice().reboot();
-        // restore default values
-        options.setRebootTimeout(rebootTimeout);
-        options.setOnlineTimeout(onlineTimeout);
-        getDevice().setOptions(options);
-    }
-}
diff --git a/suite/pts/hostTests/browser/browserlauncher/Android.mk b/suite/pts/hostTests/browser/browserlauncher/Android.mk
deleted file mode 100644
index 0592017..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/Android.mk
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright (C) 2012 The Android Open Source Project
-#
-# 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.
-
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-# don't include this package in any target
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-
-LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner ctstestserver
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := PtsDeviceBrowserLauncher
-
-LOCAL_SDK_VERSION := 16
-
-include $(BUILD_PTS_PACKAGE)
-
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/base.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/base.js
deleted file mode 100644
index 8801f2d..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/base.js
+++ /dev/null
@@ -1,289 +0,0 @@
-// Copyright 2012 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.
-
-
-// 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, run, setup, tearDown, minIterations) {
-  this.name = name;
-  this.run = run;
-  this.Setup = setup ? setup : function() { };
-  this.TearDown = tearDown ? tearDown : function() { };
-  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.
-function BenchmarkResult(benchmark, time) {
-  this.benchmark = benchmark;
-  this.time = time;
-}
-
-
-// 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 = '8';
-
-// 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.
-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) {
-  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);
-        continuation = suite.RunStep(runner);
-      }
-      if (continuation && typeof window != 'undefined' && window.setTimeout) {
-        window.setTimeout(RunStep, 25);
-        return;
-      }
-    }
-    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);
-}
-
-
-// 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.GeometricMean(this.results);
-  var score = this.reference / mean;
-  BenchmarkSuite.scores.push(score);
-  if (this.runner.NotifyResult) {
-    var formatted = BenchmarkSuite.FormatScore(100 * score);
-    this.runner.NotifyResult(this.name, formatted);
-  }
-}
-
-
-// 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) {
-  function Measure(data) {
-    var elapsed = 0;
-    var start = new Date();
-    for (var n = 0; elapsed < 1000; n++) {
-      benchmark.run();
-      elapsed = new Date() - start;
-    }
-    if (data != null) {
-      data.runs += n;
-      data.elapsed += elapsed;
-    }
-  }
-
-  if (data == null) {
-    // Measure the benchmark once for warm up and throw the result
-    // away. Return a fresh data object.
-    Measure(null);
-    return { runs: 0, elapsed: 0 };
-  } else {
-    Measure(data);
-    // If we've run too few iterations, we continue for another second.
-    if (data.runs < benchmark.minIterations) return data;
-    var usec = (data.elapsed * 1000) / data.runs;
-    this.NotifyStep(new BenchmarkResult(benchmark, usec));
-    return null;
-  }
-}
-
-
-// This function starts running a suite, but stops between each
-// individual benchmark in the suite and returns a continuation
-// function which can be invoked to run the next benchmark. Once the
-// last benchmark has been executed, null is returned.
-BenchmarkSuite.prototype.RunStep = function(runner) {
-  this.results = [];
-  this.runner = runner;
-  var length = this.benchmarks.length;
-  var index = 0;
-  var suite = this;
-  var data;
-
-  // Run the setup, the actual benchmark, and the tear down in three
-  // separate steps to allow the framework to yield between any of the
-  // steps.
-
-  function RunNextSetup() {
-    if (index < length) {
-      try {
-        suite.benchmarks[index].Setup();
-      } catch (e) {
-        suite.NotifyError(e);
-        return null;
-      }
-      return RunNextBenchmark;
-    }
-    suite.NotifyResult();
-    return null;
-  }
-
-  function RunNextBenchmark() {
-    try {
-      data = suite.RunSingleBenchmark(suite.benchmarks[index], data);
-    } catch (e) {
-      suite.NotifyError(e);
-      return null;
-    }
-    // If data is null, we're done with this benchmark.
-    return (data == null) ? RunNextTearDown : RunNextBenchmark();
-  }
-
-  function RunNextTearDown() {
-    try {
-      suite.benchmarks[index++].TearDown();
-    } catch (e) {
-      suite.NotifyError(e);
-      return null;
-    }
-    return RunNextSetup;
-  }
-
-  // Start out running the setup.
-  return RunNextSetup();
-}
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/box2d.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/box2d.js
deleted file mode 100644
index d6352e9..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/box2d.js
+++ /dev/null
@@ -1,562 +0,0 @@
-// Portions copyright 2012 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<y;++A)w[A]=0;return w};F.is=function(y,w){if(y===null)return false;if(w instanceof Function&&y instanceof w)return true;if(y.constructor.__implements!=G&&y.constructor.__implements[w])return true;return false};F.parseUInt=function(y){return Math.abs(parseInt(y))}})(Box2D);var Vector=Array,Vector_a2j_Number=Box2D.NVector;if(typeof Box2D==="undefined")Box2D={};if(typeof Box2D.Collision==="undefined")Box2D.Collision={};
-if(typeof Box2D.Collision.Shapes==="undefined")Box2D.Collision.Shapes={};if(typeof Box2D.Common==="undefined")Box2D.Common={};if(typeof Box2D.Common.Math==="undefined")Box2D.Common.Math={};if(typeof Box2D.Dynamics==="undefined")Box2D.Dynamics={};if(typeof Box2D.Dynamics.Contacts==="undefined")Box2D.Dynamics.Contacts={};if(typeof Box2D.Dynamics.Controllers==="undefined")Box2D.Dynamics.Controllers={};if(typeof Box2D.Dynamics.Joints==="undefined")Box2D.Dynamics.Joints={};
-(function(){function F(){F.b2AABB.apply(this,arguments)}function G(){G.b2Bound.apply(this,arguments)}function K(){K.b2BoundValues.apply(this,arguments);this.constructor===K&&this.b2BoundValues.apply(this,arguments)}function y(){y.b2Collision.apply(this,arguments)}function w(){w.b2ContactID.apply(this,arguments);this.constructor===w&&this.b2ContactID.apply(this,arguments)}function A(){A.b2ContactPoint.apply(this,arguments)}function U(){U.b2Distance.apply(this,arguments)}function p(){p.b2DistanceInput.apply(this,
-arguments)}function B(){B.b2DistanceOutput.apply(this,arguments)}function Q(){Q.b2DistanceProxy.apply(this,arguments)}function V(){V.b2DynamicTree.apply(this,arguments);this.constructor===V&&this.b2DynamicTree.apply(this,arguments)}function M(){M.b2DynamicTreeBroadPhase.apply(this,arguments)}function L(){L.b2DynamicTreeNode.apply(this,arguments)}function I(){I.b2DynamicTreePair.apply(this,arguments)}function W(){W.b2Manifold.apply(this,arguments);this.constructor===W&&this.b2Manifold.apply(this,arguments)}
-function Y(){Y.b2ManifoldPoint.apply(this,arguments);this.constructor===Y&&this.b2ManifoldPoint.apply(this,arguments)}function k(){k.b2Point.apply(this,arguments)}function z(){z.b2RayCastInput.apply(this,arguments);this.constructor===z&&this.b2RayCastInput.apply(this,arguments)}function u(){u.b2RayCastOutput.apply(this,arguments)}function D(){D.b2Segment.apply(this,arguments)}function H(){H.b2SeparationFunction.apply(this,arguments)}function O(){O.b2Simplex.apply(this,arguments);this.constructor===
-O&&this.b2Simplex.apply(this,arguments)}function E(){E.b2SimplexCache.apply(this,arguments)}function R(){R.b2SimplexVertex.apply(this,arguments)}function N(){N.b2TimeOfImpact.apply(this,arguments)}function S(){S.b2TOIInput.apply(this,arguments)}function aa(){aa.b2WorldManifold.apply(this,arguments);this.constructor===aa&&this.b2WorldManifold.apply(this,arguments)}function Z(){Z.ClipVertex.apply(this,arguments)}function d(){d.Features.apply(this,arguments)}function h(){h.b2CircleShape.apply(this,arguments);
-this.constructor===h&&this.b2CircleShape.apply(this,arguments)}function l(){l.b2EdgeChainDef.apply(this,arguments);this.constructor===l&&this.b2EdgeChainDef.apply(this,arguments)}function j(){j.b2EdgeShape.apply(this,arguments);this.constructor===j&&this.b2EdgeShape.apply(this,arguments)}function o(){o.b2MassData.apply(this,arguments)}function q(){q.b2PolygonShape.apply(this,arguments);this.constructor===q&&this.b2PolygonShape.apply(this,arguments)}function n(){n.b2Shape.apply(this,arguments);this.constructor===
-n&&this.b2Shape.apply(this,arguments)}function a(){a.b2Color.apply(this,arguments);this.constructor===a&&this.b2Color.apply(this,arguments)}function c(){c.b2Settings.apply(this,arguments)}function g(){g.b2Mat22.apply(this,arguments);this.constructor===g&&this.b2Mat22.apply(this,arguments)}function b(){b.b2Mat33.apply(this,arguments);this.constructor===b&&this.b2Mat33.apply(this,arguments)}function e(){e.b2Math.apply(this,arguments)}function f(){f.b2Sweep.apply(this,arguments)}function m(){m.b2Transform.apply(this,
-arguments);this.constructor===m&&this.b2Transform.apply(this,arguments)}function r(){r.b2Vec2.apply(this,arguments);this.constructor===r&&this.b2Vec2.apply(this,arguments)}function s(){s.b2Vec3.apply(this,arguments);this.constructor===s&&this.b2Vec3.apply(this,arguments)}function v(){v.b2Body.apply(this,arguments);this.constructor===v&&this.b2Body.apply(this,arguments)}function t(){t.b2BodyDef.apply(this,arguments);this.constructor===t&&this.b2BodyDef.apply(this,arguments)}function x(){x.b2ContactFilter.apply(this,
-arguments)}function C(){C.b2ContactImpulse.apply(this,arguments)}function J(){J.b2ContactListener.apply(this,arguments)}function T(){T.b2ContactManager.apply(this,arguments);this.constructor===T&&this.b2ContactManager.apply(this,arguments)}function P(){P.b2DebugDraw.apply(this,arguments);this.constructor===P&&this.b2DebugDraw.apply(this,arguments)}function X(){X.b2DestructionListener.apply(this,arguments)}function $(){$.b2FilterData.apply(this,arguments)}function ba(){ba.b2Fixture.apply(this,arguments);
-this.constructor===ba&&this.b2Fixture.apply(this,arguments)}function ca(){ca.b2FixtureDef.apply(this,arguments);this.constructor===ca&&this.b2FixtureDef.apply(this,arguments)}function da(){da.b2Island.apply(this,arguments);this.constructor===da&&this.b2Island.apply(this,arguments)}function Fa(){Fa.b2TimeStep.apply(this,arguments)}function ea(){ea.b2World.apply(this,arguments);this.constructor===ea&&this.b2World.apply(this,arguments)}function Ga(){Ga.b2CircleContact.apply(this,arguments)}function fa(){fa.b2Contact.apply(this,
-arguments);this.constructor===fa&&this.b2Contact.apply(this,arguments)}function ga(){ga.b2ContactConstraint.apply(this,arguments);this.constructor===ga&&this.b2ContactConstraint.apply(this,arguments)}function Ha(){Ha.b2ContactConstraintPoint.apply(this,arguments)}function Ia(){Ia.b2ContactEdge.apply(this,arguments)}function ha(){ha.b2ContactFactory.apply(this,arguments);this.constructor===ha&&this.b2ContactFactory.apply(this,arguments)}function Ja(){Ja.b2ContactRegister.apply(this,arguments)}function Ka(){Ka.b2ContactResult.apply(this,
-arguments)}function ia(){ia.b2ContactSolver.apply(this,arguments);this.constructor===ia&&this.b2ContactSolver.apply(this,arguments)}function La(){La.b2EdgeAndCircleContact.apply(this,arguments)}function ja(){ja.b2NullContact.apply(this,arguments);this.constructor===ja&&this.b2NullContact.apply(this,arguments)}function Ma(){Ma.b2PolyAndCircleContact.apply(this,arguments)}function Na(){Na.b2PolyAndEdgeContact.apply(this,arguments)}function Oa(){Oa.b2PolygonContact.apply(this,arguments)}function ka(){ka.b2PositionSolverManifold.apply(this,
-arguments);this.constructor===ka&&this.b2PositionSolverManifold.apply(this,arguments)}function Pa(){Pa.b2BuoyancyController.apply(this,arguments)}function Qa(){Qa.b2ConstantAccelController.apply(this,arguments)}function Ra(){Ra.b2ConstantForceController.apply(this,arguments)}function Sa(){Sa.b2Controller.apply(this,arguments)}function Ta(){Ta.b2ControllerEdge.apply(this,arguments)}function Ua(){Ua.b2GravityController.apply(this,arguments)}function Va(){Va.b2TensorDampingController.apply(this,arguments)}
-function la(){la.b2DistanceJoint.apply(this,arguments);this.constructor===la&&this.b2DistanceJoint.apply(this,arguments)}function ma(){ma.b2DistanceJointDef.apply(this,arguments);this.constructor===ma&&this.b2DistanceJointDef.apply(this,arguments)}function na(){na.b2FrictionJoint.apply(this,arguments);this.constructor===na&&this.b2FrictionJoint.apply(this,arguments)}function oa(){oa.b2FrictionJointDef.apply(this,arguments);this.constructor===oa&&this.b2FrictionJointDef.apply(this,arguments)}function pa(){pa.b2GearJoint.apply(this,
-arguments);this.constructor===pa&&this.b2GearJoint.apply(this,arguments)}function qa(){qa.b2GearJointDef.apply(this,arguments);this.constructor===qa&&this.b2GearJointDef.apply(this,arguments)}function Wa(){Wa.b2Jacobian.apply(this,arguments)}function ra(){ra.b2Joint.apply(this,arguments);this.constructor===ra&&this.b2Joint.apply(this,arguments)}function sa(){sa.b2JointDef.apply(this,arguments);this.constructor===sa&&this.b2JointDef.apply(this,arguments)}function Xa(){Xa.b2JointEdge.apply(this,arguments)}
-function ta(){ta.b2LineJoint.apply(this,arguments);this.constructor===ta&&this.b2LineJoint.apply(this,arguments)}function ua(){ua.b2LineJointDef.apply(this,arguments);this.constructor===ua&&this.b2LineJointDef.apply(this,arguments)}function va(){va.b2MouseJoint.apply(this,arguments);this.constructor===va&&this.b2MouseJoint.apply(this,arguments)}function wa(){wa.b2MouseJointDef.apply(this,arguments);this.constructor===wa&&this.b2MouseJointDef.apply(this,arguments)}function xa(){xa.b2PrismaticJoint.apply(this,
-arguments);this.constructor===xa&&this.b2PrismaticJoint.apply(this,arguments)}function ya(){ya.b2PrismaticJointDef.apply(this,arguments);this.constructor===ya&&this.b2PrismaticJointDef.apply(this,arguments)}function za(){za.b2PulleyJoint.apply(this,arguments);this.constructor===za&&this.b2PulleyJoint.apply(this,arguments)}function Aa(){Aa.b2PulleyJointDef.apply(this,arguments);this.constructor===Aa&&this.b2PulleyJointDef.apply(this,arguments)}function Ba(){Ba.b2RevoluteJoint.apply(this,arguments);
-this.constructor===Ba&&this.b2RevoluteJoint.apply(this,arguments)}function Ca(){Ca.b2RevoluteJointDef.apply(this,arguments);this.constructor===Ca&&this.b2RevoluteJointDef.apply(this,arguments)}function Da(){Da.b2WeldJoint.apply(this,arguments);this.constructor===Da&&this.b2WeldJoint.apply(this,arguments)}function Ea(){Ea.b2WeldJointDef.apply(this,arguments);this.constructor===Ea&&this.b2WeldJointDef.apply(this,arguments)}Box2D.Collision.IBroadPhase="Box2D.Collision.IBroadPhase";Box2D.Collision.b2AABB=
-F;Box2D.Collision.b2Bound=G;Box2D.Collision.b2BoundValues=K;Box2D.Collision.b2Collision=y;Box2D.Collision.b2ContactID=w;Box2D.Collision.b2ContactPoint=A;Box2D.Collision.b2Distance=U;Box2D.Collision.b2DistanceInput=p;Box2D.Collision.b2DistanceOutput=B;Box2D.Collision.b2DistanceProxy=Q;Box2D.Collision.b2DynamicTree=V;Box2D.Collision.b2DynamicTreeBroadPhase=M;Box2D.Collision.b2DynamicTreeNode=L;Box2D.Collision.b2DynamicTreePair=I;Box2D.Collision.b2Manifold=W;Box2D.Collision.b2ManifoldPoint=Y;Box2D.Collision.b2Point=
-k;Box2D.Collision.b2RayCastInput=z;Box2D.Collision.b2RayCastOutput=u;Box2D.Collision.b2Segment=D;Box2D.Collision.b2SeparationFunction=H;Box2D.Collision.b2Simplex=O;Box2D.Collision.b2SimplexCache=E;Box2D.Collision.b2SimplexVertex=R;Box2D.Collision.b2TimeOfImpact=N;Box2D.Collision.b2TOIInput=S;Box2D.Collision.b2WorldManifold=aa;Box2D.Collision.ClipVertex=Z;Box2D.Collision.Features=d;Box2D.Collision.Shapes.b2CircleShape=h;Box2D.Collision.Shapes.b2EdgeChainDef=l;Box2D.Collision.Shapes.b2EdgeShape=j;Box2D.Collision.Shapes.b2MassData=
-o;Box2D.Collision.Shapes.b2PolygonShape=q;Box2D.Collision.Shapes.b2Shape=n;Box2D.Common.b2internal="Box2D.Common.b2internal";Box2D.Common.b2Color=a;Box2D.Common.b2Settings=c;Box2D.Common.Math.b2Mat22=g;Box2D.Common.Math.b2Mat33=b;Box2D.Common.Math.b2Math=e;Box2D.Common.Math.b2Sweep=f;Box2D.Common.Math.b2Transform=m;Box2D.Common.Math.b2Vec2=r;Box2D.Common.Math.b2Vec3=s;Box2D.Dynamics.b2Body=v;Box2D.Dynamics.b2BodyDef=t;Box2D.Dynamics.b2ContactFilter=x;Box2D.Dynamics.b2ContactImpulse=C;Box2D.Dynamics.b2ContactListener=
-J;Box2D.Dynamics.b2ContactManager=T;Box2D.Dynamics.b2DebugDraw=P;Box2D.Dynamics.b2DestructionListener=X;Box2D.Dynamics.b2FilterData=$;Box2D.Dynamics.b2Fixture=ba;Box2D.Dynamics.b2FixtureDef=ca;Box2D.Dynamics.b2Island=da;Box2D.Dynamics.b2TimeStep=Fa;Box2D.Dynamics.b2World=ea;Box2D.Dynamics.Contacts.b2CircleContact=Ga;Box2D.Dynamics.Contacts.b2Contact=fa;Box2D.Dynamics.Contacts.b2ContactConstraint=ga;Box2D.Dynamics.Contacts.b2ContactConstraintPoint=Ha;Box2D.Dynamics.Contacts.b2ContactEdge=Ia;Box2D.Dynamics.Contacts.b2ContactFactory=
-ha;Box2D.Dynamics.Contacts.b2ContactRegister=Ja;Box2D.Dynamics.Contacts.b2ContactResult=Ka;Box2D.Dynamics.Contacts.b2ContactSolver=ia;Box2D.Dynamics.Contacts.b2EdgeAndCircleContact=La;Box2D.Dynamics.Contacts.b2NullContact=ja;Box2D.Dynamics.Contacts.b2PolyAndCircleContact=Ma;Box2D.Dynamics.Contacts.b2PolyAndEdgeContact=Na;Box2D.Dynamics.Contacts.b2PolygonContact=Oa;Box2D.Dynamics.Contacts.b2PositionSolverManifold=ka;Box2D.Dynamics.Controllers.b2BuoyancyController=Pa;Box2D.Dynamics.Controllers.b2ConstantAccelController=
-Qa;Box2D.Dynamics.Controllers.b2ConstantForceController=Ra;Box2D.Dynamics.Controllers.b2Controller=Sa;Box2D.Dynamics.Controllers.b2ControllerEdge=Ta;Box2D.Dynamics.Controllers.b2GravityController=Ua;Box2D.Dynamics.Controllers.b2TensorDampingController=Va;Box2D.Dynamics.Joints.b2DistanceJoint=la;Box2D.Dynamics.Joints.b2DistanceJointDef=ma;Box2D.Dynamics.Joints.b2FrictionJoint=na;Box2D.Dynamics.Joints.b2FrictionJointDef=oa;Box2D.Dynamics.Joints.b2GearJoint=pa;Box2D.Dynamics.Joints.b2GearJointDef=qa;
-Box2D.Dynamics.Joints.b2Jacobian=Wa;Box2D.Dynamics.Joints.b2Joint=ra;Box2D.Dynamics.Joints.b2JointDef=sa;Box2D.Dynamics.Joints.b2JointEdge=Xa;Box2D.Dynamics.Joints.b2LineJoint=ta;Box2D.Dynamics.Joints.b2LineJointDef=ua;Box2D.Dynamics.Joints.b2MouseJoint=va;Box2D.Dynamics.Joints.b2MouseJointDef=wa;Box2D.Dynamics.Joints.b2PrismaticJoint=xa;Box2D.Dynamics.Joints.b2PrismaticJointDef=ya;Box2D.Dynamics.Joints.b2PulleyJoint=za;Box2D.Dynamics.Joints.b2PulleyJointDef=Aa;Box2D.Dynamics.Joints.b2RevoluteJoint=
-Ba;Box2D.Dynamics.Joints.b2RevoluteJointDef=Ca;Box2D.Dynamics.Joints.b2WeldJoint=Da;Box2D.Dynamics.Joints.b2WeldJointDef=Ea})();Box2D.postDefs=[];
-(function(){var F=Box2D.Collision.Shapes.b2CircleShape,G=Box2D.Collision.Shapes.b2PolygonShape,K=Box2D.Collision.Shapes.b2Shape,y=Box2D.Common.b2Settings,w=Box2D.Common.Math.b2Math,A=Box2D.Common.Math.b2Sweep,U=Box2D.Common.Math.b2Transform,p=Box2D.Common.Math.b2Vec2,B=Box2D.Collision.b2AABB,Q=Box2D.Collision.b2Bound,V=Box2D.Collision.b2BoundValues,M=Box2D.Collision.b2Collision,L=Box2D.Collision.b2ContactID,I=Box2D.Collision.b2ContactPoint,W=Box2D.Collision.b2Distance,Y=Box2D.Collision.b2DistanceInput,
-k=Box2D.Collision.b2DistanceOutput,z=Box2D.Collision.b2DistanceProxy,u=Box2D.Collision.b2DynamicTree,D=Box2D.Collision.b2DynamicTreeBroadPhase,H=Box2D.Collision.b2DynamicTreeNode,O=Box2D.Collision.b2DynamicTreePair,E=Box2D.Collision.b2Manifold,R=Box2D.Collision.b2ManifoldPoint,N=Box2D.Collision.b2Point,S=Box2D.Collision.b2RayCastInput,aa=Box2D.Collision.b2RayCastOutput,Z=Box2D.Collision.b2Segment,d=Box2D.Collision.b2SeparationFunction,h=Box2D.Collision.b2Simplex,l=Box2D.Collision.b2SimplexCache,j=
-Box2D.Collision.b2SimplexVertex,o=Box2D.Collision.b2TimeOfImpact,q=Box2D.Collision.b2TOIInput,n=Box2D.Collision.b2WorldManifold,a=Box2D.Collision.ClipVertex,c=Box2D.Collision.Features,g=Box2D.Collision.IBroadPhase;B.b2AABB=function(){this.lowerBound=new p;this.upperBound=new p};B.prototype.IsValid=function(){var b=this.upperBound.y-this.lowerBound.y;return b=(b=this.upperBound.x-this.lowerBound.x>=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)<Number.MIN_VALUE){if(r<this.lowerBound.x||this.upperBound.x<r)return false}else{J=1/v;T=(this.lowerBound.x-r)*J;J=(this.upperBound.x-r)*J;P=-1;if(T>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(x<Number.MIN_VALUE){if(s<this.lowerBound.y||this.upperBound.y<s)return false}else{J=1/t;T=(this.lowerBound.y-s)*J;J=(this.upperBound.y-s)*J;P=-1;if(T>J){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;X<v;++X){C=t[X];C=C.x*J+C.y*x;if(C<P){P=C;T=X}}C=s[f];x=e.R;f=e.position.x+(x.col1.x*C.x+x.col2.x*C.y);e=e.position.y+(x.col1.y*C.x+x.col2.y*C.y);C=t[T];x=r.R;s=r.position.x+(x.col1.x*C.x+
-x.col2.x*C.y);r=r.position.y+(x.col1.y*C.x+x.col2.y*C.y);s-=f;r-=e;return s*b+r*m};M.FindMaxSeparation=function(b,e,f,m,r){var s=parseInt(e.m_vertexCount),v=e.m_normals,t,x;x=r.R;t=m.m_centroid;var C=r.position.x+(x.col1.x*t.x+x.col2.x*t.y),J=r.position.y+(x.col1.y*t.x+x.col2.y*t.y);x=f.R;t=e.m_centroid;C-=f.position.x+(x.col1.x*t.x+x.col2.x*t.y);J-=f.position.y+(x.col1.y*t.x+x.col2.y*t.y);x=C*f.R.col1.x+J*f.R.col1.y;J=C*f.R.col2.x+J*f.R.col2.y;C=0;for(var T=-Number.MAX_VALUE,P=0;P<s;++P){t=v[P];
-t=t.x*x+t.y*J;if(t>T){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+1<s?C+1:0);T=M.EdgeSeparation(e,f,J,m,r);var X=P=0,$=0;if(x>v&&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+1<s?P+1:0;v=M.EdgeSeparation(e,f,C,m,r);if(v>X){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;T<t;++T){f=r[T];f=v*f.x+C*f.y;if(f<J){J=f;x=T}}r=parseInt(x);v=parseInt(r+1<t?r+1:0);t=b[0];f=e[r];x=s.R;t.v.x=s.position.x+(x.col1.x*f.x+x.col2.x*f.y);t.v.y=s.position.y+(x.col1.y*f.x+x.col2.y*f.y);t.id.features.referenceEdge=m;t.id.features.incidentEdge=r;t.id.features.incidentVertex=0;t=b[1];f=e[v];
-x=s.R;t.v.x=s.position.x+(x.col1.x*f.x+x.col2.x*f.y);t.v.y=s.position.y+(x.col1.y*f.x+x.col2.y*f.y);t.id.features.referenceEdge=m;t.id.features.incidentEdge=v;t.id.features.incidentVertex=1};M.MakeClipPointVector=function(){var b=new Vector(2);b[0]=new a;b[1]=new a;return b};M.CollidePolygons=function(b,e,f,m,r){var s;b.m_pointCount=0;var v=e.m_radius+m.m_radius;s=0;M.s_edgeAO[0]=s;var t=M.FindMaxSeparation(M.s_edgeAO,e,f,m,r);s=M.s_edgeAO[0];if(!(t>v)){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+1<x?r[parseInt(J+1)]:r[0];J=M.s_localTangent;J.Set(P.x-t.x,P.y-t.y);J.Normalize();r=M.s_localNormal;r.x=J.y;r.y=-J.x;m=M.s_planePoint;m.Set(0.5*(t.x+P.x),0.5*(t.y+P.y));C=M.s_tangent;x=e.R;C.x=x.col1.x*J.x+x.col2.x*J.y;C.y=x.col1.y*
-J.x+x.col2.y*J.y;var X=M.s_tangent2;X.x=-C.x;X.y=-C.y;J=M.s_normal;J.x=C.y;J.y=-C.x;var $=M.s_v11,ba=M.s_v12;$.x=e.position.x+(x.col1.x*t.x+x.col2.x*t.y);$.y=e.position.y+(x.col1.y*t.x+x.col2.y*t.y);ba.x=e.position.x+(x.col1.x*P.x+x.col2.x*P.y);ba.y=e.position.y+(x.col1.y*P.x+x.col2.y*P.y);e=J.x*$.x+J.y*$.y;x=C.x*ba.x+C.y*ba.y+v;P=M.s_clipPoints1;t=M.s_clipPoints2;ba=0;ba=M.ClipSegmentToLine(P,s,X,-C.x*$.x-C.y*$.y+v);if(!(ba<2)){ba=M.ClipSegmentToLine(t,P,C,x);if(!(ba<2)){b.m_localPlaneNormal.SetV(r);
-b.m_localPoint.SetV(m);for(m=r=0;m<y.b2_maxManifoldPoints;++m){s=t[m];if(J.x*s.v.x+J.y*s.v.y-e<=v){C=b.m_points[r];x=f.R;X=s.v.x-f.position.x;$=s.v.y-f.position.y;C.m_localPoint.x=X*x.col1.x+$*x.col1.y;C.m_localPoint.y=X*x.col2.x+$*x.col2.y;C.m_id.Set(s.id);C.m_id.features.flip=T;++r}}b.m_pointCount=r}}}}};M.CollideCircles=function(b,e,f,m,r){b.m_pointCount=0;var s,v;s=f.R;v=e.m_p;var t=f.position.x+(s.col1.x*v.x+s.col2.x*v.y);f=f.position.y+(s.col1.y*v.x+s.col2.y*v.y);s=r.R;v=m.m_p;t=r.position.x+
-(s.col1.x*v.x+s.col2.x*v.y)-t;r=r.position.y+(s.col1.y*v.x+s.col2.y*v.y)-f;s=e.m_radius+m.m_radius;if(!(t*t+r*r>s*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;X<T;++X){t=P[X];s=f-t.x;v=x-t.y;t=e[X];s=t.x*s+t.y*v;if(s>r)return;if(s>C){C=s;J=X}}s=parseInt(J);v=parseInt(s+1<T?s+1:0);t=P[s];P=P[v];if(C<Number.MIN_VALUE){b.m_pointCount=1;b.m_type=E.e_faceA;b.m_localPlaneNormal.SetV(e[J]);b.m_localPoint.x=0.5*(t.x+P.x);b.m_localPoint.y=0.5*(t.y+P.y)}else{C=(f-P.x)*(t.x-P.x)+(x-P.y)*(t.y-P.y);
-if((f-t.x)*(P.x-t.x)+(x-t.y)*(P.y-t.y)<=0){if((f-t.x)*(f-t.x)+(x-t.y)*(x-t.y)>r*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;P<T;P++){C[P]=x[P].indexA;J[P]=x[P].indexB}switch(t.m_count){case 1:break;case 2:t.Solve2();break;case 3:t.Solve3();break;default:y.b2Assert(false)}if(t.m_count==3)break;X=t.GetClosestPoint();X.LengthSquared();P=t.GetSearchDirection();
-if(P.LengthSquared()<Number.MIN_VALUE*Number.MIN_VALUE)break;X=x[t.m_count];X.indexA=m.GetSupport(w.MulTMV(s.R,P.GetNegative()));X.wA=w.MulX(s,m.GetVertex(X.indexA));X.indexB=r.GetSupport(w.MulTMV(v.R,P));X.wB=w.MulX(v,r.GetVertex(X.indexB));X.w=w.SubtractVV(X.wB,X.wA);++$;++W.b2_gjkIters;var ba=false;for(P=0;P<T;P++)if(X.indexA==C[P]&&X.indexB==J[P]){ba=true;break}if(ba)break;++t.m_count}W.b2_gjkMaxIters=w.Max(W.b2_gjkMaxIters,$);t.GetWitnessPoints(b.pointA,b.pointB);b.distance=w.SubtractVV(b.pointA,
-b.pointB).Length();b.iterations=$;t.WriteCache(e);if(f.useRadii){e=m.m_radius;r=r.m_radius;if(b.distance>e+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;m<this.m_count;++m){var r=this.m_vertices[m].x*b.x+this.m_vertices[m].y*b.y;if(r>f){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;m<this.m_count;++m){var r=this.m_vertices[m].x*b.x+this.m_vertices[m].y*b.y;if(r>f){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&&b<this.m_count);return this.m_vertices[b]};u.b2DynamicTree=function(){};u.prototype.b2DynamicTree=function(){this.m_freeList=this.m_root=null;this.m_insertionCount=this.m_path=0};u.prototype.CreateProxy=function(b,e){var f=this.AllocateNode(),m=y.b2_aabbExtension,r=y.b2_aabbExtension;f.aabb.lowerBound.x=b.lowerBound.x-m;f.aabb.lowerBound.y=b.lowerBound.y-r;f.aabb.upperBound.x=
-b.upperBound.x+m;f.aabb.upperBound.y=b.upperBound.y+r;f.userData=e;this.InsertLeaf(f);return f};u.prototype.DestroyProxy=function(b){this.RemoveLeaf(b);this.FreeNode(b)};u.prototype.MoveProxy=function(b,e,f){y.b2Assert(b.IsLeaf());if(b.aabb.Contains(e))return false;this.RemoveLeaf(b);var m=y.b2_aabbExtension+y.b2_aabbMultiplier*(f.x>0?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<b;e++){for(var f=this.m_root,m=0;f.IsLeaf()==false;){f=this.m_path>>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)<Math.abs((f.aabb.lowerBound.x+f.aabb.upperBound.x)/2-e.x)+Math.abs((f.aabb.lowerBound.y+f.aabb.upperBound.y)/2-e.y)?m:f}while(f.IsLeaf()==false)}e=f.parent;m=this.AllocateNode();m.parent=e;m.userData=null;m.aabb.Combine(b.aabb,f.aabb);if(e){if(f.parent.child1==f)e.child1=m;else e.child2=m;m.child1=f;m.child2=b;f.parent=m;b.parent=m;do{if(e.aabb.Contains(m.aabb))break;e.aabb.Combine(e.child1.aabb,e.child2.aabb);m=e;e=e.parent}while(e)}else{m.child1=f;m.child2=b;f.parent=m;this.m_root=b.parent=
-m}}};u.prototype.RemoveLeaf=function(b){if(b==this.m_root)this.m_root=null;else{var e=b.parent,f=e.parent;b=e.child1==b?e.child2:e.child1;if(f){if(f.child1==e)f.child1=b;else f.child2=b;b.parent=f;for(this.FreeNode(e);f;){e=f.aabb;f.aabb=B.Combine(f.child1.aabb,f.child2.aabb);if(e.Contains(f.aabb))break;f=f.parent}}else{this.m_root=b;b.parent=null;this.FreeNode(e)}}};D.b2DynamicTreeBroadPhase=function(){this.m_tree=new u;this.m_moveBuffer=new Vector;this.m_pairBuffer=new Vector;this.m_pairCount=0};
-D.prototype.CreateProxy=function(b,e){var f=this.m_tree.CreateProxy(b,e);++this.m_proxyCount;this.BufferMove(f);return f};D.prototype.DestroyProxy=function(b){this.UnBufferMove(b);--this.m_proxyCount;this.m_tree.DestroyProxy(b)};D.prototype.MoveProxy=function(b,e,f){this.m_tree.MoveProxy(b,e,f)&&this.BufferMove(b)};D.prototype.TestOverlap=function(b,e){var f=this.m_tree.GetFatAABB(b),m=this.m_tree.GetFatAABB(e);return f.TestOverlap(m)};D.prototype.GetUserData=function(b){return this.m_tree.GetUserData(b)};
-D.prototype.GetFatAABB=function(b){return this.m_tree.GetFatAABB(b)};D.prototype.GetProxyCount=function(){return this.m_proxyCount};D.prototype.UpdatePairs=function(b){var e=this;var f=e.m_pairCount=0,m;for(f=0;f<e.m_moveBuffer.length;++f){m=e.m_moveBuffer[f];var r=e.m_tree.GetFatAABB(m);e.m_tree.Query(function(t){if(t==m)return true;if(e.m_pairCount==e.m_pairBuffer.length)e.m_pairBuffer[e.m_pairCount]=new O;var x=e.m_pairBuffer[e.m_pairCount];x.proxyA=t<m?t:m;x.proxyB=t>=m?t:m;++e.m_pairCount;return true},
-r)}for(f=e.m_moveBuffer.length=0;f<e.m_pairCount;){r=e.m_pairBuffer[f];var s=e.m_tree.GetUserData(r.proxyA),v=e.m_tree.GetUserData(r.proxyB);b(s,v);for(++f;f<e.m_pairCount;){s=e.m_pairBuffer[f];if(s.proxyA!=r.proxyA||s.proxyB!=r.proxyB)break;++f}}};D.prototype.Query=function(b,e){this.m_tree.Query(b,e)};D.prototype.RayCast=function(b,e){this.m_tree.RayCast(b,e)};D.prototype.Validate=function(){};D.prototype.Rebalance=function(b){if(b===undefined)b=0;this.m_tree.Rebalance(b)};D.prototype.BufferMove=
-function(b){this.m_moveBuffer[this.m_moveBuffer.length]=b};D.prototype.UnBufferMove=function(b){this.m_moveBuffer.splice(parseInt(this.m_moveBuffer.indexOf(b)),1)};D.prototype.ComparePairs=function(){return 0};D.__implements={};D.__implements[g]=true;H.b2DynamicTreeNode=function(){this.aabb=new B};H.prototype.IsLeaf=function(){return this.child1==null};O.b2DynamicTreePair=function(){};E.b2Manifold=function(){this.m_pointCount=0};E.prototype.b2Manifold=function(){this.m_points=new Vector(y.b2_maxManifoldPoints);
-for(var b=0;b<y.b2_maxManifoldPoints;b++)this.m_points[b]=new R;this.m_localPlaneNormal=new p;this.m_localPoint=new p};E.prototype.Reset=function(){for(var b=0;b<y.b2_maxManifoldPoints;b++)(this.m_points[b]instanceof R?this.m_points[b]:null).Reset();this.m_localPlaneNormal.SetZero();this.m_localPoint.SetZero();this.m_pointCount=this.m_type=0};E.prototype.Set=function(b){this.m_pointCount=b.m_pointCount;for(var e=0;e<y.b2_maxManifoldPoints;e++)(this.m_points[e]instanceof R?this.m_points[e]:null).Set(b.m_points[e]);
-this.m_localPlaneNormal.SetV(b.m_localPlaneNormal);this.m_localPoint.SetV(b.m_localPoint);this.m_type=b.m_type};E.prototype.Copy=function(){var b=new E;b.Set(this);return b};Box2D.postDefs.push(function(){Box2D.Collision.b2Manifold.e_circles=1;Box2D.Collision.b2Manifold.e_faceA=2;Box2D.Collision.b2Manifold.e_faceB=4});R.b2ManifoldPoint=function(){this.m_localPoint=new p;this.m_id=new L};R.prototype.b2ManifoldPoint=function(){this.Reset()};R.prototype.Reset=function(){this.m_localPoint.SetZero();this.m_tangentImpulse=
-this.m_normalImpulse=0;this.m_id.key=0};R.prototype.Set=function(b){this.m_localPoint.SetV(b.m_localPoint);this.m_normalImpulse=b.m_normalImpulse;this.m_tangentImpulse=b.m_tangentImpulse;this.m_id.Set(b.m_id)};N.b2Point=function(){this.p=new p};N.prototype.Support=function(){return this.p};N.prototype.GetFirstVertex=function(){return this.p};S.b2RayCastInput=function(){this.p1=new p;this.p2=new p};S.prototype.b2RayCastInput=function(b,e,f){if(b===undefined)b=null;if(e===undefined)e=null;if(f===undefined)f=
-1;b&&this.p1.SetV(b);e&&this.p2.SetV(e);this.maxFraction=f};aa.b2RayCastOutput=function(){this.normal=new p};Z.b2Segment=function(){this.p1=new p;this.p2=new p};Z.prototype.TestSegment=function(b,e,f,m){if(m===undefined)m=0;var r=f.p1,s=f.p2.x-r.x,v=f.p2.y-r.y;f=this.p2.y-this.p1.y;var t=-(this.p2.x-this.p1.x),x=100*Number.MIN_VALUE,C=-(s*f+v*t);if(C>x){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(0<s&&s<3);var v,t,x,C,J=C=x=m=e=0,T=0;J=0;if(s==
-1){this.m_type=d.e_points;v=this.m_proxyA.GetVertex(b.indexA[0]);t=this.m_proxyB.GetVertex(b.indexB[0]);s=v;b=f.R;e=f.position.x+(b.col1.x*s.x+b.col2.x*s.y);m=f.position.y+(b.col1.y*s.x+b.col2.y*s.y);s=t;b=r.R;x=r.position.x+(b.col1.x*s.x+b.col2.x*s.y);C=r.position.y+(b.col1.y*s.x+b.col2.y*s.y);this.m_axis.x=x-e;this.m_axis.y=C-m;this.m_axis.Normalize()}else{if(b.indexB[0]==b.indexB[1]){this.m_type=d.e_faceA;e=this.m_proxyA.GetVertex(b.indexA[0]);m=this.m_proxyA.GetVertex(b.indexA[1]);t=this.m_proxyB.GetVertex(b.indexB[0]);
-this.m_localPoint.x=0.5*(e.x+m.x);this.m_localPoint.y=0.5*(e.y+m.y);this.m_axis=w.CrossVF(w.SubtractVV(m,e),1);this.m_axis.Normalize();s=this.m_axis;b=f.R;J=b.col1.x*s.x+b.col2.x*s.y;T=b.col1.y*s.x+b.col2.y*s.y;s=this.m_localPoint;b=f.R;e=f.position.x+(b.col1.x*s.x+b.col2.x*s.y);m=f.position.y+(b.col1.y*s.x+b.col2.y*s.y);s=t;b=r.R;x=r.position.x+(b.col1.x*s.x+b.col2.x*s.y);C=r.position.y+(b.col1.y*s.x+b.col2.y*s.y);J=(x-e)*J+(C-m)*T}else if(b.indexA[0]==b.indexA[0]){this.m_type=d.e_faceB;x=this.m_proxyB.GetVertex(b.indexB[0]);
-C=this.m_proxyB.GetVertex(b.indexB[1]);v=this.m_proxyA.GetVertex(b.indexA[0]);this.m_localPoint.x=0.5*(x.x+C.x);this.m_localPoint.y=0.5*(x.y+C.y);this.m_axis=w.CrossVF(w.SubtractVV(C,x),1);this.m_axis.Normalize();s=this.m_axis;b=r.R;J=b.col1.x*s.x+b.col2.x*s.y;T=b.col1.y*s.x+b.col2.y*s.y;s=this.m_localPoint;b=r.R;x=r.position.x+(b.col1.x*s.x+b.col2.x*s.y);C=r.position.y+(b.col1.y*s.x+b.col2.y*s.y);s=v;b=f.R;e=f.position.x+(b.col1.x*s.x+b.col2.x*s.y);m=f.position.y+(b.col1.y*s.x+b.col2.y*s.y);J=(e-
-x)*J+(m-C)*T}else{e=this.m_proxyA.GetVertex(b.indexA[0]);m=this.m_proxyA.GetVertex(b.indexA[1]);x=this.m_proxyB.GetVertex(b.indexB[0]);C=this.m_proxyB.GetVertex(b.indexB[1]);w.MulX(f,v);v=w.MulMV(f.R,w.SubtractVV(m,e));w.MulX(r,t);J=w.MulMV(r.R,w.SubtractVV(C,x));r=v.x*v.x+v.y*v.y;t=J.x*J.x+J.y*J.y;b=w.SubtractVV(J,v);f=v.x*b.x+v.y*b.y;b=J.x*b.x+J.y*b.y;v=v.x*J.x+v.y*J.y;T=r*t-v*v;J=0;if(T!=0)J=w.Clamp((v*b-f*t)/T,0,1);if((v*J+b)/t<0)J=w.Clamp((v-f)/r,0,1);v=new p;v.x=e.x+J*(m.x-e.x);v.y=e.y+J*(m.y-
-e.y);t=new p;t.x=x.x+J*(C.x-x.x);t.y=x.y+J*(C.y-x.y);if(J==0||J==1){this.m_type=d.e_faceB;this.m_axis=w.CrossVF(w.SubtractVV(C,x),1);this.m_axis.Normalize();this.m_localPoint=t}else{this.m_type=d.e_faceA;this.m_axis=w.CrossVF(w.SubtractVV(m,e),1);this.m_localPoint=v}}J<0&&this.m_axis.NegativeSelf()}};d.prototype.Evaluate=function(b,e){var f,m,r=0;switch(this.m_type){case d.e_points:f=w.MulTMV(b.R,this.m_axis);m=w.MulTMV(e.R,this.m_axis.GetNegative());f=this.m_proxyA.GetSupportVertex(f);m=this.m_proxyB.GetSupportVertex(m);
-f=w.MulX(b,f);m=w.MulX(e,m);return r=(m.x-f.x)*this.m_axis.x+(m.y-f.y)*this.m_axis.y;case d.e_faceA:r=w.MulMV(b.R,this.m_axis);f=w.MulX(b,this.m_localPoint);m=w.MulTMV(e.R,r.GetNegative());m=this.m_proxyB.GetSupportVertex(m);m=w.MulX(e,m);return r=(m.x-f.x)*r.x+(m.y-f.y)*r.y;case d.e_faceB:r=w.MulMV(e.R,this.m_axis);m=w.MulX(e,this.m_localPoint);f=w.MulTMV(b.R,r.GetNegative());f=this.m_proxyA.GetSupportVertex(f);f=w.MulX(b,f);return r=(f.x-m.x)*r.x+(f.y-m.y)*r.y;default:y.b2Assert(false);return 0}};
-Box2D.postDefs.push(function(){Box2D.Collision.b2SeparationFunction.e_points=1;Box2D.Collision.b2SeparationFunction.e_faceA=2;Box2D.Collision.b2SeparationFunction.e_faceB=4});h.b2Simplex=function(){this.m_v1=new j;this.m_v2=new j;this.m_v3=new j;this.m_vertices=new Vector(3)};h.prototype.b2Simplex=function(){this.m_vertices[0]=this.m_v1;this.m_vertices[1]=this.m_v2;this.m_vertices[2]=this.m_v3};h.prototype.ReadCache=function(b,e,f,m,r){y.b2Assert(0<=b.count&&b.count<=3);var s,v;this.m_count=b.count;
-for(var t=this.m_vertices,x=0;x<this.m_count;x++){var C=t[x];C.indexA=b.indexA[x];C.indexB=b.indexB[x];s=e.GetVertex(C.indexA);v=m.GetVertex(C.indexB);C.wA=w.MulX(f,s);C.wB=w.MulX(r,v);C.w=w.SubtractVV(C.wB,C.wA);C.a=0}if(this.m_count>1){b=b.metric;s=this.GetMetric();if(s<0.5*b||2*b<s||s<Number.MIN_VALUE)this.m_count=0}if(this.m_count==0){C=t[0];C.indexA=0;C.indexB=0;s=e.GetVertex(0);v=m.GetVertex(0);C.wA=w.MulX(f,s);C.wB=w.MulX(r,v);C.w=w.SubtractVV(C.wB,C.wA);this.m_count=1}};h.prototype.WriteCache=
-function(b){b.metric=this.GetMetric();b.count=Box2D.parseUInt(this.m_count);for(var e=this.m_vertices,f=0;f<this.m_count;f++){b.indexA[f]=Box2D.parseUInt(e[f].indexA);b.indexB[f]=Box2D.parseUInt(e[f].indexB)}};h.prototype.GetSearchDirection=function(){switch(this.m_count){case 1:return this.m_v1.w.GetNegative();case 2:var b=w.SubtractVV(this.m_v2.w,this.m_v1.w);return w.CrossVV(b,this.m_v1.w.GetNegative())>0?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;b<y.b2_maxManifoldPoints;b++)this.m_points[b]=new p};n.prototype.Initialize=function(b,e,f,m,r){if(f===undefined)f=0;if(r===undefined)r=0;if(b.m_pointCount!=0){var s=0,v,t,x=0,C=0,J=0,T=0,P=0;v=0;switch(b.m_type){case E.e_circles:t=e.R;v=b.m_localPoint;s=e.position.x+t.col1.x*v.x+t.col2.x*v.y;e=e.position.y+t.col1.y*v.x+t.col2.y*
-v.y;t=m.R;v=b.m_points[0].m_localPoint;b=m.position.x+t.col1.x*v.x+t.col2.x*v.y;m=m.position.y+t.col1.y*v.x+t.col2.y*v.y;v=b-s;t=m-e;x=v*v+t*t;if(x>Number.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;s<b.m_pointCount;s++){t=m.R;v=b.m_points[s].m_localPoint;P=m.position.x+t.col1.x*v.x+t.col2.x*v.y;v=m.position.y+t.col1.y*v.x+t.col2.y*v.y;this.m_points[s].x=P+0.5*(f-(P-J)*x-(v-T)*C-r)*x;this.m_points[s].y=v+0.5*(f-(P-J)*x-(v-T)*C-r)*C}break;case E.e_faceB:t=m.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=m.R;v=b.m_localPoint;J=m.position.x+t.col1.x*v.x+t.col2.x*v.y;T=m.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;s<b.m_pointCount;s++){t=e.R;v=b.m_points[s].m_localPoint;P=e.position.x+t.col1.x*v.x+t.col2.x*v.y;v=e.position.y+t.col1.y*v.x+t.col2.y*v.y;this.m_points[s].x=P+0.5*(r-(P-J)*x-(v-T)*C-f)*x;this.m_points[s].y=v+0.5*(r-(P-J)*x-(v-T)*C-f)*C}}}};a.ClipVertex=function(){this.v=new p;this.id=new L};a.prototype.Set=function(b){this.v.SetV(b.v);this.id.Set(b.id)};
-c.Features=function(){};Object.defineProperty(c.prototype,"referenceEdge",{enumerable:false,configurable:true,get:function(){return this._referenceEdge}});Object.defineProperty(c.prototype,"referenceEdge",{enumerable:false,configurable:true,set:function(b){if(b===undefined)b=0;this._referenceEdge=b;this._m_id._key=this._m_id._key&4294967040|this._referenceEdge&255}});Object.defineProperty(c.prototype,"incidentEdge",{enumerable:false,configurable:true,get:function(){return this._incidentEdge}});Object.defineProperty(c.prototype,
-"incidentEdge",{enumerable:false,configurable:true,set:function(b){if(b===undefined)b=0;this._incidentEdge=b;this._m_id._key=this._m_id._key&4294902015|this._incidentEdge<<8&65280}});Object.defineProperty(c.prototype,"incidentVertex",{enumerable:false,configurable:true,get:function(){return this._incidentVertex}});Object.defineProperty(c.prototype,"incidentVertex",{enumerable:false,configurable:true,set:function(b){if(b===undefined)b=0;this._incidentVertex=b;this._m_id._key=this._m_id._key&4278255615|
-this._incidentVertex<<16&16711680}});Object.defineProperty(c.prototype,"flip",{enumerable:false,configurable:true,get:function(){return this._flip}});Object.defineProperty(c.prototype,"flip",{enumerable:false,configurable:true,set:function(b){if(b===undefined)b=0;this._flip=b;this._m_id._key=this._m_id._key&16777215|this._flip<<24&4278190080}})})();
-(function(){var F=Box2D.Common.b2Settings,G=Box2D.Collision.Shapes.b2CircleShape,K=Box2D.Collision.Shapes.b2EdgeChainDef,y=Box2D.Collision.Shapes.b2EdgeShape,w=Box2D.Collision.Shapes.b2MassData,A=Box2D.Collision.Shapes.b2PolygonShape,U=Box2D.Collision.Shapes.b2Shape,p=Box2D.Common.Math.b2Mat22,B=Box2D.Common.Math.b2Math,Q=Box2D.Common.Math.b2Transform,V=Box2D.Common.Math.b2Vec2,M=Box2D.Collision.b2Distance,L=Box2D.Collision.b2DistanceInput,I=Box2D.Collision.b2DistanceOutput,W=Box2D.Collision.b2DistanceProxy,
-Y=Box2D.Collision.b2SimplexCache;Box2D.inherit(G,Box2D.Collision.Shapes.b2Shape);G.prototype.__super=Box2D.Collision.Shapes.b2Shape.prototype;G.b2CircleShape=function(){Box2D.Collision.Shapes.b2Shape.b2Shape.apply(this,arguments);this.m_p=new V};G.prototype.Copy=function(){var k=new G;k.Set(this);return k};G.prototype.Set=function(k){this.__super.Set.call(this,k);if(Box2D.is(k,G))this.m_p.SetV((k instanceof G?k:null).m_p)};G.prototype.TestPoint=function(k,z){var u=k.R,D=k.position.x+(u.col1.x*this.m_p.x+
-u.col2.x*this.m_p.y);u=k.position.y+(u.col1.y*this.m_p.x+u.col2.y*this.m_p.y);D=z.x-D;u=z.y-u;return D*D+u*u<=this.m_radius*this.m_radius};G.prototype.RayCast=function(k,z,u){var D=u.R,H=z.p1.x-(u.position.x+(D.col1.x*this.m_p.x+D.col2.x*this.m_p.y));u=z.p1.y-(u.position.y+(D.col1.y*this.m_p.x+D.col2.y*this.m_p.y));D=z.p2.x-z.p1.x;var O=z.p2.y-z.p1.y,E=H*D+u*O,R=D*D+O*O,N=E*E-R*(H*H+u*u-this.m_radius*this.m_radius);if(N<0||R<Number.MIN_VALUE)return false;E=-(E+Math.sqrt(N));if(0<=E&&E<=z.maxFraction*
-R){E/=R;k.fraction=E;k.normal.x=H+E*D;k.normal.y=u+E*O;k.normal.Normalize();return true}return false};G.prototype.ComputeAABB=function(k,z){var u=z.R,D=z.position.x+(u.col1.x*this.m_p.x+u.col2.x*this.m_p.y);u=z.position.y+(u.col1.y*this.m_p.x+u.col2.y*this.m_p.y);k.lowerBound.Set(D-this.m_radius,u-this.m_radius);k.upperBound.Set(D+this.m_radius,u+this.m_radius)};G.prototype.ComputeMass=function(k,z){if(z===undefined)z=0;k.mass=z*F.b2_pi*this.m_radius*this.m_radius;k.center.SetV(this.m_p);k.I=k.mass*
-(0.5*this.m_radius*this.m_radius+(this.m_p.x*this.m_p.x+this.m_p.y*this.m_p.y))};G.prototype.ComputeSubmergedArea=function(k,z,u,D){if(z===undefined)z=0;u=B.MulX(u,this.m_p);var H=-(B.Dot(k,u)-z);if(H<-this.m_radius+Number.MIN_VALUE)return 0;if(H>this.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(D<O){k.lowerBound.x=D;k.upperBound.x=O}else{k.lowerBound.x=O;k.upperBound.x=D}if(H<u){k.lowerBound.y=H;k.upperBound.y=u}else{k.lowerBound.y=u;k.upperBound.y=H}};y.prototype.ComputeMass=function(k){k.mass=0;k.center.SetV(this.m_v1);k.I=0};y.prototype.ComputeSubmergedArea=
-function(k,z,u,D){if(z===undefined)z=0;var H=new V(k.x*z,k.y*z),O=B.MulX(u,this.m_v1);u=B.MulX(u,this.m_v2);var E=B.Dot(k,O)-z;k=B.Dot(k,u)-z;if(E>0)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;z<this.m_vertexCount;z++){this.m_vertices[z].SetV(k.m_vertices[z]);this.m_normals[z].SetV(k.m_normals[z])}}};A.prototype.SetAsArray=function(k,z){if(z===undefined)z=0;var u=new Vector,D=0,H;for(D=0;D<k.length;++D){H=k[D];u.push(H)}this.SetAsVector(u,
-z)};A.AsArray=function(k,z){if(z===undefined)z=0;var u=new A;u.SetAsArray(k,z);return u};A.prototype.SetAsVector=function(k,z){if(z===undefined)z=0;if(z==0)z=k.length;F.b2Assert(2<=z);this.m_vertexCount=z;this.Reserve(z);var u=0;for(u=0;u<this.m_vertexCount;u++)this.m_vertices[u].SetV(k[u]);for(u=0;u<this.m_vertexCount;++u){var D=parseInt(u),H=parseInt(u+1<this.m_vertexCount?u+1:0);D=B.SubtractVV(this.m_vertices[H],this.m_vertices[D]);F.b2Assert(D.LengthSquared()>Number.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;u<this.m_vertexCount;++u){this.m_vertices[u]=B.MulX(k,this.m_vertices[u]);this.m_normals[u]=B.MulMV(k.R,this.m_normals[u])}};A.AsOrientedBox=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;var H=new A;H.SetAsOrientedBox(k,z,u,D);return H};A.prototype.SetAsEdge=function(k,z){this.m_vertexCount=2;this.Reserve(2);this.m_vertices[0].SetV(k);
-this.m_vertices[1].SetV(z);this.m_centroid.x=0.5*(k.x+z.x);this.m_centroid.y=0.5*(k.y+z.y);this.m_normals[0]=B.CrossVF(B.SubtractVV(z,k),1);this.m_normals[0].Normalize();this.m_normals[1].x=-this.m_normals[0].x;this.m_normals[1].y=-this.m_normals[0].y};A.AsEdge=function(k,z){var u=new A;u.SetAsEdge(k,z);return u};A.prototype.TestPoint=function(k,z){var u;u=k.R;for(var D=z.x-k.position.x,H=z.y-k.position.y,O=D*u.col1.x+H*u.col1.y,E=D*u.col2.x+H*u.col2.y,R=0;R<this.m_vertexCount;++R){u=this.m_vertices[R];
-D=O-u.x;H=E-u.y;u=this.m_normals[R];if(u.x*D+u.y*H>0)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;d<this.m_vertexCount;++d){N=this.m_vertices[d];O=N.x-S;E=N.y-aa;N=this.m_normals[d];O=N.x*O+N.y*E;E=N.x*z+N.y*R;if(E==
-0){if(O<0)return false}else if(E<0&&O<D*E){D=O/E;Z=d}else if(E>0&&O<H*E)H=O/E;if(H<D-Number.MIN_VALUE)return false}if(Z>=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;N<this.m_vertexCount;++N){D=this.m_vertices[N];var S=z.position.x+(u.col1.x*
-D.x+u.col2.x*D.y);D=z.position.y+(u.col1.y*D.x+u.col2.y*D.y);H=H<S?H:S;O=O<D?O:D;E=E>S?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;R<this.m_vertexCount;++R){var N=
-this.m_vertices[R],S=R+1<this.m_vertexCount?this.m_vertices[parseInt(R+1)]:this.m_vertices[0],aa=N.x-0,Z=N.y-0,d=S.x-0,h=S.y-0,l=aa*h-Z*d,j=0.5*l;H+=j;u+=j*E*(0+N.x+S.x);D+=j*E*(0+N.y+S.y);N=aa;Z=Z;d=d;h=h;O+=l*(E*(0.25*(N*N+d*N+d*d)+(0*N+0*d))+0+(E*(0.25*(Z*Z+h*Z+h*h)+(0*Z+0*h))+0))}k.mass=z*H;u*=1/H;D*=1/H;k.center.Set(u,D);k.I=z*O}};A.prototype.ComputeSubmergedArea=function(k,z,u,D){if(z===undefined)z=0;var H=B.MulTMV(u.R,k),O=z-B.Dot(k,u.position),E=new Vector_a2j_Number,R=0,N=parseInt(-1);z=
-parseInt(-1);var S=false;for(k=k=0;k<this.m_vertexCount;++k){E[k]=B.Dot(H,this.m_vertices[k])-O;var aa=E[k]<-Number.MIN_VALUE;if(k>0)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;D<this.m_vertexCount;++D){var H=this.m_vertices[D].x*k.x+this.m_vertices[D].y*k.y;if(H>u){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;D<this.m_vertexCount;++D){var H=this.m_vertices[D].x*k.x+this.m_vertices[D].y*
-k.y;if(H>u){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);z<k;z++){this.m_vertices[z]=new V;this.m_normals[z]=new V}};A.ComputeCentroid=function(k,z){if(z===undefined)z=0;for(var u=new V,D=0,H=1/
-3,O=0;O<z;++O){var E=k[O],R=O+1<z?k[parseInt(O+1)]:k[0],N=0.5*((E.x-0)*(R.y-0)-(E.y-0)*(R.x-0));D+=N;u.x+=N*H*(0+E.x+R.x);u.y+=N*H*(0+E.y+R.y)}u.x*=1/D;u.y*=1/D;return u};A.ComputeOBB=function(k,z,u){if(u===undefined)u=0;var D=0,H=new Vector(u+1);for(D=0;D<u;++D)H[D]=z[D];H[u]=H[0];z=Number.MAX_VALUE;for(D=1;D<=u;++D){var O=H[parseInt(D-1)],E=H[D].x-O.x,R=H[D].y-O.y,N=Math.sqrt(E*E+R*R);E/=N;R/=N;for(var S=-R,aa=E,Z=N=Number.MAX_VALUE,d=-Number.MAX_VALUE,h=-Number.MAX_VALUE,l=0;l<u;++l){var j=H[l].x-
-O.x,o=H[l].y-O.y,q=E*j+R*o;j=S*j+aa*o;if(q<N)N=q;if(j<Z)Z=j;if(q>d)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 p<B?p:B};K.MinV=function(p,B){return new A(K.Min(p.x,B.x),K.Min(p.y,B.y))};
-K.Max=function(p,B){if(p===undefined)p=0;if(B===undefined)B=0;return p>B?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 p<B?B:p>Q?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.t0<p&&1-this.t0>Number.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.x<p.x?this.x:p.x;this.y=this.y<p.y?this.y:p.y};A.prototype.MaxV=function(p){this.x=this.x>p.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(p<Number.MIN_VALUE)return 0;var B=1/p;this.x*=B;this.y*=B;return p};A.prototype.IsValid=function(){return K.IsValid(this.x)&&K.IsValid(this.y)};U.b2Vec3=function(){};U.prototype.b2Vec3=function(p,B,Q){if(p===undefined)p=0;if(B===undefined)B=0;if(Q===undefined)Q=0;this.x=p;this.y=B;this.z=Q};U.prototype.SetZero=function(){this.x=this.y=this.z=0};U.prototype.Set=function(p,B,Q){if(p===undefined)p=0;if(B===undefined)B=0;if(Q===undefined)Q=0;this.x=p;this.y=B;this.z=Q};U.prototype.SetV=
-function(p){this.x=p.x;this.y=p.y;this.z=p.z};U.prototype.GetNegative=function(){return new U(-this.x,-this.y,-this.z)};U.prototype.NegativeSelf=function(){this.x=-this.x;this.y=-this.y;this.z=-this.z};U.prototype.Copy=function(){return new U(this.x,this.y,this.z)};U.prototype.Add=function(p){this.x+=p.x;this.y+=p.y;this.z+=p.z};U.prototype.Subtract=function(p){this.x-=p.x;this.y-=p.y;this.z-=p.z};U.prototype.Multiply=function(p){if(p===undefined)p=0;this.x*=p;this.y*=p;this.z*=p}})();
-(function(){var F=Box2D.Common.Math.b2Math,G=Box2D.Common.Math.b2Sweep,K=Box2D.Common.Math.b2Transform,y=Box2D.Common.Math.b2Vec2,w=Box2D.Common.b2Color,A=Box2D.Common.b2Settings,U=Box2D.Collision.b2AABB,p=Box2D.Collision.b2ContactPoint,B=Box2D.Collision.b2DynamicTreeBroadPhase,Q=Box2D.Collision.b2RayCastInput,V=Box2D.Collision.b2RayCastOutput,M=Box2D.Collision.Shapes.b2CircleShape,L=Box2D.Collision.Shapes.b2EdgeShape,I=Box2D.Collision.Shapes.b2MassData,W=Box2D.Collision.Shapes.b2PolygonShape,Y=Box2D.Collision.Shapes.b2Shape,
-k=Box2D.Dynamics.b2Body,z=Box2D.Dynamics.b2BodyDef,u=Box2D.Dynamics.b2ContactFilter,D=Box2D.Dynamics.b2ContactImpulse,H=Box2D.Dynamics.b2ContactListener,O=Box2D.Dynamics.b2ContactManager,E=Box2D.Dynamics.b2DebugDraw,R=Box2D.Dynamics.b2DestructionListener,N=Box2D.Dynamics.b2FilterData,S=Box2D.Dynamics.b2Fixture,aa=Box2D.Dynamics.b2FixtureDef,Z=Box2D.Dynamics.b2Island,d=Box2D.Dynamics.b2TimeStep,h=Box2D.Dynamics.b2World,l=Box2D.Dynamics.Contacts.b2Contact,j=Box2D.Dynamics.Contacts.b2ContactFactory,
-o=Box2D.Dynamics.Contacts.b2ContactSolver,q=Box2D.Dynamics.Joints.b2Joint,n=Box2D.Dynamics.Joints.b2PulleyJoint;k.b2Body=function(){this.m_xf=new K;this.m_sweep=new G;this.m_linearVelocity=new y;this.m_force=new y};k.prototype.connectEdges=function(a,c,g){if(g===undefined)g=0;var b=Math.atan2(c.GetDirectionVector().y,c.GetDirectionVector().x);g=F.MulFV(Math.tan((b-g)*0.5),c.GetDirectionVector());g=F.SubtractVV(g,c.GetNormalVector());g=F.MulFV(A.b2_toiSlop,g);g=F.AddVV(g,c.GetVertex1());var e=F.AddVV(a.GetDirectionVector(),
-c.GetDirectionVector());e.Normalize();var f=F.Dot(a.GetDirectionVector(),c.GetNormalVector())>0;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;m<a;m++)this.m_bodies[m]=null;for(m=this.m_contacts.length;m<c;m++)this.m_contacts[m]=null;for(m=this.m_joints.length;m<g;m++)this.m_joints[m]=null};Z.prototype.Clear=function(){this.m_jointCount=
-this.m_contactCount=this.m_bodyCount=0};Z.prototype.Solve=function(a,c,g){var b=0,e=0,f;for(b=0;b<this.m_bodyCount;++b){e=this.m_bodies[b];if(e.GetType()==k.b2_dynamicBody){e.m_linearVelocity.x+=a.dt*(c.x+e.m_invMass*e.m_force.x);e.m_linearVelocity.y+=a.dt*(c.y+e.m_invMass*e.m_force.y);e.m_angularVelocity+=a.dt*e.m_invI*e.m_torque;e.m_linearVelocity.Multiply(F.Clamp(1-a.dt*e.m_linearDamping,0,1));e.m_angularVelocity*=F.Clamp(1-a.dt*e.m_angularDamping,0,1)}}this.m_contactSolver.Initialize(a,this.m_contacts,
-this.m_contactCount,this.m_allocator);c=this.m_contactSolver;c.InitVelocityConstraints(a);for(b=0;b<this.m_jointCount;++b){f=this.m_joints[b];f.InitVelocityConstraints(a)}for(b=0;b<a.velocityIterations;++b){for(e=0;e<this.m_jointCount;++e){f=this.m_joints[e];f.SolveVelocityConstraints(a)}c.SolveVelocityConstraints()}for(b=0;b<this.m_jointCount;++b){f=this.m_joints[b];f.FinalizeVelocityConstraints()}c.FinalizeVelocityConstraints();for(b=0;b<this.m_bodyCount;++b){e=this.m_bodies[b];if(e.GetType()!=
-k.b2_staticBody){var m=a.dt*e.m_linearVelocity.x,r=a.dt*e.m_linearVelocity.y;if(m*m+r*r>A.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;b<a.positionIterations;++b){m=c.SolvePositionConstraints(A.b2_contactBaumgarte);r=true;for(e=0;e<this.m_jointCount;++e){f=this.m_joints[e];f=f.SolvePositionConstraints(A.b2_contactBaumgarte);r=r&&f}if(m&&r)break}this.Report(c.m_constraints);if(g){g=Number.MAX_VALUE;c=A.b2_linearSleepTolerance*A.b2_linearSleepTolerance;m=A.b2_angularSleepTolerance*A.b2_angularSleepTolerance;for(b=0;b<this.m_bodyCount;++b){e=
-this.m_bodies[b];if(e.GetType()!=k.b2_staticBody){if((e.m_flags&k.e_allowSleepFlag)==0)g=e.m_sleepTime=0;if((e.m_flags&k.e_allowSleepFlag)==0||e.m_angularVelocity*e.m_angularVelocity>m||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;b<this.m_bodyCount;++b){e=this.m_bodies[b];e.SetAwake(false)}}};Z.prototype.SolveTOI=function(a){var c=0,g=0;this.m_contactSolver.Initialize(a,this.m_contacts,this.m_contactCount,
-this.m_allocator);var b=this.m_contactSolver;for(c=0;c<this.m_jointCount;++c)this.m_joints[c].InitVelocityConstraints(a);for(c=0;c<a.velocityIterations;++c){b.SolveVelocityConstraints();for(g=0;g<this.m_jointCount;++g)this.m_joints[g].SolveVelocityConstraints(a)}for(c=0;c<this.m_bodyCount;++c){g=this.m_bodies[c];if(g.GetType()!=k.b2_staticBody){var e=a.dt*g.m_linearVelocity.x,f=a.dt*g.m_linearVelocity.y;if(e*e+f*f>A.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;c<a.positionIterations;++c){e=b.SolvePositionConstraints(0.75);f=true;for(g=0;g<
-this.m_jointCount;++g){var m=this.m_joints[g].SolvePositionConstraints(A.b2_contactBaumgarte);f=f&&m}if(e&&f)break}this.Report(b.m_constraints)};Z.prototype.Report=function(a){if(this.m_listener!=null)for(var c=0;c<this.m_contactCount;++c){for(var g=this.m_contacts[c],b=a[c],e=0;e<b.pointCount;++e){Z.s_impulse.normalImpulses[e]=b.points[e].normalImpulse;Z.s_impulse.tangentImpulses[e]=b.points[e].tangentImpulse}this.m_listener.PostSolve(g,Z.s_impulse)}};Z.prototype.AddBody=function(a){a.m_islandIndex=
-this.m_bodyCount;this.m_bodies[this.m_bodyCount++]=a};Z.prototype.AddContact=function(a){this.m_contacts[this.m_contactCount++]=a};Z.prototype.AddJoint=function(a){this.m_joints[this.m_jointCount++]=a};Box2D.postDefs.push(function(){Box2D.Dynamics.b2Island.s_impulse=new D});d.b2TimeStep=function(){};d.prototype.Set=function(a){this.dt=a.dt;this.inv_dt=a.inv_dt;this.positionIterations=a.positionIterations;this.velocityIterations=a.velocityIterations;this.warmStarting=a.warmStarting};h.b2World=function(){this.s_stack=
-new Vector;this.m_contactManager=new O;this.m_contactSolver=new o;this.m_island=new Z};h.prototype.b2World=function(a,c){this.m_controllerList=this.m_jointList=this.m_contactList=this.m_bodyList=this.m_debugDraw=this.m_destructionListener=null;this.m_controllerCount=this.m_jointCount=this.m_contactCount=this.m_bodyCount=0;h.m_warmStarting=true;h.m_continuousPhysics=true;this.m_allowSleep=c;this.m_gravity=a;this.m_inv_dt0=0;this.m_contactManager.m_world=this;this.m_groundBody=this.CreateBody(new z)};
-h.prototype.SetDestructionListener=function(a){this.m_destructionListener=a};h.prototype.SetContactFilter=function(a){this.m_contactManager.m_contactFilter=a};h.prototype.SetContactListener=function(a){this.m_contactManager.m_contactListener=a};h.prototype.SetDebugDraw=function(a){this.m_debugDraw=a};h.prototype.SetBroadPhase=function(a){var c=this.m_contactManager.m_broadPhase;this.m_contactManager.m_broadPhase=a;for(var g=this.m_bodyList;g;g=g.m_next)for(var b=g.m_fixtureList;b;b=b.m_next)b.m_proxy=
-a.CreateProxy(c.GetFatAABB(b.m_proxy),b)};h.prototype.Validate=function(){this.m_contactManager.m_broadPhase.Validate()};h.prototype.GetProxyCount=function(){return this.m_contactManager.m_broadPhase.GetProxyCount()};h.prototype.CreateBody=function(a){if(this.IsLocked()==true)return null;a=new k(a,this);a.m_prev=null;if(a.m_next=this.m_bodyList)this.m_bodyList.m_prev=a;this.m_bodyList=a;++this.m_bodyCount;return a};h.prototype.DestroyBody=function(a){if(this.IsLocked()!=true){for(var c=a.m_jointList;c;){var g=
-c;c=c.next;this.m_destructionListener&&this.m_destructionListener.SayGoodbyeJoint(g.joint);this.DestroyJoint(g.joint)}for(c=a.m_controllerList;c;){g=c;c=c.nextController;g.controller.RemoveBody(a)}for(c=a.m_contactList;c;){g=c;c=c.next;this.m_contactManager.Destroy(g.contact)}a.m_contactList=null;for(c=a.m_fixtureList;c;){g=c;c=c.m_next;this.m_destructionListener&&this.m_destructionListener.SayGoodbyeFixture(g);g.DestroyProxy(this.m_contactManager.m_broadPhase);g.Destroy()}a.m_fixtureList=null;a.m_fixtureCount=
-0;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_bodyList)this.m_bodyList=a.m_next;--this.m_bodyCount}};h.prototype.CreateJoint=function(a){var c=q.Create(a,null);c.m_prev=null;if(c.m_next=this.m_jointList)this.m_jointList.m_prev=c;this.m_jointList=c;++this.m_jointCount;c.m_edgeA.joint=c;c.m_edgeA.other=c.m_bodyB;c.m_edgeA.prev=null;if(c.m_edgeA.next=c.m_bodyA.m_jointList)c.m_bodyA.m_jointList.prev=c.m_edgeA;c.m_bodyA.m_jointList=c.m_edgeA;c.m_edgeB.joint=c;
-c.m_edgeB.other=c.m_bodyA;c.m_edgeB.prev=null;if(c.m_edgeB.next=c.m_bodyB.m_jointList)c.m_bodyB.m_jointList.prev=c.m_edgeB;c.m_bodyB.m_jointList=c.m_edgeB;var g=a.bodyA,b=a.bodyB;if(a.collideConnected==false)for(a=b.GetContactList();a;){a.other==g&&a.contact.FlagForFiltering();a=a.next}return c};h.prototype.DestroyJoint=function(a){var c=a.m_collideConnected;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_jointList)this.m_jointList=a.m_next;var g=a.m_bodyA,b=
-a.m_bodyB;g.SetAwake(true);b.SetAwake(true);if(a.m_edgeA.prev)a.m_edgeA.prev.next=a.m_edgeA.next;if(a.m_edgeA.next)a.m_edgeA.next.prev=a.m_edgeA.prev;if(a.m_edgeA==g.m_jointList)g.m_jointList=a.m_edgeA.next;a.m_edgeA.prev=null;a.m_edgeA.next=null;if(a.m_edgeB.prev)a.m_edgeB.prev.next=a.m_edgeB.next;if(a.m_edgeB.next)a.m_edgeB.next.prev=a.m_edgeB.prev;if(a.m_edgeB==b.m_jointList)b.m_jointList=a.m_edgeB.next;a.m_edgeB.prev=null;a.m_edgeB.next=null;q.Destroy(a,null);--this.m_jointCount;if(c==false)for(a=
-b.GetContactList();a;){a.other==g&&a.contact.FlagForFiltering();a=a.next}};h.prototype.AddController=function(a){a.m_next=this.m_controllerList;a.m_prev=null;this.m_controllerList=a;a.m_world=this;this.m_controllerCount++;return a};h.prototype.RemoveController=function(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(this.m_controllerList==a)this.m_controllerList=a.m_next;this.m_controllerCount--};h.prototype.CreateController=function(a){if(a.m_world!=this)throw Error("Controller can only be a member of one world");
-a.m_next=this.m_controllerList;a.m_prev=null;if(this.m_controllerList)this.m_controllerList.m_prev=a;this.m_controllerList=a;++this.m_controllerCount;a.m_world=this;return a};h.prototype.DestroyController=function(a){a.Clear();if(a.m_next)a.m_next.m_prev=a.m_prev;if(a.m_prev)a.m_prev.m_next=a.m_next;if(a==this.m_controllerList)this.m_controllerList=a.m_next;--this.m_controllerCount};h.prototype.SetWarmStarting=function(a){h.m_warmStarting=a};h.prototype.SetContinuousPhysics=function(a){h.m_continuousPhysics=
-a};h.prototype.GetBodyCount=function(){return this.m_bodyCount};h.prototype.GetJointCount=function(){return this.m_jointCount};h.prototype.GetContactCount=function(){return this.m_contactCount};h.prototype.SetGravity=function(a){this.m_gravity=a};h.prototype.GetGravity=function(){return this.m_gravity};h.prototype.GetGroundBody=function(){return this.m_groundBody};h.prototype.Step=function(a,c,g){if(a===undefined)a=0;if(c===undefined)c=0;if(g===undefined)g=0;if(this.m_flags&h.e_newFixture){this.m_contactManager.FindNewContacts();
-this.m_flags&=~h.e_newFixture}this.m_flags|=h.e_locked;var b=h.s_timestep2;b.dt=a;b.velocityIterations=c;b.positionIterations=g;b.inv_dt=a>0?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;f<g.m_bodyCount;++f){c=g.m_bodies[f];if(c.GetType()==k.b2_staticBody)c.m_flags&=~k.e_islandFlag}}for(f=0;f<b.length;++f){if(!b[f])break;b[f]=null}for(c=this.m_bodyList;c;c=
-c.m_next)c.IsAwake()==false||c.IsActive()==false||c.GetType()!=k.b2_staticBody&&c.SynchronizeFixtures();this.m_contactManager.FindNewContacts()};h.prototype.SolveTOI=function(a){var c,g,b,e=this.m_island;e.Initialize(this.m_bodyCount,A.b2_maxTOIContactsPerIsland,A.b2_maxTOIJointsPerIsland,null,this.m_contactManager.m_contactListener,this.m_contactSolver);var f=h.s_queue;for(c=this.m_bodyList;c;c=c.m_next){c.m_flags&=~k.e_islandFlag;c.m_sweep.t0=0}for(b=this.m_contactList;b;b=b.m_next)b.m_flags&=~(l.e_toiFlag|
-l.e_islandFlag);for(b=this.m_jointList;b;b=b.m_next)b.m_islandFlag=false;for(;;){var m=null,r=1;for(b=this.m_contactList;b;b=b.m_next)if(!(b.IsSensor()==true||b.IsEnabled()==false||b.IsContinuous()==false)){c=1;if(b.m_flags&l.e_toiFlag)c=b.m_toi;else{c=b.m_fixtureA;g=b.m_fixtureB;c=c.m_body;g=g.m_body;if((c.GetType()!=k.b2_dynamicBody||c.IsAwake()==false)&&(g.GetType()!=k.b2_dynamicBody||g.IsAwake()==false))continue;var s=c.m_sweep.t0;if(c.m_sweep.t0<g.m_sweep.t0){s=g.m_sweep.t0;c.m_sweep.Advance(s)}else if(g.m_sweep.t0<
-c.m_sweep.t0){s=c.m_sweep.t0;g.m_sweep.Advance(s)}c=b.ComputeTOI(c.m_sweep,g.m_sweep);A.b2Assert(0<=c&&c<=1);if(c>0&&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_VALUE<c&&c<r){m=b;r=c}}if(m==null||1-100*Number.MIN_VALUE<r)break;c=m.m_fixtureA;g=m.m_fixtureB;c=c.m_body;g=g.m_body;h.s_backupA.Set(c.m_sweep);h.s_backupB.Set(g.m_sweep);c.Advance(r);g.Advance(r);m.Update(this.m_contactManager.m_contactListener);m.m_flags&=~l.e_toiFlag;if(m.IsSensor()==true||m.IsEnabled()==
-false){c.m_sweep.Set(h.s_backupA);g.m_sweep.Set(h.s_backupB);c.SynchronizeTransform();g.SynchronizeTransform()}else if(m.IsTouching()!=false){c=c;if(c.GetType()!=k.b2_dynamicBody)c=g;e.Clear();m=b=0;f[b+m++]=c;for(c.m_flags|=k.e_islandFlag;m>0;){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;r<e.m_bodyCount;++r){c=e.m_bodies[r];c.m_flags&=~k.e_islandFlag;if(c.IsAwake()!=false)if(c.GetType()==k.b2_dynamicBody){c.SynchronizeFixtures();for(g=c.m_contactList;g;g=g.next)g.contact.m_flags&=~l.e_toiFlag}}for(r=0;r<e.m_contactCount;++r){b=e.m_contacts[r];b.m_flags&=~(l.e_toiFlag|
-l.e_islandFlag)}for(r=0;r<e.m_jointCount;++r){b=e.m_joints[r];b.m_islandFlag=false}this.m_contactManager.FindNewContacts()}}};h.prototype.DrawJoint=function(a){var c=a.GetBodyA(),g=a.GetBodyB(),b=c.m_xf.position,e=g.m_xf.position,f=a.GetAnchorA(),m=a.GetAnchorB(),r=h.s_jointColor;switch(a.m_type){case q.e_distanceJoint:this.m_debugDraw.DrawSegment(f,m,r);break;case q.e_pulleyJoint:c=a instanceof n?a:null;a=c.GetGroundAnchorA();c=c.GetGroundAnchorB();this.m_debugDraw.DrawSegment(a,f,r);this.m_debugDraw.DrawSegment(c,
-m,r);this.m_debugDraw.DrawSegment(a,c,r);break;case q.e_mouseJoint:this.m_debugDraw.DrawSegment(f,m,r);break;default:c!=this.m_groundBody&&this.m_debugDraw.DrawSegment(b,f,r);this.m_debugDraw.DrawSegment(f,m,r);g!=this.m_groundBody&&this.m_debugDraw.DrawSegment(e,m,r)}};h.prototype.DrawShape=function(a,c,g){switch(a.m_type){case Y.e_circleShape:var b=a instanceof M?a:null;this.m_debugDraw.DrawSolidCircle(F.MulX(c,b.m_p),b.m_radius,c.R.col1,g);break;case Y.e_polygonShape:b=0;b=a instanceof W?a:null;
-a=parseInt(b.GetVertexCount());var e=b.GetVertices(),f=new Vector(a);for(b=0;b<a;++b)f[b]=F.MulX(c,e[b]);this.m_debugDraw.DrawSolidPolygon(f,a,g);break;case Y.e_edgeShape:b=a instanceof L?a:null;this.m_debugDraw.DrawSegment(F.MulX(c,b.GetVertex1()),F.MulX(c,b.GetVertex2()),g)}};Box2D.postDefs.push(function(){Box2D.Dynamics.b2World.s_timestep2=new d;Box2D.Dynamics.b2World.s_xf=new K;Box2D.Dynamics.b2World.s_backupA=new G;Box2D.Dynamics.b2World.s_backupB=new G;Box2D.Dynamics.b2World.s_timestep=new d;
-Box2D.Dynamics.b2World.s_queue=new Vector;Box2D.Dynamics.b2World.s_jointColor=new w(0.5,0.8,0.8);Box2D.Dynamics.b2World.e_newFixture=1;Box2D.Dynamics.b2World.e_locked=2})})();
-(function(){var F=Box2D.Collision.Shapes.b2CircleShape,G=Box2D.Collision.Shapes.b2EdgeShape,K=Box2D.Collision.Shapes.b2PolygonShape,y=Box2D.Collision.Shapes.b2Shape,w=Box2D.Dynamics.Contacts.b2CircleContact,A=Box2D.Dynamics.Contacts.b2Contact,U=Box2D.Dynamics.Contacts.b2ContactConstraint,p=Box2D.Dynamics.Contacts.b2ContactConstraintPoint,B=Box2D.Dynamics.Contacts.b2ContactEdge,Q=Box2D.Dynamics.Contacts.b2ContactFactory,V=Box2D.Dynamics.Contacts.b2ContactRegister,M=Box2D.Dynamics.Contacts.b2ContactResult,
-L=Box2D.Dynamics.Contacts.b2ContactSolver,I=Box2D.Dynamics.Contacts.b2EdgeAndCircleContact,W=Box2D.Dynamics.Contacts.b2NullContact,Y=Box2D.Dynamics.Contacts.b2PolyAndCircleContact,k=Box2D.Dynamics.Contacts.b2PolyAndEdgeContact,z=Box2D.Dynamics.Contacts.b2PolygonContact,u=Box2D.Dynamics.Contacts.b2PositionSolverManifold,D=Box2D.Dynamics.b2Body,H=Box2D.Dynamics.b2TimeStep,O=Box2D.Common.b2Settings,E=Box2D.Common.Math.b2Mat22,R=Box2D.Common.Math.b2Math,N=Box2D.Common.Math.b2Vec2,S=Box2D.Collision.b2Collision,
-aa=Box2D.Collision.b2ContactID,Z=Box2D.Collision.b2Manifold,d=Box2D.Collision.b2TimeOfImpact,h=Box2D.Collision.b2TOIInput,l=Box2D.Collision.b2WorldManifold;Box2D.inherit(w,Box2D.Dynamics.Contacts.b2Contact);w.prototype.__super=Box2D.Dynamics.Contacts.b2Contact.prototype;w.b2CircleContact=function(){Box2D.Dynamics.Contacts.b2Contact.b2Contact.apply(this,arguments)};w.Create=function(){return new w};w.Destroy=function(){};w.prototype.Reset=function(j,o){this.__super.Reset.call(this,j,o)};w.prototype.Evaluate=
-function(){var j=this.m_fixtureA.GetBody(),o=this.m_fixtureB.GetBody();S.CollideCircles(this.m_manifold,this.m_fixtureA.GetShape()instanceof F?this.m_fixtureA.GetShape():null,j.m_xf,this.m_fixtureB.GetShape()instanceof F?this.m_fixtureB.GetShape():null,o.m_xf)};A.b2Contact=function(){this.m_nodeA=new B;this.m_nodeB=new B;this.m_manifold=new Z;this.m_oldManifold=new Z};A.prototype.GetManifold=function(){return this.m_manifold};A.prototype.GetWorldManifold=function(j){var o=this.m_fixtureA.GetBody(),
-q=this.m_fixtureB.GetBody(),n=this.m_fixtureA.GetShape(),a=this.m_fixtureB.GetShape();j.Initialize(this.m_manifold,o.GetTransform(),n.m_radius,q.GetTransform(),a.m_radius)};A.prototype.IsTouching=function(){return(this.m_flags&A.e_touchingFlag)==A.e_touchingFlag};A.prototype.IsContinuous=function(){return(this.m_flags&A.e_continuousFlag)==A.e_continuousFlag};A.prototype.SetSensor=function(j){if(j)this.m_flags|=A.e_sensorFlag;else this.m_flags&=~A.e_sensorFlag};A.prototype.IsSensor=function(){return(this.m_flags&
-A.e_sensorFlag)==A.e_sensorFlag};A.prototype.SetEnabled=function(j){if(j)this.m_flags|=A.e_enabledFlag;else this.m_flags&=~A.e_enabledFlag};A.prototype.IsEnabled=function(){return(this.m_flags&A.e_enabledFlag)==A.e_enabledFlag};A.prototype.GetNext=function(){return this.m_next};A.prototype.GetFixtureA=function(){return this.m_fixtureA};A.prototype.GetFixtureB=function(){return this.m_fixtureB};A.prototype.FlagForFiltering=function(){this.m_flags|=A.e_filterFlag};A.prototype.b2Contact=function(){};
-A.prototype.Reset=function(j,o){if(j===undefined)j=null;if(o===undefined)o=null;this.m_flags=A.e_enabledFlag;if(!j||!o)this.m_fixtureB=this.m_fixtureA=null;else{if(j.IsSensor()||o.IsSensor())this.m_flags|=A.e_sensorFlag;var q=j.GetBody(),n=o.GetBody();if(q.GetType()!=D.b2_dynamicBody||q.IsBullet()||n.GetType()!=D.b2_dynamicBody||n.IsBullet())this.m_flags|=A.e_continuousFlag;this.m_fixtureA=j;this.m_fixtureB=o;this.m_manifold.m_pointCount=0;this.m_next=this.m_prev=null;this.m_nodeA.contact=null;this.m_nodeA.prev=
-null;this.m_nodeA.next=null;this.m_nodeA.other=null;this.m_nodeB.contact=null;this.m_nodeB.prev=null;this.m_nodeB.next=null;this.m_nodeB.other=null}};A.prototype.Update=function(j){var o=this.m_oldManifold;this.m_oldManifold=this.m_manifold;this.m_manifold=o;this.m_flags|=A.e_enabledFlag;var q=false;o=(this.m_flags&A.e_touchingFlag)==A.e_touchingFlag;var n=this.m_fixtureA.m_body,a=this.m_fixtureB.m_body,c=this.m_fixtureA.m_aabb.TestOverlap(this.m_fixtureB.m_aabb);if(this.m_flags&A.e_sensorFlag){if(c){q=
-this.m_fixtureA.GetShape();c=this.m_fixtureB.GetShape();n=n.GetTransform();a=a.GetTransform();q=y.TestOverlap(q,n,c,a)}this.m_manifold.m_pointCount=0}else{if(n.GetType()!=D.b2_dynamicBody||n.IsBullet()||a.GetType()!=D.b2_dynamicBody||a.IsBullet())this.m_flags|=A.e_continuousFlag;else this.m_flags&=~A.e_continuousFlag;if(c){this.Evaluate();q=this.m_manifold.m_pointCount>0;for(c=0;c<this.m_manifold.m_pointCount;++c){var g=this.m_manifold.m_points[c];g.m_normalImpulse=0;g.m_tangentImpulse=0;for(var b=
-g.m_id,e=0;e<this.m_oldManifold.m_pointCount;++e){var f=this.m_oldManifold.m_points[e];if(f.m_id.key==b.key){g.m_normalImpulse=f.m_normalImpulse;g.m_tangentImpulse=f.m_tangentImpulse;break}}}}else this.m_manifold.m_pointCount=0;if(q!=o){n.SetAwake(true);a.SetAwake(true)}}if(q)this.m_flags|=A.e_touchingFlag;else this.m_flags&=~A.e_touchingFlag;o==false&&q==true&&j.BeginContact(this);o==true&&q==false&&j.EndContact(this);(this.m_flags&A.e_sensorFlag)==0&&j.PreSolve(this,this.m_oldManifold)};A.prototype.Evaluate=
-function(){};A.prototype.ComputeTOI=function(j,o){A.s_input.proxyA.Set(this.m_fixtureA.GetShape());A.s_input.proxyB.Set(this.m_fixtureB.GetShape());A.s_input.sweepA=j;A.s_input.sweepB=o;A.s_input.tolerance=O.b2_linearSlop;return d.TimeOfImpact(A.s_input)};Box2D.postDefs.push(function(){Box2D.Dynamics.Contacts.b2Contact.e_sensorFlag=1;Box2D.Dynamics.Contacts.b2Contact.e_continuousFlag=2;Box2D.Dynamics.Contacts.b2Contact.e_islandFlag=4;Box2D.Dynamics.Contacts.b2Contact.e_toiFlag=8;Box2D.Dynamics.Contacts.b2Contact.e_touchingFlag=
-16;Box2D.Dynamics.Contacts.b2Contact.e_enabledFlag=32;Box2D.Dynamics.Contacts.b2Contact.e_filterFlag=64;Box2D.Dynamics.Contacts.b2Contact.s_input=new h});U.b2ContactConstraint=function(){this.localPlaneNormal=new N;this.localPoint=new N;this.normal=new N;this.normalMass=new E;this.K=new E};U.prototype.b2ContactConstraint=function(){this.points=new Vector(O.b2_maxManifoldPoints);for(var j=0;j<O.b2_maxManifoldPoints;j++)this.points[j]=new p};p.b2ContactConstraintPoint=function(){this.localPoint=new N;
-this.rA=new N;this.rB=new N};B.b2ContactEdge=function(){};Q.b2ContactFactory=function(){};Q.prototype.b2ContactFactory=function(j){this.m_allocator=j;this.InitializeRegisters()};Q.prototype.AddType=function(j,o,q,n){if(q===undefined)q=0;if(n===undefined)n=0;this.m_registers[q][n].createFcn=j;this.m_registers[q][n].destroyFcn=o;this.m_registers[q][n].primary=true;if(q!=n){this.m_registers[n][q].createFcn=j;this.m_registers[n][q].destroyFcn=o;this.m_registers[n][q].primary=false}};Q.prototype.InitializeRegisters=
-function(){this.m_registers=new Vector(y.e_shapeTypeCount);for(var j=0;j<y.e_shapeTypeCount;j++){this.m_registers[j]=new Vector(y.e_shapeTypeCount);for(var o=0;o<y.e_shapeTypeCount;o++)this.m_registers[j][o]=new V}this.AddType(w.Create,w.Destroy,y.e_circleShape,y.e_circleShape);this.AddType(Y.Create,Y.Destroy,y.e_polygonShape,y.e_circleShape);this.AddType(z.Create,z.Destroy,y.e_polygonShape,y.e_polygonShape);this.AddType(I.Create,I.Destroy,y.e_edgeShape,y.e_circleShape);this.AddType(k.Create,k.Destroy,
-y.e_polygonShape,y.e_edgeShape)};Q.prototype.Create=function(j,o){var q=parseInt(j.GetType()),n=parseInt(o.GetType());q=this.m_registers[q][n];if(q.pool){n=q.pool;q.pool=n.m_next;q.poolCount--;n.Reset(j,o);return n}n=q.createFcn;if(n!=null){if(q.primary){n=n(this.m_allocator);n.Reset(j,o)}else{n=n(this.m_allocator);n.Reset(o,j)}return n}else return null};Q.prototype.Destroy=function(j){if(j.m_manifold.m_pointCount>0){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<this.m_constraintCount;)this.m_constraints[this.m_constraints.length]=new U;for(j=0;j<q;++j){a=o[j];n=a.m_fixtureA;var c=a.m_fixtureB,g=n.m_shape.m_radius,b=c.m_shape.m_radius,e=n.m_body,f=c.m_body,m=a.GetManifold(),r=O.b2MixFriction(n.GetFriction(),c.GetFriction()),s=O.b2MixRestitution(n.GetRestitution(),c.GetRestitution()),v=e.m_linearVelocity.x,t=e.m_linearVelocity.y,x=f.m_linearVelocity.x,C=f.m_linearVelocity.y,J=e.m_angularVelocity,T=f.m_angularVelocity;O.b2Assert(m.m_pointCount>
-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;g<n.pointCount;++g){r=m.m_points[g];b=n.points[g];b.normalImpulse=
-r.m_normalImpulse;b.tangentImpulse=r.m_tangentImpulse;b.localPoint.SetV(r.m_localPoint);r=b.rA.x=L.s_worldManifold.m_points[g].x-e.m_sweep.c.x;s=b.rA.y=L.s_worldManifold.m_points[g].y-e.m_sweep.c.y;var P=b.rB.x=L.s_worldManifold.m_points[g].x-f.m_sweep.c.x,X=b.rB.y=L.s_worldManifold.m_points[g].y-f.m_sweep.c.y,$=r*a-s*c,ba=P*a-X*c;$*=$;ba*=ba;b.normalMass=1/(e.m_invMass+f.m_invMass+e.m_invI*$+f.m_invI*ba);var ca=e.m_mass*e.m_invMass+f.m_mass*f.m_invMass;ca+=e.m_mass*e.m_invI*$+f.m_mass*f.m_invI*ba;
-b.equalizedMass=1/ca;ba=a;ca=-c;$=r*ca-s*ba;ba=P*ca-X*ba;$*=$;ba*=ba;b.tangentMass=1/(e.m_invMass+f.m_invMass+e.m_invI*$+f.m_invI*ba);b.velocityBias=0;r=n.normal.x*(x+-T*X-v- -J*s)+n.normal.y*(C+T*P-t-J*r);if(r<-O.b2_velocityThreshold)b.velocityBias+=-n.restitution*r}if(n.pointCount==2){C=n.points[0];x=n.points[1];m=e.m_invMass;e=e.m_invI;v=f.m_invMass;f=f.m_invI;t=C.rA.x*a-C.rA.y*c;C=C.rB.x*a-C.rB.y*c;J=x.rA.x*a-x.rA.y*c;x=x.rB.x*a-x.rB.y*c;c=m+v+e*t*t+f*C*C;a=m+v+e*J*J+f*x*x;f=m+v+e*t*J+f*C*x;if(c*
-c<100*(c*a-f*f)){n.K.col1.Set(c,f);n.K.col2.Set(f,a);n.K.GetInverse(n.normalMass)}else n.pointCount=1}}};L.prototype.InitVelocityConstraints=function(j){for(var o=0;o<this.m_constraintCount;++o){var q=this.m_constraints[o],n=q.bodyA,a=q.bodyB,c=n.m_invMass,g=n.m_invI,b=a.m_invMass,e=a.m_invI,f=q.normal.x,m=q.normal.y,r=m,s=-f,v=0,t=0;if(j.warmStarting){t=q.pointCount;for(v=0;v<t;++v){var x=q.points[v];x.normalImpulse*=j.dtRatio;x.tangentImpulse*=j.dtRatio;var C=x.normalImpulse*f+x.tangentImpulse*
-r,J=x.normalImpulse*m+x.tangentImpulse*s;n.m_angularVelocity-=g*(x.rA.x*J-x.rA.y*C);n.m_linearVelocity.x-=c*C;n.m_linearVelocity.y-=c*J;a.m_angularVelocity+=e*(x.rB.x*J-x.rB.y*C);a.m_linearVelocity.x+=b*C;a.m_linearVelocity.y+=b*J}}else{t=q.pointCount;for(v=0;v<t;++v){n=q.points[v];n.normalImpulse=0;n.tangentImpulse=0}}}};L.prototype.SolveVelocityConstraints=function(){for(var j=0,o,q=0,n=0,a=0,c=n=n=q=q=0,g=q=q=0,b=q=a=0,e=0,f,m=0;m<this.m_constraintCount;++m){a=this.m_constraints[m];var r=a.bodyA,
-s=a.bodyB,v=r.m_angularVelocity,t=s.m_angularVelocity,x=r.m_linearVelocity,C=s.m_linearVelocity,J=r.m_invMass,T=r.m_invI,P=s.m_invMass,X=s.m_invI;b=a.normal.x;var $=e=a.normal.y;f=-b;g=a.friction;for(j=0;j<a.pointCount;j++){o=a.points[j];q=C.x-t*o.rB.y-x.x+v*o.rA.y;n=C.y+t*o.rB.x-x.y-v*o.rA.x;q=q*$+n*f;q=o.tangentMass*-q;n=g*o.normalImpulse;n=R.Clamp(o.tangentImpulse+q,-n,n);q=n-o.tangentImpulse;c=q*$;q=q*f;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.tangentImpulse=
-n}parseInt(a.pointCount);if(a.pointCount==1){o=a.points[0];q=C.x+-t*o.rB.y-x.x- -v*o.rA.y;n=C.y+t*o.rB.x-x.y-v*o.rA.x;a=q*b+n*e;q=-o.normalMass*(a-o.velocityBias);n=o.normalImpulse+q;n=n>0?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<this.m_constraintCount;++j)for(var o=this.m_constraints[j],q=o.manifold,n=0;n<o.pointCount;++n){var a=q.m_points[n],c=o.points[n];a.m_normalImpulse=c.normalImpulse;a.m_tangentImpulse=
-c.tangentImpulse}};L.prototype.SolvePositionConstraints=function(j){if(j===undefined)j=0;for(var o=0,q=0;q<this.m_constraintCount;q++){var n=this.m_constraints[q],a=n.bodyA,c=n.bodyB,g=a.m_mass*a.m_invMass,b=a.m_mass*a.m_invI,e=c.m_mass*c.m_invMass,f=c.m_mass*c.m_invI;L.s_psm.Initialize(n);for(var m=L.s_psm.m_normal,r=0;r<n.pointCount;r++){var s=n.points[r],v=L.s_psm.m_points[r],t=L.s_psm.m_separations[r],x=v.x-a.m_sweep.c.x,C=v.y-a.m_sweep.c.y,J=v.x-c.m_sweep.c.x;v=v.y-c.m_sweep.c.y;o=o<t?o:t;t=
-R.Clamp(j*(t+O.b2_linearSlop),-O.b2_maxLinearCorrection,0);t=-s.equalizedMass*t;s=t*m.x;t=t*m.y;a.m_sweep.c.x-=g*s;a.m_sweep.c.y-=g*t;a.m_sweep.a-=b*(x*t-C*s);a.SynchronizeTransform();c.m_sweep.c.x+=e*s;c.m_sweep.c.y+=e*t;c.m_sweep.a+=f*(J*t-v*s);c.SynchronizeTransform()}}return o>-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;j<O.b2_maxManifoldPoints;j++)this.m_points[j]=new N};u.prototype.Initialize=function(j){O.b2Assert(j.pointCount>0);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;o<j.pointCount;++o){n=j.points[o].localPoint;q=j.bodyB.m_xf.position.x+(a.col1.x*n.x+a.col2.x*n.y);n=j.bodyB.m_xf.position.y+(a.col1.y*n.x+a.col2.y*n.y);this.m_separations[o]=(q-c)*this.m_normal.x+(n-g)*this.m_normal.y-j.radius;this.m_points[o].x=q;this.m_points[o].y=
-n}break;case Z.e_faceB:a=j.bodyB.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.bodyB.m_xf.R;n=j.localPoint;c=j.bodyB.m_xf.position.x+(a.col1.x*n.x+a.col2.x*n.y);g=j.bodyB.m_xf.position.y+(a.col1.y*n.x+a.col2.y*n.y);a=j.bodyA.m_xf.R;for(o=0;o<j.pointCount;++o){n=j.points[o].localPoint;q=j.bodyA.m_xf.position.x+(a.col1.x*n.x+a.col2.x*n.y);n=j.bodyA.m_xf.position.y+(a.col1.y*n.x+a.col2.y*n.y);this.m_separations[o]=(q-c)*this.m_normal.x+
-(n-g)*this.m_normal.y-j.radius;this.m_points[o].Set(q,n)}this.m_normal.x*=-1;this.m_normal.y*=-1}};Box2D.postDefs.push(function(){Box2D.Dynamics.Contacts.b2PositionSolverManifold.circlePointA=new N;Box2D.Dynamics.Contacts.b2PositionSolverManifold.circlePointB=new N})})();
-(function(){var F=Box2D.Common.Math.b2Mat22,G=Box2D.Common.Math.b2Math,K=Box2D.Common.Math.b2Vec2,y=Box2D.Common.b2Color,w=Box2D.Dynamics.Controllers.b2BuoyancyController,A=Box2D.Dynamics.Controllers.b2ConstantAccelController,U=Box2D.Dynamics.Controllers.b2ConstantForceController,p=Box2D.Dynamics.Controllers.b2Controller,B=Box2D.Dynamics.Controllers.b2ControllerEdge,Q=Box2D.Dynamics.Controllers.b2GravityController,V=Box2D.Dynamics.Controllers.b2TensorDampingController;Box2D.inherit(w,Box2D.Dynamics.Controllers.b2Controller);
-w.prototype.__super=Box2D.Dynamics.Controllers.b2Controller.prototype;w.b2BuoyancyController=function(){Box2D.Dynamics.Controllers.b2Controller.b2Controller.apply(this,arguments);this.normal=new K(0,-1);this.density=this.offset=0;this.velocity=new K(0,0);this.linearDrag=2;this.angularDrag=1;this.useDensity=false;this.useWorldGravity=true;this.gravity=null};w.prototype.Step=function(){if(this.m_bodyList){if(this.useWorldGravity)this.gravity=this.GetWorld().GetGravity().Copy();for(var M=this.m_bodyList;M;M=
-M.nextBody){var L=M.body;if(L.IsAwake()!=false){for(var I=new K,W=new K,Y=0,k=0,z=L.GetFixtureList();z;z=z.GetNext()){var u=new K,D=z.GetShape().ComputeSubmergedArea(this.normal,this.offset,L.GetTransform(),u);Y+=D;I.x+=D*u.x;I.y+=D*u.y;var H=0;H=1;k+=D*H;W.x+=D*u.x*H;W.y+=D*u.y*H}I.x/=Y;I.y/=Y;W.x/=k;W.y/=k;if(!(Y<Number.MIN_VALUE)){k=this.gravity.GetNegative();k.Multiply(this.density*Y);L.ApplyForce(k,W);W=L.GetLinearVelocityFromWorldPoint(I);W.Subtract(this.velocity);W.Multiply(-this.linearDrag*
-Y);L.ApplyForce(W,I);L.ApplyTorque(-L.GetInertia()/L.GetMass()*Y*L.GetAngularVelocity()*this.angularDrag)}}}}};w.prototype.Draw=function(M){var L=new K,I=new K;L.x=this.normal.x*this.offset+this.normal.y*1E3;L.y=this.normal.y*this.offset-this.normal.x*1E3;I.x=this.normal.x*this.offset-this.normal.y*1E3;I.y=this.normal.y*this.offset+this.normal.x*1E3;var W=new y(0,0,1);M.DrawSegment(L,I,W)};Box2D.inherit(A,Box2D.Dynamics.Controllers.b2Controller);A.prototype.__super=Box2D.Dynamics.Controllers.b2Controller.prototype;
-A.b2ConstantAccelController=function(){Box2D.Dynamics.Controllers.b2Controller.b2Controller.apply(this,arguments);this.A=new K(0,0)};A.prototype.Step=function(M){M=new K(this.A.x*M.dt,this.A.y*M.dt);for(var L=this.m_bodyList;L;L=L.nextBody){var I=L.body;I.IsAwake()&&I.SetLinearVelocity(new K(I.GetLinearVelocity().x+M.x,I.GetLinearVelocity().y+M.y))}};Box2D.inherit(U,Box2D.Dynamics.Controllers.b2Controller);U.prototype.__super=Box2D.Dynamics.Controllers.b2Controller.prototype;U.b2ConstantForceController=
-function(){Box2D.Dynamics.Controllers.b2Controller.b2Controller.apply(this,arguments);this.F=new K(0,0)};U.prototype.Step=function(){for(var M=this.m_bodyList;M;M=M.nextBody){var L=M.body;L.IsAwake()&&L.ApplyForce(this.F,L.GetWorldCenter())}};p.b2Controller=function(){};p.prototype.Step=function(){};p.prototype.Draw=function(){};p.prototype.AddBody=function(M){var L=new B;L.controller=this;L.body=M;L.nextBody=this.m_bodyList;L.prevBody=null;this.m_bodyList=L;if(L.nextBody)L.nextBody.prevBody=L;this.m_bodyCount++;
-L.nextController=M.m_controllerList;L.prevController=null;M.m_controllerList=L;if(L.nextController)L.nextController.prevController=L;M.m_controllerCount++};p.prototype.RemoveBody=function(M){for(var L=M.m_controllerList;L&&L.controller!=this;)L=L.nextController;if(L.prevBody)L.prevBody.nextBody=L.nextBody;if(L.nextBody)L.nextBody.prevBody=L.prevBody;if(L.nextController)L.nextController.prevController=L.prevController;if(L.prevController)L.prevController.nextController=L.nextController;if(this.m_bodyList==
-L)this.m_bodyList=L.nextBody;if(M.m_controllerList==L)M.m_controllerList=L.nextController;M.m_controllerCount--;this.m_bodyCount--};p.prototype.Clear=function(){for(;this.m_bodyList;)this.RemoveBody(this.m_bodyList.body)};p.prototype.GetNext=function(){return this.m_next};p.prototype.GetWorld=function(){return this.m_world};p.prototype.GetBodyList=function(){return this.m_bodyList};B.b2ControllerEdge=function(){};Box2D.inherit(Q,Box2D.Dynamics.Controllers.b2Controller);Q.prototype.__super=Box2D.Dynamics.Controllers.b2Controller.prototype;
-Q.b2GravityController=function(){Box2D.Dynamics.Controllers.b2Controller.b2Controller.apply(this,arguments);this.G=1;this.invSqr=true};Q.prototype.Step=function(){var M=null,L=null,I=null,W=0,Y=null,k=null,z=null,u=0,D=0,H=0;u=null;if(this.invSqr)for(M=this.m_bodyList;M;M=M.nextBody){L=M.body;I=L.GetWorldCenter();W=L.GetMass();for(Y=this.m_bodyList;Y!=M;Y=Y.nextBody){k=Y.body;z=k.GetWorldCenter();u=z.x-I.x;D=z.y-I.y;H=u*u+D*D;if(!(H<Number.MIN_VALUE)){u=new K(u,D);u.Multiply(this.G/H/Math.sqrt(H)*
-W*k.GetMass());L.IsAwake()&&L.ApplyForce(u,I);u.Multiply(-1);k.IsAwake()&&k.ApplyForce(u,z)}}}else for(M=this.m_bodyList;M;M=M.nextBody){L=M.body;I=L.GetWorldCenter();W=L.GetMass();for(Y=this.m_bodyList;Y!=M;Y=Y.nextBody){k=Y.body;z=k.GetWorldCenter();u=z.x-I.x;D=z.y-I.y;H=u*u+D*D;if(!(H<Number.MIN_VALUE)){u=new K(u,D);u.Multiply(this.G/H*W*k.GetMass());L.IsAwake()&&L.ApplyForce(u,I);u.Multiply(-1);k.IsAwake()&&k.ApplyForce(u,z)}}}};Box2D.inherit(V,Box2D.Dynamics.Controllers.b2Controller);V.prototype.__super=
-Box2D.Dynamics.Controllers.b2Controller.prototype;V.b2TensorDampingController=function(){Box2D.Dynamics.Controllers.b2Controller.b2Controller.apply(this,arguments);this.T=new F;this.maxTimestep=0};V.prototype.SetAxisAligned=function(M,L){if(M===undefined)M=0;if(L===undefined)L=0;this.T.col1.x=-M;this.T.col1.y=0;this.T.col2.x=0;this.T.col2.y=-L;this.maxTimestep=M>0||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)<F.b2_linearSlop};Box2D.inherit(p,Box2D.Dynamics.Joints.b2JointDef);p.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;p.b2DistanceJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.localAnchorA=new w;this.localAnchorB=new w};p.prototype.b2DistanceJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_distanceJoint;this.length=1;this.dampingRatio=
-this.frequencyHz=0};p.prototype.Initialize=function(d,h,l,j){this.bodyA=d;this.bodyB=h;this.localAnchorA.SetV(this.bodyA.GetLocalPoint(l));this.localAnchorB.SetV(this.bodyB.GetLocalPoint(j));d=j.x-l.x;l=j.y-l.y;this.length=Math.sqrt(d*d+l*l);this.dampingRatio=this.frequencyHz=0};Box2D.inherit(B,Box2D.Dynamics.Joints.b2Joint);B.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;B.b2FrictionJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.m_localAnchorA=new w;
-this.m_localAnchorB=new w;this.m_linearMass=new G;this.m_linearImpulse=new w};B.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchorA)};B.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchorB)};B.prototype.GetReactionForce=function(d){if(d===undefined)d=0;return new w(d*this.m_linearImpulse.x,d*this.m_linearImpulse.y)};B.prototype.GetReactionTorque=function(d){if(d===undefined)d=0;return d*this.m_angularImpulse};B.prototype.SetMaxForce=
-function(d){if(d===undefined)d=0;this.m_maxForce=d};B.prototype.GetMaxForce=function(){return this.m_maxForce};B.prototype.SetMaxTorque=function(d){if(d===undefined)d=0;this.m_maxTorque=d};B.prototype.GetMaxTorque=function(){return this.m_maxTorque};B.prototype.b2FrictionJoint=function(d){this.__super.b2Joint.call(this,d);this.m_localAnchorA.SetV(d.localAnchorA);this.m_localAnchorB.SetV(d.localAnchorB);this.m_linearMass.SetZero();this.m_angularMass=0;this.m_linearImpulse.SetZero();this.m_angularImpulse=
-0;this.m_maxForce=d.maxForce;this.m_maxTorque=d.maxTorque};B.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,e=new G;e.col1.x=h+l;e.col2.x=0;e.col1.y=0;e.col2.y=h+l;e.col1.x+=g*n*n;e.col2.x+=-g*q*n;e.col1.y+=-g*q*n;e.col2.y+=g*q*q;e.col1.x+=b*c*c;e.col2.x+=-b*a*c;e.col1.y+=-b*a*c;e.col2.y+=b*a*a;e.GetInverse(this.m_linearMass);this.m_angularMass=g+b;if(this.m_angularMass>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 0<F.b2_linearSlop};Box2D.inherit(M,Box2D.Dynamics.Joints.b2JointDef);M.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;M.b2GearJointDef=function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments)};M.prototype.b2GearJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_gearJoint;this.joint2=this.joint1=null;this.ratio=1};L.b2Jacobian=function(){this.linearA=new w;this.linearB=new w};L.prototype.SetZero=function(){this.linearA.SetZero();
-this.angularA=0;this.linearB.SetZero();this.angularB=0};L.prototype.Set=function(d,h,l,j){if(h===undefined)h=0;if(j===undefined)j=0;this.linearA.SetV(d);this.angularA=h;this.linearB.SetV(l);this.angularB=j};L.prototype.Compute=function(d,h,l,j){if(h===undefined)h=0;if(j===undefined)j=0;return this.linearA.x*d.x+this.linearA.y*d.y+this.angularA*h+(this.linearB.x*l.x+this.linearB.y*l.y)+this.angularB*j};I.b2Joint=function(){this.m_edgeA=new Y;this.m_edgeB=new Y;this.m_localCenterA=new w;this.m_localCenterB=
-new w};I.prototype.GetType=function(){return this.m_type};I.prototype.GetAnchorA=function(){return null};I.prototype.GetAnchorB=function(){return null};I.prototype.GetReactionForce=function(){return null};I.prototype.GetReactionTorque=function(){return 0};I.prototype.GetBodyA=function(){return this.m_bodyA};I.prototype.GetBodyB=function(){return this.m_bodyB};I.prototype.GetNext=function(){return this.m_next};I.prototype.GetUserData=function(){return this.m_userData};I.prototype.SetUserData=function(d){this.m_userData=
-d};I.prototype.IsActive=function(){return this.m_bodyA.IsActive()&&this.m_bodyB.IsActive()};I.Create=function(d){var h=null;switch(d.type){case I.e_distanceJoint:h=new U(d instanceof p?d:null);break;case I.e_mouseJoint:h=new u(d instanceof D?d:null);break;case I.e_prismaticJoint:h=new H(d instanceof O?d:null);break;case I.e_revoluteJoint:h=new N(d instanceof S?d:null);break;case I.e_pulleyJoint:h=new E(d instanceof R?d:null);break;case I.e_gearJoint:h=new V(d instanceof M?d:null);break;case I.e_lineJoint:h=
-new k(d instanceof z?d:null);break;case I.e_weldJoint:h=new aa(d instanceof Z?d:null);break;case I.e_frictionJoint:h=new B(d instanceof Q?d:null)}return h};I.Destroy=function(){};I.prototype.b2Joint=function(d){F.b2Assert(d.bodyA!=d.bodyB);this.m_type=d.type;this.m_next=this.m_prev=null;this.m_bodyA=d.bodyA;this.m_bodyB=d.bodyB;this.m_collideConnected=d.collideConnected;this.m_islandFlag=false;this.m_userData=d.userData};I.prototype.InitVelocityConstraints=function(){};I.prototype.SolveVelocityConstraints=
-function(){};I.prototype.FinalizeVelocityConstraints=function(){};I.prototype.SolvePositionConstraints=function(){return false};Box2D.postDefs.push(function(){Box2D.Dynamics.Joints.b2Joint.e_unknownJoint=0;Box2D.Dynamics.Joints.b2Joint.e_revoluteJoint=1;Box2D.Dynamics.Joints.b2Joint.e_prismaticJoint=2;Box2D.Dynamics.Joints.b2Joint.e_distanceJoint=3;Box2D.Dynamics.Joints.b2Joint.e_pulleyJoint=4;Box2D.Dynamics.Joints.b2Joint.e_mouseJoint=5;Box2D.Dynamics.Joints.b2Joint.e_gearJoint=6;Box2D.Dynamics.Joints.b2Joint.e_lineJoint=
-7;Box2D.Dynamics.Joints.b2Joint.e_weldJoint=8;Box2D.Dynamics.Joints.b2Joint.e_frictionJoint=9;Box2D.Dynamics.Joints.b2Joint.e_inactiveLimit=0;Box2D.Dynamics.Joints.b2Joint.e_atLowerLimit=1;Box2D.Dynamics.Joints.b2Joint.e_atUpperLimit=2;Box2D.Dynamics.Joints.b2Joint.e_equalLimits=3});W.b2JointDef=function(){};W.prototype.b2JointDef=function(){this.type=I.e_unknownJoint;this.bodyB=this.bodyA=this.userData=null;this.collideConnected=false};Y.b2JointEdge=function(){};Box2D.inherit(k,Box2D.Dynamics.Joints.b2Joint);
-k.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;k.b2LineJoint=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 G;this.m_impulse=new w};k.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};k.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};k.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.y)*this.m_axis.x),d*(this.m_impulse.x*this.m_perp.y+(this.m_motorImpulse+this.m_impulse.y)*this.m_axis.y))};k.prototype.GetReactionTorque=function(d){if(d===undefined)d=0;return d*this.m_impulse.y};k.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};k.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))};k.prototype.IsLimitEnabled=function(){return this.m_enableLimit};k.prototype.EnableLimit=function(d){this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_enableLimit=d};k.prototype.GetLowerLimit=function(){return this.m_lowerTranslation};k.prototype.GetUpperLimit=function(){return this.m_upperTranslation};k.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};k.prototype.IsMotorEnabled=function(){return this.m_enableMotor};k.prototype.EnableMotor=function(d){this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_enableMotor=d};k.prototype.SetMotorSpeed=function(d){if(d===undefined)d=0;this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_motorSpeed=d};k.prototype.GetMotorSpeed=function(){return this.m_motorSpeed};
-k.prototype.SetMaxMotorForce=function(d){if(d===undefined)d=0;this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_maxMotorForce=d};k.prototype.GetMaxMotorForce=function(){return this.m_maxMotorForce};k.prototype.GetMotorForce=function(){return this.m_motorImpulse};k.prototype.b2LineJoint=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_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()};k.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;this.m_motorMass=this.m_motorMass>Number.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(j<this.m_maxLength1){this.m_limitState1=
-I.e_inactiveLimit;this.m_limitImpulse1=0}else this.m_limitState1=I.e_atUpperLimit;if(n<this.m_maxLength2){this.m_limitState2=I.e_inactiveLimit;this.m_limitImpulse2=0}else this.m_limitState2=I.e_atUpperLimit;j=o*this.m_u1.y-q*this.m_u1.x;n=a*this.m_u2.y-c*this.m_u2.x;this.m_limitMass1=h.m_invMass+h.m_invI*j*j;this.m_limitMass2=l.m_invMass+l.m_invI*n*n;this.m_pulleyMass=this.m_limitMass1+this.m_ratio*this.m_ratio*this.m_limitMass2;this.m_limitMass1=1/this.m_limitMass1;this.m_limitMass2=1/this.m_limitMass2;
-this.m_pulleyMass=1/this.m_pulleyMass;if(d.warmStarting){this.m_impulse*=d.dtRatio;this.m_limitImpulse1*=d.dtRatio;this.m_limitImpulse2*=d.dtRatio;d=(-this.m_impulse-this.m_limitImpulse1)*this.m_u1.x;j=(-this.m_impulse-this.m_limitImpulse1)*this.m_u1.y;n=(-this.m_ratio*this.m_impulse-this.m_limitImpulse2)*this.m_u2.x;g=(-this.m_ratio*this.m_impulse-this.m_limitImpulse2)*this.m_u2.y;h.m_linearVelocity.x+=h.m_invMass*d;h.m_linearVelocity.y+=h.m_invMass*j;h.m_angularVelocity+=h.m_invI*(o*j-q*d);l.m_linearVelocity.x+=
-l.m_invMass*n;l.m_linearVelocity.y+=l.m_invMass*g;l.m_angularVelocity+=l.m_invI*(a*g-c*n)}else this.m_limitImpulse2=this.m_limitImpulse1=this.m_impulse=0};E.prototype.SolveVelocityConstraints=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;var c=q=l=0,g=0;l=g=l=g=c=q=l=0;if(this.m_state==I.e_atUpperLimit){l=d.m_linearVelocity.x+-d.m_angularVelocity*o;q=d.m_linearVelocity.y+d.m_angularVelocity*j;c=h.m_linearVelocity.x+-h.m_angularVelocity*a;g=h.m_linearVelocity.y+h.m_angularVelocity*n;l=-(this.m_u1.x*l+this.m_u1.y*q)-this.m_ratio*(this.m_u2.x*c+this.m_u2.y*g);g=this.m_pulleyMass*-l;l=this.m_impulse;this.m_impulse=y.Max(0,this.m_impulse+g);g=this.m_impulse-l;l=-g*this.m_u1.x;q=-g*this.m_u1.y;
-c=-this.m_ratio*g*this.m_u2.x;g=-this.m_ratio*g*this.m_u2.y;d.m_linearVelocity.x+=d.m_invMass*l;d.m_linearVelocity.y+=d.m_invMass*q;d.m_angularVelocity+=d.m_invI*(j*q-o*l);h.m_linearVelocity.x+=h.m_invMass*c;h.m_linearVelocity.y+=h.m_invMass*g;h.m_angularVelocity+=h.m_invI*(n*g-a*c)}if(this.m_limitState1==I.e_atUpperLimit){l=d.m_linearVelocity.x+-d.m_angularVelocity*o;q=d.m_linearVelocity.y+d.m_angularVelocity*j;l=-(this.m_u1.x*l+this.m_u1.y*q);g=-this.m_limitMass1*l;l=this.m_limitImpulse1;this.m_limitImpulse1=
-y.Max(0,this.m_limitImpulse1+g);g=this.m_limitImpulse1-l;l=-g*this.m_u1.x;q=-g*this.m_u1.y;d.m_linearVelocity.x+=d.m_invMass*l;d.m_linearVelocity.y+=d.m_invMass*q;d.m_angularVelocity+=d.m_invI*(j*q-o*l)}if(this.m_limitState2==I.e_atUpperLimit){c=h.m_linearVelocity.x+-h.m_angularVelocity*a;g=h.m_linearVelocity.y+h.m_angularVelocity*n;l=-(this.m_u2.x*c+this.m_u2.y*g);g=-this.m_limitMass2*l;l=this.m_limitImpulse2;this.m_limitImpulse2=y.Max(0,this.m_limitImpulse2+g);g=this.m_limitImpulse2-l;c=-g*this.m_u2.x;
-g=-g*this.m_u2.y;h.m_linearVelocity.x+=h.m_invMass*c;h.m_linearVelocity.y+=h.m_invMass*g;h.m_angularVelocity+=h.m_invI*(n*g-a*c)}};E.prototype.SolvePositionConstraints=function(){var d=this.m_bodyA,h=this.m_bodyB,l,j=this.m_ground.m_xf.position.x+this.m_groundAnchor1.x,o=this.m_ground.m_xf.position.y+this.m_groundAnchor1.y,q=this.m_ground.m_xf.position.x+this.m_groundAnchor2.x,n=this.m_ground.m_xf.position.y+this.m_groundAnchor2.y,a=0,c=0,g=0,b=0,e=l=0,f=0,m=0,r=e=m=l=e=l=0;if(this.m_state==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=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;l=d.m_sweep.c.x+a;e=d.m_sweep.c.y+c;f=h.m_sweep.c.x+g;m=h.m_sweep.c.y+b;this.m_u1.Set(l-j,e-o);this.m_u2.Set(f-q,m-n);l=this.m_u1.Length();e=this.m_u2.Length();l>F.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<F.b2_linearSlop};Box2D.postDefs.push(function(){Box2D.Dynamics.Joints.b2PulleyJoint.b2_minPulleyLength=2});Box2D.inherit(R,Box2D.Dynamics.Joints.b2JointDef);R.prototype.__super=Box2D.Dynamics.Joints.b2JointDef.prototype;R.b2PulleyJointDef=
-function(){Box2D.Dynamics.Joints.b2JointDef.b2JointDef.apply(this,arguments);this.groundAnchorA=new w;this.groundAnchorB=new w;this.localAnchorA=new w;this.localAnchorB=new w};R.prototype.b2PulleyJointDef=function(){this.__super.b2JointDef.call(this);this.type=I.e_pulleyJoint;this.groundAnchorA.Set(-1,1);this.groundAnchorB.Set(1,1);this.localAnchorA.Set(-1,0);this.localAnchorB.Set(1,0);this.maxLengthB=this.lengthB=this.maxLengthA=this.lengthA=0;this.ratio=1;this.collideConnected=true};R.prototype.Initialize=
-function(d,h,l,j,o,q,n){if(n===undefined)n=0;this.bodyA=d;this.bodyB=h;this.groundAnchorA.SetV(l);this.groundAnchorB.SetV(j);this.localAnchorA=this.bodyA.GetLocalPoint(o);this.localAnchorB=this.bodyB.GetLocalPoint(q);d=o.x-l.x;l=o.y-l.y;this.lengthA=Math.sqrt(d*d+l*l);l=q.x-j.x;j=q.y-j.y;this.lengthB=Math.sqrt(l*l+j*j);this.ratio=n;n=this.lengthA+this.ratio*this.lengthB;this.maxLengthA=n-this.ratio*E.b2_minPulleyLength;this.maxLengthB=(n-E.b2_minPulleyLength)/this.ratio};Box2D.inherit(N,Box2D.Dynamics.Joints.b2Joint);
-N.prototype.__super=Box2D.Dynamics.Joints.b2Joint.prototype;N.b2RevoluteJoint=function(){Box2D.Dynamics.Joints.b2Joint.b2Joint.apply(this,arguments);this.K=new G;this.K1=new G;this.K2=new G;this.K3=new G;this.impulse3=new A;this.impulse2=new w;this.reduced=new w;this.m_localAnchor1=new w;this.m_localAnchor2=new w;this.m_impulse=new A;this.m_mass=new K};N.prototype.GetAnchorA=function(){return this.m_bodyA.GetWorldPoint(this.m_localAnchor1)};N.prototype.GetAnchorB=function(){return this.m_bodyB.GetWorldPoint(this.m_localAnchor2)};
-N.prototype.GetReactionForce=function(d){if(d===undefined)d=0;return new w(d*this.m_impulse.x,d*this.m_impulse.y)};N.prototype.GetReactionTorque=function(d){if(d===undefined)d=0;return d*this.m_impulse.z};N.prototype.GetJointAngle=function(){return this.m_bodyB.m_sweep.a-this.m_bodyA.m_sweep.a-this.m_referenceAngle};N.prototype.GetJointSpeed=function(){return this.m_bodyB.m_angularVelocity-this.m_bodyA.m_angularVelocity};N.prototype.IsLimitEnabled=function(){return this.m_enableLimit};N.prototype.EnableLimit=
-function(d){this.m_enableLimit=d};N.prototype.GetLowerLimit=function(){return this.m_lowerAngle};N.prototype.GetUpperLimit=function(){return this.m_upperAngle};N.prototype.SetLimits=function(d,h){if(d===undefined)d=0;if(h===undefined)h=0;this.m_lowerAngle=d;this.m_upperAngle=h};N.prototype.IsMotorEnabled=function(){this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);return this.m_enableMotor};N.prototype.EnableMotor=function(d){this.m_enableMotor=d};N.prototype.SetMotorSpeed=function(d){if(d===
-undefined)d=0;this.m_bodyA.SetAwake(true);this.m_bodyB.SetAwake(true);this.m_motorSpeed=d};N.prototype.GetMotorSpeed=function(){return this.m_motorSpeed};N.prototype.SetMaxMotorTorque=function(d){if(d===undefined)d=0;this.m_maxMotorTorque=d};N.prototype.GetMotorTorque=function(){return this.m_maxMotorTorque};N.prototype.b2RevoluteJoint=function(d){this.__super.b2Joint.call(this,d);this.m_localAnchor1.SetV(d.localAnchorA);this.m_localAnchor2.SetV(d.localAnchorB);this.m_referenceAngle=d.referenceAngle;
-this.m_impulse.SetZero();this.m_motorImpulse=0;this.m_lowerAngle=d.lowerAngle;this.m_upperAngle=d.upperAngle;this.m_maxMotorTorque=d.maxMotorTorque;this.m_motorSpeed=d.motorSpeed;this.m_enableLimit=d.enableLimit;this.m_enableMotor=d.enableMotor;this.m_limitState=I.e_inactiveLimit};N.prototype.InitVelocityConstraints=function(d){var h=this.m_bodyA,l=this.m_bodyB,j,o=0;j=h.m_xf.R;var q=this.m_localAnchor1.x-h.m_sweep.localCenter.x,n=this.m_localAnchor1.y-h.m_sweep.localCenter.y;o=j.col1.x*q+j.col2.x*
-n;n=j.col1.y*q+j.col2.y*n;q=o;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;o=j.col1.x*a+j.col2.x*c;c=j.col1.y*a+j.col2.y*c;a=o;j=h.m_invMass;o=l.m_invMass;var g=h.m_invI,b=l.m_invI;this.m_mass.col1.x=j+o+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=j+o+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;this.m_motorMass=1/(g+b);if(this.m_enableMotor==false)this.m_motorImpulse=0;if(this.m_enableLimit){var e=l.m_sweep.a-h.m_sweep.a-this.m_referenceAngle;if(y.Abs(this.m_upperAngle-this.m_lowerAngle)<2*F.b2_angularSlop)this.m_limitState=I.e_equalLimits;else if(e<=this.m_lowerAngle){if(this.m_limitState!=I.e_atLowerLimit)this.m_impulse.z=0;this.m_limitState=I.e_atLowerLimit}else if(e>=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<K;y++)w.lineTo(G[y].x*A,G[y].y*A);w.lineTo(G[0].x*A,G[0].y*A);w.closePath();w.stroke()}};F.prototype.DrawSolidPolygon=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.fillStyle=this._color(y.color,this.m_fillAlpha);w.moveTo(G[0].x*A,G[0].y*A);for(y=
-1;y<K;y++)w.lineTo(G[y].x*A,G[y].y*A);w.lineTo(G[0].x*A,G[0].y*A);w.closePath();w.fill();w.stroke()}};F.prototype.DrawCircle=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.arc(G.x*A,G.y*A,K*A,0,Math.PI*2,true);w.closePath();w.stroke()}};F.prototype.DrawSolidCircle=function(G,K,y,w){if(K){var A=this.m_ctx,U=this.m_drawScale,p=G.x*U,B=G.y*U;A.moveTo(0,0);A.beginPath();A.strokeStyle=this._color(w.color,this.m_alpha);A.fillStyle=
-this._color(w.color,this.m_fillAlpha);A.arc(p,B,K*U,0,Math.PI*2,true);A.moveTo(p,B);A.lineTo((G.x+y.x*K)*U,(G.y+y.y*K)*U);A.closePath();A.fill();A.stroke()}};F.prototype.DrawSegment=function(G,K,y){var w=this.m_ctx,A=this.m_drawScale;w.strokeStyle=this._color(y.color,this.m_alpha);w.beginPath();w.moveTo(G.x*A,G.y*A);w.lineTo(K.x*A,K.y*A);w.closePath();w.stroke()};F.prototype.DrawTransform=function(G){var K=this.m_ctx,y=this.m_drawScale;K.beginPath();K.strokeStyle=this._color(16711680,this.m_alpha);
-K.moveTo(G.position.x*y,G.position.y*y);K.lineTo((G.position.x+this.m_xformScale*G.R.col1.x)*y,(G.position.y+this.m_xformScale*G.R.col1.y)*y);K.strokeStyle=this._color(65280,this.m_alpha);K.moveTo(G.position.x*y,G.position.y*y);K.lineTo((G.position.x+this.m_xformScale*G.R.col2.x)*y,(G.position.y+this.m_xformScale*G.R.col2.y)*y);K.closePath();K.stroke()}})();var i;for(i=0;i<Box2D.postDefs.length;++i)Box2D.postDefs[i]();delete Box2D.postDefs;
-
-// Copyright 2012 the V8 project authors. 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
-
-function MakeNewWorld () {
-  var Vec2 = Box2D.Common.Math.b2Vec2,
-      BodyDef = Box2D.Dynamics.b2BodyDef,
-      Body = Box2D.Dynamics.b2Body,
-      FixtureDef = Box2D.Dynamics.b2FixtureDef,
-      Fixture = Box2D.Dynamics.b2Fixture,
-      World = Box2D.Dynamics.b2World,
-      MassData = Box2D.Collision.Shapes.b2MassData,
-      PolygonShape = Box2D.Collision.Shapes.b2PolygonShape,
-      CircleShape = Box2D.Collision.Shapes.b2CircleShape;
-
-  var gravity = new Vec2(0, -10);
-  var world = new World(gravity, true);
-
-  var shape = new PolygonShape();
-  shape.SetAsEdge(new Vec2(-40.0, 0), new Vec2(40.0, 0));
-
-  var fd = new FixtureDef();
-  fd.density = 0.0;
-  fd.shape = shape;
-  var bd = new BodyDef();
-  var ground = world.CreateBody(bd);
-  ground.CreateFixture(fd);
-
-  var a = .5;
-  var shape = new PolygonShape();
-  shape.SetAsBox(a, a);
-
-  var x = new Vec2(-7.0, 0.75);
-  var y = new Vec2();
-  var deltaX = new Vec2(0.5625, 1);
-  var deltaY = new Vec2(1.125, 0.0);
-
-  for (var i = 0; i < 10; ++i) {
-    y.Set(x.x, x.y);
-
-    for (var j = 0; j < 5; ++j) {
-      var fd = new FixtureDef();
-      fd.density = 5.0;
-      fd.shape = shape;
-
-      var bd = new BodyDef();
-      bd.type = Body.b2_dynamicBody;
-      bd.position.Set(y.x, y.y);
-      var body = world.CreateBody(bd);
-      body.CreateFixture(fd);
-      y.Add(deltaY);
-    }
-
-    x.Add(deltaX);
-  }
-
-  return world;
-}
-
-var world = null;
-
-var Box2DBenchmark = new BenchmarkSuite('Box2D', 4559000,
-                                        [new Benchmark('Box2D',
-                                                       runBox2D,
-                                                       setupBox2D,
-                                                       tearDownBox2D,
-                                                       8)]);
-
-function runBox2D() {
-  var world = MakeNewWorld();
-  for (var i = 0; i < 20; i++) {
-    world.Step(1 / 60, 10, 3);
-  }
-}
-
-function setupBox2D() {
-}
-
-function tearDownBox2D() {
-  world = null;
-  Box2D = null;
-}
-
-
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/code-load.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/code-load.js
deleted file mode 100644
index 24d7df1..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/code-load.js
+++ /dev/null
@@ -1,1531 +0,0 @@
-// Copyright 2012 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',
-                runCodeLoadClosure,
-                setupCodeLoad,
-                tearDownCodeLoad,
-                16),
-  new Benchmark('CodeLoadJQuery',
-                runCodeLoadJQuery,
-                setupCodeLoad,
-                tearDownCodeLoad,
-                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\
- type=\"text/javascript\" src=\"'+a+'\"><\\/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;e<b\
-.length;e++)if(b[e])goog.importScript_(goog.basePath+b[e]);else throw Error(\"U\
-ndefined script input\");},goog.getPathFromDeps_=function(a){return a in goog.d\
-ependencies_.nameToPath?goog.dependencies_.nameToPath[a]: null},goog.findBasePa\
-th_(),goog.global.CLOSURE_NO_DEPS||goog.importScript_(goog.basePath+\"deps.js\"\
-));goog.typeOf=function(a){var b=typeof a;if(b==\"object\")if(a){if(a instanceo\
-f Array)return\"array\";if(a instanceof Object)return b;var c=Object.prototype.\
-toString.call(a);if(c==\"[object Window]\")return\"object\";if(c==\"[object Arr\
-ay]\"||typeof a.length==\"number\"&&typeof a.splice!=\"undefined\"&&typeof a.pr\
-opertyIsEnumerable!=\"undefined\"&&!a.propertyIsEnumerable(\"splice\"))return\"\
-array\";if(c==\"[object Function]\"||typeof a.call!=\"undefined\"&&typeof a.pro\
-pertyIsEnumerable!=\"undefined\"&&!a.propertyIsEnumerable(\"call\"))return\"fun\
-ction\"}else return\"null\";else if(b==\"function\"&&typeof a.call==\"undefined\
-\")return\"object\";return b};goog.isDef=function(a){return a!==void 0};goog.is\
-Null=function(a){return a===null};goog.isDefAndNotNull=function(a){return a!=nu\
-ll};goog.isArray=function(a){return goog.typeOf(a)==\"array\"};goog.isArrayLike\
-=function(a){var b=goog.typeOf(a);return b==\"array\"||b==\"object\"&&typeof a.\
-length==\"number\"};goog.isDateLike=function(a){return goog.isObject(a)&&typeof\
- a.getFullYear==\"function\"};goog.isString=function(a){return typeof a==\"stri\
-ng\"};goog.isBoolean=function(a){return typeof a==\"boolean\"};goog.isNumber=fu\
-nction(a){return typeof a==\"number\"};goog.isFunction=function(a){return goog.\
-typeOf(a)==\"function\"};goog.isObject=function(a){var b=typeof a;return b==\"o\
-bject\"&&a!=null||b==\"function\"};goog.getUid=function(a){return a[goog.UID_PR\
-OPERTY_]||(a[goog.UID_PROPERTY_]=++goog.uidCounter_)};goog.removeUid=function(a\
-){\"removeAttribute\"in a&&a.removeAttribute(goog.UID_PROPERTY_);try{delete a[g\
-oog.UID_PROPERTY_]}catch(b){}};goog.UID_PROPERTY_=\"closure_uid_\"+Math.floor(2\
-147483648*Math.random()).toString(36);goog.uidCounter_=0;goog.getHashCode=goog.\
-getUid;goog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=go\
-og.typeOf(a);if(b==\"object\"||b==\"array\"){if(a.clone)return a.clone();var b=\
-b==\"array\"?[]:{},c;for(c in a)b[c]=goog.cloneObject(a[c]);return b}return a};\
-goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};goog.bi\
-ndJs_=function(a,b,c){if(!a)throw Error();if(arguments.length>2){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<a.length;d++)b.push(c(a[d]));return b.join(\"-\")}\
-,d=goog.cssNameMapping_?goog.cssNameMappingStyle_==\"BY_WHOLE\"?c:d:function(a)\
-{return a};return b?a+\"-\"+d(b):d(a)};goog.setCssNameMapping=function(a,b){goo\
-g.cssNameMapping_=a;goog.cssNameMappingStyle_=b};!COMPILED&&goog.global.CLOSURE\
-_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING);\
-goog.getMsg=function(a,b){var c=b||{},d;for(d in c)var e=(\"\"+c[d]).replace(/\
-\\$/g,\"$$$$\"),a=a.replace(RegExp(\"\\\\{\\\\$\"+d+\"\\\\}\",\"gi\"),e);return\
- a};goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,c)};goog.exportPrope\
-rty=function(a,b,c){a[b]=c};goog.inherits=function(a,b){function c(){}c.prototy\
-pe=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.construc\
-tor=a};goog.base=function(a,b,c){var d=arguments.callee.caller;if(d.superClass_\
-)return d.superClass_.constructor.apply(a,Array.prototype.slice.call(arguments,\
-1));for(var e=Array.prototype.slice.call(arguments,2),g=false,f=a.constructor;f\
-;f=f.superClass_&&f.superClass_.constructor)if(f.prototype[b]===d)g=true;else i\
-f(g)return f.prototype[b].apply(a,e);if(a[b]===d)return a.constructor.prototype\
-[b].apply(a,e);throw Error(\"goog.base called from a method of one name to a me\
-thod of a different name\");};goog.scope=function(a){a.call(goog.global)};"
-
-var JQUERY_JS = "/*! jQuery v1.7.2 jquery.com | jquery.org/license */ (function\
-(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.par\
-entWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f(\"<\"+a+\">\").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?\"<!doctype html>\":\"\")+\"<html><body>\"),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;g<i;g++){if(g===1\
-)for(h in a.converters)typeof h==\"string\"&&(e[h.toLowerCase()]=a.converters[h\
-]);l=k,k=d[g];if(k===\"*\")k=l;else if(l!==\"*\"&&l!==k){m=l+\" \"+k,n=e[m]||e[\
-\"* \"+k];if(!n){p=b;for(o in e){j=o.split(\" \");if(j[0]===l||j[0]===\"*\"){p=\
-e[j[1]+\" \"+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error(\
-\"No conversion from \"+m.replace(\" \",\" to \")),n!==!0&&(c=n?n(c):p(o(c)))}}\
-return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h\
-,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]===\"*\")f.shift(),h===b&&(h\
-=a.mimeType||c.getResponseHeader(\"content-type\"));if(h)for(i in e)if(e[i]&&e[\
-i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.\
-converters[i+\" \"+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j\
-);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||b\
-D.test(a)?d(a,e):b_(a+\"[\"+(typeof e==\"object\"?b:\"\")+\"]\",e,c,d)});else i\
-f(!c&&f.type(b)===\"object\")for(var e in b)b_(a+\"[\"+e+\"]\",b[e],c,d);else d\
-(a,b)}function b$(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]\
-!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bZ(a,c,d,e,f,g)\
-{f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bS,l;f\
-or(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==\"string\"&&(!k||g[l]?l=b:(c.dataT\
-ypes.unshift(l),l=bZ(a,c,d,e,l,g)));(k||!l)&&!g[\"*\"]&&(l=bZ(a,c,d,e,\"*\",g))\
-;return l}function bY(a){return function(b,c){typeof b!=\"string\"&&(c=b,b=\"*\
-\");if(f.isFunction(c)){var d=b.toLowerCase().split(bO),e=0,g=d.length,h,i,j;fo\
-r(;e<g;e++)h=d[e],j=/^\\+/.test(h),j&&(h=h.substr(1)||\"*\"),i=a[h]=a[h]||[],i[\
-j?\"unshift\":\"push\"](c)}}}function bB(a,b,c){var d=b===\"width\"?a.offsetWid\
-th:a.offsetHeight,e=b===\"width\"?1:0,g=4;if(d>0){if(c!==\"border\")for(;e<g;e+\
-=2)c||(d-=parseFloat(f.css(a,\"padding\"+bx[e]))||0),c===\"margin\"?d+=parseFlo\
-at(f.css(a,c+bx[e]))||0:d-=parseFloat(f.css(a,\"border\"+bx[e]+\"Width\"))||0;r\
-eturn d+\"px\"}d=by(a,b);if(d<0||d==null)d=a.style[b];if(bt.test(d))return d;d=\
-parseFloat(d)||0;if(c)for(;e<g;e+=2)d+=parseFloat(f.css(a,\"padding\"+bx[e]))||\
-0,c!==\"padding\"&&(d+=parseFloat(f.css(a,\"border\"+bx[e]+\"Width\"))||0),c===\
-\"margin\"&&(d+=parseFloat(f.css(a,c+bx[e]))||0);return d+\"px\"}function bo(a)\
-{var b=c.createElement(\"div\");bh.appendChild(b),b.innerHTML=a.outerHTML;retur\
-n b.firstChild}function bn(a){var b=(a.nodeName||\"\").toLowerCase();b===\"inpu\
-t\"?bm(a):b!==\"script\"&&typeof a.getElementsByTagName!=\"undefined\"&&f.grep(\
-a.getElementsByTagName(\"input\"),bm)}function bm(a){if(a.type===\"checkbox\"||\
-a.type===\"radio\")a.defaultChecked=a.checked}function bl(a){return typeof a.ge\
-tElementsByTagName!=\"undefined\"?a.getElementsByTagName(\"*\"):typeof a.queryS\
-electorAll!=\"undefined\"?a.querySelectorAll(\"*\"):[]}function bk(a,b){var c;b\
-.nodeType===1&&(b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mer\
-geAttributes(a),c=b.nodeName.toLowerCase(),c===\"object\"?b.outerHTML=a.outerHT\
-ML:c!==\"input\"||a.type!==\"checkbox\"&&a.type!==\"radio\"?c===\"option\"?b.se\
-lected=a.defaultSelected:c===\"input\"||c===\"textarea\"?b.defaultValue=a.defau\
-ltValue:c===\"script\"&&b.text!==a.text&&(b.text=a.text):(a.checked&&(b.default\
-Checked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)),b.removeAttr\
-ibute(f.expando),b.removeAttribute(\"_submit_attached\"),b.removeAttribute(\"_c\
-hange_attached\"))}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,\
-e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(\
-c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c,i[c][d])}h.data&&(h.data=f\
-.extend({},h.data))}}function bi(a,b){return f.nodeName(a,\"table\")?a.getEleme\
-ntsByTagName(\"tbody\")[0]||a.appendChild(a.ownerDocument.createElement(\"tbody\
-\")):a}function U(a){var b=V.split(\"|\"),c=a.createDocumentFragment();if(c.cre\
-ateElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b\
-=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);re\
-turn e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(\
-typeof b==\"string\"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.t\
-est(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){re\
-turn f.inArray(a,b)>=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<d;c++)b[a[c]]=!0;return b}var\
- c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isRead\
-y){try{c.documentElement.doScroll(\"left\")}catch(a){setTimeout(J,1);return}e.r\
-eady()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/\
-^(?:[^#<]*(<[\\w\\W]+>)[^>]*$|#([\\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(;j<k;j++)if((a=argumen\
-ts[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject\
-(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)\
-?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:func\
-tion(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,rea\
-dyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){i\
-f(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.re\
-ady,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)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(;g<h;)if(c.apply(a[g++],d)===!1)br\
-eak}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c\
-.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?\"\
-\":G.call(a)}:function(a){return a==null?\"\":(a+\"\").replace(k,\"\").replace(\
-l,\"\")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.leng\
-th==null||d===\"string\"||d===\"function\"||d===\"regexp\"||e.isWindow(a)?E.cal\
-l(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H\
-.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c\
-]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.len\
-gth==\"number\")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d+\
-+]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=\
-0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a\
-,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j==\"number\"\
-&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=n\
-ull&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);ret\
-urn h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c==\"string\"){v\
-ar d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=func\
-tion(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.g\
-uid||e.guid++;return g},access:function(a,c,d,f,g,h,i){var j,k=d==null,l=0,m=a.\
-length;if(d&&typeof d==\"object\"){for(l in d)e.access(a,c,l,d[l],1,h,f);g=1}el\
-se if(f!==b){j=i===b&&e.isFunction(f),k&&(j?(j=c,c=function(a,b,c){return j.cal\
-l(e(a),c)}):(c.call(a,f),c=null));if(c)for(;l<m;l++)c(a[l],d,j?f.call(a[l],l,c(\
-a[l],d)):f,i);g=1}return g?a:k?c.call(a):m?c(a[0],d):h},now:function(){return(n\
-ew Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.ex\
-ec(a)||t.exec(a)||a.indexOf(\"compatible\")<0&&u.exec(a)||[];return{browser:b[1\
-]||\"\",version:b[2]||\"0\"}},sub:function(){function a(b,c){return new a.fn.in\
-it(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.cons\
-tructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanc\
-eof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;va\
-r b=a(c);return a},browser:{}}),e.each(\"Boolean Number String Function Array D\
-ate RegExp Object\".split(\" \"),function(a,b){I[\"[object \"+b+\"]\"]=b.toLowe\
-rCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=\
-z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(\" \")&&(k=/^[\\s\\x\
-A0]+/,l=/[\\s\\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventLis\
-tener(\"DOMContentLoaded\",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.read\
-yState===\"complete\"&&(c.detachEvent(\"onreadystatechange\",B),e.ready())});re\
-turn e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,\
-l,m,n=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h\
-===\"array\"?n(g):h===\"function\"&&(!a.unique||!p.has(g))&&c.push(g)},o=functi\
-on(b,f){f=f||[],e=!a.memory||[b,f],i=!0,j=!0,m=k||0,k=0,l=c.length;for(;c&&m<l;\
-m++)if(c[m].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}j=!1,c&&(a.once?e===!0?p\
-.disable():c=[]:d&&d.length&&(e=d.shift(),p.fireWith(e[0],e[1])))},p={add:funct\
-ion(){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1\
-]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<\
-e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){j&&f<=l&&(l--,f<=m&&m--),c.spl\
-ice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.le\
-ngth;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return t\
-his},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock\
-:function(){d=b,(!e||e===!0)&&p.disable();return this},locked:function(){return\
-!d},fireWith:function(b,c){d&&(j?a.once||d.push([b,c]):(!a.once||!e)&&o(b,c));r\
-eturn this},fire:function(){p.fireWith(this,arguments);return this},fired:funct\
-ion(){return!!i}};return p};var i=[].slice;f.extend({Deferred:function(a){var b\
-=f.Callbacks(\"once memory\"),c=f.Callbacks(\"once memory\"),d=f.Callbacks(\"me\
-mory\"),e=\"pending\",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,\
-progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired\
-,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:functio\
-n(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:functio\
-n(a,b,c){return f.Deferred(function(d){f.each({done:[a,\"resolve\"],fail:[b,\"r\
-eject\"],progress:[c,\"notify\"]},function(a,b){var c=b[0],e=b[1],g;f.isFunctio\
-n(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.pro\
-mise().then(d.resolve,d.reject,d.notify):d[e+\"With\"](this===i?d:this,[g])}):i\
-[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h\
-)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+\"With\"]\
-=g[j].fireWith;i.done(function(){e=\"resolved\"},c.disable,d.lock).fail(functio\
-n(){e=\"rejected\"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a)\
-{function m(a){return function(b){e[a]=arguments.length>1?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<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?\
-b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j\
-.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l\
-,m,n,o,p=c.createElement(\"div\"),q=c.documentElement;p.setAttribute(\"classNam\
-e\",\"t\"),p.innerHTML=\"   <link/><table></table><a href='/a' style='top:1px;f\
-loat:left;opacity:.55;'>a</a><input type='checkbox'/>\",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></: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=\"<div \"+n+\"display:block\
-;'><div style='\"+t+\"0;display:block;overflow:hidden;'></div></div>\"+\"<table\
- \"+n+\"' cellpadding='0' cellspacing='0'>\"+\"<tr><td></td></tr></table>\",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=\"<table><tr><td style='\"+t+\"0;display:non\
-e'></td><td>t</td></tr></table>\",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=\"<div style='width:5px;'></div>\",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;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){de\
-lete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delet\
-e j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.re\
-moveAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},ac\
-ceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if\
-(b)return b!==!0&&a.getAttribute(\"classid\")===b}return!0}}),f.fn.extend({data\
-:function(a,c){var d,e,g,h,i,j=this[0],k=0,m=null;if(a===b){if(this.length){m=f\
-.data(j);if(j.nodeType===1&&!f._data(j,\"parsedAttrs\")){g=j.attributes;for(i=g\
-.length;k<i;k++)h=g[k].name,h.indexOf(\"data-\")===0&&(h=f.camelCase(h.substrin\
-g(5)),l(j,h,m[h]));f._data(j,\"parsedAttrs\",!0)}}return m}if(typeof a==\"objec\
-t\")return this.each(function(){f.data(this,a)});d=a.split(\".\",2),d[1]=d[1]?\
-\".\"+d[1]:\"\",e=d[1]+\"!\";return f.access(this,function(c){if(c===b){m=this.\
-triggerHandler(\"getData\"+e,[d[0]]),m===b&&j&&(m=f.data(j,a),m=l(j,a,m));retur\
-n m===b&&d[1]?this.data(d[0]):m}d[1]=c,this.each(function(){var b=f(this);b.tri\
-ggerHandler(\"setData\"+e,d),f.data(this,a,c),b.triggerHandler(\"changeData\"+e\
-,d)})},null,c,arguments.length>1,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.length<d)return f.queue(this[0],a);retur\
-n c===b?this:this.each(function(){var b=f.queue(this,a,c);a===\"fx\"&&b[0]!==\"\
-inprogress\"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(functio\
-n(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||\"\
-fx\";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){\
-clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||\"fx\",[])},pro\
-mise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!=\"string\"&\
-&(c=a,a=b),a=a||\"fx\";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+\"defer\",j\
-=a+\"queue\",k=a+\"mark\",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,\
-b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks(\"once memory\"),!0))h++\
-,l.add(m);m();return d.promise(c)}});var o=/[\\n\\t\\r]/g,p=/\\s+/,q=/\\r/g,r=/\
-^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea\
-)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|lo\
-op|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttrib\
-ute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,f.attr,a,b,argum\
-ents.length>1)},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<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className\
-=a;else{g=\" \"+e.className+\" \";for(h=0,i=b.length;h<i;h++)~g.indexOf(\" \"+b\
-[h]+\" \")||(g+=b[h]+\" \");e.className=f.trim(g)}}}return this},removeClass:fu\
-nction(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(t\
-his).removeClass(a.call(this,b,this.className))});if(a&&typeof a==\"string\"||a\
-===b){c=(a||\"\").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeTy\
-pe===1&&g.className)if(a){h=(\" \"+g.className+\" \").replace(o,\" \");for(i=0,\
-j=c.length;i<j;i++)h=h.replace(\" \"+c[i]+\" \",\" \");g.className=f.trim(h)}el\
-se g.className=\"\"}}return this},toggleClass:function(a,b){var c=typeof a,d=ty\
-peof b==\"boolean\";if(f.isFunction(a))return this.each(function(c){f(this).tog\
-gleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c=\
-==\"string\"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasC\
-lass(e),h[i?\"addClass\":\"removeClass\"](e)}else if(c===\"undefined\"||c===\"b\
-oolean\")this.className&&f._data(this,\"__className__\",this.className),this.cl\
-assName=this.className||a===!1?\"\":f._data(this,\"__className__\")||\"\"})},ha\
-sClass:function(a){var b=\" \"+a+\" \",c=0,d=this.length;for(;c<d;c++)if(this[c\
-].nodeType===1&&(\" \"+this[c].className+\" \").replace(o,\" \").indexOf(b)>-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<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.di\
-sabled:e.getAttribute(\"disabled\")===null)&&(!e.parentNode.disabled||!f.nodeNa\
-me(e.parentNode,\"optgroup\"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.\
-length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeA\
-rray(b);f(a).find(\"option\").each(function(){this.selected=f.inArray(f(this).v\
-al(),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<g;i++)e=d[i],e&&(c=f.propFix[e]||e,h=u.test(e),h||f.attr(a,e,\"\
-\"),a.removeAttribute(v?e:c),h&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:funct\
-ion(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error(\"type property can't be c\
-hanged\");else if(!f.support.radioValue&&b===\"radio\"&&f.nodeName(a,\"input\")\
-){var c=a.value;a.setAttribute(\"type\",b),c&&(a.value=c);return b}}},value:{ge\
-t:function(a,b){if(w&&f.nodeName(a,\"button\"))return w.get(a,b);return b in a?\
-a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,\"button\"))return w.set(a\
-,b,c);a.value=b}}},propFix:{tabindex:\"tabIndex\",readonly:\"readOnly\",\"for\"\
-:\"htmlFor\",\"class\":\"className\",maxlength:\"maxLength\",cellspacing:\"cell\
-Spacing\",cellpadding:\"cellPadding\",rowspan:\"rowSpan\",colspan:\"colSpan\",u\
-semap:\"useMap\",frameborder:\"frameBorder\",contenteditable:\"contentEditable\
-\"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=\
-i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&\
-\"set\"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&\"get\"in g&&(e=g.get(a,c))!==nul\
-l?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode(\"tabi\
-ndex\");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a\
-.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:fu\
-nction(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!=\"boolean\"&&(d=a.getA\
-ttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d\
-;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c\
-,c.toLowerCase()));return c}},v||(y={name:!0,id:!0,coords:!0},w=f.valHooks.butt\
-on={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue\
-!==\"\":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNod\
-e(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+\"\
-\"}},f.attrHooks.tabindex.set=w.set,f.each([\"width\",\"height\"],function(a,b)\
-{f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===\"\"){a.setAt\
-tribute(b,\"auto\");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:f\
-unction(a,b,c){b===\"\"&&(b=\"false\"),w.set(a,b,c)}}),f.support.hrefNormalized\
-||f.each([\"href\",\"src\",\"width\",\"height\"],function(a,c){f.attrHooks[c]=f\
-.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===nu\
-ll?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style\
-.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=\"\"+b}}),f\
-.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:\
-function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.s\
-electedIndex);return null}})),f.support.enctype||(f.propFix.enctype=\"encoding\
-\"),f.support.checkOn||f.each([\"radio\",\"checkbox\"],function(){f.valHooks[th\
-is]={get:function(a){return a.getAttribute(\"value\")===null?\"on\":a.value}}})\
-,f.each([\"radio\",\"checkbox\"],function(){f.valHooks[this]=f.extend(f.valHook\
-s[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(\
-),b)>=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<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||\"\").sp\
-lit(\".\").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s\
-=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:\
-d.guid,selector:g,quick:g&&G(g),namespace:n.join(\".\")},p),r=j[m];if(!r){r=j[m\
-]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListen\
-er?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent(\"on\"+m,i)}s.add&&(\
-s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateC\
-ount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a\
-,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g\
-.events)){b=f.trim(I(b||\"\")).split(\" \");for(h=0;h<b.length;h++){i=A.exec(b[\
-h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);conti\
-nue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.\
-length,l=l?new RegExp(\"(^|\\\\.)\"+l.split(\".\").sort().join(\"\\\\.(?:.*\
-\\\\.)?\")+\"(\\\\.|$)\"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType\
-)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d===\
-\"**\"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p\
-.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a\
-,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.ha\
-ndle,q&&(q.elem=null),f.removeData(a,[\"events\",\"handle\"],!0))}},customEvent\
-:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeT\
-ype!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f\
-.event.triggered))return;h.indexOf(\"!\")>=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;l<r.\
-length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,\"e\
-vents\")||{})[c.type]&&f._data(m,\"handle\"),q&&q.apply(m,d),q=o&&m[o],q&&f.acc\
-eptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrev\
-ented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!==\"click\
-\"||!f.nodeName(e,\"a\"))&&f.acceptData(e)&&o&&e[h]&&(h!==\"focus\"&&h!==\"blur\
-\"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.t\
-riggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:f\
-unction(c){c=f.event.fix(c||a.event);var d=(f._data(this,\"events\")||{})[c.typ\
-e]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namesp\
-ace,i=f.event.special[c.type]||{},j=[],k,l,m,n,o,p,q,r,s,t,u;g[0]=c,c.delegateT\
-arget=this;if(!i.preDispatch||i.preDispatch.call(this,c)!==!1){if(e&&(!c.button\
-||c.type!==\"click\")){n=f(this),n.context=this.ownerDocument||this;for(m=c.tar\
-get;m!=this;m=m.parentNode||this)if(m.disabled!==!0){p={},r=[],n[0]=m;for(k=0;k\
-<e;k++)s=d[k],t=s.selector,p[t]===b&&(p[t]=s.quick?H(m,s.quick):n.is(t)),p[t]&&\
-r.push(s);r.length&&j.push({elem:m,matches:r})}}d.length>e&&j.push({elem:this,m\
-atches:d.slice(e)});for(k=0;k<j.length&&!c.isPropagationStopped();k++){q=j[k],c\
-.currentTarget=q.elem;for(l=0;l<q.matches.length&&!c.isImmediatePropagationStop\
-ped();l++){s=q.matches[l];if(h||!c.namespace&&!s.namespace||c.namespace_re&&c.n\
-amespace_re.test(s.namespace))c.data=s.data,c.handleObj=s,o=((f.event.special[s\
-.origType]||{}).handle||s.handler).apply(q.elem,g),o!==b&&(c.result=o,o===!1&&(\
-c.preventDefault(),c.stopPropagation()))}}i.postDispatch&&i.postDispatch.call(t\
-his,c);return c.result}},props:\"attrChange attrName relatedNode srcElement alt\
-Key bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget s\
-hiftKey target timeStamp view which\".split(\" \"),fixHooks:{},keyHooks:{props:\
-\"char charCode key keyCode\".split(\" \"),filter:function(a,b){a.which==null&&\
-(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:\"\
-button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX \
-screenY toElement\".split(\" \"),filter:function(a,d){var e,f,g,h=d.button,i=d.\
-fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.do\
-cumentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-\
-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.s\
-crollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relat\
-edTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?\
-2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.\
-fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(\
-g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.\
-target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a\
-.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},l\
-oad:{noBubble:!0},focus:{delegateType:\"focusin\"},blur:{delegateType:\"focusou\
-t\"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload\
-=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)\
-}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated\
-:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e\
-.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.r\
-emoveEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.remov\
-eEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent(\"on\"+b,c\
-)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);\
-a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defa\
-ultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:\
-J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[\
-f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPreve\
-nted=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.retu\
-rnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.\
-originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},s\
-topImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.st\
-opPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropaga\
-tionStopped:J},f.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\"},functi\
-on(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=\
-this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c\
-,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f\
-.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName\
-(this,\"form\"))return!1;f.event.add(this,\"click._submit keypress._submit\",fu\
-nction(a){var c=a.target,d=f.nodeName(c,\"input\")||f.nodeName(c,\"button\")?c.\
-form:b;d&&!d._submit_attached&&(f.event.add(d,\"submit._submit\",function(a){a.\
-_submit_bubble=!0}),d._submit_attached=!0)})},postDispatch:function(a){a._submi\
-t_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&f.event.simul\
-ate(\"submit\",this.parentNode,a,!0))},teardown:function(){if(f.nodeName(this,\
-\"form\"))return!1;f.event.remove(this,\"._submit\")}}),f.support.changeBubbles\
-||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.t\
-ype===\"checkbox\"||this.type===\"radio\")f.event.add(this,\"propertychange._ch\
-ange\",function(a){a.originalEvent.propertyName===\"checked\"&&(this._just_chan\
-ged=!0)}),f.event.add(this,\"click._change\",function(a){this._just_changed&&!a\
-.isTrigger&&(this._just_changed=!1,f.event.simulate(\"change\",this,a,!0))});re\
-turn!1}f.event.add(this,\"beforeactivate._change\",function(a){var b=a.target;z\
-.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,\"change._change\",funct\
-ion(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate(\"change\
-\",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a\
-.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!==\"radio\"&&b.type!==\
-\"checkbox\")return a.handleObj.handler.apply(this,arguments)},teardown:functio\
-n(){f.event.remove(this,\"._change\");return z.test(this.nodeName)}}),f.support\
-.focusinBubbles||f.each({focus:\"focusin\",blur:\"focusout\"},function(a,b){var\
- d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.spec\
-ial[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function\
-(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,\
-g){var h,i;if(typeof a==\"object\"){typeof c!=\"string\"&&(d=d||c,c=b);for(i in\
- a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typ\
-eof c==\"string\"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this\
-;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.\
-guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)}\
-)},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){if(a&&a\
-.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.names\
-pace?e.origType+\".\"+e.namespace:e.origType,e.selector,e.handler);return this}\
-if(typeof a==\"object\"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!\
-1||typeof c==\"function\")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.e\
-vent.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unb\
-ind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.contex\
-t).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a\
-,this.selector||\"**\",b);return this},delegate:function(a,b,c,d){return this.o\
-n(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,\"\
-**\"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.even\
-t.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.t\
-rigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d\
-=0,e=function(c){var e=(f._data(this,\"lastToggle\"+a.guid)||0)%d;f._data(this,\
-\"lastToggle\"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)\
-||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:funct\
-ion(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each(\"blur focus focu\
-sin focusout load resize scroll unload click dblclick mousedown mouseup mousemo\
-ve mouseover mouseout mouseenter mouseleave change select submit keydown keypre\
-ss keyup error contextmenu\".split(\" \"),function(a,b){f.fn[b]=function(a,c){c\
-==null&&(c=a,a=null);return arguments.length>0?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;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];w\
-hile(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset\
-=h);if(typeof b!=\"string\"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).leng\
-th>0){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<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];\
-break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){\
-k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^\
-\\[\\]]*\\]|['\"][^'\"]*['\"]|[^\\[\\]'\"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~\
-])(\\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;b<a.\
-length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){ret\
-urn m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a])\
-.length>0},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<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1\
-,1);if(i.substr(i.length-1)!==\"\\\\\"){g[1]=(g[1]||\"\").replace(j,\"\"),d=o.f\
-ind[h](g,b,c);if(d!=null){a=a.replace(o.match[h],\"\");break}}}}d||(d=typeof b.\
-getElementsByTagName!=\"undefined\"?b.getElementsByTagName(\"*\"):[]);return{se\
-t:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&\
-&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].\
-exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.len\
-gth-1)===\"\\\\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,\
-s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++\
-)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b\
-){d||(s=r),a=a.replace(o.match[h],\"\");if(!g)return[];break}}if(a===q)if(g==nu\
-ll)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error(\"Sy\
-ntax error, unrecognized expression: \"+a)};var n=m.getText=function(a){var b,c\
-,d=a.nodeType,e=\"\";if(d){if(d===1||d===9||d===11){if(typeof a.textContent==\"\
-string\")return a.textContent;if(typeof a.innerText==\"string\")return a.innerT\
-ext.replace(k,\"\");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3|\
-|d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));ret\
-urn e},o=m.selectors={order:[\"ID\",\"NAME\",\"TAG\"],match:{ID:/#((?:[\\w\\u00\
-c0-\\uFFFF\\-]|\\\\.)+)/,CLASS:/\\.((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/,NAME:/\
-\\[name=['\"]*((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)['\"]*\\]/,ATTR:/\\[\\s*((?:[\
-\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)\\s*(?:(\\S?=)\\s*(?:(['\"])(.*?)\\3|(#?(?:[\\w\
-\\u00c0-\\uFFFF\\-]|\\\\.)*)|)|)\\s*\\]/,TAG:/^((?:[\\w\\u00c0-\\uFFFF\\*\\-]|\
-\\\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\\(\\s*(even|odd|(?:[+\\-]?\\d+\
-|(?:[+\\-]?\\d*)?n\\s*(?:[+\\-]\\s*\\d+)?))\\s*\\))?/,POS:/:(nth|eq|gt|lt|first\
-|last|even|odd)(?:\\((\\d*)\\))?(?=[^\\-]|$)/,PSEUDO:/:((?:[\\w\\u00c0-\\uFFFF\
-\\-]|\\\\.)+)(?:\\((['\"]?)((?:\\([^\\)]+\\)|[^\\(\\)]*)+)\\2\\))?/},leftMatch:\
-{},attrMap:{\"class\":\"className\",\"for\":\"htmlFor\"},attrHandle:{href:funct\
-ion(a){return a.getAttribute(\"href\")},type:function(a){return a.getAttribute(\
-\"type\")}},relative:{\"+\":function(a,b){var c=typeof b==\"string\",d=c&&!l.te\
-st(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]\
-){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCas\
-e()===b?h||!1:h===b}e&&m.filter(b,a,!0)},\">\":function(a,b){var c,d=typeof b==\
-\"string\",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a\
-[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(\
-;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}}\
-,\"\":function(a,b,c){var d,f=e++,g=x;typeof b==\"string\"&&!l.test(b)&&(b=b.to\
-LowerCase(),d=b,g=w),g(\"parentNode\",b,f,a,d,c)},\"~\":function(a,b,c){var d,f\
-=e++,g=x;typeof b==\"string\"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g(\"prev\
-iousSibling\",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!\
-=\"undefined\"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}\
-},NAME:function(a,b){if(typeof b.getElementsByName!=\"undefined\"){var c=[],d=b\
-.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute(\"nam\
-e\")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typ\
-eof b.getElementsByTagName!=\"undefined\")return b.getElementsByTagName(a[1])}}\
-,preFilter:{CLASS:function(a,b,c,d,e,f){a=\" \"+a[1].replace(j,\"\")+\" \";if(f\
-)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(\" \"+h.classNa\
-me+\" \").replace(/[\\t\\n\\r]/g,\" \").indexOf(a)>=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 b<c[3]-0},gt:function(a,b,c){return b>c[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<i;h++)if(g[h]===a)return!1;retu\
-rn!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){cas\
-e\"only\":case\"first\":while(l=l.previousSibling)if(l.nodeType===1)return!1;if\
-(k===\"first\")return!0;l=a;case\"last\":while(l=l.nextSibling)if(l.nodeType===\
-1)return!1;return!0;case\"nth\":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g\
-=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.next\
-Sibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j\
-===0:j%c===0&&j/c>=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;c++)d.push(a[c]);els\
-e for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumen\
-tPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition\
-||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.com\
-pareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.s\
-ourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],\
-g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)r\
-eturn 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parent\
-Node;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k\
-],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)retur\
-n c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),f\
-unction(){var a=c.createElement(\"div\"),d=\"script\"+(new Date).getTime(),e=c.\
-documentElement;a.innerHTML=\"<a name='\"+d+\"'/>\",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\
- href='#'></a>\",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 class='TEST'><\
-/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=\"<div class='test e'></div><div c\
-lass='test'></div>\";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;h<i;h++)\
-m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find\
-=m,f.expr=m.selectors,f.expr[\":\"]=f.expr.filters,f.unique=m.uniqueSort,f.text\
-=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:pa\
-rents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\\[\\.,]*$/,P=Array.prototype.slice,Q=\
-f.expr.match.globalPOS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend(\
-{find:function(a){var b=this,c,d;if(typeof a!=\"string\")return f(a).filter(fun\
-ction(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=th\
-is.pushStack(\"\",\"find\",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f\
-.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]\
-){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filte\
-r(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})\
-},not:function(a){return this.pushStack(T(this,a,!1),\"not\",a)},filter:functio\
-n(a){return this.pushStack(T(this,a,!0),\"filter\",a)},is:function(a){return!!a\
-&&(typeof a==\"string\"?Q.test(a)?f(a,this.context).index(this[0])>=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<a.\
-length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode\
-,h++}return c}var i=Q.test(a)||typeof a!=\"string\"?f(a,b||this.context):0;for(\
-d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-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:]+)/,$=/<tbody/i,_=/<|&#?\\w+;/,ba=/<(?:script|style\
-)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp(\"<(?:\"+V+\")[\
-\\\\s/>]\",\"i\"),bd=/checked\\s*(?:[^=]|=\\s*.checked.)/i,be=/\\/(java|ecma)sc\
-ript/i,bf=/^\\s*<!(?:\\[CDATA\\[|\\-\\-)/,bg={option:[1,\"<select multiple='mul\
-tiple'>\",\"</select>\"],legend:[1,\"<fieldset>\",\"</fieldset>\"],thead:[1,\"<\
-table>\",\"</table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<\
-table><tbody><tr>\",\"</tr></tbody></table>\"],col:[2,\"<table><tbody></tbody><\
-colgroup>\",\"</colgroup></table>\"],area:[1,\"<map>\",\"</map>\"],_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<div>\",\
-\"</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></$2>\
-\");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(f.cleanData(c.getElementsBy\
-TagName(\"*\")),c.innerHTML=a);c=0}catch(g){}}c&&this.empty().append(a)},null,a\
-,arguments.length)},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(\
-f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replace\
-With(a.call(this,b,d))});typeof a!=\"string\"&&(a=f(a).detach());return this.ea\
-ch(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).\
-before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?\
-a():a),\"replaceWith\",a):this},detach:function(a){return this.remove(a,!0)},do\
-mManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&argume\
-nts.length===3&&typeof j==\"string\"&&bd.test(j))return this.each(function(){f(\
-this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var \
-g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&\
-&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===t\
-his.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes\
-.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,\"tr\");for\
-(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable\
-||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,function(a,b){b.src?f.ajax({t\
-ype:\"GET\",global:!1,url:b.src,async:!1,dataType:\"script\"}):f.globalEval((b.\
-text||b.textContent||b.innerHTML||\"\").replace(bf,\"/*$0*/\")),b.parentNode&&b\
-.parentNode.removeChild(b)})}return this}}),f.buildFragment=function(a,b,d){var\
- e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment|\
-|(i=c),a.length===1&&typeof j==\"string\"&&j.length<512&&i===c&&j.charAt(0)===\
-\"<\"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone|\
-|!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFr\
-agment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheabl\
-e:g}},f.fragments={},f.each({appendTo:\"append\",prependTo:\"prepend\",insertBe\
-fore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(a,b)\
-{f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g\
-&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return \
-this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?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></$2>\");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]===\"<table>\"&&!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;i<u;i++)bn(l[i]);else bn(l);l.nodeType?j.push(l\
-):j=f.merge(j,l)}if(d){g=function(a){return!a.type||be.test(a.type)};for(k=0;j[\
-k];k++){h=j[k];if(e&&f.nodeName(h,\"script\")&&(!h.type||be.test(h.type)))e.pus\
-h(h.parentNode?h.parentNode.removeChild(h):h);else{if(h.nodeType===1){var v=f.g\
-rep(h.getElementsByTagName(\"script\"),g);j.splice.apply(j,[k+1,0].concat(v))}d\
-.appendChild(h)}}}return j},cleanData:function(a){var b,c,d=f.cache,e=f.event.s\
-pecial,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeNam\
-e&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b\
-&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.\
-handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&\
-&i.removeAttribute(f.expando),delete d[c]}}}});var bp=/alpha\\([^)]*\\)/i,bq=/o\
-pacity=([^)]*)/,br=/([A-Z]|^ms)/g,bs=/^[\\-+]?(?:\\d*\\.)?\\d+$/i,bt=/^-?(?:\\d\
-*\\.)?\\d+(?!px)[^\\d\\s]+$/i,bu=/^([\\-+])=([\\-+.\\de]+)/,bv=/^margin/,bw={po\
-sition:\"absolute\",visibility:\"hidden\",display:\"block\"},bx=[\"Top\",\"Righ\
-t\",\"Bottom\",\"Left\"],by,bz,bA;f.fn.css=function(a,c){return f.access(this,f\
-unction(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)},a,c,arguments.length>1)}\
-,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\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/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(\"<div>\").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<h;g++)d=this[g],d\
-.style&&(e=d.style.display,!f._data(d,\"olddisplay\")&&e===\"none\"&&(e=d.style\
-.display=\"\"),(e===\"\"&&f.css(d,\"display\")===\"none\"||!f.contains(d.ownerD\
-ocument.documentElement,d))&&f._data(d,\"olddisplay\",cu(d.nodeName)));for(g=0;\
-g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===\"\"||e===\"none\")d.st\
-yle.display=f._data(d,\"olddisplay\")||\"\"}}return this},hide:function(a,b,c){\
-if(a||a===0)return this.animate(ct(\"hide\",3),a,b,c);var d,e,g=0,h=this.length\
-;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,\"display\"),e!==\"none\"&&!f._data\
-(d,\"olddisplay\")&&f._data(d,\"olddisplay\",e));for(g=0;g<h;g++)this[g].style&\
-&(this[g].style.display=\"none\");return this},_toggle:f.fn.toggle,toggle:funct\
-ion(a,b,c){var d=typeof a==\"boolean\";f.isFunction(a)&&f.isFunction(b)?this._t\
-oggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).i\
-s(\":hidden\");f(this)[b?\"show\":\"hide\"]()}):this.animate(ct(\"toggle\",3),a\
-,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(\":hidden\").css\
-(\"opacity\",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c\
-,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeTy\
-pe===1,d=c&&f(this).is(\":hidden\"),g,h,i,j,k,l,m,n,o,p,q;b.animatedProperties=\
-{};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]);if((k=f.cssHooks\
-[g])&&\"expand\"in k){l=k.expand(a[g]),delete a[g];for(i in l)i in a||(a[i]=l[i\
-])}}for(g in a){h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):\
-b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||\"swing\
-\";if(h===\"hide\"&&d||h===\"show\"&&!d)return b.complete.call(this);c&&(g===\"\
-height\"||g===\"width\")&&(b.overflow=[this.style.overflow,this.style.overflowX\
-,this.style.overflowY],f.css(this,\"display\")===\"inline\"&&f.css(this,\"float\
-\")===\"none\"&&(!f.support.inlineBlockNeedsLayout||cu(this.nodeName)===\"inlin\
-e\"?this.style.display=\"inline-block\":this.style.zoom=1))}b.overflow!=null&&(\
-this.style.overflow=\"hidden\");for(i in a)j=new f.fx(this,b,i),h=a[i],cm.test(\
-h)?(q=f._data(this,\"toggle\"+i)||(h===\"toggle\"?d?\"show\":\"hide\":0),q?(f._\
-data(this,\"toggle\"+i,q===\"show\"?\"hide\":\"show\"),j[q]()):j[h]()):(m=cn.ex\
-ec(h),n=j.cur(),m?(o=parseFloat(m[2]),p=m[3]||(f.cssNumber[i]?\"\":\"px\"),p!==\
-\"px\"&&(f.style(this,i,(o||1)+p),n=(o||1)/j.cur()*n,f.style(this,i,n+p)),m[1]&\
-&(o=(m[1]===\"-=\"?-1:1)*o+n),j.custom(n,o,p)):j.custom(n,h,\"\"));return!0}var\
- e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.e\
-xtend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:functi\
-on(a,c,d){typeof a!=\"string\"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||\"fx\",[\
-]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0\
-),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==n\
-ull)for(b in g)g[b]&&g[b].stop&&b.indexOf(\".run\")===b.length-4&&h(this,g,b);e\
-lse g[b=a+\".run\"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===thi\
-s&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));\
-(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:ct(\"show\",1),slideUp:ct(\"\
-hide\",1),slideToggle:ct(\"toggle\",1),fadeIn:{opacity:\"show\"},fadeOut:{opaci\
-ty:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(a,b){f.fn[a]=function(a,\
-c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&t\
-ypeof a==\"object\"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,durat\
-ion:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.durat\
-ion==\"number\"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.\
-fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue=\"fx\";d.old=d.comple\
-te,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.deque\
-ue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a){\
-return a},swing:function(a){return-Math.cos(a*Math.PI)/2+.5}},timers:[],fx:func\
-tion(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.pr\
-ototype={update:function(){this.options.step&&this.options.step.call(this.elem,\
-this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function()\
-{if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==\
-null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isN\
-aN(a=parseFloat(b))?!b||b===\"auto\"?0:b:a},custom:function(a,c,d){function h(a\
-){return e.step(a)}var e=this,g=f.fx;this.startTime=cq||cr(),this.end=c,this.no\
-w=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.\
-prop]?\"\":\"px\"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=func\
-tion(){f._data(e.elem,\"fxshow\"+e.prop)===b&&(e.options.hide?f._data(e.elem,\"\
-fxshow\"+e.prop,e.start):e.options.show&&f._data(e.elem,\"fxshow\"+e.prop,e.end\
-))},h()&&f.timers.push(h)&&!co&&(co=setInterval(g.tick,g.interval))},show:funct\
-ion(){var a=f._data(this.elem,\"fxshow\"+this.prop);this.options.orig[this.prop\
-]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.c\
-ur(),a):this.custom(this.prop===\"width\"||this.prop===\"height\"?1:0,this.cur(\
-)),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(th\
-is.elem,\"fxshow\"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!\
-0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cq||cr(),g=!0,h=this.\
-elem,i=this.options;if(a||e>=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<b.length;c++)a=b[c],!a()&&\
-b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){cl\
-earInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:\
-function(a){f.style(a.elem,\"opacity\",a.now)},_default:function(a){a.elem.styl\
-e&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=\
-a.now}}}),f.each(cp.concat.apply([],cp),function(a,b){b.indexOf(\"margin\")&&(f\
-.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)})}),f.expr&&\
-f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,fun\
-ction(b){return a===b.elem}).length});var cv,cw=/^t(?:able|d|h)$/i,cx=/^(?:body\
-|html)$/i;\"getBoundingClientRect\"in c.documentElement?cv=function(a,b,c,d){tr\
-y{d=a.getBoundingClientRect()}catch(e){}if(!d||!f.contains(c,a))return d?{top:d\
-.top,left:d.left}:{top:0,left:0};var g=b.body,h=cy(b),i=c.clientTop||g.clientTo\
-p||0,j=c.clientLeft||g.clientLeft||0,k=h.pageYOffset||f.support.boxModel&&c.scr\
-ollTop||g.scrollTop,l=h.pageXOffset||f.support.boxModel&&c.scrollLeft||g.scroll\
-Left,m=d.top+k-i,n=d.left+l-j;return{top:m,left:n}}:cv=function(a,b,c){var d,e=\
-a.offsetParent,g=a,h=b.body,i=b.defaultView,j=i?i.getComputedStyle(a,null):a.cu\
-rrentStyle,k=a.offsetTop,l=a.offsetLeft;while((a=a.parentNode)&&a!==h&&a!==c){i\
-f(f.support.fixedPosition&&j.position===\"fixed\")break;d=i?i.getComputedStyle(\
-a,null):a.currentStyle,k-=a.scrollTop,l-=a.scrollLeft,a===e&&(k+=a.offsetTop,l+\
-=a.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndC\
-ells||!cw.test(a.nodeName))&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(\
-d.borderLeftWidth)||0),g=e,e=a.offsetParent),f.support.subtractsBorderForOverfl\
-owNotVisible&&d.overflow!==\"visible\"&&(k+=parseFloat(d.borderTopWidth)||0,l+=\
-parseFloat(d.borderLeftWidth)||0),j=d}if(j.position===\"relative\"||j.position=\
-==\"static\")k+=h.offsetTop,l+=h.offsetLeft;f.support.fixedPosition&&j.position\
-===\"fixed\"&&(k+=Math.max(c.scrollTop,h.scrollTop),l+=Math.max(c.scrollLeft,h.\
-scrollLeft));return{top:k,left:l}},f.fn.offset=function(a){if(arguments.length)\
-return a===b?this:this.each(function(b){f.offset.setOffset(this,a,b)});var c=th\
-is[0],d=c&&c.ownerDocument;if(!d)return null;if(c===d.body)return f.offset.body\
-Offset(c);return cv(c,d,d.documentElement)},f.offset={bodyOffset:function(a){va\
-r b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=\
-parseFloat(f.css(a,\"marginTop\"))||0,c+=parseFloat(f.css(a,\"marginLeft\"))||0\
-);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,\"position\");d\
-===\"static\"&&(a.style.position=\"relative\");var e=f(a),g=e.offset(),h=f.css(\
-a,\"top\"),i=f.css(a,\"left\"),j=(d===\"absolute\"||d===\"fixed\")&&f.inArray(\
-\"auto\",[h,i])>-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);"
-
-function cacheBust(str, old) {
-  var replacement = old;
-  for (var i = 1; i < salt % 16 + 2; i++) {
-    replacement += ((salt + i * 7) % 36).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/suite/pts/hostTests/browser/browserlauncher/assets/octane/crypto.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/crypto.js
deleted file mode 100644
index 531ad45..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/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", encrypt),
-  new Benchmark("Decrypt", 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<<dbits)-1);
-  BI_DV = (1<<dbits);
-
-  BI_FP = 52;
-  BI_FV = Math.pow(2,BI_FP);
-  BI_F1 = BI_FP-dbits;
-  BI_F2 = 2*dbits-BI_FP;
-}
-
-
-// Digit conversions
-var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
-var BI_RC = new Array();
-var rr,vv;
-rr = "0".charCodeAt(0);
-for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
-rr = "a".charCodeAt(0);
-for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
-rr = "A".charCodeAt(0);
-for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
-
-function int2char(n) { return BI_RM.charAt(n); }
-function intAt(s,i) {
-  var c = BI_RC[s.charCodeAt(i)];
-  return (c==null)?-1:c;
-}
-
-// (protected) copy this to r
-function bnpCopyTo(r) {
-  var this_array = this.array;
-  var r_array    = r.array;
-
-  for(var i = this.t-1; i >= 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))<<sh;
-      this_array[this.t++] = (x>>(BI_DB-sh));
-    }
-    else
-      this_array[this.t-1] |= x<<sh;
-    sh += k;
-    if(sh >= 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)<<sh;
-  }
-  this.clamp();
-  if(mi) BigInteger.ZERO.subTo(this,this);
-}
-
-// (protected) clamp off excess high words
-function bnpClamp() {
-  var this_array = this.array;
-  var c = this.s&BI_DM;
-  while(this.t > 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<<k)-1, d, m = false, r = "", i = this.t;
-  var p = BI_DB-(i*BI_DB)%k;
-  if(i-- > 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)-1))<<(k-p);
-        d |= this_array[--i]>>(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<<cbs)-1;
-  var ds = Math.floor(n/BI_DB), c = (this.s<<bs)&BI_DM, i;
-  for(i = this.t-1; i >= 0; --i) {
-    r_array[i+ds+1] = (this_array[i]>>cbs)|c;
-    c = (this_array[i]&bm)<<bs;
-  }
-  for(i = ds-1; i >= 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)-1;
-  r_array[0] = this_array[ds]>>bs;
-  for(var i = ds+1; i < this.t; ++i) {
-    r_array[i-ds-1] |= (this_array[i]&bm)<<cbs;
-    r_array[i-ds] = this_array[i]>>bs;
-  }
-  if(bs > 0) r_array[this.t-ds-1] |= (this.s&bm)<<cbs;
-  r.t = this.t-ds;
-  r.clamp();
-}
-
-// (protected) r = this - a
-function bnpSubTo(a,r) {
-  var this_array = this.array;
-  var r_array = r.array;
-  var a_array = a.array;
-  var i = 0, c = 0, m = Math.min(a.t,this.t);
-  while(i < m) {
-    c += this_array[i]-a_array[i];
-    r_array[i++] = c&BI_DM;
-    c >>= 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<<BI_F1)+((ys>1)?y_array[ys-2]>>BI_F2:0);
-  var d1 = BI_FV/yt, d2 = (1<<BI_F1)/yt, e = 1<<BI_F2;
-  var i = r.t, j = i-ys, t = (q==null)?nbi():q;
-  y.dlShiftTo(j,t);
-
-  var r_array = r.array;
-  if(r.compareTo(t) >= 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<<i)) > 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))<<BI_DB)|this_array[0];
-}
-
-// (public) return value as byte
-function bnByteValue() {
-  var this_array = this.array;
-  return (this.t==0)?this.s:(this_array[0]<<24)>>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<<t)-1); else x[0] = 0;
-    this.fromString(x,256);
-  }
-}
-
-// (public) convert to bigendian byte array
-function bnToByteArray() {
-  var this_array = this.array;
-  var i = this.t, r = new Array();
-  r[0] = this.s;
-  var p = BI_DB-(i*BI_DB)%8, d, k = 0;
-  if(i-- > 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)-1))<<(8-p);
-        d |= this_array[--i]>>(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<<n)
-function bnpChangeBit(n,op) {
-  var r = BigInteger.ONE.shiftLeft(n);
-  this.bitwiseTo(r,op,r);
-  return r;
-}
-
-// (public) this | (1<<n)
-function bnSetBit(n) { return this.changeBit(n,op_or); }
-
-// (public) this & ~(1<<n)
-function bnClearBit(n) { return this.changeBit(n,op_andnot); }
-
-// (public) this ^ (1<<n)
-function bnFlipBit(n) { return this.changeBit(n,op_xor); }
-
-// (protected) r = this + a
-function bnpAddTo(a,r) {
-  var this_array = this.array;
-  var a_array = a.array;
-  var r_array = r.array;
-  var i = 0, c = 0, m = Math.min(a.t,this.t);
-  while(i < m) {
-    c += this_array[i]+a_array[i];
-    r_array[i++] = c&BI_DM;
-    c >>= 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<<k)-1;
-  g[1] = z.convert(this);
-  if(k > 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<<i)) == 0) {
-      z.sqrTo(r,r2); t = r; r = r2; r2 = t;
-      if(--i < 0) { i = BI_DB-1; --j; }
-    }
-  }
-  return z.revert(r);
-}
-
-// (public) gcd(this,a) (HAC 14.54)
-function bnGCD(a) {
-  var x = (this.s<0)?this.negate():this.clone();
-  var y = (a.s<0)?a.negate():a.clone();
-  if(x.compareTo(y) < 0) { var t = x; x = y; y = t; }
-  var i = x.getLowestSetBit(), g = y.getLowestSetBit();
-  if(g < 0) return x;
-  if(i < g) g = i;
-  if(g > 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
-// <body onClick='rng_seed_time();' onKeyPress='rng_seed_time();'>
-// 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/suite/pts/hostTests/browser/browserlauncher/assets/octane/css/bootstrap-responsive.css b/suite/pts/hostTests/browser/browserlauncher/assets/octane/css/bootstrap-responsive.css
deleted file mode 100644
index 06e55c0..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/css/bootstrap-responsive.css
+++ /dev/null
@@ -1,815 +0,0 @@
-/*!
- * Bootstrap Responsive v2.0.4
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */
-
-.clearfix {
-  *zoom: 1;
-}
-
-.clearfix:before,
-.clearfix:after {
-  display: table;
-  content: "";
-}
-
-.clearfix:after {
-  clear: both;
-}
-
-.hide-text {
-  font: 0/0 a;
-  color: transparent;
-  text-shadow: none;
-  background-color: transparent;
-  border: 0;
-}
-
-.input-block-level {
-  display: block;
-  width: 100%;
-  min-height: 28px;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-      -ms-box-sizing: border-box;
-          box-sizing: border-box;
-}
-
-.hidden {
-  display: none;
-  visibility: hidden;
-}
-
-.visible-phone {
-  display: none !important;
-}
-
-.visible-tablet {
-  display: none !important;
-}
-
-.hidden-desktop {
-  display: none !important;
-}
-
-@media (max-width: 767px) {
-  .visible-phone {
-    display: inherit !important;
-  }
-  .hidden-phone {
-    display: none !important;
-  }
-  .hidden-desktop {
-    display: inherit !important;
-  }
-  .visible-desktop {
-    display: none !important;
-  }
-}
-
-@media (min-width: 768px) and (max-width: 979px) {
-  .visible-tablet {
-    display: inherit !important;
-  }
-  .hidden-tablet {
-    display: none !important;
-  }
-  .hidden-desktop {
-    display: inherit !important;
-  }
-  .visible-desktop {
-    display: none !important ;
-  }
-}
-
-@media (max-width: 480px) {
-  .nav-collapse {
-    -webkit-transform: translate3d(0, 0, 0);
-  }
-  .page-header h1 small {
-    display: block;
-    line-height: 18px;
-  }
-  input[type="checkbox"],
-  input[type="radio"] {
-    border: 1px solid #ccc;
-  }
-  .form-horizontal .control-group > label {
-    float: none;
-    width: auto;
-    padding-top: 0;
-    text-align: left;
-  }
-  .form-horizontal .controls {
-    margin-left: 0;
-  }
-  .form-horizontal .control-list {
-    padding-top: 0;
-  }
-  .form-horizontal .form-actions {
-    padding-right: 10px;
-    padding-left: 10px;
-  }
-  .modal {
-    position: absolute;
-    top: 10px;
-    right: 10px;
-    left: 10px;
-    width: auto;
-    margin: 0;
-  }
-  .modal.fade.in {
-    top: auto;
-  }
-  .modal-header .close {
-    padding: 10px;
-    margin: -10px;
-  }
-  .carousel-caption {
-    position: static;
-  }
-}
-
-@media (max-width: 767px) {
-  body {
-    padding-right: 20px;
-    padding-left: 20px;
-  }
-  .navbar-fixed-top,
-  .navbar-fixed-bottom {
-    margin-right: -20px;
-    margin-left: -20px;
-  }
-  .container-fluid {
-    padding: 0;
-  }
-  .dl-horizontal dt {
-    float: none;
-    width: auto;
-    clear: none;
-    text-align: left;
-  }
-  .dl-horizontal dd {
-    margin-left: 0;
-  }
-  .container {
-    width: auto;
-  }
-  .row-fluid {
-    width: 100%;
-  }
-  .row,
-  .thumbnails {
-    margin-left: 0;
-  }
-  [class*="span"],
-  .row-fluid [class*="span"] {
-    display: block;
-    float: none;
-    width: auto;
-    margin-left: 0;
-  }
-  .input-large,
-  .input-xlarge,
-  .input-xxlarge,
-  input[class*="span"],
-  select[class*="span"],
-  textarea[class*="span"],
-  .uneditable-input {
-    display: block;
-    width: 100%;
-    min-height: 28px;
-    -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-        -ms-box-sizing: border-box;
-            box-sizing: border-box;
-  }
-  .input-prepend input,
-  .input-append input,
-  .input-prepend input[class*="span"],
-  .input-append input[class*="span"] {
-    display: inline-block;
-    width: auto;
-  }
-}
-
-@media (min-width: 768px) and (max-width: 979px) {
-  .row {
-    margin-left: -20px;
-    *zoom: 1;
-  }
-  .row:before,
-  .row:after {
-    display: table;
-    content: "";
-  }
-  .row:after {
-    clear: both;
-  }
-  [class*="span"] {
-    float: left;
-    margin-left: 20px;
-  }
-  .container,
-  .navbar-fixed-top .container,
-  .navbar-fixed-bottom .container {
-    width: 724px;
-  }
-  .span12 {
-    width: 724px;
-  }
-  .span11 {
-    width: 662px;
-  }
-  .span10 {
-    width: 600px;
-  }
-  .span9 {
-    width: 538px;
-  }
-  .span8 {
-    width: 476px;
-  }
-  .span7 {
-    width: 414px;
-  }
-  .span6 {
-    width: 352px;
-  }
-  .span5 {
-    width: 290px;
-  }
-  .span4 {
-    width: 228px;
-  }
-  .span3 {
-    width: 166px;
-  }
-  .span2 {
-    width: 104px;
-  }
-  .span1 {
-    width: 42px;
-  }
-  .offset12 {
-    margin-left: 764px;
-  }
-  .offset11 {
-    margin-left: 702px;
-  }
-  .offset10 {
-    margin-left: 640px;
-  }
-  .offset9 {
-    margin-left: 578px;
-  }
-  .offset8 {
-    margin-left: 516px;
-  }
-  .offset7 {
-    margin-left: 454px;
-  }
-  .offset6 {
-    margin-left: 392px;
-  }
-  .offset5 {
-    margin-left: 330px;
-  }
-  .offset4 {
-    margin-left: 268px;
-  }
-  .offset3 {
-    margin-left: 206px;
-  }
-  .offset2 {
-    margin-left: 144px;
-  }
-  .offset1 {
-    margin-left: 82px;
-  }
-  .row-fluid {
-    width: 100%;
-    *zoom: 1;
-  }
-  .row-fluid:before,
-  .row-fluid:after {
-    display: table;
-    content: "";
-  }
-  .row-fluid:after {
-    clear: both;
-  }
-  .row-fluid [class*="span"] {
-    display: block;
-    float: left;
-    width: 100%;
-    min-height: 28px;
-    margin-left: 2.762430939%;
-    *margin-left: 2.709239449638298%;
-    -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-        -ms-box-sizing: border-box;
-            box-sizing: border-box;
-  }
-  .row-fluid [class*="span"]:first-child {
-    margin-left: 0;
-  }
-  .row-fluid .span12 {
-    width: 99.999999993%;
-    *width: 99.9468085036383%;
-  }
-  .row-fluid .span11 {
-    width: 91.436464082%;
-    *width: 91.38327259263829%;
-  }
-  .row-fluid .span10 {
-    width: 82.87292817100001%;
-    *width: 82.8197366816383%;
-  }
-  .row-fluid .span9 {
-    width: 74.30939226%;
-    *width: 74.25620077063829%;
-  }
-  .row-fluid .span8 {
-    width: 65.74585634900001%;
-    *width: 65.6926648596383%;
-  }
-  .row-fluid .span7 {
-    width: 57.182320438000005%;
-    *width: 57.129128948638304%;
-  }
-  .row-fluid .span6 {
-    width: 48.618784527%;
-    *width: 48.5655930376383%;
-  }
-  .row-fluid .span5 {
-    width: 40.055248616%;
-    *width: 40.0020571266383%;
-  }
-  .row-fluid .span4 {
-    width: 31.491712705%;
-    *width: 31.4385212156383%;
-  }
-  .row-fluid .span3 {
-    width: 22.928176794%;
-    *width: 22.874985304638297%;
-  }
-  .row-fluid .span2 {
-    width: 14.364640883%;
-    *width: 14.311449393638298%;
-  }
-  .row-fluid .span1 {
-    width: 5.801104972%;
-    *width: 5.747913482638298%;
-  }
-  input,
-  textarea,
-  .uneditable-input {
-    margin-left: 0;
-  }
-  input.span12,
-  textarea.span12,
-  .uneditable-input.span12 {
-    width: 714px;
-  }
-  input.span11,
-  textarea.span11,
-  .uneditable-input.span11 {
-    width: 652px;
-  }
-  input.span10,
-  textarea.span10,
-  .uneditable-input.span10 {
-    width: 590px;
-  }
-  input.span9,
-  textarea.span9,
-  .uneditable-input.span9 {
-    width: 528px;
-  }
-  input.span8,
-  textarea.span8,
-  .uneditable-input.span8 {
-    width: 466px;
-  }
-  input.span7,
-  textarea.span7,
-  .uneditable-input.span7 {
-    width: 404px;
-  }
-  input.span6,
-  textarea.span6,
-  .uneditable-input.span6 {
-    width: 342px;
-  }
-  input.span5,
-  textarea.span5,
-  .uneditable-input.span5 {
-    width: 280px;
-  }
-  input.span4,
-  textarea.span4,
-  .uneditable-input.span4 {
-    width: 218px;
-  }
-  input.span3,
-  textarea.span3,
-  .uneditable-input.span3 {
-    width: 156px;
-  }
-  input.span2,
-  textarea.span2,
-  .uneditable-input.span2 {
-    width: 94px;
-  }
-  input.span1,
-  textarea.span1,
-  .uneditable-input.span1 {
-    width: 32px;
-  }
-}
-
-@media (min-width: 1200px) {
-  .row {
-    margin-left: -30px;
-    *zoom: 1;
-  }
-  .row:before,
-  .row:after {
-    display: table;
-    content: "";
-  }
-  .row:after {
-    clear: both;
-  }
-  [class*="span"] {
-    float: left;
-    margin-left: 30px;
-  }
-  .container,
-  .navbar-fixed-top .container,
-  .navbar-fixed-bottom .container {
-    width: 1170px;
-  }
-  .span12 {
-    width: 1170px;
-  }
-  .span11 {
-    width: 1070px;
-  }
-  .span10 {
-    width: 970px;
-  }
-  .span9 {
-    width: 870px;
-  }
-  .span8 {
-    width: 770px;
-  }
-  .span7 {
-    width: 670px;
-  }
-  .span6 {
-    width: 570px;
-  }
-  .span5 {
-    width: 470px;
-  }
-  .span4 {
-    width: 370px;
-  }
-  .span3 {
-    width: 270px;
-  }
-  .span2 {
-    width: 170px;
-  }
-  .span1 {
-    width: 70px;
-  }
-  .offset12 {
-    margin-left: 1230px;
-  }
-  .offset11 {
-    margin-left: 1130px;
-  }
-  .offset10 {
-    margin-left: 1030px;
-  }
-  .offset9 {
-    margin-left: 930px;
-  }
-  .offset8 {
-    margin-left: 830px;
-  }
-  .offset7 {
-    margin-left: 730px;
-  }
-  .offset6 {
-    margin-left: 630px;
-  }
-  .offset5 {
-    margin-left: 530px;
-  }
-  .offset4 {
-    margin-left: 430px;
-  }
-  .offset3 {
-    margin-left: 330px;
-  }
-  .offset2 {
-    margin-left: 230px;
-  }
-  .offset1 {
-    margin-left: 130px;
-  }
-  .row-fluid {
-    width: 100%;
-    *zoom: 1;
-  }
-  .row-fluid:before,
-  .row-fluid:after {
-    display: table;
-    content: "";
-  }
-  .row-fluid:after {
-    clear: both;
-  }
-  .row-fluid [class*="span"] {
-    display: block;
-    float: left;
-    width: 100%;
-    min-height: 28px;
-    margin-left: 2.564102564%;
-    *margin-left: 2.510911074638298%;
-    -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-        -ms-box-sizing: border-box;
-            box-sizing: border-box;
-  }
-  .row-fluid [class*="span"]:first-child {
-    margin-left: 0;
-  }
-  .row-fluid .span12 {
-    width: 100%;
-    *width: 99.94680851063829%;
-  }
-  .row-fluid .span11 {
-    width: 91.45299145300001%;
-    *width: 91.3997999636383%;
-  }
-  .row-fluid .span10 {
-    width: 82.905982906%;
-    *width: 82.8527914166383%;
-  }
-  .row-fluid .span9 {
-    width: 74.358974359%;
-    *width: 74.30578286963829%;
-  }
-  .row-fluid .span8 {
-    width: 65.81196581200001%;
-    *width: 65.7587743226383%;
-  }
-  .row-fluid .span7 {
-    width: 57.264957265%;
-    *width: 57.2117657756383%;
-  }
-  .row-fluid .span6 {
-    width: 48.717948718%;
-    *width: 48.6647572286383%;
-  }
-  .row-fluid .span5 {
-    width: 40.170940171000005%;
-    *width: 40.117748681638304%;
-  }
-  .row-fluid .span4 {
-    width: 31.623931624%;
-    *width: 31.5707401346383%;
-  }
-  .row-fluid .span3 {
-    width: 23.076923077%;
-    *width: 23.0237315876383%;
-  }
-  .row-fluid .span2 {
-    width: 14.529914530000001%;
-    *width: 14.4767230406383%;
-  }
-  .row-fluid .span1 {
-    width: 5.982905983%;
-    *width: 5.929714493638298%;
-  }
-  input,
-  textarea,
-  .uneditable-input {
-    margin-left: 0;
-  }
-  input.span12,
-  textarea.span12,
-  .uneditable-input.span12 {
-    width: 1160px;
-  }
-  input.span11,
-  textarea.span11,
-  .uneditable-input.span11 {
-    width: 1060px;
-  }
-  input.span10,
-  textarea.span10,
-  .uneditable-input.span10 {
-    width: 960px;
-  }
-  input.span9,
-  textarea.span9,
-  .uneditable-input.span9 {
-    width: 860px;
-  }
-  input.span8,
-  textarea.span8,
-  .uneditable-input.span8 {
-    width: 760px;
-  }
-  input.span7,
-  textarea.span7,
-  .uneditable-input.span7 {
-    width: 660px;
-  }
-  input.span6,
-  textarea.span6,
-  .uneditable-input.span6 {
-    width: 560px;
-  }
-  input.span5,
-  textarea.span5,
-  .uneditable-input.span5 {
-    width: 460px;
-  }
-  input.span4,
-  textarea.span4,
-  .uneditable-input.span4 {
-    width: 360px;
-  }
-  input.span3,
-  textarea.span3,
-  .uneditable-input.span3 {
-    width: 260px;
-  }
-  input.span2,
-  textarea.span2,
-  .uneditable-input.span2 {
-    width: 160px;
-  }
-  input.span1,
-  textarea.span1,
-  .uneditable-input.span1 {
-    width: 60px;
-  }
-  .thumbnails {
-    margin-left: -30px;
-  }
-  .thumbnails > li {
-    margin-left: 30px;
-  }
-  .row-fluid .thumbnails {
-    margin-left: 0;
-  }
-}
-
-@media (max-width: 979px) {
-  body {
-    padding-top: 0;
-  }
-  .navbar-fixed-top,
-  .navbar-fixed-bottom {
-    position: static;
-  }
-  .navbar-fixed-top {
-    margin-bottom: 18px;
-  }
-  .navbar-fixed-bottom {
-    margin-top: 18px;
-  }
-  .navbar-fixed-top .navbar-inner,
-  .navbar-fixed-bottom .navbar-inner {
-    padding: 5px;
-  }
-  .navbar .container {
-    width: auto;
-    padding: 0;
-  }
-  .navbar .brand {
-    padding-right: 10px;
-    padding-left: 10px;
-    margin: 0 0 0 -5px;
-  }
-  .nav-collapse {
-    clear: both;
-  }
-  .nav-collapse .nav {
-    float: none;
-    margin: 0 0 9px;
-  }
-  .nav-collapse .nav > li {
-    float: none;
-  }
-  .nav-collapse .nav > li > a {
-    margin-bottom: 2px;
-  }
-  .nav-collapse .nav > .divider-vertical {
-    display: none;
-  }
-  .nav-collapse .nav .nav-header {
-    color: #999999;
-    text-shadow: none;
-  }
-  .nav-collapse .nav > li > a,
-  .nav-collapse .dropdown-menu a {
-    padding: 6px 15px;
-    font-weight: bold;
-    color: #999999;
-    -webkit-border-radius: 3px;
-       -moz-border-radius: 3px;
-            border-radius: 3px;
-  }
-  .nav-collapse .btn {
-    padding: 4px 10px 4px;
-    font-weight: normal;
-    -webkit-border-radius: 4px;
-       -moz-border-radius: 4px;
-            border-radius: 4px;
-  }
-  .nav-collapse .dropdown-menu li + li a {
-    margin-bottom: 2px;
-  }
-  .nav-collapse .nav > li > a:hover,
-  .nav-collapse .dropdown-menu a:hover {
-    background-color: #222222;
-  }
-  .nav-collapse.in .btn-group {
-    padding: 0;
-    margin-top: 5px;
-  }
-  .nav-collapse .dropdown-menu {
-    position: static;
-    top: auto;
-    left: auto;
-    display: block;
-    float: none;
-    max-width: none;
-    padding: 0;
-    margin: 0 15px;
-    background-color: transparent;
-    border: none;
-    -webkit-border-radius: 0;
-       -moz-border-radius: 0;
-            border-radius: 0;
-    -webkit-box-shadow: none;
-       -moz-box-shadow: none;
-            box-shadow: none;
-  }
-  .nav-collapse .dropdown-menu:before,
-  .nav-collapse .dropdown-menu:after {
-    display: none;
-  }
-  .nav-collapse .dropdown-menu .divider {
-    display: none;
-  }
-  .nav-collapse .navbar-form,
-  .nav-collapse .navbar-search {
-    float: none;
-    padding: 9px 15px;
-    margin: 9px 0;
-    border-top: 1px solid #222222;
-    border-bottom: 1px solid #222222;
-    -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
-       -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
-            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
-  }
-  .navbar .nav-collapse .nav.pull-right {
-    float: none;
-    margin-left: 0;
-  }
-  .nav-collapse,
-  .nav-collapse.collapse {
-    height: 0;
-    overflow: hidden;
-  }
-  .navbar .btn-navbar {
-    display: block;
-  }
-  .navbar-static .navbar-inner {
-    padding-right: 10px;
-    padding-left: 10px;
-  }
-}
-
-@media (min-width: 980px) {
-  .nav-collapse.collapse {
-    height: auto !important;
-    overflow: visible !important;
-  }
-}
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/css/bootstrap.css b/suite/pts/hostTests/browser/browserlauncher/assets/octane/css/bootstrap.css
deleted file mode 100644
index cca3010..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/css/bootstrap.css
+++ /dev/null
@@ -1,4214 +0,0 @@
-/* Portions copyright 2012 Google, Inc */
-/*!
- * Bootstrap v2.0.4
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */
-
-/* added styles by Octane */
-
-span.label-simple {
-font-size: 12px; 
-font-weight: bold; 
-color: #1a1515;
-}
-
-p.p-result {
-    text-align:right;
-    font-size:20px;
-}
-
-div.box {
-  background-color: #B8B7B6;
-  height: 80px;
-  margin-top: 8px;
-  margin-bottom: 8px;
-  padding: 5px;
-  font-size: 20px;
-  position: relative;
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-
-}
-
-span.new {font-size:14px; color: #DE0000;}
-
-div.warning-header {
-    font-weight: bold;
-    font-size: 22px;
-    color: #A2412D;
-}
-
-/* original css produced via lavishbootstrap - minor tweaks below */
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-nav,
-section {
-  display: block;
-}
-audio,
-canvas,
-video {
-  display: inline-block;
-  *display: inline;
-  *zoom: 1;
-}
-audio:not([controls]) {
-  display: none;
-}
-html {
-  font-size: 100%;
-  -webkit-text-size-adjust: 100%;
-  -ms-text-size-adjust: 100%;
-}
-a:focus {
-  outline: thin dotted #333;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
-a:hover,
-a:active {
-  outline: 0;
-}
-sub,
-sup {
-  position: relative;
-  font-size: 75%;
-  line-height: 0;
-  vertical-align: baseline;
-}
-sup {
-  top: -0.5em;
-}
-sub {
-  bottom: -0.25em;
-}
-img {
-  max-width: 100%;
-  vertical-align: middle;
-  border: 0;
-  -ms-interpolation-mode: bicubic;
-}
-button,
-input,
-select,
-textarea {
-  margin: 0;
-  font-size: 100%;
-  vertical-align: middle;
-}
-button,
-input {
-  *overflow: visible;
-  line-height: normal;
-}
-button::-moz-focus-inner,
-input::-moz-focus-inner {
-  padding: 0;
-  border: 0;
-}
-button,
-input[type="button"],
-input[type="reset"],
-input[type="submit"] {
-  cursor: pointer;
-  -webkit-appearance: button;
-}
-input[type="search"] {
-  -webkit-box-sizing: content-box;
-  -moz-box-sizing: content-box;
-  box-sizing: content-box;
-  -webkit-appearance: textfield;
-}
-input[type="search"]::-webkit-search-decoration,
-input[type="search"]::-webkit-search-cancel-button {
-  -webkit-appearance: none;
-}
-textarea {
-  overflow: auto;
-  vertical-align: top;
-}
-.clearfix {
-  *zoom: 1;
-}
-.clearfix:before,
-.clearfix:after {
-  display: table;
-  content: "";
-}
-.clearfix:after {
-  clear: both;
-}
-.hide-text {
-  font: 0/0 a;
-  color: transparent;
-  text-shadow: none;
-  background-color: transparent;
-  border: 0;
-}
-.input-block-level {
-  display: block;
-  width: 100%;
-  min-height: 28px;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -ms-box-sizing: border-box;
-  box-sizing: border-box;
-}
-body {
-  margin: 0;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  line-height: 18px;
-  color: #5e3534;
-  background-color: #1a1515;
-}
-a {
-  color: #E26128;
-  text-decoration: none;
-}
-a:hover {
-  color: #a74317;
-  text-decoration: underline;
-}
-.row {
-  margin-left: -20px;
-  *zoom: 1;
-}
-.row:before,
-.row:after {
-  display: table;
-  content: "";
-}
-.row:after {
-  clear: both;
-}
-[class*="span"] {
-  float: left;
-  margin-left: 20px;
-}
-.container,
-.navbar-fixed-top .container,
-.navbar-fixed-bottom .container {
-  width: 940px;
-}
-.span12 {
-  width: 940px;
-}
-.span11 {
-  width: 860px;
-}
-.span10 {
-  width: 780px;
-}
-.span9 {
-  width: 700px;
-}
-.span8 {
-  width: 620px;
-}
-.span7 {
-  width: 540px;
-}
-.span6 {
-  width: 460px;
-}
-.span5 {
-  width: 380px;
-}
-.span4 {
-  width: 300px;
-}
-.span3 {
-  width: 220px;
-}
-.span2 {
-  width: 140px;
-}
-.span1 {
-  width: 60px;
-}
-.offset12 {
-  margin-left: 980px;
-}
-.offset11 {
-  margin-left: 900px;
-}
-.offset10 {
-  margin-left: 820px;
-}
-.offset9 {
-  margin-left: 740px;
-}
-.offset8 {
-  margin-left: 660px;
-}
-.offset7 {
-  margin-left: 580px;
-}
-.offset6 {
-  margin-left: 500px;
-}
-.offset5 {
-  margin-left: 420px;
-}
-.offset4 {
-  margin-left: 340px;
-}
-.offset3 {
-  margin-left: 260px;
-}
-.offset2 {
-  margin-left: 180px;
-}
-.offset1 {
-  margin-left: 100px;
-}
-.row-fluid {
-  width: 100%;
-  *zoom: 1;
-}
-.row-fluid:before,
-.row-fluid:after {
-  display: table;
-  content: "";
-}
-.row-fluid:after {
-  clear: both;
-}
-.row-fluid [class*="span"] {
-  display: block;
-  width: 100%;
-  min-height: 28px;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -ms-box-sizing: border-box;
-  box-sizing: border-box;
-  float: left;
-  margin-left: 2.127659574%;
-  *margin-left: 2.0744680846382977%;
-}
-.row-fluid [class*="span"]:first-child {
-  margin-left: 0;
-}
-.row-fluid .span12 {
-  width: 99.99999998999999%;
-  *width: 99.94680850063828%;
-}
-.row-fluid .span11 {
-  width: 91.489361693%;
-  *width: 91.4361702036383%;
-}
-.row-fluid .span10 {
-  width: 82.97872339599999%;
-  *width: 82.92553190663828%;
-}
-.row-fluid .span9 {
-  width: 74.468085099%;
-  *width: 74.4148936096383%;
-}
-.row-fluid .span8 {
-  width: 65.95744680199999%;
-  *width: 65.90425531263828%;
-}
-.row-fluid .span7 {
-  width: 57.446808505%;
-  *width: 57.3936170156383%;
-}
-.row-fluid .span6 {
-  width: 48.93617020799999%;
-  *width: 48.88297871863829%;
-}
-.row-fluid .span5 {
-  width: 40.425531911%;
-  *width: 40.3723404216383%;
-}
-.row-fluid .span4 {
-  width: 31.914893614%;
-  *width: 31.8617021246383%;
-}
-.row-fluid .span3 {
-  width: 23.404255317%;
-  *width: 23.3510638276383%;
-}
-.row-fluid .span2 {
-  width: 14.89361702%;
-  *width: 14.8404255306383%;
-}
-.row-fluid .span1 {
-  width: 6.382978723%;
-  *width: 6.329787233638298%;
-}
-.container {
-  margin-right: auto;
-  margin-left: auto;
-  *zoom: 1;
-}
-.container:before,
-.container:after {
-  display: table;
-  content: "";
-}
-.container:after {
-  clear: both;
-}
-.container-fluid {
-  padding-right: 20px;
-  padding-left: 20px;
-  *zoom: 1;
-}
-.container-fluid:before,
-.container-fluid:after {
-  display: table;
-  content: "";
-}
-.container-fluid:after {
-  clear: both;
-}
-p {
-  margin: 0 0 9px;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  line-height: 18px;
-}
-p small {
-  font-size: 11px;
-  color: #E26128;
-}
-.lead {
-  margin-bottom: 18px;
-  font-size: 20px;
-  font-weight: 200;
-  line-height: 27px;
-}
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-  margin: 0;
-  font-family: inherit;
-  font-weight: bold;
-  color: inherit;
-  text-rendering: optimizelegibility;
-}
-h1 small,
-h2 small,
-h3 small,
-h4 small,
-h5 small,
-h6 small {
-  font-weight: normal;
-  color: #E26128;
-}
-h1 {
-  font-size: 30px;
-  line-height: 36px;
-}
-h1 small {
-  font-size: 18px;
-}
-h2 {
-  font-size: 24px;
-  line-height: 36px;
-}
-h2 small {
-  font-size: 18px;
-}
-h3 {
-  font-size: 18px;
-  line-height: 27px;
-}
-h3 small {
-  font-size: 14px;
-}
-h4,
-h5,
-h6 {
-  line-height: 18px;
-}
-h4 {
-  font-size: 14px;
-}
-h4 small {
-  font-size: 12px;
-}
-h5 {
-  font-size: 12px;
-}
-h6 {
-  font-size: 11px;
-  color: #E26128;
-  text-transform: uppercase;
-}
-.page-header {
-  padding-bottom: 17px;
-  margin: 18px 0;
-  border-bottom: 1px solid #eb9742;
-}
-.page-header h1 {
-  line-height: 1;
-}
-ul,
-ol {
-  padding: 0;
-  margin: 0 0 9px 25px;
-}
-ul ul,
-ul ol,
-ol ol,
-ol ul {
-  margin-bottom: 0;
-}
-ul {
-  list-style: disc;
-}
-ol {
-  list-style: decimal;
-}
-li {
-  line-height: 18px;
-}
-ul.unstyled,
-ol.unstyled {
-  margin-left: 0;
-  list-style: none;
-}
-dl {
-  margin-bottom: 18px;
-}
-dt,
-dd {
-  line-height: 18px;
-}
-dt {
-  font-weight: bold;
-  line-height: 17px;
-}
-dd {
-  margin-left: 9px;
-}
-.dl-horizontal dt {
-  float: left;
-  width: 120px;
-  clear: left;
-  text-align: right;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.dl-horizontal dd {
-  margin-left: 130px;
-}
-hr {
-  margin: 18px 0;
-  border: 0;
-  border-top: 1px solid #eb9742;
-  border-bottom: 1px solid #1a1515;
-}
-strong {
-  font-weight: bold;
-}
-em {
-  font-style: italic;
-}
-.muted {
-  color: #E26128;
-}
-abbr[title] {
-  cursor: help;
-  border-bottom: 1px dotted #ddd;
-}
-abbr.initialism {
-  font-size: 90%;
-  text-transform: uppercase;
-}
-blockquote {
-  padding: 0 0 0 15px;
-  margin: 0 0 18px;
-  border-left: 5px solid #eb9742;
-}
-blockquote p {
-  margin-bottom: 0;
-  font-size: 16px;
-  font-weight: 300;
-  line-height: 22.5px;
-}
-blockquote small {
-  display: block;
-  line-height: 18px;
-  color: #E26128;
-}
-blockquote small:before {
-  content: '\2014 \00A0';
-}
-blockquote.pull-right {
-  float: right;
-  padding-right: 15px;
-  padding-left: 0;
-  border-right: 5px solid #eb9742;
-  border-left: 0;
-}
-blockquote.pull-right p,
-blockquote.pull-right small {
-  text-align: right;
-}
-q:before,
-q:after,
-blockquote:before,
-blockquote:after {
-  content: "";
-}
-address {
-  display: block;
-  margin-bottom: 18px;
-  font-style: normal;
-  line-height: 18px;
-}
-small {
-  font-size: 100%;
-}
-cite {
-  font-style: normal;
-}
-code,
-pre {
-  padding: 0 3px 2px;
-  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
-  font-size: 12px;
-  color: #5e3534;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-}
-code {
-  padding: 2px 4px;
-  color: #d14;
-  background-color: #f7f7f9;
-  border: 1px solid #e1e1e8;
-}
-pre {
-  display: block;
-  padding: 8.5px;
-  margin: 0 0 9px;
-  font-size: 12.025px;
-  line-height: 18px;
-  word-break: break-all;
-  word-wrap: break-word;
-  white-space: pre;
-  white-space: pre-wrap;
-  background-color: #f5f5f5;
-  border: 1px solid #ccc;
-  border: 1px solid rgba(0, 0, 0, 0.15);
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-pre.prettyprint {
-  margin-bottom: 18px;
-}
-pre code {
-  padding: 0;
-  color: inherit;
-  background-color: transparent;
-  border: 0;
-}
-.pre-scrollable {
-  max-height: 340px;
-  overflow-y: scroll;
-}
-form {
-  margin: 0 0 18px;
-}
-fieldset {
-  padding: 0;
-  margin: 0;
-  border: 0;
-}
-legend {
-  display: block;
-  width: 100%;
-  padding: 0;
-  margin-bottom: 27px;
-  font-size: 19.5px;
-  line-height: 36px;
-  color: #5e3534;
-  border: 0;
-  border-bottom: 1px solid #eee;
-}
-legend small {
-  font-size: 13.5px;
-  color: #E26128;
-}
-label,
-input,
-button,
-select,
-textarea {
-  font-size: 13px;
-  font-weight: normal;
-  line-height: 18px;
-}
-input,
-button,
-select,
-textarea {
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-}
-label {
-  display: block;
-  margin-bottom: 5px;
-  color: #5e3534;
-}
-input,
-textarea,
-select,
-.uneditable-input {
-  display: inline-block;
-  width: 210px;
-  height: 18px;
-  padding: 4px;
-  margin-bottom: 9px;
-  font-size: 13px;
-  line-height: 18px;
-  color: #7b7e8c;
-  background-color: '#fff';
-  border: 1px solid #cccccc;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-}
-.uneditable-textarea {
-  width: auto;
-  height: auto;
-}
-label input,
-label textarea,
-label select {
-  display: block;
-}
-input[type="image"],
-input[type="checkbox"],
-input[type="radio"] {
-  width: auto;
-  height: auto;
-  padding: 0;
-  margin: 3px 0;
-  *margin-top: 0;
-  /* IE7 */
-
-  line-height: normal;
-  cursor: pointer;
-  background-color: transparent;
-  border: 0 \9;
-  /* IE9 and down */
-
-  -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
-}
-input[type="image"] {
-  border: 0;
-}
-input[type="file"] {
-  width: auto;
-  padding: initial;
-  line-height: initial;
-  background-color: '#fff';
-  background-color: initial;
-  border: initial;
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-}
-input[type="button"],
-input[type="reset"],
-input[type="submit"] {
-  width: auto;
-  height: auto;
-}
-select,
-input[type="file"] {
-  height: 28px;
-  /* In IE7, the height of the select element cannot be changed by height, only font-size */
-
-  *margin-top: 4px;
-  /* For IE7, add top margin to align select with labels */
-
-  line-height: 28px;
-}
-input[type="file"] {
-  line-height: 18px \9;
-}
-select {
-  width: 220px;
-  background-color: '#fff';
-}
-select[multiple],
-select[size] {
-  height: auto;
-}
-input[type="image"] {
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-}
-textarea {
-  height: auto;
-}
-input[type="hidden"] {
-  display: none;
-}
-.radio,
-.checkbox {
-  min-height: 18px;
-  padding-left: 18px;
-}
-.radio input[type="radio"],
-.checkbox input[type="checkbox"] {
-  float: left;
-  margin-left: -18px;
-}
-.controls > .radio:first-child,
-.controls > .checkbox:first-child {
-  padding-top: 5px;
-}
-.radio.inline,
-.checkbox.inline {
-  display: inline-block;
-  padding-top: 5px;
-  margin-bottom: 0;
-  vertical-align: middle;
-}
-.radio.inline + .radio.inline,
-.checkbox.inline + .checkbox.inline {
-  margin-left: 10px;
-}
-input,
-textarea {
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
-  -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
-  -ms-transition: border linear 0.2s, box-shadow linear 0.2s;
-  -o-transition: border linear 0.2s, box-shadow linear 0.2s;
-  transition: border linear 0.2s, box-shadow linear 0.2s;
-}
-input:focus,
-textarea:focus {
-  border-color: rgba(82, 168, 236, 0.8);
-  outline: 0;
-  outline: thin dotted \9;
-  /* IE6-9 */
-
-  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
-  -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
-  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
-}
-input[type="file"]:focus,
-input[type="radio"]:focus,
-input[type="checkbox"]:focus,
-select:focus {
-  outline: thin dotted #333;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-}
-.input-mini {
-  width: 60px;
-}
-.input-small {
-  width: 90px;
-}
-.input-medium {
-  width: 150px;
-}
-.input-large {
-  width: 210px;
-}
-.input-xlarge {
-  width: 270px;
-}
-.input-xxlarge {
-  width: 530px;
-}
-input[class*="span"],
-select[class*="span"],
-textarea[class*="span"],
-.uneditable-input[class*="span"],
-.row-fluid input[class*="span"],
-.row-fluid select[class*="span"],
-.row-fluid textarea[class*="span"],
-.row-fluid .uneditable-input[class*="span"] {
-  float: none;
-  margin-left: 0;
-}
-input,
-textarea,
-.uneditable-input {
-  margin-left: 0;
-}
-input.span12, textarea.span12, .uneditable-input.span12 {
-  width: 930px;
-}
-input.span11, textarea.span11, .uneditable-input.span11 {
-  width: 850px;
-}
-input.span10, textarea.span10, .uneditable-input.span10 {
-  width: 770px;
-}
-input.span9, textarea.span9, .uneditable-input.span9 {
-  width: 690px;
-}
-input.span8, textarea.span8, .uneditable-input.span8 {
-  width: 610px;
-}
-input.span7, textarea.span7, .uneditable-input.span7 {
-  width: 530px;
-}
-input.span6, textarea.span6, .uneditable-input.span6 {
-  width: 450px;
-}
-input.span5, textarea.span5, .uneditable-input.span5 {
-  width: 370px;
-}
-input.span4, textarea.span4, .uneditable-input.span4 {
-  width: 290px;
-}
-input.span3, textarea.span3, .uneditable-input.span3 {
-  width: 210px;
-}
-input.span2, textarea.span2, .uneditable-input.span2 {
-  width: 130px;
-}
-input.span1, textarea.span1, .uneditable-input.span1 {
-  width: 50px;
-}
-input[disabled],
-select[disabled],
-textarea[disabled],
-input[readonly],
-select[readonly],
-textarea[readonly] {
-  cursor: not-allowed;
-  background-color: #eb9742;
-  border-color: #ddd;
-}
-input[type="radio"][disabled],
-input[type="checkbox"][disabled],
-input[type="radio"][readonly],
-input[type="checkbox"][readonly] {
-  background-color: transparent;
-}
-.control-group.warning > label,
-.control-group.warning .help-block,
-.control-group.warning .help-inline {
-  color: #c09853;
-}
-.control-group.warning input,
-.control-group.warning select,
-.control-group.warning textarea {
-  color: #c09853;
-  border-color: #c09853;
-}
-.control-group.warning input:focus,
-.control-group.warning select:focus,
-.control-group.warning textarea:focus {
-  border-color: #a47e3c;
-  -webkit-box-shadow: 0 0 6px #dbc59e;
-  -moz-box-shadow: 0 0 6px #dbc59e;
-  box-shadow: 0 0 6px #dbc59e;
-}
-.control-group.warning .input-prepend .add-on,
-.control-group.warning .input-append .add-on {
-  color: #c09853;
-  background-color: #fcf8e3;
-  border-color: #c09853;
-}
-.control-group.error > label,
-.control-group.error .help-block,
-.control-group.error .help-inline {
-  color: #b94a48;
-}
-.control-group.error input,
-.control-group.error select,
-.control-group.error textarea {
-  color: #b94a48;
-  border-color: #b94a48;
-}
-.control-group.error input:focus,
-.control-group.error select:focus,
-.control-group.error textarea:focus {
-  border-color: #953b39;
-  -webkit-box-shadow: 0 0 6px #d59392;
-  -moz-box-shadow: 0 0 6px #d59392;
-  box-shadow: 0 0 6px #d59392;
-}
-.control-group.error .input-prepend .add-on,
-.control-group.error .input-append .add-on {
-  color: #b94a48;
-  background-color: #f2dede;
-  border-color: #b94a48;
-}
-.control-group.success > label,
-.control-group.success .help-block,
-.control-group.success .help-inline {
-  color: #468847;
-}
-.control-group.success input,
-.control-group.success select,
-.control-group.success textarea {
-  color: #468847;
-  border-color: #468847;
-}
-.control-group.success input:focus,
-.control-group.success select:focus,
-.control-group.success textarea:focus {
-  border-color: #356635;
-  -webkit-box-shadow: 0 0 6px #7aba7b;
-  -moz-box-shadow: 0 0 6px #7aba7b;
-  box-shadow: 0 0 6px #7aba7b;
-}
-.control-group.success .input-prepend .add-on,
-.control-group.success .input-append .add-on {
-  color: #468847;
-  background-color: #dff0d8;
-  border-color: #468847;
-}
-input:focus:required:invalid,
-textarea:focus:required:invalid,
-select:focus:required:invalid {
-  color: #b94a48;
-  border-color: #ee5f5b;
-}
-input:focus:required:invalid:focus,
-textarea:focus:required:invalid:focus,
-select:focus:required:invalid:focus {
-  border-color: #e9322d;
-  -webkit-box-shadow: 0 0 6px #f8b9b7;
-  -moz-box-shadow: 0 0 6px #f8b9b7;
-  box-shadow: 0 0 6px #f8b9b7;
-}
-.form-actions {
-  padding: 17px 20px 18px;
-  margin-top: 18px;
-  margin-bottom: 18px;
-  background-color: #f5f5f5;
-  border-top: 1px solid #ddd;
-  *zoom: 1;
-}
-.form-actions:before,
-.form-actions:after {
-  display: table;
-  content: "";
-}
-.form-actions:after {
-  clear: both;
-}
-.uneditable-input {
-  overflow: hidden;
-  white-space: nowrap;
-  cursor: not-allowed;
-  background-color: '#fff';
-  border-color: #eee;
-  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
-  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
-  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
-}
-:-moz-placeholder {
-  color: #E26128;
-}
-::-webkit-input-placeholder {
-  color: #E26128;
-}
-.help-block,
-.help-inline {
-  color: #7b7e8c;
-}
-.help-block {
-  display: block;
-  margin-bottom: 9px;
-}
-.help-inline {
-  display: inline-block;
-  *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
-  vertical-align: middle;
-  padding-left: 5px;
-}
-.input-prepend,
-.input-append {
-  margin-bottom: 5px;
-}
-.input-prepend input,
-.input-append input,
-.input-prepend select,
-.input-append select,
-.input-prepend .uneditable-input,
-.input-append .uneditable-input {
-  position: relative;
-  margin-bottom: 0;
-  *margin-left: 0;
-  vertical-align: middle;
-  -webkit-border-radius: 0 3px 3px 0;
-  -moz-border-radius: 0 3px 3px 0;
-  border-radius: 0 3px 3px 0;
-}
-.input-prepend input:focus,
-.input-append input:focus,
-.input-prepend select:focus,
-.input-append select:focus,
-.input-prepend .uneditable-input:focus,
-.input-append .uneditable-input:focus {
-  z-index: 2;
-}
-.input-prepend .uneditable-input,
-.input-append .uneditable-input {
-  border-left-color: #ccc;
-}
-.input-prepend .add-on,
-.input-append .add-on {
-  display: inline-block;
-  width: auto;
-  height: 18px;
-  min-width: 16px;
-  padding: 4px 5px;
-  font-weight: normal;
-  line-height: 18px;
-  text-align: center;
-  text-shadow: 0 1px 0 #1a1515;
-  vertical-align: middle;
-  background-color: #eb9742;
-  border: 1px solid #ccc;
-}
-.input-prepend .add-on,
-.input-append .add-on,
-.input-prepend .btn,
-.input-append .btn {
-  margin-left: -1px;
-  -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
-}
-.input-prepend .active,
-.input-append .active {
-  background-color: #a9dba9;
-  border-color: #46a546;
-}
-.input-prepend .add-on,
-.input-prepend .btn {
-  margin-right: -1px;
-}
-.input-prepend .add-on:first-child,
-.input-prepend .btn:first-child {
-  -webkit-border-radius: 3px 0 0 3px;
-  -moz-border-radius: 3px 0 0 3px;
-  border-radius: 3px 0 0 3px;
-}
-.input-append input,
-.input-append select,
-.input-append .uneditable-input {
-  -webkit-border-radius: 3px 0 0 3px;
-  -moz-border-radius: 3px 0 0 3px;
-  border-radius: 3px 0 0 3px;
-}
-.input-append .uneditable-input {
-  border-right-color: #ccc;
-  border-left-color: #eee;
-}
-.input-append .add-on:last-child,
-.input-append .btn:last-child {
-  -webkit-border-radius: 0 3px 3px 0;
-  -moz-border-radius: 0 3px 3px 0;
-  border-radius: 0 3px 3px 0;
-}
-.input-prepend.input-append input,
-.input-prepend.input-append select,
-.input-prepend.input-append .uneditable-input {
-  -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
-}
-.input-prepend.input-append .add-on:first-child,
-.input-prepend.input-append .btn:first-child {
-  margin-right: -1px;
-  -webkit-border-radius: 3px 0 0 3px;
-  -moz-border-radius: 3px 0 0 3px;
-  border-radius: 3px 0 0 3px;
-}
-.input-prepend.input-append .add-on:last-child,
-.input-prepend.input-append .btn:last-child {
-  margin-left: -1px;
-  -webkit-border-radius: 0 3px 3px 0;
-  -moz-border-radius: 0 3px 3px 0;
-  border-radius: 0 3px 3px 0;
-}
-.search-query {
-  padding-right: 14px;
-  padding-right: 4px \9;
-  padding-left: 14px;
-  padding-left: 4px \9;
-  /* IE7-8 doesn't have border-radius, so don't indent the padding */
-
-  margin-bottom: 0;
-  -webkit-border-radius: 14px;
-  -moz-border-radius: 14px;
-  border-radius: 14px;
-}
-.form-search input,
-.form-inline input,
-.form-horizontal input,
-.form-search textarea,
-.form-inline textarea,
-.form-horizontal textarea,
-.form-search select,
-.form-inline select,
-.form-horizontal select,
-.form-search .help-inline,
-.form-inline .help-inline,
-.form-horizontal .help-inline,
-.form-search .uneditable-input,
-.form-inline .uneditable-input,
-.form-horizontal .uneditable-input,
-.form-search .input-prepend,
-.form-inline .input-prepend,
-.form-horizontal .input-prepend,
-.form-search .input-append,
-.form-inline .input-append,
-.form-horizontal .input-append {
-  display: inline-block;
-  *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
-  margin-bottom: 0;
-}
-.form-search .hide,
-.form-inline .hide,
-.form-horizontal .hide {
-  display: none;
-}
-.form-search label,
-.form-inline label {
-  display: inline-block;
-}
-.form-search .input-append,
-.form-inline .input-append,
-.form-search .input-prepend,
-.form-inline .input-prepend {
-  margin-bottom: 0;
-}
-.form-search .radio,
-.form-search .checkbox,
-.form-inline .radio,
-.form-inline .checkbox {
-  padding-left: 0;
-  margin-bottom: 0;
-  vertical-align: middle;
-}
-.form-search .radio input[type="radio"],
-.form-search .checkbox input[type="checkbox"],
-.form-inline .radio input[type="radio"],
-.form-inline .checkbox input[type="checkbox"] {
-  float: left;
-  margin-right: 3px;
-  margin-left: 0;
-}
-.control-group {
-  margin-bottom: 9px;
-}
-legend + .control-group {
-  margin-top: 18px;
-  -webkit-margin-top-collapse: separate;
-}
-.form-horizontal .control-group {
-  margin-bottom: 18px;
-  *zoom: 1;
-}
-.form-horizontal .control-group:before,
-.form-horizontal .control-group:after {
-  display: table;
-  content: "";
-}
-.form-horizontal .control-group:after {
-  clear: both;
-}
-.form-horizontal .control-label {
-  float: left;
-  width: 140px;
-  padding-top: 5px;
-  text-align: right;
-}
-.form-horizontal .controls {
-  *display: inline-block;
-  *padding-left: 20px;
-  margin-left: 160px;
-  *margin-left: 0;
-}
-.form-horizontal .controls:first-child {
-  *padding-left: 160px;
-}
-.form-horizontal .help-block {
-  margin-top: 9px;
-  margin-bottom: 0;
-}
-.form-horizontal .form-actions {
-  padding-left: 160px;
-}
-table {
-  max-width: 100%;
-  background-color: transparent;
-  border-collapse: collapse;
-  border-spacing: 0;
-}
-.table {
-  width: 100%;
-  margin-bottom: 18px;
-}
-.table th,
-.table td {
-  padding: 8px;
-  line-height: 18px;
-  text-align: left;
-  vertical-align: top;
-  border-top: 1px solid #dddddd;
-}
-.table th {
-  font-weight: bold;
-}
-.table thead th {
-  vertical-align: bottom;
-}
-.table caption + thead tr:first-child th,
-.table caption + thead tr:first-child td,
-.table colgroup + thead tr:first-child th,
-.table colgroup + thead tr:first-child td,
-.table thead:first-child tr:first-child th,
-.table thead:first-child tr:first-child td {
-  border-top: 0;
-}
-.table tbody + tbody {
-  border-top: 2px solid #dddddd;
-}
-.table-condensed th,
-.table-condensed td {
-  padding: 4px 5px;
-}
-.table-bordered {
-  border: 1px solid #dddddd;
-  border-collapse: separate;
-  *border-collapse: collapsed;
-  border-left: 0;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.table-bordered th,
-.table-bordered td {
-  border-left: 1px solid #dddddd;
-}
-.table-bordered caption + thead tr:first-child th,
-.table-bordered caption + tbody tr:first-child th,
-.table-bordered caption + tbody tr:first-child td,
-.table-bordered colgroup + thead tr:first-child th,
-.table-bordered colgroup + tbody tr:first-child th,
-.table-bordered colgroup + tbody tr:first-child td,
-.table-bordered thead:first-child tr:first-child th,
-.table-bordered tbody:first-child tr:first-child th,
-.table-bordered tbody:first-child tr:first-child td {
-  border-top: 0;
-}
-.table-bordered thead:first-child tr:first-child th:first-child,
-.table-bordered tbody:first-child tr:first-child td:first-child {
-  -webkit-border-top-left-radius: 4px;
-  border-top-left-radius: 4px;
-  -moz-border-radius-topleft: 4px;
-}
-.table-bordered thead:first-child tr:first-child th:last-child,
-.table-bordered tbody:first-child tr:first-child td:last-child {
-  -webkit-border-top-right-radius: 4px;
-  border-top-right-radius: 4px;
-  -moz-border-radius-topright: 4px;
-}
-.table-bordered thead:last-child tr:last-child th:first-child,
-.table-bordered tbody:last-child tr:last-child td:first-child {
-  -webkit-border-radius: 0 0 0 4px;
-  -moz-border-radius: 0 0 0 4px;
-  border-radius: 0 0 0 4px;
-  -webkit-border-bottom-left-radius: 4px;
-  border-bottom-left-radius: 4px;
-  -moz-border-radius-bottomleft: 4px;
-}
-.table-bordered thead:last-child tr:last-child th:last-child,
-.table-bordered tbody:last-child tr:last-child td:last-child {
-  -webkit-border-bottom-right-radius: 4px;
-  border-bottom-right-radius: 4px;
-  -moz-border-radius-bottomright: 4px;
-}
-.table-striped tbody tr:nth-child(odd) td,
-.table-striped tbody tr:nth-child(odd) th {
-  background-color: #f9f9f9;
-}
-.table tbody tr:hover td,
-.table tbody tr:hover th {
-  background-color: #f5f5f5;
-}
-table .span1 {
-  float: none;
-  width: 44px;
-  margin-left: 0;
-}
-table .span2 {
-  float: none;
-  width: 124px;
-  margin-left: 0;
-}
-table .span3 {
-  float: none;
-  width: 204px;
-  margin-left: 0;
-}
-table .span4 {
-  float: none;
-  width: 284px;
-  margin-left: 0;
-}
-table .span5 {
-  float: none;
-  width: 364px;
-  margin-left: 0;
-}
-table .span6 {
-  float: none;
-  width: 444px;
-  margin-left: 0;
-}
-table .span7 {
-  float: none;
-  width: 524px;
-  margin-left: 0;
-}
-table .span8 {
-  float: none;
-  width: 604px;
-  margin-left: 0;
-}
-table .span9 {
-  float: none;
-  width: 684px;
-  margin-left: 0;
-}
-table .span10 {
-  float: none;
-  width: 764px;
-  margin-left: 0;
-}
-table .span11 {
-  float: none;
-  width: 844px;
-  margin-left: 0;
-}
-table .span12 {
-  float: none;
-  width: 924px;
-  margin-left: 0;
-}
-table .span13 {
-  float: none;
-  width: 1004px;
-  margin-left: 0;
-}
-table .span14 {
-  float: none;
-  width: 1084px;
-  margin-left: 0;
-}
-table .span15 {
-  float: none;
-  width: 1164px;
-  margin-left: 0;
-}
-table .span16 {
-  float: none;
-  width: 1244px;
-  margin-left: 0;
-}
-table .span17 {
-  float: none;
-  width: 1324px;
-  margin-left: 0;
-}
-table .span18 {
-  float: none;
-  width: 1404px;
-  margin-left: 0;
-}
-table .span19 {
-  float: none;
-  width: 1484px;
-  margin-left: 0;
-}
-table .span20 {
-  float: none;
-  width: 1564px;
-  margin-left: 0;
-}
-table .span21 {
-  float: none;
-  width: 1644px;
-  margin-left: 0;
-}
-table .span22 {
-  float: none;
-  width: 1724px;
-  margin-left: 0;
-}
-table .span23 {
-  float: none;
-  width: 1804px;
-  margin-left: 0;
-}
-table .span24 {
-  float: none;
-  width: 1884px;
-  margin-left: 0;
-}
-[class^="icon-"],
-[class*=" icon-"] {
-  display: inline-block;
-  width: 14px;
-  height: 14px;
-  *margin-right: .3em;
-  line-height: 14px;
-  vertical-align: text-top;
-  background-image: url("../img/glyphicons-halflings.png");
-  background-position: 14px 14px;
-  background-repeat: no-repeat;
-}
-[class^="icon-"]:last-child,
-[class*=" icon-"]:last-child {
-  *margin-left: 0;
-}
-.icon-white {
-  background-image: url("../img/glyphicons-halflings-white.png");
-}
-.icon-glass {
-  background-position: 0      0;
-}
-.icon-music {
-  background-position: -24px 0;
-}
-.icon-search {
-  background-position: -48px 0;
-}
-.icon-envelope {
-  background-position: -72px 0;
-}
-.icon-heart {
-  background-position: -96px 0;
-}
-.icon-star {
-  background-position: -120px 0;
-}
-.icon-star-empty {
-  background-position: -144px 0;
-}
-.icon-user {
-  background-position: -168px 0;
-}
-.icon-film {
-  background-position: -192px 0;
-}
-.icon-th-large {
-  background-position: -216px 0;
-}
-.icon-th {
-  background-position: -240px 0;
-}
-.icon-th-list {
-  background-position: -264px 0;
-}
-.icon-ok {
-  background-position: -288px 0;
-}
-.icon-remove {
-  background-position: -312px 0;
-}
-.icon-zoom-in {
-  background-position: -336px 0;
-}
-.icon-zoom-out {
-  background-position: -360px 0;
-}
-.icon-off {
-  background-position: -384px 0;
-}
-.icon-signal {
-  background-position: -408px 0;
-}
-.icon-cog {
-  background-position: -432px 0;
-}
-.icon-trash {
-  background-position: -456px 0;
-}
-.icon-home {
-  background-position: 0 -24px;
-}
-.icon-file {
-  background-position: -24px -24px;
-}
-.icon-time {
-  background-position: -48px -24px;
-}
-.icon-road {
-  background-position: -72px -24px;
-}
-.icon-download-alt {
-  background-position: -96px -24px;
-}
-.icon-download {
-  background-position: -120px -24px;
-}
-.icon-upload {
-  background-position: -144px -24px;
-}
-.icon-inbox {
-  background-position: -168px -24px;
-}
-.icon-play-circle {
-  background-position: -192px -24px;
-}
-.icon-repeat {
-  background-position: -216px -24px;
-}
-.icon-refresh {
-  background-position: -240px -24px;
-}
-.icon-list-alt {
-  background-position: -264px -24px;
-}
-.icon-lock {
-  background-position: -287px -24px;
-}
-.icon-flag {
-  background-position: -312px -24px;
-}
-.icon-headphones {
-  background-position: -336px -24px;
-}
-.icon-volume-off {
-  background-position: -360px -24px;
-}
-.icon-volume-down {
-  background-position: -384px -24px;
-}
-.icon-volume-up {
-  background-position: -408px -24px;
-}
-.icon-qrcode {
-  background-position: -432px -24px;
-}
-.icon-barcode {
-  background-position: -456px -24px;
-}
-.icon-tag {
-  background-position: 0 -48px;
-}
-.icon-tags {
-  background-position: -25px -48px;
-}
-.icon-book {
-  background-position: -48px -48px;
-}
-.icon-bookmark {
-  background-position: -72px -48px;
-}
-.icon-print {
-  background-position: -96px -48px;
-}
-.icon-camera {
-  background-position: -120px -48px;
-}
-.icon-font {
-  background-position: -144px -48px;
-}
-.icon-bold {
-  background-position: -167px -48px;
-}
-.icon-italic {
-  background-position: -192px -48px;
-}
-.icon-text-height {
-  background-position: -216px -48px;
-}
-.icon-text-width {
-  background-position: -240px -48px;
-}
-.icon-align-left {
-  background-position: -264px -48px;
-}
-.icon-align-center {
-  background-position: -288px -48px;
-}
-.icon-align-right {
-  background-position: -312px -48px;
-}
-.icon-align-justify {
-  background-position: -336px -48px;
-}
-.icon-list {
-  background-position: -360px -48px;
-}
-.icon-indent-left {
-  background-position: -384px -48px;
-}
-.icon-indent-right {
-  background-position: -408px -48px;
-}
-.icon-facetime-video {
-  background-position: -432px -48px;
-}
-.icon-picture {
-  background-position: -456px -48px;
-}
-.icon-pencil {
-  background-position: 0 -72px;
-}
-.icon-map-marker {
-  background-position: -24px -72px;
-}
-.icon-adjust {
-  background-position: -48px -72px;
-}
-.icon-tint {
-  background-position: -72px -72px;
-}
-.icon-edit {
-  background-position: -96px -72px;
-}
-.icon-share {
-  background-position: -120px -72px;
-}
-.icon-check {
-  background-position: -144px -72px;
-}
-.icon-move {
-  background-position: -168px -72px;
-}
-.icon-step-backward {
-  background-position: -192px -72px;
-}
-.icon-fast-backward {
-  background-position: -216px -72px;
-}
-.icon-backward {
-  background-position: -240px -72px;
-}
-.icon-play {
-  background-position: -264px -72px;
-}
-.icon-pause {
-  background-position: -288px -72px;
-}
-.icon-stop {
-  background-position: -312px -72px;
-}
-.icon-forward {
-  background-position: -336px -72px;
-}
-.icon-fast-forward {
-  background-position: -360px -72px;
-}
-.icon-step-forward {
-  background-position: -384px -72px;
-}
-.icon-eject {
-  background-position: -408px -72px;
-}
-.icon-chevron-left {
-  background-position: -432px -72px;
-}
-.icon-chevron-right {
-  background-position: -456px -72px;
-}
-.icon-plus-sign {
-  background-position: 0 -96px;
-}
-.icon-minus-sign {
-  background-position: -24px -96px;
-}
-.icon-remove-sign {
-  background-position: -48px -96px;
-}
-.icon-ok-sign {
-  background-position: -72px -96px;
-}
-.icon-question-sign {
-  background-position: -96px -96px;
-}
-.icon-info-sign {
-  background-position: -120px -96px;
-}
-.icon-screenshot {
-  background-position: -144px -96px;
-}
-.icon-remove-circle {
-  background-position: -168px -96px;
-}
-.icon-ok-circle {
-  background-position: -192px -96px;
-}
-.icon-ban-circle {
-  background-position: -216px -96px;
-}
-.icon-arrow-left {
-  background-position: -240px -96px;
-}
-.icon-arrow-right {
-  background-position: -264px -96px;
-}
-.icon-arrow-up {
-  background-position: -289px -96px;
-}
-.icon-arrow-down {
-  background-position: -312px -96px;
-}
-.icon-share-alt {
-  background-position: -336px -96px;
-}
-.icon-resize-full {
-  background-position: -360px -96px;
-}
-.icon-resize-small {
-  background-position: -384px -96px;
-}
-.icon-plus {
-  background-position: -408px -96px;
-}
-.icon-minus {
-  background-position: -433px -96px;
-}
-.icon-asterisk {
-  background-position: -456px -96px;
-}
-.icon-exclamation-sign {
-  background-position: 0 -120px;
-}
-.icon-gift {
-  background-position: -24px -120px;
-}
-.icon-leaf {
-  background-position: -48px -120px;
-}
-.icon-fire {
-  background-position: -72px -120px;
-}
-.icon-eye-open {
-  background-position: -96px -120px;
-}
-.icon-eye-close {
-  background-position: -120px -120px;
-}
-.icon-warning-sign {
-  background-position: -144px -120px;
-}
-.icon-plane {
-  background-position: -168px -120px;
-}
-.icon-calendar {
-  background-position: -192px -120px;
-}
-.icon-random {
-  background-position: -216px -120px;
-}
-.icon-comment {
-  background-position: -240px -120px;
-}
-.icon-magnet {
-  background-position: -264px -120px;
-}
-.icon-chevron-up {
-  background-position: -288px -120px;
-}
-.icon-chevron-down {
-  background-position: -313px -119px;
-}
-.icon-retweet {
-  background-position: -336px -120px;
-}
-.icon-shopping-cart {
-  background-position: -360px -120px;
-}
-.icon-folder-close {
-  background-position: -384px -120px;
-}
-.icon-folder-open {
-  background-position: -408px -120px;
-}
-.icon-resize-vertical {
-  background-position: -432px -119px;
-}
-.icon-resize-horizontal {
-  background-position: -456px -118px;
-}
-.icon-hdd {
-  background-position: 0 -144px;
-}
-.icon-bullhorn {
-  background-position: -24px -144px;
-}
-.icon-bell {
-  background-position: -48px -144px;
-}
-.icon-certificate {
-  background-position: -72px -144px;
-}
-.icon-thumbs-up {
-  background-position: -96px -144px;
-}
-.icon-thumbs-down {
-  background-position: -120px -144px;
-}
-.icon-hand-right {
-  background-position: -144px -144px;
-}
-.icon-hand-left {
-  background-position: -168px -144px;
-}
-.icon-hand-up {
-  background-position: -192px -144px;
-}
-.icon-hand-down {
-  background-position: -216px -144px;
-}
-.icon-circle-arrow-right {
-  background-position: -240px -144px;
-}
-.icon-circle-arrow-left {
-  background-position: -264px -144px;
-}
-.icon-circle-arrow-up {
-  background-position: -288px -144px;
-}
-.icon-circle-arrow-down {
-  background-position: -312px -144px;
-}
-.icon-globe {
-  background-position: -336px -144px;
-}
-.icon-wrench {
-  background-position: -360px -144px;
-}
-.icon-tasks {
-  background-position: -384px -144px;
-}
-.icon-filter {
-  background-position: -408px -144px;
-}
-.icon-briefcase {
-  background-position: -432px -144px;
-}
-.icon-fullscreen {
-  background-position: -456px -144px;
-}
-.dropup,
-.dropdown {
-  position: relative;
-}
-.dropdown-toggle {
-  *margin-bottom: -3px;
-}
-.dropdown-toggle:active,
-.open .dropdown-toggle {
-  outline: 0;
-}
-.caret {
-  display: inline-block;
-  width: 0;
-  height: 0;
-  vertical-align: top;
-  border-top: 4px solid #1a1515;
-  border-right: 4px solid transparent;
-  border-left: 4px solid transparent;
-  content: "";
-  opacity: 0.3;
-  filter: alpha(opacity=30);
-}
-.dropdown .caret {
-  margin-top: 8px;
-  margin-left: 2px;
-}
-.dropdown:hover .caret,
-.open .caret {
-  opacity: 1;
-  filter: alpha(opacity=100);
-}
-.dropdown-menu {
-  position: absolute;
-  top: 100%;
-  left: 0;
-  z-index: 1000;
-  display: none;
-  float: left;
-  min-width: 160px;
-  padding: 4px 0;
-  margin: 1px 0 0;
-  list-style: none;
-  background-color: #1a1515;
-  border: 1px solid #ccc;
-  border: 1px solid rgba(0, 0, 0, 0.2);
-  *border-right-width: 2px;
-  *border-bottom-width: 2px;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  -webkit-background-clip: padding-box;
-  -moz-background-clip: padding;
-  background-clip: padding-box;
-}
-.dropdown-menu.pull-right {
-  right: 0;
-  left: auto;
-}
-.dropdown-menu .divider {
-  *width: 100%;
-  height: 1px;
-  margin: 8px 1px;
-  *margin: -5px 0 5px;
-  overflow: hidden;
-  background-color: #e5e5e5;
-  border-bottom: 1px solid #1a1515;
-}
-.dropdown-menu a {
-  display: block;
-  padding: 3px 15px;
-  clear: both;
-  font-weight: normal;
-  line-height: 18px;
-  color: #5e3534;
-  white-space: nowrap;
-}
-.dropdown-menu li > a:hover,
-.dropdown-menu .active > a,
-.dropdown-menu .active > a:hover {
-  color: #1a1515;
-  text-decoration: none;
-  background-color: #E26128;
-}
-.open {
-  *z-index: 1000;
-}
-.open .dropdown-menu {
-  display: block;
-}
-.pull-right .dropdown-menu {
-  right: 0;
-  left: auto;
-}
-.dropup .caret,
-.navbar-fixed-bottom .dropdown .caret {
-  border-top: 0;
-  border-bottom: 4px solid #1a1515;
-  content: "\2191";
-}
-.dropup .dropdown-menu,
-.navbar-fixed-bottom .dropdown .dropdown-menu {
-  top: auto;
-  bottom: 100%;
-  margin-bottom: 1px;
-}
-.typeahead {
-  margin-top: 2px;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.well {
-  min-height: 20px;
-  padding: 19px;
-  margin-bottom: 20px;
-  background-color: #f5f5f5;
-  border: 1px solid #eee;
-  border: 1px solid rgba(0, 0, 0, 0.05);
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
-  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
-}
-.well blockquote {
-  border-color: #ddd;
-  border-color: rgba(0, 0, 0, 0.15);
-}
-.well-large {
-  padding: 24px;
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-}
-.well-small {
-  padding: 9px;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-}
-.fade {
-  opacity: 0;
-  filter: alpha(opacity=0);
-  -webkit-transition: opacity 0.15s linear;
-  -moz-transition: opacity 0.15s linear;
-  -ms-transition: opacity 0.15s linear;
-  -o-transition: opacity 0.15s linear;
-  transition: opacity 0.15s linear;
-}
-.fade.in {
-  opacity: 1;
-  filter: alpha(opacity=100);
-}
-.collapse {
-  position: relative;
-  height: 0;
-  overflow: hidden;
-  -webkit-transition: height 0.35s ease;
-  -moz-transition: height 0.35s ease;
-  -ms-transition: height 0.35s ease;
-  -o-transition: height 0.35s ease;
-  transition: height 0.35s ease;
-}
-.collapse.in {
-  height: auto;
-}
-.close {
-  float: right;
-  font-size: 20px;
-  font-weight: bold;
-  line-height: 18px;
-  color: #1a1515;
-  text-shadow: 0 1px 0 #ffffff;
-  opacity: 0.2;
-  filter: alpha(opacity=20);
-}
-.close:hover {
-  color: #1a1515;
-  text-decoration: none;
-  cursor: pointer;
-  opacity: 0.4;
-  filter: alpha(opacity=40);
-}
-button.close {
-  padding: 0;
-  cursor: pointer;
-  background: transparent;
-  border: 0;
-  -webkit-appearance: none;
-}
-.btn {
-  display: inline-block;
-  *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
-  padding: 4px 10px 4px;
-  margin-bottom: 0;
-  font-size: 13px;
-  line-height: 18px;
-  *line-height: 20px;
-  color: #5e3534;
-  text-align: center;
-  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
-  vertical-align: middle;
-  cursor: pointer;
-  background-color: #100d0d;
-  background-image: -moz-linear-gradient(top, #1a1515, #000000);
-  background-image: -ms-linear-gradient(top, #1a1515, #000000);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#1a1515), to(#000000));
-  background-image: -webkit-linear-gradient(top, #1a1515, #000000);
-  background-image: -o-linear-gradient(top, #1a1515, #000000);
-  background-image: linear-gradient(top, #1a1515, #000000);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1a1515', endColorstr='#000000', GradientType=0);
-  border-color: #000000 #000000 #000000;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  *background-color: #000000;
-  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
-
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-  border: 1px solid #cccccc;
-  *border: 0;
-  border-bottom-color: #b3b3b3;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  *margin-left: .3em;
-  -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-}
-.btn:hover,
-.btn:active,
-.btn.active,
-.btn.disabled,
-.btn[disabled] {
-  background-color: #000000;
-  *background-color: #000000;
-}
-.btn:active,
-.btn.active {
-  background-color: #000000 \9;
-}
-.btn:first-child {
-  *margin-left: 0;
-}
-.btn:hover {
-  color: #5e3534;
-  text-decoration: none;
-  background-color: #000000;
-  *background-color: #000000;
-  /* Buttons in IE7 don't get borders, so darken on hover */
-
-  background-position: 0 -15px;
-  -webkit-transition: background-position 0.1s linear;
-  -moz-transition: background-position 0.1s linear;
-  -ms-transition: background-position 0.1s linear;
-  -o-transition: background-position 0.1s linear;
-  transition: background-position 0.1s linear;
-}
-.btn:focus {
-  outline: thin dotted #333;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
-.btn.active,
-.btn:active {
-  background-color: #000000;
-  background-color: #000000 \9;
-  background-image: none;
-  outline: 0;
-  -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-  -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-  box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-}
-.btn.disabled,
-.btn[disabled] {
-  cursor: default;
-  background-color: #000000;
-  background-image: none;
-  opacity: 0.65;
-  filter: alpha(opacity=65);
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-}
-.btn-large {
-  padding: 9px 14px;
-  font-size: 15px;
-  line-height: normal;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-}
-.btn-large [class^="icon-"] {
-  margin-top: 1px;
-}
-.btn-small {
-  padding: 5px 9px;
-  font-size: 11px;
-  line-height: 16px;
-}
-.btn-small [class^="icon-"] {
-  margin-top: -1px;
-}
-.btn-mini {
-  padding: 2px 6px;
-  font-size: 11px;
-  line-height: 14px;
-}
-.btn-primary,
-.btn-primary:hover,
-.btn-warning,
-.btn-warning:hover,
-.btn-danger,
-.btn-danger:hover,
-.btn-success,
-.btn-success:hover,
-.btn-info,
-.btn-info:hover,
-.btn-inverse,
-.btn-inverse:hover {
-  color: #1a1515;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-}
-.btn-primary.active,
-.btn-warning.active,
-.btn-danger.active,
-.btn-success.active,
-.btn-info.active,
-.btn-inverse.active {
-  color: rgba(255, 255, 255, 0.75);
-}
-.btn {
-  border-color: #ccc;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-}
-.btn-primary {
-  background-color: #e27428;
-  background-image: -moz-linear-gradient(top, #E26128, #e29028);
-  background-image: -ms-linear-gradient(top, #E26128, #e29028);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#E26128), to(#e29028));
-  background-image: -webkit-linear-gradient(top, #E26128, #e29028);
-  background-image: -o-linear-gradient(top, #E26128, #e29028);
-  background-image: linear-gradient(top, #E26128, #e29028);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#E26128', endColorstr='#e29028', GradientType=0);
-  border-color: #e29028 #e29028 #a76717;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  *background-color: #e29028;
-  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
-
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
-.btn-primary:hover,
-.btn-primary:active,
-.btn-primary.active,
-.btn-primary.disabled,
-.btn-primary[disabled] {
-  background-color: #e29028;
-  *background-color: #d4831d;
-}
-.btn-primary:active,
-.btn-primary.active {
-  background-color: #bd751a \9;
-}
-.btn-warning {
-  background-color: #faa732;
-  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
-  background-image: -ms-linear-gradient(top, #fbb450, #f89406);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
-  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
-  background-image: -o-linear-gradient(top, #fbb450, #f89406);
-  background-image: linear-gradient(top, #fbb450, #f89406);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);
-  border-color: #f89406 #f89406 #ad6704;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  *background-color: #f89406;
-  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
-
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
-.btn-warning:hover,
-.btn-warning:active,
-.btn-warning.active,
-.btn-warning.disabled,
-.btn-warning[disabled] {
-  background-color: #f89406;
-  *background-color: #df8505;
-}
-.btn-warning:active,
-.btn-warning.active {
-  background-color: #c67605 \9;
-}
-.btn-danger {
-  background-color: #da4f49;
-  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
-  background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
-  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
-  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
-  background-image: linear-gradient(top, #ee5f5b, #bd362f);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);
-  border-color: #bd362f #bd362f #802420;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  *background-color: #bd362f;
-  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
-
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
-.btn-danger:hover,
-.btn-danger:active,
-.btn-danger.active,
-.btn-danger.disabled,
-.btn-danger[disabled] {
-  background-color: #bd362f;
-  *background-color: #a9302a;
-}
-.btn-danger:active,
-.btn-danger.active {
-  background-color: #942a25 \9;
-}
-.btn-success {
-  background-color: #5bb75b;
-  background-image: -moz-linear-gradient(top, #62c462, #51a351);
-  background-image: -ms-linear-gradient(top, #62c462, #51a351);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
-  background-image: -webkit-linear-gradient(top, #62c462, #51a351);
-  background-image: -o-linear-gradient(top, #62c462, #51a351);
-  background-image: linear-gradient(top, #62c462, #51a351);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);
-  border-color: #51a351 #51a351 #387038;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  *background-color: #51a351;
-  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
-
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
-.btn-success:hover,
-.btn-success:active,
-.btn-success.active,
-.btn-success.disabled,
-.btn-success[disabled] {
-  background-color: #51a351;
-  *background-color: #499249;
-}
-.btn-success:active,
-.btn-success.active {
-  background-color: #408140 \9;
-}
-.btn-info {
-  background-color: #49afcd;
-  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
-  background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
-  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
-  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
-  background-image: linear-gradient(top, #5bc0de, #2f96b4);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);
-  border-color: #2f96b4 #2f96b4 #1f6377;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  *background-color: #2f96b4;
-  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
-
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
-.btn-info:hover,
-.btn-info:active,
-.btn-info.active,
-.btn-info.disabled,
-.btn-info[disabled] {
-  background-color: #2f96b4;
-  *background-color: #2a85a0;
-}
-.btn-info:active,
-.btn-info.active {
-  background-color: #24748c \9;
-}
-.btn-inverse {
-  background-color: #625962;
-  background-image: -moz-linear-gradient(top, #7b7e8c, #3d2222);
-  background-image: -ms-linear-gradient(top, #7b7e8c, #3d2222);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#7b7e8c), to(#3d2222));
-  background-image: -webkit-linear-gradient(top, #7b7e8c, #3d2222);
-  background-image: -o-linear-gradient(top, #7b7e8c, #3d2222);
-  background-image: linear-gradient(top, #7b7e8c, #3d2222);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7b7e8c', endColorstr='#3d2222', GradientType=0);
-  border-color: #3d2222 #3d2222 #0c0707;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  *background-color: #3d2222;
-  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
-
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
-.btn-inverse:hover,
-.btn-inverse:active,
-.btn-inverse.active,
-.btn-inverse.disabled,
-.btn-inverse[disabled] {
-  background-color: #3d2222;
-  *background-color: #2d1919;
-}
-.btn-inverse:active,
-.btn-inverse.active {
-  background-color: #1c1010 \9;
-}
-button.btn,
-input[type="submit"].btn {
-  *padding-top: 2px;
-  *padding-bottom: 2px;
-}
-button.btn::-moz-focus-inner,
-input[type="submit"].btn::-moz-focus-inner {
-  padding: 0;
-  border: 0;
-}
-button.btn.btn-large,
-input[type="submit"].btn.btn-large {
-  *padding-top: 7px;
-  *padding-bottom: 7px;
-}
-button.btn.btn-small,
-input[type="submit"].btn.btn-small {
-  *padding-top: 3px;
-  *padding-bottom: 3px;
-}
-button.btn.btn-mini,
-input[type="submit"].btn.btn-mini {
-  *padding-top: 1px;
-  *padding-bottom: 1px;
-}
-.btn-group {
-  position: relative;
-  *zoom: 1;
-  *margin-left: .3em;
-}
-.btn-group:before,
-.btn-group:after {
-  display: table;
-  content: "";
-}
-.btn-group:after {
-  clear: both;
-}
-.btn-group:first-child {
-  *margin-left: 0;
-}
-.btn-group + .btn-group {
-  margin-left: 5px;
-}
-.btn-toolbar {
-  margin-top: 9px;
-  margin-bottom: 9px;
-}
-.btn-toolbar .btn-group {
-  display: inline-block;
-  *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
-}
-.btn-group > .btn {
-  position: relative;
-  float: left;
-  margin-left: -1px;
-  -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
-}
-.btn-group > .btn:first-child {
-  margin-left: 0;
-  -webkit-border-top-left-radius: 4px;
-  -moz-border-radius-topleft: 4px;
-  border-top-left-radius: 4px;
-  -webkit-border-bottom-left-radius: 4px;
-  -moz-border-radius-bottomleft: 4px;
-  border-bottom-left-radius: 4px;
-}
-.btn-group > .btn:last-child,
-.btn-group > .dropdown-toggle {
-  -webkit-border-top-right-radius: 4px;
-  -moz-border-radius-topright: 4px;
-  border-top-right-radius: 4px;
-  -webkit-border-bottom-right-radius: 4px;
-  -moz-border-radius-bottomright: 4px;
-  border-bottom-right-radius: 4px;
-}
-.btn-group > .btn.large:first-child {
-  margin-left: 0;
-  -webkit-border-top-left-radius: 6px;
-  -moz-border-radius-topleft: 6px;
-  border-top-left-radius: 6px;
-  -webkit-border-bottom-left-radius: 6px;
-  -moz-border-radius-bottomleft: 6px;
-  border-bottom-left-radius: 6px;
-}
-.btn-group > .btn.large:last-child,
-.btn-group > .large.dropdown-toggle {
-  -webkit-border-top-right-radius: 6px;
-  -moz-border-radius-topright: 6px;
-  border-top-right-radius: 6px;
-  -webkit-border-bottom-right-radius: 6px;
-  -moz-border-radius-bottomright: 6px;
-  border-bottom-right-radius: 6px;
-}
-.btn-group > .btn:hover,
-.btn-group > .btn:focus,
-.btn-group > .btn:active,
-.btn-group > .btn.active {
-  z-index: 2;
-}
-.btn-group .dropdown-toggle:active,
-.btn-group.open .dropdown-toggle {
-  outline: 0;
-}
-.btn-group > .dropdown-toggle {
-  padding-left: 8px;
-  padding-right: 8px;
-  -webkit-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  -moz-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  *padding-top: 4px;
-  *padding-bottom: 4px;
-}
-.btn-group > .btn-mini.dropdown-toggle {
-  padding-left: 5px;
-  padding-right: 5px;
-}
-.btn-group > .btn-small.dropdown-toggle {
-  *padding-top: 4px;
-  *padding-bottom: 4px;
-}
-.btn-group > .btn-large.dropdown-toggle {
-  padding-left: 12px;
-  padding-right: 12px;
-}
-.btn-group.open .dropdown-toggle {
-  background-image: none;
-  -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-  -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-  box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-}
-.btn-group.open .btn.dropdown-toggle {
-  background-color: #000000;
-}
-.btn-group.open .btn-primary.dropdown-toggle {
-  background-color: #e29028;
-}
-.btn-group.open .btn-warning.dropdown-toggle {
-  background-color: #f89406;
-}
-.btn-group.open .btn-danger.dropdown-toggle {
-  background-color: #bd362f;
-}
-.btn-group.open .btn-success.dropdown-toggle {
-  background-color: #51a351;
-}
-.btn-group.open .btn-info.dropdown-toggle {
-  background-color: #2f96b4;
-}
-.btn-group.open .btn-inverse.dropdown-toggle {
-  background-color: #3d2222;
-}
-.btn .caret {
-  margin-top: 7px;
-  margin-left: 0;
-}
-.btn:hover .caret,
-.open.btn-group .caret {
-  opacity: 1;
-  filter: alpha(opacity=100);
-}
-.btn-mini .caret {
-  margin-top: 5px;
-}
-.btn-small .caret {
-  margin-top: 6px;
-}
-.btn-large .caret {
-  margin-top: 6px;
-  border-left-width: 5px;
-  border-right-width: 5px;
-  border-top-width: 5px;
-}
-.dropup .btn-large .caret {
-  border-bottom: 5px solid #1a1515;
-  border-top: 0;
-}
-.btn-primary .caret,
-.btn-warning .caret,
-.btn-danger .caret,
-.btn-info .caret,
-.btn-success .caret,
-.btn-inverse .caret {
-  border-top-color: #1a1515;
-  border-bottom-color: #1a1515;
-  opacity: 0.75;
-  filter: alpha(opacity=75);
-}
-.alert {
-  padding: 8px 35px 8px 14px;
-  margin-bottom: 18px;
-  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-  background-color: #fcf8e3;
-  border: 1px solid #fbeed5;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  color: #c09853;
-}
-.alert-heading {
-  color: inherit;
-}
-.alert .close {
-  position: relative;
-  top: -2px;
-  right: -21px;
-  line-height: 18px;
-}
-.alert-success {
-  background-color: #dff0d8;
-  border-color: #d6e9c6;
-  color: #468847;
-}
-.alert-danger,
-.alert-error {
-  background-color: #f2dede;
-  border-color: #eed3d7;
-  color: #b94a48;
-}
-.alert-info {
-  background-color: #d9edf7;
-  border-color: #bce8f1;
-  color: #3a87ad;
-}
-.alert-block {
-  padding-top: 14px;
-  padding-bottom: 14px;
-}
-.alert-block > p,
-.alert-block > ul {
-  margin-bottom: 0;
-}
-.alert-block p + p {
-  margin-top: 5px;
-}
-.nav {
-  margin-left: 0;
-  margin-bottom: 18px;
-  list-style: none;
-}
-.nav > li > a {
-  display: block;
-}
-.nav > li > a:hover {
-  text-decoration: none;
-  background-color: #eb9742;
-}
-.nav > .pull-right {
-  float: right;
-}
-.nav .nav-header {
-  display: block;
-  padding: 3px 15px;
-  font-size: 11px;
-  font-weight: bold;
-  line-height: 18px;
-  color: #E26128;
-  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-  text-transform: uppercase;
-}
-.nav li + .nav-header {
-  margin-top: 9px;
-}
-.nav-list {
-  padding-left: 15px;
-  padding-right: 15px;
-  margin-bottom: 0;
-}
-.nav-list > li > a,
-.nav-list .nav-header {
-  margin-left: -15px;
-  margin-right: -15px;
-  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-}
-.nav-list > li > a {
-  padding: 3px 15px;
-}
-.nav-list > .active > a,
-.nav-list > .active > a:hover {
-  color: #1a1515;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
-  background-color: #E26128;
-}
-.nav-list [class^="icon-"] {
-  margin-right: 2px;
-}
-.nav-list .divider {
-  *width: 100%;
-  height: 1px;
-  margin: 8px 1px;
-  *margin: -5px 0 5px;
-  overflow: hidden;
-  background-color: #e5e5e5;
-  border-bottom: 1px solid #1a1515;
-}
-.nav-tabs,
-.nav-pills {
-  *zoom: 1;
-}
-.nav-tabs:before,
-.nav-pills:before,
-.nav-tabs:after,
-.nav-pills:after {
-  display: table;
-  content: "";
-}
-.nav-tabs:after,
-.nav-pills:after {
-  clear: both;
-}
-.nav-tabs > li,
-.nav-pills > li {
-  float: left;
-}
-.nav-tabs > li > a,
-.nav-pills > li > a {
-  padding-right: 12px;
-  padding-left: 12px;
-  margin-right: 2px;
-  line-height: 14px;
-}
-.nav-tabs {
-  border-bottom: 1px solid #ddd;
-}
-.nav-tabs > li {
-  margin-bottom: -1px;
-}
-.nav-tabs > li > a {
-  padding-top: 8px;
-  padding-bottom: 8px;
-  line-height: 18px;
-  border: 1px solid transparent;
-  -webkit-border-radius: 4px 4px 0 0;
-  -moz-border-radius: 4px 4px 0 0;
-  border-radius: 4px 4px 0 0;
-}
-.nav-tabs > li > a:hover {
-  border-color: #eb9742 #eb9742 #dddddd;
-}
-.nav-tabs > .active > a,
-.nav-tabs > .active > a:hover {
-  color: #7b7e8c;
-  background-color: #1a1515;
-  border: 1px solid #ddd;
-  border-bottom-color: transparent;
-  cursor: default;
-}
-.nav-pills > li > a {
-  padding-top: 8px;
-  padding-bottom: 8px;
-  margin-top: 2px;
-  margin-bottom: 2px;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-}
-.nav-pills > .active > a,
-.nav-pills > .active > a:hover {
-  color: #1a1515;
-  background-color: #E26128;
-}
-.nav-stacked > li {
-  float: none;
-}
-.nav-stacked > li > a {
-  margin-right: 0;
-}
-.nav-tabs.nav-stacked {
-  border-bottom: 0;
-}
-.nav-tabs.nav-stacked > li > a {
-  border: 1px solid #ddd;
-  -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
-}
-.nav-tabs.nav-stacked > li:first-child > a {
-  -webkit-border-radius: 4px 4px 0 0;
-  -moz-border-radius: 4px 4px 0 0;
-  border-radius: 4px 4px 0 0;
-}
-.nav-tabs.nav-stacked > li:last-child > a {
-  -webkit-border-radius: 0 0 4px 4px;
-  -moz-border-radius: 0 0 4px 4px;
-  border-radius: 0 0 4px 4px;
-}
-.nav-tabs.nav-stacked > li > a:hover {
-  border-color: #ddd;
-  z-index: 2;
-}
-.nav-pills.nav-stacked > li > a {
-  margin-bottom: 3px;
-}
-.nav-pills.nav-stacked > li:last-child > a {
-  margin-bottom: 1px;
-}
-.nav-tabs .dropdown-menu {
-  -webkit-border-radius: 0 0 5px 5px;
-  -moz-border-radius: 0 0 5px 5px;
-  border-radius: 0 0 5px 5px;
-}
-.nav-pills .dropdown-menu {
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.nav-tabs .dropdown-toggle .caret,
-.nav-pills .dropdown-toggle .caret {
-  border-top-color: #E26128;
-  border-bottom-color: #E26128;
-  margin-top: 6px;
-}
-.nav-tabs .dropdown-toggle:hover .caret,
-.nav-pills .dropdown-toggle:hover .caret {
-  border-top-color: #a74317;
-  border-bottom-color: #a74317;
-}
-.nav-tabs .active .dropdown-toggle .caret,
-.nav-pills .active .dropdown-toggle .caret {
-  border-top-color: #5e3534;
-  border-bottom-color: #5e3534;
-}
-.nav > .dropdown.active > a:hover {
-  color: #1a1515;
-  cursor: pointer;
-}
-.nav-tabs .open .dropdown-toggle,
-.nav-pills .open .dropdown-toggle,
-.nav > li.dropdown.open.active > a:hover {
-  color: #1a1515;
-  background-color: #E26128;
-  border-color: #E26128;
-}
-.nav li.dropdown.open .caret,
-.nav li.dropdown.open.active .caret,
-.nav li.dropdown.open a:hover .caret {
-  border-top-color: #1a1515;
-  border-bottom-color: #1a1515;
-  opacity: 1;
-  filter: alpha(opacity=100);
-}
-.tabs-stacked .open > a:hover {
-  border-color: #E26128;
-}
-.tabbable {
-  *zoom: 1;
-}
-.tabbable:before,
-.tabbable:after {
-  display: table;
-  content: "";
-}
-.tabbable:after {
-  clear: both;
-}
-.tab-content {
-  overflow: auto;
-}
-.tabs-below > .nav-tabs,
-.tabs-right > .nav-tabs,
-.tabs-left > .nav-tabs {
-  border-bottom: 0;
-}
-.tab-content > .tab-pane,
-.pill-content > .pill-pane {
-  display: none;
-}
-.tab-content > .active,
-.pill-content > .active {
-  display: block;
-}
-.tabs-below > .nav-tabs {
-  border-top: 1px solid #ddd;
-}
-.tabs-below > .nav-tabs > li {
-  margin-top: -1px;
-  margin-bottom: 0;
-}
-.tabs-below > .nav-tabs > li > a {
-  -webkit-border-radius: 0 0 4px 4px;
-  -moz-border-radius: 0 0 4px 4px;
-  border-radius: 0 0 4px 4px;
-}
-.tabs-below > .nav-tabs > li > a:hover {
-  border-bottom-color: transparent;
-  border-top-color: #ddd;
-}
-.tabs-below > .nav-tabs > .active > a,
-.tabs-below > .nav-tabs > .active > a:hover {
-  border-color: transparent #ddd #ddd #ddd;
-}
-.tabs-left > .nav-tabs > li,
-.tabs-right > .nav-tabs > li {
-  float: none;
-}
-.tabs-left > .nav-tabs > li > a,
-.tabs-right > .nav-tabs > li > a {
-  min-width: 74px;
-  margin-right: 0;
-  margin-bottom: 3px;
-}
-.tabs-left > .nav-tabs {
-  float: left;
-  margin-right: 19px;
-  border-right: 1px solid #ddd;
-}
-.tabs-left > .nav-tabs > li > a {
-  margin-right: -1px;
-  -webkit-border-radius: 4px 0 0 4px;
-  -moz-border-radius: 4px 0 0 4px;
-  border-radius: 4px 0 0 4px;
-}
-.tabs-left > .nav-tabs > li > a:hover {
-  border-color: #eb9742 #dddddd #eb9742 #eb9742;
-}
-.tabs-left > .nav-tabs .active > a,
-.tabs-left > .nav-tabs .active > a:hover {
-  border-color: #ddd transparent #ddd #ddd;
-  *border-right-color: #1a1515;
-}
-.tabs-right > .nav-tabs {
-  float: right;
-  margin-left: 19px;
-  border-left: 1px solid #ddd;
-}
-.tabs-right > .nav-tabs > li > a {
-  margin-left: -1px;
-  -webkit-border-radius: 0 4px 4px 0;
-  -moz-border-radius: 0 4px 4px 0;
-  border-radius: 0 4px 4px 0;
-}
-.tabs-right > .nav-tabs > li > a:hover {
-  border-color: #eb9742 #eb9742 #eb9742 #dddddd;
-}
-.tabs-right > .nav-tabs .active > a,
-.tabs-right > .nav-tabs .active > a:hover {
-  border-color: #ddd #ddd #ddd transparent;
-  *border-left-color: #1a1515;
-}
-.navbar {
-  *position: relative;
-  *z-index: 2;
-  overflow: visible;
-  margin-bottom: 18px;
-}
-.navbar-inner {
-  min-height: 40px;
-  padding-left: 20px;
-  padding-right: 20px;
-  background-color: #512e2d;
-  background-image: -moz-linear-gradient(top, #5e3534, #3d2222);
-  background-image: -ms-linear-gradient(top, #5e3534, #3d2222);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5e3534), to(#3d2222));
-  background-image: -webkit-linear-gradient(top, #5e3534, #3d2222);
-  background-image: -o-linear-gradient(top, #5e3534, #3d2222);
-  background-image: linear-gradient(top, #5e3534, #3d2222);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e3534', endColorstr='#3d2222', GradientType=0);
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
-  -moz-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
-  box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
-}
-.navbar .container {
-  width: auto;
-}
-.nav-collapse.collapse {
-  height: auto;
-}
-.navbar {
-  color: #E26128;
-}
-.navbar .brand:hover {
-  text-decoration: none;
-}
-.navbar .brand {
-  float: left;
-  display: block;
-  padding: 8px 20px 12px;
-  margin-left: -20px;
-  font-size: 20px;
-  font-weight: 200;
-  line-height: 1;
-  color: #E26128;
-}
-.navbar .navbar-text {
-  margin-bottom: 0;
-  line-height: 40px;
-}
-.navbar .navbar-link {
-  color: #E26128;
-}
-.navbar .navbar-link:hover {
-  color: #1a1515;
-}
-.navbar .btn,
-.navbar .btn-group {
-  margin-top: 5px;
-}
-.navbar .btn-group .btn {
-  margin: 0;
-}
-.navbar-form {
-  margin-bottom: 0;
-  *zoom: 1;
-}
-.navbar-form:before,
-.navbar-form:after {
-  display: table;
-  content: "";
-}
-.navbar-form:after {
-  clear: both;
-}
-.navbar-form input,
-.navbar-form select,
-.navbar-form .radio,
-.navbar-form .checkbox {
-  margin-top: 5px;
-}
-.navbar-form input,
-.navbar-form select {
-  display: inline-block;
-  margin-bottom: 0;
-}
-.navbar-form input[type="image"],
-.navbar-form input[type="checkbox"],
-.navbar-form input[type="radio"] {
-  margin-top: 3px;
-}
-.navbar-form .input-append,
-.navbar-form .input-prepend {
-  margin-top: 6px;
-  white-space: nowrap;
-}
-.navbar-form .input-append input,
-.navbar-form .input-prepend input {
-  margin-top: 0;
-}
-.navbar-search {
-  position: relative;
-  float: left;
-  margin-top: 6px;
-  margin-bottom: 0;
-}
-.navbar-search .search-query {
-  padding: 4px 9px;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  font-weight: normal;
-  line-height: 1;
-  color: #1a1515;
-  background-color: #8f514f;
-  border: 1px solid #2d1919;
-  -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);
-  -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);
-  box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);
-  -webkit-transition: none;
-  -moz-transition: none;
-  -ms-transition: none;
-  -o-transition: none;
-  transition: none;
-}
-.navbar-search .search-query:-moz-placeholder {
-  color: #cccccc;
-}
-.navbar-search .search-query::-webkit-input-placeholder {
-  color: #cccccc;
-}
-.navbar-search .search-query:focus,
-.navbar-search .search-query.focused {
-  padding: 5px 10px;
-  color: #5e3534;
-  text-shadow: 0 1px 0 #1a1515;
-  background-color: #1a1515;
-  border: 0;
-  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
-  -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
-  box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
-  outline: 0;
-}
-.navbar-fixed-top,
-.navbar-fixed-bottom {
-  position: fixed;
-  right: 0;
-  left: 0;
-  z-index: 1030;
-  margin-bottom: 0;
-}
-.navbar-fixed-top .navbar-inner,
-.navbar-fixed-bottom .navbar-inner {
-  padding-left: 0;
-  padding-right: 0;
-  -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
-}
-.navbar-fixed-top .container,
-.navbar-fixed-bottom .container {
-  width: 940px;
-}
-.navbar-fixed-top {
-  top: 0;
-}
-.navbar-fixed-bottom {
-  bottom: 0;
-}
-.navbar .nav {
-  position: relative;
-  left: 0;
-  display: block;
-  float: left;
-  margin: 0 10px 0 0;
-}
-.navbar .nav.pull-right {
-  float: right;
-}
-.navbar .nav > li {
-  display: block;
-  float: left;
-}
-.navbar .nav > li > a {
-  float: none;
-  padding: 9px 10px 11px;
-  line-height: 19px;
-  color: #E26128;
-  text-decoration: none;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-}
-.navbar .btn {
-  display: inline-block;
-  padding: 4px 10px 4px;
-  margin: 5px 5px 6px;
-  line-height: 18px;
-}
-.navbar .btn-group {
-  margin: 0;
-  padding: 5px 5px 6px;
-}
-.navbar .nav > li > a:hover {
-  background-color: transparent;
-  color: #B8B7B6;
-  text-decoration: none;
-}
-.navbar .nav .active > a,
-.navbar .nav .active > a:hover {
-  color: #1a1515;
-  text-decoration: none;
-  background-color: #3d2222;
-}
-.navbar .divider-vertical {
-  height: 40px;
-  width: 1px;
-  margin: 0 9px;
-  overflow: hidden;
-  background-color: #3d2222;
-  border-right: 1px solid #5e3534;
-}
-.navbar .nav.pull-right {
-  margin-left: 10px;
-  margin-right: 0;
-}
-.navbar .btn-navbar {
-  display: none;
-  float: right;
-  padding: 7px 10px;
-  margin-left: 5px;
-  margin-right: 5px;
-  background-color: #512e2d;
-  background-image: -moz-linear-gradient(top, #5e3534, #3d2222);
-  background-image: -ms-linear-gradient(top, #5e3534, #3d2222);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5e3534), to(#3d2222));
-  background-image: -webkit-linear-gradient(top, #5e3534, #3d2222);
-  background-image: -o-linear-gradient(top, #5e3534, #3d2222);
-  background-image: linear-gradient(top, #5e3534, #3d2222);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5e3534', endColorstr='#3d2222', GradientType=0);
-  border-color: #3d2222 #3d2222 #0c0707;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  *background-color: #3d2222;
-  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
-
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-  -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
-  -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
-  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
-}
-.navbar .btn-navbar:hover,
-.navbar .btn-navbar:active,
-.navbar .btn-navbar.active,
-.navbar .btn-navbar.disabled,
-.navbar .btn-navbar[disabled] {
-  background-color: #3d2222;
-  *background-color: #2d1919;
-}
-.navbar .btn-navbar:active,
-.navbar .btn-navbar.active {
-  background-color: #1c1010 \9;
-}
-.navbar .btn-navbar .icon-bar {
-  display: block;
-  width: 18px;
-  height: 2px;
-  background-color: #f5f5f5;
-  -webkit-border-radius: 1px;
-  -moz-border-radius: 1px;
-  border-radius: 1px;
-  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
-  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
-  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
-}
-.btn-navbar .icon-bar + .icon-bar {
-  margin-top: 3px;
-}
-.navbar .dropdown-menu:before {
-  content: '';
-  display: inline-block;
-  border-left: 7px solid transparent;
-  border-right: 7px solid transparent;
-  border-bottom: 7px solid #ccc;
-  border-bottom-color: rgba(0, 0, 0, 0.2);
-  position: absolute;
-  top: -7px;
-  left: 9px;
-}
-.navbar .dropdown-menu:after {
-  content: '';
-  display: inline-block;
-  border-left: 6px solid transparent;
-  border-right: 6px solid transparent;
-  border-bottom: 6px solid #1a1515;
-  position: absolute;
-  top: -6px;
-  left: 10px;
-}
-.navbar-fixed-bottom .dropdown-menu:before {
-  border-top: 7px solid #ccc;
-  border-top-color: rgba(0, 0, 0, 0.2);
-  border-bottom: 0;
-  bottom: -7px;
-  top: auto;
-}
-.navbar-fixed-bottom .dropdown-menu:after {
-  border-top: 6px solid #1a1515;
-  border-bottom: 0;
-  bottom: -6px;
-  top: auto;
-}
-.navbar .nav li.dropdown .dropdown-toggle .caret,
-.navbar .nav li.dropdown.open .caret {
-  border-top-color: #1a1515;
-  border-bottom-color: #1a1515;
-}
-.navbar .nav li.dropdown.active .caret {
-  opacity: 1;
-  filter: alpha(opacity=100);
-}
-.navbar .nav li.dropdown.open > .dropdown-toggle,
-.navbar .nav li.dropdown.active > .dropdown-toggle,
-.navbar .nav li.dropdown.open.active > .dropdown-toggle {
-  background-color: transparent;
-}
-.navbar .nav li.dropdown.active > .dropdown-toggle:hover {
-  color: #1a1515;
-}
-.navbar .pull-right .dropdown-menu,
-.navbar .dropdown-menu.pull-right {
-  left: auto;
-  right: 0;
-}
-.navbar .pull-right .dropdown-menu:before,
-.navbar .dropdown-menu.pull-right:before {
-  left: auto;
-  right: 12px;
-}
-.navbar .pull-right .dropdown-menu:after,
-.navbar .dropdown-menu.pull-right:after {
-  left: auto;
-  right: 13px;
-}
-.breadcrumb {
-  padding: 7px 14px;
-  margin: 0 0 18px;
-  list-style: none;
-  background-color: #726f6f;
-  background-image: -moz-linear-gradient(top, #1a1515, #f5f5f5);
-  background-image: -ms-linear-gradient(top, #1a1515, #f5f5f5);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#1a1515), to(#f5f5f5));
-  background-image: -webkit-linear-gradient(top, #1a1515, #f5f5f5);
-  background-image: -o-linear-gradient(top, #1a1515, #f5f5f5);
-  background-image: linear-gradient(top, #1a1515, #f5f5f5);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1a1515', endColorstr='#f5f5f5', GradientType=0);
-  border: 1px solid #ddd;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-  -webkit-box-shadow: inset 0 1px 0 #1a1515;
-  -moz-box-shadow: inset 0 1px 0 #1a1515;
-  box-shadow: inset 0 1px 0 #1a1515;
-}
-.breadcrumb li {
-  display: inline-block;
-  *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
-  text-shadow: 0 1px 0 #1a1515;
-}
-.breadcrumb .divider {
-  padding: 0 5px;
-  color: #E26128;
-}
-.breadcrumb .active a {
-  color: #5e3534;
-}
-.pagination {
-  height: 36px;
-  margin: 18px 0;
-}
-.pagination ul {
-  display: inline-block;
-  *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
-  margin-left: 0;
-  margin-bottom: 0;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
-  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
-  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-.pagination li {
-  display: inline;
-}
-.pagination a {
-  float: left;
-  padding: 0 14px;
-  line-height: 34px;
-  text-decoration: none;
-  border: 1px solid #ddd;
-  border-left-width: 0;
-}
-.pagination a:hover,
-.pagination .active a {
-  background-color: #f5f5f5;
-}
-.pagination .active a {
-  color: #E26128;
-  cursor: default;
-}
-.pagination .disabled span,
-.pagination .disabled a,
-.pagination .disabled a:hover {
-  color: #E26128;
-  background-color: transparent;
-  cursor: default;
-}
-.pagination li:first-child a {
-  border-left-width: 1px;
-  -webkit-border-radius: 3px 0 0 3px;
-  -moz-border-radius: 3px 0 0 3px;
-  border-radius: 3px 0 0 3px;
-}
-.pagination li:last-child a {
-  -webkit-border-radius: 0 3px 3px 0;
-  -moz-border-radius: 0 3px 3px 0;
-  border-radius: 0 3px 3px 0;
-}
-.pagination-centered {
-  text-align: center;
-}
-.pagination-right {
-  text-align: right;
-}
-.pager {
-  margin-left: 0;
-  margin-bottom: 18px;
-  list-style: none;
-  text-align: center;
-  *zoom: 1;
-}
-.pager:before,
-.pager:after {
-  display: table;
-  content: "";
-}
-.pager:after {
-  clear: both;
-}
-.pager li {
-  display: inline;
-}
-.pager a {
-  display: inline-block;
-  padding: 5px 14px;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  -webkit-border-radius: 15px;
-  -moz-border-radius: 15px;
-  border-radius: 15px;
-}
-.pager a:hover {
-  text-decoration: none;
-  background-color: #f5f5f5;
-}
-.pager .next a {
-  float: right;
-}
-.pager .previous a {
-  float: left;
-}
-.pager .disabled a,
-.pager .disabled a:hover {
-  color: #E26128;
-  background-color: #fff;
-  cursor: default;
-}
-.modal-open .dropdown-menu {
-  z-index: 2050;
-}
-.modal-open .dropdown.open {
-  *z-index: 2050;
-}
-.modal-open .popover {
-  z-index: 2060;
-}
-.modal-open .tooltip {
-  z-index: 2070;
-}
-.modal-backdrop {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1040;
-  background-color: #1a1515;
-}
-.modal-backdrop.fade {
-  opacity: 0;
-}
-.modal-backdrop,
-.modal-backdrop.fade.in {
-  opacity: 0.8;
-  filter: alpha(opacity=80);
-}
-.modal {
-  position: fixed;
-  top: 50%;
-  left: 50%;
-  z-index: 1050;
-  overflow: auto;
-  width: 560px;
-  margin: -250px 0 0 -280px;
-  background-color: #1a1515;
-  border: 1px solid #999;
-  border: 1px solid rgba(0, 0, 0, 0.3);
-  *border: 1px solid #999;
-  /* IE6-7 */
-
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-  -webkit-background-clip: padding-box;
-  -moz-background-clip: padding-box;
-  background-clip: padding-box;
-}
-.modal.fade {
-  -webkit-transition: opacity .3s linear, top .3s ease-out;
-  -moz-transition: opacity .3s linear, top .3s ease-out;
-  -ms-transition: opacity .3s linear, top .3s ease-out;
-  -o-transition: opacity .3s linear, top .3s ease-out;
-  transition: opacity .3s linear, top .3s ease-out;
-  top: -25%;
-}
-.modal.fade.in {
-  top: 50%;
-}
-.modal-header {
-  padding: 9px 15px;
-  border-bottom: 1px solid #eee;
-}
-.modal-header .close {
-  margin-top: 2px;
-}
-.modal-body {
-  overflow-y: auto;
-  max-height: 400px;
-  padding: 15px;
-}
-.modal-form {
-  margin-bottom: 0;
-}
-.modal-footer {
-  padding: 14px 15px 15px;
-  margin-bottom: 0;
-  text-align: right;
-  background-color: #f5f5f5;
-  border-top: 1px solid #ddd;
-  -webkit-border-radius: 0 0 6px 6px;
-  -moz-border-radius: 0 0 6px 6px;
-  border-radius: 0 0 6px 6px;
-  -webkit-box-shadow: inset 0 1px 0 #1a1515;
-  -moz-box-shadow: inset 0 1px 0 #1a1515;
-  box-shadow: inset 0 1px 0 #1a1515;
-  *zoom: 1;
-}
-.modal-footer:before,
-.modal-footer:after {
-  display: table;
-  content: "";
-}
-.modal-footer:after {
-  clear: both;
-}
-.modal-footer .btn + .btn {
-  margin-left: 5px;
-  margin-bottom: 0;
-}
-.modal-footer .btn-group .btn + .btn {
-  margin-left: -1px;
-}
-.tooltip {
-  position: absolute;
-  z-index: 1020;
-  display: block;
-  visibility: visible;
-  padding: 5px;
-  font-size: 11px;
-  opacity: 0;
-  filter: alpha(opacity=0);
-}
-.tooltip.in {
-  opacity: 0.8;
-  filter: alpha(opacity=80);
-}
-.tooltip.top {
-  margin-top: -2px;
-}
-.tooltip.right {
-  margin-left: 2px;
-}
-.tooltip.bottom {
-  margin-top: 2px;
-}
-.tooltip.left {
-  margin-left: -2px;
-}
-.tooltip.top .tooltip-arrow {
-  bottom: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-left: 5px solid transparent;
-  border-right: 5px solid transparent;
-  border-top: 5px solid #1a1515;
-}
-.tooltip.left .tooltip-arrow {
-  top: 50%;
-  right: 0;
-  margin-top: -5px;
-  border-top: 5px solid transparent;
-  border-bottom: 5px solid transparent;
-  border-left: 5px solid #1a1515;
-}
-.tooltip.bottom .tooltip-arrow {
-  top: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-left: 5px solid transparent;
-  border-right: 5px solid transparent;
-  border-bottom: 5px solid #1a1515;
-}
-.tooltip.right .tooltip-arrow {
-  top: 50%;
-  left: 0;
-  margin-top: -5px;
-  border-top: 5px solid transparent;
-  border-bottom: 5px solid transparent;
-  border-right: 5px solid #1a1515;
-}
-.tooltip-inner {
-  max-width: 200px;
-  padding: 3px 8px;
-  color: #1a1515;
-  text-align: center;
-  text-decoration: none;
-  background-color: #1a1515;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.tooltip-arrow {
-  position: absolute;
-  width: 0;
-  height: 0;
-}
-.popover {
-  position: absolute;
-  top: 0;
-  left: 0;
-  z-index: 1010;
-  display: none;
-  padding: 5px;
-}
-.popover.top {
-  margin-top: -5px;
-}
-.popover.right {
-  margin-left: 5px;
-}
-.popover.bottom {
-  margin-top: 5px;
-}
-.popover.left {
-  margin-left: -5px;
-}
-.popover.top .arrow {
-  bottom: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-left: 5px solid transparent;
-  border-right: 5px solid transparent;
-  border-top: 5px solid #1a1515;
-}
-.popover.right .arrow {
-  top: 50%;
-  left: 0;
-  margin-top: -5px;
-  border-top: 5px solid transparent;
-  border-bottom: 5px solid transparent;
-  border-right: 5px solid #1a1515;
-}
-.popover.bottom .arrow {
-  top: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-left: 5px solid transparent;
-  border-right: 5px solid transparent;
-  border-bottom: 5px solid #1a1515;
-}
-.popover.left .arrow {
-  top: 50%;
-  right: 0;
-  margin-top: -5px;
-  border-top: 5px solid transparent;
-  border-bottom: 5px solid transparent;
-  border-left: 5px solid #1a1515;
-}
-.popover .arrow {
-  position: absolute;
-  width: 0;
-  height: 0;
-}
-.popover-inner {
-  padding: 3px;
-  width: 280px;
-  overflow: hidden;
-  background: #1a1515;
-  background: rgba(0, 0, 0, 0.8);
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-}
-.popover-title {
-  padding: 9px 15px;
-  line-height: 1;
-  background-color: #f5f5f5;
-  border-bottom: 1px solid #eee;
-  -webkit-border-radius: 3px 3px 0 0;
-  -moz-border-radius: 3px 3px 0 0;
-  border-radius: 3px 3px 0 0;
-}
-.popover-content {
-  padding: 14px;
-  background-color: #1a1515;
-  -webkit-border-radius: 0 0 3px 3px;
-  -moz-border-radius: 0 0 3px 3px;
-  border-radius: 0 0 3px 3px;
-  -webkit-background-clip: padding-box;
-  -moz-background-clip: padding-box;
-  background-clip: padding-box;
-}
-.popover-content p,
-.popover-content ul,
-.popover-content ol {
-  margin-bottom: 0;
-}
-.thumbnails {
-  margin-left: -20px;
-  list-style: none;
-  *zoom: 1;
-}
-.thumbnails:before,
-.thumbnails:after {
-  display: table;
-  content: "";
-}
-.thumbnails:after {
-  clear: both;
-}
-.row-fluid .thumbnails {
-  margin-left: 0;
-}
-.thumbnails > li {
-  float: left;
-  margin-bottom: 18px;
-  margin-left: 20px;
-}
-.thumbnail {
-  display: block;
-  padding: 4px;
-  line-height: 1;
-  border: 1px solid #ddd;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
-  -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
-  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-a.thumbnail:hover {
-  border-color: #E26128;
-  -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
-  -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
-  box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
-}
-.thumbnail > img {
-  display: block;
-  max-width: 100%;
-  margin-left: auto;
-  margin-right: auto;
-}
-.thumbnail .caption {
-  padding: 9px;
-}
-.label,
-.badge {
-  font-size: 10.998px;
-  font-weight: bold;
-  line-height: 14px;
-  color: #1a1515;
-  vertical-align: baseline;
-  white-space: nowrap;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  background-color: #E26128;
-}
-.label {
-  padding: 1px 4px 2px;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-}
-.badge {
-  padding: 1px 9px 2px;
-  -webkit-border-radius: 9px;
-  -moz-border-radius: 9px;
-  border-radius: 9px;
-}
-a.label:hover,
-a.badge:hover {
-  color: #1a1515;
-  text-decoration: none;
-  cursor: pointer;
-}
-.label-important,
-.badge-important {
-  background-color: #b94a48;
-}
-.label-important[href],
-.badge-important[href] {
-  background-color: #953b39;
-}
-.label-warning,
-.badge-warning {
-  background-color: #f89406;
-}
-.label-warning[href],
-.badge-warning[href] {
-  background-color: #c67605;
-}
-.label-success,
-.badge-success {
-  background-color: #468847;
-}
-.label-success[href],
-.badge-success[href] {
-  background-color: #356635;
-}
-.label-info,
-.badge-info {
-  background-color: #7B7E8C; /* STE #3a87ad; */
-}
-.label-info[href],
-.badge-info[href] {
-  background-color: #2d6987;
-}
-.label-inverse,
-.badge-inverse {
-  background-color: #5e3534;
-}
-.label-inverse[href],
-.badge-inverse[href] {
-  background-color: #3d2222;
-}
-@-webkit-keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-@-moz-keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-@-ms-keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-@-o-keyframes progress-bar-stripes {
-  from {
-    background-position: 0 0;
-  }
-  to {
-    background-position: 40px 0;
-  }
-}
-@keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-.progress {
-  overflow: hidden;
-  height: 18px;
-  margin-bottom: 18px;
-  background-color: #f7f7f7;
-  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
-  background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
-  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
-  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
-  background-image: linear-gradient(top, #f5f5f5, #f9f9f9);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);
-  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.progress .bar {
-  width: 0%;
-  height: 18px;
-  color: #1a1515;
-  font-size: 12px;
-  text-align: center;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  background-color: #0e90d2;
-  background-image: -moz-linear-gradient(top, #149bdf, #0480be);
-  background-image: -ms-linear-gradient(top, #149bdf, #0480be);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
-  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
-  background-image: -o-linear-gradient(top, #149bdf, #0480be);
-  background-image: linear-gradient(top, #149bdf, #0480be);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);
-  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-  -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -ms-box-sizing: border-box;
-  box-sizing: border-box;
-/*  -webkit-transition: width 0.6s ease;
-  -moz-transition: width 0.6s ease;
-  -ms-transition: width 0.6s ease;
-  -o-transition: width 0.6s ease;
-  transition: width 0.6s ease;  STE removed transition*/
-}
-.progress-striped .bar {
-  background-color: #A2412D; /* STE #149bdf */;
-  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
-  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  -webkit-background-size: 40px 40px;
-  -moz-background-size: 40px 40px;
-  -o-background-size: 40px 40px;
-  background-size: 40px 40px;
-}
-.progress.active .bar {
-  -webkit-animation: progress-bar-stripes 2s linear infinite;
-  -moz-animation: progress-bar-stripes 2s linear infinite;
-  -ms-animation: progress-bar-stripes 2s linear infinite;
-  -o-animation: progress-bar-stripes 2s linear infinite;
-  animation: progress-bar-stripes 2s linear infinite;
-}
-.progress-danger .bar {
-  background-color: #dd514c;
-  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
-  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: linear-gradient(top, #ee5f5b, #c43c35);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
-}
-.progress-danger.progress-striped .bar {
-  background-color: #ee5f5b;
-  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
-  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-.progress-success .bar {
-  background-color: #5eb95e;
-  background-image: -moz-linear-gradient(top, #62c462, #57a957);
-  background-image: -ms-linear-gradient(top, #62c462, #57a957);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
-  background-image: -webkit-linear-gradient(top, #62c462, #57a957);
-  background-image: -o-linear-gradient(top, #62c462, #57a957);
-  background-image: linear-gradient(top, #62c462, #57a957);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
-}
-.progress-success.progress-striped .bar {
-  background-color: #62c462;
-  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
-  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-.progress-info .bar {
-  background-color: #4bb1cf;
-  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
-  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: linear-gradient(top, #5bc0de, #339bb9);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
-}
-.progress-info.progress-striped .bar {
-  background-color: #5bc0de;
-  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
-  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-.progress-warning .bar {
-  background-color: #faa732;
-  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
-  background-image: -ms-linear-gradient(top, #fbb450, #f89406);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
-  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
-  background-image: -o-linear-gradient(top, #fbb450, #f89406);
-  background-image: linear-gradient(top, #fbb450, #f89406);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);
-}
-.progress-warning.progress-striped .bar {
-  background-color: #fbb450;
-  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
-  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-.accordion {
-  margin-bottom: 18px;
-}
-.accordion-group {
-  margin-bottom: 2px;
-  border: 1px solid #e5e5e5;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.accordion-heading {
-  border-bottom: 0;
-}
-.accordion-heading .accordion-toggle {
-  display: block;
-  padding: 8px 15px;
-}
-.accordion-toggle {
-  cursor: pointer;
-}
-.accordion-inner {
-  padding: 9px 15px;
-  border-top: 1px solid #e5e5e5;
-}
-.carousel {
-  position: relative;
-  margin-bottom: 18px;
-  line-height: 1;
-}
-.carousel-inner {
-  overflow: hidden;
-  width: 100%;
-  position: relative;
-}
-.carousel .item {
-  display: none;
-  position: relative;
-  -webkit-transition: 0.6s ease-in-out left;
-  -moz-transition: 0.6s ease-in-out left;
-  -ms-transition: 0.6s ease-in-out left;
-  -o-transition: 0.6s ease-in-out left;
-  transition: 0.6s ease-in-out left;
-}
-.carousel .item > img {
-  display: block;
-  line-height: 1;
-}
-.carousel .active,
-.carousel .next,
-.carousel .prev {
-  display: block;
-}
-.carousel .active {
-  left: 0;
-}
-.carousel .next,
-.carousel .prev {
-  position: absolute;
-  top: 0;
-  width: 100%;
-}
-.carousel .next {
-  left: 100%;
-}
-.carousel .prev {
-  left: -100%;
-}
-.carousel .next.left,
-.carousel .prev.right {
-  left: 0;
-}
-.carousel .active.left {
-  left: -100%;
-}
-.carousel .active.right {
-  left: 100%;
-}
-.carousel-control {
-  position: absolute;
-  top: 40%;
-  left: 15px;
-  width: 40px;
-  height: 40px;
-  margin-top: -20px;
-  font-size: 60px;
-  font-weight: 100;
-  line-height: 30px;
-  color: #1a1515;
-  text-align: center;
-  background: #3d2222;
-  border: 3px solid #1a1515;
-  -webkit-border-radius: 23px;
-  -moz-border-radius: 23px;
-  border-radius: 23px;
-  opacity: 0.5;
-  filter: alpha(opacity=50);
-}
-.carousel-control.right {
-  left: auto;
-  right: 15px;
-}
-.carousel-control:hover {
-  color: #1a1515;
-  text-decoration: none;
-  opacity: 0.9;
-  filter: alpha(opacity=90);
-}
-.carousel-caption {
-  position: absolute;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  padding: 10px 15px 5px;
-  background: #5e3534;
-  background: rgba(0, 0, 0, 0.75);
-}
-.carousel-caption h4,
-.carousel-caption p {
-  color: #1a1515;
-}
-.hero-unit {
-  padding: 30px; /* STE */
-  margin-bottom: 30px;
-  background-color: #eb9742;
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-}
-.hero-unit h1 {
-  margin-bottom: 0;
-  font-size: 60px;
-  line-height: 1;
-  color: inherit;
-  letter-spacing: -1px;
-}
-.hero-unit p {
-  font-size: 18px;
-  font-weight: 200;
-  line-height: 27px;
-  color: inherit;
-}
-.pull-right {
-  float: right;
-}
-.pull-left {
-  float: left;
-}
-.hide {
-  display: none;
-}
-.show {
-  display: block;
-}
-.invisible {
-  visibility: hidden;
-}
-
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/css/docs.css b/suite/pts/hostTests/browser/browserlauncher/assets/octane/css/docs.css
deleted file mode 100644
index 92a4ec8..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/css/docs.css
+++ /dev/null
@@ -1,846 +0,0 @@
-/* Add additional stylesheets below
--------------------------------------------------- */
-/*
-  Bootstrap's documentation styles
-  Special styles for presenting Bootstrap's documentation and examples
-*/
-
-
-/* Body and structure
--------------------------------------------------- */
-body {
-  position: relative;
-  padding-top: 90px;
-  background-color: #fff;
-  background-image: url(../img/grid-18px-masked.png);
-  background-repeat: repeat-x;
-  background-position: 0 40px;
-}
-
-
-/* Tweak navbar brand link to be super sleek
--------------------------------------------------- */
-.navbar-fixed-top .brand {
-  padding-right: 0;
-  padding-left: 0;
-  margin-left: 20px;
-  float: right;
-  font-weight: bold;
-  color: #000;
-  text-shadow: 0 1px 0 rgba(255,255,255,.1), 0 0 30px rgba(255,255,255,.125);
-  -webkit-transition: all .2s linear;
-     -moz-transition: all .2s linear;
-          transition: all .2s linear;
-}
-.navbar-fixed-top .brand:hover {
-  text-decoration: none;
-}
-
-
-/* Space out sub-sections more
--------------------------------------------------- */
-section {
-  padding-top: 60px;
-}
-
-/* Faded out hr */
-hr.soften {
-  height: 1px;
-  margin: 54px 0;
-  background-image: -webkit-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
-  background-image:    -moz-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
-  background-image:     -ms-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
-  background-image:      -o-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0));
-  border: 0;
-}
-
-
-/* Jumbotrons
--------------------------------------------------- */
-.jumbotron {
-  position: relative;
-}
-.jumbotron h1 {
-  margin-bottom: 9px;
-  font-size: 81px;
-  font-weight: bold;
-  letter-spacing: -1px;
-  line-height: 1;
-}
-.jumbotron p {
-  margin-bottom: 18px;
-  font-weight: 300;
-}
-.jumbotron .btn-large {
-  font-size: 20px;
-  font-weight: normal;
-  padding: 14px 24px;
-  margin-right: 10px;
-  -webkit-border-radius: 6px;
-     -moz-border-radius: 6px;
-          border-radius: 6px;
-}
-.jumbotron .btn-large small {
-  font-size: 14px;
-}
-
-/* Masthead (docs home) */
-.masthead {
-  padding-top: 36px;
-  margin-bottom: 72px;
-}
-.masthead h1,
-.masthead p {
-  text-align: center;
-}
-.masthead h1 {
-  margin-bottom: 18px;
-}
-.masthead p {
-  margin-left: 5%;
-  margin-right: 5%;
-  font-size: 30px;
-  line-height: 36px;
-}
-
-
-/* Specific jumbotrons
-------------------------- */
-/* supporting docs pages */
-.subhead {
-  padding-bottom: 0;
-  margin-bottom: 9px;
-}
-.subhead h1 {
-  font-size: 54px;
-}
-
-/* Subnav */
-.subnav {
-  width: 100%;
-  height: 36px;
-  background-color: #eeeeee; /* Old browsers */
-  background-repeat: repeat-x; /* Repeat the gradient */
-  background-image: -moz-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%); /* FF3.6+ */
-  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(100%,#eeeeee)); /* Chrome,Safari4+ */
-  background-image: -webkit-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* Chrome 10+,Safari 5.1+ */
-  background-image: -ms-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* IE10+ */
-  background-image: -o-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* Opera 11.10+ */
-  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#eeeeee',GradientType=0 ); /* IE6-9 */
-  background-image: linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* W3C */
-  border: 1px solid #e5e5e5;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-}
-.subnav .nav {
-  margin-bottom: 0;
-}
-.subnav .nav > li > a {
-  margin: 0;
-  padding-top:    11px;
-  padding-bottom: 11px;
-  border-left: 1px solid #f5f5f5;
-  border-right: 1px solid #e5e5e5;
-  -webkit-border-radius: 0;
-     -moz-border-radius: 0;
-          border-radius: 0;
-}
-.subnav .nav > .active > a,
-.subnav .nav > .active > a:hover {
-  padding-left: 13px;
-  color: #777;
-  background-color: #e9e9e9;
-  border-right-color: #ddd;
-  border-left: 0;
-  -webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
-     -moz-box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
-          box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
-}
-.subnav .nav > .active > a .caret,
-.subnav .nav > .active > a:hover .caret {
-  border-top-color: #777;
-}
-.subnav .nav > li:first-child > a,
-.subnav .nav > li:first-child > a:hover {
-  border-left: 0;
-  padding-left: 12px;
-  -webkit-border-radius: 4px 0 0 4px;
-     -moz-border-radius: 4px 0 0 4px;
-          border-radius: 4px 0 0 4px;
-}
-.subnav .nav > li:last-child > a {
-  border-right: 0;
-}
-.subnav .dropdown-menu {
-  -webkit-border-radius: 0 0 4px 4px;
-     -moz-border-radius: 0 0 4px 4px;
-          border-radius: 0 0 4px 4px;
-}
-
-/* Fixed subnav on scroll, but only for 980px and up (sorry IE!) */
-@media (min-width: 980px) {
-  .subnav-fixed {
-    position: fixed;
-    top: 40px;
-    left: 0;
-    right: 0;
-    z-index: 1020; /* 10 less than .navbar-fixed to prevent any overlap */
-    border-color: #d5d5d5;
-    border-width: 0 0 1px; /* drop the border on the fixed edges */
-    -webkit-border-radius: 0;
-       -moz-border-radius: 0;
-            border-radius: 0;
-    -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
-       -moz-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
-            box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
-    filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); /* IE6-9 */
-  }
-  .subnav-fixed .nav {
-    width: 938px;
-    margin: 0 auto;
-    padding: 0 1px;
-  }
-  .subnav .nav > li:first-child > a,
-  .subnav .nav > li:first-child > a:hover {
-    -webkit-border-radius: 0;
-       -moz-border-radius: 0;
-            border-radius: 0;
-  }
-}
-
-
-/* Quick links
--------------------------------------------------- */
-.bs-links {
-  margin: 36px 0;
-}
-.quick-links {
-  min-height: 30px;
-  margin: 0;
-  padding: 5px 20px;
-  list-style: none;
-  text-align: center;
-  overflow: hidden;
-}
-.quick-links:first-child {
-  min-height: 0;
-}
-.quick-links li {
-  display: inline;
-  margin: 0 8px;
-  color: #999;
-}
-.quick-links .github-btn,
-.quick-links .tweet-btn,
-.quick-links .follow-btn {
-  position: relative;
-  top: 5px;
-}
-
-
-/* Marketing section of Overview
--------------------------------------------------- */
-.marketing .row {
-  margin-bottom: 9px;
-}
-.marketing h1 {
-  margin: 36px 0 27px;
-  font-size: 40px;
-  font-weight: 300;
-  text-align: center;
-}
-.marketing h2,
-.marketing h3 {
-  font-weight: 300;
-}
-.marketing h2 {
-  font-size: 22px;
-}
-.marketing p {
-  margin-right: 10px;
-}
-.marketing .bs-icon {
-  float: left;
-  margin: 7px 10px 0 0;
-  opacity: .8;
-}
-.marketing .small-bs-icon {
-  float: left;
-  margin: 4px 5px 0 0;
-}
-
-
-
-/* Footer
--------------------------------------------------- */
-.footer {
-  margin-top: 45px;
-  padding: 35px 0 36px;
-  border-top: 1px solid #e5e5e5;
-}
-.footer p {
-  margin-bottom: 0;
-  color: #555;
-}
-
-
-
-/* Special grid styles
--------------------------------------------------- */
-.show-grid {
-  margin-top: 10px;
-  margin-bottom: 20px;
-}
-.show-grid [class*="span"] {
-  background-color: #eee;
-  text-align: center;
-  -webkit-border-radius: 3px;
-     -moz-border-radius: 3px;
-          border-radius: 3px;
-  min-height: 30px;
-  line-height: 30px;
-}
-.show-grid:hover [class*="span"] {
-  background: #ddd;
-}
-.show-grid .show-grid {
-  margin-top: 0;
-  margin-bottom: 0;
-}
-.show-grid .show-grid [class*="span"] {
-  background-color: #ccc;
-}
-
-
-/* Render mini layout previews
--------------------------------------------------- */
-.mini-layout {
-  border: 1px solid #ddd;
-  -webkit-border-radius: 6px;
-     -moz-border-radius: 6px;
-          border-radius: 6px;
-  -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.075);
-     -moz-box-shadow: 0 1px 2px rgba(0,0,0,.075);
-          box-shadow: 0 1px 2px rgba(0,0,0,.075);
-}
-.mini-layout {
-  height: 240px;
-  margin-bottom: 20px;
-  padding: 9px;
-}
-.mini-layout div {
-  -webkit-border-radius: 3px;
-     -moz-border-radius: 3px;
-          border-radius: 3px;
-}
-.mini-layout .mini-layout-body {
-  background-color: #dceaf4;
-  margin: 0 auto;
-  width: 70%;
-  height: 240px;
-}
-.mini-layout.fluid .mini-layout-sidebar,
-.mini-layout.fluid .mini-layout-header,
-.mini-layout.fluid .mini-layout-body {
-  float: left;
-}
-.mini-layout.fluid .mini-layout-sidebar {
-  background-color: #bbd8e9;
-  width: 20%;
-  height: 240px;
-}
-.mini-layout.fluid .mini-layout-body {
-  width: 77.5%;
-  margin-left: 2.5%;
-}
-
-
-/* Popover docs
--------------------------------------------------- */
-.popover-well {
-  min-height: 160px;
-}
-.popover-well .popover {
-  display: block;
-}
-.popover-well .popover-wrapper {
-  width: 50%;
-  height: 160px;
-  float: left;
-  margin-left: 55px;
-  position: relative;
-}
-.popover-well .popover-menu-wrapper {
-  height: 80px;
-}
-.large-bird {
-  margin: 5px 0 0 310px;
-  opacity: .1;
-}
-
-
-/* Download page
--------------------------------------------------- */
-.download .page-header {
-  margin-top: 36px;
-}
-.page-header .toggle-all {
-  margin-top: 5px;
-}
-
-/* Space out h3s when following a section */
-.download h3 {
-  margin-bottom: 5px;
-}
-.download-builder input + h3,
-.download-builder .checkbox + h3 {
-  margin-top: 9px;
-}
-
-/* Fields for variables */
-.download-builder input[type=text] {
-  margin-bottom: 9px;
-  font-family: Menlo, Monaco, "Courier New", monospace;
-  font-size: 12px;
-  color: #d14;
-}
-.download-builder input[type=text]:focus {
-  background-color: #fff;
-}
-
-/* Custom, larger checkbox labels */
-.download .checkbox {
-  padding: 6px 10px 6px 25px;
-  color: #555;
-  background-color: #f9f9f9;
-  -webkit-border-radius: 3px;
-     -moz-border-radius: 3px;
-          border-radius: 3px;
-  cursor: pointer;
-}
-.download .checkbox:hover {
-  color: #333;
-  background-color: #f5f5f5;
-}
-.download .checkbox small {
-  font-size: 12px;
-  color: #777;
-}
-
-/* Variables section */
-#variables label {
-  margin-bottom: 0;
-}
-
-/* Giant download button */
-.download-btn {
-  margin: 36px 0 108px;
-}
-#download p,
-#download h4 {
-  max-width: 50%;
-  margin: 0 auto;
-  color: #999;
-  text-align: center;
-}
-#download h4 {
-  margin-bottom: 0;
-}
-#download p {
-  margin-bottom: 18px;
-}
-.download-btn .btn {
-  display: block;
-  width: auto;
-  padding: 19px 24px;
-  margin-bottom: 27px;
-  font-size: 30px;
-  line-height: 1;
-  text-align: center;
-  -webkit-border-radius: 6px;
-     -moz-border-radius: 6px;
-          border-radius: 6px;
-}
-
-
-
-/* Color swatches on LESS docs page
--------------------------------------------------- */
-/* Sets the width of the td */
-.swatch-col {
-  width: 30px;
-}
-/* Le swatch */
-.swatch {
-  display: inline-block;
-  width: 30px;
-  height: 20px;
-  margin: -6px 0;
-  -webkit-border-radius: 3px;
-     -moz-border-radius: 3px;
-          border-radius: 3px;
-}
-/* For white swatches, give a border */
-.swatch-bordered {
-  width: 28px;
-  height: 18px;
-  border: 1px solid #eee;
-}
-
-
-/* Misc
--------------------------------------------------- */
-
-/* Make tables spaced out a bit more */
-h2 + table,
-h3 + table,
-h4 + table,
-h2 + .row {
-  margin-top: 5px;
-}
-
-/* Example sites showcase */
-.example-sites img {
-  max-width: 100%;
-  margin: 0 auto;
-}
-.marketing-byline {
-  margin: -18px 0 27px;
-  font-size: 18px;
-  font-weight: 300;
-  line-height: 24px;
-  color: #999;
-  text-align: center;
-}
-
-.scrollspy-example {
-  height: 200px;
-  overflow: auto;
-  position: relative;
-}
-
-/* Remove bottom margin on example forms in wells */
-form.well {
-  padding: 14px;
-}
-
-/* Tighten up spacing */
-.well hr {
-  margin: 18px 0;
-}
-
-/* Fake the :focus state to demo it */
-.focused {
-  border-color: rgba(82,168,236,.8);
-  -webkit-box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);
-     -moz-box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);
-          box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);
-  outline: 0;
-}
-
-/* For input sizes, make them display block */
-.docs-input-sizes select,
-.docs-input-sizes input[type=text] {
-  display: block;
-  margin-bottom: 9px;
-}
-
-/* Icons
-------------------------- */
-.the-icons {
-  margin-left: 0;
-  list-style: none;
-}
-.the-icons i:hover {
-  background-color: rgba(255,0,0,.25);
-}
-
-/* Eaxmples page
-------------------------- */
-.bootstrap-examples .thumbnail {
-  margin-bottom: 9px;
-  background-color: #fff;
-}
-
-/* Responsive table
-------------------------- */
-.responsive-utilities th small {
-  display: block;
-  font-weight: normal;
-  color: #999;
-}
-.responsive-utilities tbody th {
-  font-weight: normal;
-}
-.responsive-utilities td {
-  text-align: center;
-}
-.responsive-utilities td.is-visible {
-  color: #468847;
-  background-color: #dff0d8 !important;
-}
-.responsive-utilities td.is-hidden {
-  color: #ccc;
-  background-color: #f9f9f9 !important;
-}
-
-/* Responsive tests
-------------------------- */
-.responsive-utilities-test {
-  margin-top: 5px;
-  margin-left: 0;
-  list-style: none;
-  overflow: hidden; /* clear floats */
-}
-.responsive-utilities-test li {
-  position: relative;
-  float: left;
-  width: 25%;
-  height: 43px;
-  font-size: 14px;
-  font-weight: bold;
-  line-height: 43px;
-  color: #999;
-  text-align: center;
-  border: 1px solid #ddd;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-}
-.responsive-utilities-test li + li {
-  margin-left: 10px;
-}
-.responsive-utilities-test span {
-  position: absolute;
-  top:    -1px;
-  left:   -1px;
-  right:  -1px;
-  bottom: -1px;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-}
-.responsive-utilities-test span {
-  color: #468847;
-  background-color: #dff0d8;
-  border: 1px solid #d6e9c6;
-}
-
-
-/* Responsive Docs
--------------------------------------------------- */
-@media (max-width: 480px) {
-
-  /* Reduce padding above jumbotron */
-  body {
-    padding-top: 70px;
-  }
-
-  /* Change up some type stuff */
-  h2 {
-    margin-top: 27px;
-  }
-  h2 small {
-    display: block;
-    line-height: 18px;
-  }
-  h3 {
-    margin-top: 18px;
-  }
-
-  /* icons */
-  .marketing .bs-icon {
-    margin: 0;
-  }
-
-  /* Adjust the jumbotron */
-  .jumbotron h1,
-  .jumbotron p {
-    text-align: center;
-    margin-right: 0;
-  }
-  .jumbotron h1 {
-    font-size: 45px;
-    margin-right: 0;
-  }
-  .jumbotron p {
-    margin-right: 0;
-    margin-left: 0;
-    font-size: 18px;
-    line-height: 24px;
-  }
-  .jumbotron .btn {
-    display: block;
-    font-size: 18px;
-    padding: 10px 14px;
-    margin: 0 auto 10px;
-  }
-  /* Masthead (home page jumbotron) */
-  .masthead {
-    padding-top: 0;
-  }
-
-  /* Don't space out quick links so much */
-  .quick-links {
-    margin: 40px 0 0;
-  }
-  /* hide the bullets on mobile since our horizontal space is limited */
-  .quick-links .divider {
-    display: none;
-  }
-
-  /* center example sites */
-  .example-sites {
-    margin-left: 0;
-  }
-  .example-sites > li {
-    float: none;
-    display: block;
-    max-width: 280px;
-    margin: 0 auto 18px;
-    text-align: center;
-  }
-  .example-sites .thumbnail > img {
-    max-width: 270px;
-  }
-
-  table code {
-    white-space: normal;
-    word-wrap: break-word;
-    word-break: break-all;
-  }
-
-  /* Modal example */
-  .modal-example .modal {
-    position: relative;
-    top: auto;
-    right: auto;
-    bottom: auto;
-    left: auto;
-  }
-
-}
-
-
-@media (max-width: 768px) {
-
-  /* Remove any padding from the body */
-  body {
-    padding-top: 0;
-  }
-
-  /* Jumbotron buttons */
-  .jumbotron .btn {
-    margin-bottom: 10px;
-  }
-
-  /* Subnav */
-  .subnav {
-    position: static;
-    top: auto;
-    z-index: auto;
-    width: auto;
-    height: auto;
-    background: #fff; /* whole background property since we use a background-image for gradient */
-    -webkit-box-shadow: none;
-       -moz-box-shadow: none;
-            box-shadow: none;
-  }
-  .subnav .nav > li {
-    float: none;
-  }
-  .subnav .nav > li > a {
-    border: 0;
-  }
-  .subnav .nav > li + li > a {
-    border-top: 1px solid #e5e5e5;
-  }
-  .subnav .nav > li:first-child > a,
-  .subnav .nav > li:first-child > a:hover {
-      -webkit-border-radius: 4px 4px 0 0;
-         -moz-border-radius: 4px 4px 0 0;
-              border-radius: 4px 4px 0 0;
-  }
-
-  /* Popovers */
-  .large-bird {
-    display: none;
-  }
-  .popover-well .popover-wrapper {
-    margin-left: 0;
-  }
-
-  /* Space out the show-grid examples */
-  .show-grid [class*="span"] {
-    margin-bottom: 5px;
-  }
-
-  /* Unfloat the back to top link in footer */
-  .footer .pull-right {
-    float: none;
-  }
-  .footer p {
-    margin-bottom: 9px;
-  }
-
-}
-
-
-@media (min-width: 480px) and (max-width: 768px) {
-
-  /* Scale down the jumbotron content */
-  .jumbotron h1 {
-    font-size: 54px;
-  }
-  .jumbotron p {
-    margin-right: 0;
-    margin-left: 0;
-  }
-
-}
-
-
-@media (min-width: 768px) and (max-width: 980px) {
-
-  /* Remove any padding from the body */
-  body {
-    padding-top: 0;
-  }
-
-  /* Scale down the jumbotron content */
-  .jumbotron h1 {
-    font-size: 72px;
-  }
-
-}
-
-
-@media (max-width: 980px) {
-
-  /* Unfloat brand */
-  .navbar-fixed-top .brand {
-    float: left;
-    margin-left: 0;
-    padding-left: 10px;
-    padding-right: 10px;
-  }
-
-  /* Inline-block quick links for more spacing */
-  .quick-links li {
-    display: inline-block;
-    margin: 5px;
-  }
-
-}
-
-
-/* LARGE DESKTOP SCREENS */
-@media (min-width: 1210px) {
-
-  /* Update subnav container */
-  .subnav-fixed .nav {
-    width: 1168px; /* 2px less to account for left/right borders being removed when in fixed mode */
-  }
-
-}
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/deltablue.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/deltablue.js
deleted file mode 100644
index 70d3b01..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/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', 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/suite/pts/hostTests/browser/browserlauncher/assets/octane/earley-boyer.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/earley-boyer.js
deleted file mode 100644
index b2328d6..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/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", function () { BgL_earleyzd2benchmarkzd2(); }),
-  new Benchmark("Boyer", 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, "&amp;");
-	tmp = tmp.replace(/</g, "&lt;");
-	tmp = tmp.replace(/>/g, "&gt;");
-	tmp = tmp.replace(/ /g, "&nbsp;");
-	tmp = tmp.replace(/\n/g, "<br />");
-	tmp = tmp.replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp");
-	return tmp;
-	
-    }
-
-    document.write("<div id='stdout'></div>");
-    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 < <fx <fl)
-           (type bool)
-           (peephole (infix 2 2 "<")))
-*/
-function sc_less(x) {
-    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_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_isCharLess = sc_isCharStringLess;
-/*** 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_isCharCILess = sc_isCharStringCILess;
-/*** 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 "#<struct" + sc_hash(this) + ">";
-};
-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 "#<procedure " + sc_hash(o) + ">";
-    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 "#<procedure " + sc_hash(o) + ">";
-    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_isStringLess(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_isStringCILess(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<BgL_sc_nbzd2nts_97zd2)?(sc_list((sc_list(name, ((sc_toks_95[i]).car))))):(sc_list((sc_list(name))))):((prev = (sc_conf_91-(1))), (sc_loop1_98 = function(l1, l2) {
-                            var loop2;
-                            var ender_set;
-                            var state;
-                            var ender;
-                            var l1;
-                            var l2;
-                            while (true) {
-                                if ((l1 instanceof sc_Pair))
-                                    {
-                                        (ender = (l1.car));
-                                        (ender_set = ((state = (sc_states_96[j])), (state[(ender+(1))])));
-                                        if ((ender_set!== false))
-                                            {
-                                                loop2 = function(k, l2) {
-                                                    var loop3;
-                                                    var ender_trees;
-                                                    var prev_trees;
-                                                    var conf_set;
-                                                    var sc_state_99;
-                                                    var k;
-                                                    var l2;
-                                                    while (true) {
-                                                        if ((k>=(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<BgL_sc_nbzd2nts_115zd2)), ((tmp1124!== false)?tmp1124:((sc_steps_112[prev])<(0))))!== false)?(1):((sc_loop1_116 = function(l, sc_n_118) {
-                            var nb_ender_trees;
-                            var nb_prev_trees;
-                            var conf_set;
-                            var state;
-                            var k;
-                            var n;
-                            var ender_set;
-                            var sc_state_117;
-                            var ender;
-                            var l;
-                            var sc_n_118;
-                            while (true) {
-                                if ((l instanceof sc_Pair))
-                                    {
-                                        (ender = (l.car));
-                                        (ender_set = ((sc_state_117 = (sc_states_114[j])), (sc_state_117[(ender+(1))])));
-                                        if ((ender_set!== false))
-                                            {
-                                                (k = (ender_set[(2)]));
-                                                (n = sc_n_118);
-                                                while ((k>=(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<BgL_sc_nbzd2toks_35zd2)) {
-                        {
-                            (tok_nts = ((sc_toks_36[sc_i_28]).cdr));
-                            (BgL_sc_confzd2setzd2adjoinza2_45za2(sc_states_33, (sc_i_28+(1)), tok_nts, sc_i_28));
-                            (forw(sc_states_33, (sc_i_28+(1)), sc_starters_41, sc_enders_40, sc_predictors_39, sc_steps_38, sc_nts_42));
-                            (++sc_i_28);
-                        }
-                    }
-                    (nb_toks = (sc_toks_36.length));
-                    (BgL_sc_nbzd2confs_32zd2 = (sc_steps_38.length));
-                    (BgL_sc_nbzd2nts_31zd2 = (sc_nts_42.length));
-                    (BgL_sc_statesza2_30za2 = (make_states(nb_toks, BgL_sc_nbzd2confs_32zd2)));
-                    (goal_enders = (sc_enders_40[(0)]));
-                    (l = goal_enders);
-                    while ((l instanceof sc_Pair)) {
-                        {
-                            (conf = (l.car));
-                            (BgL_sc_confzd2setzd2adjoinza2za2_46z00(sc_states_33, BgL_sc_statesza2_30za2, nb_toks, conf, (0)));
-                            (l = (l.cdr));
-                        }
-                    }
-                    (i = nb_toks);
-                    while ((i>=(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/suite/pts/hostTests/browser/browserlauncher/assets/octane/gbemu.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/gbemu.js
deleted file mode 100644
index 5e98592..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/gbemu.js
+++ /dev/null
@@ -1,11108 +0,0 @@
-// Portions copyright 2012 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', 18000000,
-                                          [new Benchmark('Gameboy',
-                                                         runGameboy,
-                                                         setupGameboy,
-                                                         tearDownGameboy,
-                                                         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.
-
-GameBoyWindow = { };
-
-function GameBoyContext() {
-  this.createBuffer = function() {
-    return new Buffer();
-  }
-  this.createImageData = function (w, h) {
-    var result = {};
-    result.data = new Uint8Array(w * h);
-    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 stateStr = JSON.stringify(state);
-  if (typeof expectedGameboyStateStr != "undefined") {
-    if (stateStr != expectedGameboyStateStr) {
-      alert("Incorrect final state of processor:\n" +
-            " actual   " + stateStr + "\n" +
-            " expected " + expectedGameboyStateStr);
-    }
-  } else {
-    alert(stateStr);
-  }
-}
-
-
-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.
-
-// 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.
-
-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/suite/pts/hostTests/browser/browserlauncher/assets/octane/ico/apple-touch-icon-114-precomposed.png b/suite/pts/hostTests/browser/browserlauncher/assets/octane/ico/apple-touch-icon-114-precomposed.png
deleted file mode 100644
index 1cf1cbd..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/ico/apple-touch-icon-114-precomposed.png
+++ /dev/null
Binary files differ
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/ico/apple-touch-icon-144-precomposed.png b/suite/pts/hostTests/browser/browserlauncher/assets/octane/ico/apple-touch-icon-144-precomposed.png
deleted file mode 100644
index b791e90..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/ico/apple-touch-icon-144-precomposed.png
+++ /dev/null
Binary files differ
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/ico/apple-touch-icon-57-precomposed.png b/suite/pts/hostTests/browser/browserlauncher/assets/octane/ico/apple-touch-icon-57-precomposed.png
deleted file mode 100644
index af5458b..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/ico/apple-touch-icon-57-precomposed.png
+++ /dev/null
Binary files differ
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/ico/apple-touch-icon-72-precomposed.png b/suite/pts/hostTests/browser/browserlauncher/assets/octane/ico/apple-touch-icon-72-precomposed.png
deleted file mode 100644
index e5529b9..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/ico/apple-touch-icon-72-precomposed.png
+++ /dev/null
Binary files differ
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/ico/favicon.ico b/suite/pts/hostTests/browser/browserlauncher/assets/octane/ico/favicon.ico
deleted file mode 100644
index 8a05c14..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/ico/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/index.html b/suite/pts/hostTests/browser/browserlauncher/assets/octane/index.html
deleted file mode 100644
index 0e2a79d..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/index.html
+++ /dev/null
@@ -1,390 +0,0 @@
-<!DOCTYPE html>
-<!-- Copyright 2012 the Octane project authors. Scroll to the end for full license -->
-<html lang="en">
-<head>
-<meta http-equiv="X-UA-Compatible" value="IE=edge"/>
-<meta charset="utf-8"/>
-<title>Octane JavaScript Benchmark</title>
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<meta http-equiv="Content-Script-Type" content="text/javascript">
-<meta name="description"
-  content="Octane JavaScript Benchmark - the Javascript benchmark for the modern web">
-<meta name="author" content="Octane Team Google">
-<!-- twitter bootstrap code -->
-<script src="js/jquery.js"></script>
-<script src="js/bootstrap-transition.js"></script>
-<script src="js/bootstrap-collapse.js"></script>
-<!-- Octane benchmark code -->
-<script type="text/javascript" src="base.js"></script>
-<script type="text/javascript" src="richards.js"></script>
-<script type="text/javascript" src="deltablue.js"></script>
-<script type="text/javascript" src="crypto.js"></script>
-<script type="text/javascript" src="raytrace.js"></script>
-<script type="text/javascript" src="earley-boyer.js"></script>
-<script type="text/javascript" src="regexp.js"></script>
-<script type="text/javascript" src="splay.js"></script>
-<script type="text/javascript" src="navier-stokes.js"></script>
-<script type="text/javascript" src="pdfjs.js"></script>
-<script type="text/javascript" src="mandreel.js"></script>
-<script type="text/javascript" src="gbemu.js"></script>
-<script type="text/javascript" src="code-load.js"></script>
-<script type="text/javascript" src="box2d.js"></script>
-
-<script type="text/javascript">
-  var completed = 0;
-  var benchmarks = BenchmarkSuite.CountBenchmarks();
-  var success = true;
-
-  function ShowBox(name) {
-    var box = document.getElementById("Box-" + name);
-    box.style.visibility = 'visible';
-    var bar = document.getElementById("progress-bar").style.width = ""
-        + ((++completed) / benchmarks) * 100 + "%";
-  }
-
-  function AddResult(name, result) {
-    console.log(name + ': ' + result);
-    var box = document.getElementById("Result-" + name);
-    box.innerHTML = result;
-  }
-
-  function AddError(name, error) {
-    console.log(error);
-    if (error == "TypedArrayUnsupported") {
-      AddResult(name, '<b>Unsupported<\/b>');
-    } else {
-      AddResult(name, '<b>Error</b>');
-    }
-    success = false;
-  }
-
-  function AddScore(score) {
-    var status = document.getElementById("main-banner");
-    if (success) {
-      status.innerHTML = "Octane Score: " + score;
-    } else {
-      status.innerHTML = "Octane Score (incomplete): " + score;
-    }
-    // print the result for the host
-    console.log(status.innerHTML);
-    document.getElementById("progress-bar-container").style.visibility = 'hidden';
-    document.getElementById("bottom-text").style.visibility = 'visible';
-    document.getElementById("inside-anchor").removeChild(document.getElementById("bar-appendix"));
-    document.getElementById("warning-header").style.visibility = 'hidden';
-  }
-
-  function Run() {
-    document.getElementById("main-banner").innerHTML = "Running Octane...";
-    // append the progress bar elements..
-    document.getElementById("bar-appendix").innerHTML = "<br/><div class=\"progress progress-striped\" id=\"progress-bar-container\" style=\"visibility:hidden\"><div class=\"bar\"style=\"width: 0%;\" id=\"progress-bar\"></div></div>";
-    var anchor = document.getElementById("run-octane");
-    var parent = document.getElementById("main-container");
-    parent.appendChild(document.getElementById("inside-anchor"));
-    parent.removeChild(anchor);
-
-    document.getElementById("startup-text").innerHTML="";
-
-    document.getElementById("progress-bar-container").style.visibility = 'visible';
-
-    BenchmarkSuite.RunSuites({
-      NotifyStart : ShowBox,
-      NotifyError : AddError,
-      NotifyResult : AddResult,
-      NotifyScore : AddScore
-    });
-  }
-
-  function CheckCompatibility() {
-    // If no Typed Arrays support, show warning label.
-    var hasTypedArrays = typeof Uint8Array != "undefined"
-        && typeof Float64Array != "undefined"
-        && typeof (new Uint8Array(0)).subarray != "undefined";
-
-    if (!hasTypedArrays) {
-      console.log("Typed Arrays not supported");
-      document.getElementById("alertbox").style.display="block";
-    }
-    if (window.document.URL.indexOf('auto=1') >= 0)
-      Run();
-  }
-
-  function Load() {
-    setTimeout(CheckCompatibility, 200);
-  }
-</script>
-<!-- end Octane benchmark code -->
-
-<!-- Le styles -->
-<link href="css/bootstrap.css" rel="stylesheet">
-<style>
-body {
-  padding-top: 60px;
-  /* 60px to make the container go all the way to the bottom of the topbar */
-}
-</style>
-<link href="css/bootstrap-responsive.css" rel="stylesheet">
-
-<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
-<!--[if lt IE 9]>
-      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
-<![endif]-->
-
-<!-- Le fav and touch icons -->
-<!-- TODO update icons -->
-<link rel="shortcut icon" href="ico/favicon.ico">
-<link rel="apple-touch-icon-precomposed" sizes="144x144"
-  href="ico/apple-touch-icon-144-precomposed.png">
-<link rel="apple-touch-icon-precomposed" sizes="114x114"
-  href="ico/apple-touch-icon-114-precomposed.png">
-<link rel="apple-touch-icon-precomposed" sizes="72x72"
-  href="ico/apple-touch-icon-72-precomposed.png">
-<link rel="apple-touch-icon-precomposed"
-  href="ico/apple-touch-icon-57-precomposed.png">
-</head>
-
-<body onLoad="Load()">
-
-  <div class="navbar navbar-fixed-top">
-    <div class="navbar-inner">
-
-      <div class="container">
-
-        <a class="brand" href="#">Octane v1</a>
-       
-        <!--/.nav-collapse -->
-      </div>
-
-    </div>
-  </div>
-
-  <div class="container">
-    <div class="alert" style="display:none" id="alertbox">
-       <strong>Warning</strong> This JavaScript engine does not support Typed Arrays. You might want to run the <a href="http://v8.googlecode.com/svn/data/benchmarks/v7/run.html">V8 benchmark v7</a> instead.
-    </div>
-    <div id="main-container">
-    <a id="run-octane" href="javascript:Run()">
-      <div class="hero-unit" id="inside-anchor">
-        <h1 align="center" id="main-banner">Start Octane</h1>
-        <div id="bar-appendix"></div>
-      </div>
-    </a>
-    </div>
-
-    <div id="startup-text" style="color:white;" align="center">
-      Welcome to Octane, a JavaScript benchmark for the modern web. For more accurate results, <a href="http://developers.google.com/octane/benchmark">start the browser anew</a> before running the test. Refer to the <a href="http://developers.google.com/octane">documentation</a> for more information on Octane.
-    </div>
-
-    <div class="header"></div>
-
-    <div class="content">
-      <div class="row">
-        <div class="span3">
-          <!-- TODO STE change all links from staging to devsite -->
-          <div class="box" id="Box-Richards" style="visibility: hidden;">
-            <a href="http://developers.google.com/octane/benchmark#richards"
-              target="_blank" style="float:left; color:#994520">Richards</a>
-   
-            <span class="p-result" id="Result-Richards" style="float:right">...</span>
-            <span class="label-simple"
-              style="position: absolute; bottom: 3px; left: 3px;">Core
-              language features</span>
-          </div>
-
-        </div>
-        <div class="span3">
-          <div class="box" id="Box-DeltaBlue" style="visibility: hidden;">
-            <a href="http://developers.google.com/octane/benchmark#deltablue"
-              target="_blank" style="float:left; color:#994520">Deltablue</a>
-           
-            <p class="p-result" id="Result-DeltaBlue" style="float:right">...</p>
-            <span class="label-simple"
-              style="position: absolute; bottom: 3px; left: 3px;">Core
-              language features</span>
-          </div>
-        </div>
-        <div class="span3">
-          <div class="box" id="Box-Crypto" style="visibility: hidden;">
-            <a href="http://developers.google.com/octane/benchmark#crypto"
-              target="_blank" style="float:left; color:#994520">Crypto</a>
-           
-            <p class="p-result" id="Result-Crypto" style="float:right">...</p>
-            <span class="label-simple"
-              style="position: absolute; bottom: 3px; left: 3px;">Bit &
-              Math operations</span>
-          </div>
-        </div>
-        <div class="span3">
-          <div class="box" id="Box-RayTrace" style="visibility: hidden;">
-            <a href="http://developers.google.com/octane/benchmark#raytrace"
-              target="_blank" style="float:left; color:#994520">Raytrace</a>
-   
-            <p class="p-result" id="Result-RayTrace" style="float:right">...</p>
-            <span class="label-simple"
-              style="position: absolute; bottom: 3px; left: 3px;">Core
-              language features</span>
-          </div>
-        </div>
-
-      </div>
-      <!-- /row -->
-
-      <div class="row">
-
-        <div class="span3">
-          <div class="box" id="Box-EarleyBoyer" style="visibility: hidden;">
-            <a
-              href="http://developers.google.com/octane/benchmark#earleyboyer"
-              target="_blank" style="float:left; color:#994520">EarleyBoyer</a>
-           
-            <p class="p-result" id="Result-EarleyBoyer" style="float:right">...</p>
-            <span class="label-simple"
-              style="position: absolute; bottom: 3px; left: 3px;">Memory
-              & GC</span>
-          </div>
-        </div>
-        <div class="span3">
-          <div class="box" id="Box-RegExp" style="visibility: hidden;">
-            <a href="http://developers.google.com/octane/benchmark#regexp"
-              target="_blank" style="float:left; color:#994520">Regexp</a>
-           
-            <p class="p-result" id="Result-RegExp" style="float:right">...</p>
-            <span class="label-simple"
-              style="position: absolute; bottom: 3px; left: 3px;">Strings
-              & arrays</span>
-          </div>
-        </div>
-        <div class="span3">
-          <div class="box" id="Box-Splay" style="visibility: hidden;">
-            <a href="http://developers.google.com/octane/benchmark#splay"
-              target="_blank" style="float:left; color:#994520">Splay</a>
-           
-            <p class="p-result" id="Result-Splay" style="float:right">...</p>
-            <span class="label-simple"
-              style="position: absolute; bottom: 3px; left: 3px;">Memory
-              & GC</span>
-          </div>
-        </div>
-        <div class="span3">
-          <div class="box" id="Box-NavierStokes" style="visibility: hidden;">
-            <a
-              href="http://developers.google.com/octane/benchmark#navierstokes"
-              target="_blank" style="float:left; color:#994520">NavierStokes</a>
-           
-            <p class="p-result" id="Result-NavierStokes" style="float:right">...</p>
-            <span class="label-simple"
-              style="position: absolute; bottom: 3px; left: 3px;">Strings
-              & arrays</span>
-          </div>
-        </div>
-
-      </div>
-      <!-- /row -->
-
-      <div class="row">
-        <div class="span3">
-          <div class="box" id="Box-PdfJS" style="visibility: hidden;">
-            <a href="http://developers.google.com/octane/benchmark#pdfjs"
-              target="_blank" style="float:left; color:#994520">pdf.js</a>
-           
-            <p class="p-result" id="Result-PdfJS" style="float:right">...</p>
-            <span class="label-simple"
-              style="position: absolute; bottom: 3px; left: 3px;">Strings
-              & arrays</span>
-          </div>
-        </div>
-        <div class="span3">
-          <div class="box" id="Box-Mandreel" style="visibility: hidden;">
-            <a href="http://developers.google.com/octane/benchmark#mandreel"
-              target="_blank" style="float:left; color:#994520">Mandreel</a>
-           
-            <p class="p-result" id="Result-Mandreel" style="float:right">...</p>
-            <span class="label-simple"
-              style="position: absolute; bottom: 3px; left: 3px;">Virtual
-              machine</span>
-          </div>
-        </div>
-        <div class="span3">
-          <div class="box" id="Box-Gameboy" style="visibility: hidden;">
-            <a
-              href="http://developers.google.com/octane/benchmark#gameboyemulator"
-              target="_blank" style="float:left; color:#994520">GB Emulator</a>
-           
-            <p class="p-result" id="Result-Gameboy" style="float:right">...</p>
-            <span class="label-simple"
-              style="position: absolute; bottom: 3px; left: 3px;">Virtual
-              machine</span>
-          </div>
-        </div>
-        <div class="span3">
-          <div class="box" id="Box-CodeLoad" style="visibility: hidden;">
-            <a href="http://developers.google.com/octane/benchmark#codeload"
-              target="_blank" style="float:left; color:#994520">CodeLoad</a>
-           
-            <p class="p-result" id="Result-CodeLoad" style="float:right">...</p>
-            <span class="label-simple"
-              style="position: absolute; bottom: 3px; left: 3px;">Loading
-              & Parsing</span>
-          </div>
-        </div>
-
-      </div>
-      <!-- /row -->
-
-      <div class="row">
-        <div class="span3">
-          <div class="box" id="Box-Box2D" style="visibility: hidden;">
-            <a href="http://developers.google.com/octane/benchmark#box2d"
-              target="_blank" style="float:left; color:#994520">Box2DWeb</a>
-           
-            <p class="p-result" id="Result-Box2D" style="float:right">...</p>
-            <span class="label-simple"
-              style="position: absolute; bottom: 3px; left: 3px;">Bit &
-              Math operations</span>
-          </div>
-        </div>
-
-      </div>
-      <!-- /row -->
-
-    </div>
-    <!-- /content -->
-
-    <div id="bottom-text" style="color:white; visibility:hidden" align="center">
-      <br></br>
-       The final score is the <a href="http://en.wikipedia.org/wiki/Geometric_mean#Properties">geometric mean</a> of the single scores. We suggest to restart the browser before repeating the test.
-    </div>
-
-  </div>
-  <!-- /container -->
-
-</body>
-</html>
-
-<!--
-// Copyright 2012 the Octane 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.
--->
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/js/bootstrap-collapse.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/js/bootstrap-collapse.js
deleted file mode 100644
index fbc915b..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/js/bootstrap-collapse.js
+++ /dev/null
@@ -1,157 +0,0 @@
-/* =============================================================
- * bootstrap-collapse.js v2.0.4
- * http://twitter.github.com/bootstrap/javascript.html#collapse
- * =============================================================
- * Copyright 2012 Twitter, Inc.
- *
- * 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.
- * ============================================================ */
-
-
-!function ($) {
-
-  "use strict"; // jshint ;_;
-
-
- /* COLLAPSE PUBLIC CLASS DEFINITION
-  * ================================ */
-
-  var Collapse = function (element, options) {
-    this.$element = $(element)
-    this.options = $.extend({}, $.fn.collapse.defaults, options)
-
-    if (this.options.parent) {
-      this.$parent = $(this.options.parent)
-    }
-
-    this.options.toggle && this.toggle()
-  }
-
-  Collapse.prototype = {
-
-    constructor: Collapse
-
-  , dimension: function () {
-      var hasWidth = this.$element.hasClass('width')
-      return hasWidth ? 'width' : 'height'
-    }
-
-  , show: function () {
-      var dimension
-        , scroll
-        , actives
-        , hasData
-
-      if (this.transitioning) return
-
-      dimension = this.dimension()
-      scroll = $.camelCase(['scroll', dimension].join('-'))
-      actives = this.$parent && this.$parent.find('> .accordion-group > .in')
-
-      if (actives && actives.length) {
-        hasData = actives.data('collapse')
-        if (hasData && hasData.transitioning) return
-        actives.collapse('hide')
-        hasData || actives.data('collapse', null)
-      }
-
-      this.$element[dimension](0)
-      this.transition('addClass', $.Event('show'), 'shown')
-      this.$element[dimension](this.$element[0][scroll])
-    }
-
-  , hide: function () {
-      var dimension
-      if (this.transitioning) return
-      dimension = this.dimension()
-      this.reset(this.$element[dimension]())
-      this.transition('removeClass', $.Event('hide'), 'hidden')
-      this.$element[dimension](0)
-    }
-
-  , reset: function (size) {
-      var dimension = this.dimension()
-
-      this.$element
-        .removeClass('collapse')
-        [dimension](size || 'auto')
-        [0].offsetWidth
-
-      this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
-
-      return this
-    }
-
-  , transition: function (method, startEvent, completeEvent) {
-      var that = this
-        , complete = function () {
-            if (startEvent.type == 'show') that.reset()
-            that.transitioning = 0
-            that.$element.trigger(completeEvent)
-          }
-
-      this.$element.trigger(startEvent)
-
-      if (startEvent.isDefaultPrevented()) return
-
-      this.transitioning = 1
-
-      this.$element[method]('in')
-
-      $.support.transition && this.$element.hasClass('collapse') ?
-        this.$element.one($.support.transition.end, complete) :
-        complete()
-    }
-
-  , toggle: function () {
-      this[this.$element.hasClass('in') ? 'hide' : 'show']()
-    }
-
-  }
-
-
- /* COLLAPSIBLE PLUGIN DEFINITION
-  * ============================== */
-
-  $.fn.collapse = function (option) {
-    return this.each(function () {
-      var $this = $(this)
-        , data = $this.data('collapse')
-        , options = typeof option == 'object' && option
-      if (!data) $this.data('collapse', (data = new Collapse(this, options)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  $.fn.collapse.defaults = {
-    toggle: true
-  }
-
-  $.fn.collapse.Constructor = Collapse
-
-
- /* COLLAPSIBLE DATA-API
-  * ==================== */
-
-  $(function () {
-    $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) {
-      var $this = $(this), href
-        , target = $this.attr('data-target')
-          || e.preventDefault()
-          || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
-        , option = $(target).data('collapse') ? 'toggle' : $this.data()
-      $(target).collapse(option)
-    })
-  })
-
-}(window.jQuery);
\ No newline at end of file
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/js/bootstrap-transition.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/js/bootstrap-transition.js
deleted file mode 100644
index 5341826..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/js/bootstrap-transition.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/* ===================================================
- * bootstrap-transition.js v2.0.4
- * http://twitter.github.com/bootstrap/javascript.html#transitions
- * ===================================================
- * Copyright 2012 Twitter, Inc.
- *
- * 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.
- * ========================================================== */
-
-
-!function ($) {
-
-  $(function () {
-
-    "use strict"; // jshint ;_;
-
-
-    /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
-     * ======================================================= */
-
-    $.support.transition = (function () {
-
-      var transitionEnd = (function () {
-
-        var el = document.createElement('bootstrap')
-          , transEndEventNames = {
-               'WebkitTransition' : 'webkitTransitionEnd'
-            ,  'MozTransition'    : 'transitionend'
-            ,  'OTransition'      : 'oTransitionEnd'
-            ,  'msTransition'     : 'MSTransitionEnd'
-            ,  'transition'       : 'transitionend'
-            }
-          , name
-
-        for (name in transEndEventNames){
-          if (el.style[name] !== undefined) {
-            return transEndEventNames[name]
-          }
-        }
-
-      }())
-
-      return transitionEnd && {
-        end: transitionEnd
-      }
-
-    })()
-
-  })
-
-}(window.jQuery);
\ No newline at end of file
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/js/jquery.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/js/jquery.js
deleted file mode 100644
index 00c4e23..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/js/jquery.js
+++ /dev/null
@@ -1,9252 +0,0 @@
-/*! jQuery v1.7.1 jquery.com | jquery.org/license */
-(function( window, undefined ) {
-
-// Use the correct document accordingly with window argument (sandbox)
-var document = window.document,
-	navigator = window.navigator,
-	location = window.location;
-var jQuery = (function() {
-
-// Define a local copy of jQuery
-var jQuery = function( selector, context ) {
-		// The jQuery object is actually just the init constructor 'enhanced'
-		return new jQuery.fn.init( selector, context, rootjQuery );
-	},
-
-	// Map over jQuery in case of overwrite
-	_jQuery = window.jQuery,
-
-	// Map over the $ in case of overwrite
-	_$ = window.$,
-
-	// A central reference to the root jQuery(document)
-	rootjQuery,
-
-	// A simple way to check for HTML strings or ID strings
-	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
-	quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
-
-	// Check if a string has a non-whitespace character in it
-	rnotwhite = /\S/,
-
-	// Used for trimming whitespace
-	trimLeft = /^\s+/,
-	trimRight = /\s+$/,
-
-	// Match a standalone tag
-	rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
-
-	// JSON RegExp
-	rvalidchars = /^[\],:{}\s]*$/,
-	rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
-	rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
-	rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
-
-	// Useragent RegExp
-	rwebkit = /(webkit)[ \/]([\w.]+)/,
-	ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
-	rmsie = /(msie) ([\w.]+)/,
-	rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
-
-	// Matches dashed string for camelizing
-	rdashAlpha = /-([a-z]|[0-9])/ig,
-	rmsPrefix = /^-ms-/,
-
-	// Used by jQuery.camelCase as callback to replace()
-	fcamelCase = function( all, letter ) {
-		return ( letter + "" ).toUpperCase();
-	},
-
-	// Keep a UserAgent string for use with jQuery.browser
-	userAgent = navigator.userAgent,
-
-	// For matching the engine and version of the browser
-	browserMatch,
-
-	// The deferred used on DOM ready
-	readyList,
-
-	// The ready event handler
-	DOMContentLoaded,
-
-	// Save a reference to some core methods
-	toString = Object.prototype.toString,
-	hasOwn = Object.prototype.hasOwnProperty,
-	push = Array.prototype.push,
-	slice = Array.prototype.slice,
-	trim = String.prototype.trim,
-	indexOf = Array.prototype.indexOf,
-
-	// [[Class]] -> type pairs
-	class2type = {};
-
-jQuery.fn = jQuery.prototype = {
-	constructor: jQuery,
-	init: function( selector, context, rootjQuery ) {
-		var match, elem, ret, doc;
-
-		// Handle $(""), $(null), or $(undefined)
-		if ( !selector ) {
-			return this;
-		}
-
-		// Handle $(DOMElement)
-		if ( selector.nodeType ) {
-			this.context = this[0] = selector;
-			this.length = 1;
-			return this;
-		}
-
-		// The body element only exists once, optimize finding it
-		if ( selector === "body" && !context && document.body ) {
-			this.context = document;
-			this[0] = document.body;
-			this.selector = selector;
-			this.length = 1;
-			return this;
-		}
-
-		// Handle HTML strings
-		if ( typeof selector === "string" ) {
-			// Are we dealing with HTML string or an ID?
-			if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
-				// Assume that strings that start and end with <> are HTML and skip the regex check
-				match = [ null, selector, null ];
-
-			} else {
-				match = quickExpr.exec( selector );
-			}
-
-			// Verify a match, and that no context was specified for #id
-			if ( match && (match[1] || !context) ) {
-
-				// HANDLE: $(html) -> $(array)
-				if ( match[1] ) {
-					context = context instanceof jQuery ? context[0] : context;
-					doc = ( context ? context.ownerDocument || context : document );
-
-					// If a single string is passed in and it's a single tag
-					// just do a createElement and skip the rest
-					ret = rsingleTag.exec( selector );
-
-					if ( ret ) {
-						if ( jQuery.isPlainObject( context ) ) {
-							selector = [ document.createElement( ret[1] ) ];
-							jQuery.fn.attr.call( selector, context, true );
-
-						} else {
-							selector = [ doc.createElement( ret[1] ) ];
-						}
-
-					} else {
-						ret = jQuery.buildFragment( [ match[1] ], [ doc ] );
-						selector = ( ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment ).childNodes;
-					}
-
-					return jQuery.merge( this, selector );
-
-				// HANDLE: $("#id")
-				} else {
-					elem = document.getElementById( match[2] );
-
-					// Check parentNode to catch when Blackberry 4.6 returns
-					// nodes that are no longer in the document #6963
-					if ( elem && elem.parentNode ) {
-						// Handle the case where IE and Opera return items
-						// by name instead of ID
-						if ( elem.id !== match[2] ) {
-							return rootjQuery.find( selector );
-						}
-
-						// Otherwise, we inject the element directly into the jQuery object
-						this.length = 1;
-						this[0] = elem;
-					}
-
-					this.context = document;
-					this.selector = selector;
-					return this;
-				}
-
-			// HANDLE: $(expr, $(...))
-			} else if ( !context || context.jquery ) {
-				return ( context || rootjQuery ).find( selector );
-
-			// HANDLE: $(expr, context)
-			// (which is just equivalent to: $(context).find(expr)
-			} else {
-				return this.constructor( context ).find( selector );
-			}
-
-		// HANDLE: $(function)
-		// Shortcut for document ready
-		} else if ( jQuery.isFunction( selector ) ) {
-			return rootjQuery.ready( selector );
-		}
-
-		if ( selector.selector !== undefined ) {
-			this.selector = selector.selector;
-			this.context = selector.context;
-		}
-
-		return jQuery.makeArray( selector, this );
-	},
-
-	// Start with an empty selector
-	selector: "",
-
-	// The current version of jQuery being used
-	jquery: "1.7.1",
-
-	// The default length of a jQuery object is 0
-	length: 0,
-
-	// The number of elements contained in the matched element set
-	size: function() {
-		return this.length;
-	},
-
-	toArray: function() {
-		return slice.call( this, 0 );
-	},
-
-	// Get the Nth element in the matched element set OR
-	// Get the whole matched element set as a clean array
-	get: function( num ) {
-		return num == null ?
-
-			// Return a 'clean' array
-			this.toArray() :
-
-			// Return just the object
-			( num < 0 ? this[ this.length + num ] : this[ num ] );
-	},
-
-	// Take an array of elements and push it onto the stack
-	// (returning the new matched element set)
-	pushStack: function( elems, name, selector ) {
-		// Build a new jQuery matched element set
-		var ret = this.constructor();
-
-		if ( jQuery.isArray( elems ) ) {
-			push.apply( ret, elems );
-
-		} else {
-			jQuery.merge( ret, elems );
-		}
-
-		// Add the old object onto the stack (as a reference)
-		ret.prevObject = this;
-
-		ret.context = this.context;
-
-		if ( name === "find" ) {
-			ret.selector = this.selector + ( this.selector ? " " : "" ) + selector;
-		} else if ( name ) {
-			ret.selector = this.selector + "." + name + "(" + selector + ")";
-		}
-
-		// Return the newly-formed element set
-		return ret;
-	},
-
-	// Execute a callback for every element in the matched set.
-	// (You can seed the arguments with an array of args, but this is
-	// only used internally.)
-	each: function( callback, args ) {
-		return jQuery.each( this, callback, args );
-	},
-
-	ready: function( fn ) {
-		// Attach the listeners
-		jQuery.bindReady();
-
-		// Add the callback
-		readyList.add( fn );
-
-		return this;
-	},
-
-	eq: function( i ) {
-		i = +i;
-		return i === -1 ?
-			this.slice( i ) :
-			this.slice( i, i + 1 );
-	},
-
-	first: function() {
-		return this.eq( 0 );
-	},
-
-	last: function() {
-		return this.eq( -1 );
-	},
-
-	slice: function() {
-		return this.pushStack( slice.apply( this, arguments ),
-			"slice", slice.call(arguments).join(",") );
-	},
-
-	map: function( callback ) {
-		return this.pushStack( jQuery.map(this, function( elem, i ) {
-			return callback.call( elem, i, elem );
-		}));
-	},
-
-	end: function() {
-		return this.prevObject || this.constructor(null);
-	},
-
-	// For internal use only.
-	// Behaves like an Array's method, not like a jQuery method.
-	push: push,
-	sort: [].sort,
-	splice: [].splice
-};
-
-// Give the init function the jQuery prototype for later instantiation
-jQuery.fn.init.prototype = jQuery.fn;
-
-jQuery.extend = jQuery.fn.extend = function() {
-	var options, name, src, copy, copyIsArray, clone,
-		target = arguments[0] || {},
-		i = 1,
-		length = arguments.length,
-		deep = false;
-
-	// Handle a deep copy situation
-	if ( typeof target === "boolean" ) {
-		deep = target;
-		target = arguments[1] || {};
-		// skip the boolean and the target
-		i = 2;
-	}
-
-	// Handle case when target is a string or something (possible in deep copy)
-	if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
-		target = {};
-	}
-
-	// extend jQuery itself if only one argument is passed
-	if ( length === i ) {
-		target = this;
-		--i;
-	}
-
-	for ( ; i < length; i++ ) {
-		// Only deal with non-null/undefined values
-		if ( (options = arguments[ i ]) != null ) {
-			// Extend the base object
-			for ( name in options ) {
-				src = target[ name ];
-				copy = options[ name ];
-
-				// Prevent never-ending loop
-				if ( target === copy ) {
-					continue;
-				}
-
-				// Recurse if we're merging plain objects or arrays
-				if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
-					if ( copyIsArray ) {
-						copyIsArray = false;
-						clone = src && jQuery.isArray(src) ? src : [];
-
-					} else {
-						clone = src && jQuery.isPlainObject(src) ? src : {};
-					}
-
-					// Never move original objects, clone them
-					target[ name ] = jQuery.extend( deep, clone, copy );
-
-				// Don't bring in undefined values
-				} else if ( copy !== undefined ) {
-					target[ name ] = copy;
-				}
-			}
-		}
-	}
-
-	// Return the modified object
-	return target;
-};
-
-jQuery.extend({
-	noConflict: function( deep ) {
-		if ( window.$ === jQuery ) {
-			window.$ = _$;
-		}
-
-		if ( deep && window.jQuery === jQuery ) {
-			window.jQuery = _jQuery;
-		}
-
-		return jQuery;
-	},
-
-	// Is the DOM ready to be used? Set to true once it occurs.
-	isReady: false,
-
-	// A counter to track how many items to wait for before
-	// the ready event fires. See #6781
-	readyWait: 1,
-
-	// Hold (or release) the ready event
-	holdReady: function( hold ) {
-		if ( hold ) {
-			jQuery.readyWait++;
-		} else {
-			jQuery.ready( true );
-		}
-	},
-
-	// Handle when the DOM is ready
-	ready: function( wait ) {
-		// Either a released hold or an DOMready/load event and not yet ready
-		if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {
-			// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
-			if ( !document.body ) {
-				return setTimeout( jQuery.ready, 1 );
-			}
-
-			// Remember that the DOM is ready
-			jQuery.isReady = true;
-
-			// If a normal DOM Ready event fired, decrement, and wait if need be
-			if ( wait !== true && --jQuery.readyWait > 0 ) {
-				return;
-			}
-
-			// If there are functions bound, to execute
-			readyList.fireWith( document, [ jQuery ] );
-
-			// Trigger any bound ready events
-			if ( jQuery.fn.trigger ) {
-				jQuery( document ).trigger( "ready" ).off( "ready" );
-			}
-		}
-	},
-
-	bindReady: function() {
-		if ( readyList ) {
-			return;
-		}
-
-		readyList = jQuery.Callbacks( "once memory" );
-
-		// Catch cases where $(document).ready() is called after the
-		// browser event has already occurred.
-		if ( document.readyState === "complete" ) {
-			// Handle it asynchronously to allow scripts the opportunity to delay ready
-			return setTimeout( jQuery.ready, 1 );
-		}
-
-		// Mozilla, Opera and webkit nightlies currently support this event
-		if ( document.addEventListener ) {
-			// Use the handy event callback
-			document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
-
-			// A fallback to window.onload, that will always work
-			window.addEventListener( "load", jQuery.ready, false );
-
-		// If IE event model is used
-		} else if ( document.attachEvent ) {
-			// ensure firing before onload,
-			// maybe late but safe also for iframes
-			document.attachEvent( "onreadystatechange", DOMContentLoaded );
-
-			// A fallback to window.onload, that will always work
-			window.attachEvent( "onload", jQuery.ready );
-
-			// If IE and not a frame
-			// continually check to see if the document is ready
-			var toplevel = false;
-
-			try {
-				toplevel = window.frameElement == null;
-			} catch(e) {}
-
-			if ( document.documentElement.doScroll && toplevel ) {
-				doScrollCheck();
-			}
-		}
-	},
-
-	// See test/unit/core.js for details concerning isFunction.
-	// Since version 1.3, DOM methods and functions like alert
-	// aren't supported. They return false on IE (#2968).
-	isFunction: function( obj ) {
-		return jQuery.type(obj) === "function";
-	},
-
-	isArray: Array.isArray || function( obj ) {
-		return jQuery.type(obj) === "array";
-	},
-
-	// A crude way of determining if an object is a window
-	isWindow: function( obj ) {
-		return obj && typeof obj === "object" && "setInterval" in obj;
-	},
-
-	isNumeric: function( obj ) {
-		return !isNaN( parseFloat(obj) ) && isFinite( obj );
-	},
-
-	type: function( obj ) {
-		return obj == null ?
-			String( obj ) :
-			class2type[ toString.call(obj) ] || "object";
-	},
-
-	isPlainObject: function( obj ) {
-		// Must be an Object.
-		// Because of IE, we also have to check the presence of the constructor property.
-		// Make sure that DOM nodes and window objects don't pass through, as well
-		if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
-			return false;
-		}
-
-		try {
-			// Not own constructor property must be Object
-			if ( obj.constructor &&
-				!hasOwn.call(obj, "constructor") &&
-				!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
-				return false;
-			}
-		} catch ( e ) {
-			// IE8,9 Will throw exceptions on certain host objects #9897
-			return false;
-		}
-
-		// Own properties are enumerated firstly, so to speed up,
-		// if last one is own, then all properties are own.
-
-		var key;
-		for ( key in obj ) {}
-
-		return key === undefined || hasOwn.call( obj, key );
-	},
-
-	isEmptyObject: function( obj ) {
-		for ( var name in obj ) {
-			return false;
-		}
-		return true;
-	},
-
-	error: function( msg ) {
-		throw new Error( msg );
-	},
-
-	parseJSON: function( data ) {
-		if ( typeof data !== "string" || !data ) {
-			return null;
-		}
-
-		// Make sure leading/trailing whitespace is removed (IE can't handle it)
-		data = jQuery.trim( data );
-
-		// Attempt to parse using the native JSON parser first
-		if ( window.JSON && window.JSON.parse ) {
-			return window.JSON.parse( data );
-		}
-
-		// Make sure the incoming data is actual JSON
-		// Logic borrowed from http://json.org/json2.js
-		if ( rvalidchars.test( data.replace( rvalidescape, "@" )
-			.replace( rvalidtokens, "]" )
-			.replace( rvalidbraces, "")) ) {
-
-			return ( new Function( "return " + data ) )();
-
-		}
-		jQuery.error( "Invalid JSON: " + data );
-	},
-
-	// Cross-browser xml parsing
-	parseXML: function( data ) {
-		var xml, tmp;
-		try {
-			if ( window.DOMParser ) { // Standard
-				tmp = new DOMParser();
-				xml = tmp.parseFromString( data , "text/xml" );
-			} else { // IE
-				xml = new ActiveXObject( "Microsoft.XMLDOM" );
-				xml.async = "false";
-				xml.loadXML( data );
-			}
-		} catch( e ) {
-			xml = undefined;
-		}
-		if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
-			jQuery.error( "Invalid XML: " + data );
-		}
-		return xml;
-	},
-
-	noop: function() {},
-
-	// Evaluates a script in a global context
-	// Workarounds based on findings by Jim Driscoll
-	// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
-	globalEval: function( data ) {
-		if ( data && rnotwhite.test( data ) ) {
-			// We use execScript on Internet Explorer
-			// We use an anonymous function so that context is window
-			// rather than jQuery in Firefox
-			( window.execScript || function( data ) {
-				window[ "eval" ].call( window, data );
-			} )( data );
-		}
-	},
-
-	// Convert dashed to camelCase; used by the css and data modules
-	// Microsoft forgot to hump their vendor prefix (#9572)
-	camelCase: function( string ) {
-		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
-	},
-
-	nodeName: function( elem, name ) {
-		return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
-	},
-
-	// args is for internal usage only
-	each: function( object, callback, args ) {
-		var name, i = 0,
-			length = object.length,
-			isObj = length === undefined || jQuery.isFunction( object );
-
-		if ( args ) {
-			if ( isObj ) {
-				for ( name in object ) {
-					if ( callback.apply( object[ name ], args ) === false ) {
-						break;
-					}
-				}
-			} else {
-				for ( ; i < length; ) {
-					if ( callback.apply( object[ i++ ], args ) === false ) {
-						break;
-					}
-				}
-			}
-
-		// A special, fast, case for the most common use of each
-		} else {
-			if ( isObj ) {
-				for ( name in object ) {
-					if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
-						break;
-					}
-				}
-			} else {
-				for ( ; i < length; ) {
-					if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
-						break;
-					}
-				}
-			}
-		}
-
-		return object;
-	},
-
-	// Use native String.trim function wherever possible
-	trim: trim ?
-		function( text ) {
-			return text == null ?
-				"" :
-				trim.call( text );
-		} :
-
-		// Otherwise use our own trimming functionality
-		function( text ) {
-			return text == null ?
-				"" :
-				text.toString().replace( trimLeft, "" ).replace( trimRight, "" );
-		},
-
-	// results is for internal usage only
-	makeArray: function( array, results ) {
-		var ret = results || [];
-
-		if ( array != null ) {
-			// The window, strings (and functions) also have 'length'
-			// Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
-			var type = jQuery.type( array );
-
-			if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
-				push.call( ret, array );
-			} else {
-				jQuery.merge( ret, array );
-			}
-		}
-
-		return ret;
-	},
-
-	inArray: function( elem, array, i ) {
-		var len;
-
-		if ( array ) {
-			if ( indexOf ) {
-				return indexOf.call( array, elem, i );
-			}
-
-			len = array.length;
-			i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
-
-			for ( ; i < len; i++ ) {
-				// Skip accessing in sparse arrays
-				if ( i in array && array[ i ] === elem ) {
-					return i;
-				}
-			}
-		}
-
-		return -1;
-	},
-
-	merge: function( first, second ) {
-		var i = first.length,
-			j = 0;
-
-		if ( typeof second.length === "number" ) {
-			for ( var l = second.length; j < l; j++ ) {
-				first[ i++ ] = second[ j ];
-			}
-
-		} else {
-			while ( second[j] !== undefined ) {
-				first[ i++ ] = second[ j++ ];
-			}
-		}
-
-		first.length = i;
-
-		return first;
-	},
-
-	grep: function( elems, callback, inv ) {
-		var ret = [], retVal;
-		inv = !!inv;
-
-		// Go through the array, only saving the items
-		// that pass the validator function
-		for ( var i = 0, length = elems.length; i < length; i++ ) {
-			retVal = !!callback( elems[ i ], i );
-			if ( inv !== retVal ) {
-				ret.push( elems[ i ] );
-			}
-		}
-
-		return ret;
-	},
-
-	// arg is for internal usage only
-	map: function( elems, callback, arg ) {
-		var value, key, ret = [],
-			i = 0,
-			length = elems.length,
-			// jquery objects are treated as arrays
-			isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;
-
-		// Go through the array, translating each of the items to their
-		if ( isArray ) {
-			for ( ; i < length; i++ ) {
-				value = callback( elems[ i ], i, arg );
-
-				if ( value != null ) {
-					ret[ ret.length ] = value;
-				}
-			}
-
-		// Go through every key on the object
-		} else {
-			for ( key in elems ) {
-				value = callback( elems[ key ], key, arg );
-
-				if ( value != null ) {
-					ret[ ret.length ] = value;
-				}
-			}
-		}
-
-		// Flatten any nested arrays
-		return ret.concat.apply( [], ret );
-	},
-
-	// A global GUID counter for objects
-	guid: 1,
-
-	// Bind a function to a context, optionally partially applying any
-	// arguments.
-	proxy: function( fn, context ) {
-		if ( typeof context === "string" ) {
-			var tmp = fn[ context ];
-			context = fn;
-			fn = tmp;
-		}
-
-		// Quick check to determine if target is callable, in the spec
-		// this throws a TypeError, but we will just return undefined.
-		if ( !jQuery.isFunction( fn ) ) {
-			return undefined;
-		}
-
-		// Simulated bind
-		var args = slice.call( arguments, 2 ),
-			proxy = function() {
-				return fn.apply( context, args.concat( slice.call( arguments ) ) );
-			};
-
-		// Set the guid of unique handler to the same of original handler, so it can be removed
-		proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
-
-		return proxy;
-	},
-
-	// Mutifunctional method to get and set values to a collection
-	// The value/s can optionally be executed if it's a function
-	access: function( elems, key, value, exec, fn, pass ) {
-		var length = elems.length;
-
-		// Setting many attributes
-		if ( typeof key === "object" ) {
-			for ( var k in key ) {
-				jQuery.access( elems, k, key[k], exec, fn, value );
-			}
-			return elems;
-		}
-
-		// Setting one attribute
-		if ( value !== undefined ) {
-			// Optionally, function values get executed if exec is true
-			exec = !pass && exec && jQuery.isFunction(value);
-
-			for ( var i = 0; i < length; i++ ) {
-				fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
-			}
-
-			return elems;
-		}
-
-		// Getting an attribute
-		return length ? fn( elems[0], key ) : undefined;
-	},
-
-	now: function() {
-		return ( new Date() ).getTime();
-	},
-
-	// Use of jQuery.browser is frowned upon.
-	// More details: http://docs.jquery.com/Utilities/jQuery.browser
-	uaMatch: function( ua ) {
-		ua = ua.toLowerCase();
-
-		var match = rwebkit.exec( ua ) ||
-			ropera.exec( ua ) ||
-			rmsie.exec( ua ) ||
-			ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
-			[];
-
-		return { browser: match[1] || "", version: match[2] || "0" };
-	},
-
-	sub: function() {
-		function jQuerySub( selector, context ) {
-			return new jQuerySub.fn.init( selector, context );
-		}
-		jQuery.extend( true, jQuerySub, this );
-		jQuerySub.superclass = this;
-		jQuerySub.fn = jQuerySub.prototype = this();
-		jQuerySub.fn.constructor = jQuerySub;
-		jQuerySub.sub = this.sub;
-		jQuerySub.fn.init = function init( selector, context ) {
-			if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
-				context = jQuerySub( context );
-			}
-
-			return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
-		};
-		jQuerySub.fn.init.prototype = jQuerySub.fn;
-		var rootjQuerySub = jQuerySub(document);
-		return jQuerySub;
-	},
-
-	browser: {}
-});
-
-// Populate the class2type map
-jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
-	class2type[ "[object " + name + "]" ] = name.toLowerCase();
-});
-
-browserMatch = jQuery.uaMatch( userAgent );
-if ( browserMatch.browser ) {
-	jQuery.browser[ browserMatch.browser ] = true;
-	jQuery.browser.version = browserMatch.version;
-}
-
-// Deprecated, use jQuery.browser.webkit instead
-if ( jQuery.browser.webkit ) {
-	jQuery.browser.safari = true;
-}
-
-// IE doesn't match non-breaking spaces with \s
-if ( rnotwhite.test( "\xA0" ) ) {
-	trimLeft = /^[\s\xA0]+/;
-	trimRight = /[\s\xA0]+$/;
-}
-
-// All jQuery objects should point back to these
-rootjQuery = jQuery(document);
-
-// Cleanup functions for the document ready method
-if ( document.addEventListener ) {
-	DOMContentLoaded = function() {
-		document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
-		jQuery.ready();
-	};
-
-} else if ( document.attachEvent ) {
-	DOMContentLoaded = function() {
-		// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
-		if ( document.readyState === "complete" ) {
-			document.detachEvent( "onreadystatechange", DOMContentLoaded );
-			jQuery.ready();
-		}
-	};
-}
-
-// The DOM ready check for Internet Explorer
-function doScrollCheck() {
-	if ( jQuery.isReady ) {
-		return;
-	}
-
-	try {
-		// If IE is used, use the trick by Diego Perini
-		// http://javascript.nwbox.com/IEContentLoaded/
-		document.documentElement.doScroll("left");
-	} catch(e) {
-		setTimeout( doScrollCheck, 1 );
-		return;
-	}
-
-	// and execute any waiting functions
-	jQuery.ready();
-}
-
-return jQuery;
-
-})();
-
-
-// String to Object flags format cache
-var flagsCache = {};
-
-// Convert String-formatted flags into Object-formatted ones and store in cache
-function createFlags( flags ) {
-	var object = flagsCache[ flags ] = {},
-		i, length;
-	flags = flags.split( /\s+/ );
-	for ( i = 0, length = flags.length; i < length; i++ ) {
-		object[ flags[i] ] = true;
-	}
-	return object;
-}
-
-/*
- * Create a callback list using the following parameters:
- *
- *	flags:	an optional list of space-separated flags that will change how
- *			the callback list behaves
- *
- * By default a callback list will act like an event callback list and can be
- * "fired" multiple times.
- *
- * Possible flags:
- *
- *	once:			will ensure the callback list can only be fired once (like a Deferred)
- *
- *	memory:			will keep track of previous values and will call any callback added
- *					after the list has been fired right away with the latest "memorized"
- *					values (like a Deferred)
- *
- *	unique:			will ensure a callback can only be added once (no duplicate in the list)
- *
- *	stopOnFalse:	interrupt callings when a callback returns false
- *
- */
-jQuery.Callbacks = function( flags ) {
-
-	// Convert flags from String-formatted to Object-formatted
-	// (we check in cache first)
-	flags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {};
-
-	var // Actual callback list
-		list = [],
-		// Stack of fire calls for repeatable lists
-		stack = [],
-		// Last fire value (for non-forgettable lists)
-		memory,
-		// Flag to know if list is currently firing
-		firing,
-		// First callback to fire (used internally by add and fireWith)
-		firingStart,
-		// End of the loop when firing
-		firingLength,
-		// Index of currently firing callback (modified by remove if needed)
-		firingIndex,
-		// Add one or several callbacks to the list
-		add = function( args ) {
-			var i,
-				length,
-				elem,
-				type,
-				actual;
-			for ( i = 0, length = args.length; i < length; i++ ) {
-				elem = args[ i ];
-				type = jQuery.type( elem );
-				if ( type === "array" ) {
-					// Inspect recursively
-					add( elem );
-				} else if ( type === "function" ) {
-					// Add if not in unique mode and callback is not in
-					if ( !flags.unique || !self.has( elem ) ) {
-						list.push( elem );
-					}
-				}
-			}
-		},
-		// Fire callbacks
-		fire = function( context, args ) {
-			args = args || [];
-			memory = !flags.memory || [ context, args ];
-			firing = true;
-			firingIndex = firingStart || 0;
-			firingStart = 0;
-			firingLength = list.length;
-			for ( ; list && firingIndex < firingLength; firingIndex++ ) {
-				if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) {
-					memory = true; // Mark as halted
-					break;
-				}
-			}
-			firing = false;
-			if ( list ) {
-				if ( !flags.once ) {
-					if ( stack && stack.length ) {
-						memory = stack.shift();
-						self.fireWith( memory[ 0 ], memory[ 1 ] );
-					}
-				} else if ( memory === true ) {
-					self.disable();
-				} else {
-					list = [];
-				}
-			}
-		},
-		// Actual Callbacks object
-		self = {
-			// Add a callback or a collection of callbacks to the list
-			add: function() {
-				if ( list ) {
-					var length = list.length;
-					add( arguments );
-					// Do we need to add the callbacks to the
-					// current firing batch?
-					if ( firing ) {
-						firingLength = list.length;
-					// With memory, if we're not firing then
-					// we should call right away, unless previous
-					// firing was halted (stopOnFalse)
-					} else if ( memory && memory !== true ) {
-						firingStart = length;
-						fire( memory[ 0 ], memory[ 1 ] );
-					}
-				}
-				return this;
-			},
-			// Remove a callback from the list
-			remove: function() {
-				if ( list ) {
-					var args = arguments,
-						argIndex = 0,
-						argLength = args.length;
-					for ( ; argIndex < argLength ; argIndex++ ) {
-						for ( var i = 0; i < list.length; i++ ) {
-							if ( args[ argIndex ] === list[ i ] ) {
-								// Handle firingIndex and firingLength
-								if ( firing ) {
-									if ( i <= firingLength ) {
-										firingLength--;
-										if ( i <= firingIndex ) {
-											firingIndex--;
-										}
-									}
-								}
-								// Remove the element
-								list.splice( i--, 1 );
-								// If we have some unicity property then
-								// we only need to do this once
-								if ( flags.unique ) {
-									break;
-								}
-							}
-						}
-					}
-				}
-				return this;
-			},
-			// Control if a given callback is in the list
-			has: function( fn ) {
-				if ( list ) {
-					var i = 0,
-						length = list.length;
-					for ( ; i < length; i++ ) {
-						if ( fn === list[ i ] ) {
-							return true;
-						}
-					}
-				}
-				return false;
-			},
-			// Remove all callbacks from the list
-			empty: function() {
-				list = [];
-				return this;
-			},
-			// Have the list do nothing anymore
-			disable: function() {
-				list = stack = memory = undefined;
-				return this;
-			},
-			// Is it disabled?
-			disabled: function() {
-				return !list;
-			},
-			// Lock the list in its current state
-			lock: function() {
-				stack = undefined;
-				if ( !memory || memory === true ) {
-					self.disable();
-				}
-				return this;
-			},
-			// Is it locked?
-			locked: function() {
-				return !stack;
-			},
-			// Call all callbacks with the given context and arguments
-			fireWith: function( context, args ) {
-				if ( stack ) {
-					if ( firing ) {
-						if ( !flags.once ) {
-							stack.push( [ context, args ] );
-						}
-					} else if ( !( flags.once && memory ) ) {
-						fire( context, args );
-					}
-				}
-				return this;
-			},
-			// Call all the callbacks with the given arguments
-			fire: function() {
-				self.fireWith( this, arguments );
-				return this;
-			},
-			// To know if the callbacks have already been called at least once
-			fired: function() {
-				return !!memory;
-			}
-		};
-
-	return self;
-};
-
-
-
-
-var // Static reference to slice
-	sliceDeferred = [].slice;
-
-jQuery.extend({
-
-	Deferred: function( func ) {
-		var doneList = jQuery.Callbacks( "once memory" ),
-			failList = jQuery.Callbacks( "once memory" ),
-			progressList = jQuery.Callbacks( "memory" ),
-			state = "pending",
-			lists = {
-				resolve: doneList,
-				reject: failList,
-				notify: progressList
-			},
-			promise = {
-				done: doneList.add,
-				fail: failList.add,
-				progress: progressList.add,
-
-				state: function() {
-					return state;
-				},
-
-				// Deprecated
-				isResolved: doneList.fired,
-				isRejected: failList.fired,
-
-				then: function( doneCallbacks, failCallbacks, progressCallbacks ) {
-					deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks );
-					return this;
-				},
-				always: function() {
-					deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments );
-					return this;
-				},
-				pipe: function( fnDone, fnFail, fnProgress ) {
-					return jQuery.Deferred(function( newDefer ) {
-						jQuery.each( {
-							done: [ fnDone, "resolve" ],
-							fail: [ fnFail, "reject" ],
-							progress: [ fnProgress, "notify" ]
-						}, function( handler, data ) {
-							var fn = data[ 0 ],
-								action = data[ 1 ],
-								returned;
-							if ( jQuery.isFunction( fn ) ) {
-								deferred[ handler ](function() {
-									returned = fn.apply( this, arguments );
-									if ( returned && jQuery.isFunction( returned.promise ) ) {
-										returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify );
-									} else {
-										newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );
-									}
-								});
-							} else {
-								deferred[ handler ]( newDefer[ action ] );
-							}
-						});
-					}).promise();
-				},
-				// Get a promise for this deferred
-				// If obj is provided, the promise aspect is added to the object
-				promise: function( obj ) {
-					if ( obj == null ) {
-						obj = promise;
-					} else {
-						for ( var key in promise ) {
-							obj[ key ] = promise[ key ];
-						}
-					}
-					return obj;
-				}
-			},
-			deferred = promise.promise({}),
-			key;
-
-		for ( key in lists ) {
-			deferred[ key ] = lists[ key ].fire;
-			deferred[ key + "With" ] = lists[ key ].fireWith;
-		}
-
-		// Handle state
-		deferred.done( function() {
-			state = "resolved";
-		}, failList.disable, progressList.lock ).fail( function() {
-			state = "rejected";
-		}, doneList.disable, progressList.lock );
-
-		// Call given func if any
-		if ( func ) {
-			func.call( deferred, deferred );
-		}
-
-		// All done!
-		return deferred;
-	},
-
-	// Deferred helper
-	when: function( firstParam ) {
-		var args = sliceDeferred.call( arguments, 0 ),
-			i = 0,
-			length = args.length,
-			pValues = new Array( length ),
-			count = length,
-			pCount = length,
-			deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ?
-				firstParam :
-				jQuery.Deferred(),
-			promise = deferred.promise();
-		function resolveFunc( i ) {
-			return function( value ) {
-				args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
-				if ( !( --count ) ) {
-					deferred.resolveWith( deferred, args );
-				}
-			};
-		}
-		function progressFunc( i ) {
-			return function( value ) {
-				pValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
-				deferred.notifyWith( promise, pValues );
-			};
-		}
-		if ( length > 1 ) {
-			for ( ; i < length; i++ ) {
-				if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) {
-					args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) );
-				} else {
-					--count;
-				}
-			}
-			if ( !count ) {
-				deferred.resolveWith( deferred, args );
-			}
-		} else if ( deferred !== firstParam ) {
-			deferred.resolveWith( deferred, length ? [ firstParam ] : [] );
-		}
-		return promise;
-	}
-});
-
-
-
-
-jQuery.support = (function() {
-
-	var support,
-		all,
-		a,
-		select,
-		opt,
-		input,
-		marginDiv,
-		fragment,
-		tds,
-		events,
-		eventName,
-		i,
-		isSupported,
-		div = document.createElement( "div" ),
-		documentElement = document.documentElement;
-
-	// Preliminary tests
-	div.setAttribute("className", "t");
-	div.innerHTML = "   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
-
-	all = div.getElementsByTagName( "*" );
-	a = div.getElementsByTagName( "a" )[ 0 ];
-
-	// Can't get basic test support
-	if ( !all || !all.length || !a ) {
-		return {};
-	}
-
-	// First batch of supports tests
-	select = document.createElement( "select" );
-	opt = select.appendChild( document.createElement("option") );
-	input = div.getElementsByTagName( "input" )[ 0 ];
-
-	support = {
-		// IE strips leading whitespace when .innerHTML is used
-		leadingWhitespace: ( div.firstChild.nodeType === 3 ),
-
-		// Make sure that tbody elements aren't automatically inserted
-		// IE will insert them into empty tables
-		tbody: !div.getElementsByTagName("tbody").length,
-
-		// Make sure that link elements get serialized correctly by innerHTML
-		// This requires a wrapper element in IE
-		htmlSerialize: !!div.getElementsByTagName("link").length,
-
-		// Get the style information from getAttribute
-		// (IE uses .cssText instead)
-		style: /top/.test( a.getAttribute("style") ),
-
-		// Make sure that URLs aren't manipulated
-		// (IE normalizes it by default)
-		hrefNormalized: ( a.getAttribute("href") === "/a" ),
-
-		// Make sure that element opacity exists
-		// (IE uses filter instead)
-		// Use a regex to work around a WebKit issue. See #5145
-		opacity: /^0.55/.test( a.style.opacity ),
-
-		// Verify style float existence
-		// (IE uses styleFloat instead of cssFloat)
-		cssFloat: !!a.style.cssFloat,
-
-		// Make sure that if no value is specified for a checkbox
-		// that it defaults to "on".
-		// (WebKit defaults to "" instead)
-		checkOn: ( input.value === "on" ),
-
-		// Make sure that a selected-by-default option has a working selected property.
-		// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
-		optSelected: opt.selected,
-
-		// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
-		getSetAttribute: div.className !== "t",
-
-		// Tests for enctype support on a form(#6743)
-		enctype: !!document.createElement("form").enctype,
-
-		// Makes sure cloning an html5 element does not cause problems
-		// Where outerHTML is undefined, this still works
-		html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>",
-
-		// Will be defined later
-		submitBubbles: true,
-		changeBubbles: true,
-		focusinBubbles: false,
-		deleteExpando: true,
-		noCloneEvent: true,
-		inlineBlockNeedsLayout: false,
-		shrinkWrapBlocks: false,
-		reliableMarginRight: true
-	};
-
-	// Make sure checked status is properly cloned
-	input.checked = true;
-	support.noCloneChecked = input.cloneNode( true ).checked;
-
-	// Make sure that the options inside disabled selects aren't marked as disabled
-	// (WebKit marks them as disabled)
-	select.disabled = true;
-	support.optDisabled = !opt.disabled;
-
-	// Test to see if it's possible to delete an expando from an element
-	// Fails in Internet Explorer
-	try {
-		delete div.test;
-	} catch( e ) {
-		support.deleteExpando = false;
-	}
-
-	if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
-		div.attachEvent( "onclick", function() {
-			// Cloning a node shouldn't copy over any
-			// bound event handlers (IE does this)
-			support.noCloneEvent = false;
-		});
-		div.cloneNode( true ).fireEvent( "onclick" );
-	}
-
-	// Check if a radio maintains its value
-	// after being appended to the DOM
-	input = document.createElement("input");
-	input.value = "t";
-	input.setAttribute("type", "radio");
-	support.radioValue = input.value === "t";
-
-	input.setAttribute("checked", "checked");
-	div.appendChild( input );
-	fragment = document.createDocumentFragment();
-	fragment.appendChild( div.lastChild );
-
-	// WebKit doesn't clone checked state correctly in fragments
-	support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
-
-	// Check if a disconnected checkbox will retain its checked
-	// value of true after appended to the DOM (IE6/7)
-	support.appendChecked = input.checked;
-
-	fragment.removeChild( input );
-	fragment.appendChild( div );
-
-	div.innerHTML = "";
-
-	// Check if div with explicit width and no margin-right incorrectly
-	// gets computed margin-right based on width of container. For more
-	// info see bug #3333
-	// Fails in WebKit before Feb 2011 nightlies
-	// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
-	if ( window.getComputedStyle ) {
-		marginDiv = document.createElement( "div" );
-		marginDiv.style.width = "0";
-		marginDiv.style.marginRight = "0";
-		div.style.width = "2px";
-		div.appendChild( marginDiv );
-		support.reliableMarginRight =
-			( parseInt( ( window.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0;
-	}
-
-	// Technique from Juriy Zaytsev
-	// http://perfectionkills.com/detecting-event-support-without-browser-sniffing/
-	// We only care about the case where non-standard event systems
-	// are used, namely in IE. Short-circuiting here helps us to
-	// avoid an eval call (in setAttribute) which can cause CSP
-	// to go haywire. See: https://developer.mozilla.org/en/Security/CSP
-	if ( div.attachEvent ) {
-		for( i in {
-			submit: 1,
-			change: 1,
-			focusin: 1
-		}) {
-			eventName = "on" + i;
-			isSupported = ( eventName in div );
-			if ( !isSupported ) {
-				div.setAttribute( eventName, "return;" );
-				isSupported = ( typeof div[ eventName ] === "function" );
-			}
-			support[ i + "Bubbles" ] = isSupported;
-		}
-	}
-
-	fragment.removeChild( div );
-
-	// Null elements to avoid leaks in IE
-	fragment = select = opt = marginDiv = div = input = null;
-
-	// Run tests that need a body at doc ready
-	jQuery(function() {
-		var container, outer, inner, table, td, offsetSupport,
-			conMarginTop, ptlm, vb, style, html,
-			body = document.getElementsByTagName("body")[0];
-
-		if ( !body ) {
-			// Return for frameset docs that don't have a body
-			return;
-		}
-
-		conMarginTop = 1;
-		ptlm = "position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";
-		vb = "visibility:hidden;border:0;";
-		style = "style='" + ptlm + "border:5px solid #000;padding:0;'";
-		html = "<div " + style + "><div></div></div>" +
-			"<table " + style + " cellpadding='0' cellspacing='0'>" +
-			"<tr><td></td></tr></table>";
-
-		container = document.createElement("div");
-		container.style.cssText = vb + "width:0;height:0;position:static;top:0;margin-top:" + conMarginTop + "px";
-		body.insertBefore( container, body.firstChild );
-
-		// Construct the test element
-		div = document.createElement("div");
-		container.appendChild( div );
-
-		// Check if table cells still have offsetWidth/Height when they are set
-		// to display:none and there are still other visible table cells in a
-		// table row; if so, offsetWidth/Height are not reliable for use when
-		// determining if an element has been hidden directly using
-		// display:none (it is still safe to use offsets if a parent element is
-		// hidden; don safety goggles and see bug #4512 for more information).
-		// (only IE 8 fails this test)
-		div.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";
-		tds = div.getElementsByTagName( "td" );
-		isSupported = ( tds[ 0 ].offsetHeight === 0 );
-
-		tds[ 0 ].style.display = "";
-		tds[ 1 ].style.display = "none";
-
-		// Check if empty table cells still have offsetWidth/Height
-		// (IE <= 8 fail this test)
-		support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
-
-		// Figure out if the W3C box model works as expected
-		div.innerHTML = "";
-		div.style.width = div.style.paddingLeft = "1px";
-		jQuery.boxModel = support.boxModel = div.offsetWidth === 2;
-
-		if ( typeof div.style.zoom !== "undefined" ) {
-			// Check if natively block-level elements act like inline-block
-			// elements when setting their display to 'inline' and giving
-			// them layout
-			// (IE < 8 does this)
-			div.style.display = "inline";
-			div.style.zoom = 1;
-			support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 );
-
-			// Check if elements with layout shrink-wrap their children
-			// (IE 6 does this)
-			div.style.display = "";
-			div.innerHTML = "<div style='width:4px;'></div>";
-			support.shrinkWrapBlocks = ( div.offsetWidth !== 2 );
-		}
-
-		div.style.cssText = ptlm + vb;
-		div.innerHTML = html;
-
-		outer = div.firstChild;
-		inner = outer.firstChild;
-		td = outer.nextSibling.firstChild.firstChild;
-
-		offsetSupport = {
-			doesNotAddBorder: ( inner.offsetTop !== 5 ),
-			doesAddBorderForTableAndCells: ( td.offsetTop === 5 )
-		};
-
-		inner.style.position = "fixed";
-		inner.style.top = "20px";
-
-		// safari subtracts parent border width here which is 5px
-		offsetSupport.fixedPosition = ( inner.offsetTop === 20 || inner.offsetTop === 15 );
-		inner.style.position = inner.style.top = "";
-
-		outer.style.overflow = "hidden";
-		outer.style.position = "relative";
-
-		offsetSupport.subtractsBorderForOverflowNotVisible = ( inner.offsetTop === -5 );
-		offsetSupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== conMarginTop );
-
-		body.removeChild( container );
-		div  = container = null;
-
-		jQuery.extend( support, offsetSupport );
-	});
-
-	return support;
-})();
-
-
-
-
-var rbrace = /^(?:\{.*\}|\[.*\])$/,
-	rmultiDash = /([A-Z])/g;
-
-jQuery.extend({
-	cache: {},
-
-	// Please use with caution
-	uuid: 0,
-
-	// Unique for each copy of jQuery on the page
-	// Non-digits removed to match rinlinejQuery
-	expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
-
-	// The following elements throw uncatchable exceptions if you
-	// attempt to add expando properties to them.
-	noData: {
-		"embed": true,
-		// Ban all objects except for Flash (which handle expandos)
-		"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
-		"applet": true
-	},
-
-	hasData: function( elem ) {
-		elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
-		return !!elem && !isEmptyDataObject( elem );
-	},
-
-	data: function( elem, name, data, pvt /* Internal Use Only */ ) {
-		if ( !jQuery.acceptData( elem ) ) {
-			return;
-		}
-
-		var privateCache, thisCache, ret,
-			internalKey = jQuery.expando,
-			getByName = typeof name === "string",
-
-			// We have to handle DOM nodes and JS objects differently because IE6-7
-			// can't GC object references properly across the DOM-JS boundary
-			isNode = elem.nodeType,
-
-			// Only DOM nodes need the global jQuery cache; JS object data is
-			// attached directly to the object so GC can occur automatically
-			cache = isNode ? jQuery.cache : elem,
-
-			// Only defining an ID for JS objects if its cache already exists allows
-			// the code to shortcut on the same path as a DOM node with no cache
-			id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey,
-			isEvents = name === "events";
-
-		// Avoid doing any more work than we need to when trying to get data on an
-		// object that has no data at all
-		if ( (!id || !cache[id] || (!isEvents && !pvt && !cache[id].data)) && getByName && data === undefined ) {
-			return;
-		}
-
-		if ( !id ) {
-			// Only DOM nodes need a new unique ID for each element since their data
-			// ends up in the global cache
-			if ( isNode ) {
-				elem[ internalKey ] = id = ++jQuery.uuid;
-			} else {
-				id = internalKey;
-			}
-		}
-
-		if ( !cache[ id ] ) {
-			cache[ id ] = {};
-
-			// Avoids exposing jQuery metadata on plain JS objects when the object
-			// is serialized using JSON.stringify
-			if ( !isNode ) {
-				cache[ id ].toJSON = jQuery.noop;
-			}
-		}
-
-		// An object can be passed to jQuery.data instead of a key/value pair; this gets
-		// shallow copied over onto the existing cache
-		if ( typeof name === "object" || typeof name === "function" ) {
-			if ( pvt ) {
-				cache[ id ] = jQuery.extend( cache[ id ], name );
-			} else {
-				cache[ id ].data = jQuery.extend( cache[ id ].data, name );
-			}
-		}
-
-		privateCache = thisCache = cache[ id ];
-
-		// jQuery data() is stored in a separate object inside the object's internal data
-		// cache in order to avoid key collisions between internal data and user-defined
-		// data.
-		if ( !pvt ) {
-			if ( !thisCache.data ) {
-				thisCache.data = {};
-			}
-
-			thisCache = thisCache.data;
-		}
-
-		if ( data !== undefined ) {
-			thisCache[ jQuery.camelCase( name ) ] = data;
-		}
-
-		// Users should not attempt to inspect the internal events object using jQuery.data,
-		// it is undocumented and subject to change. But does anyone listen? No.
-		if ( isEvents && !thisCache[ name ] ) {
-			return privateCache.events;
-		}
-
-		// Check for both converted-to-camel and non-converted data property names
-		// If a data property was specified
-		if ( getByName ) {
-
-			// First Try to find as-is property data
-			ret = thisCache[ name ];
-
-			// Test for null|undefined property data
-			if ( ret == null ) {
-
-				// Try to find the camelCased property
-				ret = thisCache[ jQuery.camelCase( name ) ];
-			}
-		} else {
-			ret = thisCache;
-		}
-
-		return ret;
-	},
-
-	removeData: function( elem, name, pvt /* Internal Use Only */ ) {
-		if ( !jQuery.acceptData( elem ) ) {
-			return;
-		}
-
-		var thisCache, i, l,
-
-			// Reference to internal data cache key
-			internalKey = jQuery.expando,
-
-			isNode = elem.nodeType,
-
-			// See jQuery.data for more information
-			cache = isNode ? jQuery.cache : elem,
-
-			// See jQuery.data for more information
-			id = isNode ? elem[ internalKey ] : internalKey;
-
-		// If there is already no cache entry for this object, there is no
-		// purpose in continuing
-		if ( !cache[ id ] ) {
-			return;
-		}
-
-		if ( name ) {
-
-			thisCache = pvt ? cache[ id ] : cache[ id ].data;
-
-			if ( thisCache ) {
-
-				// Support array or space separated string names for data keys
-				if ( !jQuery.isArray( name ) ) {
-
-					// try the string as a key before any manipulation
-					if ( name in thisCache ) {
-						name = [ name ];
-					} else {
-
-						// split the camel cased version by spaces unless a key with the spaces exists
-						name = jQuery.camelCase( name );
-						if ( name in thisCache ) {
-							name = [ name ];
-						} else {
-							name = name.split( " " );
-						}
-					}
-				}
-
-				for ( i = 0, l = name.length; i < l; i++ ) {
-					delete thisCache[ name[i] ];
-				}
-
-				// If there is no data left in the cache, we want to continue
-				// and let the cache object itself get destroyed
-				if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) {
-					return;
-				}
-			}
-		}
-
-		// See jQuery.data for more information
-		if ( !pvt ) {
-			delete cache[ id ].data;
-
-			// Don't destroy the parent cache unless the internal data object
-			// had been the only thing left in it
-			if ( !isEmptyDataObject(cache[ id ]) ) {
-				return;
-			}
-		}
-
-		// Browsers that fail expando deletion also refuse to delete expandos on
-		// the window, but it will allow it on all other JS objects; other browsers
-		// don't care
-		// Ensure that `cache` is not a window object #10080
-		if ( jQuery.support.deleteExpando || !cache.setInterval ) {
-			delete cache[ id ];
-		} else {
-			cache[ id ] = null;
-		}
-
-		// We destroyed the cache and need to eliminate the expando on the node to avoid
-		// false lookups in the cache for entries that no longer exist
-		if ( isNode ) {
-			// IE does not allow us to delete expando properties from nodes,
-			// nor does it have a removeAttribute function on Document nodes;
-			// we must handle all of these cases
-			if ( jQuery.support.deleteExpando ) {
-				delete elem[ internalKey ];
-			} else if ( elem.removeAttribute ) {
-				elem.removeAttribute( internalKey );
-			} else {
-				elem[ internalKey ] = null;
-			}
-		}
-	},
-
-	// For internal use only.
-	_data: function( elem, name, data ) {
-		return jQuery.data( elem, name, data, true );
-	},
-
-	// A method for determining if a DOM node can handle the data expando
-	acceptData: function( elem ) {
-		if ( elem.nodeName ) {
-			var match = jQuery.noData[ elem.nodeName.toLowerCase() ];
-
-			if ( match ) {
-				return !(match === true || elem.getAttribute("classid") !== match);
-			}
-		}
-
-		return true;
-	}
-});
-
-jQuery.fn.extend({
-	data: function( key, value ) {
-		var parts, attr, name,
-			data = null;
-
-		if ( typeof key === "undefined" ) {
-			if ( this.length ) {
-				data = jQuery.data( this[0] );
-
-				if ( this[0].nodeType === 1 && !jQuery._data( this[0], "parsedAttrs" ) ) {
-					attr = this[0].attributes;
-					for ( var i = 0, l = attr.length; i < l; i++ ) {
-						name = attr[i].name;
-
-						if ( name.indexOf( "data-" ) === 0 ) {
-							name = jQuery.camelCase( name.substring(5) );
-
-							dataAttr( this[0], name, data[ name ] );
-						}
-					}
-					jQuery._data( this[0], "parsedAttrs", true );
-				}
-			}
-
-			return data;
-
-		} else if ( typeof key === "object" ) {
-			return this.each(function() {
-				jQuery.data( this, key );
-			});
-		}
-
-		parts = key.split(".");
-		parts[1] = parts[1] ? "." + parts[1] : "";
-
-		if ( value === undefined ) {
-			data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
-
-			// Try to fetch any internally stored data first
-			if ( data === undefined && this.length ) {
-				data = jQuery.data( this[0], key );
-				data = dataAttr( this[0], key, data );
-			}
-
-			return data === undefined && parts[1] ?
-				this.data( parts[0] ) :
-				data;
-
-		} else {
-			return this.each(function() {
-				var self = jQuery( this ),
-					args = [ parts[0], value ];
-
-				self.triggerHandler( "setData" + parts[1] + "!", args );
-				jQuery.data( this, key, value );
-				self.triggerHandler( "changeData" + parts[1] + "!", args );
-			});
-		}
-	},
-
-	removeData: function( key ) {
-		return this.each(function() {
-			jQuery.removeData( this, key );
-		});
-	}
-});
-
-function dataAttr( elem, key, data ) {
-	// If nothing was found internally, try to fetch any
-	// data from the HTML5 data-* attribute
-	if ( data === undefined && elem.nodeType === 1 ) {
-
-		var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
-
-		data = elem.getAttribute( name );
-
-		if ( typeof data === "string" ) {
-			try {
-				data = data === "true" ? true :
-				data === "false" ? false :
-				data === "null" ? null :
-				jQuery.isNumeric( data ) ? parseFloat( data ) :
-					rbrace.test( data ) ? jQuery.parseJSON( data ) :
-					data;
-			} catch( e ) {}
-
-			// Make sure we set the data so it isn't changed later
-			jQuery.data( elem, key, data );
-
-		} else {
-			data = undefined;
-		}
-	}
-
-	return data;
-}
-
-// checks a cache object for emptiness
-function isEmptyDataObject( obj ) {
-	for ( var name in obj ) {
-
-		// if the public data object is empty, the private is still empty
-		if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
-			continue;
-		}
-		if ( name !== "toJSON" ) {
-			return false;
-		}
-	}
-
-	return true;
-}
-
-
-
-
-function handleQueueMarkDefer( elem, type, src ) {
-	var deferDataKey = type + "defer",
-		queueDataKey = type + "queue",
-		markDataKey = type + "mark",
-		defer = jQuery._data( elem, deferDataKey );
-	if ( defer &&
-		( src === "queue" || !jQuery._data(elem, queueDataKey) ) &&
-		( src === "mark" || !jQuery._data(elem, markDataKey) ) ) {
-		// Give room for hard-coded callbacks to fire first
-		// and eventually mark/queue something else on the element
-		setTimeout( function() {
-			if ( !jQuery._data( elem, queueDataKey ) &&
-				!jQuery._data( elem, markDataKey ) ) {
-				jQuery.removeData( elem, deferDataKey, true );
-				defer.fire();
-			}
-		}, 0 );
-	}
-}
-
-jQuery.extend({
-
-	_mark: function( elem, type ) {
-		if ( elem ) {
-			type = ( type || "fx" ) + "mark";
-			jQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 );
-		}
-	},
-
-	_unmark: function( force, elem, type ) {
-		if ( force !== true ) {
-			type = elem;
-			elem = force;
-			force = false;
-		}
-		if ( elem ) {
-			type = type || "fx";
-			var key = type + "mark",
-				count = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 );
-			if ( count ) {
-				jQuery._data( elem, key, count );
-			} else {
-				jQuery.removeData( elem, key, true );
-				handleQueueMarkDefer( elem, type, "mark" );
-			}
-		}
-	},
-
-	queue: function( elem, type, data ) {
-		var q;
-		if ( elem ) {
-			type = ( type || "fx" ) + "queue";
-			q = jQuery._data( elem, type );
-
-			// Speed up dequeue by getting out quickly if this is just a lookup
-			if ( data ) {
-				if ( !q || jQuery.isArray(data) ) {
-					q = jQuery._data( elem, type, jQuery.makeArray(data) );
-				} else {
-					q.push( data );
-				}
-			}
-			return q || [];
-		}
-	},
-
-	dequeue: function( elem, type ) {
-		type = type || "fx";
-
-		var queue = jQuery.queue( elem, type ),
-			fn = queue.shift(),
-			hooks = {};
-
-		// If the fx queue is dequeued, always remove the progress sentinel
-		if ( fn === "inprogress" ) {
-			fn = queue.shift();
-		}
-
-		if ( fn ) {
-			// Add a progress sentinel to prevent the fx queue from being
-			// automatically dequeued
-			if ( type === "fx" ) {
-				queue.unshift( "inprogress" );
-			}
-
-			jQuery._data( elem, type + ".run", hooks );
-			fn.call( elem, function() {
-				jQuery.dequeue( elem, type );
-			}, hooks );
-		}
-
-		if ( !queue.length ) {
-			jQuery.removeData( elem, type + "queue " + type + ".run", true );
-			handleQueueMarkDefer( elem, type, "queue" );
-		}
-	}
-});
-
-jQuery.fn.extend({
-	queue: function( type, data ) {
-		if ( typeof type !== "string" ) {
-			data = type;
-			type = "fx";
-		}
-
-		if ( data === undefined ) {
-			return jQuery.queue( this[0], type );
-		}
-		return this.each(function() {
-			var queue = jQuery.queue( this, type, data );
-
-			if ( type === "fx" && queue[0] !== "inprogress" ) {
-				jQuery.dequeue( this, type );
-			}
-		});
-	},
-	dequeue: function( type ) {
-		return this.each(function() {
-			jQuery.dequeue( this, type );
-		});
-	},
-	// Based off of the plugin by Clint Helfers, with permission.
-	// http://blindsignals.com/index.php/2009/07/jquery-delay/
-	delay: function( time, type ) {
-		time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
-		type = type || "fx";
-
-		return this.queue( type, function( next, hooks ) {
-			var timeout = setTimeout( next, time );
-			hooks.stop = function() {
-				clearTimeout( timeout );
-			};
-		});
-	},
-	clearQueue: function( type ) {
-		return this.queue( type || "fx", [] );
-	},
-	// Get a promise resolved when queues of a certain type
-	// are emptied (fx is the type by default)
-	promise: function( type, object ) {
-		if ( typeof type !== "string" ) {
-			object = type;
-			type = undefined;
-		}
-		type = type || "fx";
-		var defer = jQuery.Deferred(),
-			elements = this,
-			i = elements.length,
-			count = 1,
-			deferDataKey = type + "defer",
-			queueDataKey = type + "queue",
-			markDataKey = type + "mark",
-			tmp;
-		function resolve() {
-			if ( !( --count ) ) {
-				defer.resolveWith( elements, [ elements ] );
-			}
-		}
-		while( i-- ) {
-			if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
-					( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
-						jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
-					jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) {
-				count++;
-				tmp.add( resolve );
-			}
-		}
-		resolve();
-		return defer.promise();
-	}
-});
-
-
-
-
-var rclass = /[\n\t\r]/g,
-	rspace = /\s+/,
-	rreturn = /\r/g,
-	rtype = /^(?:button|input)$/i,
-	rfocusable = /^(?:button|input|object|select|textarea)$/i,
-	rclickable = /^a(?:rea)?$/i,
-	rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
-	getSetAttribute = jQuery.support.getSetAttribute,
-	nodeHook, boolHook, fixSpecified;
-
-jQuery.fn.extend({
-	attr: function( name, value ) {
-		return jQuery.access( this, name, value, true, jQuery.attr );
-	},
-
-	removeAttr: function( name ) {
-		return this.each(function() {
-			jQuery.removeAttr( this, name );
-		});
-	},
-
-	prop: function( name, value ) {
-		return jQuery.access( this, name, value, true, jQuery.prop );
-	},
-
-	removeProp: function( name ) {
-		name = jQuery.propFix[ name ] || name;
-		return this.each(function() {
-			// try/catch handles cases where IE balks (such as removing a property on window)
-			try {
-				this[ name ] = undefined;
-				delete this[ name ];
-			} catch( e ) {}
-		});
-	},
-
-	addClass: function( value ) {
-		var classNames, i, l, elem,
-			setClass, c, cl;
-
-		if ( jQuery.isFunction( value ) ) {
-			return this.each(function( j ) {
-				jQuery( this ).addClass( value.call(this, j, this.className) );
-			});
-		}
-
-		if ( value && typeof value === "string" ) {
-			classNames = value.split( rspace );
-
-			for ( i = 0, l = this.length; i < l; i++ ) {
-				elem = this[ i ];
-
-				if ( elem.nodeType === 1 ) {
-					if ( !elem.className && classNames.length === 1 ) {
-						elem.className = value;
-
-					} else {
-						setClass = " " + elem.className + " ";
-
-						for ( c = 0, cl = classNames.length; c < cl; c++ ) {
-							if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) {
-								setClass += classNames[ c ] + " ";
-							}
-						}
-						elem.className = jQuery.trim( setClass );
-					}
-				}
-			}
-		}
-
-		return this;
-	},
-
-	removeClass: function( value ) {
-		var classNames, i, l, elem, className, c, cl;
-
-		if ( jQuery.isFunction( value ) ) {
-			return this.each(function( j ) {
-				jQuery( this ).removeClass( value.call(this, j, this.className) );
-			});
-		}
-
-		if ( (value && typeof value === "string") || value === undefined ) {
-			classNames = ( value || "" ).split( rspace );
-
-			for ( i = 0, l = this.length; i < l; i++ ) {
-				elem = this[ i ];
-
-				if ( elem.nodeType === 1 && elem.className ) {
-					if ( value ) {
-						className = (" " + elem.className + " ").replace( rclass, " " );
-						for ( c = 0, cl = classNames.length; c < cl; c++ ) {
-							className = className.replace(" " + classNames[ c ] + " ", " ");
-						}
-						elem.className = jQuery.trim( className );
-
-					} else {
-						elem.className = "";
-					}
-				}
-			}
-		}
-
-		return this;
-	},
-
-	toggleClass: function( value, stateVal ) {
-		var type = typeof value,
-			isBool = typeof stateVal === "boolean";
-
-		if ( jQuery.isFunction( value ) ) {
-			return this.each(function( i ) {
-				jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
-			});
-		}
-
-		return this.each(function() {
-			if ( type === "string" ) {
-				// toggle individual class names
-				var className,
-					i = 0,
-					self = jQuery( this ),
-					state = stateVal,
-					classNames = value.split( rspace );
-
-				while ( (className = classNames[ i++ ]) ) {
-					// check each className given, space seperated list
-					state = isBool ? state : !self.hasClass( className );
-					self[ state ? "addClass" : "removeClass" ]( className );
-				}
-
-			} else if ( type === "undefined" || type === "boolean" ) {
-				if ( this.className ) {
-					// store className if set
-					jQuery._data( this, "__className__", this.className );
-				}
-
-				// toggle whole className
-				this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
-			}
-		});
-	},
-
-	hasClass: function( selector ) {
-		var className = " " + selector + " ",
-			i = 0,
-			l = this.length;
-		for ( ; i < l; i++ ) {
-			if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
-				return true;
-			}
-		}
-
-		return false;
-	},
-
-	val: function( value ) {
-		var hooks, ret, isFunction,
-			elem = this[0];
-
-		if ( !arguments.length ) {
-			if ( elem ) {
-				hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ];
-
-				if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
-					return ret;
-				}
-
-				ret = elem.value;
-
-				return typeof ret === "string" ?
-					// handle most common string cases
-					ret.replace(rreturn, "") :
-					// handle cases where value is null/undef or number
-					ret == null ? "" : ret;
-			}
-
-			return;
-		}
-
-		isFunction = jQuery.isFunction( value );
-
-		return this.each(function( i ) {
-			var self = jQuery(this), val;
-
-			if ( this.nodeType !== 1 ) {
-				return;
-			}
-
-			if ( isFunction ) {
-				val = value.call( this, i, self.val() );
-			} else {
-				val = value;
-			}
-
-			// Treat null/undefined as ""; convert numbers to string
-			if ( val == null ) {
-				val = "";
-			} else if ( typeof val === "number" ) {
-				val += "";
-			} else if ( jQuery.isArray( val ) ) {
-				val = jQuery.map(val, function ( value ) {
-					return value == null ? "" : value + "";
-				});
-			}
-
-			hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ];
-
-			// If set returns undefined, fall back to normal setting
-			if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
-				this.value = val;
-			}
-		});
-	}
-});
-
-jQuery.extend({
-	valHooks: {
-		option: {
-			get: function( elem ) {
-				// attributes.value is undefined in Blackberry 4.7 but
-				// uses .value. See #6932
-				var val = elem.attributes.value;
-				return !val || val.specified ? elem.value : elem.text;
-			}
-		},
-		select: {
-			get: function( elem ) {
-				var value, i, max, option,
-					index = elem.selectedIndex,
-					values = [],
-					options = elem.options,
-					one = elem.type === "select-one";
-
-				// Nothing was selected
-				if ( index < 0 ) {
-					return null;
-				}
-
-				// Loop through all the selected options
-				i = one ? index : 0;
-				max = one ? index + 1 : options.length;
-				for ( ; i < max; i++ ) {
-					option = options[ i ];
-
-					// Don't return options that are disabled or in a disabled optgroup
-					if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
-							(!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
-
-						// Get the specific value for the option
-						value = jQuery( option ).val();
-
-						// We don't need an array for one selects
-						if ( one ) {
-							return value;
-						}
-
-						// Multi-Selects return an array
-						values.push( value );
-					}
-				}
-
-				// Fixes Bug #2551 -- select.val() broken in IE after form.reset()
-				if ( one && !values.length && options.length ) {
-					return jQuery( options[ index ] ).val();
-				}
-
-				return values;
-			},
-
-			set: function( elem, value ) {
-				var values = jQuery.makeArray( value );
-
-				jQuery(elem).find("option").each(function() {
-					this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
-				});
-
-				if ( !values.length ) {
-					elem.selectedIndex = -1;
-				}
-				return values;
-			}
-		}
-	},
-
-	attrFn: {
-		val: true,
-		css: true,
-		html: true,
-		text: true,
-		data: true,
-		width: true,
-		height: true,
-		offset: true
-	},
-
-	attr: function( elem, name, value, pass ) {
-		var ret, hooks, notxml,
-			nType = elem.nodeType;
-
-		// don't get/set attributes on text, comment and attribute nodes
-		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
-			return;
-		}
-
-		if ( pass && name in jQuery.attrFn ) {
-			return jQuery( elem )[ name ]( value );
-		}
-
-		// Fallback to prop when attributes are not supported
-		if ( typeof elem.getAttribute === "undefined" ) {
-			return jQuery.prop( elem, name, value );
-		}
-
-		notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
-
-		// All attributes are lowercase
-		// Grab necessary hook if one is defined
-		if ( notxml ) {
-			name = name.toLowerCase();
-			hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook );
-		}
-
-		if ( value !== undefined ) {
-
-			if ( value === null ) {
-				jQuery.removeAttr( elem, name );
-				return;
-
-			} else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {
-				return ret;
-
-			} else {
-				elem.setAttribute( name, "" + value );
-				return value;
-			}
-
-		} else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {
-			return ret;
-
-		} else {
-
-			ret = elem.getAttribute( name );
-
-			// Non-existent attributes return null, we normalize to undefined
-			return ret === null ?
-				undefined :
-				ret;
-		}
-	},
-
-	removeAttr: function( elem, value ) {
-		var propName, attrNames, name, l,
-			i = 0;
-
-		if ( value && elem.nodeType === 1 ) {
-			attrNames = value.toLowerCase().split( rspace );
-			l = attrNames.length;
-
-			for ( ; i < l; i++ ) {
-				name = attrNames[ i ];
-
-				if ( name ) {
-					propName = jQuery.propFix[ name ] || name;
-
-					// See #9699 for explanation of this approach (setting first, then removal)
-					jQuery.attr( elem, name, "" );
-					elem.removeAttribute( getSetAttribute ? name : propName );
-
-					// Set corresponding property to false for boolean attributes
-					if ( rboolean.test( name ) && propName in elem ) {
-						elem[ propName ] = false;
-					}
-				}
-			}
-		}
-	},
-
-	attrHooks: {
-		type: {
-			set: function( elem, value ) {
-				// We can't allow the type property to be changed (since it causes problems in IE)
-				if ( rtype.test( elem.nodeName ) && elem.parentNode ) {
-					jQuery.error( "type property can't be changed" );
-				} else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
-					// Setting the type on a radio button after the value resets the value in IE6-9
-					// Reset value to it's default in case type is set after value
-					// This is for element creation
-					var val = elem.value;
-					elem.setAttribute( "type", value );
-					if ( val ) {
-						elem.value = val;
-					}
-					return value;
-				}
-			}
-		},
-		// Use the value property for back compat
-		// Use the nodeHook for button elements in IE6/7 (#1954)
-		value: {
-			get: function( elem, name ) {
-				if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
-					return nodeHook.get( elem, name );
-				}
-				return name in elem ?
-					elem.value :
-					null;
-			},
-			set: function( elem, value, name ) {
-				if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
-					return nodeHook.set( elem, value, name );
-				}
-				// Does not return so that setAttribute is also used
-				elem.value = value;
-			}
-		}
-	},
-
-	propFix: {
-		tabindex: "tabIndex",
-		readonly: "readOnly",
-		"for": "htmlFor",
-		"class": "className",
-		maxlength: "maxLength",
-		cellspacing: "cellSpacing",
-		cellpadding: "cellPadding",
-		rowspan: "rowSpan",
-		colspan: "colSpan",
-		usemap: "useMap",
-		frameborder: "frameBorder",
-		contenteditable: "contentEditable"
-	},
-
-	prop: function( elem, name, value ) {
-		var ret, hooks, notxml,
-			nType = elem.nodeType;
-
-		// don't get/set properties on text, comment and attribute nodes
-		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
-			return;
-		}
-
-		notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
-
-		if ( notxml ) {
-			// Fix name and attach hooks
-			name = jQuery.propFix[ name ] || name;
-			hooks = jQuery.propHooks[ name ];
-		}
-
-		if ( value !== undefined ) {
-			if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
-				return ret;
-
-			} else {
-				return ( elem[ name ] = value );
-			}
-
-		} else {
-			if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
-				return ret;
-
-			} else {
-				return elem[ name ];
-			}
-		}
-	},
-
-	propHooks: {
-		tabIndex: {
-			get: function( elem ) {
-				// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
-				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
-				var attributeNode = elem.getAttributeNode("tabindex");
-
-				return attributeNode && attributeNode.specified ?
-					parseInt( attributeNode.value, 10 ) :
-					rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
-						0 :
-						undefined;
-			}
-		}
-	}
-});
-
-// Add the tabIndex propHook to attrHooks for back-compat (different case is intentional)
-jQuery.attrHooks.tabindex = jQuery.propHooks.tabIndex;
-
-// Hook for boolean attributes
-boolHook = {
-	get: function( elem, name ) {
-		// Align boolean attributes with corresponding properties
-		// Fall back to attribute presence where some booleans are not supported
-		var attrNode,
-			property = jQuery.prop( elem, name );
-		return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?
-			name.toLowerCase() :
-			undefined;
-	},
-	set: function( elem, value, name ) {
-		var propName;
-		if ( value === false ) {
-			// Remove boolean attributes when set to false
-			jQuery.removeAttr( elem, name );
-		} else {
-			// value is true since we know at this point it's type boolean and not false
-			// Set boolean attributes to the same name and set the DOM property
-			propName = jQuery.propFix[ name ] || name;
-			if ( propName in elem ) {
-				// Only set the IDL specifically if it already exists on the element
-				elem[ propName ] = true;
-			}
-
-			elem.setAttribute( name, name.toLowerCase() );
-		}
-		return name;
-	}
-};
-
-// IE6/7 do not support getting/setting some attributes with get/setAttribute
-if ( !getSetAttribute ) {
-
-	fixSpecified = {
-		name: true,
-		id: true
-	};
-
-	// Use this for any attribute in IE6/7
-	// This fixes almost every IE6/7 issue
-	nodeHook = jQuery.valHooks.button = {
-		get: function( elem, name ) {
-			var ret;
-			ret = elem.getAttributeNode( name );
-			return ret && ( fixSpecified[ name ] ? ret.nodeValue !== "" : ret.specified ) ?
-				ret.nodeValue :
-				undefined;
-		},
-		set: function( elem, value, name ) {
-			// Set the existing or create a new attribute node
-			var ret = elem.getAttributeNode( name );
-			if ( !ret ) {
-				ret = document.createAttribute( name );
-				elem.setAttributeNode( ret );
-			}
-			return ( ret.nodeValue = value + "" );
-		}
-	};
-
-	// Apply the nodeHook to tabindex
-	jQuery.attrHooks.tabindex.set = nodeHook.set;
-
-	// Set width and height to auto instead of 0 on empty string( Bug #8150 )
-	// This is for removals
-	jQuery.each([ "width", "height" ], function( i, name ) {
-		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
-			set: function( elem, value ) {
-				if ( value === "" ) {
-					elem.setAttribute( name, "auto" );
-					return value;
-				}
-			}
-		});
-	});
-
-	// Set contenteditable to false on removals(#10429)
-	// Setting to empty string throws an error as an invalid value
-	jQuery.attrHooks.contenteditable = {
-		get: nodeHook.get,
-		set: function( elem, value, name ) {
-			if ( value === "" ) {
-				value = "false";
-			}
-			nodeHook.set( elem, value, name );
-		}
-	};
-}
-
-
-// Some attributes require a special call on IE
-if ( !jQuery.support.hrefNormalized ) {
-	jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
-		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
-			get: function( elem ) {
-				var ret = elem.getAttribute( name, 2 );
-				return ret === null ? undefined : ret;
-			}
-		});
-	});
-}
-
-if ( !jQuery.support.style ) {
-	jQuery.attrHooks.style = {
-		get: function( elem ) {
-			// Return undefined in the case of empty string
-			// Normalize to lowercase since IE uppercases css property names
-			return elem.style.cssText.toLowerCase() || undefined;
-		},
-		set: function( elem, value ) {
-			return ( elem.style.cssText = "" + value );
-		}
-	};
-}
-
-// Safari mis-reports the default selected property of an option
-// Accessing the parent's selectedIndex property fixes it
-if ( !jQuery.support.optSelected ) {
-	jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {
-		get: function( elem ) {
-			var parent = elem.parentNode;
-
-			if ( parent ) {
-				parent.selectedIndex;
-
-				// Make sure that it also works with optgroups, see #5701
-				if ( parent.parentNode ) {
-					parent.parentNode.selectedIndex;
-				}
-			}
-			return null;
-		}
-	});
-}
-
-// IE6/7 call enctype encoding
-if ( !jQuery.support.enctype ) {
-	jQuery.propFix.enctype = "encoding";
-}
-
-// Radios and checkboxes getter/setter
-if ( !jQuery.support.checkOn ) {
-	jQuery.each([ "radio", "checkbox" ], function() {
-		jQuery.valHooks[ this ] = {
-			get: function( elem ) {
-				// Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
-				return elem.getAttribute("value") === null ? "on" : elem.value;
-			}
-		};
-	});
-}
-jQuery.each([ "radio", "checkbox" ], function() {
-	jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {
-		set: function( elem, value ) {
-			if ( jQuery.isArray( value ) ) {
-				return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
-			}
-		}
-	});
-});
-
-
-
-
-var rformElems = /^(?:textarea|input|select)$/i,
-	rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/,
-	rhoverHack = /\bhover(\.\S+)?\b/,
-	rkeyEvent = /^key/,
-	rmouseEvent = /^(?:mouse|contextmenu)|click/,
-	rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
-	rquickIs = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,
-	quickParse = function( selector ) {
-		var quick = rquickIs.exec( selector );
-		if ( quick ) {
-			//   0  1    2   3
-			// [ _, tag, id, class ]
-			quick[1] = ( quick[1] || "" ).toLowerCase();
-			quick[3] = quick[3] && new RegExp( "(?:^|\\s)" + quick[3] + "(?:\\s|$)" );
-		}
-		return quick;
-	},
-	quickIs = function( elem, m ) {
-		var attrs = elem.attributes || {};
-		return (
-			(!m[1] || elem.nodeName.toLowerCase() === m[1]) &&
-			(!m[2] || (attrs.id || {}).value === m[2]) &&
-			(!m[3] || m[3].test( (attrs[ "class" ] || {}).value ))
-		);
-	},
-	hoverHack = function( events ) {
-		return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );
-	};
-
-/*
- * Helper functions for managing events -- not part of the public interface.
- * Props to Dean Edwards' addEvent library for many of the ideas.
- */
-jQuery.event = {
-
-	add: function( elem, types, handler, data, selector ) {
-
-		var elemData, eventHandle, events,
-			t, tns, type, namespaces, handleObj,
-			handleObjIn, quick, handlers, special;
-
-		// Don't attach events to noData or text/comment nodes (allow plain objects tho)
-		if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) {
-			return;
-		}
-
-		// Caller can pass in an object of custom data in lieu of the handler
-		if ( handler.handler ) {
-			handleObjIn = handler;
-			handler = handleObjIn.handler;
-		}
-
-		// Make sure that the handler has a unique ID, used to find/remove it later
-		if ( !handler.guid ) {
-			handler.guid = jQuery.guid++;
-		}
-
-		// Init the element's event structure and main handler, if this is the first
-		events = elemData.events;
-		if ( !events ) {
-			elemData.events = events = {};
-		}
-		eventHandle = elemData.handle;
-		if ( !eventHandle ) {
-			elemData.handle = eventHandle = function( e ) {
-				// Discard the second event of a jQuery.event.trigger() and
-				// when an event is called after a page has unloaded
-				return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?
-					jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
-					undefined;
-			};
-			// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
-			eventHandle.elem = elem;
-		}
-
-		// Handle multiple events separated by a space
-		// jQuery(...).bind("mouseover mouseout", fn);
-		types = jQuery.trim( hoverHack(types) ).split( " " );
-		for ( t = 0; t < types.length; t++ ) {
-
-			tns = rtypenamespace.exec( types[t] ) || [];
-			type = tns[1];
-			namespaces = ( tns[2] || "" ).split( "." ).sort();
-
-			// If event changes its type, use the special event handlers for the changed type
-			special = jQuery.event.special[ type ] || {};
-
-			// If selector defined, determine special event api type, otherwise given type
-			type = ( selector ? special.delegateType : special.bindType ) || type;
-
-			// Update special based on newly reset type
-			special = jQuery.event.special[ type ] || {};
-
-			// handleObj is passed to all event handlers
-			handleObj = jQuery.extend({
-				type: type,
-				origType: tns[1],
-				data: data,
-				handler: handler,
-				guid: handler.guid,
-				selector: selector,
-				quick: quickParse( selector ),
-				namespace: namespaces.join(".")
-			}, handleObjIn );
-
-			// Init the event handler queue if we're the first
-			handlers = events[ type ];
-			if ( !handlers ) {
-				handlers = events[ type ] = [];
-				handlers.delegateCount = 0;
-
-				// Only use addEventListener/attachEvent if the special events handler returns false
-				if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
-					// Bind the global event handler to the element
-					if ( elem.addEventListener ) {
-						elem.addEventListener( type, eventHandle, false );
-
-					} else if ( elem.attachEvent ) {
-						elem.attachEvent( "on" + type, eventHandle );
-					}
-				}
-			}
-
-			if ( special.add ) {
-				special.add.call( elem, handleObj );
-
-				if ( !handleObj.handler.guid ) {
-					handleObj.handler.guid = handler.guid;
-				}
-			}
-
-			// Add to the element's handler list, delegates in front
-			if ( selector ) {
-				handlers.splice( handlers.delegateCount++, 0, handleObj );
-			} else {
-				handlers.push( handleObj );
-			}
-
-			// Keep track of which events have ever been used, for event optimization
-			jQuery.event.global[ type ] = true;
-		}
-
-		// Nullify elem to prevent memory leaks in IE
-		elem = null;
-	},
-
-	global: {},
-
-	// Detach an event or set of events from an element
-	remove: function( elem, types, handler, selector, mappedTypes ) {
-
-		var elemData = jQuery.hasData( elem ) && jQuery._data( elem ),
-			t, tns, type, origType, namespaces, origCount,
-			j, events, special, handle, eventType, handleObj;
-
-		if ( !elemData || !(events = elemData.events) ) {
-			return;
-		}
-
-		// Once for each type.namespace in types; type may be omitted
-		types = jQuery.trim( hoverHack( types || "" ) ).split(" ");
-		for ( t = 0; t < types.length; t++ ) {
-			tns = rtypenamespace.exec( types[t] ) || [];
-			type = origType = tns[1];
-			namespaces = tns[2];
-
-			// Unbind all events (on this namespace, if provided) for the element
-			if ( !type ) {
-				for ( type in events ) {
-					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
-				}
-				continue;
-			}
-
-			special = jQuery.event.special[ type ] || {};
-			type = ( selector? special.delegateType : special.bindType ) || type;
-			eventType = events[ type ] || [];
-			origCount = eventType.length;
-			namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
-
-			// Remove matching events
-			for ( j = 0; j < eventType.length; j++ ) {
-				handleObj = eventType[ j ];
-
-				if ( ( mappedTypes || origType === handleObj.origType ) &&
-					 ( !handler || handler.guid === handleObj.guid ) &&
-					 ( !namespaces || namespaces.test( handleObj.namespace ) ) &&
-					 ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
-					eventType.splice( j--, 1 );
-
-					if ( handleObj.selector ) {
-						eventType.delegateCount--;
-					}
-					if ( special.remove ) {
-						special.remove.call( elem, handleObj );
-					}
-				}
-			}
-
-			// Remove generic event handler if we removed something and no more handlers exist
-			// (avoids potential for endless recursion during removal of special event handlers)
-			if ( eventType.length === 0 && origCount !== eventType.length ) {
-				if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
-					jQuery.removeEvent( elem, type, elemData.handle );
-				}
-
-				delete events[ type ];
-			}
-		}
-
-		// Remove the expando if it's no longer used
-		if ( jQuery.isEmptyObject( events ) ) {
-			handle = elemData.handle;
-			if ( handle ) {
-				handle.elem = null;
-			}
-
-			// removeData also checks for emptiness and clears the expando if empty
-			// so use it instead of delete
-			jQuery.removeData( elem, [ "events", "handle" ], true );
-		}
-	},
-
-	// Events that are safe to short-circuit if no handlers are attached.
-	// Native DOM events should not be added, they may have inline handlers.
-	customEvent: {
-		"getData": true,
-		"setData": true,
-		"changeData": true
-	},
-
-	trigger: function( event, data, elem, onlyHandlers ) {
-		// Don't do events on text and comment nodes
-		if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) {
-			return;
-		}
-
-		// Event object or event type
-		var type = event.type || event,
-			namespaces = [],
-			cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType;
-
-		// focus/blur morphs to focusin/out; ensure we're not firing them right now
-		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
-			return;
-		}
-
-		if ( type.indexOf( "!" ) >= 0 ) {
-			// Exclusive events trigger only for the exact event (no namespaces)
-			type = type.slice(0, -1);
-			exclusive = true;
-		}
-
-		if ( type.indexOf( "." ) >= 0 ) {
-			// Namespaced trigger; create a regexp to match event type in handle()
-			namespaces = type.split(".");
-			type = namespaces.shift();
-			namespaces.sort();
-		}
-
-		if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {
-			// No jQuery handlers for this event type, and it can't have inline handlers
-			return;
-		}
-
-		// Caller can pass in an Event, Object, or just an event type string
-		event = typeof event === "object" ?
-			// jQuery.Event object
-			event[ jQuery.expando ] ? event :
-			// Object literal
-			new jQuery.Event( type, event ) :
-			// Just the event type (string)
-			new jQuery.Event( type );
-
-		event.type = type;
-		event.isTrigger = true;
-		event.exclusive = exclusive;
-		event.namespace = namespaces.join( "." );
-		event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
-		ontype = type.indexOf( ":" ) < 0 ? "on" + type : "";
-
-		// Handle a global trigger
-		if ( !elem ) {
-
-			// TODO: Stop taunting the data cache; remove global events and always attach to document
-			cache = jQuery.cache;
-			for ( i in cache ) {
-				if ( cache[ i ].events && cache[ i ].events[ type ] ) {
-					jQuery.event.trigger( event, data, cache[ i ].handle.elem, true );
-				}
-			}
-			return;
-		}
-
-		// Clean up the event in case it is being reused
-		event.result = undefined;
-		if ( !event.target ) {
-			event.target = elem;
-		}
-
-		// Clone any incoming data and prepend the event, creating the handler arg list
-		data = data != null ? jQuery.makeArray( data ) : [];
-		data.unshift( event );
-
-		// Allow special events to draw outside the lines
-		special = jQuery.event.special[ type ] || {};
-		if ( special.trigger && special.trigger.apply( elem, data ) === false ) {
-			return;
-		}
-
-		// Determine event propagation path in advance, per W3C events spec (#9951)
-		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
-		eventPath = [[ elem, special.bindType || type ]];
-		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
-
-			bubbleType = special.delegateType || type;
-			cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode;
-			old = null;
-			for ( ; cur; cur = cur.parentNode ) {
-				eventPath.push([ cur, bubbleType ]);
-				old = cur;
-			}
-
-			// Only add window if we got to document (e.g., not plain obj or detached DOM)
-			if ( old && old === elem.ownerDocument ) {
-				eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]);
-			}
-		}
-
-		// Fire handlers on the event path
-		for ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) {
-
-			cur = eventPath[i][0];
-			event.type = eventPath[i][1];
-
-			handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" );
-			if ( handle ) {
-				handle.apply( cur, data );
-			}
-			// Note that this is a bare JS function and not a jQuery handler
-			handle = ontype && cur[ ontype ];
-			if ( handle && jQuery.acceptData( cur ) && handle.apply( cur, data ) === false ) {
-				event.preventDefault();
-			}
-		}
-		event.type = type;
-
-		// If nobody prevented the default action, do it now
-		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
-
-			if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) &&
-				!(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {
-
-				// Call a native DOM method on the target with the same name name as the event.
-				// Can't use an .isFunction() check here because IE6/7 fails that test.
-				// Don't do default actions on window, that's where global variables be (#6170)
-				// IE<9 dies on focus/blur to hidden element (#1486)
-				if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) {
-
-					// Don't re-trigger an onFOO event when we call its FOO() method
-					old = elem[ ontype ];
-
-					if ( old ) {
-						elem[ ontype ] = null;
-					}
-
-					// Prevent re-triggering of the same event, since we already bubbled it above
-					jQuery.event.triggered = type;
-					elem[ type ]();
-					jQuery.event.triggered = undefined;
-
-					if ( old ) {
-						elem[ ontype ] = old;
-					}
-				}
-			}
-		}
-
-		return event.result;
-	},
-
-	dispatch: function( event ) {
-
-		// Make a writable jQuery.Event from the native event object
-		event = jQuery.event.fix( event || window.event );
-
-		var handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []),
-			delegateCount = handlers.delegateCount,
-			args = [].slice.call( arguments, 0 ),
-			run_all = !event.exclusive && !event.namespace,
-			handlerQueue = [],
-			i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related;
-
-		// Use the fix-ed jQuery.Event rather than the (read-only) native event
-		args[0] = event;
-		event.delegateTarget = this;
-
-		// Determine handlers that should run if there are delegated events
-		// Avoid disabled elements in IE (#6911) and non-left-click bubbling in Firefox (#3861)
-		if ( delegateCount && !event.target.disabled && !(event.button && event.type === "click") ) {
-
-			// Pregenerate a single jQuery object for reuse with .is()
-			jqcur = jQuery(this);
-			jqcur.context = this.ownerDocument || this;
-
-			for ( cur = event.target; cur != this; cur = cur.parentNode || this ) {
-				selMatch = {};
-				matches = [];
-				jqcur[0] = cur;
-				for ( i = 0; i < delegateCount; i++ ) {
-					handleObj = handlers[ i ];
-					sel = handleObj.selector;
-
-					if ( selMatch[ sel ] === undefined ) {
-						selMatch[ sel ] = (
-							handleObj.quick ? quickIs( cur, handleObj.quick ) : jqcur.is( sel )
-						);
-					}
-					if ( selMatch[ sel ] ) {
-						matches.push( handleObj );
-					}
-				}
-				if ( matches.length ) {
-					handlerQueue.push({ elem: cur, matches: matches });
-				}
-			}
-		}
-
-		// Add the remaining (directly-bound) handlers
-		if ( handlers.length > delegateCount ) {
-			handlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) });
-		}
-
-		// Run delegates first; they may want to stop propagation beneath us
-		for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) {
-			matched = handlerQueue[ i ];
-			event.currentTarget = matched.elem;
-
-			for ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) {
-				handleObj = matched.matches[ j ];
-
-				// Triggered event must either 1) be non-exclusive and have no namespace, or
-				// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
-				if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) {
-
-					event.data = handleObj.data;
-					event.handleObj = handleObj;
-
-					ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
-							.apply( matched.elem, args );
-
-					if ( ret !== undefined ) {
-						event.result = ret;
-						if ( ret === false ) {
-							event.preventDefault();
-							event.stopPropagation();
-						}
-					}
-				}
-			}
-		}
-
-		return event.result;
-	},
-
-	// Includes some event props shared by KeyEvent and MouseEvent
-	// *** attrChange attrName relatedNode srcElement  are not normalized, non-W3C, deprecated, will be removed in 1.8 ***
-	props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
-
-	fixHooks: {},
-
-	keyHooks: {
-		props: "char charCode key keyCode".split(" "),
-		filter: function( event, original ) {
-
-			// Add which for key events
-			if ( event.which == null ) {
-				event.which = original.charCode != null ? original.charCode : original.keyCode;
-			}
-
-			return event;
-		}
-	},
-
-	mouseHooks: {
-		props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
-		filter: function( event, original ) {
-			var eventDoc, doc, body,
-				button = original.button,
-				fromElement = original.fromElement;
-
-			// Calculate pageX/Y if missing and clientX/Y available
-			if ( event.pageX == null && original.clientX != null ) {
-				eventDoc = event.target.ownerDocument || document;
-				doc = eventDoc.documentElement;
-				body = eventDoc.body;
-
-				event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
-				event.pageY = original.clientY + ( doc && doc.scrollTop  || body && body.scrollTop  || 0 ) - ( doc && doc.clientTop  || body && body.clientTop  || 0 );
-			}
-
-			// Add relatedTarget, if necessary
-			if ( !event.relatedTarget && fromElement ) {
-				event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;
-			}
-
-			// Add which for click: 1 === left; 2 === middle; 3 === right
-			// Note: button is not normalized, so don't use it
-			if ( !event.which && button !== undefined ) {
-				event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
-			}
-
-			return event;
-		}
-	},
-
-	fix: function( event ) {
-		if ( event[ jQuery.expando ] ) {
-			return event;
-		}
-
-		// Create a writable copy of the event object and normalize some properties
-		var i, prop,
-			originalEvent = event,
-			fixHook = jQuery.event.fixHooks[ event.type ] || {},
-			copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
-
-		event = jQuery.Event( originalEvent );
-
-		for ( i = copy.length; i; ) {
-			prop = copy[ --i ];
-			event[ prop ] = originalEvent[ prop ];
-		}
-
-		// Fix target property, if necessary (#1925, IE 6/7/8 & Safari2)
-		if ( !event.target ) {
-			event.target = originalEvent.srcElement || document;
-		}
-
-		// Target should not be a text node (#504, Safari)
-		if ( event.target.nodeType === 3 ) {
-			event.target = event.target.parentNode;
-		}
-
-		// For mouse/key events; add metaKey if it's not there (#3368, IE6/7/8)
-		if ( event.metaKey === undefined ) {
-			event.metaKey = event.ctrlKey;
-		}
-
-		return fixHook.filter? fixHook.filter( event, originalEvent ) : event;
-	},
-
-	special: {
-		ready: {
-			// Make sure the ready event is setup
-			setup: jQuery.bindReady
-		},
-
-		load: {
-			// Prevent triggered image.load events from bubbling to window.load
-			noBubble: true
-		},
-
-		focus: {
-			delegateType: "focusin"
-		},
-		blur: {
-			delegateType: "focusout"
-		},
-
-		beforeunload: {
-			setup: function( data, namespaces, eventHandle ) {
-				// We only want to do this special case on windows
-				if ( jQuery.isWindow( this ) ) {
-					this.onbeforeunload = eventHandle;
-				}
-			},
-
-			teardown: function( namespaces, eventHandle ) {
-				if ( this.onbeforeunload === eventHandle ) {
-					this.onbeforeunload = null;
-				}
-			}
-		}
-	},
-
-	simulate: function( type, elem, event, bubble ) {
-		// Piggyback on a donor event to simulate a different one.
-		// Fake originalEvent to avoid donor's stopPropagation, but if the
-		// simulated event prevents default then we do the same on the donor.
-		var e = jQuery.extend(
-			new jQuery.Event(),
-			event,
-			{ type: type,
-				isSimulated: true,
-				originalEvent: {}
-			}
-		);
-		if ( bubble ) {
-			jQuery.event.trigger( e, null, elem );
-		} else {
-			jQuery.event.dispatch.call( elem, e );
-		}
-		if ( e.isDefaultPrevented() ) {
-			event.preventDefault();
-		}
-	}
-};
-
-// Some plugins are using, but it's undocumented/deprecated and will be removed.
-// The 1.7 special event interface should provide all the hooks needed now.
-jQuery.event.handle = jQuery.event.dispatch;
-
-jQuery.removeEvent = document.removeEventListener ?
-	function( elem, type, handle ) {
-		if ( elem.removeEventListener ) {
-			elem.removeEventListener( type, handle, false );
-		}
-	} :
-	function( elem, type, handle ) {
-		if ( elem.detachEvent ) {
-			elem.detachEvent( "on" + type, handle );
-		}
-	};
-
-jQuery.Event = function( src, props ) {
-	// Allow instantiation without the 'new' keyword
-	if ( !(this instanceof jQuery.Event) ) {
-		return new jQuery.Event( src, props );
-	}
-
-	// Event object
-	if ( src && src.type ) {
-		this.originalEvent = src;
-		this.type = src.type;
-
-		// Events bubbling up the document may have been marked as prevented
-		// by a handler lower down the tree; reflect the correct value.
-		this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||
-			src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;
-
-	// Event type
-	} else {
-		this.type = src;
-	}
-
-	// Put explicitly provided properties onto the event object
-	if ( props ) {
-		jQuery.extend( this, props );
-	}
-
-	// Create a timestamp if incoming event doesn't have one
-	this.timeStamp = src && src.timeStamp || jQuery.now();
-
-	// Mark it as fixed
-	this[ jQuery.expando ] = true;
-};
-
-function returnFalse() {
-	return false;
-}
-function returnTrue() {
-	return true;
-}
-
-// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
-// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
-jQuery.Event.prototype = {
-	preventDefault: function() {
-		this.isDefaultPrevented = returnTrue;
-
-		var e = this.originalEvent;
-		if ( !e ) {
-			return;
-		}
-
-		// if preventDefault exists run it on the original event
-		if ( e.preventDefault ) {
-			e.preventDefault();
-
-		// otherwise set the returnValue property of the original event to false (IE)
-		} else {
-			e.returnValue = false;
-		}
-	},
-	stopPropagation: function() {
-		this.isPropagationStopped = returnTrue;
-
-		var e = this.originalEvent;
-		if ( !e ) {
-			return;
-		}
-		// if stopPropagation exists run it on the original event
-		if ( e.stopPropagation ) {
-			e.stopPropagation();
-		}
-		// otherwise set the cancelBubble property of the original event to true (IE)
-		e.cancelBubble = true;
-	},
-	stopImmediatePropagation: function() {
-		this.isImmediatePropagationStopped = returnTrue;
-		this.stopPropagation();
-	},
-	isDefaultPrevented: returnFalse,
-	isPropagationStopped: returnFalse,
-	isImmediatePropagationStopped: returnFalse
-};
-
-// Create mouseenter/leave events using mouseover/out and event-time checks
-jQuery.each({
-	mouseenter: "mouseover",
-	mouseleave: "mouseout"
-}, function( orig, fix ) {
-	jQuery.event.special[ orig ] = {
-		delegateType: fix,
-		bindType: fix,
-
-		handle: function( event ) {
-			var target = this,
-				related = event.relatedTarget,
-				handleObj = event.handleObj,
-				selector = handleObj.selector,
-				ret;
-
-			// For mousenter/leave call the handler if related is outside the target.
-			// NB: No relatedTarget if the mouse left/entered the browser window
-			if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
-				event.type = handleObj.origType;
-				ret = handleObj.handler.apply( this, arguments );
-				event.type = fix;
-			}
-			return ret;
-		}
-	};
-});
-
-// IE submit delegation
-if ( !jQuery.support.submitBubbles ) {
-
-	jQuery.event.special.submit = {
-		setup: function() {
-			// Only need this for delegated form submit events
-			if ( jQuery.nodeName( this, "form" ) ) {
-				return false;
-			}
-
-			// Lazy-add a submit handler when a descendant form may potentially be submitted
-			jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
-				// Node name check avoids a VML-related crash in IE (#9807)
-				var elem = e.target,
-					form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
-				if ( form && !form._submit_attached ) {
-					jQuery.event.add( form, "submit._submit", function( event ) {
-						// If form was submitted by the user, bubble the event up the tree
-						if ( this.parentNode && !event.isTrigger ) {
-							jQuery.event.simulate( "submit", this.parentNode, event, true );
-						}
-					});
-					form._submit_attached = true;
-				}
-			});
-			// return undefined since we don't need an event listener
-		},
-
-		teardown: function() {
-			// Only need this for delegated form submit events
-			if ( jQuery.nodeName( this, "form" ) ) {
-				return false;
-			}
-
-			// Remove delegated handlers; cleanData eventually reaps submit handlers attached above
-			jQuery.event.remove( this, "._submit" );
-		}
-	};
-}
-
-// IE change delegation and checkbox/radio fix
-if ( !jQuery.support.changeBubbles ) {
-
-	jQuery.event.special.change = {
-
-		setup: function() {
-
-			if ( rformElems.test( this.nodeName ) ) {
-				// IE doesn't fire change on a check/radio until blur; trigger it on click
-				// after a propertychange. Eat the blur-change in special.change.handle.
-				// This still fires onchange a second time for check/radio after blur.
-				if ( this.type === "checkbox" || this.type === "radio" ) {
-					jQuery.event.add( this, "propertychange._change", function( event ) {
-						if ( event.originalEvent.propertyName === "checked" ) {
-							this._just_changed = true;
-						}
-					});
-					jQuery.event.add( this, "click._change", function( event ) {
-						if ( this._just_changed && !event.isTrigger ) {
-							this._just_changed = false;
-							jQuery.event.simulate( "change", this, event, true );
-						}
-					});
-				}
-				return false;
-			}
-			// Delegated event; lazy-add a change handler on descendant inputs
-			jQuery.event.add( this, "beforeactivate._change", function( e ) {
-				var elem = e.target;
-
-				if ( rformElems.test( elem.nodeName ) && !elem._change_attached ) {
-					jQuery.event.add( elem, "change._change", function( event ) {
-						if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
-							jQuery.event.simulate( "change", this.parentNode, event, true );
-						}
-					});
-					elem._change_attached = true;
-				}
-			});
-		},
-
-		handle: function( event ) {
-			var elem = event.target;
-
-			// Swallow native change events from checkbox/radio, we already triggered them above
-			if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {
-				return event.handleObj.handler.apply( this, arguments );
-			}
-		},
-
-		teardown: function() {
-			jQuery.event.remove( this, "._change" );
-
-			return rformElems.test( this.nodeName );
-		}
-	};
-}
-
-// Create "bubbling" focus and blur events
-if ( !jQuery.support.focusinBubbles ) {
-	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
-
-		// Attach a single capturing handler while someone wants focusin/focusout
-		var attaches = 0,
-			handler = function( event ) {
-				jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
-			};
-
-		jQuery.event.special[ fix ] = {
-			setup: function() {
-				if ( attaches++ === 0 ) {
-					document.addEventListener( orig, handler, true );
-				}
-			},
-			teardown: function() {
-				if ( --attaches === 0 ) {
-					document.removeEventListener( orig, handler, true );
-				}
-			}
-		};
-	});
-}
-
-jQuery.fn.extend({
-
-	on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
-		var origFn, type;
-
-		// Types can be a map of types/handlers
-		if ( typeof types === "object" ) {
-			// ( types-Object, selector, data )
-			if ( typeof selector !== "string" ) {
-				// ( types-Object, data )
-				data = selector;
-				selector = undefined;
-			}
-			for ( type in types ) {
-				this.on( type, selector, data, types[ type ], one );
-			}
-			return this;
-		}
-
-		if ( data == null && fn == null ) {
-			// ( types, fn )
-			fn = selector;
-			data = selector = undefined;
-		} else if ( fn == null ) {
-			if ( typeof selector === "string" ) {
-				// ( types, selector, fn )
-				fn = data;
-				data = undefined;
-			} else {
-				// ( types, data, fn )
-				fn = data;
-				data = selector;
-				selector = undefined;
-			}
-		}
-		if ( fn === false ) {
-			fn = returnFalse;
-		} else if ( !fn ) {
-			return this;
-		}
-
-		if ( one === 1 ) {
-			origFn = fn;
-			fn = function( event ) {
-				// Can use an empty set, since event contains the info
-				jQuery().off( event );
-				return origFn.apply( this, arguments );
-			};
-			// Use same guid so caller can remove using origFn
-			fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
-		}
-		return this.each( function() {
-			jQuery.event.add( this, types, fn, data, selector );
-		});
-	},
-	one: function( types, selector, data, fn ) {
-		return this.on.call( this, types, selector, data, fn, 1 );
-	},
-	off: function( types, selector, fn ) {
-		if ( types && types.preventDefault && types.handleObj ) {
-			// ( event )  dispatched jQuery.Event
-			var handleObj = types.handleObj;
-			jQuery( types.delegateTarget ).off(
-				handleObj.namespace? handleObj.type + "." + handleObj.namespace : handleObj.type,
-				handleObj.selector,
-				handleObj.handler
-			);
-			return this;
-		}
-		if ( typeof types === "object" ) {
-			// ( types-object [, selector] )
-			for ( var type in types ) {
-				this.off( type, selector, types[ type ] );
-			}
-			return this;
-		}
-		if ( selector === false || typeof selector === "function" ) {
-			// ( types [, fn] )
-			fn = selector;
-			selector = undefined;
-		}
-		if ( fn === false ) {
-			fn = returnFalse;
-		}
-		return this.each(function() {
-			jQuery.event.remove( this, types, fn, selector );
-		});
-	},
-
-	bind: function( types, data, fn ) {
-		return this.on( types, null, data, fn );
-	},
-	unbind: function( types, fn ) {
-		return this.off( types, null, fn );
-	},
-
-	live: function( types, data, fn ) {
-		jQuery( this.context ).on( types, this.selector, data, fn );
-		return this;
-	},
-	die: function( types, fn ) {
-		jQuery( this.context ).off( types, this.selector || "**", fn );
-		return this;
-	},
-
-	delegate: function( selector, types, data, fn ) {
-		return this.on( types, selector, data, fn );
-	},
-	undelegate: function( selector, types, fn ) {
-		// ( namespace ) or ( selector, types [, fn] )
-		return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn );
-	},
-
-	trigger: function( type, data ) {
-		return this.each(function() {
-			jQuery.event.trigger( type, data, this );
-		});
-	},
-	triggerHandler: function( type, data ) {
-		if ( this[0] ) {
-			return jQuery.event.trigger( type, data, this[0], true );
-		}
-	},
-
-	toggle: function( fn ) {
-		// Save reference to arguments for access in closure
-		var args = arguments,
-			guid = fn.guid || jQuery.guid++,
-			i = 0,
-			toggler = function( event ) {
-				// Figure out which function to execute
-				var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
-				jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
-
-				// Make sure that clicks stop
-				event.preventDefault();
-
-				// and execute the function
-				return args[ lastToggle ].apply( this, arguments ) || false;
-			};
-
-		// link all the functions, so any of them can unbind this click handler
-		toggler.guid = guid;
-		while ( i < args.length ) {
-			args[ i++ ].guid = guid;
-		}
-
-		return this.click( toggler );
-	},
-
-	hover: function( fnOver, fnOut ) {
-		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
-	}
-});
-
-jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
-	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
-	"change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {
-
-	// Handle event binding
-	jQuery.fn[ name ] = function( data, fn ) {
-		if ( fn == null ) {
-			fn = data;
-			data = null;
-		}
-
-		return arguments.length > 0 ?
-			this.on( name, null, data, fn ) :
-			this.trigger( name );
-	};
-
-	if ( jQuery.attrFn ) {
-		jQuery.attrFn[ name ] = true;
-	}
-
-	if ( rkeyEvent.test( name ) ) {
-		jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks;
-	}
-
-	if ( rmouseEvent.test( name ) ) {
-		jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;
-	}
-});
-
-
-
-/*!
- * Sizzle CSS Selector Engine
- *  Copyright 2012, The Dojo Foundation
- *  Released under the MIT, BSD, and GPL Licenses.
- *  More information: http://sizzlejs.com/
- */
-(function(){
-
-var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
-	expando = "sizcache" + (Math.random() + '').replace('.', ''),
-	done = 0,
-	toString = Object.prototype.toString,
-	hasDuplicate = false,
-	baseHasDuplicate = true,
-	rBackslash = /\\/g,
-	rReturn = /\r\n/g,
-	rNonWord = /\W/;
-
-// Here we check if the JavaScript engine is using some sort of
-// optimization where it does not always call our comparision
-// function. If that is the case, discard the hasDuplicate value.
-//   Thus far that includes Google Chrome.
-[0, 0].sort(function() {
-	baseHasDuplicate = false;
-	return 0;
-});
-
-var Sizzle = function( selector, context, results, seed ) {
-	results = results || [];
-	context = context || document;
-
-	var origContext = context;
-
-	if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
-		return [];
-	}
-
-	if ( !selector || typeof selector !== "string" ) {
-		return results;
-	}
-
-	var m, set, checkSet, extra, ret, cur, pop, i,
-		prune = true,
-		contextXML = Sizzle.isXML( context ),
-		parts = [],
-		soFar = selector;
-
-	// Reset the position of the chunker regexp (start from head)
-	do {
-		chunker.exec( "" );
-		m = chunker.exec( soFar );
-
-		if ( m ) {
-			soFar = m[3];
-
-			parts.push( m[1] );
-
-			if ( m[2] ) {
-				extra = m[3];
-				break;
-			}
-		}
-	} while ( m );
-
-	if ( parts.length > 1 && origPOS.exec( selector ) ) {
-
-		if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
-			set = posProcess( parts[0] + parts[1], context, seed );
-
-		} else {
-			set = Expr.relative[ parts[0] ] ?
-				[ context ] :
-				Sizzle( parts.shift(), context );
-
-			while ( parts.length ) {
-				selector = parts.shift();
-
-				if ( Expr.relative[ selector ] ) {
-					selector += parts.shift();
-				}
-
-				set = posProcess( selector, set, seed );
-			}
-		}
-
-	} else {
-		// Take a shortcut and set the context if the root selector is an ID
-		// (but not if it'll be faster if the inner selector is an ID)
-		if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
-				Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
-
-			ret = Sizzle.find( parts.shift(), context, contextXML );
-			context = ret.expr ?
-				Sizzle.filter( ret.expr, ret.set )[0] :
-				ret.set[0];
-		}
-
-		if ( context ) {
-			ret = seed ?
-				{ expr: parts.pop(), set: makeArray(seed) } :
-				Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
-
-			set = ret.expr ?
-				Sizzle.filter( ret.expr, ret.set ) :
-				ret.set;
-
-			if ( parts.length > 0 ) {
-				checkSet = makeArray( set );
-
-			} else {
-				prune = false;
-			}
-
-			while ( parts.length ) {
-				cur = parts.pop();
-				pop = cur;
-
-				if ( !Expr.relative[ cur ] ) {
-					cur = "";
-				} else {
-					pop = parts.pop();
-				}
-
-				if ( pop == null ) {
-					pop = context;
-				}
-
-				Expr.relative[ cur ]( checkSet, pop, contextXML );
-			}
-
-		} else {
-			checkSet = parts = [];
-		}
-	}
-
-	if ( !checkSet ) {
-		checkSet = set;
-	}
-
-	if ( !checkSet ) {
-		Sizzle.error( cur || selector );
-	}
-
-	if ( toString.call(checkSet) === "[object Array]" ) {
-		if ( !prune ) {
-			results.push.apply( results, checkSet );
-
-		} else if ( context && context.nodeType === 1 ) {
-			for ( i = 0; checkSet[i] != null; i++ ) {
-				if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
-					results.push( set[i] );
-				}
-			}
-
-		} else {
-			for ( i = 0; checkSet[i] != null; i++ ) {
-				if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
-					results.push( set[i] );
-				}
-			}
-		}
-
-	} else {
-		makeArray( checkSet, results );
-	}
-
-	if ( extra ) {
-		Sizzle( extra, origContext, results, seed );
-		Sizzle.uniqueSort( results );
-	}
-
-	return results;
-};
-
-Sizzle.uniqueSort = function( results ) {
-	if ( sortOrder ) {
-		hasDuplicate = baseHasDuplicate;
-		results.sort( sortOrder );
-
-		if ( hasDuplicate ) {
-			for ( var i = 1; i < results.length; i++ ) {
-				if ( results[i] === results[ i - 1 ] ) {
-					results.splice( i--, 1 );
-				}
-			}
-		}
-	}
-
-	return results;
-};
-
-Sizzle.matches = function( expr, set ) {
-	return Sizzle( expr, null, null, set );
-};
-
-Sizzle.matchesSelector = function( node, expr ) {
-	return Sizzle( expr, null, null, [node] ).length > 0;
-};
-
-Sizzle.find = function( expr, context, isXML ) {
-	var set, i, len, match, type, left;
-
-	if ( !expr ) {
-		return [];
-	}
-
-	for ( i = 0, len = Expr.order.length; i < len; i++ ) {
-		type = Expr.order[i];
-
-		if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
-			left = match[1];
-			match.splice( 1, 1 );
-
-			if ( left.substr( left.length - 1 ) !== "\\" ) {
-				match[1] = (match[1] || "").replace( rBackslash, "" );
-				set = Expr.find[ type ]( match, context, isXML );
-
-				if ( set != null ) {
-					expr = expr.replace( Expr.match[ type ], "" );
-					break;
-				}
-			}
-		}
-	}
-
-	if ( !set ) {
-		set = typeof context.getElementsByTagName !== "undefined" ?
-			context.getElementsByTagName( "*" ) :
-			[];
-	}
-
-	return { set: set, expr: expr };
-};
-
-Sizzle.filter = function( expr, set, inplace, not ) {
-	var match, anyFound,
-		type, found, item, filter, left,
-		i, pass,
-		old = expr,
-		result = [],
-		curLoop = set,
-		isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );
-
-	while ( expr && set.length ) {
-		for ( type in Expr.filter ) {
-			if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
-				filter = Expr.filter[ type ];
-				left = match[1];
-
-				anyFound = false;
-
-				match.splice(1,1);
-
-				if ( left.substr( left.length - 1 ) === "\\" ) {
-					continue;
-				}
-
-				if ( curLoop === result ) {
-					result = [];
-				}
-
-				if ( Expr.preFilter[ type ] ) {
-					match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
-
-					if ( !match ) {
-						anyFound = found = true;
-
-					} else if ( match === true ) {
-						continue;
-					}
-				}
-
-				if ( match ) {
-					for ( i = 0; (item = curLoop[i]) != null; i++ ) {
-						if ( item ) {
-							found = filter( item, match, i, curLoop );
-							pass = not ^ found;
-
-							if ( inplace && found != null ) {
-								if ( pass ) {
-									anyFound = true;
-
-								} else {
-									curLoop[i] = false;
-								}
-
-							} else if ( pass ) {
-								result.push( item );
-								anyFound = true;
-							}
-						}
-					}
-				}
-
-				if ( found !== undefined ) {
-					if ( !inplace ) {
-						curLoop = result;
-					}
-
-					expr = expr.replace( Expr.match[ type ], "" );
-
-					if ( !anyFound ) {
-						return [];
-					}
-
-					break;
-				}
-			}
-		}
-
-		// Improper expression
-		if ( expr === old ) {
-			if ( anyFound == null ) {
-				Sizzle.error( expr );
-
-			} else {
-				break;
-			}
-		}
-
-		old = expr;
-	}
-
-	return curLoop;
-};
-
-Sizzle.error = function( msg ) {
-	throw new Error( "Syntax error, unrecognized expression: " + msg );
-};
-
-/**
- * Utility function for retreiving the text value of an array of DOM nodes
- * @param {Array|Element} elem
- */
-var getText = Sizzle.getText = function( elem ) {
-    var i, node,
-		nodeType = elem.nodeType,
-		ret = "";
-
-	if ( nodeType ) {
-		if ( nodeType === 1 || nodeType === 9 ) {
-			// Use textContent || innerText for elements
-			if ( typeof elem.textContent === 'string' ) {
-				return elem.textContent;
-			} else if ( typeof elem.innerText === 'string' ) {
-				// Replace IE's carriage returns
-				return elem.innerText.replace( rReturn, '' );
-			} else {
-				// Traverse it's children
-				for ( elem = elem.firstChild; elem; elem = elem.nextSibling) {
-					ret += getText( elem );
-				}
-			}
-		} else if ( nodeType === 3 || nodeType === 4 ) {
-			return elem.nodeValue;
-		}
-	} else {
-
-		// If no nodeType, this is expected to be an array
-		for ( i = 0; (node = elem[i]); i++ ) {
-			// Do not traverse comment nodes
-			if ( node.nodeType !== 8 ) {
-				ret += getText( node );
-			}
-		}
-	}
-	return ret;
-};
-
-var Expr = Sizzle.selectors = {
-	order: [ "ID", "NAME", "TAG" ],
-
-	match: {
-		ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
-		CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
-		NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
-		ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
-		TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
-		CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
-		POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
-		PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
-	},
-
-	leftMatch: {},
-
-	attrMap: {
-		"class": "className",
-		"for": "htmlFor"
-	},
-
-	attrHandle: {
-		href: function( elem ) {
-			return elem.getAttribute( "href" );
-		},
-		type: function( elem ) {
-			return elem.getAttribute( "type" );
-		}
-	},
-
-	relative: {
-		"+": function(checkSet, part){
-			var isPartStr = typeof part === "string",
-				isTag = isPartStr && !rNonWord.test( part ),
-				isPartStrNotTag = isPartStr && !isTag;
-
-			if ( isTag ) {
-				part = part.toLowerCase();
-			}
-
-			for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
-				if ( (elem = checkSet[i]) ) {
-					while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
-
-					checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
-						elem || false :
-						elem === part;
-				}
-			}
-
-			if ( isPartStrNotTag ) {
-				Sizzle.filter( part, checkSet, true );
-			}
-		},
-
-		">": function( checkSet, part ) {
-			var elem,
-				isPartStr = typeof part === "string",
-				i = 0,
-				l = checkSet.length;
-
-			if ( isPartStr && !rNonWord.test( part ) ) {
-				part = part.toLowerCase();
-
-				for ( ; i < l; i++ ) {
-					elem = checkSet[i];
-
-					if ( elem ) {
-						var parent = elem.parentNode;
-						checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
-					}
-				}
-
-			} else {
-				for ( ; i < l; i++ ) {
-					elem = checkSet[i];
-
-					if ( elem ) {
-						checkSet[i] = isPartStr ?
-							elem.parentNode :
-							elem.parentNode === part;
-					}
-				}
-
-				if ( isPartStr ) {
-					Sizzle.filter( part, checkSet, true );
-				}
-			}
-		},
-
-		"": function(checkSet, part, isXML){
-			var nodeCheck,
-				doneName = done++,
-				checkFn = dirCheck;
-
-			if ( typeof part === "string" && !rNonWord.test( part ) ) {
-				part = part.toLowerCase();
-				nodeCheck = part;
-				checkFn = dirNodeCheck;
-			}
-
-			checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );
-		},
-
-		"~": function( checkSet, part, isXML ) {
-			var nodeCheck,
-				doneName = done++,
-				checkFn = dirCheck;
-
-			if ( typeof part === "string" && !rNonWord.test( part ) ) {
-				part = part.toLowerCase();
-				nodeCheck = part;
-				checkFn = dirNodeCheck;
-			}
-
-			checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );
-		}
-	},
-
-	find: {
-		ID: function( match, context, isXML ) {
-			if ( typeof context.getElementById !== "undefined" && !isXML ) {
-				var m = context.getElementById(match[1]);
-				// Check parentNode to catch when Blackberry 4.6 returns
-				// nodes that are no longer in the document #6963
-				return m && m.parentNode ? [m] : [];
-			}
-		},
-
-		NAME: function( match, context ) {
-			if ( typeof context.getElementsByName !== "undefined" ) {
-				var ret = [],
-					results = context.getElementsByName( match[1] );
-
-				for ( var i = 0, l = results.length; i < l; i++ ) {
-					if ( results[i].getAttribute("name") === match[1] ) {
-						ret.push( results[i] );
-					}
-				}
-
-				return ret.length === 0 ? null : ret;
-			}
-		},
-
-		TAG: function( match, context ) {
-			if ( typeof context.getElementsByTagName !== "undefined" ) {
-				return context.getElementsByTagName( match[1] );
-			}
-		}
-	},
-	preFilter: {
-		CLASS: function( match, curLoop, inplace, result, not, isXML ) {
-			match = " " + match[1].replace( rBackslash, "" ) + " ";
-
-			if ( isXML ) {
-				return match;
-			}
-
-			for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
-				if ( elem ) {
-					if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) {
-						if ( !inplace ) {
-							result.push( elem );
-						}
-
-					} else if ( inplace ) {
-						curLoop[i] = false;
-					}
-				}
-			}
-
-			return false;
-		},
-
-		ID: function( match ) {
-			return match[1].replace( rBackslash, "" );
-		},
-
-		TAG: function( match, curLoop ) {
-			return match[1].replace( rBackslash, "" ).toLowerCase();
-		},
-
-		CHILD: function( match ) {
-			if ( match[1] === "nth" ) {
-				if ( !match[2] ) {
-					Sizzle.error( match[0] );
-				}
-
-				match[2] = match[2].replace(/^\+|\s*/g, '');
-
-				// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
-				var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(
-					match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
-					!/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
-
-				// calculate the numbers (first)n+(last) including if they are negative
-				match[2] = (test[1] + (test[2] || 1)) - 0;
-				match[3] = test[3] - 0;
-			}
-			else if ( match[2] ) {
-				Sizzle.error( match[0] );
-			}
-
-			// TODO: Move to normal caching system
-			match[0] = done++;
-
-			return match;
-		},
-
-		ATTR: function( match, curLoop, inplace, result, not, isXML ) {
-			var name = match[1] = match[1].replace( rBackslash, "" );
-
-			if ( !isXML && Expr.attrMap[name] ) {
-				match[1] = Expr.attrMap[name];
-			}
-
-			// Handle if an un-quoted value was used
-			match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );
-
-			if ( match[2] === "~=" ) {
-				match[4] = " " + match[4] + " ";
-			}
-
-			return match;
-		},
-
-		PSEUDO: function( match, curLoop, inplace, result, not ) {
-			if ( match[1] === "not" ) {
-				// If we're dealing with a complex expression, or a simple one
-				if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
-					match[3] = Sizzle(match[3], null, null, curLoop);
-
-				} else {
-					var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
-
-					if ( !inplace ) {
-						result.push.apply( result, ret );
-					}
-
-					return false;
-				}
-
-			} else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
-				return true;
-			}
-
-			return match;
-		},
-
-		POS: function( match ) {
-			match.unshift( true );
-
-			return match;
-		}
-	},
-
-	filters: {
-		enabled: function( elem ) {
-			return elem.disabled === false && elem.type !== "hidden";
-		},
-
-		disabled: function( elem ) {
-			return elem.disabled === true;
-		},
-
-		checked: function( elem ) {
-			return elem.checked === true;
-		},
-
-		selected: function( elem ) {
-			// Accessing this property makes selected-by-default
-			// options in Safari work properly
-			if ( elem.parentNode ) {
-				elem.parentNode.selectedIndex;
-			}
-
-			return elem.selected === true;
-		},
-
-		parent: function( elem ) {
-			return !!elem.firstChild;
-		},
-
-		empty: function( elem ) {
-			return !elem.firstChild;
-		},
-
-		has: function( elem, i, match ) {
-			return !!Sizzle( match[3], elem ).length;
-		},
-
-		header: function( elem ) {
-			return (/h\d/i).test( elem.nodeName );
-		},
-
-		text: function( elem ) {
-			var attr = elem.getAttribute( "type" ), type = elem.type;
-			// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
-			// use getAttribute instead to test this case
-			return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null );
-		},
-
-		radio: function( elem ) {
-			return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type;
-		},
-
-		checkbox: function( elem ) {
-			return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type;
-		},
-
-		file: function( elem ) {
-			return elem.nodeName.toLowerCase() === "input" && "file" === elem.type;
-		},
-
-		password: function( elem ) {
-			return elem.nodeName.toLowerCase() === "input" && "password" === elem.type;
-		},
-
-		submit: function( elem ) {
-			var name = elem.nodeName.toLowerCase();
-			return (name === "input" || name === "button") && "submit" === elem.type;
-		},
-
-		image: function( elem ) {
-			return elem.nodeName.toLowerCase() === "input" && "image" === elem.type;
-		},
-
-		reset: function( elem ) {
-			var name = elem.nodeName.toLowerCase();
-			return (name === "input" || name === "button") && "reset" === elem.type;
-		},
-
-		button: function( elem ) {
-			var name = elem.nodeName.toLowerCase();
-			return name === "input" && "button" === elem.type || name === "button";
-		},
-
-		input: function( elem ) {
-			return (/input|select|textarea|button/i).test( elem.nodeName );
-		},
-
-		focus: function( elem ) {
-			return elem === elem.ownerDocument.activeElement;
-		}
-	},
-	setFilters: {
-		first: function( elem, i ) {
-			return i === 0;
-		},
-
-		last: function( elem, i, match, array ) {
-			return i === array.length - 1;
-		},
-
-		even: function( elem, i ) {
-			return i % 2 === 0;
-		},
-
-		odd: function( elem, i ) {
-			return i % 2 === 1;
-		},
-
-		lt: function( elem, i, match ) {
-			return i < match[3] - 0;
-		},
-
-		gt: function( elem, i, match ) {
-			return i > match[3] - 0;
-		},
-
-		nth: function( elem, i, match ) {
-			return match[3] - 0 === i;
-		},
-
-		eq: function( elem, i, match ) {
-			return match[3] - 0 === i;
-		}
-	},
-	filter: {
-		PSEUDO: function( elem, match, i, array ) {
-			var name = match[1],
-				filter = Expr.filters[ name ];
-
-			if ( filter ) {
-				return filter( elem, i, match, array );
-
-			} else if ( name === "contains" ) {
-				return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0;
-
-			} else if ( name === "not" ) {
-				var not = match[3];
-
-				for ( var j = 0, l = not.length; j < l; j++ ) {
-					if ( not[j] === elem ) {
-						return false;
-					}
-				}
-
-				return true;
-
-			} else {
-				Sizzle.error( name );
-			}
-		},
-
-		CHILD: function( elem, match ) {
-			var first, last,
-				doneName, parent, cache,
-				count, diff,
-				type = match[1],
-				node = elem;
-
-			switch ( type ) {
-				case "only":
-				case "first":
-					while ( (node = node.previousSibling) )	 {
-						if ( node.nodeType === 1 ) {
-							return false;
-						}
-					}
-
-					if ( type === "first" ) {
-						return true;
-					}
-
-					node = elem;
-
-				case "last":
-					while ( (node = node.nextSibling) )	 {
-						if ( node.nodeType === 1 ) {
-							return false;
-						}
-					}
-
-					return true;
-
-				case "nth":
-					first = match[2];
-					last = match[3];
-
-					if ( first === 1 && last === 0 ) {
-						return true;
-					}
-
-					doneName = match[0];
-					parent = elem.parentNode;
-
-					if ( parent && (parent[ expando ] !== doneName || !elem.nodeIndex) ) {
-						count = 0;
-
-						for ( node = parent.firstChild; node; node = node.nextSibling ) {
-							if ( node.nodeType === 1 ) {
-								node.nodeIndex = ++count;
-							}
-						}
-
-						parent[ expando ] = doneName;
-					}
-
-					diff = elem.nodeIndex - last;
-
-					if ( first === 0 ) {
-						return diff === 0;
-
-					} else {
-						return ( diff % first === 0 && diff / first >= 0 );
-					}
-			}
-		},
-
-		ID: function( elem, match ) {
-			return elem.nodeType === 1 && elem.getAttribute("id") === match;
-		},
-
-		TAG: function( elem, match ) {
-			return (match === "*" && elem.nodeType === 1) || !!elem.nodeName && elem.nodeName.toLowerCase() === match;
-		},
-
-		CLASS: function( elem, match ) {
-			return (" " + (elem.className || elem.getAttribute("class")) + " ")
-				.indexOf( match ) > -1;
-		},
-
-		ATTR: function( elem, match ) {
-			var name = match[1],
-				result = Sizzle.attr ?
-					Sizzle.attr( elem, name ) :
-					Expr.attrHandle[ name ] ?
-					Expr.attrHandle[ name ]( elem ) :
-					elem[ name ] != null ?
-						elem[ name ] :
-						elem.getAttribute( name ),
-				value = result + "",
-				type = match[2],
-				check = match[4];
-
-			return result == null ?
-				type === "!=" :
-				!type && Sizzle.attr ?
-				result != null :
-				type === "=" ?
-				value === check :
-				type === "*=" ?
-				value.indexOf(check) >= 0 :
-				type === "~=" ?
-				(" " + value + " ").indexOf(check) >= 0 :
-				!check ?
-				value && result !== false :
-				type === "!=" ?
-				value !== check :
-				type === "^=" ?
-				value.indexOf(check) === 0 :
-				type === "$=" ?
-				value.substr(value.length - check.length) === check :
-				type === "|=" ?
-				value === check || value.substr(0, check.length + 1) === check + "-" :
-				false;
-		},
-
-		POS: function( elem, match, i, array ) {
-			var name = match[2],
-				filter = Expr.setFilters[ name ];
-
-			if ( filter ) {
-				return filter( elem, i, match, array );
-			}
-		}
-	}
-};
-
-var origPOS = Expr.match.POS,
-	fescape = function(all, num){
-		return "\\" + (num - 0 + 1);
-	};
-
-for ( var type in Expr.match ) {
-	Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
-	Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
-}
-
-var makeArray = function( array, results ) {
-	array = Array.prototype.slice.call( array, 0 );
-
-	if ( results ) {
-		results.push.apply( results, array );
-		return results;
-	}
-
-	return array;
-};
-
-// Perform a simple check to determine if the browser is capable of
-// converting a NodeList to an array using builtin methods.
-// Also verifies that the returned array holds DOM nodes
-// (which is not the case in the Blackberry browser)
-try {
-	Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
-
-// Provide a fallback method if it does not work
-} catch( e ) {
-	makeArray = function( array, results ) {
-		var i = 0,
-			ret = results || [];
-
-		if ( toString.call(array) === "[object Array]" ) {
-			Array.prototype.push.apply( ret, array );
-
-		} else {
-			if ( typeof array.length === "number" ) {
-				for ( var l = array.length; i < l; i++ ) {
-					ret.push( array[i] );
-				}
-
-			} else {
-				for ( ; array[i]; i++ ) {
-					ret.push( array[i] );
-				}
-			}
-		}
-
-		return ret;
-	};
-}
-
-var sortOrder, siblingCheck;
-
-if ( document.documentElement.compareDocumentPosition ) {
-	sortOrder = function( a, b ) {
-		if ( a === b ) {
-			hasDuplicate = true;
-			return 0;
-		}
-
-		if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
-			return a.compareDocumentPosition ? -1 : 1;
-		}
-
-		return a.compareDocumentPosition(b) & 4 ? -1 : 1;
-	};
-
-} else {
-	sortOrder = function( a, b ) {
-		// The nodes are identical, we can exit early
-		if ( a === b ) {
-			hasDuplicate = true;
-			return 0;
-
-		// Fallback to using sourceIndex (in IE) if it's available on both nodes
-		} else if ( a.sourceIndex && b.sourceIndex ) {
-			return a.sourceIndex - b.sourceIndex;
-		}
-
-		var al, bl,
-			ap = [],
-			bp = [],
-			aup = a.parentNode,
-			bup = b.parentNode,
-			cur = aup;
-
-		// If the nodes are siblings (or identical) we can do a quick check
-		if ( aup === bup ) {
-			return siblingCheck( a, b );
-
-		// If no parents were found then the nodes are disconnected
-		} else if ( !aup ) {
-			return -1;
-
-		} else if ( !bup ) {
-			return 1;
-		}
-
-		// Otherwise they're somewhere else in the tree so we need
-		// to build up a full list of the parentNodes for comparison
-		while ( cur ) {
-			ap.unshift( cur );
-			cur = cur.parentNode;
-		}
-
-		cur = bup;
-
-		while ( cur ) {
-			bp.unshift( cur );
-			cur = cur.parentNode;
-		}
-
-		al = ap.length;
-		bl = bp.length;
-
-		// Start walking down the tree looking for a discrepancy
-		for ( var i = 0; i < al && i < bl; i++ ) {
-			if ( ap[i] !== bp[i] ) {
-				return siblingCheck( ap[i], bp[i] );
-			}
-		}
-
-		// We ended someplace up the tree so do a sibling check
-		return i === al ?
-			siblingCheck( a, bp[i], -1 ) :
-			siblingCheck( ap[i], b, 1 );
-	};
-
-	siblingCheck = function( a, b, ret ) {
-		if ( a === b ) {
-			return ret;
-
-		var cur = a.nextSibling;
-		}
-
-		while ( cur ) {
-			if ( cur === b ) {
-				return -1;
-			}
-
-			cur = cur.nextSibling;
-		}
-
-		return 1;
-	};
-}
-
-// Check to see if the browser returns elements by name when
-// querying by getElementById (and provide a workaround)
-(function(){
-	// We're going to inject a fake input element with a specified name
-	var form = document.createElement("div"),
-		id = "script" + (new Date()).getTime(),
-		root = document.documentElement;
-
-	form.innerHTML = "<a name='" + id + "'/>";
-
-	// Inject it into the root element, check its status, and remove it quickly
-	root.insertBefore( form, root.firstChild );
-
-	// The workaround has to do additional checks after a getElementById
-	// Which slows things down for other browsers (hence the branching)
-	if ( document.getElementById( id ) ) {
-		Expr.find.ID = function( match, context, isXML ) {
-			if ( typeof context.getElementById !== "undefined" && !isXML ) {
-				var m = context.getElementById(match[1]);
-
-				return m ?
-					m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
-						[m] :
-						undefined :
-					[];
-			}
-		};
-
-		Expr.filter.ID = function( elem, match ) {
-			var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
-
-			return elem.nodeType === 1 && node && node.nodeValue === match;
-		};
-	}
-
-	root.removeChild( form );
-
-	// release memory in IE
-	root = form = null;
-})();
-
-(function(){
-	// Check to see if the browser returns only elements
-	// when doing getElementsByTagName("*")
-
-	// Create a fake element
-	var div = document.createElement("div");
-	div.appendChild( document.createComment("") );
-
-	// Make sure no comments are found
-	if ( div.getElementsByTagName("*").length > 0 ) {
-		Expr.find.TAG = function( match, context ) {
-			var results = context.getElementsByTagName( match[1] );
-
-			// Filter out possible comments
-			if ( match[1] === "*" ) {
-				var tmp = [];
-
-				for ( var i = 0; results[i]; i++ ) {
-					if ( results[i].nodeType === 1 ) {
-						tmp.push( results[i] );
-					}
-				}
-
-				results = tmp;
-			}
-
-			return results;
-		};
-	}
-
-	// Check to see if an attribute returns normalized href attributes
-	div.innerHTML = "<a href='#'></a>";
-
-	if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
-			div.firstChild.getAttribute("href") !== "#" ) {
-
-		Expr.attrHandle.href = function( elem ) {
-			return elem.getAttribute( "href", 2 );
-		};
-	}
-
-	// release memory in IE
-	div = null;
-})();
-
-if ( document.querySelectorAll ) {
-	(function(){
-		var oldSizzle = Sizzle,
-			div = document.createElement("div"),
-			id = "__sizzle__";
-
-		div.innerHTML = "<p class='TEST'></p>";
-
-		// Safari can't handle uppercase or unicode characters when
-		// in quirks mode.
-		if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
-			return;
-		}
-
-		Sizzle = function( query, context, extra, seed ) {
-			context = context || document;
-
-			// Only use querySelectorAll on non-XML documents
-			// (ID selectors don't work in non-HTML documents)
-			if ( !seed && !Sizzle.isXML(context) ) {
-				// See if we find a selector to speed up
-				var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
-
-				if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
-					// Speed-up: Sizzle("TAG")
-					if ( match[1] ) {
-						return makeArray( context.getElementsByTagName( query ), extra );
-
-					// Speed-up: Sizzle(".CLASS")
-					} else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
-						return makeArray( context.getElementsByClassName( match[2] ), extra );
-					}
-				}
-
-				if ( context.nodeType === 9 ) {
-					// Speed-up: Sizzle("body")
-					// The body element only exists once, optimize finding it
-					if ( query === "body" && context.body ) {
-						return makeArray( [ context.body ], extra );
-
-					// Speed-up: Sizzle("#ID")
-					} else if ( match && match[3] ) {
-						var elem = context.getElementById( match[3] );
-
-						// Check parentNode to catch when Blackberry 4.6 returns
-						// nodes that are no longer in the document #6963
-						if ( elem && elem.parentNode ) {
-							// Handle the case where IE and Opera return items
-							// by name instead of ID
-							if ( elem.id === match[3] ) {
-								return makeArray( [ elem ], extra );
-							}
-
-						} else {
-							return makeArray( [], extra );
-						}
-					}
-
-					try {
-						return makeArray( context.querySelectorAll(query), extra );
-					} catch(qsaError) {}
-
-				// qSA works strangely on Element-rooted queries
-				// We can work around this by specifying an extra ID on the root
-				// and working up from there (Thanks to Andrew Dupont for the technique)
-				// IE 8 doesn't work on object elements
-				} else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
-					var oldContext = context,
-						old = context.getAttribute( "id" ),
-						nid = old || id,
-						hasParent = context.parentNode,
-						relativeHierarchySelector = /^\s*[+~]/.test( query );
-
-					if ( !old ) {
-						context.setAttribute( "id", nid );
-					} else {
-						nid = nid.replace( /'/g, "\\$&" );
-					}
-					if ( relativeHierarchySelector && hasParent ) {
-						context = context.parentNode;
-					}
-
-					try {
-						if ( !relativeHierarchySelector || hasParent ) {
-							return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra );
-						}
-
-					} catch(pseudoError) {
-					} finally {
-						if ( !old ) {
-							oldContext.removeAttribute( "id" );
-						}
-					}
-				}
-			}
-
-			return oldSizzle(query, context, extra, seed);
-		};
-
-		for ( var prop in oldSizzle ) {
-			Sizzle[ prop ] = oldSizzle[ prop ];
-		}
-
-		// release memory in IE
-		div = null;
-	})();
-}
-
-(function(){
-	var html = document.documentElement,
-		matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector;
-
-	if ( matches ) {
-		// Check to see if it's possible to do matchesSelector
-		// on a disconnected node (IE 9 fails this)
-		var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ),
-			pseudoWorks = false;
-
-		try {
-			// This should fail with an exception
-			// Gecko does not error, returns false instead
-			matches.call( document.documentElement, "[test!='']:sizzle" );
-
-		} catch( pseudoError ) {
-			pseudoWorks = true;
-		}
-
-		Sizzle.matchesSelector = function( node, expr ) {
-			// Make sure that attribute selectors are quoted
-			expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
-
-			if ( !Sizzle.isXML( node ) ) {
-				try {
-					if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
-						var ret = matches.call( node, expr );
-
-						// IE 9's matchesSelector returns false on disconnected nodes
-						if ( ret || !disconnectedMatch ||
-								// As well, disconnected nodes are said to be in a document
-								// fragment in IE 9, so check for that
-								node.document && node.document.nodeType !== 11 ) {
-							return ret;
-						}
-					}
-				} catch(e) {}
-			}
-
-			return Sizzle(expr, null, null, [node]).length > 0;
-		};
-	}
-})();
-
-(function(){
-	var div = document.createElement("div");
-
-	div.innerHTML = "<div class='test e'></div><div class='test'></div>";
-
-	// Opera can't find a second classname (in 9.6)
-	// Also, make sure that getElementsByClassName actually exists
-	if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
-		return;
-	}
-
-	// Safari caches class attributes, doesn't catch changes (in 3.2)
-	div.lastChild.className = "e";
-
-	if ( div.getElementsByClassName("e").length === 1 ) {
-		return;
-	}
-
-	Expr.order.splice(1, 0, "CLASS");
-	Expr.find.CLASS = function( match, context, isXML ) {
-		if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
-			return context.getElementsByClassName(match[1]);
-		}
-	};
-
-	// release memory in IE
-	div = null;
-})();
-
-function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
-	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
-		var elem = checkSet[i];
-
-		if ( elem ) {
-			var match = false;
-
-			elem = elem[dir];
-
-			while ( elem ) {
-				if ( elem[ expando ] === doneName ) {
-					match = checkSet[elem.sizset];
-					break;
-				}
-
-				if ( elem.nodeType === 1 && !isXML ){
-					elem[ expando ] = doneName;
-					elem.sizset = i;
-				}
-
-				if ( elem.nodeName.toLowerCase() === cur ) {
-					match = elem;
-					break;
-				}
-
-				elem = elem[dir];
-			}
-
-			checkSet[i] = match;
-		}
-	}
-}
-
-function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
-	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
-		var elem = checkSet[i];
-
-		if ( elem ) {
-			var match = false;
-
-			elem = elem[dir];
-
-			while ( elem ) {
-				if ( elem[ expando ] === doneName ) {
-					match = checkSet[elem.sizset];
-					break;
-				}
-
-				if ( elem.nodeType === 1 ) {
-					if ( !isXML ) {
-						elem[ expando ] = doneName;
-						elem.sizset = i;
-					}
-
-					if ( typeof cur !== "string" ) {
-						if ( elem === cur ) {
-							match = true;
-							break;
-						}
-
-					} else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
-						match = elem;
-						break;
-					}
-				}
-
-				elem = elem[dir];
-			}
-
-			checkSet[i] = match;
-		}
-	}
-}
-
-if ( document.documentElement.contains ) {
-	Sizzle.contains = function( a, b ) {
-		return a !== b && (a.contains ? a.contains(b) : true);
-	};
-
-} else if ( document.documentElement.compareDocumentPosition ) {
-	Sizzle.contains = function( a, b ) {
-		return !!(a.compareDocumentPosition(b) & 16);
-	};
-
-} else {
-	Sizzle.contains = function() {
-		return false;
-	};
-}
-
-Sizzle.isXML = function( elem ) {
-	// documentElement is verified for cases where it doesn't yet exist
-	// (such as loading iframes in IE - #4833)
-	var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
-
-	return documentElement ? documentElement.nodeName !== "HTML" : false;
-};
-
-var posProcess = function( selector, context, seed ) {
-	var match,
-		tmpSet = [],
-		later = "",
-		root = context.nodeType ? [context] : context;
-
-	// Position selectors must be done after the filter
-	// And so must :not(positional) so we move all PSEUDOs to the end
-	while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
-		later += match[0];
-		selector = selector.replace( Expr.match.PSEUDO, "" );
-	}
-
-	selector = Expr.relative[selector] ? selector + "*" : selector;
-
-	for ( var i = 0, l = root.length; i < l; i++ ) {
-		Sizzle( selector, root[i], tmpSet, seed );
-	}
-
-	return Sizzle.filter( later, tmpSet );
-};
-
-// EXPOSE
-// Override sizzle attribute retrieval
-Sizzle.attr = jQuery.attr;
-Sizzle.selectors.attrMap = {};
-jQuery.find = Sizzle;
-jQuery.expr = Sizzle.selectors;
-jQuery.expr[":"] = jQuery.expr.filters;
-jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = Sizzle.getText;
-jQuery.isXMLDoc = Sizzle.isXML;
-jQuery.contains = Sizzle.contains;
-
-
-})();
-
-
-var runtil = /Until$/,
-	rparentsprev = /^(?:parents|prevUntil|prevAll)/,
-	// Note: This RegExp should be improved, or likely pulled from Sizzle
-	rmultiselector = /,/,
-	isSimple = /^.[^:#\[\.,]*$/,
-	slice = Array.prototype.slice,
-	POS = jQuery.expr.match.POS,
-	// methods guaranteed to produce a unique set when starting from a unique set
-	guaranteedUnique = {
-		children: true,
-		contents: true,
-		next: true,
-		prev: true
-	};
-
-jQuery.fn.extend({
-	find: function( selector ) {
-		var self = this,
-			i, l;
-
-		if ( typeof selector !== "string" ) {
-			return jQuery( selector ).filter(function() {
-				for ( i = 0, l = self.length; i < l; i++ ) {
-					if ( jQuery.contains( self[ i ], this ) ) {
-						return true;
-					}
-				}
-			});
-		}
-
-		var ret = this.pushStack( "", "find", selector ),
-			length, n, r;
-
-		for ( i = 0, l = this.length; i < l; i++ ) {
-			length = ret.length;
-			jQuery.find( selector, this[i], ret );
-
-			if ( i > 0 ) {
-				// Make sure that the results are unique
-				for ( n = length; n < ret.length; n++ ) {
-					for ( r = 0; r < length; r++ ) {
-						if ( ret[r] === ret[n] ) {
-							ret.splice(n--, 1);
-							break;
-						}
-					}
-				}
-			}
-		}
-
-		return ret;
-	},
-
-	has: function( target ) {
-		var targets = jQuery( target );
-		return this.filter(function() {
-			for ( var i = 0, l = targets.length; i < l; i++ ) {
-				if ( jQuery.contains( this, targets[i] ) ) {
-					return true;
-				}
-			}
-		});
-	},
-
-	not: function( selector ) {
-		return this.pushStack( winnow(this, selector, false), "not", selector);
-	},
-
-	filter: function( selector ) {
-		return this.pushStack( winnow(this, selector, true), "filter", selector );
-	},
-
-	is: function( selector ) {
-		return !!selector && (
-			typeof selector === "string" ?
-				// If this is a positional selector, check membership in the returned set
-				// so $("p:first").is("p:last") won't return true for a doc with two "p".
-				POS.test( selector ) ?
-					jQuery( selector, this.context ).index( this[0] ) >= 0 :
-					jQuery.filter( selector, this ).length > 0 :
-				this.filter( selector ).length > 0 );
-	},
-
-	closest: function( selectors, context ) {
-		var ret = [], i, l, cur = this[0];
-
-		// Array (deprecated as of jQuery 1.7)
-		if ( jQuery.isArray( selectors ) ) {
-			var level = 1;
-
-			while ( cur && cur.ownerDocument && cur !== context ) {
-				for ( i = 0; i < selectors.length; i++ ) {
-
-					if ( jQuery( cur ).is( selectors[ i ] ) ) {
-						ret.push({ selector: selectors[ i ], elem: cur, level: level });
-					}
-				}
-
-				cur = cur.parentNode;
-				level++;
-			}
-
-			return ret;
-		}
-
-		// String
-		var pos = POS.test( selectors ) || typeof selectors !== "string" ?
-				jQuery( selectors, context || this.context ) :
-				0;
-
-		for ( i = 0, l = this.length; i < l; i++ ) {
-			cur = this[i];
-
-			while ( cur ) {
-				if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
-					ret.push( cur );
-					break;
-
-				} else {
-					cur = cur.parentNode;
-					if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) {
-						break;
-					}
-				}
-			}
-		}
-
-		ret = ret.length > 1 ? jQuery.unique( ret ) : ret;
-
-		return this.pushStack( ret, "closest", selectors );
-	},
-
-	// Determine the position of an element within
-	// the matched set of elements
-	index: function( elem ) {
-
-		// No argument, return index in parent
-		if ( !elem ) {
-			return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1;
-		}
-
-		// index in selector
-		if ( typeof elem === "string" ) {
-			return jQuery.inArray( this[0], jQuery( elem ) );
-		}
-
-		// Locate the position of the desired element
-		return jQuery.inArray(
-			// If it receives a jQuery object, the first element is used
-			elem.jquery ? elem[0] : elem, this );
-	},
-
-	add: function( selector, context ) {
-		var set = typeof selector === "string" ?
-				jQuery( selector, context ) :
-				jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
-			all = jQuery.merge( this.get(), set );
-
-		return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
-			all :
-			jQuery.unique( all ) );
-	},
-
-	andSelf: function() {
-		return this.add( this.prevObject );
-	}
-});
-
-// A painfully simple check to see if an element is disconnected
-// from a document (should be improved, where feasible).
-function isDisconnected( node ) {
-	return !node || !node.parentNode || node.parentNode.nodeType === 11;
-}
-
-jQuery.each({
-	parent: function( elem ) {
-		var parent = elem.parentNode;
-		return parent && parent.nodeType !== 11 ? parent : null;
-	},
-	parents: function( elem ) {
-		return jQuery.dir( elem, "parentNode" );
-	},
-	parentsUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "parentNode", until );
-	},
-	next: function( elem ) {
-		return jQuery.nth( elem, 2, "nextSibling" );
-	},
-	prev: function( elem ) {
-		return jQuery.nth( elem, 2, "previousSibling" );
-	},
-	nextAll: function( elem ) {
-		return jQuery.dir( elem, "nextSibling" );
-	},
-	prevAll: function( elem ) {
-		return jQuery.dir( elem, "previousSibling" );
-	},
-	nextUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "nextSibling", until );
-	},
-	prevUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "previousSibling", until );
-	},
-	siblings: function( elem ) {
-		return jQuery.sibling( elem.parentNode.firstChild, elem );
-	},
-	children: function( elem ) {
-		return jQuery.sibling( elem.firstChild );
-	},
-	contents: function( elem ) {
-		return jQuery.nodeName( elem, "iframe" ) ?
-			elem.contentDocument || elem.contentWindow.document :
-			jQuery.makeArray( elem.childNodes );
-	}
-}, function( name, fn ) {
-	jQuery.fn[ name ] = function( until, selector ) {
-		var ret = jQuery.map( this, fn, until );
-
-		if ( !runtil.test( name ) ) {
-			selector = until;
-		}
-
-		if ( selector && typeof selector === "string" ) {
-			ret = jQuery.filter( selector, ret );
-		}
-
-		ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
-
-		if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
-			ret = ret.reverse();
-		}
-
-		return this.pushStack( ret, name, slice.call( arguments ).join(",") );
-	};
-});
-
-jQuery.extend({
-	filter: function( expr, elems, not ) {
-		if ( not ) {
-			expr = ":not(" + expr + ")";
-		}
-
-		return elems.length === 1 ?
-			jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
-			jQuery.find.matches(expr, elems);
-	},
-
-	dir: function( elem, dir, until ) {
-		var matched = [],
-			cur = elem[ dir ];
-
-		while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
-			if ( cur.nodeType === 1 ) {
-				matched.push( cur );
-			}
-			cur = cur[dir];
-		}
-		return matched;
-	},
-
-	nth: function( cur, result, dir, elem ) {
-		result = result || 1;
-		var num = 0;
-
-		for ( ; cur; cur = cur[dir] ) {
-			if ( cur.nodeType === 1 && ++num === result ) {
-				break;
-			}
-		}
-
-		return cur;
-	},
-
-	sibling: function( n, elem ) {
-		var r = [];
-
-		for ( ; n; n = n.nextSibling ) {
-			if ( n.nodeType === 1 && n !== elem ) {
-				r.push( n );
-			}
-		}
-
-		return r;
-	}
-});
-
-// Implement the identical functionality for filter and not
-function winnow( elements, qualifier, keep ) {
-
-	// Can't pass null or undefined to indexOf in Firefox 4
-	// Set to 0 to skip string check
-	qualifier = qualifier || 0;
-
-	if ( jQuery.isFunction( qualifier ) ) {
-		return jQuery.grep(elements, function( elem, i ) {
-			var retVal = !!qualifier.call( elem, i, elem );
-			return retVal === keep;
-		});
-
-	} else if ( qualifier.nodeType ) {
-		return jQuery.grep(elements, function( elem, i ) {
-			return ( elem === qualifier ) === keep;
-		});
-
-	} else if ( typeof qualifier === "string" ) {
-		var filtered = jQuery.grep(elements, function( elem ) {
-			return elem.nodeType === 1;
-		});
-
-		if ( isSimple.test( qualifier ) ) {
-			return jQuery.filter(qualifier, filtered, !keep);
-		} else {
-			qualifier = jQuery.filter( qualifier, filtered );
-		}
-	}
-
-	return jQuery.grep(elements, function( elem, i ) {
-		return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep;
-	});
-}
-
-
-
-
-function createSafeFragment( document ) {
-	var list = nodeNames.split( "|" ),
-	safeFrag = document.createDocumentFragment();
-
-	if ( safeFrag.createElement ) {
-		while ( list.length ) {
-			safeFrag.createElement(
-				list.pop()
-			);
-		}
-	}
-	return safeFrag;
-}
-
-var nodeNames = "abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|" +
-		"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
-	rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
-	rleadingWhitespace = /^\s+/,
-	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
-	rtagName = /<([\w:]+)/,
-	rtbody = /<tbody/i,
-	rhtml = /<|&#?\w+;/,
-	rnoInnerhtml = /<(?:script|style)/i,
-	rnocache = /<(?:script|object|embed|option|style)/i,
-	rnoshimcache = new RegExp("<(?:" + nodeNames + ")", "i"),
-	// checked="checked" or checked
-	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
-	rscriptType = /\/(java|ecma)script/i,
-	rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)/,
-	wrapMap = {
-		option: [ 1, "<select multiple='multiple'>", "</select>" ],
-		legend: [ 1, "<fieldset>", "</fieldset>" ],
-		thead: [ 1, "<table>", "</table>" ],
-		tr: [ 2, "<table><tbody>", "</tbody></table>" ],
-		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
-		col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
-		area: [ 1, "<map>", "</map>" ],
-		_default: [ 0, "", "" ]
-	},
-	safeFragment = createSafeFragment( document );
-
-wrapMap.optgroup = wrapMap.option;
-wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
-wrapMap.th = wrapMap.td;
-
-// IE can't serialize <link> and <script> tags normally
-if ( !jQuery.support.htmlSerialize ) {
-	wrapMap._default = [ 1, "div<div>", "</div>" ];
-}
-
-jQuery.fn.extend({
-	text: function( text ) {
-		if ( jQuery.isFunction(text) ) {
-			return this.each(function(i) {
-				var self = jQuery( this );
-
-				self.text( text.call(this, i, self.text()) );
-			});
-		}
-
-		if ( typeof text !== "object" && text !== undefined ) {
-			return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
-		}
-
-		return jQuery.text( this );
-	},
-
-	wrapAll: function( html ) {
-		if ( jQuery.isFunction( html ) ) {
-			return this.each(function(i) {
-				jQuery(this).wrapAll( html.call(this, i) );
-			});
-		}
-
-		if ( this[0] ) {
-			// The elements to wrap the target around
-			var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
-
-			if ( this[0].parentNode ) {
-				wrap.insertBefore( this[0] );
-			}
-
-			wrap.map(function() {
-				var elem = this;
-
-				while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
-					elem = elem.firstChild;
-				}
-
-				return elem;
-			}).append( this );
-		}
-
-		return this;
-	},
-
-	wrapInner: function( html ) {
-		if ( jQuery.isFunction( html ) ) {
-			return this.each(function(i) {
-				jQuery(this).wrapInner( html.call(this, i) );
-			});
-		}
-
-		return this.each(function() {
-			var self = jQuery( this ),
-				contents = self.contents();
-
-			if ( contents.length ) {
-				contents.wrapAll( html );
-
-			} else {
-				self.append( html );
-			}
-		});
-	},
-
-	wrap: function( html ) {
-		var isFunction = jQuery.isFunction( html );
-
-		return this.each(function(i) {
-			jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
-		});
-	},
-
-	unwrap: function() {
-		return this.parent().each(function() {
-			if ( !jQuery.nodeName( this, "body" ) ) {
-				jQuery( this ).replaceWith( this.childNodes );
-			}
-		}).end();
-	},
-
-	append: function() {
-		return this.domManip(arguments, true, function( elem ) {
-			if ( this.nodeType === 1 ) {
-				this.appendChild( elem );
-			}
-		});
-	},
-
-	prepend: function() {
-		return this.domManip(arguments, true, function( elem ) {
-			if ( this.nodeType === 1 ) {
-				this.insertBefore( elem, this.firstChild );
-			}
-		});
-	},
-
-	before: function() {
-		if ( this[0] && this[0].parentNode ) {
-			return this.domManip(arguments, false, function( elem ) {
-				this.parentNode.insertBefore( elem, this );
-			});
-		} else if ( arguments.length ) {
-			var set = jQuery.clean( arguments );
-			set.push.apply( set, this.toArray() );
-			return this.pushStack( set, "before", arguments );
-		}
-	},
-
-	after: function() {
-		if ( this[0] && this[0].parentNode ) {
-			return this.domManip(arguments, false, function( elem ) {
-				this.parentNode.insertBefore( elem, this.nextSibling );
-			});
-		} else if ( arguments.length ) {
-			var set = this.pushStack( this, "after", arguments );
-			set.push.apply( set, jQuery.clean(arguments) );
-			return set;
-		}
-	},
-
-	// keepData is for internal use only--do not document
-	remove: function( selector, keepData ) {
-		for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
-			if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
-				if ( !keepData && elem.nodeType === 1 ) {
-					jQuery.cleanData( elem.getElementsByTagName("*") );
-					jQuery.cleanData( [ elem ] );
-				}
-
-				if ( elem.parentNode ) {
-					elem.parentNode.removeChild( elem );
-				}
-			}
-		}
-
-		return this;
-	},
-
-	empty: function() {
-		for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
-			// Remove element nodes and prevent memory leaks
-			if ( elem.nodeType === 1 ) {
-				jQuery.cleanData( elem.getElementsByTagName("*") );
-			}
-
-			// Remove any remaining nodes
-			while ( elem.firstChild ) {
-				elem.removeChild( elem.firstChild );
-			}
-		}
-
-		return this;
-	},
-
-	clone: function( dataAndEvents, deepDataAndEvents ) {
-		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
-		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
-
-		return this.map( function () {
-			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
-		});
-	},
-
-	html: function( value ) {
-		if ( value === undefined ) {
-			return this[0] && this[0].nodeType === 1 ?
-				this[0].innerHTML.replace(rinlinejQuery, "") :
-				null;
-
-		// See if we can take a shortcut and just use innerHTML
-		} else if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
-			(jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) &&
-			!wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) {
-
-			value = value.replace(rxhtmlTag, "<$1></$2>");
-
-			try {
-				for ( var i = 0, l = this.length; i < l; i++ ) {
-					// Remove element nodes and prevent memory leaks
-					if ( this[i].nodeType === 1 ) {
-						jQuery.cleanData( this[i].getElementsByTagName("*") );
-						this[i].innerHTML = value;
-					}
-				}
-
-			// If using innerHTML throws an exception, use the fallback method
-			} catch(e) {
-				this.empty().append( value );
-			}
-
-		} else if ( jQuery.isFunction( value ) ) {
-			this.each(function(i){
-				var self = jQuery( this );
-
-				self.html( value.call(this, i, self.html()) );
-			});
-
-		} else {
-			this.empty().append( value );
-		}
-
-		return this;
-	},
-
-	replaceWith: function( value ) {
-		if ( this[0] && this[0].parentNode ) {
-			// Make sure that the elements are removed from the DOM before they are inserted
-			// this can help fix replacing a parent with child elements
-			if ( jQuery.isFunction( value ) ) {
-				return this.each(function(i) {
-					var self = jQuery(this), old = self.html();
-					self.replaceWith( value.call( this, i, old ) );
-				});
-			}
-
-			if ( typeof value !== "string" ) {
-				value = jQuery( value ).detach();
-			}
-
-			return this.each(function() {
-				var next = this.nextSibling,
-					parent = this.parentNode;
-
-				jQuery( this ).remove();
-
-				if ( next ) {
-					jQuery(next).before( value );
-				} else {
-					jQuery(parent).append( value );
-				}
-			});
-		} else {
-			return this.length ?
-				this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) :
-				this;
-		}
-	},
-
-	detach: function( selector ) {
-		return this.remove( selector, true );
-	},
-
-	domManip: function( args, table, callback ) {
-		var results, first, fragment, parent,
-			value = args[0],
-			scripts = [];
-
-		// We can't cloneNode fragments that contain checked, in WebKit
-		if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) {
-			return this.each(function() {
-				jQuery(this).domManip( args, table, callback, true );
-			});
-		}
-
-		if ( jQuery.isFunction(value) ) {
-			return this.each(function(i) {
-				var self = jQuery(this);
-				args[0] = value.call(this, i, table ? self.html() : undefined);
-				self.domManip( args, table, callback );
-			});
-		}
-
-		if ( this[0] ) {
-			parent = value && value.parentNode;
-
-			// If we're in a fragment, just use that instead of building a new one
-			if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) {
-				results = { fragment: parent };
-
-			} else {
-				results = jQuery.buildFragment( args, this, scripts );
-			}
-
-			fragment = results.fragment;
-
-			if ( fragment.childNodes.length === 1 ) {
-				first = fragment = fragment.firstChild;
-			} else {
-				first = fragment.firstChild;
-			}
-
-			if ( first ) {
-				table = table && jQuery.nodeName( first, "tr" );
-
-				for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) {
-					callback.call(
-						table ?
-							root(this[i], first) :
-							this[i],
-						// Make sure that we do not leak memory by inadvertently discarding
-						// the original fragment (which might have attached data) instead of
-						// using it; in addition, use the original fragment object for the last
-						// item instead of first because it can end up being emptied incorrectly
-						// in certain situations (Bug #8070).
-						// Fragments from the fragment cache must always be cloned and never used
-						// in place.
-						results.cacheable || ( l > 1 && i < lastIndex ) ?
-							jQuery.clone( fragment, true, true ) :
-							fragment
-					);
-				}
-			}
-
-			if ( scripts.length ) {
-				jQuery.each( scripts, evalScript );
-			}
-		}
-
-		return this;
-	}
-});
-
-function root( elem, cur ) {
-	return jQuery.nodeName(elem, "table") ?
-		(elem.getElementsByTagName("tbody")[0] ||
-		elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
-		elem;
-}
-
-function cloneCopyEvent( src, dest ) {
-
-	if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
-		return;
-	}
-
-	var type, i, l,
-		oldData = jQuery._data( src ),
-		curData = jQuery._data( dest, oldData ),
-		events = oldData.events;
-
-	if ( events ) {
-		delete curData.handle;
-		curData.events = {};
-
-		for ( type in events ) {
-			for ( i = 0, l = events[ type ].length; i < l; i++ ) {
-				jQuery.event.add( dest, type + ( events[ type ][ i ].namespace ? "." : "" ) + events[ type ][ i ].namespace, events[ type ][ i ], events[ type ][ i ].data );
-			}
-		}
-	}
-
-	// make the cloned public data object a copy from the original
-	if ( curData.data ) {
-		curData.data = jQuery.extend( {}, curData.data );
-	}
-}
-
-function cloneFixAttributes( src, dest ) {
-	var nodeName;
-
-	// We do not need to do anything for non-Elements
-	if ( dest.nodeType !== 1 ) {
-		return;
-	}
-
-	// clearAttributes removes the attributes, which we don't want,
-	// but also removes the attachEvent events, which we *do* want
-	if ( dest.clearAttributes ) {
-		dest.clearAttributes();
-	}
-
-	// mergeAttributes, in contrast, only merges back on the
-	// original attributes, not the events
-	if ( dest.mergeAttributes ) {
-		dest.mergeAttributes( src );
-	}
-
-	nodeName = dest.nodeName.toLowerCase();
-
-	// IE6-8 fail to clone children inside object elements that use
-	// the proprietary classid attribute value (rather than the type
-	// attribute) to identify the type of content to display
-	if ( nodeName === "object" ) {
-		dest.outerHTML = src.outerHTML;
-
-	} else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) {
-		// IE6-8 fails to persist the checked state of a cloned checkbox
-		// or radio button. Worse, IE6-7 fail to give the cloned element
-		// a checked appearance if the defaultChecked value isn't also set
-		if ( src.checked ) {
-			dest.defaultChecked = dest.checked = src.checked;
-		}
-
-		// IE6-7 get confused and end up setting the value of a cloned
-		// checkbox/radio button to an empty string instead of "on"
-		if ( dest.value !== src.value ) {
-			dest.value = src.value;
-		}
-
-	// IE6-8 fails to return the selected option to the default selected
-	// state when cloning options
-	} else if ( nodeName === "option" ) {
-		dest.selected = src.defaultSelected;
-
-	// IE6-8 fails to set the defaultValue to the correct value when
-	// cloning other types of input fields
-	} else if ( nodeName === "input" || nodeName === "textarea" ) {
-		dest.defaultValue = src.defaultValue;
-	}
-
-	// Event data gets referenced instead of copied if the expando
-	// gets copied too
-	dest.removeAttribute( jQuery.expando );
-}
-
-jQuery.buildFragment = function( args, nodes, scripts ) {
-	var fragment, cacheable, cacheresults, doc,
-	first = args[ 0 ];
-
-	// nodes may contain either an explicit document object,
-	// a jQuery collection or context object.
-	// If nodes[0] contains a valid object to assign to doc
-	if ( nodes && nodes[0] ) {
-		doc = nodes[0].ownerDocument || nodes[0];
-	}
-
-	// Ensure that an attr object doesn't incorrectly stand in as a document object
-	// Chrome and Firefox seem to allow this to occur and will throw exception
-	// Fixes #8950
-	if ( !doc.createDocumentFragment ) {
-		doc = document;
-	}
-
-	// Only cache "small" (1/2 KB) HTML strings that are associated with the main document
-	// Cloning options loses the selected state, so don't cache them
-	// IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
-	// Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
-	// Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501
-	if ( args.length === 1 && typeof first === "string" && first.length < 512 && doc === document &&
-		first.charAt(0) === "<" && !rnocache.test( first ) &&
-		(jQuery.support.checkClone || !rchecked.test( first )) &&
-		(jQuery.support.html5Clone || !rnoshimcache.test( first )) ) {
-
-		cacheable = true;
-
-		cacheresults = jQuery.fragments[ first ];
-		if ( cacheresults && cacheresults !== 1 ) {
-			fragment = cacheresults;
-		}
-	}
-
-	if ( !fragment ) {
-		fragment = doc.createDocumentFragment();
-		jQuery.clean( args, doc, fragment, scripts );
-	}
-
-	if ( cacheable ) {
-		jQuery.fragments[ first ] = cacheresults ? fragment : 1;
-	}
-
-	return { fragment: fragment, cacheable: cacheable };
-};
-
-jQuery.fragments = {};
-
-jQuery.each({
-	appendTo: "append",
-	prependTo: "prepend",
-	insertBefore: "before",
-	insertAfter: "after",
-	replaceAll: "replaceWith"
-}, function( name, original ) {
-	jQuery.fn[ name ] = function( selector ) {
-		var ret = [],
-			insert = jQuery( selector ),
-			parent = this.length === 1 && this[0].parentNode;
-
-		if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
-			insert[ original ]( this[0] );
-			return this;
-
-		} else {
-			for ( var i = 0, l = insert.length; i < l; i++ ) {
-				var elems = ( i > 0 ? this.clone(true) : this ).get();
-				jQuery( insert[i] )[ original ]( elems );
-				ret = ret.concat( elems );
-			}
-
-			return this.pushStack( ret, name, insert.selector );
-		}
-	};
-});
-
-function getAll( elem ) {
-	if ( typeof elem.getElementsByTagName !== "undefined" ) {
-		return elem.getElementsByTagName( "*" );
-
-	} else if ( typeof elem.querySelectorAll !== "undefined" ) {
-		return elem.querySelectorAll( "*" );
-
-	} else {
-		return [];
-	}
-}
-
-// Used in clean, fixes the defaultChecked property
-function fixDefaultChecked( elem ) {
-	if ( elem.type === "checkbox" || elem.type === "radio" ) {
-		elem.defaultChecked = elem.checked;
-	}
-}
-// Finds all inputs and passes them to fixDefaultChecked
-function findInputs( elem ) {
-	var nodeName = ( elem.nodeName || "" ).toLowerCase();
-	if ( nodeName === "input" ) {
-		fixDefaultChecked( elem );
-	// Skip scripts, get other children
-	} else if ( nodeName !== "script" && typeof elem.getElementsByTagName !== "undefined" ) {
-		jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
-	}
-}
-
-// Derived From: http://www.iecss.com/shimprove/javascript/shimprove.1-0-1.js
-function shimCloneNode( elem ) {
-	var div = document.createElement( "div" );
-	safeFragment.appendChild( div );
-
-	div.innerHTML = elem.outerHTML;
-	return div.firstChild;
-}
-
-jQuery.extend({
-	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
-		var srcElements,
-			destElements,
-			i,
-			// IE<=8 does not properly clone detached, unknown element nodes
-			clone = jQuery.support.html5Clone || !rnoshimcache.test( "<" + elem.nodeName ) ?
-				elem.cloneNode( true ) :
-				shimCloneNode( elem );
-
-		if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
-				(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
-			// IE copies events bound via attachEvent when using cloneNode.
-			// Calling detachEvent on the clone will also remove the events
-			// from the original. In order to get around this, we use some
-			// proprietary methods to clear the events. Thanks to MooTools
-			// guys for this hotness.
-
-			cloneFixAttributes( elem, clone );
-
-			// Using Sizzle here is crazy slow, so we use getElementsByTagName instead
-			srcElements = getAll( elem );
-			destElements = getAll( clone );
-
-			// Weird iteration because IE will replace the length property
-			// with an element if you are cloning the body and one of the
-			// elements on the page has a name or id of "length"
-			for ( i = 0; srcElements[i]; ++i ) {
-				// Ensure that the destination node is not null; Fixes #9587
-				if ( destElements[i] ) {
-					cloneFixAttributes( srcElements[i], destElements[i] );
-				}
-			}
-		}
-
-		// Copy the events from the original to the clone
-		if ( dataAndEvents ) {
-			cloneCopyEvent( elem, clone );
-
-			if ( deepDataAndEvents ) {
-				srcElements = getAll( elem );
-				destElements = getAll( clone );
-
-				for ( i = 0; srcElements[i]; ++i ) {
-					cloneCopyEvent( srcElements[i], destElements[i] );
-				}
-			}
-		}
-
-		srcElements = destElements = null;
-
-		// Return the cloned set
-		return clone;
-	},
-
-	clean: function( elems, context, fragment, scripts ) {
-		var checkScriptType;
-
-		context = context || document;
-
-		// !context.createElement fails in IE with an error but returns typeof 'object'
-		if ( typeof context.createElement === "undefined" ) {
-			context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
-		}
-
-		var ret = [], j;
-
-		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
-			if ( typeof elem === "number" ) {
-				elem += "";
-			}
-
-			if ( !elem ) {
-				continue;
-			}
-
-			// Convert html string into DOM nodes
-			if ( typeof elem === "string" ) {
-				if ( !rhtml.test( elem ) ) {
-					elem = context.createTextNode( elem );
-				} else {
-					// Fix "XHTML"-style tags in all browsers
-					elem = elem.replace(rxhtmlTag, "<$1></$2>");
-
-					// Trim whitespace, otherwise indexOf won't work as expected
-					var tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(),
-						wrap = wrapMap[ tag ] || wrapMap._default,
-						depth = wrap[0],
-						div = context.createElement("div");
-
-					// Append wrapper element to unknown element safe doc fragment
-					if ( context === document ) {
-						// Use the fragment we've already created for this document
-						safeFragment.appendChild( div );
-					} else {
-						// Use a fragment created with the owner document
-						createSafeFragment( context ).appendChild( div );
-					}
-
-					// Go to html and back, then peel off extra wrappers
-					div.innerHTML = wrap[1] + elem + wrap[2];
-
-					// Move to the right depth
-					while ( depth-- ) {
-						div = div.lastChild;
-					}
-
-					// Remove IE's autoinserted <tbody> from table fragments
-					if ( !jQuery.support.tbody ) {
-
-						// String was a <table>, *may* have spurious <tbody>
-						var hasBody = rtbody.test(elem),
-							tbody = tag === "table" && !hasBody ?
-								div.firstChild && div.firstChild.childNodes :
-
-								// String was a bare <thead> or <tfoot>
-								wrap[1] === "<table>" && !hasBody ?
-									div.childNodes :
-									[];
-
-						for ( j = tbody.length - 1; j >= 0 ; --j ) {
-							if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
-								tbody[ j ].parentNode.removeChild( tbody[ j ] );
-							}
-						}
-					}
-
-					// IE completely kills leading whitespace when innerHTML is used
-					if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
-						div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
-					}
-
-					elem = div.childNodes;
-				}
-			}
-
-			// Resets defaultChecked for any radios and checkboxes
-			// about to be appended to the DOM in IE 6/7 (#8060)
-			var len;
-			if ( !jQuery.support.appendChecked ) {
-				if ( elem[0] && typeof (len = elem.length) === "number" ) {
-					for ( j = 0; j < len; j++ ) {
-						findInputs( elem[j] );
-					}
-				} else {
-					findInputs( elem );
-				}
-			}
-
-			if ( elem.nodeType ) {
-				ret.push( elem );
-			} else {
-				ret = jQuery.merge( ret, elem );
-			}
-		}
-
-		if ( fragment ) {
-			checkScriptType = function( elem ) {
-				return !elem.type || rscriptType.test( elem.type );
-			};
-			for ( i = 0; ret[i]; i++ ) {
-				if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
-					scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
-
-				} else {
-					if ( ret[i].nodeType === 1 ) {
-						var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType );
-
-						ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
-					}
-					fragment.appendChild( ret[i] );
-				}
-			}
-		}
-
-		return ret;
-	},
-
-	cleanData: function( elems ) {
-		var data, id,
-			cache = jQuery.cache,
-			special = jQuery.event.special,
-			deleteExpando = jQuery.support.deleteExpando;
-
-		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
-			if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
-				continue;
-			}
-
-			id = elem[ jQuery.expando ];
-
-			if ( id ) {
-				data = cache[ id ];
-
-				if ( data && data.events ) {
-					for ( var type in data.events ) {
-						if ( special[ type ] ) {
-							jQuery.event.remove( elem, type );
-
-						// This is a shortcut to avoid jQuery.event.remove's overhead
-						} else {
-							jQuery.removeEvent( elem, type, data.handle );
-						}
-					}
-
-					// Null the DOM reference to avoid IE6/7/8 leak (#7054)
-					if ( data.handle ) {
-						data.handle.elem = null;
-					}
-				}
-
-				if ( deleteExpando ) {
-					delete elem[ jQuery.expando ];
-
-				} else if ( elem.removeAttribute ) {
-					elem.removeAttribute( jQuery.expando );
-				}
-
-				delete cache[ id ];
-			}
-		}
-	}
-});
-
-function evalScript( i, elem ) {
-	if ( elem.src ) {
-		jQuery.ajax({
-			url: elem.src,
-			async: false,
-			dataType: "script"
-		});
-	} else {
-		jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) );
-	}
-
-	if ( elem.parentNode ) {
-		elem.parentNode.removeChild( elem );
-	}
-}
-
-
-
-
-var ralpha = /alpha\([^)]*\)/i,
-	ropacity = /opacity=([^)]*)/,
-	// fixed for IE9, see #8346
-	rupper = /([A-Z]|^ms)/g,
-	rnumpx = /^-?\d+(?:px)?$/i,
-	rnum = /^-?\d/,
-	rrelNum = /^([\-+])=([\-+.\de]+)/,
-
-	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
-	cssWidth = [ "Left", "Right" ],
-	cssHeight = [ "Top", "Bottom" ],
-	curCSS,
-
-	getComputedStyle,
-	currentStyle;
-
-jQuery.fn.css = function( name, value ) {
-	// Setting 'undefined' is a no-op
-	if ( arguments.length === 2 && value === undefined ) {
-		return this;
-	}
-
-	return jQuery.access( this, name, value, true, function( elem, name, value ) {
-		return value !== undefined ?
-			jQuery.style( elem, name, value ) :
-			jQuery.css( elem, name );
-	});
-};
-
-jQuery.extend({
-	// Add in style property hooks for overriding the default
-	// behavior of getting and setting a style property
-	cssHooks: {
-		opacity: {
-			get: function( elem, computed ) {
-				if ( computed ) {
-					// We should always get a number back from opacity
-					var ret = curCSS( elem, "opacity", "opacity" );
-					return ret === "" ? "1" : ret;
-
-				} else {
-					return elem.style.opacity;
-				}
-			}
-		}
-	},
-
-	// Exclude the following css properties to add px
-	cssNumber: {
-		"fillOpacity": true,
-		"fontWeight": true,
-		"lineHeight": true,
-		"opacity": true,
-		"orphans": true,
-		"widows": true,
-		"zIndex": true,
-		"zoom": true
-	},
-
-	// Add in properties whose names you wish to fix before
-	// setting or getting the value
-	cssProps: {
-		// normalize float css property
-		"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
-	},
-
-	// Get and set the style property on a DOM Node
-	style: function( elem, name, value, extra ) {
-		// Don't set styles on text and comment nodes
-		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
-			return;
-		}
-
-		// Make sure that we're working with the right name
-		var ret, type, origName = jQuery.camelCase( name ),
-			style = elem.style, hooks = jQuery.cssHooks[ origName ];
-
-		name = jQuery.cssProps[ origName ] || origName;
-
-		// Check if we're setting a value
-		if ( value !== undefined ) {
-			type = typeof value;
-
-			// convert relative number strings (+= or -=) to relative numbers. #7345
-			if ( type === "string" && (ret = rrelNum.exec( value )) ) {
-				value = ( +( ret[1] + 1) * +ret[2] ) + parseFloat( jQuery.css( elem, name ) );
-				// Fixes bug #9237
-				type = "number";
-			}
-
-			// Make sure that NaN and null values aren't set. See: #7116
-			if ( value == null || type === "number" && isNaN( value ) ) {
-				return;
-			}
-
-			// If a number was passed in, add 'px' to the (except for certain CSS properties)
-			if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
-				value += "px";
-			}
-
-			// If a hook was provided, use that value, otherwise just set the specified value
-			if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) {
-				// Wrapped to prevent IE from throwing errors when 'invalid' values are provided
-				// Fixes bug #5509
-				try {
-					style[ name ] = value;
-				} catch(e) {}
-			}
-
-		} else {
-			// If a hook was provided get the non-computed value from there
-			if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
-				return ret;
-			}
-
-			// Otherwise just get the value from the style object
-			return style[ name ];
-		}
-	},
-
-	css: function( elem, name, extra ) {
-		var ret, hooks;
-
-		// Make sure that we're working with the right name
-		name = jQuery.camelCase( name );
-		hooks = jQuery.cssHooks[ name ];
-		name = jQuery.cssProps[ name ] || name;
-
-		// cssFloat needs a special treatment
-		if ( name === "cssFloat" ) {
-			name = "float";
-		}
-
-		// If a hook was provided get the computed value from there
-		if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {
-			return ret;
-
-		// Otherwise, if a way to get the computed value exists, use that
-		} else if ( curCSS ) {
-			return curCSS( elem, name );
-		}
-	},
-
-	// A method for quickly swapping in/out CSS properties to get correct calculations
-	swap: function( elem, options, callback ) {
-		var old = {};
-
-		// Remember the old values, and insert the new ones
-		for ( var name in options ) {
-			old[ name ] = elem.style[ name ];
-			elem.style[ name ] = options[ name ];
-		}
-
-		callback.call( elem );
-
-		// Revert the old values
-		for ( name in options ) {
-			elem.style[ name ] = old[ name ];
-		}
-	}
-});
-
-// DEPRECATED, Use jQuery.css() instead
-jQuery.curCSS = jQuery.css;
-
-jQuery.each(["height", "width"], function( i, name ) {
-	jQuery.cssHooks[ name ] = {
-		get: function( elem, computed, extra ) {
-			var val;
-
-			if ( computed ) {
-				if ( elem.offsetWidth !== 0 ) {
-					return getWH( elem, name, extra );
-				} else {
-					jQuery.swap( elem, cssShow, function() {
-						val = getWH( elem, name, extra );
-					});
-				}
-
-				return val;
-			}
-		},
-
-		set: function( elem, value ) {
-			if ( rnumpx.test( value ) ) {
-				// ignore negative width and height values #1599
-				value = parseFloat( value );
-
-				if ( value >= 0 ) {
-					return value + "px";
-				}
-
-			} else {
-				return value;
-			}
-		}
-	};
-});
-
-if ( !jQuery.support.opacity ) {
-	jQuery.cssHooks.opacity = {
-		get: function( elem, computed ) {
-			// IE uses filters for opacity
-			return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
-				( parseFloat( RegExp.$1 ) / 100 ) + "" :
-				computed ? "1" : "";
-		},
-
-		set: function( elem, value ) {
-			var style = elem.style,
-				currentStyle = elem.currentStyle,
-				opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
-				filter = currentStyle && currentStyle.filter || style.filter || "";
-
-			// IE has trouble with opacity if it does not have layout
-			// Force it by setting the zoom level
-			style.zoom = 1;
-
-			// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
-			if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" ) {
-
-				// Setting style.filter to null, "" & " " still leave "filter:" in the cssText
-				// if "filter:" is present at all, clearType is disabled, we want to avoid this
-				// style.removeAttribute is IE Only, but so apparently is this code path...
-				style.removeAttribute( "filter" );
-
-				// if there there is no filter style applied in a css rule, we are done
-				if ( currentStyle && !currentStyle.filter ) {
-					return;
-				}
-			}
-
-			// otherwise, set new filter values
-			style.filter = ralpha.test( filter ) ?
-				filter.replace( ralpha, opacity ) :
-				filter + " " + opacity;
-		}
-	};
-}
-
-jQuery(function() {
-	// This hook cannot be added until DOM ready because the support test
-	// for it is not run until after DOM ready
-	if ( !jQuery.support.reliableMarginRight ) {
-		jQuery.cssHooks.marginRight = {
-			get: function( elem, computed ) {
-				// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
-				// Work around by temporarily setting element display to inline-block
-				var ret;
-				jQuery.swap( elem, { "display": "inline-block" }, function() {
-					if ( computed ) {
-						ret = curCSS( elem, "margin-right", "marginRight" );
-					} else {
-						ret = elem.style.marginRight;
-					}
-				});
-				return ret;
-			}
-		};
-	}
-});
-
-if ( document.defaultView && document.defaultView.getComputedStyle ) {
-	getComputedStyle = function( elem, name ) {
-		var ret, defaultView, computedStyle;
-
-		name = name.replace( rupper, "-$1" ).toLowerCase();
-
-		if ( (defaultView = elem.ownerDocument.defaultView) &&
-				(computedStyle = defaultView.getComputedStyle( elem, null )) ) {
-			ret = computedStyle.getPropertyValue( name );
-			if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
-				ret = jQuery.style( elem, name );
-			}
-		}
-
-		return ret;
-	};
-}
-
-if ( document.documentElement.currentStyle ) {
-	currentStyle = function( elem, name ) {
-		var left, rsLeft, uncomputed,
-			ret = elem.currentStyle && elem.currentStyle[ name ],
-			style = elem.style;
-
-		// Avoid setting ret to empty string here
-		// so we don't default to auto
-		if ( ret === null && style && (uncomputed = style[ name ]) ) {
-			ret = uncomputed;
-		}
-
-		// From the awesome hack by Dean Edwards
-		// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
-
-		// If we're not dealing with a regular pixel number
-		// but a number that has a weird ending, we need to convert it to pixels
-		if ( !rnumpx.test( ret ) && rnum.test( ret ) ) {
-
-			// Remember the original values
-			left = style.left;
-			rsLeft = elem.runtimeStyle && elem.runtimeStyle.left;
-
-			// Put in the new values to get a computed value out
-			if ( rsLeft ) {
-				elem.runtimeStyle.left = elem.currentStyle.left;
-			}
-			style.left = name === "fontSize" ? "1em" : ( ret || 0 );
-			ret = style.pixelLeft + "px";
-
-			// Revert the changed values
-			style.left = left;
-			if ( rsLeft ) {
-				elem.runtimeStyle.left = rsLeft;
-			}
-		}
-
-		return ret === "" ? "auto" : ret;
-	};
-}
-
-curCSS = getComputedStyle || currentStyle;
-
-function getWH( elem, name, extra ) {
-
-	// Start with offset property
-	var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
-		which = name === "width" ? cssWidth : cssHeight,
-		i = 0,
-		len = which.length;
-
-	if ( val > 0 ) {
-		if ( extra !== "border" ) {
-			for ( ; i < len; i++ ) {
-				if ( !extra ) {
-					val -= parseFloat( jQuery.css( elem, "padding" + which[ i ] ) ) || 0;
-				}
-				if ( extra === "margin" ) {
-					val += parseFloat( jQuery.css( elem, extra + which[ i ] ) ) || 0;
-				} else {
-					val -= parseFloat( jQuery.css( elem, "border" + which[ i ] + "Width" ) ) || 0;
-				}
-			}
-		}
-
-		return val + "px";
-	}
-
-	// Fall back to computed then uncomputed css if necessary
-	val = curCSS( elem, name, name );
-	if ( val < 0 || val == null ) {
-		val = elem.style[ name ] || 0;
-	}
-	// Normalize "", auto, and prepare for extra
-	val = parseFloat( val ) || 0;
-
-	// Add padding, border, margin
-	if ( extra ) {
-		for ( ; i < len; i++ ) {
-			val += parseFloat( jQuery.css( elem, "padding" + which[ i ] ) ) || 0;
-			if ( extra !== "padding" ) {
-				val += parseFloat( jQuery.css( elem, "border" + which[ i ] + "Width" ) ) || 0;
-			}
-			if ( extra === "margin" ) {
-				val += parseFloat( jQuery.css( elem, extra + which[ i ] ) ) || 0;
-			}
-		}
-	}
-
-	return val + "px";
-}
-
-if ( jQuery.expr && jQuery.expr.filters ) {
-	jQuery.expr.filters.hidden = function( elem ) {
-		var width = elem.offsetWidth,
-			height = elem.offsetHeight;
-
-		return ( width === 0 && height === 0 ) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none");
-	};
-
-	jQuery.expr.filters.visible = function( elem ) {
-		return !jQuery.expr.filters.hidden( elem );
-	};
-}
-
-
-
-
-var r20 = /%20/g,
-	rbracket = /\[\]$/,
-	rCRLF = /\r?\n/g,
-	rhash = /#.*$/,
-	rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
-	rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
-	// #7653, #8125, #8152: local protocol detection
-	rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
-	rnoContent = /^(?:GET|HEAD)$/,
-	rprotocol = /^\/\//,
-	rquery = /\?/,
-	rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
-	rselectTextarea = /^(?:select|textarea)/i,
-	rspacesAjax = /\s+/,
-	rts = /([?&])_=[^&]*/,
-	rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,
-
-	// Keep a copy of the old load method
-	_load = jQuery.fn.load,
-
-	/* Prefilters
-	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
-	 * 2) These are called:
-	 *    - BEFORE asking for a transport
-	 *    - AFTER param serialization (s.data is a string if s.processData is true)
-	 * 3) key is the dataType
-	 * 4) the catchall symbol "*" can be used
-	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
-	 */
-	prefilters = {},
-
-	/* Transports bindings
-	 * 1) key is the dataType
-	 * 2) the catchall symbol "*" can be used
-	 * 3) selection will start with transport dataType and THEN go to "*" if needed
-	 */
-	transports = {},
-
-	// Document location
-	ajaxLocation,
-
-	// Document location segments
-	ajaxLocParts,
-
-	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
-	allTypes = ["*/"] + ["*"];
-
-// #8138, IE may throw an exception when accessing
-// a field from window.location if document.domain has been set
-try {
-	ajaxLocation = location.href;
-} catch( e ) {
-	// Use the href attribute of an A element
-	// since IE will modify it given document.location
-	ajaxLocation = document.createElement( "a" );
-	ajaxLocation.href = "";
-	ajaxLocation = ajaxLocation.href;
-}
-
-// Segment location into parts
-ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
-
-// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
-function addToPrefiltersOrTransports( structure ) {
-
-	// dataTypeExpression is optional and defaults to "*"
-	return function( dataTypeExpression, func ) {
-
-		if ( typeof dataTypeExpression !== "string" ) {
-			func = dataTypeExpression;
-			dataTypeExpression = "*";
-		}
-
-		if ( jQuery.isFunction( func ) ) {
-			var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ),
-				i = 0,
-				length = dataTypes.length,
-				dataType,
-				list,
-				placeBefore;
-
-			// For each dataType in the dataTypeExpression
-			for ( ; i < length; i++ ) {
-				dataType = dataTypes[ i ];
-				// We control if we're asked to add before
-				// any existing element
-				placeBefore = /^\+/.test( dataType );
-				if ( placeBefore ) {
-					dataType = dataType.substr( 1 ) || "*";
-				}
-				list = structure[ dataType ] = structure[ dataType ] || [];
-				// then we add to the structure accordingly
-				list[ placeBefore ? "unshift" : "push" ]( func );
-			}
-		}
-	};
-}
-
-// Base inspection function for prefilters and transports
-function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR,
-		dataType /* internal */, inspected /* internal */ ) {
-
-	dataType = dataType || options.dataTypes[ 0 ];
-	inspected = inspected || {};
-
-	inspected[ dataType ] = true;
-
-	var list = structure[ dataType ],
-		i = 0,
-		length = list ? list.length : 0,
-		executeOnly = ( structure === prefilters ),
-		selection;
-
-	for ( ; i < length && ( executeOnly || !selection ); i++ ) {
-		selection = list[ i ]( options, originalOptions, jqXHR );
-		// If we got redirected to another dataType
-		// we try there if executing only and not done already
-		if ( typeof selection === "string" ) {
-			if ( !executeOnly || inspected[ selection ] ) {
-				selection = undefined;
-			} else {
-				options.dataTypes.unshift( selection );
-				selection = inspectPrefiltersOrTransports(
-						structure, options, originalOptions, jqXHR, selection, inspected );
-			}
-		}
-	}
-	// If we're only executing or nothing was selected
-	// we try the catchall dataType if not done already
-	if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
-		selection = inspectPrefiltersOrTransports(
-				structure, options, originalOptions, jqXHR, "*", inspected );
-	}
-	// unnecessary when only executing (prefilters)
-	// but it'll be ignored by the caller in that case
-	return selection;
-}
-
-// A special extend for ajax options
-// that takes "flat" options (not to be deep extended)
-// Fixes #9887
-function ajaxExtend( target, src ) {
-	var key, deep,
-		flatOptions = jQuery.ajaxSettings.flatOptions || {};
-	for ( key in src ) {
-		if ( src[ key ] !== undefined ) {
-			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
-		}
-	}
-	if ( deep ) {
-		jQuery.extend( true, target, deep );
-	}
-}
-
-jQuery.fn.extend({
-	load: function( url, params, callback ) {
-		if ( typeof url !== "string" && _load ) {
-			return _load.apply( this, arguments );
-
-		// Don't do a request if no elements are being requested
-		} else if ( !this.length ) {
-			return this;
-		}
-
-		var off = url.indexOf( " " );
-		if ( off >= 0 ) {
-			var selector = url.slice( off, url.length );
-			url = url.slice( 0, off );
-		}
-
-		// Default to a GET request
-		var type = "GET";
-
-		// If the second parameter was provided
-		if ( params ) {
-			// If it's a function
-			if ( jQuery.isFunction( params ) ) {
-				// We assume that it's the callback
-				callback = params;
-				params = undefined;
-
-			// Otherwise, build a param string
-			} else if ( typeof params === "object" ) {
-				params = jQuery.param( params, jQuery.ajaxSettings.traditional );
-				type = "POST";
-			}
-		}
-
-		var self = this;
-
-		// Request the remote document
-		jQuery.ajax({
-			url: url,
-			type: type,
-			dataType: "html",
-			data: params,
-			// Complete callback (responseText is used internally)
-			complete: function( jqXHR, status, responseText ) {
-				// Store the response as specified by the jqXHR object
-				responseText = jqXHR.responseText;
-				// If successful, inject the HTML into all the matched elements
-				if ( jqXHR.isResolved() ) {
-					// #4825: Get the actual response in case
-					// a dataFilter is present in ajaxSettings
-					jqXHR.done(function( r ) {
-						responseText = r;
-					});
-					// See if a selector was specified
-					self.html( selector ?
-						// Create a dummy div to hold the results
-						jQuery("<div>")
-							// inject the contents of the document in, removing the scripts
-							// to avoid any 'Permission Denied' errors in IE
-							.append(responseText.replace(rscript, ""))
-
-							// Locate the specified elements
-							.find(selector) :
-
-						// If not, just inject the full result
-						responseText );
-				}
-
-				if ( callback ) {
-					self.each( callback, [ responseText, status, jqXHR ] );
-				}
-			}
-		});
-
-		return this;
-	},
-
-	serialize: function() {
-		return jQuery.param( this.serializeArray() );
-	},
-
-	serializeArray: function() {
-		return this.map(function(){
-			return this.elements ? jQuery.makeArray( this.elements ) : this;
-		})
-		.filter(function(){
-			return this.name && !this.disabled &&
-				( this.checked || rselectTextarea.test( this.nodeName ) ||
-					rinput.test( this.type ) );
-		})
-		.map(function( i, elem ){
-			var val = jQuery( this ).val();
-
-			return val == null ?
-				null :
-				jQuery.isArray( val ) ?
-					jQuery.map( val, function( val, i ){
-						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
-					}) :
-					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
-		}).get();
-	}
-});
-
-// Attach a bunch of functions for handling common AJAX events
-jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){
-	jQuery.fn[ o ] = function( f ){
-		return this.on( o, f );
-	};
-});
-
-jQuery.each( [ "get", "post" ], function( i, method ) {
-	jQuery[ method ] = function( url, data, callback, type ) {
-		// shift arguments if data argument was omitted
-		if ( jQuery.isFunction( data ) ) {
-			type = type || callback;
-			callback = data;
-			data = undefined;
-		}
-
-		return jQuery.ajax({
-			type: method,
-			url: url,
-			data: data,
-			success: callback,
-			dataType: type
-		});
-	};
-});
-
-jQuery.extend({
-
-	getScript: function( url, callback ) {
-		return jQuery.get( url, undefined, callback, "script" );
-	},
-
-	getJSON: function( url, data, callback ) {
-		return jQuery.get( url, data, callback, "json" );
-	},
-
-	// Creates a full fledged settings object into target
-	// with both ajaxSettings and settings fields.
-	// If target is omitted, writes into ajaxSettings.
-	ajaxSetup: function( target, settings ) {
-		if ( settings ) {
-			// Building a settings object
-			ajaxExtend( target, jQuery.ajaxSettings );
-		} else {
-			// Extending ajaxSettings
-			settings = target;
-			target = jQuery.ajaxSettings;
-		}
-		ajaxExtend( target, settings );
-		return target;
-	},
-
-	ajaxSettings: {
-		url: ajaxLocation,
-		isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
-		global: true,
-		type: "GET",
-		contentType: "application/x-www-form-urlencoded",
-		processData: true,
-		async: true,
-		/*
-		timeout: 0,
-		data: null,
-		dataType: null,
-		username: null,
-		password: null,
-		cache: null,
-		traditional: false,
-		headers: {},
-		*/
-
-		accepts: {
-			xml: "application/xml, text/xml",
-			html: "text/html",
-			text: "text/plain",
-			json: "application/json, text/javascript",
-			"*": allTypes
-		},
-
-		contents: {
-			xml: /xml/,
-			html: /html/,
-			json: /json/
-		},
-
-		responseFields: {
-			xml: "responseXML",
-			text: "responseText"
-		},
-
-		// List of data converters
-		// 1) key format is "source_type destination_type" (a single space in-between)
-		// 2) the catchall symbol "*" can be used for source_type
-		converters: {
-
-			// Convert anything to text
-			"* text": window.String,
-
-			// Text to html (true = no transformation)
-			"text html": true,
-
-			// Evaluate text as a json expression
-			"text json": jQuery.parseJSON,
-
-			// Parse text as xml
-			"text xml": jQuery.parseXML
-		},
-
-		// For options that shouldn't be deep extended:
-		// you can add your own custom options here if
-		// and when you create one that shouldn't be
-		// deep extended (see ajaxExtend)
-		flatOptions: {
-			context: true,
-			url: true
-		}
-	},
-
-	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
-	ajaxTransport: addToPrefiltersOrTransports( transports ),
-
-	// Main method
-	ajax: function( url, options ) {
-
-		// If url is an object, simulate pre-1.5 signature
-		if ( typeof url === "object" ) {
-			options = url;
-			url = undefined;
-		}
-
-		// Force options to be an object
-		options = options || {};
-
-		var // Create the final options object
-			s = jQuery.ajaxSetup( {}, options ),
-			// Callbacks context
-			callbackContext = s.context || s,
-			// Context for global events
-			// It's the callbackContext if one was provided in the options
-			// and if it's a DOM node or a jQuery collection
-			globalEventContext = callbackContext !== s &&
-				( callbackContext.nodeType || callbackContext instanceof jQuery ) ?
-						jQuery( callbackContext ) : jQuery.event,
-			// Deferreds
-			deferred = jQuery.Deferred(),
-			completeDeferred = jQuery.Callbacks( "once memory" ),
-			// Status-dependent callbacks
-			statusCode = s.statusCode || {},
-			// ifModified key
-			ifModifiedKey,
-			// Headers (they are sent all at once)
-			requestHeaders = {},
-			requestHeadersNames = {},
-			// Response headers
-			responseHeadersString,
-			responseHeaders,
-			// transport
-			transport,
-			// timeout handle
-			timeoutTimer,
-			// Cross-domain detection vars
-			parts,
-			// The jqXHR state
-			state = 0,
-			// To know if global events are to be dispatched
-			fireGlobals,
-			// Loop variable
-			i,
-			// Fake xhr
-			jqXHR = {
-
-				readyState: 0,
-
-				// Caches the header
-				setRequestHeader: function( name, value ) {
-					if ( !state ) {
-						var lname = name.toLowerCase();
-						name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
-						requestHeaders[ name ] = value;
-					}
-					return this;
-				},
-
-				// Raw string
-				getAllResponseHeaders: function() {
-					return state === 2 ? responseHeadersString : null;
-				},
-
-				// Builds headers hashtable if needed
-				getResponseHeader: function( key ) {
-					var match;
-					if ( state === 2 ) {
-						if ( !responseHeaders ) {
-							responseHeaders = {};
-							while( ( match = rheaders.exec( responseHeadersString ) ) ) {
-								responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
-							}
-						}
-						match = responseHeaders[ key.toLowerCase() ];
-					}
-					return match === undefined ? null : match;
-				},
-
-				// Overrides response content-type header
-				overrideMimeType: function( type ) {
-					if ( !state ) {
-						s.mimeType = type;
-					}
-					return this;
-				},
-
-				// Cancel the request
-				abort: function( statusText ) {
-					statusText = statusText || "abort";
-					if ( transport ) {
-						transport.abort( statusText );
-					}
-					done( 0, statusText );
-					return this;
-				}
-			};
-
-		// Callback for when everything is done
-		// It is defined here because jslint complains if it is declared
-		// at the end of the function (which would be more logical and readable)
-		function done( status, nativeStatusText, responses, headers ) {
-
-			// Called once
-			if ( state === 2 ) {
-				return;
-			}
-
-			// State is "done" now
-			state = 2;
-
-			// Clear timeout if it exists
-			if ( timeoutTimer ) {
-				clearTimeout( timeoutTimer );
-			}
-
-			// Dereference transport for early garbage collection
-			// (no matter how long the jqXHR object will be used)
-			transport = undefined;
-
-			// Cache response headers
-			responseHeadersString = headers || "";
-
-			// Set readyState
-			jqXHR.readyState = status > 0 ? 4 : 0;
-
-			var isSuccess,
-				success,
-				error,
-				statusText = nativeStatusText,
-				response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,
-				lastModified,
-				etag;
-
-			// If successful, handle type chaining
-			if ( status >= 200 && status < 300 || status === 304 ) {
-
-				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
-				if ( s.ifModified ) {
-
-					if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) {
-						jQuery.lastModified[ ifModifiedKey ] = lastModified;
-					}
-					if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) {
-						jQuery.etag[ ifModifiedKey ] = etag;
-					}
-				}
-
-				// If not modified
-				if ( status === 304 ) {
-
-					statusText = "notmodified";
-					isSuccess = true;
-
-				// If we have data
-				} else {
-
-					try {
-						success = ajaxConvert( s, response );
-						statusText = "success";
-						isSuccess = true;
-					} catch(e) {
-						// We have a parsererror
-						statusText = "parsererror";
-						error = e;
-					}
-				}
-			} else {
-				// We extract error from statusText
-				// then normalize statusText and status for non-aborts
-				error = statusText;
-				if ( !statusText || status ) {
-					statusText = "error";
-					if ( status < 0 ) {
-						status = 0;
-					}
-				}
-			}
-
-			// Set data for the fake xhr object
-			jqXHR.status = status;
-			jqXHR.statusText = "" + ( nativeStatusText || statusText );
-
-			// Success/Error
-			if ( isSuccess ) {
-				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
-			} else {
-				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
-			}
-
-			// Status-dependent callbacks
-			jqXHR.statusCode( statusCode );
-			statusCode = undefined;
-
-			if ( fireGlobals ) {
-				globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ),
-						[ jqXHR, s, isSuccess ? success : error ] );
-			}
-
-			// Complete
-			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
-
-			if ( fireGlobals ) {
-				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
-				// Handle the global AJAX counter
-				if ( !( --jQuery.active ) ) {
-					jQuery.event.trigger( "ajaxStop" );
-				}
-			}
-		}
-
-		// Attach deferreds
-		deferred.promise( jqXHR );
-		jqXHR.success = jqXHR.done;
-		jqXHR.error = jqXHR.fail;
-		jqXHR.complete = completeDeferred.add;
-
-		// Status-dependent callbacks
-		jqXHR.statusCode = function( map ) {
-			if ( map ) {
-				var tmp;
-				if ( state < 2 ) {
-					for ( tmp in map ) {
-						statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ];
-					}
-				} else {
-					tmp = map[ jqXHR.status ];
-					jqXHR.then( tmp, tmp );
-				}
-			}
-			return this;
-		};
-
-		// Remove hash character (#7531: and string promotion)
-		// Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
-		// We also use the url parameter if available
-		s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
-
-		// Extract dataTypes list
-		s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );
-
-		// Determine if a cross-domain request is in order
-		if ( s.crossDomain == null ) {
-			parts = rurl.exec( s.url.toLowerCase() );
-			s.crossDomain = !!( parts &&
-				( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] ||
-					( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
-						( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
-			);
-		}
-
-		// Convert data if not already a string
-		if ( s.data && s.processData && typeof s.data !== "string" ) {
-			s.data = jQuery.param( s.data, s.traditional );
-		}
-
-		// Apply prefilters
-		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
-
-		// If request was aborted inside a prefiler, stop there
-		if ( state === 2 ) {
-			return false;
-		}
-
-		// We can fire global events as of now if asked to
-		fireGlobals = s.global;
-
-		// Uppercase the type
-		s.type = s.type.toUpperCase();
-
-		// Determine if request has content
-		s.hasContent = !rnoContent.test( s.type );
-
-		// Watch for a new set of requests
-		if ( fireGlobals && jQuery.active++ === 0 ) {
-			jQuery.event.trigger( "ajaxStart" );
-		}
-
-		// More options handling for requests with no content
-		if ( !s.hasContent ) {
-
-			// If data is available, append data to url
-			if ( s.data ) {
-				s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
-				// #9682: remove data so that it's not used in an eventual retry
-				delete s.data;
-			}
-
-			// Get ifModifiedKey before adding the anti-cache parameter
-			ifModifiedKey = s.url;
-
-			// Add anti-cache in url if needed
-			if ( s.cache === false ) {
-
-				var ts = jQuery.now(),
-					// try replacing _= if it is there
-					ret = s.url.replace( rts, "$1_=" + ts );
-
-				// if nothing was replaced, add timestamp to the end
-				s.url = ret + ( ( ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" );
-			}
-		}
-
-		// Set the correct header, if data is being sent
-		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
-			jqXHR.setRequestHeader( "Content-Type", s.contentType );
-		}
-
-		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
-		if ( s.ifModified ) {
-			ifModifiedKey = ifModifiedKey || s.url;
-			if ( jQuery.lastModified[ ifModifiedKey ] ) {
-				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] );
-			}
-			if ( jQuery.etag[ ifModifiedKey ] ) {
-				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] );
-			}
-		}
-
-		// Set the Accepts header for the server, depending on the dataType
-		jqXHR.setRequestHeader(
-			"Accept",
-			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
-				s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
-				s.accepts[ "*" ]
-		);
-
-		// Check for headers option
-		for ( i in s.headers ) {
-			jqXHR.setRequestHeader( i, s.headers[ i ] );
-		}
-
-		// Allow custom headers/mimetypes and early abort
-		if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
-				// Abort if not done already
-				jqXHR.abort();
-				return false;
-
-		}
-
-		// Install callbacks on deferreds
-		for ( i in { success: 1, error: 1, complete: 1 } ) {
-			jqXHR[ i ]( s[ i ] );
-		}
-
-		// Get transport
-		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
-
-		// If no transport, we auto-abort
-		if ( !transport ) {
-			done( -1, "No Transport" );
-		} else {
-			jqXHR.readyState = 1;
-			// Send global event
-			if ( fireGlobals ) {
-				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
-			}
-			// Timeout
-			if ( s.async && s.timeout > 0 ) {
-				timeoutTimer = setTimeout( function(){
-					jqXHR.abort( "timeout" );
-				}, s.timeout );
-			}
-
-			try {
-				state = 1;
-				transport.send( requestHeaders, done );
-			} catch (e) {
-				// Propagate exception as error if not done
-				if ( state < 2 ) {
-					done( -1, e );
-				// Simply rethrow otherwise
-				} else {
-					throw e;
-				}
-			}
-		}
-
-		return jqXHR;
-	},
-
-	// Serialize an array of form elements or a set of
-	// key/values into a query string
-	param: function( a, traditional ) {
-		var s = [],
-			add = function( key, value ) {
-				// If value is a function, invoke it and return its value
-				value = jQuery.isFunction( value ) ? value() : value;
-				s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
-			};
-
-		// Set traditional to true for jQuery <= 1.3.2 behavior.
-		if ( traditional === undefined ) {
-			traditional = jQuery.ajaxSettings.traditional;
-		}
-
-		// If an array was passed in, assume that it is an array of form elements.
-		if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
-			// Serialize the form elements
-			jQuery.each( a, function() {
-				add( this.name, this.value );
-			});
-
-		} else {
-			// If traditional, encode the "old" way (the way 1.3.2 or older
-			// did it), otherwise encode params recursively.
-			for ( var prefix in a ) {
-				buildParams( prefix, a[ prefix ], traditional, add );
-			}
-		}
-
-		// Return the resulting serialization
-		return s.join( "&" ).replace( r20, "+" );
-	}
-});
-
-function buildParams( prefix, obj, traditional, add ) {
-	if ( jQuery.isArray( obj ) ) {
-		// Serialize array item.
-		jQuery.each( obj, function( i, v ) {
-			if ( traditional || rbracket.test( prefix ) ) {
-				// Treat each array item as a scalar.
-				add( prefix, v );
-
-			} else {
-				// If array item is non-scalar (array or object), encode its
-				// numeric index to resolve deserialization ambiguity issues.
-				// Note that rack (as of 1.0.0) can't currently deserialize
-				// nested arrays properly, and attempting to do so may cause
-				// a server error. Possible fixes are to modify rack's
-				// deserialization algorithm or to provide an option or flag
-				// to force array serialization to be shallow.
-				buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v, traditional, add );
-			}
-		});
-
-	} else if ( !traditional && obj != null && typeof obj === "object" ) {
-		// Serialize object item.
-		for ( var name in obj ) {
-			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
-		}
-
-	} else {
-		// Serialize scalar item.
-		add( prefix, obj );
-	}
-}
-
-// This is still on the jQuery object... for now
-// Want to move this to jQuery.ajax some day
-jQuery.extend({
-
-	// Counter for holding the number of active queries
-	active: 0,
-
-	// Last-Modified header cache for next request
-	lastModified: {},
-	etag: {}
-
-});
-
-/* Handles responses to an ajax request:
- * - sets all responseXXX fields accordingly
- * - finds the right dataType (mediates between content-type and expected dataType)
- * - returns the corresponding response
- */
-function ajaxHandleResponses( s, jqXHR, responses ) {
-
-	var contents = s.contents,
-		dataTypes = s.dataTypes,
-		responseFields = s.responseFields,
-		ct,
-		type,
-		finalDataType,
-		firstDataType;
-
-	// Fill responseXXX fields
-	for ( type in responseFields ) {
-		if ( type in responses ) {
-			jqXHR[ responseFields[type] ] = responses[ type ];
-		}
-	}
-
-	// Remove auto dataType and get content-type in the process
-	while( dataTypes[ 0 ] === "*" ) {
-		dataTypes.shift();
-		if ( ct === undefined ) {
-			ct = s.mimeType || jqXHR.getResponseHeader( "content-type" );
-		}
-	}
-
-	// Check if we're dealing with a known content-type
-	if ( ct ) {
-		for ( type in contents ) {
-			if ( contents[ type ] && contents[ type ].test( ct ) ) {
-				dataTypes.unshift( type );
-				break;
-			}
-		}
-	}
-
-	// Check to see if we have a response for the expected dataType
-	if ( dataTypes[ 0 ] in responses ) {
-		finalDataType = dataTypes[ 0 ];
-	} else {
-		// Try convertible dataTypes
-		for ( type in responses ) {
-			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
-				finalDataType = type;
-				break;
-			}
-			if ( !firstDataType ) {
-				firstDataType = type;
-			}
-		}
-		// Or just use first one
-		finalDataType = finalDataType || firstDataType;
-	}
-
-	// If we found a dataType
-	// We add the dataType to the list if needed
-	// and return the corresponding response
-	if ( finalDataType ) {
-		if ( finalDataType !== dataTypes[ 0 ] ) {
-			dataTypes.unshift( finalDataType );
-		}
-		return responses[ finalDataType ];
-	}
-}
-
-// Chain conversions given the request and the original response
-function ajaxConvert( s, response ) {
-
-	// Apply the dataFilter if provided
-	if ( s.dataFilter ) {
-		response = s.dataFilter( response, s.dataType );
-	}
-
-	var dataTypes = s.dataTypes,
-		converters = {},
-		i,
-		key,
-		length = dataTypes.length,
-		tmp,
-		// Current and previous dataTypes
-		current = dataTypes[ 0 ],
-		prev,
-		// Conversion expression
-		conversion,
-		// Conversion function
-		conv,
-		// Conversion functions (transitive conversion)
-		conv1,
-		conv2;
-
-	// For each dataType in the chain
-	for ( i = 1; i < length; i++ ) {
-
-		// Create converters map
-		// with lowercased keys
-		if ( i === 1 ) {
-			for ( key in s.converters ) {
-				if ( typeof key === "string" ) {
-					converters[ key.toLowerCase() ] = s.converters[ key ];
-				}
-			}
-		}
-
-		// Get the dataTypes
-		prev = current;
-		current = dataTypes[ i ];
-
-		// If current is auto dataType, update it to prev
-		if ( current === "*" ) {
-			current = prev;
-		// If no auto and dataTypes are actually different
-		} else if ( prev !== "*" && prev !== current ) {
-
-			// Get the converter
-			conversion = prev + " " + current;
-			conv = converters[ conversion ] || converters[ "* " + current ];
-
-			// If there is no direct converter, search transitively
-			if ( !conv ) {
-				conv2 = undefined;
-				for ( conv1 in converters ) {
-					tmp = conv1.split( " " );
-					if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) {
-						conv2 = converters[ tmp[1] + " " + current ];
-						if ( conv2 ) {
-							conv1 = converters[ conv1 ];
-							if ( conv1 === true ) {
-								conv = conv2;
-							} else if ( conv2 === true ) {
-								conv = conv1;
-							}
-							break;
-						}
-					}
-				}
-			}
-			// If we found no converter, dispatch an error
-			if ( !( conv || conv2 ) ) {
-				jQuery.error( "No conversion from " + conversion.replace(" "," to ") );
-			}
-			// If found converter is not an equivalence
-			if ( conv !== true ) {
-				// Convert with 1 or 2 converters accordingly
-				response = conv ? conv( response ) : conv2( conv1(response) );
-			}
-		}
-	}
-	return response;
-}
-
-
-
-
-var jsc = jQuery.now(),
-	jsre = /(\=)\?(&|$)|\?\?/i;
-
-// Default jsonp settings
-jQuery.ajaxSetup({
-	jsonp: "callback",
-	jsonpCallback: function() {
-		return jQuery.expando + "_" + ( jsc++ );
-	}
-});
-
-// Detect, normalize options and install callbacks for jsonp requests
-jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
-
-	var inspectData = s.contentType === "application/x-www-form-urlencoded" &&
-		( typeof s.data === "string" );
-
-	if ( s.dataTypes[ 0 ] === "jsonp" ||
-		s.jsonp !== false && ( jsre.test( s.url ) ||
-				inspectData && jsre.test( s.data ) ) ) {
-
-		var responseContainer,
-			jsonpCallback = s.jsonpCallback =
-				jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback,
-			previous = window[ jsonpCallback ],
-			url = s.url,
-			data = s.data,
-			replace = "$1" + jsonpCallback + "$2";
-
-		if ( s.jsonp !== false ) {
-			url = url.replace( jsre, replace );
-			if ( s.url === url ) {
-				if ( inspectData ) {
-					data = data.replace( jsre, replace );
-				}
-				if ( s.data === data ) {
-					// Add callback manually
-					url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback;
-				}
-			}
-		}
-
-		s.url = url;
-		s.data = data;
-
-		// Install callback
-		window[ jsonpCallback ] = function( response ) {
-			responseContainer = [ response ];
-		};
-
-		// Clean-up function
-		jqXHR.always(function() {
-			// Set callback back to previous value
-			window[ jsonpCallback ] = previous;
-			// Call if it was a function and we have a response
-			if ( responseContainer && jQuery.isFunction( previous ) ) {
-				window[ jsonpCallback ]( responseContainer[ 0 ] );
-			}
-		});
-
-		// Use data converter to retrieve json after script execution
-		s.converters["script json"] = function() {
-			if ( !responseContainer ) {
-				jQuery.error( jsonpCallback + " was not called" );
-			}
-			return responseContainer[ 0 ];
-		};
-
-		// force json dataType
-		s.dataTypes[ 0 ] = "json";
-
-		// Delegate to script
-		return "script";
-	}
-});
-
-
-
-
-// Install script dataType
-jQuery.ajaxSetup({
-	accepts: {
-		script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
-	},
-	contents: {
-		script: /javascript|ecmascript/
-	},
-	converters: {
-		"text script": function( text ) {
-			jQuery.globalEval( text );
-			return text;
-		}
-	}
-});
-
-// Handle cache's special case and global
-jQuery.ajaxPrefilter( "script", function( s ) {
-	if ( s.cache === undefined ) {
-		s.cache = false;
-	}
-	if ( s.crossDomain ) {
-		s.type = "GET";
-		s.global = false;
-	}
-});
-
-// Bind script tag hack transport
-jQuery.ajaxTransport( "script", function(s) {
-
-	// This transport only deals with cross domain requests
-	if ( s.crossDomain ) {
-
-		var script,
-			head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
-
-		return {
-
-			send: function( _, callback ) {
-
-				script = document.createElement( "script" );
-
-				script.async = "async";
-
-				if ( s.scriptCharset ) {
-					script.charset = s.scriptCharset;
-				}
-
-				script.src = s.url;
-
-				// Attach handlers for all browsers
-				script.onload = script.onreadystatechange = function( _, isAbort ) {
-
-					if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
-
-						// Handle memory leak in IE
-						script.onload = script.onreadystatechange = null;
-
-						// Remove the script
-						if ( head && script.parentNode ) {
-							head.removeChild( script );
-						}
-
-						// Dereference the script
-						script = undefined;
-
-						// Callback if not abort
-						if ( !isAbort ) {
-							callback( 200, "success" );
-						}
-					}
-				};
-				// Use insertBefore instead of appendChild  to circumvent an IE6 bug.
-				// This arises when a base node is used (#2709 and #4378).
-				head.insertBefore( script, head.firstChild );
-			},
-
-			abort: function() {
-				if ( script ) {
-					script.onload( 0, 1 );
-				}
-			}
-		};
-	}
-});
-
-
-
-
-var // #5280: Internet Explorer will keep connections alive if we don't abort on unload
-	xhrOnUnloadAbort = window.ActiveXObject ? function() {
-		// Abort all pending requests
-		for ( var key in xhrCallbacks ) {
-			xhrCallbacks[ key ]( 0, 1 );
-		}
-	} : false,
-	xhrId = 0,
-	xhrCallbacks;
-
-// Functions to create xhrs
-function createStandardXHR() {
-	try {
-		return new window.XMLHttpRequest();
-	} catch( e ) {}
-}
-
-function createActiveXHR() {
-	try {
-		return new window.ActiveXObject( "Microsoft.XMLHTTP" );
-	} catch( e ) {}
-}
-
-// Create the request object
-// (This is still attached to ajaxSettings for backward compatibility)
-jQuery.ajaxSettings.xhr = window.ActiveXObject ?
-	/* Microsoft failed to properly
-	 * implement the XMLHttpRequest in IE7 (can't request local files),
-	 * so we use the ActiveXObject when it is available
-	 * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
-	 * we need a fallback.
-	 */
-	function() {
-		return !this.isLocal && createStandardXHR() || createActiveXHR();
-	} :
-	// For all other browsers, use the standard XMLHttpRequest object
-	createStandardXHR;
-
-// Determine support properties
-(function( xhr ) {
-	jQuery.extend( jQuery.support, {
-		ajax: !!xhr,
-		cors: !!xhr && ( "withCredentials" in xhr )
-	});
-})( jQuery.ajaxSettings.xhr() );
-
-// Create transport if the browser can provide an xhr
-if ( jQuery.support.ajax ) {
-
-	jQuery.ajaxTransport(function( s ) {
-		// Cross domain only allowed if supported through XMLHttpRequest
-		if ( !s.crossDomain || jQuery.support.cors ) {
-
-			var callback;
-
-			return {
-				send: function( headers, complete ) {
-
-					// Get a new xhr
-					var xhr = s.xhr(),
-						handle,
-						i;
-
-					// Open the socket
-					// Passing null username, generates a login popup on Opera (#2865)
-					if ( s.username ) {
-						xhr.open( s.type, s.url, s.async, s.username, s.password );
-					} else {
-						xhr.open( s.type, s.url, s.async );
-					}
-
-					// Apply custom fields if provided
-					if ( s.xhrFields ) {
-						for ( i in s.xhrFields ) {
-							xhr[ i ] = s.xhrFields[ i ];
-						}
-					}
-
-					// Override mime type if needed
-					if ( s.mimeType && xhr.overrideMimeType ) {
-						xhr.overrideMimeType( s.mimeType );
-					}
-
-					// X-Requested-With header
-					// For cross-domain requests, seeing as conditions for a preflight are
-					// akin to a jigsaw puzzle, we simply never set it to be sure.
-					// (it can always be set on a per-request basis or even using ajaxSetup)
-					// For same-domain requests, won't change header if already provided.
-					if ( !s.crossDomain && !headers["X-Requested-With"] ) {
-						headers[ "X-Requested-With" ] = "XMLHttpRequest";
-					}
-
-					// Need an extra try/catch for cross domain requests in Firefox 3
-					try {
-						for ( i in headers ) {
-							xhr.setRequestHeader( i, headers[ i ] );
-						}
-					} catch( _ ) {}
-
-					// Do send the request
-					// This may raise an exception which is actually
-					// handled in jQuery.ajax (so no try/catch here)
-					xhr.send( ( s.hasContent && s.data ) || null );
-
-					// Listener
-					callback = function( _, isAbort ) {
-
-						var status,
-							statusText,
-							responseHeaders,
-							responses,
-							xml;
-
-						// Firefox throws exceptions when accessing properties
-						// of an xhr when a network error occured
-						// http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
-						try {
-
-							// Was never called and is aborted or complete
-							if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
-
-								// Only called once
-								callback = undefined;
-
-								// Do not keep as active anymore
-								if ( handle ) {
-									xhr.onreadystatechange = jQuery.noop;
-									if ( xhrOnUnloadAbort ) {
-										delete xhrCallbacks[ handle ];
-									}
-								}
-
-								// If it's an abort
-								if ( isAbort ) {
-									// Abort it manually if needed
-									if ( xhr.readyState !== 4 ) {
-										xhr.abort();
-									}
-								} else {
-									status = xhr.status;
-									responseHeaders = xhr.getAllResponseHeaders();
-									responses = {};
-									xml = xhr.responseXML;
-
-									// Construct response list
-									if ( xml && xml.documentElement /* #4958 */ ) {
-										responses.xml = xml;
-									}
-									responses.text = xhr.responseText;
-
-									// Firefox throws an exception when accessing
-									// statusText for faulty cross-domain requests
-									try {
-										statusText = xhr.statusText;
-									} catch( e ) {
-										// We normalize with Webkit giving an empty statusText
-										statusText = "";
-									}
-
-									// Filter status for non standard behaviors
-
-									// If the request is local and we have data: assume a success
-									// (success with no data won't get notified, that's the best we
-									// can do given current implementations)
-									if ( !status && s.isLocal && !s.crossDomain ) {
-										status = responses.text ? 200 : 404;
-									// IE - #1450: sometimes returns 1223 when it should be 204
-									} else if ( status === 1223 ) {
-										status = 204;
-									}
-								}
-							}
-						} catch( firefoxAccessException ) {
-							if ( !isAbort ) {
-								complete( -1, firefoxAccessException );
-							}
-						}
-
-						// Call complete if needed
-						if ( responses ) {
-							complete( status, statusText, responses, responseHeaders );
-						}
-					};
-
-					// if we're in sync mode or it's in cache
-					// and has been retrieved directly (IE6 & IE7)
-					// we need to manually fire the callback
-					if ( !s.async || xhr.readyState === 4 ) {
-						callback();
-					} else {
-						handle = ++xhrId;
-						if ( xhrOnUnloadAbort ) {
-							// Create the active xhrs callbacks list if needed
-							// and attach the unload handler
-							if ( !xhrCallbacks ) {
-								xhrCallbacks = {};
-								jQuery( window ).unload( xhrOnUnloadAbort );
-							}
-							// Add to list of active xhrs callbacks
-							xhrCallbacks[ handle ] = callback;
-						}
-						xhr.onreadystatechange = callback;
-					}
-				},
-
-				abort: function() {
-					if ( callback ) {
-						callback(0,1);
-					}
-				}
-			};
-		}
-	});
-}
-
-
-
-
-var elemdisplay = {},
-	iframe, iframeDoc,
-	rfxtypes = /^(?:toggle|show|hide)$/,
-	rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,
-	timerId,
-	fxAttrs = [
-		// height animations
-		[ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
-		// width animations
-		[ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
-		// opacity animations
-		[ "opacity" ]
-	],
-	fxNow;
-
-jQuery.fn.extend({
-	show: function( speed, easing, callback ) {
-		var elem, display;
-
-		if ( speed || speed === 0 ) {
-			return this.animate( genFx("show", 3), speed, easing, callback );
-
-		} else {
-			for ( var i = 0, j = this.length; i < j; i++ ) {
-				elem = this[ i ];
-
-				if ( elem.style ) {
-					display = elem.style.display;
-
-					// Reset the inline display of this element to learn if it is
-					// being hidden by cascaded rules or not
-					if ( !jQuery._data(elem, "olddisplay") && display === "none" ) {
-						display = elem.style.display = "";
-					}
-
-					// Set elements which have been overridden with display: none
-					// in a stylesheet to whatever the default browser style is
-					// for such an element
-					if ( display === "" && jQuery.css(elem, "display") === "none" ) {
-						jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) );
-					}
-				}
-			}
-
-			// Set the display of most of the elements in a second loop
-			// to avoid the constant reflow
-			for ( i = 0; i < j; i++ ) {
-				elem = this[ i ];
-
-				if ( elem.style ) {
-					display = elem.style.display;
-
-					if ( display === "" || display === "none" ) {
-						elem.style.display = jQuery._data( elem, "olddisplay" ) || "";
-					}
-				}
-			}
-
-			return this;
-		}
-	},
-
-	hide: function( speed, easing, callback ) {
-		if ( speed || speed === 0 ) {
-			return this.animate( genFx("hide", 3), speed, easing, callback);
-
-		} else {
-			var elem, display,
-				i = 0,
-				j = this.length;
-
-			for ( ; i < j; i++ ) {
-				elem = this[i];
-				if ( elem.style ) {
-					display = jQuery.css( elem, "display" );
-
-					if ( display !== "none" && !jQuery._data( elem, "olddisplay" ) ) {
-						jQuery._data( elem, "olddisplay", display );
-					}
-				}
-			}
-
-			// Set the display of the elements in a second loop
-			// to avoid the constant reflow
-			for ( i = 0; i < j; i++ ) {
-				if ( this[i].style ) {
-					this[i].style.display = "none";
-				}
-			}
-
-			return this;
-		}
-	},
-
-	// Save the old toggle function
-	_toggle: jQuery.fn.toggle,
-
-	toggle: function( fn, fn2, callback ) {
-		var bool = typeof fn === "boolean";
-
-		if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {
-			this._toggle.apply( this, arguments );
-
-		} else if ( fn == null || bool ) {
-			this.each(function() {
-				var state = bool ? fn : jQuery(this).is(":hidden");
-				jQuery(this)[ state ? "show" : "hide" ]();
-			});
-
-		} else {
-			this.animate(genFx("toggle", 3), fn, fn2, callback);
-		}
-
-		return this;
-	},
-
-	fadeTo: function( speed, to, easing, callback ) {
-		return this.filter(":hidden").css("opacity", 0).show().end()
-					.animate({opacity: to}, speed, easing, callback);
-	},
-
-	animate: function( prop, speed, easing, callback ) {
-		var optall = jQuery.speed( speed, easing, callback );
-
-		if ( jQuery.isEmptyObject( prop ) ) {
-			return this.each( optall.complete, [ false ] );
-		}
-
-		// Do not change referenced properties as per-property easing will be lost
-		prop = jQuery.extend( {}, prop );
-
-		function doAnimation() {
-			// XXX 'this' does not always have a nodeName when running the
-			// test suite
-
-			if ( optall.queue === false ) {
-				jQuery._mark( this );
-			}
-
-			var opt = jQuery.extend( {}, optall ),
-				isElement = this.nodeType === 1,
-				hidden = isElement && jQuery(this).is(":hidden"),
-				name, val, p, e,
-				parts, start, end, unit,
-				method;
-
-			// will store per property easing and be used to determine when an animation is complete
-			opt.animatedProperties = {};
-
-			for ( p in prop ) {
-
-				// property name normalization
-				name = jQuery.camelCase( p );
-				if ( p !== name ) {
-					prop[ name ] = prop[ p ];
-					delete prop[ p ];
-				}
-
-				val = prop[ name ];
-
-				// easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default)
-				if ( jQuery.isArray( val ) ) {
-					opt.animatedProperties[ name ] = val[ 1 ];
-					val = prop[ name ] = val[ 0 ];
-				} else {
-					opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing';
-				}
-
-				if ( val === "hide" && hidden || val === "show" && !hidden ) {
-					return opt.complete.call( this );
-				}
-
-				if ( isElement && ( name === "height" || name === "width" ) ) {
-					// Make sure that nothing sneaks out
-					// Record all 3 overflow attributes because IE does not
-					// change the overflow attribute when overflowX and
-					// overflowY are set to the same value
-					opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ];
-
-					// Set display property to inline-block for height/width
-					// animations on inline elements that are having width/height animated
-					if ( jQuery.css( this, "display" ) === "inline" &&
-							jQuery.css( this, "float" ) === "none" ) {
-
-						// inline-level elements accept inline-block;
-						// block-level elements need to be inline with layout
-						if ( !jQuery.support.inlineBlockNeedsLayout || defaultDisplay( this.nodeName ) === "inline" ) {
-							this.style.display = "inline-block";
-
-						} else {
-							this.style.zoom = 1;
-						}
-					}
-				}
-			}
-
-			if ( opt.overflow != null ) {
-				this.style.overflow = "hidden";
-			}
-
-			for ( p in prop ) {
-				e = new jQuery.fx( this, opt, p );
-				val = prop[ p ];
-
-				if ( rfxtypes.test( val ) ) {
-
-					// Tracks whether to show or hide based on private
-					// data attached to the element
-					method = jQuery._data( this, "toggle" + p ) || ( val === "toggle" ? hidden ? "show" : "hide" : 0 );
-					if ( method ) {
-						jQuery._data( this, "toggle" + p, method === "show" ? "hide" : "show" );
-						e[ method ]();
-					} else {
-						e[ val ]();
-					}
-
-				} else {
-					parts = rfxnum.exec( val );
-					start = e.cur();
-
-					if ( parts ) {
-						end = parseFloat( parts[2] );
-						unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" );
-
-						// We need to compute starting value
-						if ( unit !== "px" ) {
-							jQuery.style( this, p, (end || 1) + unit);
-							start = ( (end || 1) / e.cur() ) * start;
-							jQuery.style( this, p, start + unit);
-						}
-
-						// If a +=/-= token was provided, we're doing a relative animation
-						if ( parts[1] ) {
-							end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start;
-						}
-
-						e.custom( start, end, unit );
-
-					} else {
-						e.custom( start, val, "" );
-					}
-				}
-			}
-
-			// For JS strict compliance
-			return true;
-		}
-
-		return optall.queue === false ?
-			this.each( doAnimation ) :
-			this.queue( optall.queue, doAnimation );
-	},
-
-	stop: function( type, clearQueue, gotoEnd ) {
-		if ( typeof type !== "string" ) {
-			gotoEnd = clearQueue;
-			clearQueue = type;
-			type = undefined;
-		}
-		if ( clearQueue && type !== false ) {
-			this.queue( type || "fx", [] );
-		}
-
-		return this.each(function() {
-			var index,
-				hadTimers = false,
-				timers = jQuery.timers,
-				data = jQuery._data( this );
-
-			// clear marker counters if we know they won't be
-			if ( !gotoEnd ) {
-				jQuery._unmark( true, this );
-			}
-
-			function stopQueue( elem, data, index ) {
-				var hooks = data[ index ];
-				jQuery.removeData( elem, index, true );
-				hooks.stop( gotoEnd );
-			}
-
-			if ( type == null ) {
-				for ( index in data ) {
-					if ( data[ index ] && data[ index ].stop && index.indexOf(".run") === index.length - 4 ) {
-						stopQueue( this, data, index );
-					}
-				}
-			} else if ( data[ index = type + ".run" ] && data[ index ].stop ){
-				stopQueue( this, data, index );
-			}
-
-			for ( index = timers.length; index--; ) {
-				if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
-					if ( gotoEnd ) {
-
-						// force the next step to be the last
-						timers[ index ]( true );
-					} else {
-						timers[ index ].saveState();
-					}
-					hadTimers = true;
-					timers.splice( index, 1 );
-				}
-			}
-
-			// start the next in the queue if the last step wasn't forced
-			// timers currently will call their complete callbacks, which will dequeue
-			// but only if they were gotoEnd
-			if ( !( gotoEnd && hadTimers ) ) {
-				jQuery.dequeue( this, type );
-			}
-		});
-	}
-
-});
-
-// Animations created synchronously will run synchronously
-function createFxNow() {
-	setTimeout( clearFxNow, 0 );
-	return ( fxNow = jQuery.now() );
-}
-
-function clearFxNow() {
-	fxNow = undefined;
-}
-
-// Generate parameters to create a standard animation
-function genFx( type, num ) {
-	var obj = {};
-
-	jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice( 0, num )), function() {
-		obj[ this ] = type;
-	});
-
-	return obj;
-}
-
-// Generate shortcuts for custom animations
-jQuery.each({
-	slideDown: genFx( "show", 1 ),
-	slideUp: genFx( "hide", 1 ),
-	slideToggle: genFx( "toggle", 1 ),
-	fadeIn: { opacity: "show" },
-	fadeOut: { opacity: "hide" },
-	fadeToggle: { opacity: "toggle" }
-}, function( name, props ) {
-	jQuery.fn[ name ] = function( speed, easing, callback ) {
-		return this.animate( props, speed, easing, callback );
-	};
-});
-
-jQuery.extend({
-	speed: function( speed, easing, fn ) {
-		var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
-			complete: fn || !fn && easing ||
-				jQuery.isFunction( speed ) && speed,
-			duration: speed,
-			easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
-		};
-
-		opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
-			opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
-
-		// normalize opt.queue - true/undefined/null -> "fx"
-		if ( opt.queue == null || opt.queue === true ) {
-			opt.queue = "fx";
-		}
-
-		// Queueing
-		opt.old = opt.complete;
-
-		opt.complete = function( noUnmark ) {
-			if ( jQuery.isFunction( opt.old ) ) {
-				opt.old.call( this );
-			}
-
-			if ( opt.queue ) {
-				jQuery.dequeue( this, opt.queue );
-			} else if ( noUnmark !== false ) {
-				jQuery._unmark( this );
-			}
-		};
-
-		return opt;
-	},
-
-	easing: {
-		linear: function( p, n, firstNum, diff ) {
-			return firstNum + diff * p;
-		},
-		swing: function( p, n, firstNum, diff ) {
-			return ( ( -Math.cos( p*Math.PI ) / 2 ) + 0.5 ) * diff + firstNum;
-		}
-	},
-
-	timers: [],
-
-	fx: function( elem, options, prop ) {
-		this.options = options;
-		this.elem = elem;
-		this.prop = prop;
-
-		options.orig = options.orig || {};
-	}
-
-});
-
-jQuery.fx.prototype = {
-	// Simple function for setting a style value
-	update: function() {
-		if ( this.options.step ) {
-			this.options.step.call( this.elem, this.now, this );
-		}
-
-		( jQuery.fx.step[ this.prop ] || jQuery.fx.step._default )( this );
-	},
-
-	// Get the current size
-	cur: function() {
-		if ( this.elem[ this.prop ] != null && (!this.elem.style || this.elem.style[ this.prop ] == null) ) {
-			return this.elem[ this.prop ];
-		}
-
-		var parsed,
-			r = jQuery.css( this.elem, this.prop );
-		// Empty strings, null, undefined and "auto" are converted to 0,
-		// complex values such as "rotate(1rad)" are returned as is,
-		// simple values such as "10px" are parsed to Float.
-		return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed;
-	},
-
-	// Start an animation from one number to another
-	custom: function( from, to, unit ) {
-		var self = this,
-			fx = jQuery.fx;
-
-		this.startTime = fxNow || createFxNow();
-		this.end = to;
-		this.now = this.start = from;
-		this.pos = this.state = 0;
-		this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" );
-
-		function t( gotoEnd ) {
-			return self.step( gotoEnd );
-		}
-
-		t.queue = this.options.queue;
-		t.elem = this.elem;
-		t.saveState = function() {
-			if ( self.options.hide && jQuery._data( self.elem, "fxshow" + self.prop ) === undefined ) {
-				jQuery._data( self.elem, "fxshow" + self.prop, self.start );
-			}
-		};
-
-		if ( t() && jQuery.timers.push(t) && !timerId ) {
-			timerId = setInterval( fx.tick, fx.interval );
-		}
-	},
-
-	// Simple 'show' function
-	show: function() {
-		var dataShow = jQuery._data( this.elem, "fxshow" + this.prop );
-
-		// Remember where we started, so that we can go back to it later
-		this.options.orig[ this.prop ] = dataShow || jQuery.style( this.elem, this.prop );
-		this.options.show = true;
-
-		// Begin the animation
-		// Make sure that we start at a small width/height to avoid any flash of content
-		if ( dataShow !== undefined ) {
-			// This show is picking up where a previous hide or show left off
-			this.custom( this.cur(), dataShow );
-		} else {
-			this.custom( this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur() );
-		}
-
-		// Start by showing the element
-		jQuery( this.elem ).show();
-	},
-
-	// Simple 'hide' function
-	hide: function() {
-		// Remember where we started, so that we can go back to it later
-		this.options.orig[ this.prop ] = jQuery._data( this.elem, "fxshow" + this.prop ) || jQuery.style( this.elem, this.prop );
-		this.options.hide = true;
-
-		// Begin the animation
-		this.custom( this.cur(), 0 );
-	},
-
-	// Each step of an animation
-	step: function( gotoEnd ) {
-		var p, n, complete,
-			t = fxNow || createFxNow(),
-			done = true,
-			elem = this.elem,
-			options = this.options;
-
-		if ( gotoEnd || t >= options.duration + this.startTime ) {
-			this.now = this.end;
-			this.pos = this.state = 1;
-			this.update();
-
-			options.animatedProperties[ this.prop ] = true;
-
-			for ( p in options.animatedProperties ) {
-				if ( options.animatedProperties[ p ] !== true ) {
-					done = false;
-				}
-			}
-
-			if ( done ) {
-				// Reset the overflow
-				if ( options.overflow != null && !jQuery.support.shrinkWrapBlocks ) {
-
-					jQuery.each( [ "", "X", "Y" ], function( index, value ) {
-						elem.style[ "overflow" + value ] = options.overflow[ index ];
-					});
-				}
-
-				// Hide the element if the "hide" operation was done
-				if ( options.hide ) {
-					jQuery( elem ).hide();
-				}
-
-				// Reset the properties, if the item has been hidden or shown
-				if ( options.hide || options.show ) {
-					for ( p in options.animatedProperties ) {
-						jQuery.style( elem, p, options.orig[ p ] );
-						jQuery.removeData( elem, "fxshow" + p, true );
-						// Toggle data is no longer needed
-						jQuery.removeData( elem, "toggle" + p, true );
-					}
-				}
-
-				// Execute the complete function
-				// in the event that the complete function throws an exception
-				// we must ensure it won't be called twice. #5684
-
-				complete = options.complete;
-				if ( complete ) {
-
-					options.complete = false;
-					complete.call( elem );
-				}
-			}
-
-			return false;
-
-		} else {
-			// classical easing cannot be used with an Infinity duration
-			if ( options.duration == Infinity ) {
-				this.now = t;
-			} else {
-				n = t - this.startTime;
-				this.state = n / options.duration;
-
-				// Perform the easing function, defaults to swing
-				this.pos = jQuery.easing[ options.animatedProperties[this.prop] ]( this.state, n, 0, 1, options.duration );
-				this.now = this.start + ( (this.end - this.start) * this.pos );
-			}
-			// Perform the next step of the animation
-			this.update();
-		}
-
-		return true;
-	}
-};
-
-jQuery.extend( jQuery.fx, {
-	tick: function() {
-		var timer,
-			timers = jQuery.timers,
-			i = 0;
-
-		for ( ; i < timers.length; i++ ) {
-			timer = timers[ i ];
-			// Checks the timer has not already been removed
-			if ( !timer() && timers[ i ] === timer ) {
-				timers.splice( i--, 1 );
-			}
-		}
-
-		if ( !timers.length ) {
-			jQuery.fx.stop();
-		}
-	},
-
-	interval: 13,
-
-	stop: function() {
-		clearInterval( timerId );
-		timerId = null;
-	},
-
-	speeds: {
-		slow: 600,
-		fast: 200,
-		// Default speed
-		_default: 400
-	},
-
-	step: {
-		opacity: function( fx ) {
-			jQuery.style( fx.elem, "opacity", fx.now );
-		},
-
-		_default: function( fx ) {
-			if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) {
-				fx.elem.style[ fx.prop ] = fx.now + fx.unit;
-			} else {
-				fx.elem[ fx.prop ] = fx.now;
-			}
-		}
-	}
-});
-
-// Adds width/height step functions
-// Do not set anything below 0
-jQuery.each([ "width", "height" ], function( i, prop ) {
-	jQuery.fx.step[ prop ] = function( fx ) {
-		jQuery.style( fx.elem, prop, Math.max(0, fx.now) + fx.unit );
-	};
-});
-
-if ( jQuery.expr && jQuery.expr.filters ) {
-	jQuery.expr.filters.animated = function( elem ) {
-		return jQuery.grep(jQuery.timers, function( fn ) {
-			return elem === fn.elem;
-		}).length;
-	};
-}
-
-// Try to restore the default display value of an element
-function defaultDisplay( nodeName ) {
-
-	if ( !elemdisplay[ nodeName ] ) {
-
-		var body = document.body,
-			elem = jQuery( "<" + nodeName + ">" ).appendTo( body ),
-			display = elem.css( "display" );
-		elem.remove();
-
-		// If the simple way fails,
-		// get element's real default display by attaching it to a temp iframe
-		if ( display === "none" || display === "" ) {
-			// No iframe to use yet, so create it
-			if ( !iframe ) {
-				iframe = document.createElement( "iframe" );
-				iframe.frameBorder = iframe.width = iframe.height = 0;
-			}
-
-			body.appendChild( iframe );
-
-			// Create a cacheable copy of the iframe document on first call.
-			// IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML
-			// document to it; WebKit & Firefox won't allow reusing the iframe document.
-			if ( !iframeDoc || !iframe.createElement ) {
-				iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;
-				iframeDoc.write( ( document.compatMode === "CSS1Compat" ? "<!doctype html>" : "" ) + "<html><body>" );
-				iframeDoc.close();
-			}
-
-			elem = iframeDoc.createElement( nodeName );
-
-			iframeDoc.body.appendChild( elem );
-
-			display = jQuery.css( elem, "display" );
-			body.removeChild( iframe );
-		}
-
-		// Store the correct default display
-		elemdisplay[ nodeName ] = display;
-	}
-
-	return elemdisplay[ nodeName ];
-}
-
-
-
-
-var rtable = /^t(?:able|d|h)$/i,
-	rroot = /^(?:body|html)$/i;
-
-if ( "getBoundingClientRect" in document.documentElement ) {
-	jQuery.fn.offset = function( options ) {
-		var elem = this[0], box;
-
-		if ( options ) {
-			return this.each(function( i ) {
-				jQuery.offset.setOffset( this, options, i );
-			});
-		}
-
-		if ( !elem || !elem.ownerDocument ) {
-			return null;
-		}
-
-		if ( elem === elem.ownerDocument.body ) {
-			return jQuery.offset.bodyOffset( elem );
-		}
-
-		try {
-			box = elem.getBoundingClientRect();
-		} catch(e) {}
-
-		var doc = elem.ownerDocument,
-			docElem = doc.documentElement;
-
-		// Make sure we're not dealing with a disconnected DOM node
-		if ( !box || !jQuery.contains( docElem, elem ) ) {
-			return box ? { top: box.top, left: box.left } : { top: 0, left: 0 };
-		}
-
-		var body = doc.body,
-			win = getWindow(doc),
-			clientTop  = docElem.clientTop  || body.clientTop  || 0,
-			clientLeft = docElem.clientLeft || body.clientLeft || 0,
-			scrollTop  = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop  || body.scrollTop,
-			scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
-			top  = box.top  + scrollTop  - clientTop,
-			left = box.left + scrollLeft - clientLeft;
-
-		return { top: top, left: left };
-	};
-
-} else {
-	jQuery.fn.offset = function( options ) {
-		var elem = this[0];
-
-		if ( options ) {
-			return this.each(function( i ) {
-				jQuery.offset.setOffset( this, options, i );
-			});
-		}
-
-		if ( !elem || !elem.ownerDocument ) {
-			return null;
-		}
-
-		if ( elem === elem.ownerDocument.body ) {
-			return jQuery.offset.bodyOffset( elem );
-		}
-
-		var computedStyle,
-			offsetParent = elem.offsetParent,
-			prevOffsetParent = elem,
-			doc = elem.ownerDocument,
-			docElem = doc.documentElement,
-			body = doc.body,
-			defaultView = doc.defaultView,
-			prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle,
-			top = elem.offsetTop,
-			left = elem.offsetLeft;
-
-		while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
-			if ( jQuery.support.fixedPosition && prevComputedStyle.position === "fixed" ) {
-				break;
-			}
-
-			computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle;
-			top  -= elem.scrollTop;
-			left -= elem.scrollLeft;
-
-			if ( elem === offsetParent ) {
-				top  += elem.offsetTop;
-				left += elem.offsetLeft;
-
-				if ( jQuery.support.doesNotAddBorder && !(jQuery.support.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) {
-					top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
-					left += parseFloat( computedStyle.borderLeftWidth ) || 0;
-				}
-
-				prevOffsetParent = offsetParent;
-				offsetParent = elem.offsetParent;
-			}
-
-			if ( jQuery.support.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) {
-				top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
-				left += parseFloat( computedStyle.borderLeftWidth ) || 0;
-			}
-
-			prevComputedStyle = computedStyle;
-		}
-
-		if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) {
-			top  += body.offsetTop;
-			left += body.offsetLeft;
-		}
-
-		if ( jQuery.support.fixedPosition && prevComputedStyle.position === "fixed" ) {
-			top  += Math.max( docElem.scrollTop, body.scrollTop );
-			left += Math.max( docElem.scrollLeft, body.scrollLeft );
-		}
-
-		return { top: top, left: left };
-	};
-}
-
-jQuery.offset = {
-
-	bodyOffset: function( body ) {
-		var top = body.offsetTop,
-			left = body.offsetLeft;
-
-		if ( jQuery.support.doesNotIncludeMarginInBodyOffset ) {
-			top  += parseFloat( jQuery.css(body, "marginTop") ) || 0;
-			left += parseFloat( jQuery.css(body, "marginLeft") ) || 0;
-		}
-
-		return { top: top, left: left };
-	},
-
-	setOffset: function( elem, options, i ) {
-		var position = jQuery.css( elem, "position" );
-
-		// set position first, in-case top/left are set even on static elem
-		if ( position === "static" ) {
-			elem.style.position = "relative";
-		}
-
-		var curElem = jQuery( elem ),
-			curOffset = curElem.offset(),
-			curCSSTop = jQuery.css( elem, "top" ),
-			curCSSLeft = jQuery.css( elem, "left" ),
-			calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
-			props = {}, curPosition = {}, curTop, curLeft;
-
-		// need to be able to calculate position if either top or left is auto and position is either absolute or fixed
-		if ( calculatePosition ) {
-			curPosition = curElem.position();
-			curTop = curPosition.top;
-			curLeft = curPosition.left;
-		} else {
-			curTop = parseFloat( curCSSTop ) || 0;
-			curLeft = parseFloat( curCSSLeft ) || 0;
-		}
-
-		if ( jQuery.isFunction( options ) ) {
-			options = options.call( elem, i, curOffset );
-		}
-
-		if ( options.top != null ) {
-			props.top = ( options.top - curOffset.top ) + curTop;
-		}
-		if ( options.left != null ) {
-			props.left = ( options.left - curOffset.left ) + curLeft;
-		}
-
-		if ( "using" in options ) {
-			options.using.call( elem, props );
-		} else {
-			curElem.css( props );
-		}
-	}
-};
-
-
-jQuery.fn.extend({
-
-	position: function() {
-		if ( !this[0] ) {
-			return null;
-		}
-
-		var elem = this[0],
-
-		// Get *real* offsetParent
-		offsetParent = this.offsetParent(),
-
-		// Get correct offsets
-		offset       = this.offset(),
-		parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();
-
-		// Subtract element margins
-		// note: when an element has margin: auto the offsetLeft and marginLeft
-		// are the same in Safari causing offset.left to incorrectly be 0
-		offset.top  -= parseFloat( jQuery.css(elem, "marginTop") ) || 0;
-		offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0;
-
-		// Add offsetParent borders
-		parentOffset.top  += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0;
-		parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0;
-
-		// Subtract the two offsets
-		return {
-			top:  offset.top  - parentOffset.top,
-			left: offset.left - parentOffset.left
-		};
-	},
-
-	offsetParent: function() {
-		return this.map(function() {
-			var offsetParent = this.offsetParent || document.body;
-			while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) {
-				offsetParent = offsetParent.offsetParent;
-			}
-			return offsetParent;
-		});
-	}
-});
-
-
-// Create scrollLeft and scrollTop methods
-jQuery.each( ["Left", "Top"], function( i, name ) {
-	var method = "scroll" + name;
-
-	jQuery.fn[ method ] = function( val ) {
-		var elem, win;
-
-		if ( val === undefined ) {
-			elem = this[ 0 ];
-
-			if ( !elem ) {
-				return null;
-			}
-
-			win = getWindow( elem );
-
-			// Return the scroll offset
-			return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] :
-				jQuery.support.boxModel && win.document.documentElement[ method ] ||
-					win.document.body[ method ] :
-				elem[ method ];
-		}
-
-		// Set the scroll offset
-		return this.each(function() {
-			win = getWindow( this );
-
-			if ( win ) {
-				win.scrollTo(
-					!i ? val : jQuery( win ).scrollLeft(),
-					 i ? val : jQuery( win ).scrollTop()
-				);
-
-			} else {
-				this[ method ] = val;
-			}
-		});
-	};
-});
-
-function getWindow( elem ) {
-	return jQuery.isWindow( elem ) ?
-		elem :
-		elem.nodeType === 9 ?
-			elem.defaultView || elem.parentWindow :
-			false;
-}
-
-
-
-
-// Create width, height, innerHeight, innerWidth, outerHeight and outerWidth methods
-jQuery.each([ "Height", "Width" ], function( i, name ) {
-
-	var type = name.toLowerCase();
-
-	// innerHeight and innerWidth
-	jQuery.fn[ "inner" + name ] = function() {
-		var elem = this[0];
-		return elem ?
-			elem.style ?
-			parseFloat( jQuery.css( elem, type, "padding" ) ) :
-			this[ type ]() :
-			null;
-	};
-
-	// outerHeight and outerWidth
-	jQuery.fn[ "outer" + name ] = function( margin ) {
-		var elem = this[0];
-		return elem ?
-			elem.style ?
-			parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) :
-			this[ type ]() :
-			null;
-	};
-
-	jQuery.fn[ type ] = function( size ) {
-		// Get window width or height
-		var elem = this[0];
-		if ( !elem ) {
-			return size == null ? null : this;
-		}
-
-		if ( jQuery.isFunction( size ) ) {
-			return this.each(function( i ) {
-				var self = jQuery( this );
-				self[ type ]( size.call( this, i, self[ type ]() ) );
-			});
-		}
-
-		if ( jQuery.isWindow( elem ) ) {
-			// Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
-			// 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat
-			var docElemProp = elem.document.documentElement[ "client" + name ],
-				body = elem.document.body;
-			return elem.document.compatMode === "CSS1Compat" && docElemProp ||
-				body && body[ "client" + name ] || docElemProp;
-
-		// Get document width or height
-		} else if ( elem.nodeType === 9 ) {
-			// Either scroll[Width/Height] or offset[Width/Height], whichever is greater
-			return Math.max(
-				elem.documentElement["client" + name],
-				elem.body["scroll" + name], elem.documentElement["scroll" + name],
-				elem.body["offset" + name], elem.documentElement["offset" + name]
-			);
-
-		// Get or set width or height on the element
-		} else if ( size === undefined ) {
-			var orig = jQuery.css( elem, type ),
-				ret = parseFloat( orig );
-
-			return jQuery.isNumeric( ret ) ? ret : orig;
-
-		// Set the width or height on the element (default to pixels if value is unitless)
-		} else {
-			return this.css( type, typeof size === "string" ? size : size + "px" );
-		}
-	};
-
-});
-
-
-
-
-// Expose jQuery to the global object
-window.jQuery = window.$ = jQuery;
-
-// Expose jQuery as an AMD module, but only for AMD loaders that
-// understand the issues with loading multiple versions of jQuery
-// in a page that all might call define(). The loader will indicate
-// they have special allowances for multiple jQuery versions by
-// specifying define.amd.jQuery = true. Register as a named module,
-// since jQuery can be concatenated with other files that may use define,
-// but not use a proper concatenation script that understands anonymous
-// AMD modules. A named AMD is safest and most robust way to register.
-// Lowercase jquery is used because AMD module names are derived from
-// file names, and jQuery is normally delivered in a lowercase file name.
-// Do this after creating the global so that if an AMD module wants to call
-// noConflict to hide this version of jQuery, it will work.
-if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
-	define( "jquery", [], function () { return jQuery; } );
-}
-
-
-
-})( window );
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/mandreel.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/mandreel.js
deleted file mode 100644
index b5f3d05..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/mandreel.js
+++ /dev/null
@@ -1,277377 +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', 14000000,
-                                            [new Benchmark('Mandreel',
-                                                           runMandreel,
-                                                           setupMandreel,
-                                                           tearDownMandreel,
-                                                           4)]);
-
-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;
-  startApp();
-  _mandreelAppAudioReady();
-}
-
-function runMandreel() {
-  Mandreel_currentTime = 0;
-  var sp = g_stack_pointer+800*1024;
-  for (var i=0;i<mandreel_total_memory/4;i++) {
-    heap32[i] = my_heap32[i];
-  }
-  tlsf_ptr = 0;
-  heapNewPos = my_heapNewPos;
-  my_old_constructors(llvm_2E_global_ctors,5,sp);
-  heapU32[sp>>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();
-  }
-  Mandreel_checkState();
-}
-
-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;
-}
-
-// 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;i<mandreel_total_memory/4;i++) {
-    my_heap32[i] = heap32[i];
-  }
-  my_old_constructors(_ptr,size,stackPos);
-}
-
-
-var Mandreel_currentTime = 0;
-
-function Date_now() {
-   Mandreel_currentTime += 16;
-   return Mandreel_currentTime;
-}
-
-function Mandreel_checkState() {
-  var sum = 0;
-  for (var i = 0; i < heap32.length; i += 100) {
-    sum = (sum * 3 + heap32[i]) & 0xFFFFFF;
-  }
-  if (sum != 8001026) {
-    alert("Check sum mismatch: expected ???, actual " + sum);
-  }
-}
-
-// Original Mandreel code follows.
-// Modifications for benchmarking are marked in comments.
-
-// Start of js/main.js file:
-
-////////////////////////////////////////////
-function startApp(_platform)
-{
-	// Start mandreel
-	var params =
-	{
-		platform : _platform,
-		width : 1024,
-		height : 768,
-		webglCanvas : "canvas",
-		flashCanvas : "FlashDiv",
-		workingFolderFlash : "data/as3/",
-		workingFolderWebgl : "data/js/",
-		swfFlash : "mandreel.swf",
-		log : true
-	};
-	mandreelAppStart(appStartState,params);
-}
-
-////////////////////////////////////////////
-function appStartState(state,param)
-{
-	// mandreel.js program is been loaded
-	if ( state == "loadingScript" )
-	{
-	}
-
-	// mandreel.js program has been loaded
-	if ( state == "scriptLoaded" )
-	{
-	}
-
-	// loading pack data file
-	if (state == "loadingData")
-	{
-		// param bytes loaded
-	}
-
-	// Audio system is been started
-	if ( state == "loadingAudio" )
-	{
-	}
-
-	// Audio system is ready and the default audio preloading has been done
-	if ( state == "audioLoaded" )
-	{
-	}
-
-
-
-	// Mandreel has been started, render will start automatically
-	if ( state == "ready" )
-	{
-		// Hide loading image
-		var canvasElement = Mandreel_document.getElementById('loading');
-		if ( canvasElement != null )
-			canvasElement.style.visibility = "hidden";
-	}
-
-	// An error has been produced during the start process and the app must quit
-	if ( state == "error" )
-	{
-		if ( param == "webgl_not_found" )
-		{
-			window.location = "http://get.webgl.org";
-			return;
-		}
-		alert(param);
-	}
-}
-
-// End of js/main.js file.
-
-// Start of js/mandreelapp.js file.
-
-var mandreelAppMandreelJs = "mandreel.js";
-var mandreelAppMandreelJsCompressed = false;
-var mandreelAppWorkingFolder = "data/js/";
-var mandreelAppLog = false;
-var mandreelAppLocalHost = "http://localhost";
-var mandreelAppReadDataFromLocalHost = false;
-var mandreelAppReadMandreelJsFromLocalHost = false;
-var mandreelAppHostedAudioServer = null;
-var mandreelAppHostedAudioUrl = null;
-var mandrelCurrentFatVersion = "1.4";
-var mandreelAppPlatform = "webgl";
-var mandreelAppCanvasWidth = 1024;
-var mandreelAppCanvasHeight = 768;
-var mandreelAppWidthSrc = 1024;
-var mandreelAppHeightSrc = 768;
-var mandreelAppCanvasName = "canvas";
-var mandreelAppCanvasDiv = "canvasDiv";
-var mandreelAppUseFlashSockets = false;
-var mandreelAppUsePackAsyncTexture = new Array();
-//var mandreelBufferPackAsyncTexture = null;
-var mandreelAppForceFocus = true;
-var _imandreel_pause_game = false;
-
-/* The following code was removed for benchmarking:
-navigator.pointer = navigator.pointer || navigator.webkitPointer || navigator.mozPointer || null;*/
-
-/* The following code was removed for benchmarking:
- if (!Date_now) {
-   Date_now = function() {
-     return +new Date();
-   };
- };*/
-
-////////////////////////////////////////////
-
-if (Mandreel_window["console"])
-{
-	if (!Mandreel_window["dump"]) Mandreel_window["dump"] = function dump(str){ if ( mandreelAppLog ) console.log(str) };
-}
-else
-{
-	if (!Mandreel_window["dump"]) Mandreel_window["dump"] = function dump(str){ };
-}
-
-/* The following code is removed for benchmarking:
-var mandreel_BrowserDetect = {
-	init: function () {
-		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
-		this.version = this.searchVersion(navigator.userAgent)
-			|| this.searchVersion(navigator.appVersion)
-			|| "an unknown version";
-		this.OS = this.searchString(this.dataOS) || "an unknown OS";
-	},
-	searchString: function (data) {
-		for (var i=0;i<data.length;i++)	{
-			var dataString = data[i].string;
-			var dataProp = data[i].prop;
-			this.versionSearchString = data[i].versionSearch || data[i].identity;
-			if (dataString) {
-				if (dataString.indexOf(data[i].subString) != -1)
-					return data[i].identity;
-			}
-			else if (dataProp)
-				return data[i].identity;
-		}
-	},
-	searchVersion: function (dataString) {
-		var index = dataString.indexOf(this.versionSearchString);
-		if (index == -1) return;
-		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
-	},
-	dataBrowser: [
-		{
-			string: navigator.userAgent,
-			subString: "Chrome",
-			identity: "Chrome"
-		},
-		{ 	string: navigator.userAgent,
-			subString: "OmniWeb",
-			versionSearch: "OmniWeb/",
-			identity: "OmniWeb"
-		},
-		{
-			string: navigator.vendor,
-			subString: "Apple",
-			identity: "Safari",
-			versionSearch: "Version"
-		},
-		{
-			prop: window.opera,
-			identity: "Opera",
-			versionSearch: "Version"
-		},
-		{
-			string: navigator.vendor,
-			subString: "iCab",
-			identity: "iCab"
-		},
-		{
-			string: navigator.vendor,
-			subString: "KDE",
-			identity: "Konqueror"
-		},
-		{
-			string: navigator.userAgent,
-			subString: "Firefox",
-			identity: "Firefox"
-		},
-		{
-			string: navigator.vendor,
-			subString: "Camino",
-			identity: "Camino"
-		},
-		{		// for newer Netscapes (6+)
-			string: navigator.userAgent,
-			subString: "Netscape",
-			identity: "Netscape"
-		},
-		{
-			string: navigator.userAgent,
-			subString: "MSIE",
-			identity: "Explorer",
-			versionSearch: "MSIE"
-		},
-		{
-			string: navigator.userAgent,
-			subString: "Gecko",
-			identity: "Mozilla",
-			versionSearch: "rv"
-		},
-		{ 		// for older Netscapes (4-)
-			string: navigator.userAgent,
-			subString: "Mozilla",
-			identity: "Netscape",
-			versionSearch: "Mozilla"
-		}
-	],
-	dataOS : [
-		{
-			string: navigator.platform,
-			subString: "Win",
-			identity: "Windows"
-		},
-		{
-			string: navigator.platform,
-			subString: "Mac",
-			identity: "Mac"
-		},
-		{
-			   string: navigator.userAgent,
-			   subString: "iPhone",
-			   identity: "iPhone/iPod"
-	    },
-		{
-			string: navigator.platform,
-			subString: "Linux",
-			identity: "Linux"
-		}
-	]
-
-};
-mandreel_BrowserDetect.init(); */
-
-////////////////////////////////////////////
-var mandreel_packfiledata_name = null;
-var mandreel_packfiledata_compressed = false;
-var mandreel_packfiledata_size = 0;
-var mandreel_total_packtexture_size = 0;
-var mandreel_total_pogfile_size = 0;
-var mandreel_loaded_packtexture_size = 0;
-var mandreel_jslzma_size = 0;
-var mandreel_swf_size = 0;
-
-var mandreelJsScriptLoaded_loaded = false;
-
-var mandreel_swf_last_total_size = 0;
-function mandreel_swf_size_updated(str)
-{
-	var params = str.split(',');
-	if ( mandreel_swf_size == 0 )
-	{
-		mandreel_swf_last_loaded_size = 0;
-	}
-	mandreel_swf_size = parseInt(params[0]);
-	var loaded = parseInt(params[1]);
-	var delta_size = loaded - mandreel_swf_last_loaded_size;
-	mandreel_swf_last_loaded_size = loaded;
-
-	var percentage = ((100*loaded)/mandreel_swf_size)|0;
-	if (percentage>100)
-		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<files.length;++i)
-	{
-		var file_data = files[i].split(',');
-
-		if (file_data[0] == 'dir')
-		{
-			current_dir = file_data[1];
-			//current_dir = current_dir.substr(0,current_dir.lengh-1);
-		}
-		else if (file_data[0] == 'file')
-		{
-			var file_name = current_dir + file_data[1];
-			file_name = mandreel_chanka_fixfile(file_name) ;
-			//dump('new file ' + file_name + ' ' + current_offset);
-			//dump(file_name);
-			var file_size = parseInt(file_data[2]);
-
-			var my_array = new ArrayBuffer(file_size);
-
-			var my_bytes = new Uint8Array(my_array);
-
-			var data_bytes = new Uint8Array(data,current_offset,file_size);
-
-			my_bytes.set(data_bytes);
-
-			mandreel_cache_files[file_name] = my_array;
-
-
-			current_offset+=file_size;
-
-
-		}
-	}
-
-
-
-	g_mandreel_datafiles_sufix = '';
-	mandreelCacheMandreelFat();
-
-	imandreelJsScriptLoaded();
-}
-
-var preCreatedWebAudioContext = null;
-
-function mandreelLoadFat()
-{
-	mandreelFatPreloadRequest = new Mandreel_XMLHttpRequest();
-	var working_folder = mandreelAppWorkingFolder;
-	if ( mandreelAppReadDataFromLocalHost )
-		working_folder = mandreelAppLocalHost+"/"+mandreelAppWorkingFolder;
-	var url = working_folder+"mandreel.fat.dat";
-	if ( mandreelAppPlatform == "nacl" )
-		url = working_folder+"mandreel.fat";
-	mandreelFatPreloadRequest.open("GET", url, true);
-	mandreelFatPreloadRequest.onreadystatechange = function()
-	{
-		if (mandreelFatPreloadRequest.readyState != 4) return;
-		if ( mandreelFatPreloadRequest.status != 404 && mandreelFatPreloadRequest.response != null )
-		{
-			mandreelFatData = mandreelFatPreloadRequest.response;
-		}
-		if ( mandreelFatData == "" )
-		{
-			dump("error loading mandreel.fat file, Maybe the working folder is not correctly set???");
-		}
-
-		var packfiledata = null;
-		var compressed = false;
-		var packfiledata_size = 0;
-		var total_packtexture_size = 0;
-		var pogsize = 0;
-
-		// Check version
-		var FatLines = mandreelFatData.split('\n');
-		for ( var i=0;i<FatLines.length;++i )
-		{
-			var line = mandreel_removecr(FatLines[i]);
-			var params = line.split(',');
-			if ( params[0] == "version" )
-			{
-				if ( params[1] != mandrelCurrentFatVersion )
-					dump("warning: mandreel.fat version number is ("+params[1]+") and it should be ("+mandrelCurrentFatVersion+")");
-
-			}
-			else if ( params[0] == "platform" && params[1] != "js" && (mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas")  )
-				dump("warning: mandreel.fat platform is ("+params[1]+") and it should be (js)");
-			else if ( params[0] == "platform" && params[1] != "nacl" && mandreelAppPlatform == "nacl"  )
-				dump("warning: mandreel.fat platform is ("+params[1]+") and it should be (nacl)");
-			else if (params[0] == 'packdata')
-			{
-				packfiledata = params[1];
-				compressed = params[2].charAt(0) == '1';
-				packfiledata_size =  parseInt(params[3], 10);
-			}
-			else if (params[0] == 'flashsockets')
-			{
-				mandreelAppUseFlashSockets = true;
-			}
-			else if (params[0] == 'packtexture')
-			{
-				var filename = params[1];
-				var size_packtexture = parseInt(params[3], 10);
-				total_packtexture_size+=size_packtexture;
-				mandreelAppUsePackAsyncTexture.push(filename);
-			}
-			else if (params[0] == 'audiopreloadfile')
-			{
-				pogsize = parseInt(params[2],10);
-			}
-			else if (params[0] == 'audiodriver' && params[1] == 'webaudio')
-			{
-				try	{ preCreatedWebAudioContext = new webkitAudioContext(); } catch(err) { preCreatedWebAudioContext = null; }
-			}
-		}
-
-		if ( preCreatedWebAudioContext != null )
-			mandreel_total_pogfile_size = pogsize;
-		mandreel_packfiledata_name = packfiledata;
-		mandreel_packfiledata_compressed = compressed;
-		mandreel_packfiledata_size = packfiledata_size;
-		mandreel_total_packtexture_size = total_packtexture_size;
-		mandreelFatLoaded();
-	}
-	mandreelFatPreloadRequest.send();
-}
-
-var mandreelAppStartStateFunc = 0;
-var mandreelDisableSpaceKey = true;
-////////////////////////////////////////////
-function mandreelAppStart(startStateFunc,params)
-{
-	mandreelAppStartStateFunc = startStateFunc;
-
-
-
-
-	if ( typeof(params.log) != 'undefined' )
-		mandreelAppLog = params.log;
-
-	if ( typeof(params.platform) != 'undefined' )
-		mandreelAppPlatform = params.platform;
-
-	if (typeof(params.mandreelJSCompressed) != 'undefined' )
-		mandreelAppMandreelJsCompressed = params.mandreelJSCompressed;
-
-
-/*	 The following code is removed for benchmarking:
-	if ((mandreel_BrowserDetect.browser == 'Chrome' || mandreel_BrowserDetect.browser == 'Safari') && mandreel_BrowserDetect.OS == 'Mac' && mandreelAppPlatform == "flash")
-		mandreelDisableSpaceKey = false; */
-
-	if ( mandreelAppPlatform != "webgl" && mandreelAppPlatform != "flash" && mandreelAppPlatform != "nacl" && mandreelAppPlatform != "canvas" && mandreelAppPlatform != "plugin")
-	{
-		mandreelAppStartStateFunc("error",'platform ('+mandreelAppPlatform+') not supported');
-		return;
-	}
-
-	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
-	{
-		mandreelAppWorkingFolder = "data/js/";
-		if ( typeof(params.workingFolderWebgl) != 'undefined' )
-			mandreelAppWorkingFolder = params.workingFolderWebgl;
-		// Check Float64Array availability
-		if ( !Mandreel_window["Float64Array"] )
-		{
-			mandreelAppStartStateFunc("error",'Browser unsupported: Float64Array not available');
-			return;
-		}
-
-		var flashElement = Mandreel_document.getElementById('FlashWrapper');
-		if ( flashElement != null )
-		{
-			flashElement.style.visibility = "hidden";
-			flashElement.style.width = "0px";
-			flashElement.style.height = "0px";
-		}
-		var flashElement = Mandreel_document.getElementById('FlashDiv');
-		if ( flashElement != null )
-		{
-			flashElement.style.visibility = "hidden";
-			flashElement.style.width = "0px";
-			flashElement.style.height = "0px";
-		}
-
-		// Setup WebGL
-		if ( typeof(params.webglCanvas) == 'undefined' )
-		{
-			mandreelAppStartStateFunc("error",'canvas parameter not found');
-			return;
-		}
-		var canvas = Mandreel_document.getElementById(params.webglCanvas);
-		if ( canvas == null )
-		{
-			mandreelAppStartStateFunc("error",'canvas object ('+params.webglCanvas+') not found');
-			return;
-		}
-		if ( params.width != null )
-		{
-			canvas.width = params.width;
-			mandreelAppWidthSrc = params.width;
-		}
-		if ( params.height != null )
-		{
-			canvas.height = params.height;
-			mandreelAppHeightSrc = params.height;
-		}
-		if ( mandreelAppPlatform == "webgl" )
-		{
-			// The following code is removed for benchmarking:
-			// imandreel_gl = WebGLUtils.setupWebGL(canvas,{premultipliedAlpha:false,alpha:false});
-			// if (imandreel_gl == null)
-			// {
-			//	mandreelAppStartStateFunc("error","webgl_not_found");
-			//	return;
-			// }
-		}
-
-		if ( mandreelAppPlatform == "canvas" )
-		{
-			imandreel_ctx_canvas = canvas.getContext('2d');
-			if ( imandreel_ctx_canvas == null )
-			{
-				mandreelAppStartStateFunc("error","canvas context 2d not found");
-				return;
-			}
-		}
-
-		if (params.cache != null)
-		{
-			//alert( params.cache.size + params.cache.url);
-			mandreel_fs_init(function() { if ( mandreelAppStartStateFunc )
-				mandreelAppStartStateFunc("loadingFat","");
-			mandreelLoadFat();}, params.cache.size,params.cache.url);
-		}
-		else
-		{
-			// load Fat
-			if ( mandreelAppStartStateFunc )
-				mandreelAppStartStateFunc("loadingFat","");
-			mandreelLoadFat();
-		}
-	}
-
-	if ( mandreelAppPlatform == "flash" )
-	{
-		mandreelAppWorkingFolder = "data/as3/";
-		if ( typeof(params.workingFolderFlash) != 'undefined' )
-			mandreelAppWorkingFolder = params.workingFolderFlash;
-		if (!swfobject.hasFlashPlayerVersion('11.2.0'))
-		{
-			mandreelAppStartStateFunc("error","flash 11 not found");
-			return;
-		}
-
-		if ( typeof(params.flashCanvas) == 'undefined' )
-		{
-			mandreelAppStartStateFunc("error",'canvas parameter not found');
-			return;
-		}
-
-		if ( true ) // hide webgl canvas
-		{
-			var canvas = Mandreel_document.getElementById(mandreelAppCanvasDiv);
-			if ( canvas != null )
-			{
-				canvas.style.visibility = "hidden";
-				canvas.style.width = "0px";
-				canvas.style.height = "0px";
-			}
-		}
-
-		if ( params.width != null )
-		{
-			mandreelAppCanvasWidth = params.width;
-		}
-		if ( params.height != null )
-		{
-			mandreelAppCanvasHeight = params.height;
-		}
-
-		mandreelAppCanvasDiv = params.flashCanvas;
-
-		try
-		{
-			var mandreelSocketsSwf = "mandreel.swf";
-			if ( typeof(params.swfFlash) != 'undefined' )
-				mandreelSocketsSwf = params.swfFlash;
-
-			var my_flashvars = "workingFolder=" + encodeURIComponent(mandreelAppWorkingFolder);
-			if ( typeof(params.log) != 'undefined' && params.log == true)
-			  my_flashvars += "&log=true"
-			my_flashvars += "&width=" + params.width;
-			my_flashvars += "&height=" + params.height;
-			my_flashvars += "&swfloader=" + mandreelSocketsSwf;
-
-			if (typeof(params.restore_context) != 'undefined' && params.restore_context == true)
-				my_flashvars += "&restore_context=1";
-
-			if (typeof(params.antialiasing) != 'undefined')
-				my_flashvars += "&antialiasing=" + params.antialiasing;
-
-			if (typeof(params.right_click_enable) != 'undefined' && params.right_click_enable == true)
-				my_flashvars += "&right_click=1";
-
-			if (typeof(params.disable_depth) != 'undefined' && params.disable_depth == true)
-				my_flashvars += "&disable_depth=1";
-
-			var swfname = "mandreelloader.swf";
-			if ( typeof(params.swfPreloader) != 'undefined' && params.swfPreloader == false)
-				swfname = mandreelSocketsSwf;
-
-			var swf = swfobject.createSWF({ data:swfname, width:"100%", height:"100%" }, { menu:"false",allowScriptAccess:"always",allowFullScreen:"true",wmode:"direct",scale:"noscale",salign :"tl",bgcolor:"#000000",flashvars:my_flashvars}, params.flashCanvas);
-			if ( !swf )
-			{
-				mandreelAppStartStateFunc("error","error loading " + swfname);
-				return;
-			}
-			else
-			{
-				if ( mandreelAppStartStateFunc )
-					mandreelAppStartStateFunc("loadingScript","");
-			}
-		}
-		catch(err)
-		{
-			mandreelAppStartStateFunc("error","exception " + err + " while loading " + mandreelSocketsSwf);
-			return;
-		}
-
-		appStartState('loadingScript');
-	}
-
-	if ( mandreelAppPlatform == "nacl" )
-	{
-		mandreelAppWorkingFolder = "data/nacl/";
-
-		// load Fat
-		if ( mandreelAppStartStateFunc )
-			mandreelAppStartStateFunc("loadingFat","");
-		mandreelLoadFat();
-
-	}
-
-	if ( mandreelAppPlatform == "plugin" )
-	{
-		mandreelInitPluginPlatform(params);
-	}
-}
-
-
-////////////////////////////////////////////
-function MandreelAudioStartedNacl()
-{
-	var helloWorldModule = null;
-	helloWorldModule = Mandreel_document.getElementById('hello_world');
-	helloWorldModule.postMessage('init');
-	var flashElement = Mandreel_document.getElementById('FlashWrapper');
-	if ( flashElement != null )
-		flashElement.style.visibility = "hidden";
-	mandreelAppStartStateFunc("ready",mandreelAppCanvasWidth,mandreelAppCanvasHeight);
-}
-
-////////////////////////////////////////////
-function _mandreelAppStartReady()
-{
-	if ( mandreelAppPlatform == "nacl" )
-	{
-		wa_initWebAudio();
-		mandreel_webAudio_PreloadAssets();
-	}
-	else
-	{
-		if ( mandreelAppStartStateFunc )
-		{
-			mandreelAppStartRenderWebGL();
-			mandreelAppStartStateFunc("ready",mandreelAppCanvasWidth,mandreelAppCanvasHeight);
-		}
-	}
-}
-////////////////////////////////////////////
-function _mandreelAppAudioReady()
-{
-	if ( mandreelAppStartStateFunc )
-		mandreelAppStartStateFunc("audioLoaded","");
-
-	if ( mandreelAppUseFlashSockets )
-		mandreel_flash_sockets_load_flash(_mandreelAppStartReady);
-	else
-		_mandreelAppStartReady();
-}
-
-////////////////////////////////////////////
-function mandreelAppInit()
-{
-	if ( mandreelAppPlatform == "webgl" || mandreelAppPlatform == "canvas" )
-	{
-		global_init(g_stack_pointer+800*1024);
-
-		//Mandreel_TextureAsync_PackBufferData[_mandreel_currentPackTexture] = mandreelBufferPackAsyncTexture;
-		//mandreelBufferPackAsyncTexture = null;
-		var sp = g_stack_pointer+800*1024;
-		heapU32[sp>>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<num_params*2+2;i+=2)
-	{
-		var type = arguments[i];
-
-		var size_arg = 0;
-		switch(type)
-		{
-			case 'int':
-				size_arg = 4;
-				break;
-			case 'float':
-				size_arg = 4;
-				break;
-			case 'string':
-				size_arg = 4;
-				size_arg += ((arguments[i+1].length + 4) & 0xfffffffc);
-				break;
-			case 'wstring':
-				size_arg = 4;
-				size_arg += ((arguments[i+1].length*2 + 4) & 0xfffffffc);
-				break;
-			default:
-				assert(false);
-		}
-
-		size_params += size_arg;
-	}
-
-	// stack always 8 byte aligned
-	size_params=((size_params+7)& 0xfffffff8);
-
-	var sp = 0;
-
-	if (i<(arguments.length))
-		sp = arguments[i];
-	else
-	{
-		assert(false);
-	}
-
-
-	sp-=size_params;
-
-	MandreelLockFrame();
-
-	var offset = 0;
-	var ptr_data = num_params*4+sp;
-    for (i=2;i<num_params*2+2;i+=2)
-	{
-		var type = arguments[i];
-
-
-		var size_arg = 0;
-		switch(type)
-		{
-			case 'int':
-				MandreelInterWriteInt((sp+offset),arguments[i+1]);
-				break;
-			case 'float':
-				MandreelInterWriteFloat((sp+offset),arguments[i+1]);
-				break;
-			case 'string':
-				{
-					MandreelInterWriteInt((sp+offset),ptr_data);
-					var string = arguments[i+1];
-					MandreelInterWriteString(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;
-	}
-
-	return_value = MandreelInterCallFunctionRaw(sp, func_name, returnType);
-
-	MandreelUnlockFrame();
-
-	if (returnType == 'int')
-		return parseInt(return_value);
-	else if (returnType == 'float')
-		return parseFloat(return_value);
-
-	return;
-}
-
-
-
-// file system
-
-var g_mandreel_timestamp_fs = 0;
-var g_mandreel_fs = null;
-
-function onMandreelQuotaOk(fs)
-{
-	g_mandreel_fs = fs;
-	dump('onMandreelQuotaOk');
-}
-
-
-function MandreelFsErrorHandler(e) {
-  var msg = '';
-
-  switch (e.code) {
-    case FileError.QUOTA_EXCEEDED_ERR:
-      msg = 'QUOTA_EXCEEDED_ERR';
-      break;
-    case FileError.NOT_FOUND_ERR:
-      msg = 'NOT_FOUND_ERR';
-      break;
-    case FileError.SECURITY_ERR:
-      msg = 'SECURITY_ERR';
-      break;
-    case FileError.INVALID_MODIFICATION_ERR:
-      msg = 'INVALID_MODIFICATION_ERR';
-      break;
-    case FileError.INVALID_STATE_ERR:
-      msg = 'INVALID_STATE_ERR';
-      break;
-    default:
-      msg = 'Unknown Error';
-      break;
-  };
-
-  dump('Error: ' + msg);
-  dump(e);
-}
-
-var indexedDB = Mandreel_window.indexedDB || Mandreel_window.webkitIndexedDB ||
-                Mandreel_window.mozIndexedDB;
-
-if ('webkitIndexedDB' in Mandreel_window) {
-  Mandreel_window.IDBTransaction = Mandreel_window.webkitIDBTransaction;
-  Mandreel_window.IDBKeyRange = Mandreel_window.webkitIDBKeyRange;
-}
-
-
-var mandreel_indexedDB = {};
-mandreel_indexedDB.db = null;
-mandreel_indexedDB.callback_init = false;
-
-mandreel_indexedDB.onerror = function(e) {
-  dump(e);
-};
-
-mandreel_indexedDB.init = function(callback)
-{
- try {
-	var request = indexedDB.open('my_cache', 2);
-
-	request.onerror = function(event) {
-		callback(false);
-		};
-	request.onupgradeneeded = function(event) {
-	dump('onupgradeneeded\n');
-	mandreel_indexedDB.db = event.target.result;
-    var db = mandreel_indexedDB.db;
-	var objectStore = db.createObjectStore("cache",{keyPath: "fileName"});
-	}
-
-  request.onsuccess = function(event) {
-  dump('onsuccess\n');
-    mandreel_indexedDB.db = event.target.result;
-    	callback(true);
-
-  };
-  }
-  catch(e)
-  {
-	callback(false);
-  }
-
-}
-
-function mandreel_fs_init(callback, size_bytes, url_time)
-{
-
-	g_mandreel_timestamp_fs = 99999999999999;
-
-
-
-
-	var aux = null;
-	try	{ aux = webkitStorageInfo; } catch(err) { aux = null; }
-	if (aux == null)
-	{
-		//callback(false);
-
-		var time_request = new XMLHttpRequest();
-	time_request.open('GET',url_time);
-	time_request.onreadystatechange = function()
-	{
-		if (time_request.readyState==4)
-		{
-			if (time_request.status==200 || time_request.status==0)
-			{
-
-				if (time_request.responseText)
-				{
-					g_mandreel_timestamp_fs = parseFloat(time_request.responseText);
-					dump('mandreel_init_fs time ' + g_mandreel_timestamp_fs);
-				}
-			}
-
-			mandreel_indexedDB.init(callback);
-		}
-	}
-	time_request.send();
-
-
-		return;
-	}
-
-	webkitStorageInfo.requestQuota(
-		webkitStorageInfo.PERSISTENT ,   // or PERSISTENT
-		size_bytes,
-		function(bytes) {  dump('request quota succeed');},
-		function () { dump('request quota failed');} );
-
-
-//	g_mandreel_timestamp_fs =0;
-
-	var time_request = new XMLHttpRequest();
-	time_request.open('GET',url_time);
-	time_request.onreadystatechange = function()
-	{
-		if (time_request.readyState==4)
-		{
-			if (time_request.status==200 || time_request.status==0)
-			{
-
-				if (time_request.responseText)
-				{
-					g_mandreel_timestamp_fs = parseFloat(time_request.responseText);
-					dump('mandreel_init_fs time ' + g_mandreel_timestamp_fs);
-				}
-			}
-
-			var my_requestFileSystem  = Mandreel_window.requestFileSystem || Mandreel_window.webkitRequestFileSystem;
-
-			my_requestFileSystem(Mandreel_window.PERSISTENT, size_bytes,
-				function(result)
-				{
-					onMandreelQuotaOk(result);
-
-
-					if (callback)
-						Mandreel_setTimeout(callback, 100, true);
-				} , function(e) { MandreelFsErrorHandler(e); if (callback) callback(false); } );
-		}
-	}
-	time_request.send();
-}
-
-
-mandreel_indexedDB.load = function(file_name, callback)
-{
-	var db = mandreel_indexedDB.db;
-	var trans = db.transaction(["cache"]);
-	var store = trans.objectStore("cache");
-
-	var key = file_name;
-
-	 var getReq = store.get(key);
-	   getReq.onsuccess = function (ev) {
-			if (getReq.result)
-	{
-	dump('chanka ' + g_mandreel_timestamp_fs + ' ' + getReq.result.timeStamp + '\n');
-				if (getReq.result.timeStamp>=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<size;j++)
-	{
-		heapU8[g_addr_emit] = data;
-		g_addr_emit++;
-	}
-}
-
-function emit_string(v)
-{
-	var j;
-	var len = v.length;
-	var data;
-
-	for(j = 0; j < len; j++)
-	{
-		data = v.charCodeAt(j);
-
-		heapU8[g_addr_emit] = data;
-		g_addr_emit++;
-	}
-}
-
-
-
-
-
-var g_stack_pointer = Malloc(mandreel_stack_memory);
-
-function assert_unalign()
-{
-	dump("fatal error: unaligned memory access detected!!!!");
-	assert(false);
-}
-
-function _assert(sp)
-{
-	var p0 = heap32[sp>>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;i<mandreel_total_memory/4;i++)
-	{
-		heapU32[i] = 0;
-	}
-}
-
-function Malloc(bytes)
-{
-	if ( heap == undefined )
-	{
-		//initHeap();
-	}
-	var newOffset = heapNewPos;
-	// Always 32 bit aligned
-	heapNewPos += ((bytes + 3) & 0xfffffffc);
-
-	if (heapNewPos>mandreel_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<total;++i)
-	//{
-//		heapU8[ptr+i] = byteArray[i+offset];
-//	}
-
-
-	file_ids[file_id].offset+=total;
-
-	r_g0 = total/size;
-	//return total;
-  }
-
-  function mandreel_ftell(sp)
-  {
-  var file_id = heap32[sp>>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<data_len;++i)
-	{
-		heapU8[data_dst+i] = data[i];
-	}
-
-	r_g0 =  data_len;
-	return;
-
-}
-
-function mandreel_removels(sp)
- {
- var ptr_name_a = heap32[sp>>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<size;++i)
-{
-
-
-var tag = heap32[ptr];
-var ptr_id = heap32[ptr+1];
-
-__FUNCTION_TABLE__[(ptr_id)>>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<arguments.length;++i)
-	{
-		var type = arguments[i];
-
-		switch(type)
-		{
-			case 'int':
-				params[i-1] = heap32[(sp+offset)>>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<num_params*2+2;i+=2)
-	{
-		var type = arguments[i];
-
-		var size_arg = 0;
-		switch(type)
-		{
-			case 'int':
-				size_arg = 4;
-				break;
-			case 'float':
-				size_arg = 4;
-				break;
-			case 'string':
-				size_arg = 4;
-				size_arg += ((arguments[i+1].length + 4) & 0xfffffffc);
-				break;
-			case 'wstring':
-				size_arg = 4;
-				size_arg += ((arguments[i+1].length*2 + 4) & 0xfffffffc);
-				break;
-			default:
-				assert(false);
-		}
-
-		size_params += size_arg;
-	}
-
-	// stack always 8 byte aligned
-	size_params=((size_params+7)& 0xfffffff8);
-
-	var sp = 0;
-
-	if (i<(arguments.length))
-		sp = arguments[i];
-	else
-	{
-		assert(false,"MandreelInterCallFunction missing stack pointer paramenter");
-		//assert(g_mandreel_frame_locked == true);
-		//sp = g_stack_pointer+800*1024;
-	}
-
-	sp-=size_params;
-
-	var offset = 0;
-	var ptr_data = num_params*4+sp;
-    for (i=2;i<num_params*2+2;i+=2)
-	{
-		var type = arguments[i];
-
-		var size_arg = 0;
-		switch(type)
-		{
-			case 'int':
-				heap32[(sp+offset)>>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<num_params*2+2;i+=2)
-	{
-		var type = arguments[i];
-
-		var size_arg = 0;
-		switch(type)
-		{
-			case 'int':
-				size_arg = 4;
-				break;
-			case 'float':
-				size_arg = 4;
-				break;
-			case 'string':
-				size_arg = 4;
-				size_arg += ((arguments[i+1].length + 4) & 0xfffffffc);
-				break;
-			case 'wstring':
-				size_arg = 4;
-				size_arg += ((arguments[i+1].length*2 + 4) & 0xfffffffc);
-				break;
-			default:
-				assert(false);
-		}
-
-		size_params += size_arg;
-	}
-
-	// stack always 8 byte aligned
-	size_params=((size_params+7)& 0xfffffff8);
-
-	var sp = 0;
-
-	if (i<(arguments.length))
-		sp = arguments[i];
-	else
-	{
-		assert(false);
-		//assert(g_mandreel_frame_locked == true);
-		//sp = g_stack_pointer+800*1024;
-	}
-
-	sp-=size_params;
-
-	var offset = 0;
-	var ptr_data = num_params*4+sp;
-    for (i=2;i<num_params*2+2;i+=2)
-	{
-		var type = arguments[i];
-
-		var size_arg = 0;
-		switch(type)
-		{
-			case 'int':
-				heap32[(sp+offset)>>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<bytes.length; i++)
-     ascii += String.fromCharCode(bytes[i]);
-   var base64 = btoa(ascii);
-
-  if (/^\x89PNG/.test(ascii))
-    return 'data:image/png;base64,'+base64;
-  else
-    return 'data:image/jpeg;base64,'+base64;
-  }
-
- function mandreel_texture_async_fix_name(name)
-{
-	var ascii = '';
-
-	var j;
-	var len = name.length;
-
-
-	for(j = 0; j < len; j++)
-	{
-		var my_char = name[j];
-
-		if (my_char == '/')
-			my_char = '_';
-
-		ascii+=my_char;
-
-	}
-
-   return ascii;
-}
-
-
-
-function Mandreel_TextureAsync_Load(sp)
-{
-	var ptr_name = heap32[sp>>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<temp_list.length;++i)
-		{
-			var param = temp_list[i].param;
-			var func_name = temp_list[i].func_name;
-
-			var size = ((param.length + 1)+7)&0xFFFFFFF8;
-
-			var sp = g_stack_pointer+800*1024;
-
-			var str_ptr = sp - size;
-			fill_ptr_from_string(str_ptr,param);
-
-			sp = str_ptr - 4;
-			heap32[sp>>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<temp_list.length;++i)
-		{
-			var param = temp_list[i].param;
-			var func_name = temp_list[i].func_name;
-
-			Mandreel_window[func_name](param);
-
-		}
-	}
-}
-
-function mandreel_internal_isCanvas(sp)
-{
-	if ( mandreelAppPlatform == "canvas" )
-		r_g0 = 1;
-	else
-		r_g0 = 0;
-}
-
-function Mandreel_Device_SetFullScreen(sp)
-{
-	var enable = heap32[sp>>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<arrayName.length;i++ )
-     {
-        if(arrayName[i]==arrayElement)
-		{
-            arrayName.splice(i,1);
-			return;
-		}
-      }
-  }
-
-
- function mygetParameter(sp)
- {
-	var pname = heap32[sp>>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<max_ogl_id;++i)
-	{
-		array_ids_ogl_enable.push(i+1);
-	}
- }
-
- function myglReadPixels(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;
-  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<FatLines.length;++i )
-	{
-		var params = FatLines[i].split(',');
-		if ( params[0] == "audiodriver" )
-		{
-			var data = params[1];
-			data = data.replace('\r','');
-			if ( data == "webaudio" )
-				webAudioDataAvailable = true;
-			else if ( data == "flash" )
-				flashAudioDataAvailable = true;
-			else if ( data == "flashlite" )
-				flashLiteAudioDataAvailable = true;
-			else if ( data == "audiotag" )
-				audiotagsDataAvailable = true;
-		}
-	}
-
-
-	// Init audio driver
-	{
-		// webaudio
-		if ( webAudioDataAvailable && MandreelAudioDriver == "null" )
-		{
-			try	{ webAudioContext = new webkitAudioContext(); } catch(err) { webAudioContext = 0; }
-			if ( webAudioContext )
-			{
-				wa_MainAudioDriver();
-				MandreelAudioDriver = "webAudio";
-			}
-		}
-		// flash
-		if ( flashAudioDataAvailable && MandreelAudioDriver == "null" )
-		{
-			MandreelAudioDriver = "flash";
-			if ( audioServer == null )
-			{
-				audioServer = "";
-				audioUrl = "";
-			}
-			fl_MainAudioDriver(audioServer,audioUrl);
-		}
-		// flashlite
-		if ( flashLiteAudioDataAvailable && MandreelAudioDriver == "null" )
-		{
-			MandreelAudioDriver = "flashlite";
-			mandreel_flashaudio_lite = true;
-			fl_MainAudioDriver("","");
-		}
-		// audiotags
-		if ( audiotagsDataAvailable && MandreelAudioDriver == "null" )
-		{
-			MandreelAudioDriver = "audiotag";
-			at_MainAudioDriver();
-		}
-		// null
-		if ( MandreelAudioDriver == "null" )
-		{
-			null_MainAudioDriver();
-		}
-	}
-	dump("AudioDriver ("+MandreelAudioDriver+")");
-}
-
-function mandreel_audio_isLogEnabled(sp)
-{
-	r_g0 = 0;
-}
-
-function _mandreel_audio_useMusicFunctions(sp)
-{
-	r_g0 = 0;
-}
-
-function MandreelAudioStarted()
-{
-	setTimeout(mandreel_audio_startedFunction, 10);
-}
-
-
-function mandreel_audio_getAudioDriverName(sp)
-{
-	var name_ptr = heap32[sp>>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<size;++i)
-		{
-			l[i+offset2] = heapFloat[offset+(i*2)];
-			l2[i+offset2] = heapFloat[offset+(i*2)+1];
-		}*/
-		var i = 0;
-		var j = 0;
-		while ( i < size )
-		{
-			l[j+offset2] = heapFloat[offset+((i|0)*2)];
-			l2[j+offset2] = heapFloat[offset+((i|0)*2)+1];
-			i += inc;
-			j++;
-		}
-
-		//offset2 += n2*4;
-		//n -= n2*4;
-		offset2 += j;
-		n -= j;
-	}
-}
-
-function mandreel_Audio_requestSoundData(soundData)
-{
-	var n = soundData.length/2;
-	var offset2 = 0;
-	while ( n > 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<size; i++)
-		  soundData[i+offset2] = heapFloat[offset+i];*/
-		offset2 += n2*2;
-		n -= n2;
-	}
- }
-
-var __Mandreel_Audio_CreateStream_created = false;
-function Mandreel_Audio_CreateStream(sp)
-{
-	if ( !__Mandreel_Audio_CreateStream_created )
-	{
-		if (webAudioContext)
-		{
-			mandreel_audio_stream_func_ptr = heap32[sp>>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<FatLines.length;++i )
-	{
-		var params = FatLines[i].replace('\r','').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_flashaudiolite_createBuffer(params[1]);
-			}
-		}
-	}
-	setTimeout("mandreel_flashlite_checkPreloadFinished()", 10);
-}
-
-function flashReady()
-{
-	fl_map_mandreel_audio_functions();
-	setTimeout("mandreel_flashlite_startPreload()",10);
-}
-
-function null_mandreel_audio(sp)
-{
-	r_g0 = 0;
-}
-
-function null_MainAudioDriver()
-{
-	mandreel_audio_init = null_mandreel_audio;
-	mandreel_audio_end = null_mandreel_audio;
-	mandreel_audio_update = null_mandreel_audio;
-	mandreel_audio_createBuffer = null_mandreel_audio;
-	mandreel_audio_playChannel = null_mandreel_audio;
-	mandreel_audio_stopChannel = null_mandreel_audio;
-	mandreel_audio_setChannelVolume = null_mandreel_audio;
-	mandreel_audio_setChannelPan = null_mandreel_audio;
-	mandreel_audio_setChannelPitch = null_mandreel_audio;
-	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;
-	setTimeout("MandreelAudioStarted()", 10);
-}
-function at_mandreel_audio_init(sp)
-{
-}
-
-function at_mandreel_audio_end(sp)
-{
-}
-
-function at_mandreel_audio_update(sp)
-{
-	for ( i = 0 ; i < 32 ; ++i )
-	{
-		var end = maudioChannelEnd[i];
-		if ( end != null )
-		{
-			var sound = maudiotagChannels[i];
-			if ( sound != null )
-			{
-				if ( sound.currentTime > 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<bufferdata.length; i++)
-		ascii += String.fromCharCode(bufferdata[i]);
-	var base64 = btoa(ascii);
-	audiotagAudioSprite = "data:audio/"+atype+";base64," + base64;
-
-	if ( webAudioPreloadAsync )
-	{
-		dump("started preloading audio files async");
-		setTimeout("mandreel_webAudio_preloadNextAudioFile()",10);
-	}
-
-	audiotagCreateChannel(0);
-}
-
-function audiotagCreateChannel(index)
-{
-	console.log("audiotagCreateChannel "+index);
-	var sound = new Audio();
-	sound.addEventListener("canplaythrough",function()
-	{
-		if ( maudiotagChannelsLoaded[index] == null )
-		{
-			maudiotagChannelsLoaded[index] = sound;
-			maudiotagAvailableChannels.push(sound);
-			console.log("************** loaded channel "+index);
-			if ( index < 8 )
-				setTimeout("audiotagCreateChannel("+index+"+1)", 10);
-		}
-	}, false);
-	sound.addEventListener("error",function()
-	{
-		console.log("************** error loading channel "+index);
-	}, false);
-	//sound.src = "data:audio/mp3;base64,//uQxAAAAAAAAAAAAAAAAAAAAAAAWGluZwAAAA8AAABFAAA0igAHDBERFhsbHyIiJioqLTE1NTk8PEBEREpPT1JWWlpeYmJmaWltcXF1eXl8gISEh4yMj5OTl5qanqGlpamsrK+ysra5ub3AwMTHysrN0NDU19fa3t7h5Ofn6+7u8vX1+fv7/f8AAAA5TEFNRTMuOThyAqUAAAAALjQAABRAJAXKQgAAQAAANIqLReuqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//uAxAAACgjJYRQhAAN1ru+3N6ADNAEAASM2QkOAABKvqQjEIQjSE+pyEJ/5znoc5znP//QgAAEachCN85/oQDB9QIAg8oCEHAQcXfKBjEAIS4IAgclAQBA5BAMZQEHfgmD4fwf5HQ6HQ6HY7HQ7GQrDQPvZToNx37zcYsbgZnqEkTWnZsm+DxpKLDUMfs3A4zHKdzz8+wAWXmmL1KaHf35z0oOjnISA5pYpJmW9w/woDIDpmTxpDRYGwmDH/rUv97+xaWZ9eZkqAiZl+xsj8pszk1ZtY73/+UhDNvTHmxgMROhU0DBzwRq/MQ1Jbn///l4FEGHFFYIElBkORAUcAEZYRjfrSuiv1rWf6/e///Z8mnLXAgFiMOwakw0OepsaDVS5RdrxqT///////8hys3t58nrFS3lWt6/uXec73+46u0oA4ZEXCYUYY+p6C4/B89FZVEYXJqaW+eGCSYJfJOnpq7WadTtuzhoUjsP/+2DEFQOPrW1oPYMAAecorQmDIaE0qGThDsZRhGCCZyF03ZkXKRPVQEMTdeftOw84ncZ4XR/ZoO3JoyPFVtHePkemlrf5f740VGbMspMynd2NrG/h8//u58dsf2jWLnygUiASkXwFfQAw7MEGiSdlDDj7wJCnkpYu+0iqRU2SIo3RAkznFnYGqMYXMtXGhsYWLKMZzg4NSb1Jepcx7ohTx6PUlnSLHuY4vRK3VtWOymoix0TSesWjbseTdsYnvHf0v/Ks8NI0+O+Ge/Z4xkpZ/1rQS4QMHvMPSieYYfONUp/9VQBOCRaIS9okqeKzDCwz2wA0pok7D0mlEAxaelsP1uRm4hT/+2DEEQOQ5XtkLCRz2h00bImEjjlpio6TEqIL4ikSEeJRY1GhlJzTySOlrtqTXhIeh5vmvJqpiXFikoyd4tXBbGHzyo6hae6OHIxuoRjkJWu+okBoZoEDZvFrFN5LiAyxW9TEnnbyz/H/erAb3Ok2y9BVcOnGOv1kzQEgZxr0spQBWdNNJtvXQak+7mL2yf92oalcRhf0oCLJoWidC+awoNrOuFDy2UYNkk+X1a3VBuuTU604pNtS082afizat2f7nunbfdAnawhbPRmEEk5BKECSI7QPXcneTeHfYcEeUrhB0ReamhSlihEAA2DNS+LCVT8zyyPk7m1ml9iLJT5RfWoABPT/+2DEAYAO0V9oTBhvSckr7ejzDaFQT7CIuu6UuevrnRqQWnrosaeHIHIghzTLiApnBWKBykEGRpeaek5WfbQUGm4HvmEc0Z1cNji/jZ03yrg3dGpBRMPChoDGxkHJHP7VZTvlNkkJWY4SOeaqpKaEcrGeaOZFjmOK2LrMLo3/rolzs58SeHt/wAEwAASk5VsmKoQpfyl60V7xyRN9YRKhDS5djhmMfOuYFuxqX1zVE5QQourDCCMeGIHAIIUbK7yOTsRCQZHMruhiQ6ubRh3gIpxYGwfA+/SXh1Viy23s9cxzoKluDQyU+GSomumKPZMdvcKttEc5lxwsFgJAEElytfKhnMr/+2DEBQANdX9u7CRnyay0L7TDDHyX4Oe3pdCccMm/2jMqn6UihdVNPrGTu/Bj9Q3PQETiWC9S8qqOeSsLMp8BQQRIyZGPw2Ps9eVdSt+n+adikmCZSatTjtnZVhEcMzIoiCjdUztJftuGf+IcKZ/6jZjP+wMK6AwjI62203Lw5K7jYUcvoY0QuV6WVTGpKZEs2rKAmBHBArQ8zhvcKbPnoh/+ikScXJArWnwz0dRH02ADU83GEKXl9LQihFi4CPca2wmlvSyLvlVzdBi6p7pDrF7FQmbwjrv8MptOSnNYpWYKAQQQS3MVRtHIskSAIxmUqsMDbMzsMz+Ni4Ffzvr5Q9yTSQj/+0DEEYAKzMty55higVaSr3RgjgSW/8JJAbI8zlbL/t2+fNvGY4PAb3QOFQvSZoLuDsswgQShTAEXHWaY4JEgipiC1WKKOXUAMGOMtMpJOa0oG2pD4UpRq0awhk4dx07DMuCOEpePVSlwuybfziMR1YtHAB8NLRSswL0EVQk9rzoiPCrQbW4qJDYFc6RPsaskKrp1KS90BHdklWipyRV/jqVF0xGGVFm2s3wcwJl9iheX1CGxlP/7QMQMAAqVAYEklG6xVp4syYMNoFoBztJLiJErk7s7/ft/L6IUjCstJlNDOLTdacOt8LO8N/PmVLTiVF8UbwKJnIRTZHo6OsibDzCcv5F7U1AADT5grCxWpvZNskfeQ3o/g3KD5kMyRY7D1zEBZmvbnG7attnJEJGyJAw8pOUUioM3JxtTvZQhc/Sp7L9/Tzm/5+qHPmMKA6WFTryqnsjHP3SP6HWFqgIAAJJSTcH0nhFugclK//tAxAcBCsyvdUWEsNlDDO1M8wzgFJ121UStsnY5UgwO1jgVbsqChv1zojMpnddXBB27nidTTezt9utjvF2+1xUPI/Ey0X9uwe7XVbfR//+tI+W1Jwmcz9Qs/3b/gABKdodQEmZN1hwSr4WFFECvsmmpI4e5kjZKXVCXwRegXNTUxg4dDjow9OCc3JvDgsMvc5wGhRx59hDPA/QUNrr2R7C9am9r3ukxrJGc7Kal1QAAVJQIJCz/+1DEA4OKwPVoZ6RowUoWbIWGGOqbqsvVUvK6OV7AWklGA+pJ7Gw4ca1RiBPhqRr2HF4D8OjfMtXi5wtOwoXW1rfSEe+r2FCXH82z8zbufoKMwSD5wMGb6nuVm6fP3veVEYrpOCSJeL3jTiPov2HAJG0MZ0b1+4SW3YGG/HkPnllc8HPrdH/9CoZM1r6snzmMxGn6WfXz7ua/X/p9JtRzBsA0rFiibYj1jRSHKg0LOGxUkzv/+PUAAaCx0Aa2HcdVkRWwH1qaQeNn33jQOkWL//tAxAyACrRrZEwwxRFULG2o9JQowvUkzUH+pKox7BX+mE4aMztJ5bLGCZsBgpkiCyRSLBsXDzhAVJLP8zWOEbC735yposneBlNZ5LLMkvt4oAECgJJbu59jTGmHsHaGFNsY/kD7qQjkS5Gs6CBju7XoJK5N3I+7I9OyWVevVHnuOyt1S7dEWR1f+nCLyvIrIdWtQyk0zNejsiWIm2nv0sUa5tj/R1IAEAykii7wAQbhWMVBhxz/+0DEB4AKiG1xRhkAIVcULqTEDGaoGHbV4Xj9pl06dhBFNDriPVZrtHz0y7DhFQmfLAYTGL0HQyhOswFXtn4uJA0TFjbU3vCWHzJNQ6H16rRhY0SNUMvu8KuBRVYWUXCpwnvmKF2V6OCa+4xBi0yfQTXPjLrjfR0XhWBi97JhmvImhlbC3oFngKAZUnElyw0xaUOlzDQQNKBQEQKJGr4dULSJux1q3SRR5mjQH5vA6AEVG2q3I//7UMQDAAqw7YejDE/xTKzvKICLFmnKCn338dXIS04/UQUr/QREYmhCdS0v0iFGhKVEZ56wzPlYRdGK2OxfeuP+zpfdW22X7AwcQH4kFEGy4pdFRj1vNAYRUsESwpLqeBfSnyiAgeqKSJBUBUChJdReku5OStSYuNo3r4iXjboq+YVCuxmhyugjzIlbR6QrpXYXZidV9tqm7bWshCyl2O0zOo+/W/6nptP/7vkzAxrGqYAj+moJOJUFyRySySSOTP0NVxWTey+N2SzvTNz0b8b/+0DEDAAKpPWLowR4cVYiLA2DCbBMcCju992OtVI9P6eYSAVCsPDMOS5/qYpE9HLWGXKebH+uZ/qVBgDDRMNeAQyHBVr7t5hjP6QggRIZ7KcSgAEByF7QCVC1nTXajAXjiGcennLpq54XiiEz19DZx1Plm59L+9rmLfLsxPH7KyXRLuw70Itl/VV2X2foqUR/7XMDU2bUrM3EkDIaOYSKBpTP9ZV//1oAkoCCii5hbhGVWlD7qv/7QMQHAAp1NWtHmEbhOxEsTYSIcHonOiRI/atyhLVmNyqKuPt1Oz76Gal6mWZLiyqnoyNq6Kyu6m1WNuQtqzU6cHFHHKrWDqOjtVddjI/fcLaKfwPFTlN1P1AAFJ2gZJIAs3QJCIrgqJmVig/PNUabt5iyI7shRZgA2H7nc3WVv28thQLlVHCwcuCwFpIhfBNpEyTFVwKbJGzYGkYJM7aECVhL7+o+v/1VAQWYVUbGsl033UaF//tQxAYAixlpcSeMR/FeoexNgwkoEPUwTQlyR7yAARPpSHdyD7JYvBIX0z5UI4YgUFsxWYLzbIiaWa97AyuqJ3S3MO0EIaRilYMioZz1pQhL2mBIyKqshdPulW7ikY3q9aU7uD6oiLejkTgeBpfEaUzIuBnKdXuupcw1NdVCWDPaqb4oh20tXdlkZzXn3dpqsWqrWnroR3vdt7pYyoU45TujlTUUbFaALO3tGLpHzqYmKHCZ87y+yJ3KFD+tJtNOUPnhqUpmVk5ZLRt1j3VhEf/7UMQLAA0JaXlGFG8xoy2t6PMVfk0plEVrRyKjwmm6mKsc0HjnlzGO26EwoVnz0+DmCE21DBxd288LT+w9kdX5V6sDyc2ACBDmp5a1PPdkKhxnyHT73kWrcrrRTigOCjXE4vPR7YeAAWcpIkJQiWt3EpIu7t+a4ce3hRyEvn5xl2TU3YlPLMumKKmM1+Ue06Z3pPGLRhA97OqlEzOVmuwwY8lkbdGPs8utGrUYjkKgwxzOUJHVjiSNrVyvInZEsW3TTVdZGDxRxRRiGyQ5nBv/+2DEAAAOXT9vRiTB8aAs65z0jSgUKtyU0inA/MQ3azBbVKY6QFrPSI1gRdH+4JpZLwkcrK5e58ry6+5Vr35Vq3KoYZRwHtHxzrhGj7mKqzQJrO940WkVMc7wb1LfZz5t6/QzLHPnnzkv7J539vpaVN0Gd0LnaCNB8AsJhYRpvDoSZMpx/QwaAEApN3csIrwaRwHqziRqYl5/MmxEGjceGpD8J3rAwG663CuwpeQ6RhwitkVBK0D75hB7BQOuctyvacP4ouiEi0WZ5E3wZq3ND3NqUUgLRdqvod6DM6X+MnV+UtmIz//+TL+wh7tDfyUAoEKWgEAlAn5a9EkjnLaTPoQFZqr/+2DECoMM+WlcbBkJ4bUiak2UjbiCpVzs2UqxZsbtdrKOUzO+3TPbip6yaP+rhdbH1RFT3E/XeQ6FqhHE33jY+4Z/nnhuP6oIlea+tZaraCO6uri7ipifRUSe0/+q5hv3slTrEfmPoAAALsILTzDf5hsOOwFh2FCEZ6cIqrO0+OJNACEo3Fd0mAMhMja9FGVyBAZ65P6pJN+yykaj53njcXnoUlJIOKPkOExjtkvDIKHVGQ5iz8wyLXaedY5NjHJzhqxgnJWlE6yTnZFI0PVZQHvDKRUJpWOOuSSOWnFDZ9CgfJfVaB+mbSzG9zPSRrNQ+GHqlRLcoDRCoUBq2RX6Zcc2hsf/+0DEGAAMVTF/pIzVsYImq52EmGSh3MGANrxh2JPvBC5sZAlp6+a3yRAZ6gyVeI/u81hNX2Zu+mtTb+UtIbS0qwDhpm63/0AhCJJLgCl0Dk9lNxQXBGzJl1CO06ZcjHWy2XTa2VlRUlpI3906cx2aNZo1859dr/s4hWpy7crXzMb7O3219Zvl3mu2/czfv3t9IApxJKW8k/md5RTZ3/fuzu7dmXgdi3WqCcdktstsku1KCrwzUf/7UMQGgAsVN4WjGGPxXyautGGb1qsjAsRbKxruCj80UsQ2vLwAE/ChFSsEHY/nwb/woievMiDEf6u9p0s+nhXRxZF95k2ZmQAGYJu+Yy0hieg3lP+lsXyAhlELzHYBuKglOJuNNtJOAAgBJ0FqQBBGEZnnUgkZvVdmZ/mtHP3ePxvL1SX78ZTtvaf8ycvXiw+/H/w3/LfI/py9K00o5K38yhcchUr6XtJVvdxWdzlp9yZ1qDAcTfPVAABYlJJShiJO2M+XUsVH7VyKNTqmLbb/+0DEC4AKmRNjR5ip0Vam7ajDDD5SgUhRxz0rlIvk/e6R6E0Uotm86XdXUVI+5sg5LyjVsm1lP9dP++owHGkGM7KJIgprGuIsYdQGQUEQfO7IBBFbtJIoqAVBKAVHxBsmxHR6qtFK1b4MXJFbQDQ4LZHyK7RQhAsvzjn+vST6XmbFHVAcQX2WTIR1GUPI3/uxGRuC9Vzpsdmfhy/nSAz6P0yE1zz+gWJKACQSU7gfMF8E82sstv/7UMQGgAtlEVbsJGlBYCet6PQNvlNDDKiT/KlFBJExEihdVd9MTRpLhH6s87wdkbKQlM28sHkacu3mfDiFOajGakZ+QRzMicfZgRlkSqeZBBZg0U/VmJ/cGakUnlh2BHr9d4qNXpppJQEUlnCE0XgS3vnsSV6F130dxidKq6RmM6LPVbt44+5OmbRZyQpXSFOTN+b7GeVcly3kM7WwWiAIQCEjFHRiL9vbuXDlrfSbv/8hqrsARYQ3jxFVBGFtqZsCJVrjiaHnOoMt+qtrLzP/+0DECgALCTNpJ5ir8V+mbGTxlnble8QU2f4Dx3ELd6Qc/zfelQ7X1HNVCIZTrLoitiREMUhSse7K2VRIyFKrbVJlERwSDgyxkYcVF0Exd5MpNUezRV7WeggAVmVRwFcBuQ9qvZdWcrSeDNet64p6b+GsvQK4CiCzB61ygzo1wfPW3gcfy5FCCj3DQw9PN/KjE9LWPmr4ilvYy37gdms+dlTRDKjd4qisrxgfEods5gwqATVZVf/7UMQCAArVM2MnjQ/xR6KspJMM/0oHAjWLLFAQ20HWojbW+aM8U4RHBRBGuCYEhYW1KqeU8YjpXyrZd65FISloCTdGGNn/d/2n/bXPd3Wk/9nBUPnHDKWDR8XbFDCDGlb59o+IgepAASLNSliMDI+GG1SaZ2gAcLQrXXievH5yMsnu3Ik50kkcUhMXghfnIcMGe28D9HPXuwUjp51Ppl/H7x34+Ween+4IUB5tmcBXmzCCbmuMvfgDujAEaSSSKgMwZRKOosc1VCDiRTVCTjP/+0DECwAKuTVnR6RgcWAmbSjDIC9RxP1zFDgLtAyubnkky6n32yLh1xYcJVBVZQyFL0EwY3POBCBJMs+VEO+6f+oci9uERfeBf//44B6ow4lBHxWwCZaym0jICsLCgVacE7XsCYuylheYelWUq9cbGk+qio0bo9lBmYhm5TlMslXcgek3umWtw1ObxdIiXGvf2Puf+fib+ix4S72eNLT4vYWENmGTeMbjn/KlmgRVWKlbAZJuQP/7UMQEgArJNWEnjLPxXKYtKMMgH4s8efDDaDBg/5ixrX3bP1BFh1WwsL4cPy4hkNbwNLh4Vy+wnoCCQ7nTgLpH1FJTM+KGMlK0cZmHh5TCn2BwdxhdnLvuoTRVWmrN1MEqgVdrTbSTgFQzLhDQzlUli4YLjWSnWoxJvUnDi8VrjersRj7xm2Zpxc8jRNb90ww+/bh7FemTmSF4/vmuKdJitV47iObYqCw4SXqma4t5qm2nle4qOcjTdQBpraSSMgFhLI9fbfq/FWNjHv2O/bb/+0DECwAKkTVpRgjT8VQia6WHoAauT4wqpQEAO4x0IZnM6F2qrVfqVvorC1VqMEAlu7FCkIrU6/Oqt9CN8yQwySviU0aXkywrCkZdn3w8t5pHEIABAJWUkHlh0ClYwQs0aZAhjXH3Ewhsz3KFy8JAioUZcNNRjBl38ySc+l3i8U1Q4+vadnehptJc8TpMa8Tj7rhc2u/2u655JHEsrO9+PnsZiLRIXt6VBumtJtJOApdJWJR7B//7QMQGgApFNWdHmGf5YaItNJMh3yRBqMIEkn2PnrJ+pTdQ/kHnUBnJoUsaIECnzp3rvHZKWc1Wgm35Dxh8i/sLTgYh4SkV6ZEWTZOTNsRLfOi0+z8iks1Bc4BDSacabbUgBvAy9tvbJQEtFJrkrgzsa7wogFI10HGHWhX35BtPMztJnPFJvf42YLJ6uYiwl1Xn9rf+2kiedZNqI7/q1rlFCAOj1MRJmkdLnERET+n7nYClAIQw//tQxAGCCsD3UqwlAvFNompFgyE2ok/uTNcYJjqYVQWKUYoiUHAJixBU35R60nOVU30P6IHIsJ3BL1xcx47+3gsoypi+zhWuElBWB9ot/xVFNh04/ZoX04uqaBMcbJsiMDjWHz4nn+k1jVAoqXJUmxSUPnGb0D0hqgfHWTnG1oleTupqraymueBuVr7mrTom/Ymvvs9z1n61luazDhU8jimhKd+LgiKGb19wWzdWNCi1T1Pc6Q0IHp1vXWoAIKck/BvmgTNb0aTrd5pESpabkf/7QMQKAApo8U7sjK2BU6KsaMGifloZiaHCgT40DAzGcKDp4xBcol7HrcSuseyahzshlcBrysSgk2r1KKnKhJ2u+6uqKvsZeqACB1g6FUHRUMO+6oEar0201GAaAeP2DJ+1aZD6w29u+y78e05Irjw1fx+B2IwQAEKbwGLvKXc6TeKIfh2FNaoM5g2MC3V5GbN4w5Bsv5y39KAEFxdDu1jPT5xKLO8gW8fVAAAJJQQEMtWdnL9W//tAxAYCCpUVUS0gT/ldnmkNthjZIlUnaeG7nI5LsqtWtaHI+6DYc2ySpJaXWuKp2Fj2xxtVrXMqRNXTKUFzChi2W5QdvBNVM9u115kHBvt2RnuhQoN0ehiP9XBq2AknMAYpNGTEqmjkNhSShhMYrAdLR8E3NmSAtLrTvKM3GY9RIVW19f2lnd4c4gpnfv/A3/L1zGm+74/Lbdm7ZbTN79nG/azzqr78/q6be+BBRaFXvv/ACgD/+1DEAIIKrRVZLCTBsVqiqI2jIeAFbqqcBCVjQkcjOrIiOScUCilTHDohtN0QHOJ+cwxXpNe7EMY9xc9Sc43/ukd+us1WKhnk6GFbPxRp7z2f8xzJ+v91Ctjv/9rP7s0lBu/PLS396xlBFpOgAoAddoMDpM/TdKZUxMAqxl6YnZduGYxGbPL7GIhQ47jnxMUDZJJVXkWhM1NLosebvPCdF078LF32K91tAiLEJxt7dVCr8f/dzU/QUmu+P26+6NUFEN4AU0OFgLmoSXiZTNNT//tAxAgACqEVQmykq4Ffoquo8yG2UUnmkTQFnx2QaBBJEbUJmF0ibG9QwWSWr7Tr6WK7YwQYzr2FbFdHRbI/oPLIx0LFipXk6IVFf0xY7rwUejPJLlalxx0qAC6tONtMA5SYqCDSXMeDqFBRhbmkxCzao7Hu55svitIPsIq6ZxaBo8u9MHB578tRZHtDQYXI2XurwANttRRimz5DwTd28ZNK1pH31stKOMVVuV+av9hhsCSTJwD/+1DEAgAKwPlEbI0zyV2f6eWRmX/3+N2lSKRzBZIxd321pZRXfu1D9apailmks5b1ShnSqzwItoZCqAcOkh0UPJ/rqW/Pift8AjypDgJidTe2ijk0HKGhF2lPIgYIbfrE5Fl5r0H7ABQYWZgNqMQmwRInJlfYjFpdHLRAgMGESxPSDOihxuNClBk1M6a5Wiv69nlsPaWZZSMI1tO/hDwRgoJlx1MiRnah8yuv3jpx9ztWPJdDH1v2NqLGcDVklQAFeKTSUAMoEoHOjJwgifjN//tAxAiCCp0VV0wZA/lsImgNpiD1oGOg0/5u0NSk4bGfKww+44Ni2Ksme+W+T7i5JO9pOg85ut9omqW4qlTrv5RvkbWPt1+EU6Y0lh5kWlprCXeciBE0vEQBRKgB6F4CviUJWpe6kVBXEDR85N2TZEceHjZFRttt67HVe/zzBsUlaKQMqZhpqBG6MiZGWfV1DzY6n2jqTLRZmLV6mLpKn7i4F6rRuJeVjrMBcnKz8c/c48dMABD/+1DEAQAK+QFPLCTF+U6WZ02zDdgcqqwI3s0Ij3oIkDBjS6NpSSuaS1s8q2lhORoZPl/P1ZJrhqan8tZi8ufn/W37aUfasyHkvkNvaxsZU5jatqnuVS2SQxf/3rjtsoCzHp75cwgqmyuncAJUlAOKNzFCoWTBZaRUL/MUjCBsanoadBypuanXHJpjUjGBRRJZp0ZBROVV+tRgYVS9YnMuNIXzNhA08paZkJrwhQuljJgJPWKB4fjxWJRCE+utFQAirKB3rFoigBi72KKtfZpE//tAxAiCChjVQsykafFTFeaNt40xLD4th43M00oYihvyUQvarZHVz1Q4VajV5XPMwiwh/1gslMJgzDoXcF0HTZDhsENvLXfDJwUYxriUDmT5l/RYSABlwAOYmQqkmBg4GNAsGp5Bgo3QLBqbxdyUhij+cj9UROV2wQ2PbDdhIY/jYi0S3g3gmYvajI0KeN+Dm15fh5BFRSVc63fIgGPuLKHZalYCO6mdoOUAILbsABu5RnOhd5T/+0DEBgIJhL8+7TBnUVgWZk3MoDjJn9di0NpwKnBWE84SXWHyQ/r72XO0HAXmVfhAjjbmAggFVjHMoS4ARmJQ4Rm+X4mHvMcSEQTscUEcB9CEOsI0AF3YAGXLeYcP52RiSCNQGRECSOsuUOas7SmqlzPGav/BXXjik+H+HIKbD2Q9VVFCBAFcY8NjM27S6Pvs2lrs3i0uFSLh+1Oi/VZpFGNMrBLOZ5RcyMQqACdAAOmWPPlOwv/7QMQFAgpssyxtMG8JUZhmHaSOSPMwXJrgiDExM0J0wYIkApfpETKRTCV9p0QOAVUWBKsHIlkAwQCGY3jJ6gqwwRJfznXamZZmAlb7qh3yI8ODfriPk+o2F2CpfH4BALnoAPx+OmzMszX0HKhpiYQUBh7E2QL8V63JcixJlH51HfizXX1tU08o4IoH1E4KKH07z2Kkjlc4cOHVIAcpul38j/3IqRhgZiDCQviBnPQdOu+mADmo//tAxAGCCmSzLm2kbsE1GGddphiyAMZZDhbFkgOPlPpZJzDQOu0RgaBbWW5l7kFFTKONniRoiiekINBkxLRcsHyx1HKANVnEIcHfUU5d6WvmAw4ZvtkVzLWmwURB3MUeeqxM+7SUFOWAA3bs9AIt4BQLIlvC4Mi2VlDrZILKmR+VG4jX1qR5C0dB2pdFVpQva76xTvT9Cu9osfq8qYb0yezuu/uMdNinvnx8udsDwI+zxNUFXfD/+0DEAYMJYLMybbBswUSX5c22DagAFyBpY+mWrxhZaVc6ETFGl08UXKwCYYXjEVhXYrvfEdI/id4YQVhMEHvcEdRfAm6eCN2EthmzVlVKtuh+OUXYMLGGsKzUYq0BS+AA/0vNjNTLWJLwaAEqgEDEwHIC9kCOShyQUYkOQVjiOyYyJ1CbQpQYdoncXQyzfupf2VOnQ5Hgx5m0W0TGX+SyGvqpEj0gMPbacMEQdRQqBU/AAPecDf/7QMQDgwoIwS5tsG1JNhdljbYJ4WiYwJECDkEBSJAOHZMttPttX7Z7DLExSAIceNVzBW7YTrMNFKL22U97QPxLJYctbHIwNkpTw5fDaaBw1BG9qDJoRIIYkdVqQTFBUmAAOzhykiM1Lh5ISgSHMTCQMJpPrdZ1D69m8h2EqOvuO4LvSSbpROIqb2IH4Ngeu3W9KJPwiAnuw6GBBUaQtjPJs6tXfOyQdkoC4lIG8AOU/jTEI5IN//tAxAUDCTCVLE2kbxk2j6TNzCRxKqHHkeUBay2JJBvczBWyIpiQKpGLBkhLmQ8bgHxaC62xOroEcYnmviTdvunWHvSygnmXowvYGZxUAmga3cu/MAOQAA4KxTFjMEjSCicisanG1Js66oWOytu8BJ7I4v5FmgtycZXk5YoOCA3bQoPitEmeapQobr0+v9qPdv+1eVFpOqTkquvtbv31+GOu1QCnAADtRVMUOUzcBDI44AZZm8r/+zDECYIKJHckbmUDyRwVpx2mGN9QESCJIGKcVSwiBToIjZpcCF7CaVqMxTxeQp2ALALFKeEoaB4RRhiBid24ZS+dPefJzydMzFU++nhJxJP+iayXGwADllB5qRG1RJArgXyvwWGK59GkQHUxMTMLhcJsZUastOC/Tf/4s8cQ001DMzBIXkogTl+E61/M5qcan2y/JsyOWMajKgD/+zDEAIBISIVLrCTH+QuP5c28GC0BDE3JdaAATILYttbu1srFrEJrscMAWhxKoTZ6cqSVbGSSCjdn2k2uSwhFVmsjjGTMTeBliVv9gkXAGRMu1f/Lg4KWnLoIk1gtAsFgyVygwUQ6bM4/FKZ1m4iAgMAgUwMVJEmmz6xfMJM3ZF+Ufz3m1WZDybpeWMT4j2+u+OvuxmLvml1VADj/+0DEAQMI/FEibmUhyVETY83cIHnAANoYoylIgxU63lOmfm0wNcBQwAnJoLBlvGKKDOe5S75toLYZlsoBgFAkaKG0S9KKyRvdqMOhesadwNNJthPrUPvR3922AZEAAY5TaCEFM6CjMQw3AwBBhENOEueONAUltI1AYScTDK7J3oYQ0V3nQ3A6nIfBwHAYCEVD84MOUNCsSNg/Raq49bFSGqWds2aeqWDqgY8VDsz9qgLAA2jh4//7QMQDAwnsfxxO6MXJMI/kDcygeDgV0zfBUeGsMBcwpC44zYUBBmUVLNuJKxoQoKgSi7DmR3ptX7sOVHKdmKkJa3sfukVjao3gZRmsDPNRmsV/pB87MX8nkRV03pugKRgAH1h2ZLFA0vjBIdHlhFSxtEcwBEP23ayrVHVBGnMrhiTtdl9PFZTkqqCKFHiQaOKIIpBg5e9jpfqHheIH2xrHgcYcAgrgvrVc+gAAgSYnLGAAB4mY//swxAWACLCHO6ywxfkbjuSNthkZg0ZUi97wVRnpCHOJhJEh1drR1ynUKpEZ0Zl140f8MpMZhsyhplPZ6NuMXemWbckcNLwSazA8CH69/6Be1AANwLD9kAvAJAqw6dKV6XaaiM4KGYDxOHFoNDcsCGWF5E4EJI6CXtwmNnyQr8xXyMmMWNZ1mI82VXLka2IqQhbfsfvSlQuQA8k7//tAxAKDCaRrGE5lg4k2kONJ3SQ4xLxGoBOZ8AI6CZkJtnCZ5MSPIMvSLByAqQgpfjTwqqwKxNzgUXLScHpmc8XmUXv+xp+/l4Gf5qGN263hpQHkRj5VH7/39f79g/ABz2yxhiHJs+pqDCNqS4BDmRIN+VQMaXOgLR1EIB4FkIfylMpl73guFQRA8M4SkM3EkoQ8Qr1s+3ubl2xcPCoyq8l3txvDqXhQc+mpACEs0AAeSDoGyJn/+0DEBYJI+IUi7jzHaSuQ4oncsGiMTCMQoDkRS25fIkQGA/TkGw8W1EX9HM7KkJGDuJ0kbK1AkXn16CFo28ckVHdu3vpQlGOUed6Wa9PbLudsHT2FWzSQFzNUCAMCxzan+4YQqRyZQJNRdWQMGkwBeBR1RB0SUIo4llgXiITxgOKeGB012Djjj5621dg/tr0GW3bUm+1tm45acStaAGpdGAAaxfERmd0POoow4vyxAHRIfLI0Av/7MMQMgggQaybt4YChMw1iidykeGPlkNAbghZYZejZ22cx2bq9tnustgtbsn6NecCJ54eCciNSaoenToBoADU6HzWkdDLQNgAIxuDl1RQ8BSC9BokMSKwUEpKEGKP8wpl6OFG20acKWPe86GaNNAmOyWz2tLXwzGalng/pCBM2Bi8rE9YiJ+xyKhuQA/acDBIZMkjEw6IgG6dJiv/7MMQJAwjEbRZOZSOBHo0iid0wKKpmEGgEOEozxcucx4axkjCWhQK0x1nzWNiEkWYe1K5N5F9ptw93mS2t7muLBWKwBnXir/UPgAHChzGsyMG8OHjmjV0HbSKSZ4YW1HBCA6HEvUGELB/OggEQCyglFgrkgYnLBbVtxKObddmC1/rHzP7bGng2DATW8iE//6YGAAM/c7MXT/GgIP/7QMQFg0nwaxBO5SPBLAuiSdwYeMGhOFUDH/EiCdEILDGZ1QwKtAUYEAl3UqUi0x3XSwlsFzz0OEIUAaaISAI04xKKcq9vqV577sOmp8PERD+39//7f/2eoGTbGTDAoojEkHgEJZ5MWAlsAyh1SXaglkxQADCSTaGxhdynUMxV7I1EJVI/I5a6l0Zdl/KaekIhwqMQEBoqwZL3Pb/////////+6h9AA8Mdkw3Kow2JMxDEwwBA//swxAiCSMBrEk7lg0EMDSLZ3LAshwC0GtCGBiIFNRNNIouq/SwDVVWkcJFSxoOLauKmQ3XT/xduRbamR413s2fiGgUJNJD9lWkK+HKorGF5mhTEAxkRpqhGIdbe9Vagla1YvGD0SFwUFM3RoR1el1l2pSGsLNWsSTvy99vot+i8kOB0gRiwT1YtbfsoAAAAAgkjAAB6LNGViYcf//swxAeCSRxrF65lIYkxDWHF3CRypEkRRCSBjpIqO6u91WYMuXyt1gELiYCkjMcjAHBEKiQ0CMY6nCKOsS7ZSnRnOEWOVkBz0w3UufZH0mMa5zM5VkMTCPMeRSMpQxhq8Nfh5dC74gFAreCKLxZq/DgQ5doGBVombOHRdEpCcqq5wdls+8hvx0hdoImT7CSqtfxF9P9nb/q///XV//tAxAACychPDk7pIcENCeHV3Jg4GgADkOnDHgMj/STUCRUABVBiBRn2RMaSLgoLgy1zDSIKyh2mIsrfeJwkgGlVzPYacxO24WicCgwRg2NKCHRNJ/Rvd8q51H7rv/6v/+n6QnnSng52T5HAI4skQMroBZSF6mDS00gYC1sMBpG71HmkLV9880ACsutaMVeQmZATUmxwqwUQl5ER3f/////9GBf9fvUAAAl4AA7XJw03CAy6Daf/+zDEB4JIrF8PLuUhgRkNYdnMIHDUCLkgIIOnJji7zYWYqTYUv2Lwa7TZkBlD4noHhNEgMG4EMVc+XP+T+k8sFiYSZCbA2Hr9aaEhPg9RlDI5JFAsEJQLeHFAoIt9CJmLYJIlyz+HZNTuZAkzDtPJlAMzDQ/pOT5NkdVe6LvD7kjD6FSRL//////q/r6f/1eQaj5AAKymYkEocAn/+0DEBQNI6F0OTukhQSoMIYnMmHCaJWLQC14oDARtHJXz7MwWd79MCADQKhQEVGloiD6y+SVtw3wI5VHHtvYSKixCTsFBdSX////7//935X9zR0PR9Y1sNwNBSgYHEMIhQASDk3LUNQNfdHBZbOY3YfGBJdFsQAD0QdGdcqNNfzPZTRvLsBigw4kc15f9Hu42i/9fV/t7f/d7uzhGYA5QTcwJB85PTGAHlTseEbaOKnTxLvn2TP/7MMQMg0k0Zwou5MHRKg0hSd0YMEgbeOJp/pPD9Hwmfg+BZb0ZeXs7CzrpmZ20+VXcnvei7vpFv9qf/sv+izWxCvo/20roPgWZBlUbhQHyFKIoQDWYNxLmuS3rMLKeLbvC7IWE4tEyiCFz3fliL+ZT/Phu6QpCQSC6bI1Hr/09FFKLLuP/1I+zq6T73X9Py9UALUgAe82GmSZiyv/7QMQFgklIOQzN5MGBN4bhSbykKKHOyWlTfAwkbUqg94Iu4bLIw8DbD4CUmq7GnicEAWFmpDkChMOjzo4GSA1gu0WYBjikft/6un/1/o39F77e+hZDZj04wLPMEchCPl6sjAgBQEwN+YmvBxaUBRsUIKFdZuqsh954WLlV3gdhkXfHrF1Jj1u1uusFiiU1/kndSW3fWnr2nEWbEI6b61MFdKoAbUAAfChHevBsG8wYpeURSQbZ//swxAmCyIA1DM3hIMELi2FBvIw4wFlROygCwYM5SPVrpkCmwyokZIiQ0YQwksiJmqc9i1zH4p6vXPf0dHu/Zb7NlXq2aDzCoxVVMTY9TSIllKvChxlT1xrUESW9JZu/Zj/cMFA3VR5mRL0sGw20aBlmwMgghALv7Gt/9m7/ovq2Xf1r+28ZZ9MZAANHxTDlIWCKHUPCxVWF7ToJ//tAxAmDSmwrCE3h4IEkDeEJvBQoRI0DLViebmFUs7a8Ax4iZBfAhEakAkyQ0qDzWGCQaYm1pmKSTsa2voFd7C59NNcczoUxl5lLmr6YpbQ2S9iGLUUhr9QauLniwHGoOhwWQoK5kFwBLYYktdsPBAVTVDKuTfO53YjXIl3S4vUhqS9XPX2JurasU+6pl70i3jmHEPSjc30+a9F9Y3JqZQADlG0x5LQAI4KrssSoQEgyQGgaGxD/+zDEC4NJdHMITaRnARULYMmmDOCspDmloyhzQ96zWWlQYjM3TnlHhQGGWlZQoh0pOXsnUUInfQ+UehNbVrFn6l00UXs7/5zqWSh9TokeIliKCgaerGHvGRPNX0nrMs8is9cjVle7tElMOJwdWi0jlg6IwMaLB4KAdpJpze3wJVK7CUbW0xv//V/0Ju/o2xjEFiqXKIb6K8SGkYT/+0DEBoNKDEEEDTBmwS2QIIW3oFBKb6J5fNIW6VBhKX6CzIEBxABBQ8aBIc4mYEYaHBNUcYFgCGRY4liwHGKSlAVl3rbIkaEE7uw9Zc+511r2rQunR7WdXjcJtliCroK5IIohxDn+YDymsKmmsZF7vWN6i3OlxUebCPUWrTVZeYl1mPFmLPrLARTj1sLNUYW7ih+XsNDWvucCB1v91nZdt/0/oUAOdeC0iQMDN0XvDSVzr1ZoFf/7QMQJAko0ZwItmGiBMJRgWaYYSCKSNP5JQWsYWlWoCXEPj+muEUWOCAwMlYjWWEQ8cTEjECQxMvSfLJ1HWHjTklUy4Xfimp86QbwlI4vvs09er1hak+0kRExoGsriy+LyBJg5wk2DZlVWbi7EeCzabvJ5IV0q1I3T9fIedIn4Rfy3MTTwxvt1refeGI0WaRdS9+V2Jo2fFF7P0v3Zj9mlOKkBQ9mzuCLZAF5iibnjhBTIWkIS//tAxAqDygx0/g0wwwEyCd9BlhiQiTSyC9cimcnE0SbtiDvMvOu23layJQHRC8JqRCRsBzKxjAdHUiyBIfONSWqKtlkVbV7RSjT23apX6m3DZCZqAtNRi8GFV4shUW3oHESCqLCZxVwTKgwk0kkdj6mAwqyChgMJOkQMfEJ5oTOPlCKhaksNBO0e/ELiiJYclNa9+y7b3V7OtPb/1CAMMEooCVMbJgMgk4dPkoVYIUQpk9zS01v/+yDEDINJzG74LCRjwIIE3ISTGBUFVVlJloCUOOVnmMHEC0sgwEBwcJRw41CjQVFSoSSxgNXLKqktCjSpo09t6NvUmxTa/+/o/awKlCaC0SQKKAiaC1JInGlgaoMShu//qmWCagxYJKX/+0xBTUUzLjk4LjJVVVVVVVVVVVVVVVVV//sQxAuDwAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xDENQPAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ==";
-	sound.src = audiotagAudioSprite;
-	sound.load();
-	console.log("--audiotagCreateChannel "+index);
-}
-
-function at_imp_mandreel_audio_playChannel(filename,channel,vol,loop,pitch)
-{
-	at_imp_mandreel_audio_stopChannel(channel);
-	var fileNameNoExt = wa_getFileNameNoExt(filename);
-	var time = maudioSecondsPos[fileNameNoExt];
-	if ( time != null )
-	{
-		console.log("play "+fileNameNoExt+" "+time);
-		if ( maudiotagAvailableChannels.length > 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_8
-{
-__label__ = 8;
-}
-else{
-	r10 = 1;
-__label__ = 9;
-}
-}
-if (__label__ == 8){
-	r10 = 0;
-}
-	f0 = heapFloat[(r8+2)];
-	f1 = heapFloat[(r9+10)];
-	if(f0 >f1) //_LBB56_12
-{
-__label__ = 11;
-}
-else{
-	r11 = r4 >> 2;
-	f0 = heapFloat[(r11+2)];
-	f1 = heapFloat[(r9+6)];
-	if(f0 <f1) //_LBB56_12
-{
-__label__ = 11;
-}
-else{
-__label__ = 12;
-}
-}
-if (__label__ == 11){
-	r10 = 0;
-}
-	f0 = heapFloat[(r8+1)];
-	f1 = heapFloat[(r9+9)];
-if(!(f0 >f1)) //_LBB56_17
-{
-	r8 = r4 >> 2;
-	f0 = heapFloat[(r8+1)];
-	f1 = heapFloat[(r9+5)];
-if(!(f0 <f1)) //_LBB56_17
-{
-	r8 = r10 & 255;
-if(!(r8 ==0)) //_LBB56_17
-{
-	r8 = r5 >> 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) <uint(r8))) //_LBB56_4
-{
-break _6;
-}
-}
-}
-	return;
-}
-}
-
-function _ZN20btAxisSweep3InternalItE7rayTestERK9btVector3S3_R23btBroadphaseRayCallbackS3_S3_(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)];
-	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) <uint(r5))) //_LBB57_4
-{
-break _6;
-}
-}
-}
-	return;
-}
-}
-
-function _ZNK20btAxisSweep3InternalItE8quantizeEPtRK9btVector3i(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)];
-	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 <f4) //_LBB58_4
-{
-	r3 = heapU16[(r0+4)>>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 <f0) //_LBB58_9
-{
-	r3 = heapU16[(r0+4)>>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 <f0) //_LBB58_14
-{
-	r0 = heapU16[(r0+4)>>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) <uint(r17))) //_LBB60_10
-{
-	r15 = heapU16[(r15+54)>>1];
-	r16 = heapU16[(r12)>>1];
-if(!(uint(r15) <uint(r16))) //_LBB60_10
-{
-	r15 = (r13 + r6)|0;
-	r16 = heapU16[(r9)>>1];
-	r17 = heapU16[(r15+48)>>1];
-if(!(uint(r16) <uint(r17))) //_LBB60_10
-{
-	r15 = heapU16[(r15+54)>>1];
-	r16 = heapU16[(r8)>>1];
-if(!(uint(r15) <uint(r16))) //_LBB60_10
-{
-	r15 = heap32[(r1+23)];
-	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);
-	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) <uint(r16))) //_LBB61_9
-{
-	r14 = heapU16[(r14+54)>>1];
-	r15 = heapU16[(r9)>>1];
-if(!(uint(r14) <uint(r15))) //_LBB61_9
-{
-	r14 = (r12 + r4)|0;
-	r15 = heapU16[(r10)>>1];
-	r16 = heapU16[(r14+48)>>1];
-if(!(uint(r15) <uint(r16))) //_LBB61_9
-{
-	r14 = heapU16[(r14+54)>>1];
-	r15 = heapU16[(r6)>>1];
-if(!(uint(r14) <uint(r15))) //_LBB61_9
-{
-	r14 = heap32[(r1+23)];
-	r15 = 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) <uint(r15))) //_LBB62_9
-{
-	r12 = heapU16[(r12+54)>>1];
-	r13 = heapU16[(r13+48)>>1];
-if(!(uint(r12) <uint(r13))) //_LBB62_9
-{
-	r12 = r4 << 1;
-	r13 = (r9 + r12)|0;
-	r12 = (r11 + r12)|0;
-	r14 = heapU16[(r13+54)>>1];
-	r15 = heapU16[(r12+48)>>1];
-if(!(uint(r14) <uint(r15))) //_LBB62_9
-{
-	r12 = heapU16[(r12+54)>>1];
-	r13 = heapU16[(r13+48)>>1];
-if(!(uint(r12) <uint(r13))) //_LBB62_9
-{
-	r12 = heap32[(r1+23)];
-	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);
-	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) <uint(r15))) //_LBB63_10
-{
-	r12 = heapU16[(r12+54)>>1];
-	r13 = heapU16[(r13+48)>>1];
-if(!(uint(r12) <uint(r13))) //_LBB63_10
-{
-	r12 = r3 << 1;
-	r13 = (r9 + r12)|0;
-	r12 = (r11 + r12)|0;
-	r14 = heapU16[(r13+54)>>1];
-	r15 = heapU16[(r12+48)>>1];
-if(!(uint(r14) <uint(r15))) //_LBB63_10
-{
-	r12 = heapU16[(r12+54)>>1];
-	r13 = heapU16[(r13+48)>>1];
-if(!(uint(r12) <uint(r13))) //_LBB63_10
-{
-	r12 = heap32[(r1+23)];
-	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);
-	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);
-	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) <uint(r14)) //_LBB68_15
-{
-__label__ = 13;
-break _14;
-}
-else{
-	r13 = heapU16[(r5)>>1];
-	r14 = heapU16[(r6)>>1];
-	if(uint(r13) <uint(r14)) //_LBB68_15
-{
-__label__ = 13;
-break _14;
-}
-else{
-	r9 = (r9 + 1)|0;
-	r5 = (r5 + 2)|0;
-	r6 = (r6 + 2)|0;
-}
-}
-}
-else{
-__label__ = 14;
-break _14;
-}
-}
-}
-if (__label__ == 13){
-	r4 = heap32[(r0+23)];
-	r5 = r4 >> 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 <f6) //_LBB80_7
-{
-	f3 = -f3;
-}
-	if(f5 <f6) //_LBB80_10
-{
-	f5 = -f5;
-}
-	f3 = f3+f5;
-	if(f4 <f6) //_LBB80_13
-{
-	f4 = -f4;
-}
-	r3 = r3 >> 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 <f6) //_LBB80_16
-{
-	f5 = -f5;
-}
-	if(f7 <f6) //_LBB80_19
-{
-	f7 = -f7;
-}
-	f5 = f5+f7;
-	if(f4 <f6) //_LBB80_22
-{
-	f4 = -f4;
-}
-	f4 = f5+f4;
-	r3 = f3 >= 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_37
-{
-	f0 = heapFloat[(r1+5)];
-	f1 = heapFloat[(r2+5)];
-if(!(f0 <f1)) //_LBB80_37
-{
-	f0 = heapFloat[(r1+6)];
-	f1 = heapFloat[(r2+6)];
-	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 <f4)) //_LBB82_3
-{
-	f3 = heapFloat[(r4+5)];
-	f4 = heapFloat[(r0+5)];
-if(!(f3 <f4)) //_LBB82_3
-{
-	f3 = heapFloat[(r4+6)];
-	f4 = heapFloat[(r0+6)];
-if(!(f3 <f4)) //_LBB82_3
-{
-	r0 = 0;
-	r_g0 = r0;
-	return;
-}
-}
-}
-}
-}
-}
-else{
-	f2 = heapFloat[(r0+1)];
-}
-	f0 = f0-f1;
-	f2 = f2-f1;
-	heapFloat[(r0)] = f0;
-	heapFloat[(r0+1)] = f2;
-	f3 = heapFloat[(r0+2)];
-	f3 = f3-f1;
-	heapFloat[(r0+2)] = f3;
-	f4 = heapFloat[(r0+4)];
-	f4 = f4+f1;
-	heapFloat[(r0+4)] = f4;
-	f5 = heapFloat[(r0+5)];
-	f5 = f5+f1;
-	heapFloat[(r0+5)] = f5;
-	f6 = heapFloat[(r0+6)];
-	f1 = f6+f1;
-	r3 = r3 >> 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 <r9) //_LBB101_24
-{
-	if(r9 !=0) //_LBB101_26
-{
-	r10 = gNumAlignedAllocs;
-	r10 = 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 <r9)) //_LBB101_23
-{
-break _28;
-}
-}
-_49: while(true){
-	r7 = (r7 + -1)|0;
-if(!(r7 !=0)) //_LBB101_37
-{
-break _28;
-}
-}
-}
-}
-} while(0);
-	r7 = (r9 + -4)|0;
-	heap32[(r3+6)] = r9;
-}
-	if(r8 !=r5) //_LBB101_43
-{
-	r1 = r8 >> 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+1)];
-	f1 = heapFloat[(r9+5)];
-if(!(f0 >f1)) //_LBB101_41
-{
-	f0 = heapFloat[(r1+5)];
-	f1 = heapFloat[(r9+1)];
-if(!(f0 <f1)) //_LBB101_41
-{
-	f0 = heapFloat[(r1+2)];
-	f1 = heapFloat[(r9+6)];
-if(!(f0 >f1)) //_LBB101_41
-{
-	f0 = heapFloat[(r1+6)];
-	f1 = heapFloat[(r9+2)];
-if(!(f0 <f1)) //_LBB101_41
-{
-	r10 = heap32[(r9+10)];
-	r11 = heap32[(r1+10)];
-	if(r11 ==0) //_LBB101_53
-{
-	if(r10 ==0) //_LBB101_55
-{
-	r0 = r4 >> 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 <f0)) //_LBB102_6
-{
-	f6 = heapFloat[(r7+1)];
-if(!(f6 >f4)) //_LBB102_6
-{
-	f6 = heapFloat[(r7+5)];
-if(!(f6 <f1)) //_LBB102_6
-{
-	f6 = heapFloat[(r7+2)];
-if(!(f6 >f5)) //_LBB102_6
-{
-	f6 = heapFloat[(r7+6)];
-if(!(f6 <f2)) //_LBB102_6
-{
-	r8 = heap32[(r7+10)];
-	if(r8 ==0) //_LBB102_42
-{
-	r0 = r2 >> 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 <r14) //_LBB105_22
-{
-	if(r14 !=0) //_LBB105_24
-{
-	r9 = heap32[(r7)];
-	r11 = r0 << 3;
-	r9 = (r9 + 1)|0;
-	r11 = r11 | 3;
-	heap32[(r7)] = r9;
-	r9 = (r11 + 16)|0;
-	heap32[(g0)] = r9;
-	malloc(i7);
-	r9 = r_g0;
-	if(r9 !=0) //_LBB105_26
-{
-	r11 = 0;
-	r12 = (r9 + 4)|0;
-	r11 = (r11 - r12)|0;
-	r11 = r11 & 15;
-	r11 = (r9 + r11)|0;
-	r12 = (r11 + 4)|0;
-	r11 = r11 >> 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 <r14) //_LBB105_34
-{
-	r8 = r9;
-	r9 = r14;
-}
-else{
-	r8 = r9;
-	r9 = r14;
-break _23;
-}
-}
-	r11 = r0;
-_45: while(true){
-	r12 = r0 << 2;
-	r12 = (r8 + r12)|0;
-	r11 = (r11 + -1)|0;
-	r0 = (r0 + 1)|0;
-	r12 = r12 >> 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+1)];
-	f1 = heapFloat[(r9+5)];
-	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+2)];
-	f1 = heapFloat[(r9+6)];
-	if(f0 >f1) //_LBB108_35
-{
-__label__ = 32;
-}
-else{
-	f0 = heapFloat[(r10+6)];
-	f1 = heapFloat[(r9+2)];
-	if(f0 <f1) //_LBB108_35
-{
-__label__ = 32;
-}
-else{
-__label__ = 33;
-}
-}
-}
-}
-}
-}
-if (__label__ == 32){
-	r9 = heap32[(r1+24)];
-	r10 = r9 >> 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 <r5)) //_LBB108_28
-{
-break _37;
-}
-}
-	r4 = heap32[(r6+1)];
-	if(r4 <1) //_LBB108_39
-{
-	heap32[(r1+36)] = 0;
-break _32;
-}
-}
-	r2 = heap32[(r1+36)];
-	r2 = (r2 + r5)|0;
-	r2 = (r2 % r4)|0;
-	heap32[(r1+36)] = r2;
-}
-}
-} while(0);
-	r2 = heap32[(r1+35)];
-	r2 = (r2 + 1)|0;
-	heap32[(r1+35)] = r2;
-	r2 = 0;
-	heap32[(r1+30)] = 1;
-	heap8[r0+154] = r2;
-	r0 = heap32[(r1+32)];
-	if(r0 ==0) //_LBB108_42
-{
-	heap32[(r1+34)] = 0;
-	r4 = heap32[(r1+33)];
-}
-else{
-	r4 = heap32[(r1+33)];
-	f0 = uint(r4); //fuitos r4, f0
-	f1 = uint(r0); //fuitos r0, f1
-	f0 = f0/f1;
-	heapFloat[(r1+34)] = f0;
-}
-	r4 = 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+1)];
-	f1 = heapFloat[(r4+5)];
-	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+2)];
-	f1 = heapFloat[(r4+6)];
-	if(f0 >f1) //_LBB108_58
-{
-__label__ = 54;
-}
-else{
-	f0 = heapFloat[(r5+6)];
-	f1 = heapFloat[(r4+2)];
-	if(f0 <f1) //_LBB108_58
-{
-__label__ = 54;
-}
-else{
-__label__ = 55;
-}
-}
-}
-}
-}
-}
-}
-if (__label__ == 54){
-	r4 = heap32[(r1+24)];
-	r5 = r4 >> 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 <f0)) //_LBB109_24
-{
-	f8 = heapFloat[(r7+1)];
-if(!(f8 >f5)) //_LBB109_24
-{
-	f8 = heapFloat[(r7+5)];
-if(!(f8 <f1)) //_LBB109_24
-{
-	f8 = heapFloat[(r7+2)];
-if(!(f8 >f6)) //_LBB109_24
-{
-	f8 = heapFloat[(r7+6)];
-if(!(f8 <f2)) //_LBB109_24
-{
-	f0 = heapFloat[(r6+4)];
-	f1 = heapFloat[(r6+8)];
-	f1 = f1-f0;
-	f2 =                       0.5;
-	f3 = heapFloat[(r6+5)];
-	f4 = heapFloat[(r6+9)];
-	f4 = f4-f3;
-	f5 = heapFloat[(r0+1)];
-	f6 = heapFloat[(r0)];
-	f1 = f1*f2;
-	f7 = heapFloat[(r2+25)];
-	f8 = heapFloat[(r0+2)];
-	f9 = heapFloat[(r6+6)];
-	f10 = heapFloat[(r6+10)];
-	r7 = sp + -48;
-	f10 = f10-f9;
-	f4 = f4*f2;
-	f1 = f1*f7;
-	f2 = f10*f2;
-	f4 = f4*f7;
-	r9 = r7 >> 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 <r7) //_LBB135_19
-{
-	heap32[(g0)] = r2;
-	_ZN28btHashedOverlappingPairCache10growTablesEv(i7);
-	r10 = heap32[(r3+3)];
-	r10 = (r10 + -1)|0;
-	r10 = r10 & r8;
-}
-	r2 = heap32[(r5+3)];
-	r1 = heap32[(r1+3)];
-	if(r2 >=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 <r5) //_LBB150_3
-{
-	if(r6 <r7) //_LBB150_5
-{
-	r8 = heapU16[(r2)>>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 <f4) //_LBB151_4
-{
-	heapFloat[(fp+-4)] = f4;
-	f0 = f4;
-}
-	f4 = heapFloat[(r2+2)];
-	if(f1 <f4) //_LBB151_7
-{
-	heapFloat[(r5+1)] = f4;
-	f1 = f4;
-}
-	f4 = heapFloat[(r2+3)];
-	if(f2 <f4) //_LBB151_10
-{
-	heapFloat[(r5+2)] = f4;
-	f2 = f4;
-}
-	f4 = heapFloat[(r2+4)];
-	if(f3 <f4) //_LBB151_13
-{
-	heapFloat[(r5+3)] = f4;
-	f3 = f4;
-}
-	f4 = heapFloat[(r2+5)];
-if(!(f4 >=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) <uint(r6)) //_LBB152_14
-{
-__label__ = 14;
-break _1;
-}
-else{
-	r5 = heapU16[(r3+4)>>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) <uint(r6)) //_LBB152_14
-{
-__label__ = 14;
-break _1;
-}
-else{
-	r5 = heapU16[(r3+2)>>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) <uint(r6)) //_LBB152_14
-{
-__label__ = 14;
-break _1;
-}
-else{
-	r5 = r1 >> 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_26
-{
-__label__ = 26;
-}
-else{
-	r9 = 1;
-__label__ = 27;
-}
-}
-if (__label__ == 26){
-	r9 = 0;
-}
-	f0 = heapFloat[(r7+2)];
-	f1 = heapFloat[(r8+6)];
-	if(f0 >f1) //_LBB153_30
-{
-__label__ = 29;
-}
-else{
-	r10 = r3 >> 2;
-	f0 = heapFloat[(r10+2)];
-	f1 = heapFloat[(r8+2)];
-	if(f0 <f1) //_LBB153_30
-{
-__label__ = 29;
-}
-else{
-__label__ = 30;
-}
-}
-if (__label__ == 29){
-	r9 = 0;
-}
-	f0 = heapFloat[(r7+1)];
-	f1 = heapFloat[(r8+5)];
-	if(f0 <=f1) //_LBB153_33
-{
-	r7 = r3 >> 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) <uint(r6))) //_LBB153_16
-{
-	r6 = heapU16[(sp+-2)>>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) <uint(r7))) //_LBB153_16
-{
-	r6 = heapU16[(sp+-4)>>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) <uint(r7))) //_LBB153_16
-{
-	r6 = r8 >> 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 <r1) //_LBB154_9
-{
-	r6 = heapU8[r3+60];
-	f1 =                         0;
-	r7 = r0;
-	f2 = f1;
-	f3 = f1;
-_7: while(true){
-	r8 = r6 & 255;
-	if(r8 ==0) //_LBB154_12
-{
-	r9 = heap32[(r4+19)];
-	r10 = r7 << 6;
-	r9 = (r9 + r10)|0;
-	r9 = r9 >> 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 <r1) //_LBB154_16
-{
-	f5 =                         1;
-	f5 = f5/f0;
-	f6 = f3*f5;
-	f7 = f2*f5;
-	f5 = f1*f5;
-	f1 =                         0;
-	r6 = r0;
-	f2 = f1;
-	f3 = f1;
-_16: while(true){
-	if(r8 ==0) //_LBB154_19
-{
-	r7 = heap32[(r4+19)];
-	r9 = r6 << 6;
-	r7 = (r7 + r9)|0;
-	r7 = r7 >> 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 <r1) //_LBB154_26
-{
-	r9 = heapU8[r3+60];
-	f0 =                         0;
-	r10 = r0;
-	f1 = f0;
-	f2 = f0;
-_31: while(true){
-	r11 = r9 & 255;
-	if(r11 ==0) //_LBB154_29
-{
-	r11 = heap32[(r4+19)];
-	r12 = r10 << 6;
-	r11 = (r11 + r12)|0;
-	r11 = r11 >> 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 <r1) //_LBB154_34
-{
-	r8 = r6 << 2;
-	r6 = (r7 + r8)|0;
-	r6 = r6 >> 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) <uint(r10)) //_LBB154_66
-{
-	heap16[(r8+6)>>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) <uint(r10)) //_LBB154_90
-{
-	heap16[(r8+8)>>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) <uint(r8)) //_LBB154_93
-{
-	heap16[(r7+10)>>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 <f8) //_LBB155_15
-{
-	heapFloat[(fp+-4)] = f8;
-	f10 = f8;
-}
-	f8 = heapFloat[(r7+2)];
-	if(f13 <f8) //_LBB155_18
-{
-	heapFloat[(r12+1)] = f8;
-	f13 = f8;
-}
-	f8 = heapFloat[(r7+3)];
-	if(f14 <f8) //_LBB155_21
-{
-	heapFloat[(r12+2)] = f8;
-	f14 = f8;
-}
-	f8 = heapFloat[(r7+4)];
-	if(f19 <f8) //_LBB155_24
-{
-	heapFloat[(r12+3)] = f8;
-	f19 = f8;
-}
-	f8 = heapFloat[(r7+5)];
-if(!(f8 >=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 <f8) //_LBB155_37
-{
-	heapFloat[(fp+-8)] = f8;
-	f5 = f8;
-}
-	f8 = heapFloat[(r7+2)];
-	if(f6 <f8) //_LBB155_40
-{
-	heapFloat[(r12+1)] = f8;
-	f6 = f8;
-}
-	f8 = heapFloat[(r7+3)];
-	if(f7 <f8) //_LBB155_43
-{
-	heapFloat[(r12+2)] = f8;
-	f7 = f8;
-}
-	f8 = heapFloat[(r7+4)];
-	if(f4 <f8) //_LBB155_46
-{
-	heapFloat[(r12+3)] = f8;
-	f4 = f8;
-}
-	f8 = heapFloat[(r7+5)];
-if(!(f8 >=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 <r6) //_LBB155_56
-{
-	if(r14 <r6) //_LBB155_58
-{
-	r15 = r8 >> 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) <uint(r17)) //_LBB155_64
-{
-__label__ = 55;
-}
-else{
-	r18 = heapU16[(sp+-34)>>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) <uint(r18)) //_LBB155_64
-{
-__label__ = 55;
-}
-else{
-	r19 = heapU16[(sp+-36)>>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_17
-{
-__label__ = 17;
-}
-else{
-	r16 = 1;
-__label__ = 18;
-}
-}
-if (__label__ == 17){
-	r16 = 0;
-}
-	f10 = heapFloat[(r14+6)];
-	if(f11 >f10) //_LBB156_21
-{
-__label__ = 20;
-}
-else{
-	f10 = heapFloat[(r14+2)];
-	if(f2 <f10) //_LBB156_21
-{
-__label__ = 20;
-}
-else{
-__label__ = 21;
-}
-}
-if (__label__ == 20){
-	r16 = 0;
-}
-	f10 = heapFloat[(r14+5)];
-	if(f9 >f10) //_LBB156_32
-{
-__label__ = 30;
-}
-else{
-	f10 = heapFloat[(r14+1)];
-	if(f1 <f10) //_LBB156_32
-{
-__label__ = 30;
-}
-else{
-	r16 = r16 & 255;
-	if(r16 ==0) //_LBB156_32
-{
-__label__ = 30;
-}
-else{
-	r16 = r3 << 4;
-	r17 = r10 << 4;
-	r16 = (r15 + r16)|0;
-	r17 = (r15 + r17)|0;
-	r16 = r16 >> 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_2
-{
-	f6 = -f9;
-}
-else{
-	f6 = f9;
-}
-	if(f8 <f5) //_LBB166_5
-{
-	f7 = -f8;
-}
-else{
-	f7 = f8;
-}
-	if(f12 <f5) //_LBB166_8
-{
-	f15 = -f12;
-}
-else{
-	f15 = f12;
-}
-	if(f13 <f5) //_LBB166_11
-{
-	f16 = -f13;
-}
-else{
-	f16 = f13;
-}
-	if(f0 <f5) //_LBB166_14
-{
-	f17 = -f0;
-}
-else{
-	f17 = f0;
-}
-	if(f14 <f5) //_LBB166_17
-{
-	f18 = -f14;
-}
-else{
-	f18 = f14;
-}
-	if(f2 <f5) //_LBB166_20
-{
-	f19 = -f2;
-}
-else{
-	f19 = f2;
-}
-	if(f3 <f5) //_LBB166_23
-{
-	f20 = -f3;
-}
-else{
-	f20 = f3;
-}
-	if(f4 <f5) //_LBB166_26
-{
-	f21 = -f4;
-}
-else{
-	f21 = f4;
-}
-	if(f10 <f5) //_LBB166_29
-{
-	f22 = -f10;
-}
-else{
-	f22 = f10;
-}
-	f23 = heapFloat[(fp+-181)];
-	f23 = f23*f6;
-	f24 = heapFloat[(fp+-179)];
-	f23 = f24+f23;
-	f24 = heapFloat[(fp+-182)];
-	f24 = f24*f7;
-	f23 = f23+f24;
-	f24 = heapFloat[(fp+-180)];
-	f24 = f24*f15;
-	f23 = f23+f24;
-	f22 = f22-f23;
-_41: do {
-if(!(f22 >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_36
-{
-	f22 = -f11;
-}
-else{
-	f22 = f11;
-}
-	f24 = heapFloat[(fp+-181)];
-	f24 = f24*f16;
-	f25 = heapFloat[(fp+-178)];
-	f24 = f25+f24;
-	f25 = heapFloat[(fp+-182)];
-	f25 = f25*f17;
-	f24 = f24+f25;
-	f25 = heapFloat[(fp+-180)];
-	f25 = f25*f18;
-	f24 = f24+f25;
-	f22 = f22-f24;
-if(!(f22 >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_43
-{
-	f22 = -f1;
-}
-else{
-	f22 = f1;
-}
-	f24 = heapFloat[(fp+-181)];
-	f24 = f24*f19;
-	f25 = heapFloat[(fp+-177)];
-	f24 = f25+f24;
-	f25 = heapFloat[(fp+-182)];
-	f25 = f25*f20;
-	f24 = f24+f25;
-	f25 = heapFloat[(fp+-180)];
-	f25 = f25*f21;
-	f24 = f24+f25;
-	f22 = f22-f24;
-if(!(f22 >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_50
-{
-	f24 = -f22;
-}
-else{
-	f24 = f22;
-}
-	f25 = heapFloat[(fp+-179)];
-	f25 = f25*f6;
-	f26 = heapFloat[(fp+-178)];
-	f26 = f26*f16;
-	f25 = f25+f26;
-	f26 = heapFloat[(fp+-177)];
-	f26 = f26*f19;
-	f25 = f25+f26;
-	f26 = heapFloat[(fp+-181)];
-	f25 = f25+f26;
-	f24 = f24-f25;
-if(!(f24 >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_57
-{
-	f24 = -f22;
-}
-else{
-	f24 = f22;
-}
-	f25 = heapFloat[(fp+-179)];
-	f25 = f25*f7;
-	f26 = heapFloat[(fp+-178)];
-	f26 = f26*f17;
-	f25 = f25+f26;
-	f26 = heapFloat[(fp+-177)];
-	f26 = f26*f20;
-	f25 = f25+f26;
-	f26 = heapFloat[(fp+-182)];
-	f25 = f25+f26;
-	f24 = f24-f25;
-if(!(f24 >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_64
-{
-	f24 = -f22;
-}
-else{
-	f24 = f22;
-}
-	f25 = heapFloat[(fp+-179)];
-	f25 = f25*f15;
-	f26 = heapFloat[(fp+-178)];
-	f26 = f26*f18;
-	f25 = f25+f26;
-	f26 = heapFloat[(fp+-177)];
-	f26 = f26*f21;
-	f25 = f25+f26;
-	f26 = heapFloat[(fp+-180)];
-	f25 = f25+f26;
-	f24 = f24-f25;
-if(!(f24 >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 <f5) //_LBB166_71
-{
-	f19 = -f22;
-}
-else{
-	f19 = f22;
-}
-	f21 = heapFloat[(fp+-184)];
-	f20 = heapFloat[(fp+-178)];
-	f20 = f20*f21;
-	f21 = heapFloat[(fp+-177)];
-	f21 = f21*f15;
-	f20 = f20+f21;
-	f24 = heapFloat[(fp+-183)];
-	f21 = heapFloat[(fp+-182)];
-	f21 = f21*f24;
-	f20 = f20+f21;
-	f21 = heapFloat[(fp+-180)];
-	f21 = f21*f7;
-	f20 = f20+f21;
-	f19 = f19-f20;
-	f20 =   1.1920928955078125e-007;
-if(!(f19 >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 <f5) //_LBB166_79
-{
-	f5 = -f25;
-}
-else{
-	f5 = f25;
-}
-	f27 = heapFloat[(fp+-185)];
-	f26 = heapFloat[(fp+-178)];
-	f26 = f26*f27;
-	f27 = heapFloat[(fp+-177)];
-	f27 = f27*f16;
-	f26 = f26+f27;
-	f28 = heapFloat[(fp+-183)];
-	f27 = heapFloat[(fp+-181)];
-	f27 = f27*f28;
-	f26 = f26+f27;
-	f27 = heapFloat[(fp+-180)];
-	f27 = f27*f6;
-	f26 = f26+f27;
-	f5 = f5-f26;
-if(!(f5 >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 <f27) //_LBB166_87
-{
-	f25 = -f5;
-}
-else{
-	f25 = f5;
-}
-	f28 = heapFloat[(fp+-178)];
-	f28 = f28*f18;
-	f29 = heapFloat[(fp+-177)];
-	f29 = f29*f17;
-	f28 = f28+f29;
-	f29 = heapFloat[(fp+-181)];
-	f29 = f29*f7;
-	f28 = f28+f29;
-	f29 = heapFloat[(fp+-182)];
-	f29 = f29*f6;
-	f28 = f28+f29;
-	f25 = f25-f28;
-if(!(f25 >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 <f27) //_LBB166_95
-{
-	f25 = -f5;
-}
-else{
-	f25 = f5;
-}
-	f30 = heapFloat[(fp+-184)];
-	f29 = heapFloat[(fp+-179)];
-	f29 = f29*f30;
-	f30 = heapFloat[(fp+-177)];
-	f30 = f30*f6;
-	f29 = f29+f30;
-	f30 = heapFloat[(fp+-182)];
-	f30 = f30*f17;
-	f29 = f29+f30;
-	f30 = heapFloat[(fp+-180)];
-	f30 = f30*f16;
-	f29 = f29+f30;
-	f25 = f25-f29;
-if(!(f25 >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 <f27) //_LBB166_103
-{
-	f5 = -f2;
-}
-else{
-	f5 = f2;
-}
-	f25 = heapFloat[(fp+-185)];
-	f21 = heapFloat[(fp+-179)];
-	f21 = f21*f25;
-	f25 = heapFloat[(fp+-177)];
-	f25 = f25*f7;
-	f21 = f21+f25;
-	f25 = heapFloat[(fp+-181)];
-	f25 = f25*f17;
-	f21 = f21+f25;
-	f25 = heapFloat[(fp+-180)];
-	f25 = f25*f15;
-	f21 = f21+f25;
-	f5 = f5-f21;
-if(!(f5 >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 <f27) //_LBB166_111
-{
-	f2 = -f1;
-}
-else{
-	f2 = f1;
-}
-	f3 = heapFloat[(fp+-179)];
-	f3 = f3*f18;
-	f25 = heapFloat[(fp+-183)];
-	f5 = heapFloat[(fp+-177)];
-	f5 = f5*f25;
-	f3 = f3+f5;
-	f5 = heapFloat[(fp+-181)];
-	f5 = f5*f16;
-	f3 = f3+f5;
-	f5 = heapFloat[(fp+-182)];
-	f5 = f5*f15;
-	f3 = f3+f5;
-	f2 = f2-f3;
-if(!(f2 >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 <f27) //_LBB166_119
-{
-	f2 = -f1;
-}
-else{
-	f2 = f1;
-}
-	f4 = heapFloat[(fp+-179)];
-	f4 = f4*f15;
-	f5 = heapFloat[(fp+-178)];
-	f5 = f5*f6;
-	f4 = f4+f5;
-	f5 = heapFloat[(fp+-182)];
-	f5 = f5*f18;
-	f4 = f4+f5;
-	f6 = heapFloat[(fp+-185)];
-	f5 = heapFloat[(fp+-180)];
-	f5 = f5*f6;
-	f4 = f4+f5;
-	f2 = f2-f4;
-if(!(f2 >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 <f27) //_LBB166_127
-{
-	f2 = -f1;
-}
-else{
-	f2 = f1;
-}
-	f4 = heapFloat[(fp+-179)];
-	f4 = f4*f16;
-	f5 = heapFloat[(fp+-178)];
-	f5 = f5*f7;
-	f4 = f4+f5;
-	f5 = heapFloat[(fp+-181)];
-	f5 = f5*f18;
-	f4 = f4+f5;
-	f6 = heapFloat[(fp+-184)];
-	f5 = heapFloat[(fp+-180)];
-	f5 = f5*f6;
-	f4 = f4+f5;
-	f2 = f2-f4;
-if(!(f2 >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 <f27) //_LBB166_135
-{
-	f1 = -f0;
-}
-else{
-	f1 = f0;
-}
-	f2 = heapFloat[(fp+-179)];
-	f2 = f2*f17;
-	f5 = heapFloat[(fp+-183)];
-	f4 = heapFloat[(fp+-178)];
-	f4 = f4*f5;
-	f2 = f2+f4;
-	f5 = heapFloat[(fp+-185)];
-	f4 = heapFloat[(fp+-181)];
-	f4 = f4*f5;
-	f2 = f2+f4;
-	f5 = heapFloat[(fp+-184)];
-	f4 = heapFloat[(fp+-182)];
-	f4 = f4*f5;
-	f2 = f2+f4;
-	f1 = f1-f2;
-if(!(f1 >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 <f27) //_LBB166_158
-{
-	f2 = -f2;
-}
-	if(f3 <f27) //_LBB166_161
-{
-	f3 = -f3;
-}
-	if(f4 <f27) //_LBB166_164
-{
-	f4 = -f4;
-}
-	if(f3 <=f2) //_LBB166_169
-{
-	if(f2 <=f4) //_LBB166_171
-{
-	r6 = 2;
-	r8 = 0;
-	r9 = 1;
-}
-else{
-	r6 = 0;
-	r8 = 1;
-	r9 = 2;
-}
-}
-else{
-	if(f3 <=f4) //_LBB166_168
-{
-	r6 = 2;
-	r8 = 0;
-	r9 = 1;
-}
-else{
-	r6 = 1;
-	r8 = 0;
-	r9 = 2;
-}
-}
-	r10 = r6 << 2;
-	r11 = (r4 + r10)|0;
-	r13 = (r2 + r10)|0;
-	r1 = r1 >> 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 <f27) //_LBB166_174
-{
-	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;
-}
-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 <f11) //_LBB166_183
-{
-	r24 = r13 >> 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 <f27) //_LBB166_229
-{
-	f8 = -f2;
-}
-else{
-	f8 = f2;
-}
-	if(f8 >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 <r8) //_LBB166_242
-{
-	r11 = sp + -32;
-	r13 = (r11 + r10)|0;
-	r13 = r13 >> 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 <f6) //_LBB166_251
-{
-	f5 = -f5;
-}
-	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 <f0) //_LBB206_2
-{
-	f_g0 = f0;
-	return;
-}
-else{
-	r4 = heap32[(fp+1)];
-	r5 = heap32[(fp+2)];
-	r1 = heap32[(r1+53)];
-	r6 = sp + -56;
-	r7 = r6 >> 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 <f0) //_LBB207_2
-{
-	f_g0 = f0;
-	return;
-}
-else{
-	r4 = heap32[(fp+1)];
-	r5 = heap32[(fp+2)];
-	r1 = heap32[(r1+53)];
-	r6 = sp + -56;
-	r7 = r6 >> 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 <f1)) //_LBB220_10
-{
-	r5 = heap32[(r4+54)];
-	r5 = (r5 + -4)|0;
-if(!(uint(r5) <uint(2))) //_LBB220_9
-{
-	heap32[(r4+54)] = 5;
-}
-	r4 = _ZZN16btCollisionWorld16updateSingleAabbEP17btCollisionObjectE8reportMe_2E_b;
-	r5 = heapU8[r4];
-	if(r5 != 0) //_LBB220_13
-{
-break _8;
-}
-else{
-	r3 = heap32[(r0+21)];
-	if(r3 ==0) //_LBB220_13
-{
-break _8;
-}
-else{
-	r5 = 1;
-	r6 = r3 >> 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 <r2) //_LBB221_3
-{
-	r4 = heap32[(r1+6)];
-	r6 = r4 >> 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 <r6) //_LBB221_4
-{
-	r10 = r4 >> 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 <f6) //_LBB222_25
-{
-	f7 = -f0;
-}
-else{
-	f7 = f0;
-}
-	f8 =       0.70710676908493042;
-	if(f7 <=f8) //_LBB222_28
-{
-	f0 = f3*f3;
-	f1 = f1*f1;
-	f0 = f0+f1;
-	heapFloat[(g0)] = f0;
-	sqrtf(i7);
-	f3 =                         1;
-	f7 = heapFloat[(r5+13)];
-	f9 = heapFloat[(r5+14)];
-	f10 = f3/f_g0;
-	f1 = heapFloat[(r5+12)];
-	f3 = -f7;
-	f8 = f1*f10;
-	f1 = -f9;
-	f11 = f10*f3;
-	f12 =                       100;
-	f1 = f8*f1;
-	f3 = f9*f11;
-	f7 = f0*f10;
-	f0 = f11*f12;
-}
-else{
-	f1 = f1*f1;
-	f3 = f0*f0;
-	f1 = f1+f3;
-	heapFloat[(g0)] = f1;
-	sqrtf(i7);
-	f6 = heapFloat[(r5+14)];
-	f0 =                         1;
-	f7 = heapFloat[(r5+12)];
-	f3 = f0/f_g0;
-	f6 = -f6;
-	f0 = heapFloat[(r5+13)];
-	f8 = f3*f6;
-	f6 = -f7;
-	f0 = f0*f3;
-	f9 =                       100;
-	f1 = f1*f3;
-	f3 = f0*f6;
-	f7 = f7*f8;
-	f6 = f0*f9;
-	f0 =                         0;
-}
-	r2 = heap32[(r1)];
-	r2 = r2 >> 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) <uint(9)) //_LBB222_34
-{
-	r3 = sp + -1024;
-	r7 = r3 >> 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 <r16) //_LBB235_50
-{
-	if(r10 <r16) //_LBB235_52
-{
-_69: do {
-	if(r10 <=r16) //_LBB235_54
-{
-	if(r9 <r16) //_LBB235_56
-{
-	if(r16 !=0) //_LBB235_58
-{
-	r4 = gNumAlignedAllocs;
-	r4 = 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 <r16) //_LBB235_74
-{
-	if(r16 !=0) //_LBB235_76
-{
-	r4 = gNumAlignedAllocs;
-	r4 = 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 <r16) //_LBB235_86
-{
-	r6 = r4;
-	heap32[(fp+-1)] = r16;
-}
-else{
-	r6 = r4;
-	heap32[(fp+-1)] = r16;
-break _90;
-}
-}
-_111: while(true){
-	r4 = r7 << 2;
-	r4 = (r6 + r4)|0;
-	r7 = (r7 + 1)|0;
-	r4 = r4 >> 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 <f3) //_LBB247_13
-{
-	heapFloat[(fp+-332)] = f0;
-	f4 = f0;
-}
-else{
-	f4 = f3;
-}
-	if(f2 <f7) //_LBB247_16
-{
-	heapFloat[(r3+1)] = f2;
-	f6 = f2;
-}
-else{
-	f6 = f7;
-}
-	if(f1 <f5) //_LBB247_19
-{
-	heapFloat[(r3+2)] = f1;
-	f8 = f1;
-}
-else{
-	f8 = f5;
-}
-	r4 = sp + -1344;
-	r7 = r4 >> 2;
-	heapFloat[(fp+-336)] = f3;
-	heapFloat[(r7+1)] = f7;
-	heapFloat[(r7+2)] = f5;
-	heap32[(r7+3)] = 0;
-	if(f3 <f0) //_LBB247_22
-{
-	heapFloat[(fp+-336)] = f0;
-	f3 = f0;
-}
-	if(f7 <f2) //_LBB247_25
-{
-	heapFloat[(r7+1)] = f2;
-	f7 = f2;
-}
-	if(f5 <f1) //_LBB247_28
-{
-	heapFloat[(r7+2)] = f1;
-	f5 = f1;
-}
-	f0 = heapFloat[(fp+-324)];
-	f0 = f4+f0;
-	r5 = r5 >> 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 <f6) //_LBB254_8
-{
-	f8 = -f7;
-}
-else{
-	f8 = f7;
-}
-	f9 = heapFloat[(r0+9)];
-	if(f9 <f6) //_LBB254_11
-{
-	f10 = -f9;
-}
-else{
-	f10 = f9;
-}
-	f11 = heapFloat[(r0+8)];
-	if(f11 <f6) //_LBB254_14
-{
-	f12 = -f11;
-}
-else{
-	f12 = f11;
-}
-	f13 = heapFloat[(r0+6)];
-	if(f13 <f6) //_LBB254_17
-{
-	f14 = -f13;
-}
-else{
-	f14 = f13;
-}
-	f15 = heapFloat[(r0+5)];
-	if(f15 <f6) //_LBB254_20
-{
-	f16 = -f15;
-}
-else{
-	f16 = f15;
-}
-	f17 = heapFloat[(r0+4)];
-	if(f17 <f6) //_LBB254_23
-{
-	f18 = -f17;
-}
-else{
-	f18 = f17;
-}
-	f19 = heapFloat[(r0+2)];
-	if(f19 <f6) //_LBB254_26
-{
-	f20 = -f19;
-}
-else{
-	f20 = f19;
-}
-	f21 = heapFloat[(r0+1)];
-	if(f21 <f6) //_LBB254_29
-{
-	f22 = -f21;
-}
-else{
-	f22 = f21;
-}
-	f23 = heapFloat[(r0)];
-	if(f23 <f6) //_LBB254_32
-{
-	f6 = -f23;
-}
-else{
-	f6 = f23;
-}
-	f23 = f23*f0;
-	f21 = f21*f2;
-	f17 = f17*f0;
-	f15 = f15*f2;
-	f21 = f23+f21;
-	f19 = f19*f4;
-	f6 = f6*f1;
-	f22 = f22*f3;
-	f0 = f11*f0;
-	f2 = f9*f2;
-	f9 = f17+f15;
-	f11 = f13*f4;
-	f13 = f18*f1;
-	f15 = f16*f3;
-	f16 = f21+f19;
-	f17 = heapFloat[(r0+12)];
-	f6 = f6+f22;
-	f18 = f20*f5;
-	f0 = f0+f2;
-	f2 = f7*f4;
-	f1 = f12*f1;
-	f3 = f10*f3;
-	f4 = f9+f11;
-	f7 = heapFloat[(r0+13)];
-	f9 = heapFloat[(r0+14)];
-	f10 = f13+f15;
-	f11 = f14*f5;
-	f12 = f16+f17;
-	f6 = f6+f18;
-	f0 = f0+f2;
-	r0 = r1 >> 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 <f3) //_LBB255_7
-{
-__label__ = 7;
-}
-else{
-	r2 = 1;
-__label__ = 8;
-}
-}
-if (__label__ == 7){
-	r2 = 0;
-}
-	r5 = r6 >> 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_11
-{
-__label__ = 10;
-}
-else{
-__label__ = 11;
-}
-}
-if (__label__ == 10){
-	r2 = 0;
-}
-	f1 = heapFloat[(r5+1)];
-	f3 = heapFloat[(r8+1)];
-if(!(f1 >f3)) //_LBB255_24
-{
-	r5 = r7 >> 2;
-	r8 = r9 >> 2;
-	f1 = heapFloat[(r5+1)];
-	f3 = heapFloat[(r8+1)];
-if(!(f1 <f3)) //_LBB255_24
-{
-	r2 = r2 & 255;
-if(!(r2 ==0)) //_LBB255_24
-{
-	r2 = heap32[(r1+1)];
-	r2 = r2 >> 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 <f1) //_LBB257_40
-{
-__label__ = 40;
-}
-else{
-	r8 = r2;
-__label__ = 41;
-}
-}
-if (__label__ == 40){
-	r8 = 0;
-}
-	r10 = r12 >> 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_44
-{
-__label__ = 43;
-}
-else{
-__label__ = 44;
-}
-}
-if (__label__ == 43){
-	r8 = 0;
-}
-	f0 = heapFloat[(r10+1)];
-	f1 = heapFloat[(r12+1)];
-if(!(f0 >f1)) //_LBB257_48
-{
-	r10 = r13 >> 2;
-	r11 = r11 >> 2;
-	f0 = heapFloat[(r10+1)];
-	f1 = heapFloat[(r11+1)];
-if(!(f0 <f1)) //_LBB257_48
-{
-	r8 = r8 & 255;
-	if(r8 !=0) //_LBB257_49
-{
-break _53;
-}
-}
-}
-	r8 = heap32[(r7+5)];
-	r8 = (r8 - r9)|0;
-	r8 = r8 >> 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 <f5) //_LBB286_2
-{
-__label__ = 2;
-}
-else{
-	if(f2 <=f8) //_LBB286_3
-{
-	r3 = 0;
-_4: while(true){
-	if(r3 <3) //_LBB286_4
-{
-	r4 = heap32[(r1)];
-	r4 = r4 >> 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 <f5) //_LBB286_2
-{
-__label__ = 2;
-break _1;
-}
-else{
-	r3 = (r3 + 1)|0;
-}
-}
-else{
-break _4;
-}
-}
-	r0 = 1;
-__label__ = 8;
-}
-else{
-__label__ = 2;
-}
-}
-} while(0);
-if (__label__ == 2){
-	r0 = 0;
-}
-	r0 = r0 & 255;
-	r_g0 = r0;
-	return;
-}
-
-function _ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1_(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)];
-	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 <f29) //_LBB288_4
-{
-	heapFloat[(fp+-4)] = f5;
-	f16 = f5;
-}
-else{
-	f16 = f29;
-}
-	if(f7 <f28) //_LBB288_7
-{
-	heapFloat[(r4+1)] = f7;
-	f17 = f7;
-}
-else{
-	f17 = f28;
-}
-	if(f6 <f27) //_LBB288_10
-{
-	heapFloat[(r4+2)] = f6;
-	f18 = f6;
-}
-else{
-	f18 = f27;
-}
-	r5 = sp + -32;
-	r6 = r5 >> 2;
-	heapFloat[(fp+-8)] = f29;
-	heapFloat[(r6+1)] = f28;
-	heapFloat[(r6+2)] = f27;
-	heap32[(r6+3)] = 0;
-	if(f29 <f5) //_LBB288_13
-{
-	heapFloat[(fp+-8)] = f5;
-	f19 = f5;
-}
-else{
-	f19 = f29;
-}
-	if(f28 <f7) //_LBB288_16
-{
-	heapFloat[(r6+1)] = f7;
-	f20 = f7;
-}
-else{
-	f20 = f28;
-}
-	if(f27 <f6) //_LBB288_19
-{
-	heapFloat[(r6+2)] = f6;
-	f21 = f6;
-}
-else{
-	f21 = f27;
-}
-	f22 = heapFloat[(r3+61)];
-	f16 = f16-f22;
-	f17 = f17-f22;
-	heapFloat[(fp+-4)] = f16;
-	f16 = f18-f22;
-	heapFloat[(r4+1)] = f17;
-	f17 = f19+f22;
-	heapFloat[(r4+2)] = f16;
-	f16 = f20+f22;
-	heapFloat[(fp+-8)] = f17;
-	r4 = _ZTVZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultE31LocalTriangleSphereCastCallback;
-	f17 = f21+f22;
-	heapFloat[(r6+1)] = f16;
-	r7 = sp + -240;
-	r4 = (r4 + 8)|0;
-	heapFloat[(r6+2)] = f17;
-	r6 = r7 >> 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 <f12) //_LBB301_30
-{
-	f6 = -f4;
-}
-else{
-	f6 = f4;
-}
-	f7 =       0.70710676908493042;
-	if(f6 <=f7) //_LBB301_33
-{
-	f6 = f0*f0;
-	f9 = f2*f2;
-	f6 = f6+f9;
-	heapFloat[(g0)] = f6;
-	sqrtf(i7);
-	f6 = f14/f_g0;
-	f9 = -f2;
-	f9 = f6*f9;
-	r0 = sp + -16;
-	f6 = f0*f6;
-	r0 = r0 >> 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 <f0) //_LBB301_54
-{
-	f0 = f2;
-	f0 = -f0;
-}
-else{
-	f0 = heapFloat[(fp+-171)];
-}
-	f1 =       0.70710676908493042;
-	if(f0 <=f1) //_LBB301_57
-{
-	f0 = heapFloat[(fp+-174)];
-	f1 = f0*f0;
-	f2 = heapFloat[(fp+-170)];
-	f3 = f2*f2;
-	f1 = f1+f3;
-	heapFloat[(g0)] = f1;
-	sqrtf(i7);
-	f3 = heapFloat[(fp+-169)];
-	f1 = f3/f_g0;
-	f2 = -f2;
-	f2 = f1*f2;
-	heapFloat[(fp+-173)] = f2;
-	f0 = f0*f1;
-	heapFloat[(fp+-172)] = f0;
-}
-else{
-	f0 = heapFloat[(fp+-170)];
-	f1 = f0*f0;
-	f2 = heapFloat[(fp+-171)];
-	f3 = f2*f2;
-	f1 = f1+f3;
-	heapFloat[(g0)] = f1;
-	sqrtf(i7);
-	f3 = heapFloat[(fp+-169)];
-	f1 = f3/f_g0;
-	f2 = -f2;
-	f2 = f1*f2;
-	heapFloat[(fp+-172)] = f2;
-	f0 = f0*f1;
-	heapFloat[(fp+-175)] = f0;
-	f0 =                         0;
-	heapFloat[(fp+-173)] = f0;
-}
-	r11 = heap32[(r11)];
-	r11 = r11 >> 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 <f1) //_LBB307_4
-{
-	f2 = -f0;
-}
-else{
-	f2 = f0;
-}
-	f3 =       0.70710676908493042;
-	if(f2 <=f3) //_LBB307_7
-{
-	f0 = heapFloat[(r5+12)];
-	f2 = heapFloat[(r5+13)];
-	f0 = f0*f0;
-	f2 = f2*f2;
-	f0 = f0+f2;
-	heapFloat[(g0)] = f0;
-	sqrtf(i7);
-	f2 = heapFloat[(r5+13)];
-	f3 =                         1;
-	f2 = -f2;
-	f0 = f3/f_g0;
-	f4 = heapFloat[(r5+12)];
-	f3 = f0*f2;
-	f2 = f4*f0;
-	f0 = f1;
-}
-else{
-	f2 = heapFloat[(r5+13)];
-	f2 = f2*f2;
-	f0 = f0*f0;
-	f0 = f2+f0;
-	heapFloat[(g0)] = f0;
-	sqrtf(i7);
-	f2 = heapFloat[(r5+14)];
-	f3 =                         1;
-	f2 = -f2;
-	f0 = f3/f_g0;
-	f3 = heapFloat[(r5+13)];
-	f2 = f0*f2;
-	f0 = f3*f0;
-	f3 =                         0;
-}
-	r8 = r6 >> 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) <uint(9)) //_LBB341_25
-{
-	r0 = (r1 + 48)|0;
-break _4;
-}
-}
-	if(r0 ==31) //_LBB341_26
-{
-	r0 = (r1 + 52)|0;
-break _4;
-}
-else{
-break _24;
-}
-}
-else{
-	if(r2 >19) //_LBB341_20
-{
-	r0 = (r2 + -21)|0;
-	if(uint(r0) <uint(9)) //_LBB341_22
-{
-	r0 = (r1 + 44)|0;
-break _4;
-}
-}
-else{
-	r0 = (r1 + 40)|0;
-break _4;
-}
-}
-} while(0);
-	if(r2 !=31) //_LBB341_29
-{
-	r0 = (r1 + 60)|0;
-}
-else{
-	r0 = (r1 + 56)|0;
-}
-}
-else{
-	r0 = (r1 + 68)|0;
-}
-}
-} while(0);
-	r0 = 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 <f0)) //_LBB352_53
-{
-	r3 = heap32[(fp+1)];
-	r4 = heap32[(fp+2)];
-	r3 = r3 >> 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) //_LBB352_38
-{
-	f1 = -f1;
-}
-}
-	f2 =                         0;
-	if(f0 <f2) //_LBB352_41
-{
-	f0 = -f0;
-}
-	if(f16 <f2) //_LBB352_44
-{
-	f16 = -f16;
-}
-	if(f10 <f2) //_LBB352_47
-{
-	f10 = -f10;
-}
-	f2 =       -999999984306749440;
-	r2 = 0;
-	f3 = f10 > 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 <r12) //_LBB354_2
-{
-	r5 = (r5 + 1)|0;
-continue _3;
-}
-else{
-break _3;
-}
-}
-_13: while(true){
-	r12 = r6 << 2;
-	r13 = (r9 + r12)|0;
-	r13 = 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 <r16) //_LBB354_10
-{
-	r6 = (r6 + -1)|0;
-continue _13;
-}
-else{
-break _13;
-}
-}
-	if(r5 <=r6) //_LBB354_20
-{
-	heap32[(r10)] = r13;
-	r7 = heap32[(r3+3)];
-	r7 = (r7 + r12)|0;
-	r5 = (r5 + 1)|0;
-	r6 = (r6 + -1)|0;
-	r7 = r7 >> 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 <r2) //_LBB368_3
-{
-_4: while(true){
-	r8 = r5 << 3;
-	r8 = (r7 + r8)|0;
-	r8 = r8 >> 2;
-	r8 = heap32[(r8+2)];
-	r5 = (r5 + 1)|0;
-	if(r8 <r2) //_LBB368_3
-{
-continue _4;
-}
-else{
-break _4;
-}
-}
-}
-	r9 = r6 << 3;
-	r9 = (r7 + r9)|0;
-	r9 = r9 >> 2;
-	r9 = heap32[(r9)];
-_7: do {
-	if(r2 <r9) //_LBB368_6
-{
-_8: while(true){
-	r9 = r6 << 3;
-	r9 = (r7 + r9)|0;
-	r9 = r9 >> 2;
-	r9 = heap32[(r9+-2)];
-	r6 = (r6 + -1)|0;
-	if(r2 <r9) //_LBB368_6
-{
-continue _8;
-}
-else{
-break _7;
-}
-}
-}
-} while(0);
-	if(r5 <=r6) //_LBB368_9
-{
-	r10 = r5 << 3;
-	r11 = r6 << 3;
-	r10 = (r7 + r10)|0;
-	r7 = (r7 + r11)|0;
-	r10 = r10 >> 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_2
-{
-	f9 = -f9;
-	f5 = -f5;
-	f0 = -f0;
-	f1 = -f1;
-}
-	f7 = heapFloat[(fp+-26)];
-	if(f9 <f7) //_LBB371_5
-{
-__label__ = 4;
-}
-else{
-	f7 = f5*f6;
-	f10 = f0*f6;
-	f7 = f7+f10;
-	f10 = f1*f6;
-	f7 = f7+f10;
-	if(f7 >=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 <f5) //_LBB371_22
-{
-	f0 = f10*f17;
-	f3 = f8*f17;
-	f8 = f15*f17;
-	f1 = f9+f0;
-	f0 = f7+f3;
-	f3 = f14+f8;
-	r5 = 1;
-}
-	r6 = heap32[(r0+2)];
-	r7 = r6 >> 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 <f3) //_LBB373_2
-{
-	f4 = -f4;
-}
-	f5 = heapFloat[(r0+9)];
-	if(f5 <f3) //_LBB373_5
-{
-	f5 = -f5;
-}
-	f6 = heapFloat[(r0+8)];
-	if(f6 <f3) //_LBB373_8
-{
-	f6 = -f6;
-}
-	f7 = heapFloat[(r0+6)];
-	if(f7 <f3) //_LBB373_11
-{
-	f7 = -f7;
-}
-	f8 = heapFloat[(r0+5)];
-	if(f8 <f3) //_LBB373_14
-{
-	f8 = -f8;
-}
-	f9 = heapFloat[(r0+4)];
-	if(f9 <f3) //_LBB373_17
-{
-	f9 = -f9;
-}
-	f10 = heapFloat[(r0+2)];
-	if(f10 <f3) //_LBB373_20
-{
-	f10 = -f10;
-}
-	f11 = heapFloat[(r0+1)];
-	if(f11 <f3) //_LBB373_23
-{
-	f11 = -f11;
-}
-	f12 = heapFloat[(r0)];
-	if(f12 <f3) //_LBB373_26
-{
-	f12 = -f12;
-}
-	f3 = f12*f1;
-	f11 = f11*f2;
-	f9 = f9*f1;
-	f8 = f8*f2;
-	f3 = f3+f11;
-	f10 = f10*f0;
-	f1 = f6*f1;
-	f2 = f5*f2;
-	f5 = f9+f8;
-	f6 = f7*f0;
-	f3 = f3+f10;
-	f7 = heapFloat[(r0+12)];
-	f8 = heapFloat[(r0+13)];
-	f9 = heapFloat[(r0+14)];
-	f5 = f5+f6;
-	r0 = r1 >> 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 <f2)) //_LBB383_6
-{
-	f0 = heapFloat[(r1+8)];
-	f2 = heapFloat[(r0+1)];
-	f3 = f0+f1;
-if(!(f2 >f3)) //_LBB383_6
-{
-	f0 = -f0;
-	f0 = f0-f1;
-if(!(f2 <f0)) //_LBB383_6
-{
-	f0 = heapFloat[(r1+9)];
-	f2 = heapFloat[(r0+2)];
-	f3 = 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 <f6) //_LBB390_2
-{
-	f9 = -f9;
-}
-	f7 = heapFloat[(r0+1)];
-	if(f7 <f6) //_LBB390_5
-{
-	f7 = -f7;
-}
-	f8 = heapFloat[(r0)];
-	if(f8 <f6) //_LBB390_8
-{
-	f8 = -f8;
-}
-	heapFloat[(r1+3)] = f8;
-	heapFloat[(r1+4)] = f7;
-	heapFloat[(r1+5)] = f9;
-	f5 = f5*f8;
-	f4 = f4*f7;
-	f2 = f5-f2;
-	heap32[(r1+6)] = 0;
-	f3 = f3*f9;
-	f1 = f4-f1;
-	heapFloat[(r1+7)] = f2;
-	f0 = f3-f0;
-	heapFloat[(r1+8)] = f1;
-	heapFloat[(r1+9)] = f0;
-	heap32[(r1+10)] = 0;
-	return;
-}
-
-function _ZN10btBoxShapeD0Ev(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)) //_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) <uint(2)) //_LBB399_2
-{
-	r2 = heap32[(fp+2)];
-	r4 = heap32[(fp+-17)];
-	r5 = heap32[(fp+-18)];
-	r5 = (r5 * r2)|0;
-	r6 = heap32[(r0+1)];
-	r4 = (r4 + r5)|0;
-	r5 = -6;
-_3: while(true){
-	r7 = 0;
-	r8 = r5 << 1;
-	r7 = (r7 - r8)|0;
-	if(r1 !=3) //_LBB399_5
-{
-	r8 = (r4 - r8)|0;
-	r8 = r8 >> 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) <uint(2)) //_LBB402_2
-{
-	r2 = heap32[(fp+2)];
-	r4 = heap32[(fp+-17)];
-	r5 = heap32[(fp+-18)];
-	r5 = (r5 * r2)|0;
-	r6 = heap32[(r0+1)];
-	r4 = (r4 + r5)|0;
-	r5 = -6;
-_3: while(true){
-	r7 = 0;
-	r8 = r5 << 1;
-	r7 = (r7 - r8)|0;
-	if(r1 !=3) //_LBB402_5
-{
-	r8 = (r4 - r8)|0;
-	r8 = r8 >> 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) <uint(2)) //_LBB405_2
-{
-	r3 = heap32[(fp+2)];
-	r5 = heap32[(fp+-5)];
-	r6 = heap32[(fp+-6)];
-	r6 = (r6 * r3)|0;
-	r5 = (r6 + r5)|0;
-	r6 = heap32[(r1+1)];
-	r5 = (r5 + 8)|0;
-	r7 = 0;
-	r8 = r7;
-_3: while(true){
-	r9 = r8 << 1;
-	r10 = (r7 - r9)|0;
-	if(r2 !=3) //_LBB405_5
-{
-	r9 = (r5 - r9)|0;
-	r9 = r9 >> 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 <f4) //_LBB418_2
-{
-	f3 = -f3;
-}
-	f5 = heapFloat[(r0+9)];
-	if(f5 <f4) //_LBB418_5
-{
-	f5 = -f5;
-}
-	f6 = heapFloat[(r0+8)];
-	if(f6 <f4) //_LBB418_8
-{
-	f6 = -f6;
-}
-	f7 = heapFloat[(r0+6)];
-	if(f7 <f4) //_LBB418_11
-{
-	f7 = -f7;
-}
-	f8 = heapFloat[(r0+5)];
-	if(f8 <f4) //_LBB418_14
-{
-	f8 = -f8;
-}
-	f9 = heapFloat[(r0+4)];
-	if(f9 <f4) //_LBB418_17
-{
-	f9 = -f9;
-}
-	f10 = heapFloat[(r0+2)];
-	if(f10 <f4) //_LBB418_20
-{
-	f10 = -f10;
-}
-	f11 = heapFloat[(r0+1)];
-	if(f11 <f4) //_LBB418_23
-{
-	f11 = -f11;
-}
-	f12 = heapFloat[(r0)];
-	if(f12 <f4) //_LBB418_26
-{
-	f12 = -f12;
-}
-	f4 = f12*f2;
-	f11 = f11*f1;
-	f9 = f9*f2;
-	f8 = f8*f1;
-	f4 = f4+f11;
-	f10 = f10*f0;
-	f2 = f6*f2;
-	f1 = f5*f1;
-	f5 = f9+f8;
-	f6 = f7*f0;
-	f4 = f4+f10;
-	f7 = heapFloat[(r0+12)];
-	f8 = heapFloat[(r0+13)];
-	f9 = heapFloat[(r0+14)];
-	f5 = f5+f6;
-	r0 = r1 >> 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 <f6) //_LBB424_2
-{
-	f9 = -f9;
-}
-	f7 = heapFloat[(r0+1)];
-	if(f7 <f6) //_LBB424_5
-{
-	f7 = -f7;
-}
-	f8 = heapFloat[(r0)];
-	if(f8 <f6) //_LBB424_8
-{
-	f8 = -f8;
-}
-	heapFloat[(r1+3)] = f8;
-	heapFloat[(r1+4)] = f7;
-	heapFloat[(r1+5)] = f9;
-	f5 = f5*f8;
-	f4 = f4*f7;
-	f2 = f5-f2;
-	heap32[(r1+6)] = 0;
-	f3 = f3*f9;
-	f1 = f4-f1;
-	heapFloat[(r1+7)] = f2;
-	f0 = f3-f0;
-	heapFloat[(r1+8)] = f1;
-	heapFloat[(r1+9)] = f0;
-	heap32[(r1+10)] = 0;
-	return;
-}
-
-function _ZN14btCapsuleShapeD0Ev(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)) //_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 <r2) //_LBB445_2
-{
-continue _3;
-}
-else{
-break _3;
-}
-}
-}
-	return;
-}
-
-function _ZNK17btConvexHullShape8isInsideERK9btVector3f(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)] = 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 <f1) //_LBB456_2
-{
-	f0 = -f0;
-}
-	f2 = heapFloat[(r0+1)];
-	if(f2 <f1) //_LBB456_5
-{
-	f2 = -f2;
-}
-	f3 = heapFloat[(r0)];
-	if(f3 <f1) //_LBB456_8
-{
-	f3 = -f3;
-}
-	r0 = r1 >> 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 <f5) //_LBB462_30
-{
-	f3 = -f3;
-}
-	r1 = r6 << 2;
-	r4 = (r0 + r4)|0;
-	r1 = (r0 + r1)|0;
-	r4 = r4 >> 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 <f5) //_LBB462_26
-{
-	f3 = -f3;
-}
-	r4 = r6 << 2;
-	r1 = (r0 + r1)|0;
-	r4 = (r0 + r4)|0;
-	r1 = r1 >> 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 <f4) //_LBB463_2
-{
-	heap32[(fp+-8)] = -1082130432;
-	heap32[(r2+1)] = -1082130432;
-	f2 =                        -1;
-	heap32[(r2+2)] = -1082130432;
-	heap32[(r2+3)] = 0;
-	f1 = f2;
-	f0 = f2;
-}
-	f0 = f0*f0;
-	f1 = f1*f1;
-	f0 = f0+f1;
-	f1 = f2*f2;
-	f0 = f0+f1;
-	heapFloat[(g0)] = f0;
-	sqrtf(i7);
-	f1 =                         1;
-	f0 = f1/f_g0;
-	f1 = heapFloat[(fp+-8)];
-	f1 = f1*f0;
-	heapFloat[(fp+-8)] = f1;
-	f2 = heapFloat[(r2+1)];
-	f2 = f2*f0;
-	heapFloat[(r2+1)] = f2;
-	f3 = heapFloat[(r2+2)];
-	f0 = f3*f0;
-	r0 = r4 >> 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) <uint(2)) //_LBB463_15
-{
-	f3 = heapFloat[(r0+11)];
-__label__ = 16;
-}
-else{
-__label__ = 15;
-}
-}
-}
-}
-} while(0);
-if (__label__ == 15){
-	r0 = heap32[(r0)];
-	r0 = r0 >> 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 <f1) //_LBB469_8
-{
-	heapFloat[(fp+-8)] = f0;
-	f2 = f0;
-}
-else{
-	f2 = f1;
-}
-	f3 = heapFloat[(r3+1)];
-	if(f3 <f1) //_LBB469_11
-{
-	heapFloat[(r5+1)] = f3;
-	f1 = f3;
-}
-else{
-	f1 =        999999984306749440;
-}
-	f4 = heapFloat[(r3+2)];
-	f5 =        999999984306749440;
-	if(f4 <f5) //_LBB469_14
-{
-	heapFloat[(r5+2)] = f4;
-	f5 = f4;
-}
-	f6 = heapFloat[(r3+3)];
-	f7 =                         0;
-	if(f6 <f7) //_LBB469_17
-{
-	heapFloat[(r5+3)] = f6;
-	f7 = f6;
-}
-	f8 =       -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 <f2) //_LBB469_32
-{
-	heapFloat[(fp+-8)] = f6;
-	f2 = f6;
-}
-	f9 = heapFloat[(r3+5)];
-	if(f9 <f1) //_LBB469_35
-{
-	heapFloat[(r5+1)] = f9;
-	f1 = f9;
-}
-	f10 = heapFloat[(r3+6)];
-	if(f10 <f5) //_LBB469_38
-{
-	heapFloat[(r5+2)] = f10;
-	f5 = f10;
-}
-	f11 = heapFloat[(r3+7)];
-	if(f11 <f7) //_LBB469_41
-{
-	heapFloat[(r5+3)] = f11;
-	f7 = f11;
-}
-	if(f0 <f6) //_LBB469_44
-{
-	heapFloat[(fp+-12)] = f6;
-	f0 = f6;
-}
-	if(f3 <f9) //_LBB469_47
-{
-	heapFloat[(r7+1)] = f9;
-	f3 = f9;
-}
-	if(f8 <f10) //_LBB469_50
-{
-	heapFloat[(r7+2)] = f10;
-	f8 = f10;
-}
-	if(f4 <f11) //_LBB469_53
-{
-	heapFloat[(r7+3)] = f11;
-	f4 = f11;
-}
-	f6 = heapFloat[(r3+8)];
-	if(f6 <f2) //_LBB469_56
-{
-	heapFloat[(fp+-8)] = f6;
-	f2 = f6;
-}
-	f9 = heapFloat[(r3+9)];
-	if(f9 <f1) //_LBB469_59
-{
-	heapFloat[(r5+1)] = f9;
-	f1 = f9;
-}
-	f10 = heapFloat[(r3+10)];
-	if(f10 <f5) //_LBB469_62
-{
-	heapFloat[(r5+2)] = f10;
-	f5 = f10;
-}
-	f11 = heapFloat[(r3+11)];
-if(!(f11 >=f7)) //_LBB469_65
-{
-	heapFloat[(r5+3)] = f11;
-}
-	if(f0 <f6) //_LBB469_67
-{
-	heapFloat[(fp+-12)] = f6;
-	f0 = f6;
-}
-	if(f3 <f9) //_LBB469_70
-{
-	heapFloat[(r7+1)] = f9;
-	f3 = f9;
-}
-	if(f8 <f10) //_LBB469_73
-{
-	heapFloat[(r7+2)] = f10;
-	f8 = f10;
-}
-if(!(f4 >=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 <r6) //_LBB490_2
-{
-	r9 = heap32[(r1)];
-	r9 = r9 >> 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 <r13)) //_LBB490_12
-{
-break _11;
-}
-}
-}
-	r11 = heap32[(r5)];
-	r11 = 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 <r13)) //_LBB490_7
-{
-break _17;
-}
-}
-}
-} while(0);
-	r11 = heap32[(r5)];
-	r11 = 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 <r9)) //_LBB490_25
-{
-break _26;
-}
-}
-}
-} while(0);
-	r9 = heap32[(r5)];
-	r9 = r9 >> 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) <uint(2))) //_LBB490_29
-{
-__label__ = 28;
-break _3;
-}
-}
-else{
-	r10 = heap32[(fp+-7)];
-if(!(r10 ==0)) //_LBB490_29
-{
-	r11 = heap32[(r5)];
-	r11 = r11 >> 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 <r11)) //_LBB490_20
-{
-break _36;
-}
-}
-}
-} while(0);
-	r9 = heap32[(r5)];
-	r9 = 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 <r2) //_LBB491_1
-{
-	r5 = heap32[(r1)];
-	r5 = r5 >> 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 <r6) //_LBB491_20
-{
-continue _9;
-}
-else{
-break _4;
-}
-}
-}
-}
-else{
-	if(r5 !=2) //_LBB491_21
-{
-	r5 = (r5 + -2)|0;
-if(!(uint(r5) <uint(2))) //_LBB491_25
-{
-__label__ = 22;
-break _1;
-}
-}
-else{
-	r5 = heap32[(fp+-8)];
-	if(r5 <1) //_LBB491_25
-{
-break _4;
-}
-else{
-	r5 = 0;
-_16: while(true){
-	r6 = heap32[(fp+-3)];
-	r7 = heap32[(fp+-2)];
-	r6 = (r6 * r5)|0;
-	r6 = (r7 + r6)|0;
-	r6 = r6 >> 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 <r6) //_LBB491_19
-{
-continue _16;
-}
-else{
-break _4;
-}
-}
-}
-}
-}
-}
-else{
-	if(r5 !=0) //_LBB491_23
-{
-if(!(uint(r5) <uint(2))) //_LBB491_25
-{
-__label__ = 24;
-break _1;
-}
-}
-else{
-	r5 = heap32[(fp+-5)];
-	if(r5 ==3) //_LBB491_7
-{
-	r5 = heap32[(fp+-8)];
-	if(r5 <1) //_LBB491_25
-{
-break _4;
-}
-else{
-	r5 = 0;
-_25: 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;
-	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 <r6) //_LBB491_10
-{
-continue _25;
-}
-else{
-break _4;
-}
-}
-}
-}
-else{
-	if(r5 !=2) //_LBB491_11
-{
-	r5 = (r5 + -2)|0;
-if(!(uint(r5) <uint(2))) //_LBB491_25
-{
-__label__ = 12;
-break _1;
-}
-}
-else{
-	r5 = heap32[(fp+-8)];
-if(!(r5 <1)) //_LBB491_25
-{
-	r5 = 0;
-_32: while(true){
-	r6 = heap32[(fp+-3)];
-	r7 = heap32[(fp+-2)];
-	r6 = (r6 * r5)|0;
-	r6 = (r7 + r6)|0;
-	r6 = r6 >> 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 <r6)) //_LBB491_9
-{
-break _4;
-}
-}
-}
-}
-}
-}
-}
-} while(0);
-	r5 = heap32[(r1)];
-	r5 = 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 <f6) //_LBB511_2
-{
-	f7 = -f10;
-}
-else{
-	f7 = f10;
-}
-	f8 = heapFloat[(r0+9)];
-	if(f8 <f6) //_LBB511_5
-{
-	f9 = -f8;
-}
-else{
-	f9 = f8;
-}
-	f11 = heapFloat[(r0+8)];
-	if(f11 <f6) //_LBB511_8
-{
-	f12 = -f11;
-}
-else{
-	f12 = f11;
-}
-	f13 = heapFloat[(r0+6)];
-	if(f13 <f6) //_LBB511_11
-{
-	f14 = -f13;
-}
-else{
-	f14 = f13;
-}
-	f15 = heapFloat[(r0+5)];
-	if(f15 <f6) //_LBB511_14
-{
-	f16 = -f15;
-}
-else{
-	f16 = f15;
-}
-	f17 = heapFloat[(r0+4)];
-	if(f17 <f6) //_LBB511_17
-{
-	f18 = -f17;
-}
-else{
-	f18 = f17;
-}
-	f19 = heapFloat[(r0+2)];
-	if(f19 <f6) //_LBB511_20
-{
-	f20 = -f19;
-}
-else{
-	f20 = f19;
-}
-	f21 = heapFloat[(r0+1)];
-	if(f21 <f6) //_LBB511_23
-{
-	f22 = -f21;
-}
-else{
-	f22 = f21;
-}
-	f23 = heapFloat[(r0)];
-	if(f23 <f6) //_LBB511_26
-{
-	f6 = -f23;
-}
-else{
-	f6 = f23;
-}
-	f23 = f23*f5;
-	f21 = f21*f3;
-	f17 = f17*f5;
-	f15 = f15*f3;
-	f21 = f23+f21;
-	f19 = f19*f1;
-	f6 = f6*f4;
-	f22 = f22*f2;
-	f5 = f11*f5;
-	f3 = f8*f3;
-	f8 = f17+f15;
-	f11 = f13*f1;
-	f13 = f18*f4;
-	f15 = f16*f2;
-	f16 = f21+f19;
-	f17 = heapFloat[(r0+12)];
-	f6 = f6+f22;
-	f18 = f20*f0;
-	f3 = f5+f3;
-	f1 = f10*f1;
-	f4 = f12*f4;
-	f2 = f9*f2;
-	f5 = f8+f11;
-	f8 = heapFloat[(r0+13)];
-	f9 = heapFloat[(r0+14)];
-	f10 = f13+f15;
-	f11 = f14*f0;
-	f12 = f16+f17;
-	f6 = f6+f18;
-	f1 = f3+f1;
-	r0 = r1 >> 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 <f1) //_LBB515_2
-{
-	heapFloat[(r1+21)] = f1;
-	heap32[(r1+1)] = heap32[(r0)];
-	heap32[(r1+2)] = heap32[(r0+1)];
-	heap32[(r1+3)] = heap32[(r0+2)];
-	heap32[(r1+4)] = heap32[(r0+3)];
-	f5 = f1;
-}
-	f1 = heapFloat[(r0+4)];
-	f3 = heapFloat[(r0+5)];
-	f1 = f0*f1;
-	f3 = f2*f3;
-	f6 = heapFloat[(r0+6)];
-	f1 = f1+f3;
-	f3 = f4*f6;
-	f1 = f1+f3;
-	if(f5 <f1) //_LBB515_7
-{
-	heapFloat[(r1+21)] = f1;
-	heap32[(r1+1)] = heap32[(r0+4)];
-	heap32[(r1+2)] = heap32[(r0+5)];
-	heap32[(r1+3)] = heap32[(r0+6)];
-	heap32[(r1+4)] = heap32[(r0+7)];
-	f5 = f1;
-}
-	f1 = heapFloat[(r0+8)];
-	f3 = heapFloat[(r0+9)];
-	f0 = f0*f1;
-	f1 = f2*f3;
-	f2 = heapFloat[(r0+10)];
-	f0 = f0+f1;
-	f1 = f4*f2;
-	f0 = f0+f1;
-	if(f5 <f0) //_LBB515_8
-{
-	heapFloat[(r1+21)] = f0;
-	heap32[(r1+1)] = heap32[(r0+8)];
-	heap32[(r1+2)] = heap32[(r0+9)];
-	heap32[(r1+3)] = heap32[(r0+10)];
-	heap32[(r1+4)] = heap32[(r0+11)];
-	return;
-}
-else{
-	return;
-}
-}
-
-function _ZN19btTriangleMeshShape15setLocalScalingERK9btVector3(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;
-	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 <f1)) //_LBB520_7
-{
-	f0 = heapFloat[(r1+2)];
-	f1 = heapFloat[(r1+6)];
-	f2 = heapFloat[(r1+10)];
-	f3 = f0 < f1 ? f0 : f1;
-	f3 = f3 < f2 ? f3 : f2;
-	f4 = heapFloat[(r2+8)];
-if(!(f3 >f4)) //_LBB520_7
-{
-	f0 = f0 > f1 ? f0 : f1;
-	f0 = f0 > f2 ? f0 : f2;
-	f1 = heapFloat[(r2+4)];
-if(!(f0 <f1)) //_LBB520_7
-{
-	f0 = heapFloat[(r1+1)];
-	f1 = heapFloat[(r1+5)];
-	f2 = heapFloat[(r1+9)];
-	f3 = f0 < f1 ? f0 : f1;
-	f3 = f3 < f2 ? f3 : f2;
-	f4 = heapFloat[(r2+7)];
-if(!(f3 >f4)) //_LBB520_7
-{
-	f0 = f0 > f1 ? f0 : f1;
-	f0 = f0 > f2 ? f0 : f2;
-	f1 = heapFloat[(r2+3)];
-if(!(f0 <f1)) //_LBB520_7
-{
-	r1 = heap32[(fp+2)];
-	r3 = heap32[(fp+3)];
-	r2 = heap32[(r2+1)];
-	r4 = r2 >> 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 <f6) //_LBB534_21
-{
-break _1;
-}
-else{
-	f10 =                         1;
-	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 <f3) //_LBB540_14
-{
-break _1;
-}
-else{
-	f4 =                         1;
-	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 <f2) //_LBB541_4
-{
-	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) //_LBB544_23
-{
-	f0 = -f0;
-}
-	r0 = 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) <uint(3)) //_LBB544_6
-{
-	r3 = sp + -64;
-	r4 = r3 >> 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) <uint(3)) //_LBB544_11
-{
-	r3 = sp + -80;
-	r4 = r3 >> 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 <f16)) //_LBB545_7
-{
-	if(f0 >=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 <f16) //_LBB545_12
-{
-	f17 = heapFloat[(r5)];
-	f0 = heapFloat[(r5+1)];
-	f2 = heapFloat[(r5+2)];
-	f17 = f17*f13;
-	f0 = f0*f12;
-	heapFloat[(g0)] = f15;
-	f17 = f17+f0;
-	f0 = f2*f14;
-	f17 = f17+f0;
-	r0 = r7 >> 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) <uint(4)) //_LBB546_7
-{
-	r9 = r8 << 4;
-	r9 = (r2 + r9)|0;
-	r10 = r7 >> 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 <f1) //_LBB546_10
-{
-__label__ = 10;
-break _5;
-}
-else{
-	r8 = (r8 + 1)|0;
-}
-}
-else{
-break _8;
-}
-}
-	r8 = heap32[(fp+-50)];
-	r8 = r8 << 4;
-	r8 = (r2 + r8)|0;
-	r8 = r8 >> 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 <f5) //_LBB546_22
-{
-	f0 = -f6;
-}
-else{
-	f0 = f6;
-}
-	if(f0 <=f5) //_LBB546_45
-{
-__label__ = 42;
-break _5;
-}
-else{
-	r12 = sp + -76;
-	r14 = r12 >> 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 <f1)) //_LBB546_29
-{
-	if(f0 >=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 <f5) //_LBB546_34
-{
-	heap32[(fp+-49)] = 15;
-	f0 = heapFloat[(r7+5)];
-	f1 = heapFloat[(r8+6)];
-	f2 = heapFloat[(r8+4)];
-	f3 = heapFloat[(r7+6)];
-	f7 = heapFloat[(r7+4)];
-	f8 = f0*f1;
-	f9 = heapFloat[(r5+4)];
-	f10 = f3*f2;
-	f11 = heapFloat[(r5+5)];
-	f12 = f7*f1;
-	f8 = f8*f9;
-	f10 = f10*f11;
-	f13 = heapFloat[(r8+5)];
-	f14 = heapFloat[(r5+6)];
-	f15 = f0*f2;
-	f8 = f8+f10;
-	f10 = f12*f11;
-	f12 = f7*f13;
-	f8 = f8-f10;
-	f10 = f15*f14;
-	f15 = f3*f13;
-	f8 = f8-f10;
-	f10 = f12*f14;
-	f8 = f8+f10;
-	f10 = f15*f9;
-	f8 = f8-f10;
-	f8 = f8/f6;
-	heapFloat[(fp+-48)] = f8;
-	f10 = heapFloat[(r9+5)];
-	f12 = heapFloat[(r9+6)];
-	f15 = heapFloat[(r9+4)];
-	f16 = f10*f3;
-	f17 = f12*f7;
-	f18 = f13*f12;
-	f19 = f1*f15;
-	f3 = f15*f3;
-	f16 = f16*f9;
-	f17 = f17*f11;
-	f20 = f2*f12;
-	f7 = f10*f7;
-	f18 = f18*f9;
-	f19 = f19*f11;
-	f16 = f16+f17;
-	f3 = f3*f11;
-	f13 = f13*f15;
-	f15 = f15*f0;
-	f17 = f18+f19;
-	f11 = f20*f11;
-	f3 = f16-f3;
-	f7 = f7*f14;
-	f2 = f2*f10;
-	f0 = f12*f0;
-	f11 = f17-f11;
-	f12 = f13*f14;
-	f3 = f3-f7;
-	f7 = f15*f14;
-	f1 = f1*f10;
-	f10 = f11-f12;
-	f2 = f2*f14;
-	f3 = f3+f7;
-	f0 = f0*f9;
-	f0 = f3-f0;
-	f2 = f10+f2;
-	f1 = f1*f9;
-	r5 = sp + -192;
-	f1 = f2-f1;
-	f0 = f0/f6;
-	r5 = r5 >> 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 <f0) //_LBB546_45
-{
-__label__ = 42;
-break _5;
-}
-else{
-	r7 = heap32[(fp+-49)];
-	f5 = f3;
-}
-}
-	r5 = heap32[(fp+-51)];
-	r8 = (r5 * 36)|0;
-	r8 = (r0 + r8)|0;
-	r9 = r8 >> 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) <uint(128)) //_LBB546_48
-{
-	r3 = heap32[(r1+94)];
-	if(r3 !=0) //_LBB546_50
-{
-__label__ = 47;
-break _5;
-}
-else{
-	r5 = heap32[(fp+-50)];
-	r3 = (r5 + 1)|0;
-	f0 = heapFloat[(r1+32)];
-	f1 = heapFloat[(r1+33)];
-	f2 = heapFloat[(r1+34)];
-	r5 = r3 & 3;
-	heap32[(fp+-50)] = r5;
-	f3 = f5;
-continue _5;
-}
-}
-else{
-__label__ = 44;
-break _5;
-}
-}
-else{
-__label__ = 12;
-break _5;
-}
-}
-else{
-__label__ = 5;
-break _5;
-}
-}
-switch(__label__ ){//multiple entries
-case 10:
-	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;
-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) <uint(2)) //_LBB549_57
-{
-__label__ = 56;
-}
-else{
-	heap32[(g0)] = r2;
-	_ZN12gjkepa2_impl3GJK13EncloseOriginEv(i7);
-	r4 = r_g0;
-	if(r4 ==0) //_LBB549_57
-{
-__label__ = 56;
-}
-else{
-	r4 = heap32[(r7+2448)];
-_14: do {
-if(!(r4 ==0)) //_LBB549_19
-{
-_15: while(true){
-	r8 = 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 <f4) //_LBB549_21
-{
-	heap32[(r3)] = r4;
-	heap32[(r3+1)] = r8;
-	f3 = heapFloat[(r3+4)];
-	heap32[(r3+4)] = heap32[(r3+5)];
-	heapFloat[(r3+5)] = f3;
-	r9 = r4;
-	r4 = r8;
-}
-else{
-	r9 = r8;
-}
-	heap32[(g0)] = r6;
-	heap32[(g0+1)] = r9;
-	heap32[(g0+2)] = r4;
-	heap32[(g0+3)] = r12;
-	heap32[(g0+4)] = 1;
-	_ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i7);
-	r4 = r_g0;
-	r8 = heap32[(r3+3)];
-	r9 = heap32[(r3)];
-	r10 = heap32[(r3+1)];
-	heap32[(g0)] = r6;
-	heap32[(g0+1)] = r10;
-	heap32[(g0+2)] = r9;
-	heap32[(g0+3)] = r8;
-	heap32[(g0+4)] = 1;
-	_ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i7);
-	r8 = r_g0;
-	r9 = heap32[(r3+3)];
-	r10 = heap32[(r3+1)];
-	r11 = heap32[(r3+2)];
-	heap32[(g0)] = r6;
-	heap32[(g0+1)] = r11;
-	heap32[(g0+2)] = r10;
-	heap32[(g0+3)] = r9;
-	heap32[(g0+4)] = 1;
-	_ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i7);
-	r9 = r_g0;
-	r10 = heap32[(r3+3)];
-	r11 = heap32[(r3+2)];
-	r12 = heap32[(r3)];
-	heap32[(g0)] = r6;
-	heap32[(g0+1)] = r12;
-	heap32[(g0+2)] = r11;
-	heap32[(g0+3)] = r10;
-	heap32[(g0+4)] = 1;
-	_ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i7);
-	r10 = r_g0;
-	r11 = heap32[(r7+2449)];
-	if(r11 !=4) //_LBB549_57
-{
-__label__ = 56;
-}
-else{
-	r3 = heap32[(r7+2448)];
-	r11 = r3 >> 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 <f2)) //_LBB549_27
-{
-	f0 = heapFloat[(r12+4)];
-	f0 = f0*f0;
-if(!(f0 >=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(255)) //_LBB549_30
-{
-	r8 = heap32[(r7+2447)];
-	if(uint(r8) >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) <uint(3)) //_LBB549_52
-{
-__label__ = 51;
-break _42;
-}
-else{
-	r8 = heap32[(fp+-4)];
-	r9 = heap32[(r10+1)];
-	r10 = 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 <f8)) //_LBB549_49
-{
-	f6 = heapFloat[(r9+4)];
-	f6 = f6*f6;
-if(!(f6 >=f9)) //_LBB549_49
-{
-continue _67;
-}
-}
-}
-else{
-break _67;
-}
-}
-}
-	r8 = r11 >> 2;
-	f6 = heapFloat[(r8+5)];
-	r4 = (r4 + 1)|0;
-if(!(f6 <f5)) //_LBB549_55
-{
-break _44;
-}
-}
-}
-}
-}
-}
-else{
-__label__ = 55;
-break _42;
-}
-}
-	f0 = heapFloat[(r8)];
-	f1 = heapFloat[(r8+1)];
-	f2 = heapFloat[(r8+2)];
-	f3 = heapFloat[(r8+3)];
-	f4 = heapFloat[(r8+4)];
-	r12 = heap32[(r8+6)];
-	r13 = heap32[(r8+7)];
-	r3 = heap32[(r8+8)];
-	f5 = f6;
-}
-switch(__label__ ){//multiple entries
-case 53:
-	heap32[(fp+-2592)] = 6;
-break;
-case 52:
-	heap32[(fp+-2592)] = 7;
-break;
-case 51:
-	heap32[(fp+-2592)] = 4;
-break;
-}
-	heapFloat[(r7+10)] = f0;
-	heapFloat[(r7+11)] = f1;
-	heapFloat[(r7+12)] = f2;
-	heapFloat[(r7+13)] = f3;
-	heapFloat[(r7+14)] = f4;
-	heap32[(r7+9)] = 3;
-	heap32[(r7+1)] = r12;
-	heap32[(r7+2)] = r13;
-	heap32[(r7+3)] = r3;
-	r3 = r3 >> 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 <f9) //_LBB556_43
-{
-__label__ = 44;
-}
-else{
-	r8 = r17 & 255;
-	if(r8 ==1) //_LBB556_44
-{
-__label__ = 60;
-}
-else{
-__label__ = 44;
-}
-}
-}
-}
-}
-if (__label__ == 42){
-	r6 = r17 & 255;
-	if(r6 ==1) //_LBB556_44
-{
-__label__ = 60;
-}
-else{
-	r6 = heap32[(r1+5)];
-	if(r6 ==0) //_LBB556_62
-{
-__label__ = 59;
-}
-else{
-__label__ = 44;
-}
-}
-}
-_58: do {
-if (__label__ == 44){
-	r8 = gNumDeepPenetrationChecks;
-	r8 = r8 >> 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 <f0)) //_LBB556_65
-{
-	f0 = f2*f2;
-	f1 = heapFloat[(r4+32)];
-	if(f0 >=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 <f14)) //_LBB559_11
-{
-	f2 = f2-f16;
-	f5 = f5-f12;
-	f8 = f8-f11;
-	f11 = f3*f2;
-	f12 = f0*f5;
-	f0 = f0*f8;
-	f16 = f6*f2;
-	f11 = f11-f12;
-	f0 = f0-f16;
-	f6 = f6*f5;
-	f3 = f3*f8;
-	f11 = f11*f15;
-	f0 = f0*f10;
-	f3 = f6-f3;
-	f0 = f11+f0;
-	f3 = f3*f9;
-	f0 = f0+f3;
-if(!(f0 <f14)) //_LBB559_11
-{
-	f0 = f5*f1;
-	f3 = f2*f4;
-	f2 = f2*f7;
-	f1 = f8*f1;
-	f0 = f0-f3;
-	f1 = f2-f1;
-	f2 = f8*f4;
-	f3 = f5*f7;
-	f0 = f0*f15;
-	f1 = f1*f10;
-	f2 = f2-f3;
-	f0 = f0+f1;
-	f1 = f2*f9;
-	f0 = f0+f1;
-if(!(f0 <f14)) //_LBB559_11
-{
-	r4 = heap32[(fp+2)];
-	r5 = heap32[(fp+3)];
-	heapFloat[(g0)] = f13;
-	sqrtf(i7);
-	f0 = f20/f_g0;
-	f1 = heapFloat[(fp+-8)];
-	f1 = f1*f0;
-	heapFloat[(fp+-8)] = f1;
-	f2 = heapFloat[(r1+1)];
-	f2 = f2*f0;
-	heapFloat[(r1+1)] = f2;
-	f3 = heapFloat[(r1+2)];
-	f0 = f3*f0;
-	heapFloat[(r1+2)] = f0;
-	r1 = heap32[(r3)];
-	r1 = r1 >> 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_24
-{
-	heap32[(r1+33)] = 0;
-	heap32[(r1+34)] = 0;
-	f0 =                         0;
-	heap32[(r1+35)] = 0;
-	heap32[(r1+36)] = 0;
-	f2 = f0;
-	f1 = f0;
-}
-else{
-	heapFloat[(g0)] = f0;
-	f0 =                         1;
-	sqrtf(i7);
-	f0 = f0/f_g0;
-	f1 = f10*f0;
-	f7 = heapFloat[(fp+-48)];
-	f2 = f7*f0;
-	heapFloat[(r1+33)] = f1;
-	f11 = heapFloat[(fp+-49)];
-	f0 = f11*f0;
-	heapFloat[(r1+34)] = f2;
-	heapFloat[(r1+35)] = f0;
-	heap32[(r1+36)] = 0;
-}
-	f3 = heapFloat[(fp+-50)];
-	f1 = f1*f3;
-	f3 = heapFloat[(fp+-51)];
-	f2 = f2*f3;
-	f3 = heapFloat[(r1+43)];
-	f1 = f1+f2;
-	f2 = heapFloat[(fp+-52)];
-	f0 = f0*f2;
-	f0 = f1+f0;
-	f1 = -f3;
-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 <f17) //_LBB568_7
-{
-__label__ = 7;
-}
-else{
-	if(f21 >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
-{
-if(!(f23 >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 <f17)) //_LBB568_14
-{
-if(!(f3 >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{
-	if(f11 >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 <f17)) //_LBB568_23
-{
-	f3 = f3-f11;
-if(!(f3 <f17)) //_LBB568_23
-{
-	f1 = f20+f3;
-	f1 = f20/f1;
-	f5 = f6-f4;
-	f7 = f2-f0;
-	f5 = f5*f1;
-	f9 = f10-f8;
-	f7 = f7*f1;
-	r2 = r0 >> 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 <f7) //_LBB569_2
-{
-	r0 = -1;
-	r_g0 = r0;
-	return;
-}
-else{
-	f5 = heapFloat[(fp)];
-	f7 = heapFloat[(fp+1)];
-	f8 = heapFloat[(fp+2)];
-	f5 = f5-f6;
-	f3 = f7-f3;
-	f5 = f5*f11;
-	f1 = f3*f1;
-	f0 = f8-f0;
-	f1 = f5+f1;
-	f0 = f0*f4;
-	f0 = f1+f0;
-	f0 = f0*f2;
-	f1 =                         0;
-	r0 = f0 < f1;
-	r0 = r0 & 1;
-	r_g0 = r0;
-	return;
-}
-}
-
-function _ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(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 = 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)) //_LBB571_17
-{
-	f0 = heapFloat[(r2+86)];
-if(!(f0 <f1)) //_LBB571_17
-{
-	f0 = heapFloat[(r2+87)];
-	r1 = 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)) //_LBB571_23
-{
-	f0 = heapFloat[(r2+86)];
-if(!(f0 <f1)) //_LBB571_23
-{
-	f0 = heapFloat[(r2+87)];
-	r1 = 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) //_LBB571_47
-{
-break _5;
-}
-else{
-	f0 = heapFloat[(r2+86)];
-	if(f0 <f1) //_LBB571_47
-{
-break _5;
-}
-else{
-	f0 = heapFloat[(r2+87)];
-	r1 = 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 <f9) //_LBB579_6
-{
-	f9 = -f6;
-}
-else{
-	f9 = f6;
-}
-	f11 =       0.70710676908493042;
-	if(f9 >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_5
-{
-	if(uint(r2) >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_9
-{
-	if(uint(r2) >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 <f22) //_LBB587_4
-{
-	f0 = -f0;
-}
-	f1 =   1.1920928955078125e-007;
-	if(f0 <f1) //_LBB587_83
-{
-__label__ = 72;
-}
-else{
-	r1 = 1;
-	heap8[r0+514] = r1;
-	return;
-}
-}
-}
-_8: do {
-if (__label__ == 6){
-	r2 = heap32[(fp+3)];
-	r5 = heap32[(fp+4)];
-	r6 = sp + -64;
-	r7 = (r0 + 288)|0;
-	heap32[(g0)] = r7;
-	heap32[(g0+1)] = r6;
-	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
-	r7 = sp + -48;
-	heap32[(g0)] = r3;
-	heap32[(g0+1)] = r7;
-	_ZNK11btMatrix3x311getRotationER12btQuaternion(i7);
-	r7 = r7 >> 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 <f12) //_LBB587_33
-{
-__label__ = 27;
-}
-else{
-	f0 = heapFloat[(r1+109)];
-	if(f0 <f12) //_LBB587_33
-{
-__label__ = 27;
-}
-else{
-	f12 =                        -1;
-	f12 = f5 < f12 ? f12 : f5;
-	f12 = f12 > 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 <f6) //_LBB587_25
-{
-	f8 = f12-f5;
-	f3 = f4-f5;
-	f8 = f8/f3;
-}
-}
-	f12 = f12-f5;
-	heapFloat[(r1+129)] = f8;
-	f3 = f1; //fstod f1, f3
-	heapFloat[(r1+123)] = f12;
-	f12 = Math.abs(f3);
-	f3 =   1.1920928955078125e-007;
-	if(f12 >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 <f1) //_LBB587_37
-{
-	f7 = -f7;
-}
-	f2 =   1.1920928955078125e-007;
-if(!(f7 >=f2)) //_LBB587_43
-{
-	if(f9 <f1) //_LBB587_41
-{
-	f9 = -f9;
-}
-	if(f9 <f2) //_LBB587_67
-{
-break _37;
-}
-}
-	f1 = f10*f8;
-	f2 = f11*f6;
-	f1 = f1-f2;
-	r3 = 1;
-	f2 = f11*f14;
-	f3 = f0*f8;
-	f2 = f2-f3;
-	f0 = f0*f6;
-	f3 = f10*f14;
-	f1 = -f1;
-	heap8[r0+514] = r3;
-	f0 = f0-f3;
-	f2 = -f2;
-	heapFloat[(r1+112)] = f1;
-	f0 = -f0;
-	heapFloat[(r1+113)] = f2;
-	heapFloat[(r1+114)] = f0;
-	heap32[(r1+115)] = 0;
-break _37;
-}
-}
-	f13 = f0*f14;
-	f15 = f10*f6;
-	f13 = f13+f15;
-	f15 = f11*f8;
-	f13 = f13+f15;
-	f15 = heapFloat[(fp+-40)];
-_52: do {
-	if(f15 >=f12) //_LBB587_56
-{
-	f15 =                         0;
-	if(f9 <f15) //_LBB587_58
-{
-	f17 = -f9;
-}
-else{
-	f17 = f9;
-}
-	f18 =   1.1920928955078125e-007;
-	if(f17 <f18) //_LBB587_49
-{
-break _52;
-}
-else{
-	r3 = 1;
-	heap8[r0+514] = r3;
-	f17 = heapFloat[(fp+-40)];
-	if(f17 <f12) //_LBB587_49
-{
-break _52;
-}
-else{
-	heapFloat[(g0)] = f7;
-	heapFloat[(g0+1)] = f13;
-	atan2f(i7);
-	f9 = f_g0;
-	f12 = heapFloat[(r1+108)];
-	if(f12 >=f9) //_LBB587_63
-{
-	f17 = -f12;
-	if(f9 <f17) //_LBB587_65
-{
-	heapFloat[(g0)] = f12;
-	cosf(i7);
-	f13 = f_g0;
-	f7 = heapFloat[(r1+108)];
-	heapFloat[(g0)] = f7;
-	sinf(i7);
-	f7 = -f_g0;
-	f9 =                         0;
-}
-else{
-	f9 = f15;
-}
-}
-else{
-	heapFloat[(g0)] = f12;
-	cosf(i7);
-	f13 = f_g0;
-	f9 = heapFloat[(r1+108)];
-	heapFloat[(g0)] = f9;
-	f9 =                         0;
-	sinf(i7);
-	f7 = f_g0;
-}
-}
-}
-}
-else{
-	f15 =                         0;
-	if(f7 <f15) //_LBB587_47
-{
-	f17 = -f7;
-}
-else{
-	f17 = f7;
-}
-	f18 =   1.1920928955078125e-007;
-	if(f17 >=f18) //_LBB587_50
-{
-	r3 = 1;
-	heap8[r0+514] = r3;
-	f17 = heapFloat[(r1+109)];
-if(!(f17 <f12)) //_LBB587_49
-{
-	heapFloat[(g0)] = f9;
-	heapFloat[(g0+1)] = f13;
-	atan2f(i7);
-	f7 = f_g0;
-	f12 = heapFloat[(r1+109)];
-	if(f12 >=f7) //_LBB587_53
-{
-	f17 = -f12;
-	if(f7 <f17) //_LBB587_55
-{
-	heapFloat[(g0)] = f12;
-	cosf(i7);
-	f13 = f_g0;
-	f7 = heapFloat[(r1+109)];
-	heapFloat[(g0)] = f7;
-	sinf(i7);
-	f9 = -f_g0;
-	f7 =                         0;
-}
-else{
-	f7 = f15;
-}
-}
-else{
-	heapFloat[(g0)] = f12;
-	cosf(i7);
-	f13 = f_g0;
-	f7 = heapFloat[(r1+109)];
-	heapFloat[(g0)] = f7;
-	f7 =                         0;
-	sinf(i7);
-	f9 = f_g0;
-}
-}
-}
-}
-} while(0);
-	f12 = f14*f13;
-	f5 = f5*f7;
-	f6 = f6*f13;
-	f14 = f16*f7;
-	f5 = f12+f5;
-	f1 = f1*f9;
-	f6 = f6+f14;
-	f3 = f3*f9;
-	f8 = f8*f13;
-	f2 = f2*f7;
-	f1 = f5+f1;
-	f3 = f6+f3;
-	f2 = f8+f2;
-	f4 = f4*f9;
-	f2 = f2+f4;
-	f4 = f1*f1;
-	f5 = f3*f3;
-	f4 = f4+f5;
-	f5 = f2*f2;
-	f4 = f4+f5;
-	heapFloat[(g0)] = f4;
-	f4 =                         1;
-	sqrtf(i7);
-	f5 = f4/f_g0;
-	f2 = f2*f5;
-	f3 = f3*f5;
-	f1 = f1*f5;
-	f5 = f10*f2;
-	f6 = f11*f3;
-	f5 = f5-f6;
-	f6 = f11*f1;
-	f2 = f0*f2;
-	f2 = f6-f2;
-	f6 = -f5;
-	f0 = f0*f3;
-	f1 = f10*f1;
-	f0 = f0-f1;
-	f1 = -f2;
-	heapFloat[(r1+112)] = f6;
-	f3 = -f0;
-	heapFloat[(r1+113)] = f1;
-	heapFloat[(r1+114)] = f3;
-	heap32[(r1+115)] = 0;
-	f1 = f5*f5;
-	f2 = f2*f2;
-	f1 = f1+f2;
-	f0 = f0*f0;
-	f0 = f1+f0;
-	heapFloat[(g0)] = f0;
-	sqrtf(i7);
-	heapFloat[(r1+123)] = f_g0;
-	f0 = heapFloat[(r1+112)];
-	f1 = heapFloat[(r1+113)];
-	f2 = heapFloat[(r1+114)];
-	f0 = f0*f0;
-	f1 = f1*f1;
-	f0 = f0+f1;
-	f1 = f2*f2;
-	f0 = f0+f1;
-	heapFloat[(g0)] = f0;
-	sqrtf(i7);
-	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;
-}
-} while(0);
-	f0 = heapFloat[(r1+110)];
-	f1 =                         0;
-	if(f0 <f1) //_LBB587_82
-{
-	heap32[(r1+125)] = 0;
-break _8;
-}
-else{
-	f0 =                        -1;
-	f1 = heapFloat[(fp+-41)];
-	f1 = f1 < f0 ? f0 : f1;
-	f2 =                         1;
-	f1 = f1 > 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 <f5) //_LBB587_78
-{
-	f3 = f1-f4;
-	f0 = f0-f4;
-	f0 = f3/f0;
-__label__ = 68;
-}
-else{
-__label__ = 66;
-}
-}
-if (__label__ == 66){
-	f0 = f2;
-}
-	f3 = heapFloat[(fp+-37)];
-	f5 = -f3;
-	f6 = heapFloat[(fp+-38)];
-	f7 = -f6;
-	f8 = heapFloat[(fp+-46)];
-	f9 = f3*f8;
-	f10 = heapFloat[(fp+-45)];
-	f11 = f10*f6;
-	f12 = heapFloat[(fp+-48)];
-	f5 = f12*f5;
-	f13 = heapFloat[(fp+-39)];
-	f14 = f10*f13;
-	f15 = -f13;
-	f9 = f9+f11;
-	f11 = heapFloat[(fp+-47)];
-	f16 = f11*f13;
-	f5 = f5-f14;
-	f14 = f11*f6;
-	f7 = f12*f7;
-	f11 = f11*f3;
-	f5 = f5+f14;
-	f9 = f9+f16;
-	f7 = f7-f11;
-	f11 = f8*f13;
-	f13 = f12*f15;
-	f6 = f8*f6;
-	f7 = f7+f11;
-	f8 = heapFloat[(fp+-42)];
-	f11 = f9*f8;
-	f14 = f5*f12;
-	f6 = f13-f6;
-	f3 = f10*f3;
-	f3 = f6+f3;
-	f6 = heapFloat[(fp+-44)];
-	f10 = f9*f6;
-	f13 = f7*f12;
-	f11 = f11+f14;
-	f14 = heapFloat[(fp+-43)];
-	f15 = f7*f14;
-	f9 = f9*f14;
-	f12 = f3*f12;
-	f10 = f10+f13;
-	f13 = f3*f8;
-	f11 = f11+f15;
-	f3 = f3*f6;
-	f1 = f1-f4;
-	heapFloat[(r1+130)] = f0;
-	f0 = f9+f12;
-	f4 = f5*f6;
-	f6 = f10+f13;
-	f5 = f5*f14;
-	f3 = f11-f3;
-	heapFloat[(r1+124)] = f1;
-	f0 = f0+f4;
-	f1 = f7*f8;
-	f4 = f6-f5;
-	heapFloat[(r1+116)] = f3;
-	f0 = f0-f1;
-	heapFloat[(r1+117)] = f4;
-	heapFloat[(r1+118)] = f0;
-	r2 = r2 >> 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 <f4) //_LBB589_28
-{
-	f1 = -f1;
-}
-	f0 = f2-f0;
-	heapFloat[(g0)] = f0;
-	heap32[(g0+1)] = 1086918619;
-	fmodf(i7);
-	f0 = f_g0;
-	if(f0 >=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 <f4) //_LBB589_36
-{
-	f0 = -f0;
-}
-	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 <f4) //_LBB589_9
-{
-	f0 = -f0;
-}
-	f1 = f1-f2;
-	heapFloat[(g0)] = f1;
-	heap32[(g0+1)] = 1086918619;
-	fmodf(i7);
-	f1 = f_g0;
-	if(f1 >=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 <f4) //_LBB589_17
-{
-	f1 = -f1;
-}
-if(!(f0 <f1)) //_LBB589_39
-{
-	f0 =        6.2831854820251465;
-	f0 = f2+f0;
-	f_g0 = f0;
-	return;
-}
-}
-}
-} while(0);
-	f_g0 = f2;
-	return;
-}
-
-function _ZNK17btHingeConstraint28calculateSerializeBufferSizeEv(sp)
-{
-	var i7;
-	var fp = sp>>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 <f9) //_LBB594_6
-{
-	f9 = -f6;
-}
-else{
-	f9 = f6;
-}
-	f11 =       0.70710676908493042;
-	if(f9 >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 <f3) //_LBB594_15
-{
-	f4 = -f0;
-}
-else{
-	f4 = f0;
-}
-	f5 =       0.70710676908493042;
-	if(f4 <=f5) //_LBB594_18
-{
-	f4 = f1*f1;
-	f6 = f2*f2;
-	f5 = f4+f6;
-	heapFloat[(g0)] = f5;
-	f4 =                         1;
-	sqrtf(i7);
-	f7 = f4/f_g0;
-	f2 = -f2;
-	f4 = f7*f2;
-	f6 = f1*f7;
-	f1 = -f0;
-	f2 = f6*f1;
-	f0 = f0*f4;
-	f1 = f5*f7;
-}
-else{
-	f3 = f2*f2;
-	f4 = f0*f0;
-	f4 = f3+f4;
-	heapFloat[(g0)] = f4;
-	f3 =                         1;
-	sqrtf(i7);
-	f5 = f3/f_g0;
-	f0 = -f0;
-	f6 = f5*f0;
-	f3 = f2*f5;
-	f0 = -f1;
-	f2 = f4*f5;
-	f0 = f3*f0;
-	f1 = f1*f6;
-	f4 =                         0;
-}
-	r2 = heap32[(r1+5)];
-	r3 = r2 >> 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 <f1)) //_LBB594_24
-{
-	f0 = f1-f0;
-	heapFloat[(r1+176)] = f0;
-	r2 = 1;
-	heap32[(r1+175)] = -1082130432;
-	heap8[r0+722] = r2;
-}
-}
-else{
-	f0 = f1-f0;
-	heapFloat[(r1+176)] = f0;
-	r2 = 1;
-	heap32[(r1+175)] = 1065353216;
-	heap8[r0+722] = r2;
-}
-}
-	r0 = heap32[(r1+5)];
-	r0 = r0 >> 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 <f1) //_LBB595_7
-{
-	r2 = heapU8[r0+722];
-	if(r2 !=0) //_LBB595_10
-{
-__label__ = 10;
-}
-else{
-__label__ = 8;
-}
-}
-else{
-	f0 = f1-f0;
-	heapFloat[(r2+176)] = f0;
-	r3 = 1;
-	heap32[(r2+175)] = -1082130432;
-	heap8[r0+722] = r3;
-__label__ = 10;
-}
-}
-else{
-	f0 = f1-f0;
-	heapFloat[(r2+176)] = f0;
-	r3 = 1;
-	heap32[(r2+175)] = 1065353216;
-	heap8[r0+722] = r3;
-__label__ = 10;
-}
-}
-if (__label__ == 8){
-	r0 = heapU8[r0+721];
-if(!(r0 !=0)) //_LBB595_10
-{
-	return;
-}
-}
-	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 _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 <f4) //_LBB596_79
-{
-	f10 = heapFloat[(r1+178)];
-	f11 = heapFloat[(r5)];
-	f11 = f11*f5;
-	f11 = f9/f11;
-	if(f11 >=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 <f3)) //_LBB596_83
-{
-	f8 = f3-f11;
-if(!(f8 <=f10)) //_LBB596_83
-{
-	f7 = f3-f10;
-	f8 = f7/f11;
-break _24;
-}
-}
-	f8 =                         0;
-	f8 = f10 < f3 ? f8 : f7;
-}
-}
-else{
-	f8 = f3 > 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 <f4) //_LBB596_30
-{
-	f7 = heapFloat[(r1+178)];
-	f8 = heapFloat[(r5)];
-	f8 = f8*f5;
-	f8 = f6/f8;
-	if(f8 >=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 <f1)) //_LBB596_34
-{
-	f2 = f1-f8;
-if(!(f2 <=f7)) //_LBB596_34
-{
-	f2 = f1-f7;
-	f2 = f2/f8;
-break _94;
-}
-}
-	f2 =                         0;
-	f8 = heapFloat[(fp+-1)];
-	f2 = f7 < f1 ? f2 : f8;
-}
-}
-else{
-	f7 = heapFloat[(fp+-1)];
-	f2 = f1 > 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 <r5) //_LBB611_1
-{
-	r7 = (r6 * 34)|0;
-	r8 = heap32[(r1+4)];
-	r7 = r7 << 2;
-	r7 = (r8 + r7)|0;
-	r7 = r7 >> 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 <r1) //_LBB612_81
-{
-	r8 = heap32[(r2+29)];
-	r9 = r4 << 3;
-	r10 = (r8 + r9)|0;
-	r10 = r10 >> 2;
-	r10 = heap32[(r10)];
-	if(r10 !=0) //_LBB612_83
-{
-	if(r7 <r3) //_LBB612_85
-{
-	r11 = r4 << 1;
-	r12 = r4 << 2;
-	r13 = heap32[(fp+-127)];
-	r12 = (r13 + r12)|0;
-	r12 = r12 >> 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 <f0) //_LBB612_193
-{
-	f0 = -f5;
-}
-else{
-	f0 = f5;
-}
-	f1 =       0.70710676908493042;
-	if(f0 <=f1) //_LBB612_196
-{
-	f3 = f3*f3;
-	f0 = f7*f7;
-	f3 = f3+f0;
-	heapFloat[(g0)] = f3;
-	sqrtf(i7);
-	f1 = heapFloat[(r24+18)];
-	f0 = f6/f_g0;
-	f1 = -f1;
-	f1 = f0*f1;
-	heapFloat[(r16+38)] = f1;
-	f2 = heapFloat[(r23+17)];
-	f2 = f2*f0;
-	heapFloat[(r20+39)] = f2;
-	heap32[(r21+40)] = 0;
-	f4 = heapFloat[(r22+19)];
-	f5 = -f4;
-	r16 = r8 >> 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) <uint(65537)) //_LBB613_9
-{
-	r14 = r12 >>> 16;
-	r12 = r14 ^ r12;
-	if(uint(r9) <uint(257)) //_LBB613_11
-{
-	r14 = r12 >>> 8;
-	r12 = r14 ^ r12;
-	if(uint(r9) <uint(17)) //_LBB613_13
-{
-	r14 = r12 >>> 4;
-	r12 = r14 ^ r12;
-	if(uint(r9) <uint(5)) //_LBB613_15
-{
-	r14 = r12 >>> 2;
-	r12 = r14 ^ r12;
-	if(uint(r9) <uint(3)) //_LBB613_17
-{
-	r14 = r12 >>> 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) <uint(65537)) //_LBB613_23
-{
-	r13 = r11 >>> 16;
-	r11 = r13 ^ r11;
-	if(uint(r8) <uint(257)) //_LBB613_25
-{
-	r13 = r11 >>> 8;
-	r11 = r13 ^ r11;
-	if(uint(r8) <uint(17)) //_LBB613_27
-{
-	r13 = r11 >>> 4;
-	r11 = r13 ^ r11;
-	if(uint(r8) <uint(5)) //_LBB613_29
-{
-	r13 = r11 >>> 2;
-	r11 = r13 ^ r11;
-	if(uint(r8) <uint(3)) //_LBB613_31
-{
-	r13 = r11 >>> 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 <r12) //_LBB646_2
-{
-	r5 = (r5 + 1)|0;
-continue _3;
-}
-else{
-break _3;
-}
-}
-_13: while(true){
-	r12 = r6 << 2;
-	r13 = (r9 + r12)|0;
-	r13 = r13 >> 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 <r15) //_LBB646_10
-{
-	r6 = (r6 + -1)|0;
-continue _13;
-}
-else{
-break _13;
-}
-}
-	if(r5 <=r6) //_LBB646_20
-{
-	heap32[(r10)] = r13;
-	r7 = heap32[(r3+3)];
-	r7 = (r7 + r12)|0;
-	r5 = (r5 + 1)|0;
-	r6 = (r6 + -1)|0;
-	r7 = r7 >> 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 <r8) //_LBB654_35
-{
-	r13 = heap32[(r6+4)];
-	r9 = r10 << 3;
-	r9 = (r13 + r9)|0;
-	r9 = r9 >> 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 <r9) //_LBB654_38
-{
-	r17 = r15 << 3;
-	r17 = (r13 + r17)|0;
-	r17 = r17 >> 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 <r9) //_LBB654_58
-{
-	r13 = heap32[(r6+4)];
-	r15 = r10 << 3;
-	r13 = (r13 + r15)|0;
-	r13 = r13 >> 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 <r9) //_LBB654_51
-{
-	r13 = heap32[(r6+4)];
-	r15 = r10 << 3;
-	r13 = (r13 + r15)|0;
-	r13 = r13 >> 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) <uint(2))) //_LBB654_56
-{
-	heap32[(r13+54)] = 2;
-}
-}
-else{
-if(!(r15 ==-1)) //_LBB654_56
-{
-__label__ = 47;
-break _48;
-}
-}
-	r10 = (r10 + 1)|0;
-continue _75;
-}
-else{
-continue _48;
-}
-}
-}
-}
-else{
-__label__ = 60;
-break _48;
-}
-}
-switch(__label__ ){//multiple entries
-case 37:
-	r0 = _2E_str1156;
-	r1 = _2E_str2157;
-	heap32[(g0)] = r0;
-	heap32[(g0+1)] = r1;
-	heap32[(g0+2)] = 242;
-	_assert(i7);
-break;
-case 54:
-	r0 = _2E_str1156;
-	r1 = _2E_str2157;
-	heap32[(g0)] = r0;
-	heap32[(g0+1)] = r1;
-	heap32[(g0+2)] = 290;
-	_assert(i7);
-break;
-case 60:
-	r8 = r5 >> 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) <uint(2))) //_LBB654_77
-{
-	heap32[(r16+54)] = 1;
-}
-	heap32[(r16+55)] = 0;
-}
-}
-}
-	r16 = heapU8[r14+204];
-	r16 = r16 & 2;
-if(!(r16 ==0)) //_LBB654_84
-{
-	r16 = r14 >> 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) <uint(2))) //_LBB654_83
-{
-	heap32[(r16+54)] = 1;
-}
-	heap32[(r16+55)] = 0;
-}
-}
-}
-	r16 = heapU8[r3+64];
-if(!(r16 ==0)) //_LBB654_103
-{
-	r16 = heap32[(r8)];
-	r16 = r16 >> 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 <r5) //_LBB654_141
-{
-	r17 = heap32[(r6+9)];
-	r19 = r13 << 2;
-	r18 = (r17 + r19)|0;
-	r20 = r18 >> 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 <r10) //_LBB654_116
-{
-continue _151;
-}
-else{
-break _145;
-}
-}
-}
-}
-else{
-	r1 = heap32[(r8)];
-	r1 = r1 >> 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) <uint(2))) //_LBB657_11
-{
-	r5 = 0;
-	heap32[(r4+54)] = 0;
-break _8;
-}
-}
-	if(r5 ==4) //_LBB657_24
-{
-break _5;
-}
-}
-} while(0);
-	r6 = r1 & 255;
-_18: do {
-if(!(r6 !=0)) //_LBB657_22
-{
-	r6 = (r5 + -2)|0;
-if(!(uint(r6) <uint(2))) //_LBB657_15
-{
-	f1 = heapFloat[(r4+55)];
-	f2 =                         2;
-	if(f1 <=f2) //_LBB657_22
-{
-break _18;
-}
-}
-	r3 = heapU8[r3+204];
-	r3 = r3 & 3;
-	if(r3 ==0) //_LBB657_18
-{
-	if(r5 ==2) //_LBB657_21
-{
-	heap32[(r4+76)] = 0;
-	heap32[(r4+77)] = 0;
-	heap32[(r4+78)] = 0;
-	heap32[(r4+79)] = 0;
-	heap32[(r4+80)] = 0;
-	heap32[(r4+81)] = 0;
-	heap32[(r4+82)] = 0;
-	heap32[(r4+83)] = 0;
-break _5;
-}
-else{
-	if(r5 !=1) //_LBB657_24
-{
-break _5;
-}
-else{
-	heap32[(r4+54)] = 3;
-break _5;
-}
-}
-}
-else{
-	r5 = (r5 + -4)|0;
-	if(uint(r5) <uint(2)) //_LBB657_24
-{
-break _5;
-}
-else{
-	heap32[(r4+54)] = 2;
-break _5;
-}
-}
-}
-} while(0);
-	r3 = (r5 + -4)|0;
-if(!(uint(r3) <uint(2))) //_LBB657_24
-{
-	heap32[(r4+54)] = 1;
-}
-}
-}
-} while(0);
-	r2 = (r2 + 1)|0;
-	r3 = heap32[(r0+52)];
-	if(r3 >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) <uint(2)) //_LBB659_30
-{
-break _10;
-}
-else{
-	heap32[(r1+54)] = 2;
-}
-}
-else{
-	r1 = r3 >> 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 <f1) //_LBB665_6
-{
-	f1 = -f0;
-}
-else{
-	f1 = f0;
-}
-	f2 =   1.1920928955078125e-007;
-	if(f1 >=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 <f5) //_LBB688_3
-{
-	f4 = heapFloat[(r1+77)];
-	f5 = heapFloat[(r1+78)];
-	f7 = f6*f6;
-	f8 = f4*f4;
-	f7 = f7+f8;
-	f8 = f5*f5;
-	f7 = f7+f8;
-	f8 = heapFloat[(r1+113)];
-	if(f7 <f8) //_LBB688_5
-{
-	f7 = heapFloat[(r1+112)];
-	f2 = f2*f7;
-	f3 = f3*f7;
-	heapFloat[(r1+80)] = f2;
-	f0 = f0*f7;
-	heapFloat[(r1+81)] = f3;
-	f6 = f6*f7;
-	heapFloat[(r1+82)] = f0;
-	f4 = f4*f7;
-	heapFloat[(r1+76)] = f6;
-	f5 = f5*f7;
-	heapFloat[(r1+77)] = f4;
-	heapFloat[(r1+78)] = f5;
-}
-}
-else{
-	f4 = heapFloat[(r1+77)];
-	f5 = heapFloat[(r1+78)];
-}
-	f0 = f6*f6;
-	f2 = f4*f4;
-	f0 = f0+f2;
-	f2 = f5*f5;
-	f0 = f0+f2;
-	heapFloat[(g0)] = f0;
-	sqrtf(i7);
-	f0 = f_g0;
-	f2 = heapFloat[(r1+109)];
-if(!(f2 <=f0)) //_LBB688_10
-{
-	f2 =      0.004999999888241291;
-	if(f0 <=f2) //_LBB688_9
-{
-	heap32[(r1+76)] = 0;
-	heap32[(r1+77)] = 0;
-	heap32[(r1+78)] = 0;
-	heap32[(r1+79)] = 0;
-}
-else{
-	f0 = heapFloat[(r1+76)];
-	f3 = heapFloat[(r1+77)];
-	f4 = heapFloat[(r1+78)];
-	f0 = f0*f0;
-	f3 = f3*f3;
-	f0 = f0+f3;
-	f3 = f4*f4;
-	f0 = f0+f3;
-	heapFloat[(g0)] = f0;
-	sqrtf(i7);
-	f0 = f1/f_g0;
-	f3 = heapFloat[(r1+76)];
-	f4 = heapFloat[(r1+77)];
-	f5 = f3*f0;
-	f6 = heapFloat[(r1+78)];
-	f7 = f4*f0;
-	f5 = f5*f2;
-	f0 = f6*f0;
-	f7 = f7*f2;
-	f3 = f3-f5;
-	f0 = f0*f2;
-	f2 = f4-f7;
-	heapFloat[(r1+76)] = f3;
-	f0 = f6-f0;
-	heapFloat[(r1+77)] = f2;
-	heapFloat[(r1+78)] = f0;
-}
-}
-	f0 = heapFloat[(r1+80)];
-	f2 = heapFloat[(r1+81)];
-	f3 = heapFloat[(r1+82)];
-	f0 = f0*f0;
-	f2 = f2*f2;
-	f0 = f0+f2;
-	f2 = f3*f3;
-	f0 = f0+f2;
-	heapFloat[(g0)] = f0;
-	sqrtf(i7);
-	f0 = f_g0;
-	f2 = heapFloat[(r1+110)];
-if(!(f2 <=f0)) //_LBB688_14
-{
-	f2 =      0.004999999888241291;
-	if(f0 <=f2) //_LBB688_13
-{
-	heap32[(r1+80)] = 0;
-	heap32[(r1+81)] = 0;
-	heap32[(r1+82)] = 0;
-	heap32[(r1+83)] = 0;
-}
-else{
-	f0 = heapFloat[(r1+80)];
-	f3 = heapFloat[(r1+81)];
-	f4 = heapFloat[(r1+82)];
-	f0 = f0*f0;
-	f3 = f3*f3;
-	f0 = f0+f3;
-	f3 = f4*f4;
-	f0 = f0+f3;
-	heapFloat[(g0)] = f0;
-	sqrtf(i7);
-	f0 = f1/f_g0;
-	f1 = heapFloat[(r1+80)];
-	f3 = heapFloat[(r1+81)];
-	f4 = f1*f0;
-	f5 = heapFloat[(r1+82)];
-	f6 = f3*f0;
-	f4 = f4*f2;
-	f0 = f5*f0;
-	f6 = f6*f2;
-	f1 = f1-f4;
-	f0 = f0*f2;
-	f2 = f3-f6;
-	heapFloat[(r1+80)] = f1;
-	f0 = f5-f0;
-	heapFloat[(r1+81)] = f2;
-	heapFloat[(r1+82)] = f0;
-	return;
-}
-}
-}
-	return;
-}
-
-function _GLOBAL__I__ZN7btClockC2Ev(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 = _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) <uint(r4))) //_LBB697_10
-{
-	heap8[r1+r7] = r8;
-break _7;
-}
-}
-	heap8[r1+r5] = r8;
-}
-}
-}
-} while(0);
-	r5 = r5 < 0 ? r8 : r5;
-	r5 = r7 > 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) <uint(2147483645)) //_LBB701_45
-{
-	r0 = cmpfacets__index__;
-	heap32[(g0)] = r1;
-	heap32[(g0+1)] = 0;
-	heap32[(g0+2)] = r3;
-	heap32[(g0+3)] = r0;
-	quicksort(i7);
-}
-}
-else{
-	r5 = r3;
-	r6 = r4;
-_31: while(true){
-	r7 = r5;
-	if(r7 ==0) //_LBB701_23
-{
-__label__ = 23;
-break _31;
-}
-else{
-	r5 = r7 << 1;
-	r8 = r5 & -4;
-	r9 = (r6 + r8)|0;
-	r5 = r9 >> 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) <uint(2147483645)) //_LBB707_69
-{
-	r2 = cmplocales__index__;
-	heap32[(g0)] = r3;
-	heap32[(g0+1)] = 0;
-	heap32[(g0+2)] = r0;
-	heap32[(g0+3)] = r2;
-	quicksort(i7);
-__label__ = 65;
-}
-else{
-__label__ = 65;
-}
-}
-else{
-	r9 = r5;
-	r10 = r8;
-_48: while(true){
-	r11 = r9;
-	if(r11 ==0) //_LBB707_46
-{
-__label__ = 42;
-break _48;
-}
-else{
-	r9 = r11 << 1;
-	r12 = r9 & -4;
-	r13 = (r10 + r12)|0;
-	r9 = r13 >> 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) <uint(r1))) //_LBB710_3
-{
-break _5;
-}
-}
-}
-	r1 = 1;
-	heap8[r0] = r1;
-}
-	r0 = heap32[(fp)];
-	r1 = heap32[(fp+1)];
-	r0 = r0 >> 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) <uint(10)) //_LBB712_22
-{
-	r3 = _ZL13s_file_stdout;
-	r0 = r3 >> 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) <uint(10))) //_LBB712_33
-{
-	heap32[(g0)] = r3;
-	_ZdlPv(i7);
-}
-}
-}
-}
-	r0 = sp + -352;
-	r0 = r0 >> 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(-13)) //_LBB719_4
-{
-	if(uint(r0) <uint(r1)) //_LBB719_6
-{
-	r2 = _2E_str4362;
-	r3 = _2E_str3361;
-	heap32[(g0)] = 8;
-	heap32[(g0+1)] = r2;
-	heap32[(g0+2)] = r3;
-	heap32[(g0+3)] = r1;
-	heap32[(g0+4)] = r0;
-	_ZN4__rw10__rw_throwEiz(i7);
-__label__ = 6;
-break _1;
-}
-else{
-__label__ = 6;
-break _1;
-}
-}
-else{
-	if(uint(r1) >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) <uint(1073741823)) //_LBB727_2
-{
-	r0 = (r0 + 7)|0;
-	r0 = r0 & -8;
-	r2 = 12;
-	r0 = uint(r0) < uint(r2) ? r2 : r0;
-}
-else{
-	r0 = 0;
-}
-	heap32[(g0)] = r1;
-	heap32[(g0+1)] = r0;
-	block_locate_free(i7);
-	r2 = r_g0;
-	heap32[(g0)] = r1;
-	heap32[(g0+1)] = r2;
-	heap32[(g0+2)] = r0;
-	r0 = s_current_memory;
-	block_prepare_used(i7);
-	r1 = r_g0;
-	r2 = 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(1073741823)) //_LBB728_12
-{
-	r10 = (r2 + 7)|0;
-	r10 = r10 & -8;
-	r11 = 12;
-	r10 = uint(r10) < uint(r11) ? r11 : r10;
-}
-else{
-	r10 = 0;
-}
-_11: do {
-	if(uint(r10) >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) <uint(1073741823)) //_LBB728_19
-{
-	r3 = (r2 + 7)|0;
-	r3 = r3 & -8;
-	r4 = 12;
-	r3 = uint(r3) < uint(r4) ? r4 : r3;
-}
-else{
-	r3 = 0;
-}
-	heap32[(g0)] = r1;
-	heap32[(g0+1)] = r3;
-	block_locate_free(i7);
-	r4 = r_g0;
-	heap32[(g0)] = r1;
-	heap32[(g0+1)] = r4;
-	heap32[(g0+2)] = r3;
-	r3 = s_current_memory;
-	block_prepare_used(i7);
-	r9 = r_g0;
-	r4 = r4 >> 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) <uint(1073741823)) //_LBB728_6
-{
-	r0 = (r2 + 7)|0;
-	r0 = r0 & -8;
-	r2 = 12;
-	r0 = uint(r0) < uint(r2) ? r2 : r0;
-}
-else{
-	r0 = 0;
-}
-	heap32[(g0)] = r1;
-	heap32[(g0+1)] = r0;
-	block_locate_free(i7);
-	r2 = r_g0;
-	heap32[(g0)] = r1;
-	heap32[(g0+1)] = r2;
-	heap32[(g0+2)] = r0;
-	r0 = s_current_memory;
-	block_prepare_used(i7);
-	r1 = r_g0;
-	r2 = 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))) //_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) <uint(1073741813)) //_LBB729_2
-{
-	r2 = heap32[(fp)];
-	r3 = block_null;
-	r4 = r3 >> 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 <r11) //_LBB737_24
-{
-	r13 = r12 << 2;
-	r14 = 0;
-	r13 = (r0 + r13)|0;
-	r13 = (r14 - r13)|0;
-	r12 = (r11 - r12)|0;
-_34: while(true){
-	r15 = r14;
-_36: while(true){
-	r16 = (r15 - r7)|0;
-	r18 = (r15 - r13)|0;
-	r19 = heapU8[r18];
-	r20 = heapU8[r16];
-	r15 = (r15 + 1)|0;
-	heap8[r18] = r20;
-	heap8[r16] = r19;
-if(!(r15 !=4)) //_LBB737_26
-{
-break _36;
-}
-}
-	r12 = (r12 + -1)|0;
-	r13 = (r13 + -4)|0;
-	r7 = (r7 + 4)|0;
-if(!(r12 !=0)) //_LBB737_25
-{
-break _34;
-}
-}
-	r7 = heap32[(fp+-3)];
-	r7 = (r7 - r11)|0;
-	r7 = (r7 + r21)|0;
-}
-else{
-	r7 = r21;
-}
-	if(r3 >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 <r2) //_LBB737_2
-{
-continue _3;
-}
-else{
-break _3;
-}
-}
-}
-	return;
-}
-
-function __dtostr(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 + -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 <f1) //_LBB738_34
-{
-	f1 = -f0;
-	r2 = (r2 + -1)|0;
-	r7 = (r1 + 1)|0;
-	r8 = 45;
-	heap8[r1] = r8;
-}
-else{
-	r7 = r1;
-	f1 = f0;
-}
-_23: do {
-	if(r4 ==0) //_LBB738_37
-{
-	f2 =                       0.5;
-}
-else{
-	f2 =                       0.5;
-	r8 = r4;
-	f3 =       0.10000000000000001;
-_26: while(true){
-	r8 = (r8 + -1)|0;
-	f2 = f2*f3;
-if(!(r8 !=0)) //_LBB738_38
-{
-break _23;
-}
-}
-}
-} while(0);
-	f1 = f1+f2;
-	f2 =                         1;
-	if(f1 <f2) //_LBB738_41
-{
-	r2 = (r2 + -1)|0;
-	r8 = (r7 + 1)|0;
-	r9 = 48;
-	heap8[r7] = r9;
-	r7 = r8;
-}
-_32: do {
-	if(r6 >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(r3))) //_LBB738_80
-{
-__label__ = 82;
-break _81;
-}
-}
-	if(r2 ==0) //_LBB738_92
-{
-__label__ = 83;
-}
-else{
-	r6 = (r2 + -1)|0;
-	r0 = (r7 + 1)|0;
-	r2 = 46;
-	heap8[r7] = r2;
-	if(r5 ==0) //_LBB738_83
-{
-if(!(r4 !=0)) //_LBB738_85
-{
-	r3 = (r1 + r3)|0;
-	r3 = (r3 + 1)|0;
-	r4 = (r3 - r0)|0;
-}
-}
-else{
-	r3 = r4 == 0 ? r3 : r4;
-	r3 = (r1 + r3)|0;
-	r3 = (r3 + 1)|0;
-	r4 = (r3 - r0)|0;
-}
-	if(uint(r4) >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) <uint(r2)) //_LBB738_28
-{
-	r5 = 48;
-_115: while(true){
-	r4 = (r0 + 1)|0;
-	heap8[r1+r0] = r5;
-	r0 = r4;
-if(!(r2 !=r4)) //_LBB738_29
-{
-break _115;
-}
-}
-	r0 = r2;
-}
-	r2 = 2;
-	r4 = heapU8[r1];
-	r2 = r4 == 48 ? r3 : r2;
-	r3 = 46;
-	r4 = 0;
-	heap8[r1+r2] = r3;
-	heap8[r1+r0] = r4;
-	r_g0 = r0;
-	return;
-}
-break;
-case 5:
-	if(r2 >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(65)) //_LBB792_10
-{
-	r9 = r7 & 255;
-	r10 = 58;
-	r7 = (r7 + -48)|0;
-	r7 = uint(r9) < uint(r10) ? r7 : r11;
-	r7 = r7 & 255;
-	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) <uint(32)) //_LBB795_37
-{
-	r6 = 31;
-	r7 = (r5 + 1)|0;
-	r9 = (r5 + -31)|0;
-	r5 = (r6 - r5)|0;
-	r6 = r2 >>> 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) <uint(31)) //_LBB795_26
-{
-	r6 = 31;
-	r7 = (r5 + 1)|0;
-	r5 = (r6 - r5)|0;
-	r6 = r0 << r5;
-	r8 = r2 >>> 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) <uint(10)) //_LBB800_57
-{
-	r5 = sp + -8;
-	heap32[(g0)] = r6;
-	heap32[(g0+1)] = r5;
-	strtol(i7);
-	r5 = r_g0;
-	r6 = heap32[(fp+-2)];
-	r7 = 1;
-continue _8;
-}
-else{
-__label__ = 23;
-break _8;
-}
-}
-}
-else{
-__label__ = 19;
-break _8;
-}
-}
-}
-	r6 = (r6 + 1)|0;
-	r11 = 1;
-}
-_36: do {
-switch(__label__ ){//multiple entries
-case 40:
-	if(r12 ==115) //_LBB800_165
-{
-	r8 = r8 & 255;
-if(!(r8 !=0)) //_LBB800_167
-{
-	r3 = sp + -4;
-	heap32[(g0)] = r3;
-	heap32[(g0+1)] = 4;
-	my_arg_test(i7);
-	r3 = r_g0 >> 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(3)) //_LBB800_48
-{
-__label__ = 46;
-break _36;
-}
-else{
-__label__ = 168;
-break _1;
-}
-}
-}
-break;
-case 26:
-	if(r12 ==88) //_LBB800_59
-{
-__label__ = 52;
-break _36;
-}
-else{
-__label__ = 168;
-break _1;
-}
-break;
-case 23:
-	if(r12 ==69) //_LBB800_48
-{
-__label__ = 46;
-break _36;
-}
-else{
-__label__ = 168;
-break _1;
-}
-break;
-case 19:
-	if(r12 ==0) //_LBB800_6
-{
-__label__ = 6;
-break _1;
-}
-else{
-	if(r12 ==37) //_LBB800_51
-{
-	r5 = r4 & 255;
-	if(r5 !=r12) //_LBB800_187
-{
-__label__ = 168;
-break _1;
-}
-else{
-	heap32[(g0)] = r0;
-	r1 = (r1 + 1)|0;
-	r3 = (r6 + 1)|0;
-	sgetc(i7);
-	r4 = r_g0;
-continue _1;
-}
-}
-else{
-__label__ = 168;
-break _1;
-}
-}
-break;
-}
-} while(0);
-switch(__label__ ){//multiple entries
-case 53:
-	r13 = 0;
-break;
-case 52:
-	r13 = 16;
-break;
-case 46:
-	r5 = r4 << 2;
-	r7 = my_ctype;
-	r5 = (r5 + r7)|0;
-	r5 = heapU8[r5+4];
-	r3 = (r6 + 1)|0;
-	r5 = r5 & 8;
-_97: do {
-if(!(r5 ==0)) //_LBB800_50
-{
-_98: while(true){
-	heap32[(g0)] = r0;
-	sgetc(i7);
-	r4 = r_g0;
-	r5 = r4 << 2;
-	r5 = (r5 + r7)|0;
-	r1 = (r1 + 1)|0;
-	r5 = heapU8[r5+4];
-	r5 = r5 & 8;
-if(!(r5 !=0)) //_LBB800_111
-{
-break _97;
-}
-}
-}
-} while(0);
-	if(r4 ==45) //_LBB800_114
-{
-	heap32[(g0)] = r0;
-	r1 = (r1 + 1)|0;
-	r5 = 1;
-	sgetc(i7);
-	r4 = r_g0;
-}
-else{
-	r5 = 0;
-}
-	if(r4 ==43) //_LBB800_117
-{
-	heap32[(g0)] = r0;
-	r1 = (r1 + 1)|0;
-	sgetc(i7);
-	r4 = r_g0;
-}
-	r6 = (r4 + -48)|0;
-_108: do {
-	if(uint(r6) >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) <uint(10))) //_LBB800_121
-{
-break _108;
-}
-}
-}
-} while(0);
-_114: do {
-	if(r4 ==46) //_LBB800_124
-{
-	heap32[(g0)] = r0;
-	sgetc(i7);
-	r4 = r_g0;
-	r1 = (r1 + 1)|0;
-	r7 = (r4 + -48)|0;
-	if(uint(r7) <uint(10)) //_LBB800_126
-{
-	r6 = (r6 + 1)|0;
-	f1 =       0.10000000000000001;
-_118: while(true){
-	r4 = (r4 + -48)|0;
-	f2 = r4; //fitod r4, f2
-	heap32[(g0)] = r0;
-	f2 = f2*f1;
-	sgetc(i7);
-	r4 = r_g0;
-	f0 = f2+f0;
-	f1 = f1/f3;
-	r6 = (r6 + 1)|0;
-	r7 = (r4 + -48)|0;
-if(!(uint(r7) <uint(10))) //_LBB800_127
-{
-break _114;
-}
-}
-}
-else{
-	r6 = (r6 + 1)|0;
-}
-}
-} while(0);
-	if(r1 ==r6) //_LBB800_73
-{
-__label__ = 172;
-break _1;
-}
-else{
-	r1 = r4 | 32;
-_123: do {
-	if(r1 ==101) //_LBB800_131
-{
-	heap32[(g0)] = r0;
-	sgetc(i7);
-	r1 = r_g0;
-	if(r1 ==45) //_LBB800_135
-{
-	heap32[(g0)] = r0;
-	f1 =       0.10000000000000001;
-	sgetc(i7);
-	r4 = r_g0;
-}
-else{
-	if(r1 ==43) //_LBB800_136
-{
-	heap32[(g0)] = r0;
-	f1 =                        10;
-	sgetc(i7);
-	r4 = r_g0;
-}
-else{
-	if(r1 !=-1) //_LBB800_137
-{
-	heap32[(g0)] = r1;
-	heap32[(g0+1)] = r0;
-	f0 =                         0;
-	sputc(i7);
-	r1 = r6;
-break _123;
-}
-else{
-	r1 = (r6 + 1)|0;
-	f0 =                         0;
-break _123;
-}
-}
-}
-	r7 = (r6 + 2)|0;
-	r1 = (r4 + -48)|0;
-_135: do {
-	if(uint(r1) <uint(10)) //_LBB800_140
-{
-	r1 = (r6 + 2)|0;
-	r6 = 0;
-_137: while(true){
-	r6 = (r6 * 10)|0;
-	heap32[(g0)] = r0;
-	r6 = (r4 + r6)|0;
-	sgetc(i7);
-	r4 = r_g0;
-	r6 = (r6 + -48)|0;
-	r1 = (r1 + 1)|0;
-	r9 = (r4 + -48)|0;
-if(!(uint(r9) <uint(10))) //_LBB800_141
-{
-break _135;
-}
-}
-}
-else{
-	r6 = 0;
-	r1 = r7;
-}
-} while(0);
-	if(r7 ==r1) //_LBB800_73
-{
-__label__ = 172;
-break _1;
-}
-else{
-if(!(r6 ==0)) //_LBB800_145
-{
-__label__ = 130; //SET chanka
-_142: while(true){
-	r6 = (r6 + -1)|0;
-	f0 = f0*f1;
-if(!(r6 !=0)) //_LBB800_146
-{
-break _123;
-}
-}
-}
-}
-}
-else{
-	r1 = r6;
-}
-} while(0);
-	if(r5 !=0) //_LBB800_149
-{
-	f0 = -f0;
-}
-	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;
-	r6 = r10 & 255;
-	if(r6 ==0) //_LBB800_153
-{
-	r5 = r5 >> 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(97)) //_LBB800_89
-{
-	r18 = 58;
-	r19 = (r17 + -48)|0;
-	r17 = uint(r17) < uint(r18) ? r19 : r20;
-}
-else{
-	r17 = (r18 + -87)|0;
-}
-	if(uint(r17) >=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) <uint(5)) //_LBB800_7
-{
-__label__ = 7;
-}
-else{
-__label__ = 165;
-}
-}
-}
-switch(__label__ ){//multiple entries
-case 7:
-	r3 = (r3 + 1)|0;
-_218: while(true){
-	r5 = heapU8[r3];
-	if(r5 ==0) //_LBB800_13
-{
-break _218;
-}
-else{
-	r5 = r5 << 24;
-	r5 = r5 >> 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) <uint(r6)) //_LBB801_210
-{
-__label__ = 198;
-break _1;
-}
-else{
-	r6 = (r3 - r1)|0;
-	r7 = r2 >> 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) <uint(2)) //_LBB801_135
-{
-__label__ = 129;
-break _15;
-}
-else{
-	if(r14 ==104) //_LBB801_48
-{
-__label__ = 48;
-break _17;
-}
-else{
-continue _1;
-}
-}
-}
-}
-}
-}
-else{
-	if(r14 >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(10)) //_LBB801_57
-{
-	r4 = r8 & 255;
-	if(r4 !=0) //_LBB801_210
-{
-__label__ = 198;
-break _1;
-}
-else{
-	r4 = sp + -144;
-	heap32[(g0)] = r13;
-	heap32[(g0+1)] = r4;
-	strtoul(i7);
-	r10 = r_g0;
-	if(uint(r10) >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 <f1)) //_LBB801_202
-{
-	r4 = heap32[(fp+-36)];
-	r5 = (r4 + -1)|0;
-	r8 = 32;
-	r14 = 43;
-	r8 = r9 == 0 ? r8 : r14;
-	heap32[(fp+-36)] = r5;
-	heap8[r4+-1] = r8;
-}
-}
-	r4 = heap32[(fp+-36)];
-	r5 = heapU8[r4];
-_175: do {
-	if(r5 !=0) //_LBB801_204
-{
-	r5 = (r4 + 1)|0;
-	r8 = 0;
-_177: while(true){
-	r4 = (r8 + 1)|0;
-	r14 = heapU8[r5+r8];
-	r8 = r4;
-if(!(r14 !=0)) //_LBB801_205
-{
-break _175;
-}
-}
-}
-else{
-	r4 = 0;
-}
-} while(0);
-	r10 = uint(r10) < uint(r4) ? r4 : r10;
-	r14 = 48;
-	r5 = 0;
-	r8 = r5;
-__label__ = 69;
-break;
-}
-} while(0);
-switch(__label__ ){//multiple entries
-case 62:
-	r1 = heap32[(fp+-2)];
-	if(r1 ==-1) //_LBB801_210
-{
-__label__ = 198;
-break _1;
-}
-else{
-	r1 = r2 >> 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) <uint(r10)) //_LBB801_210
-{
-__label__ = 198;
-break _1;
-}
-else{
-	r10 = r2 >> 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) <uint(r14)) //_LBB801_210
-{
-__label__ = 198;
-break _1;
-}
-else{
-	r14 = r2 >> 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) <uint(r14)) //_LBB801_210
-{
-__label__ = 198;
-break _1;
-}
-else{
-	r14 = r2 >> 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) <uint(r1))) //_LBB803_6
-{
-	heap8[r3+r4] = r5;
-	r_g0 = r0;
-	return;
-}
-}
-	heap8[r3+r0] = r5;
-}
-}
-}
-	r_g0 = r0;
-	return;
-}
-
-function sprintf(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 + -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) <uint(10)) //_LBB822_9
-{
-	r4 = _ZL13s_file_stdout;
-	r5 = r4 >> 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) <uint(10)) //_LBB822_15
-{
-	r6 = _ZL13s_file_stdout;
-	r7 = r6 >> 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 <r4) //_LBB822_26
-{
-	r11 = r9;
-_35: while(true){
-	r9 = (r11 + 1)|0;
-	r11 = heapU8[r8+r11];
-	if(r11 ==13) //_LBB822_29
-{
-break _35;
-}
-else{
-	r11 = r9;
-if(!(r9 <r4)) //_LBB822_27
-{
-break _35;
-}
-}
-}
-}
-}
-	r11 = _ZL10strtok_pos;
-	r12 = 0;
-	r11 = r11 >> 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 <r4)) //_LBB822_23
-{
-break _28;
-}
-}
-}
-} while(0);
-	heap32[(g0)] = r5;
-	free(i7);
-}
-	__mandreel_internal_CreateWindow(i7);
-	heap32[(g0)] = 0;
-	_Z30mandreel_fopen_enable_checkfatb(i7);
-	heap32[(g0)] = r1;
-	heap32[(g0+1)] = r2;
-	fopen(i7);
-	r0 = r_g0;
-	heap32[(g0)] = 1;
-	_Z30mandreel_fopen_enable_checkfatb(i7);
-if(!(r0 ==0)) //_LBB822_389
-{
-	if(uint(r0) <uint(10)) //_LBB822_201
-{
-	r1 = _ZL13s_file_stdout;
-	r2 = r1 >> 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) <uint(10)) //_LBB822_207
-{
-	r3 = _ZL13s_file_stdout;
-	r4 = r3 >> 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) <uint(10))) //_LBB822_210
-{
-	heap32[(g0)] = r3;
-	_ZdlPv(i7);
-}
-if(!(r2 ==0)) //_LBB822_389
-{
-	r0 = (r2 + 1)|0;
-	r3 = -1;
-	r4 = 0;
-	r5 = r4;
-_278: while(true){
-	r6 = r3;
-_280: while(true){
-	if(r5 <r1) //_LBB822_212
-{
-	r3 = (r2 + r5)|0;
-	r7 = heapU8[r2+r5];
-	if(r7 ==13) //_LBB822_214
-{
-	r7 = r5;
-}
-else{
-_285: while(true){
-	r7 = (r5 + 1)|0;
-	r5 = heapU8[r0+r5];
-	if(r5 ==13) //_LBB822_217
-{
-break _285;
-}
-else{
-	r5 = r7;
-if(!(r7 <r1)) //_LBB822_215
-{
-break _285;
-}
-}
-}
-}
-	r5 = _ZL10strtok_pos;
-	r8 = 0;
-	r9 = r5 >> 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) <uint(2139095040)) //_LBB842_4
-{
-	if(r1 !=0) //_LBB842_6
-{
-	r0 = 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) <uint(268435457)) //_LBB846_14
-{
-	r1 = r1 ^ 268435456;
-	r3 = r1 | r3;
-	if(r3 ==0) //_LBB846_16
-{
-	r3 = r2 & 1;
-	r3 = (r3 + r2)|0;
-}
-else{
-	r3 = r2;
-}
-}
-else{
-	r3 = (r2 + 1)|0;
-}
-}
-else{
-break _1;
-}
-}
-else{
-	r3 = 2139095040;
-}
-}
-else{
-	r1 = r2 & 4194303;
-	r3 = r1 | 2143289344;
-}
-}
-else{
-	r1 = r2 >>> 29;
-	r3 = r0 << 3;
-	r1 = r1 | r3;
-	r2 = r2 & 536870911;
-	if(uint(r2) <uint(268435457)) //_LBB846_3
-{
-	r3 = (r1 + 1073741824)|0;
-	r1 = 0;
-	r2 = r2 ^ 268435456;
-	r1 = r2 | r1;
-	if(r1 ==0) //_LBB846_5
-{
-	r1 = r3 & 1;
-	r3 = (r1 + r3)|0;
-}
-}
-else{
-	r3 = (r1 + 1073741825)|0;
-}
-}
-} while(0);
-	r0 = r0 & -2147483648;
-	r0 = r3 | r0;
-	heap32[(fp+-1)] = r0;
-	f0 = heapFloat[(fp+-1)];
-	f_g0 = f0;
-	return;
-}
-
-function __fixunsdfsi(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 = 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) <uint(8)) //_LBB853_5
-{
-	r5 = (r2 * 8198)|0;
-	r5 = r5 << 2;
-	r5 = (r6 + r5)|0;
-	r5 = r5 >> 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) <uint(23))) //_LBB858_37
-{
-	r3 = (r3 / -12)|0;
-	r3 = (r3 * 12)|0;
-	r1 = (r1 + r3)|0;
-	heap32[(r0+63)] = r1;
-}
-	heap32[(g0)] = r2;
-	_ZdlPv(i7);
-	return;
-}
-
-function imandreel_restore_glcontext(sp)
-{
-	var i7;
-	var fp = sp>>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('index<compoundShape->getNumChildShapes()\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<<MAX_NUM_PARTS_IN_BITS)\x00');
-emit_start(_2E_str19315)
-emit_string('triangleIndex < (1<<(31-MAX_NUM_PARTS_IN_BITS))\x00');
-emit_start(_2E_str20316)
-emit_string('triangleIndex>=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<totalNumRows\x00');
-emit_start(_2E_str76)
-emit_string('btTypedConstraintData\x00');
-emit_start(_ZTI23btDiscreteDynamicsWorld)
-emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
-emit_32(_ZTS23btDiscreteDynamicsWorld);
-emit_32(_ZTI15btDynamicsWorld);
-emit_start(_ZTS23btDiscreteDynamicsWorld)
-emit_string('23btDiscreteDynamicsWorld\x00');
-emit_start(_ZTI15btDynamicsWorld)
-emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
-emit_32(_ZTS15btDynamicsWorld);
-emit_32(_ZTI16btCollisionWorld);
-emit_start(_ZTS15btDynamicsWorld)
-emit_string('15btDynamicsWorld\x00');
-emit_start(_ZTIN25btSimulationIslandManager14IslandCallbackE)
-emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
-emit_32(_ZTSN25btSimulationIslandManager14IslandCallbackE);
-emit_start(_ZTSN25btSimulationIslandManager14IslandCallbackE)
-emit_string('N25btSimulationIslandManager14IslandCallbackE\x00');
-emit_start(_ZTV34btClosestNotMeConvexResultCallback)
-emit_32(0);
-emit_32(_ZTI34btClosestNotMeConvexResultCallback);
-emit_32(_ZN34btClosestNotMeConvexResultCallbackD1Ev__index__);
-emit_32(_ZN34btClosestNotMeConvexResultCallbackD0Ev__index__);
-emit_32(_ZNK34btClosestNotMeConvexResultCallback14needsCollisionEP17btBroadphaseProxy__index__);
-emit_32(_ZN34btClosestNotMeConvexResultCallback15addSingleResultERN16btCollisionWorld17LocalConvexResultEb__index__);
-emit_start(_ZTI34btClosestNotMeConvexResultCallback)
-emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
-emit_32(_ZTS34btClosestNotMeConvexResultCallback);
-emit_32(_ZTIN16btCollisionWorld27ClosestConvexResultCallbackE);
-emit_start(_ZTS34btClosestNotMeConvexResultCallback)
-emit_string('34btClosestNotMeConvexResultCallback\x00');
-emit_start(_ZTVZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback)
-emit_32(0);
-emit_32(_ZTIZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback);
-emit_32(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD1Ev__index__);
-emit_32(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD0Ev__index__);
-emit_32(_ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback13ProcessIslandEPP17btCollisionObjectiPP20btPersistentManifoldii__index__);
-emit_start(_ZTIZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback)
-emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
-emit_32(_ZTSZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback);
-emit_32(_ZTIN25btSimulationIslandManager14IslandCallbackE);
-emit_start(_ZTSZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback)
-emit_string('ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoE27InplaceSolverIslandCallback\x00');
-emit_start(_2E_str87)
-emit_string('predictUnconstraintMotion\x00');
-emit_start(_2E_str188)
-emit_string('calculateSimulationIslands\x00');
-emit_start(_2E_str289)
-emit_string('updateActions\x00');
-emit_start(_2E_str794)
-emit_string('integrateTransforms\x00');
-emit_start(_2E_str895)
-emit_string('CCD motion clamping\x00');
-emit_start(_2E_str996)
-emit_string('solveConstraints\x00');
-emit_start(_2E_str1097)
-emit_string('updateActivationState\x00');
-emit_start(_2E_str1198)
-emit_string('internalSingleStepSimulation\x00');
-emit_start(_2E_str1299)
-emit_string('stepSimulation\x00');
-emit_start(_2E_str13100)
-emit_string('body\x00');
-emit_start(_2E_str1461)
-emit_string('../../../../src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp\x00');
-emit_start(_2E_str1562)
-emit_string('synchronizeMotionStates\x00');
-emit_start(_2E_str16101)
-emit_string('debugDrawWorld\x00');
-emit_start(_ZTV15btDynamicsWorld)
-emit_32(0);
-emit_32(_ZTI15btDynamicsWorld);
-emit_32(_ZN15btDynamicsWorldD1Ev__index__);
-emit_32(_ZN15btDynamicsWorldD0Ev__index__);
-emit_32(_ZN16btCollisionWorld11updateAabbsEv__index__);
-emit_32(_ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw__index__);
-emit_32(_ZN16btCollisionWorld14getDebugDrawerEv__index__);
-emit_32(__cxa_pure_virtual__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_32(__cxa_pure_virtual__index__);
-emit_32(_ZN15btDynamicsWorld13addConstraintEP17btTypedConstraintb__index__);
-emit_32(_ZN15btDynamicsWorld16removeConstraintEP17btTypedConstraint__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(_ZNK15btDynamicsWorld17getNumConstraintsEv__index__);
-emit_32(_ZN15btDynamicsWorld13getConstraintEi__index__);
-emit_32(_ZNK15btDynamicsWorld13getConstraintEi__index__);
-emit_32(__cxa_pure_virtual__index__);
-emit_32(__cxa_pure_virtual__index__);
-emit_32(_ZN15btDynamicsWorld10addVehicleEP17btActionInterface__index__);
-emit_32(_ZN15btDynamicsWorld13removeVehicleEP17btActionInterface__index__);
-emit_32(_ZN15btDynamicsWorld12addCharacterEP17btActionInterface__index__);
-emit_32(_ZN15btDynamicsWorld15removeCharacterEP17btActionInterface__index__);
-emit_start(_ZTV23btDiscreteDynamicsWorld)
-emit_32(0);
-emit_32(_ZTI23btDiscreteDynamicsWorld);
-emit_32(_ZN23btDiscreteDynamicsWorldD1Ev__index__);
-emit_32(_ZN23btDiscreteDynamicsWorldD0Ev__index__);
-emit_32(_ZN16btCollisionWorld11updateAabbsEv__index__);
-emit_32(_ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw__index__);
-emit_32(_ZN16btCollisionWorld14getDebugDrawerEv__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld14debugDrawWorldEv__index__);
-emit_32(_ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3__index__);
-emit_32(_ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld18addCollisionObjectEP17btCollisionObjectss__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld21removeCollisionObjectEP17btCollisionObject__index__);
-emit_32(_ZN16btCollisionWorld33performDiscreteCollisionDetectionEv__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld9serializeEP12btSerializer__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld14stepSimulationEfif__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld13addConstraintEP17btTypedConstraintb__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld16removeConstraintEP17btTypedConstraint__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld9addActionEP17btActionInterface__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld12removeActionEP17btActionInterface__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld10setGravityERK9btVector3__index__);
-emit_32(_ZNK23btDiscreteDynamicsWorld10getGravityEv__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld15removeRigidBodyEP11btRigidBody__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld19setConstraintSolverEP18btConstraintSolver__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld19getConstraintSolverEv__index__);
-emit_32(_ZNK23btDiscreteDynamicsWorld17getNumConstraintsEv__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld13getConstraintEi__index__);
-emit_32(_ZNK23btDiscreteDynamicsWorld13getConstraintEi__index__);
-emit_32(_ZNK23btDiscreteDynamicsWorld12getWorldTypeEv__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld11clearForcesEv__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld10addVehicleEP17btActionInterface__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld13removeVehicleEP17btActionInterface__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld12addCharacterEP17btActionInterface__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld15removeCharacterEP17btActionInterface__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld25predictUnconstraintMotionEf__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld19integrateTransformsEf__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld26calculateSimulationIslandsEv__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfo__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld18saveKinematicStateEf__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBodyss__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld12applyGravityEv__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld11setNumTasksEi__index__);
-emit_32(_ZN23btDiscreteDynamicsWorld14updateVehiclesEf__index__);
-emit_start(_ZTV11btRigidBody)
-emit_32(0);
-emit_32(_ZTI11btRigidBody);
-emit_32(_ZN11btRigidBody24checkCollideWithOverrideEP17btCollisionObject__index__);
-emit_32(_ZN11btRigidBodyD1Ev__index__);
-emit_32(_ZN11btRigidBodyD0Ev__index__);
-emit_32(_ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape__index__);
-emit_32(_ZNK11btRigidBody28calculateSerializeBufferSizeEv__index__);
-emit_32(_ZNK11btRigidBody9serializeEPvP12btSerializer__index__);
-emit_32(_ZNK11btRigidBody21serializeSingleObjectEP12btSerializer__index__);
-emit_start(_ZTI11btRigidBody)
-emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
-emit_32(_ZTS11btRigidBody);
-emit_32(_ZTI17btCollisionObject);
-emit_start(_ZTS11btRigidBody)
-emit_string('11btRigidBody\x00');
-emit_start(_2E_str4144)
-emit_string('btRigidBodyFloatData\x00');
-emit_start(_ZN15CProfileManager11CurrentNodeE)
-emit_32(_ZN15CProfileManager4RootE);
-emit_start(_2E_str729)
-emit_string('Root\x00');
-emit_start(llvm_2E_eh_2E_catch_2E_all_2E_value)
-emit_32(0);
-emit_start(_ZTIN4__rw10__rw_facetE)
-emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
-emit_32(_ZTSN4__rw10__rw_facetE);
-emit_32(_ZTIN4__rw17__rw_synchronizedE);
-emit_start(_ZTSN4__rw10__rw_facetE)
-emit_string('N4__rw10__rw_facetE\x00');
-emit_start(_ZTIN4__rw17__rw_synchronizedE)
-emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
-emit_32(_ZTSN4__rw17__rw_synchronizedE);
-emit_start(_ZTSN4__rw17__rw_synchronizedE)
-emit_string('N4__rw17__rw_synchronizedE\x00');
-emit_start(_2E_str4131)
-emit_string('exception\x00');
-emit_start(_2E_str15132)
-emit_string('unexpected exception\x00');
-emit_start(_2E_str26)
-emit_fill(0,1);
-emit_start(_2E_str3133)
-emit_string('Exception: %s.\x0a\x00');
-emit_start(_2E_str47)
-emit_string('bad_alloc: out of memory\x00');
-emit_start(_2E_str5134)
-emit_string('unknown exception\x00');
-emit_start(_ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E6buffer)
-emit_string('rwstderr:1\x00');
-emit_start(_2E_str7136)
-emit_string('%d\x00');
-emit_start(_ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E8__catset)
-emit_32(1);
-emit_start(_ZZN4__rwL13__rw_vfmtwhatEPcjiS0_E5__cat)
-emit_32(4294967295);
-emit_start(_ZZN4__rw10__rw_throwEizE6errors)
-emit_32(_2E_str8137);
-emit_32(_2E_str9138);
-emit_32(_2E_str10139);
-emit_32(_2E_str11140);
-emit_32(_2E_str12141);
-emit_32(_2E_str138142);
-emit_32(_2E_str14143);
-emit_32(_2E_str159144);
-emit_32(_2E_str16145);
-emit_32(_2E_str17146);
-emit_32(_2E_str18147);
-emit_32(_2E_str19148);
-emit_32(_2E_str20149);
-emit_32(_2E_str21150);
-emit_32(_2E_str22151);
-emit_32(_2E_str23152);
-emit_32(_2E_str24153);
-emit_32(_2E_str25154);
-emit_32(_2E_str2610);
-emit_32(_2E_str27);
-emit_32(_2E_str28155);
-emit_32(_2E_str29156);
-emit_32(_2E_str30);
-emit_32(_2E_str31);
-emit_32(_2E_str32157);
-emit_start(_2E_str8137)
-emit_string('%s: %s: unspecified error\x00');
-emit_start(_2E_str9138)
-emit_string('%s: %s: exception\x00');
-emit_start(_2E_str10139)
-emit_string('%s: %s: unexpected exception\x00');
-emit_start(_2E_str11140)
-emit_string('%s: %s: bad_alloc: out of memory\x00');
-emit_start(_2E_str12141)
-emit_string('%s: %s: bad cast\x00');
-emit_start(_2E_str138142)
-emit_string('%s: %s: logic error\x00');
-emit_start(_2E_str14143)
-emit_string('%s: %s: domain error\x00');
-emit_start(_2E_str159144)
-emit_string('%s: %s: invalid argument\x00');
-emit_start(_2E_str16145)
-emit_string('%s: %s: length error: size %u out of range [0, %u)\x00');
-emit_start(_2E_str17146)
-emit_string('%s: %s: argument value %u out of range [0, %u)\x00');
-emit_start(_2E_str18147)
-emit_string('%s: %s: runtime error\x00');
-emit_start(_2E_str19148)
-emit_string('%s: %s: range error: invalid range [%d, %d)\x00');
-emit_start(_2E_str20149)
-emit_string('%s: %s: overflow error\x00');
-emit_start(_2E_str21150)
-emit_string('%s: %s: underflow error\x00');
-emit_start(_2E_str22151)
-emit_string('%s: stream object has set ios::failbit\x00');
-emit_start(_2E_str23152)
-emit_string('%s: stream object has set ios::badbit\x00');
-emit_start(_2E_str24153)
-emit_string('%s: stream object has set ios::eofbit\x00');
-emit_start(_2E_str25154)
-emit_string('%s: stream object has set %s\x00');
-emit_start(_2E_str2610)
-emit_string('%s: %s: facet %u not found in locale (\x22%s\x22)\x00');
-emit_start(_2E_str27)
-emit_string('%s: %s: bad locale name: \x22%s\x22\x00');
-emit_start(_2E_str28155)
-emit_string('%s: %s: failed to construct locale name\x00');
-emit_start(_2E_str29156)
-emit_string('%s: %s: conversion failed\x00');
-emit_start(_2E_str30)
-emit_string('%s: %s: invalid pointer %p\x00');
-emit_start(_2E_str31)
-emit_string('%s: %s: transformation failed\x00');
-emit_start(_2E_str32157)
-emit_string('%s: %s: bad category value: %#x\x00');
-emit_start(_2E_str33)
-emit_string('LC_COLLATE\x00');
-emit_start(_2E_str134)
-emit_string('LC_CTYPE\x00');
-emit_start(_2E_str235)
-emit_string('LC_MONETARY\x00');
-emit_start(_2E_str336)
-emit_string('LC_NUMERIC\x00');
-emit_start(_2E_str437)
-emit_string('LC_TIME\x00');
-emit_start(_ZTVN4__rw10__rw_facetE)
-emit_32(0);
-emit_32(_ZTIN4__rw10__rw_facetE);
-emit_32(_ZN4__rw10__rw_facetD1Ev__index__);
-emit_32(_ZN4__rw10__rw_facetD0Ev__index__);
-emit_start(_2E_str538)
-emit_string('C\x00');
-emit_start(_ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE10std_facets)
-emit_32(_ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE13std_facet_buf);
-emit_start(_ZZN4__rw10__rw_facet9_C_manageEPS0_NS0_13_C_facet_typeEPKcPFS1_jS4_EE17std_facet_bufsize)
-emit_32(416);
-emit_start(_ZZN4__rw10__rw_facetD4EvE9destroyed)
-emit_string('*** destroyed facet ***\x00');
-emit_start(_ZN4__rw9__rw_catsE)
-emit_32(1);
-emit_32(_2E_str33);
-emit_32(8193);
-emit_32(2);
-emit_32(_2E_str134);
-emit_32(49158);
-emit_32(3);
-emit_32(_2E_str235);
-emit_32(983160);
-emit_32(4);
-emit_32(_2E_str336);
-emit_32(7340928);
-emit_32(5);
-emit_32(_2E_str437);
-emit_32(25168896);
-emit_32(1);
-emit_32(_2E_str33);
-emit_32(8193);
-emit_start(_2E_str785)
-emit_string(';\x00');
-emit_start(_ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE7locales)
-emit_32(_ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE10locale_buf);
-emit_start(_ZZN4__rw11__rw_locale9_C_manageEPS0_PKcE14locale_bufsize)
-emit_32(8);
-emit_start(_2E_str292167)
-emit_string('LC_\x00');
-emit_start(_2E_str10100175)
-emit_string('locale::locale (const char*)\x00');
-emit_start(_2E_str12102177)
-emit_string('../stdcxx/locale_combine.cpp:650\x00');
-emit_start(_ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE8catalogs)
-emit_32(_ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE11catalog_buf);
-emit_start(_ZZN4__rwL20__rw_manage_cat_dataERiPNS_18__rw_open_cat_dataEE15catalog_bufsize)
-emit_32(8);
-emit_start(_2E_str115180)
-emit_string('../stdcxx/messages.cpp:308\x00');
-emit_start(_2E_str1116181)
-emit_string('__rw_cat_close (int cat)\x00');
-emit_start(_2E_str2131)
-emit_string('.\x00');
-emit_start(_2E_str4133)
-emit_string(',\x00');
-emit_start(_ZTVSt8messagesIcE)
-emit_32(0);
-emit_32(_ZTISt8messagesIcE);
-emit_32(_ZNSt8messagesIcED1Ev__index__);
-emit_32(_ZNSt8messagesIcED0Ev__index__);
-emit_32(_ZNKSt8messagesIcE7do_openERKSsRKSt6locale__index__);
-emit_32(_ZNKSt8messagesIcE6do_getEiiiRKSs__index__);
-emit_32(_ZNKSt8messagesIcE8do_closeEi__index__);
-emit_start(_ZTISt8messagesIcE)
-emit_32(_ZTVN10__cxxabiv121__vmi_class_type_infoE+8);
-emit_32(_ZTSSt8messagesIcE);
-emit_32(0);
-emit_32(2);
-emit_32(_ZTIN4__rw10__rw_facetE);
-emit_32(2);
-emit_32(_ZTISt13messages_base);
-emit_32(2);
-emit_start(_ZTSSt8messagesIcE)
-emit_string('St8messagesIcE\x00');
-emit_start(_ZTISt13messages_base)
-emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
-emit_32(_ZTSSt13messages_base);
-emit_start(_ZTSSt13messages_base)
-emit_string('St13messages_base\x00');
-emit_start(_2E_str2360)
-emit_string('../stdcxx/include/string.cc:88\x00');
-emit_start(_2E_str3361)
-emit_string('basic_string::_C_get_rep (size_type, size_type)\x00');
-emit_start(_2E_str4362)
-emit_string('../stdcxx/include/string.cc:95\x00');
-emit_start(_ZTVSt9type_info)
-emit_32(0);
-emit_32(_ZTISt9type_info);
-emit_32(_ZNSt9type_infoD1Ev__index__);
-emit_32(_ZNSt9type_infoD0Ev__index__);
-emit_32(_ZNKSt9type_info15__is_function_pEv__index__);
-emit_32(_ZNKSt9type_info10__do_catchEPKS_PPvj__index__);
-emit_start(_ZTISt9type_info)
-emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
-emit_32(_ZTSSt9type_info);
-emit_start(_ZTSSt9type_info)
-emit_string('St9type_info\x00');
-emit_start(_2E_str643)
-emit_string('tlsf_create: Pool size must be between %d and %d bytes.\x0a\x00');
-emit_start(_2E_str1648)
-emit_string('rb\x00');
-emit_start(_2E_str4651)
-emit_string('rb+\x00');
-emit_start(_2E_str5652)
-emit_string('wb+\x00');
-emit_start(my_ctype)
-emit_32(0);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(40);
-emit_32(40);
-emit_32(40);
-emit_32(40);
-emit_32(40);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(32);
-emit_32(72);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(132);
-emit_32(132);
-emit_32(132);
-emit_32(132);
-emit_32(132);
-emit_32(132);
-emit_32(132);
-emit_32(132);
-emit_32(132);
-emit_32(132);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(129);
-emit_32(129);
-emit_32(129);
-emit_32(129);
-emit_32(129);
-emit_32(129);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(1);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(130);
-emit_32(130);
-emit_32(130);
-emit_32(130);
-emit_32(130);
-emit_32(130);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(2);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(16);
-emit_32(32);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_32(0);
-emit_start(_ZL8nextRand)
-emit_32(1);
-emit_start(_2E_str7654)
-emit_string('inf\x00');
-emit_start(_2E_str9655)
-emit_string('nan\x00');
-emit_start(_ZL8pad_line)
-emit_string('                \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00');
-emit_string('0000000000000000\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00');
-emit_start(_ZTI14CFileInterface)
-emit_32(_ZTVN10__cxxabiv117__class_type_infoE+8);
-emit_32(_ZTS14CFileInterface);
-emit_start(_ZTS14CFileInterface)
-emit_string('14CFileInterface\x00');
-emit_start(_ZTV11CFileSystem)
-emit_32(0);
-emit_32(_ZTI11CFileSystem);
-emit_32(_ZNK11CFileSystem12IsFileSystemEv__index__);
-emit_32(_ZN11CFileSystem5freadEPvjj__index__);
-emit_32(_ZN11CFileSystem6fwriteEPKvjj__index__);
-emit_32(_ZN11CFileSystem6fflushEv__index__);
-emit_32(_ZN11CFileSystem6fcloseEv__index__);
-emit_32(_ZN11CFileSystem5ftellEv__index__);
-emit_32(_ZN11CFileSystem4feofEv__index__);
-emit_32(_ZN11CFileSystem5fseekEli__index__);
-emit_32(_ZN11CFileSystem6ungetcEi__index__);
-emit_start(_ZTI11CFileSystem)
-emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
-emit_32(_ZTS11CFileSystem);
-emit_32(_ZTI14CFileInterface);
-emit_start(_ZTS11CFileSystem)
-emit_string('11CFileSystem\x00');
-emit_start(_ZL13s_file_stdout)
-emit_32(_ZTV11CFileStdout+8);
-emit_start(_ZTV7CFileLS)
-emit_32(0);
-emit_32(_ZTI7CFileLS);
-emit_32(_ZNK14CFileInterface12IsFileSystemEv__index__);
-emit_32(_ZN7CFileLS5freadEPvjj__index__);
-emit_32(_ZN7CFileLS6fwriteEPKvjj__index__);
-emit_32(_ZN7CFileLS6fflushEv__index__);
-emit_32(_ZN7CFileLS6fcloseEv__index__);
-emit_32(_ZN7CFileLS5ftellEv__index__);
-emit_32(_ZN7CFileLS4feofEv__index__);
-emit_32(_ZN7CFileLS5fseekEli__index__);
-emit_32(_ZN7CFileLS6ungetcEi__index__);
-emit_start(_ZTI7CFileLS)
-emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
-emit_32(_ZTS7CFileLS);
-emit_32(_ZTI14CFileInterface);
-emit_start(_ZTS7CFileLS)
-emit_string('7CFileLS\x00');
-emit_start(_ZTV10CFileCloud)
-emit_32(0);
-emit_32(_ZTI10CFileCloud);
-emit_32(_ZNK14CFileInterface12IsFileSystemEv__index__);
-emit_32(_ZN10CFileCloud5freadEPvjj__index__);
-emit_32(_ZN10CFileCloud6fwriteEPKvjj__index__);
-emit_32(_ZN10CFileCloud6fflushEv__index__);
-emit_32(_ZN10CFileCloud6fcloseEv__index__);
-emit_32(_ZN10CFileCloud5ftellEv__index__);
-emit_32(_ZN10CFileCloud4feofEv__index__);
-emit_32(_ZN10CFileCloud5fseekEli__index__);
-emit_32(_ZN10CFileCloud6ungetcEi__index__);
-emit_start(_ZTI10CFileCloud)
-emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
-emit_32(_ZTS10CFileCloud);
-emit_32(_ZTI14CFileInterface);
-emit_start(_ZTS10CFileCloud)
-emit_string('10CFileCloud\x00');
-emit_start(_ZTV11CFileStdout)
-emit_32(0);
-emit_32(_ZTI11CFileStdout);
-emit_32(_ZNK14CFileInterface12IsFileSystemEv__index__);
-emit_32(_ZN11CFileStdout5freadEPvjj__index__);
-emit_32(_ZN11CFileStdout6fwriteEPKvjj__index__);
-emit_32(_ZN11CFileStdout6fflushEv__index__);
-emit_32(_ZN11CFileStdout6fcloseEv__index__);
-emit_32(_ZN11CFileStdout5ftellEv__index__);
-emit_32(_ZN11CFileStdout4feofEv__index__);
-emit_32(_ZN11CFileStdout5fseekEli__index__);
-emit_32(_ZN11CFileStdout6ungetcEi__index__);
-emit_start(_ZTI11CFileStdout)
-emit_32(_ZTVN10__cxxabiv120__si_class_type_infoE+8);
-emit_32(_ZTS11CFileStdout);
-emit_32(_ZTI14CFileInterface);
-emit_start(_ZTS11CFileStdout)
-emit_string('11CFileStdout\x00');
-emit_start(_2E_str31677)
-emit_string('r+b\x00');
-emit_start(_2E_str32678)
-emit_string('w+b\x00');
-emit_start(_2E_str33679)
-emit_string('/ls/\x00');
-emit_start(_2E_str34680)
-emit_string('/cloud/\x00');
-emit_start(_2E_str35681)
-emit_string('trying to open file (%s) with write attributes (%s)\x0a\x00');
-emit_start(_2E_str37683)
-emit_string('/ls\x00');
-emit_start(_2E_str38684)
-emit_string('(null)\x00');
-emit_start(_ZN12mandreel_b64L9b64_charsE)
-emit_string('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x00');
-emit_start(_ZN12mandreel_b64L11b64_indexesE)
-emit_string('\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?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/suite/pts/hostTests/browser/browserlauncher/assets/octane/navier-stokes.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/navier-stokes.js
deleted file mode 100644
index a33e7cd..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/navier-stokes.js
+++ /dev/null
@@ -1,409 +0,0 @@
-/**
- * Copyright 2012 the V8 project authors. All rights reserved.
- * Copyright 2009 Oliver Hunt <http://nerget.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 NavierStokes = new BenchmarkSuite('NavierStokes', 1484000,
-                                      [new Benchmark('NavierStokes',
-                                                     runNavierStokes,
-                                                     setupNavierStokes,
-                                                     tearDownNavierStokes,
-                                                     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!=74) {
-        alert("checksum failed: " + this.result);
-    }
-}
-
-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<size ; i++ ) x[i] += dt*s[i];
-    }
-
-    function set_bnd(b, x)
-    {
-        if (b===1) {
-            for (var i = 1; i <= width; i++) {
-                x[i] =  x[i + rowSize];
-                x[i + (height+1) *rowSize] = x[i + height * rowSize];
-            }
-
-            for (var j = 1; i <= height; i++) {
-                x[j * rowSize] = -x[1 + j * rowSize];
-                x[(width + 1) + j * rowSize] = -x[width + j * rowSize];
-            }
-        } else if (b === 2) {
-            for (var i = 1; i <= width; i++) {
-                x[i] = -x[i + rowSize];
-                x[i + (height + 1) * rowSize] = -x[i + height * rowSize];
-            }
-
-            for (var j = 1; j <= height; j++) {
-                x[j * rowSize] =  x[1 + j * rowSize];
-                x[(width + 1) + j * rowSize] =  x[width + j * rowSize];
-            }
-        } else {
-            for (var i = 1; i <= width; i++) {
-                x[i] =  x[i + rowSize];
-                x[i + (height + 1) * rowSize] = x[i + height * rowSize];
-            }
-
-            for (var j = 1; j <= height; j++) {
-                x[j * rowSize] =  x[1 + j * rowSize];
-                x[(width + 1) + j * rowSize] =  x[width + j * rowSize];
-            }
-        }
-        var maxEdge = (height + 1) * rowSize;
-        x[0]                 = 0.5 * (x[1] + x[rowSize]);
-        x[maxEdge]           = 0.5 * (x[1 + maxEdge] + x[height * rowSize]);
-        x[(width+1)]         = 0.5 * (x[width] + x[(width + 1) + rowSize]);
-        x[(width+1)+maxEdge] = 0.5 * (x[width + maxEdge] + x[(width + 1) + height * rowSize]);
-    }
-
-    function lin_solve(b, x, x0, a, c)
-    {
-        if (a === 0 && c === 1) {
-            for (var j=1 ; j<=height; j++) {
-                var currentRow = j * rowSize;
-                ++currentRow;
-                for (var i = 0; i < width; i++) {
-                    x[currentRow] = x0[currentRow];
-                    ++currentRow;
-                }
-            }
-            set_bnd(b, x);
-        } else {
-            var invC = 1 / c;
-            for (var k=0 ; k<iterations; k++) {
-                for (var j=1 ; j<=height; j++) {
-                    var lastRow = (j - 1) * rowSize;
-                    var currentRow = j * rowSize;
-                    var nextRow = (j + 1) * rowSize;
-                    var lastX = x[currentRow];
-                    ++currentRow;
-                    for (var i=1; i<=width; i++)
-                        lastX = x[currentRow] = (x0[currentRow] + a*(lastX+x[++currentRow]+x[++lastRow]+x[++nextRow])) * invC;
-                }
-                set_bnd(b, x);
-            }
-        }
-    }
-
-    function diffuse(b, x, x0, dt)
-    {
-        var a = 0;
-        lin_solve(b, x, x0, a, 1 + 4*a);
-    }
-
-    function lin_solve2(x, x0, y, y0, a, c)
-    {
-        if (a === 0 && c === 1) {
-            for (var j=1 ; j <= height; j++) {
-                var currentRow = j * rowSize;
-                ++currentRow;
-                for (var i = 0; i < width; i++) {
-                    x[currentRow] = x0[currentRow];
-                    y[currentRow] = y0[currentRow];
-                    ++currentRow;
-                }
-            }
-            set_bnd(1, x);
-            set_bnd(2, y);
-        } else {
-            var invC = 1/c;
-            for (var k=0 ; k<iterations; k++) {
-                for (var j=1 ; j <= height; j++) {
-                    var lastRow = (j - 1) * rowSize;
-                    var currentRow = j * rowSize;
-                    var nextRow = (j + 1) * rowSize;
-                    var lastX = x[currentRow];
-                    var lastY = y[currentRow];
-                    ++currentRow;
-                    for (var i = 1; i <= width; i++) {
-                        lastX = x[currentRow] = (x0[currentRow] + a * (lastX + x[currentRow] + x[lastRow] + x[nextRow])) * invC;
-                        lastY = y[currentRow] = (y0[currentRow] + a * (lastY + y[++currentRow] + y[++lastRow] + y[++nextRow])) * invC;
-                    }
-                }
-                set_bnd(1, x);
-                set_bnd(2, y);
-            }
-        }
-    }
-
-    function diffuse2(x, x0, y, y0, dt)
-    {
-        var a = 0;
-        lin_solve2(x, x0, y, y0, a, 1 + 4 * a);
-    }
-
-    function advect(b, d, d0, u, v, dt)
-    {
-        var Wdt0 = dt * width;
-        var Hdt0 = dt * height;
-        var Wp5 = width + 0.5;
-        var Hp5 = height + 0.5;
-        for (var j = 1; j<= height; j++) {
-            var pos = j * rowSize;
-            for (var i = 1; i <= width; i++) {
-                var x = i - Wdt0 * u[++pos];
-                var y = j - Hdt0 * v[pos];
-                if (x < 0.5)
-                    x = 0.5;
-                else if (x > 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/suite/pts/hostTests/browser/browserlauncher/assets/octane/pdfjs.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/pdfjs.js
deleted file mode 100644
index a915220..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/pdfjs.js
+++ /dev/null
@@ -1,33056 +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", 9000000, [
-  new Benchmark("PdfJS", runPdfJS, setupPdfJS, tearDownPdfJS, 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","<elem>",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';
-
-// <canvas> 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 <iframe>, set up properly, to know when
-      // our @font-face rule was loaded.  However, the subdocument and
-      // outer document can't share CSS rules, so the inner document
-      // is only part of the puzzle.  The second piece is an invisible
-      // div created in order to force loading of the @font-face in
-      // the *outer* document.  (The font still needs to be loaded for
-      // its metrics, for reflow).  We create the div first for the
-      // outer document, then create the iframe.  Unless something
-      // goes really wonkily, we expect the @font-face for the outer
-      // document to be processed before the inner.  That's still
-      // fragile, but seems to work in practice.
-      //
-      // The postMessage() hackery was added to work around chrome bug
-      // 82402.
-
-      // Validate the names parameter -- the values can used to construct HTML.
-      if (!/^\w+$/.test(names.join(''))) {
-        error('Invalid font name(s): ' + names.join());
-
-        // Normally the error-function throws. But if a malicious code
-        // intercepts the function call then the return is needed.
-        return;
-      }
-
-      var div = PdfJS_window.document.createElement('div');
-      div.setAttribute('style',
-                       'visibility: hidden;' +
-                       'width: 10px; height: 10px;' +
-                       'position: absolute; top: 0px; left: 0px;');
-      var html = '';
-      for (var i = 0, ii = names.length; i < ii; ++i) {
-        html += '<span style="font-family:' + names[i] + '">Hi</span>';
-      }
-      div.innerHTML = html;
-      PdfJS_window.document.body.appendChild(div);
-
-      if (!this.listeningForFontLoad) {
-        PdfJS_window.window.addEventListener(
-          'message',
-          function fontLoaderMessage(e) {
-            var fontNames = JSON.parse(e.data);
-            for (var i = 0, ii = fonts.length; i < ii; ++i) {
-              var font = fonts[i];
-              font.loading = false;
-            }
-            var evt = PdfJS_window.document.createEvent('Events');
-            evt.initEvent('pdfjsFontLoad', true, false);
-            PdfJS_window.document.documentElement.dispatchEvent(evt);
-          },
-          false);
-        this.listeningForFontLoad = true;
-      }
-
-      // XXX we should have a time-out here too, and maybe fire
-      // pdfjsFontLoadFailed?
-      var src = '<!DOCTYPE HTML><html><head>';
-      src += '<style type="text/css">';
-      for (var i = 0, ii = rules.length; i < ii; ++i) {
-        src += rules[i];
-      }
-      src += '</style>';
-      src += '<script type="application/javascript">';
-      var fontNamesArray = '';
-      for (var i = 0, ii = names.length; i < ii; ++i) {
-        fontNamesArray += '"' + names[i] + '", ';
-      }
-      src += '  var fontNames=[' + fontNamesArray + '];\n';
-      src += '  PdfJS_window.window.onload = function fontLoaderOnload() {\n';
-      src += '    parent.postMessage(JSON.stringify(fontNames), "*");\n';
-      src += '  }';
-      // Hack so the end script tag isn't counted if this is inline JS.
-      src += '</scr' + 'ipt></head><body>';
-      for (var i = 0, ii = names.length; i < ii; ++i) {
-        src += '<p style="font-family:\'' + names[i] + '\'">Hi</p>';
-      }
-      src += '</body></html>';
-      var frame = PdfJS_window.document.createElement('iframe');
-      frame.src = 'data:text/html,' + src;
-      frame.setAttribute('style',
-                         'visibility: hidden;' +
-                         'width: 10px; height: 10px;' +
-                         'position: absolute; top: 0px; left: 0px;');
-      PdfJS_window.document.body.appendChild(frame);
-      /** Hack end */
-  }
-};
-
-var UnicodeRanges = [
-  { 'begin': 0x0000, 'end': 0x007F }, // Basic Latin
-  { 'begin': 0x0080, 'end': 0x00FF }, // Latin-1 Supplement
-  { 'begin': 0x0100, 'end': 0x017F }, // Latin Extended-A
-  { 'begin': 0x0180, 'end': 0x024F }, // Latin Extended-B
-  { 'begin': 0x0250, 'end': 0x02AF }, // IPA Extensions
-  { 'begin': 0x02B0, 'end': 0x02FF }, // Spacing Modifier Letters
-  { 'begin': 0x0300, 'end': 0x036F }, // Combining Diacritical Marks
-  { 'begin': 0x0370, 'end': 0x03FF }, // Greek and Coptic
-  { 'begin': 0x2C80, 'end': 0x2CFF }, // Coptic
-  { 'begin': 0x0400, 'end': 0x04FF }, // Cyrillic
-  { 'begin': 0x0530, 'end': 0x058F }, // Armenian
-  { 'begin': 0x0590, 'end': 0x05FF }, // Hebrew
-  { 'begin': 0xA500, 'end': 0xA63F }, // Vai
-  { 'begin': 0x0600, 'end': 0x06FF }, // Arabic
-  { 'begin': 0x07C0, 'end': 0x07FF }, // NKo
-  { 'begin': 0x0900, 'end': 0x097F }, // Devanagari
-  { 'begin': 0x0980, 'end': 0x09FF }, // Bengali
-  { 'begin': 0x0A00, 'end': 0x0A7F }, // Gurmukhi
-  { 'begin': 0x0A80, 'end': 0x0AFF }, // Gujarati
-  { 'begin': 0x0B00, 'end': 0x0B7F }, // Oriya
-  { 'begin': 0x0B80, 'end': 0x0BFF }, // Tamil
-  { 'begin': 0x0C00, 'end': 0x0C7F }, // Telugu
-  { 'begin': 0x0C80, 'end': 0x0CFF }, // Kannada
-  { 'begin': 0x0D00, 'end': 0x0D7F }, // Malayalam
-  { 'begin': 0x0E00, 'end': 0x0E7F }, // Thai
-  { 'begin': 0x0E80, 'end': 0x0EFF }, // Lao
-  { 'begin': 0x10A0, 'end': 0x10FF }, // Georgian
-  { 'begin': 0x1B00, 'end': 0x1B7F }, // Balinese
-  { 'begin': 0x1100, 'end': 0x11FF }, // Hangul Jamo
-  { 'begin': 0x1E00, 'end': 0x1EFF }, // Latin Extended Additional
-  { 'begin': 0x1F00, 'end': 0x1FFF }, // Greek Extended
-  { 'begin': 0x2000, 'end': 0x206F }, // General Punctuation
-  { 'begin': 0x2070, 'end': 0x209F }, // Superscripts And Subscripts
-  { 'begin': 0x20A0, 'end': 0x20CF }, // Currency Symbol
-  { 'begin': 0x20D0, 'end': 0x20FF }, // Combining Diacritical Marks For Symbols
-  { 'begin': 0x2100, 'end': 0x214F }, // Letterlike Symbols
-  { 'begin': 0x2150, 'end': 0x218F }, // Number Forms
-  { 'begin': 0x2190, 'end': 0x21FF }, // Arrows
-  { 'begin': 0x2200, 'end': 0x22FF }, // Mathematical Operators
-  { 'begin': 0x2300, 'end': 0x23FF }, // Miscellaneous Technical
-  { 'begin': 0x2400, 'end': 0x243F }, // Control Pictures
-  { 'begin': 0x2440, 'end': 0x245F }, // Optical Character Recognition
-  { 'begin': 0x2460, 'end': 0x24FF }, // Enclosed Alphanumerics
-  { 'begin': 0x2500, 'end': 0x257F }, // Box Drawing
-  { 'begin': 0x2580, 'end': 0x259F }, // Block Elements
-  { 'begin': 0x25A0, 'end': 0x25FF }, // Geometric Shapes
-  { 'begin': 0x2600, 'end': 0x26FF }, // Miscellaneous Symbols
-  { 'begin': 0x2700, 'end': 0x27BF }, // Dingbats
-  { 'begin': 0x3000, 'end': 0x303F }, // CJK Symbols And Punctuation
-  { 'begin': 0x3040, 'end': 0x309F }, // Hiragana
-  { 'begin': 0x30A0, 'end': 0x30FF }, // Katakana
-  { 'begin': 0x3100, 'end': 0x312F }, // Bopomofo
-  { 'begin': 0x3130, 'end': 0x318F }, // Hangul Compatibility Jamo
-  { 'begin': 0xA840, 'end': 0xA87F }, // Phags-pa
-  { 'begin': 0x3200, 'end': 0x32FF }, // Enclosed CJK Letters And Months
-  { 'begin': 0x3300, 'end': 0x33FF }, // CJK Compatibility
-  { 'begin': 0xAC00, 'end': 0xD7AF }, // Hangul Syllables
-  { 'begin': 0xD800, 'end': 0xDFFF }, // Non-Plane 0 *
-  { 'begin': 0x10900, 'end': 0x1091F }, // Phoenicia
-  { 'begin': 0x4E00, 'end': 0x9FFF }, // CJK Unified Ideographs
-  { 'begin': 0xE000, 'end': 0xF8FF }, // Private Use Area (plane 0)
-  { 'begin': 0x31C0, 'end': 0x31EF }, // CJK Strokes
-  { 'begin': 0xFB00, 'end': 0xFB4F }, // Alphabetic Presentation Forms
-  { 'begin': 0xFB50, 'end': 0xFDFF }, // Arabic Presentation Forms-A
-  { 'begin': 0xFE20, 'end': 0xFE2F }, // Combining Half Marks
-  { 'begin': 0xFE10, 'end': 0xFE1F }, // Vertical Forms
-  { 'begin': 0xFE50, 'end': 0xFE6F }, // Small Form Variants
-  { 'begin': 0xFE70, 'end': 0xFEFF }, // Arabic Presentation Forms-B
-  { 'begin': 0xFF00, 'end': 0xFFEF }, // Halfwidth And Fullwidth Forms
-  { 'begin': 0xFFF0, 'end': 0xFFFF }, // Specials
-  { 'begin': 0x0F00, 'end': 0x0FFF }, // Tibetan
-  { 'begin': 0x0700, 'end': 0x074F }, // Syriac
-  { 'begin': 0x0780, 'end': 0x07BF }, // Thaana
-  { 'begin': 0x0D80, 'end': 0x0DFF }, // Sinhala
-  { 'begin': 0x1000, 'end': 0x109F }, // Myanmar
-  { 'begin': 0x1200, 'end': 0x137F }, // Ethiopic
-  { 'begin': 0x13A0, 'end': 0x13FF }, // Cherokee
-  { 'begin': 0x1400, 'end': 0x167F }, // Unified Canadian Aboriginal Syllabics
-  { 'begin': 0x1680, 'end': 0x169F }, // Ogham
-  { 'begin': 0x16A0, 'end': 0x16FF }, // Runic
-  { 'begin': 0x1780, 'end': 0x17FF }, // Khmer
-  { 'begin': 0x1800, 'end': 0x18AF }, // Mongolian
-  { 'begin': 0x2800, 'end': 0x28FF }, // Braille Patterns
-  { 'begin': 0xA000, 'end': 0xA48F }, // Yi Syllables
-  { 'begin': 0x1700, 'end': 0x171F }, // Tagalog
-  { 'begin': 0x10300, 'end': 0x1032F }, // Old Italic
-  { 'begin': 0x10330, 'end': 0x1034F }, // Gothic
-  { 'begin': 0x10400, 'end': 0x1044F }, // Deseret
-  { 'begin': 0x1D000, 'end': 0x1D0FF }, // Byzantine Musical Symbols
-  { 'begin': 0x1D400, 'end': 0x1D7FF }, // Mathematical Alphanumeric Symbols
-  { 'begin': 0xFF000, 'end': 0xFFFFD }, // Private Use (plane 15)
-  { 'begin': 0xFE00, 'end': 0xFE0F }, // Variation Selectors
-  { 'begin': 0xE0000, 'end': 0xE007F }, // Tags
-  { 'begin': 0x1900, 'end': 0x194F }, // Limbu
-  { 'begin': 0x1950, 'end': 0x197F }, // Tai Le
-  { 'begin': 0x1980, 'end': 0x19DF }, // New Tai Lue
-  { 'begin': 0x1A00, 'end': 0x1A1F }, // Buginese
-  { 'begin': 0x2C00, 'end': 0x2C5F }, // Glagolitic
-  { 'begin': 0x2D30, 'end': 0x2D7F }, // Tifinagh
-  { 'begin': 0x4DC0, 'end': 0x4DFF }, // Yijing Hexagram Symbols
-  { 'begin': 0xA800, 'end': 0xA82F }, // Syloti Nagri
-  { 'begin': 0x10000, 'end': 0x1007F }, // Linear B Syllabary
-  { 'begin': 0x10140, 'end': 0x1018F }, // Ancient Greek Numbers
-  { 'begin': 0x10380, 'end': 0x1039F }, // Ugaritic
-  { 'begin': 0x103A0, 'end': 0x103DF }, // Old Persian
-  { 'begin': 0x10450, 'end': 0x1047F }, // Shavian
-  { 'begin': 0x10480, 'end': 0x104AF }, // Osmanya
-  { 'begin': 0x10800, 'end': 0x1083F }, // Cypriot Syllabary
-  { 'begin': 0x10A00, 'end': 0x10A5F }, // Kharoshthi
-  { 'begin': 0x1D300, 'end': 0x1D35F }, // Tai Xuan Jing Symbols
-  { 'begin': 0x12000, 'end': 0x123FF }, // Cuneiform
-  { 'begin': 0x1D360, 'end': 0x1D37F }, // Counting Rod Numerals
-  { 'begin': 0x1B80, 'end': 0x1BBF }, // Sundanese
-  { 'begin': 0x1C00, 'end': 0x1C4F }, // Lepcha
-  { 'begin': 0x1C50, 'end': 0x1C7F }, // Ol Chiki
-  { 'begin': 0xA880, 'end': 0xA8DF }, // Saurashtra
-  { 'begin': 0xA900, 'end': 0xA92F }, // Kayah Li
-  { 'begin': 0xA930, 'end': 0xA95F }, // Rejang
-  { 'begin': 0xAA00, 'end': 0xAA5F }, // Cham
-  { 'begin': 0x10190, 'end': 0x101CF }, // Ancient Symbols
-  { 'begin': 0x101D0, 'end': 0x101FF }, // Phaistos Disc
-  { 'begin': 0x102A0, 'end': 0x102DF }, // Carian
-  { 'begin': 0x1F030, 'end': 0x1F09F }  // Domino Tiles
-];
-
-var MacStandardGlyphOrdering = [
-  '.notdef', '.null', 'nonmarkingreturn', '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',
-  'nonbreakingspace', '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',
-  'Lslash', 'lslash', 'Scaron', 'scaron', 'Zcaron', 'zcaron', 'brokenbar',
-  'Eth', 'eth', 'Yacute', 'yacute', 'Thorn', 'thorn', 'minus', 'multiply',
-  'onesuperior', 'twosuperior', 'threesuperior', 'onehalf', 'onequarter',
-  'threequarters', 'franc', 'Gbreve', 'gbreve', 'Idotaccent', 'Scedilla',
-  'scedilla', 'Cacute', 'cacute', 'Ccaron', 'ccaron', 'dcroat'];
-
-function getUnicodeRangeFor(value) {
-  for (var i = 0, ii = UnicodeRanges.length; i < ii; i++) {
-    var range = UnicodeRanges[i];
-    if (value >= range.begin && value < range.end)
-      return i;
-  }
-  return -1;
-}
-
-function isRTLRangeFor(value) {
-  var range = UnicodeRanges[13];
-  if (value >= range.begin && value < range.end)
-    return true;
-  range = UnicodeRanges[11];
-  if (value >= range.begin && value < range.end)
-    return true;
-  return false;
-}
-
-function isSpecialUnicode(unicode) {
-  return (unicode <= 0x1F || (unicode >= 127 && unicode < kSizeOfGlyphArea)) ||
-    (unicode >= kCmapGlyphOffset &&
-    unicode < kCmapGlyphOffset + kSizeOfGlyphArea);
-}
-
-/**
- * 'Font' is the class the outside world should use, it encapsulate all the font
- * decoding logics whatever type it is (assuming the font type is supported).
- *
- * For example to read a Type1 font and to attach it to the document:
- *   var type1Font = new Font("MyFontName", binaryFile, propertiesObject);
- *   type1Font.bind();
- */
-var Font = (function FontClosure() {
-  function Font(name, file, properties) {
-    this.name = name;
-    this.coded = properties.coded;
-    this.charProcOperatorList = properties.charProcOperatorList;
-    this.sizes = [];
-
-    var names = name.split('+');
-    names = names.length > 1 ? names[1] : names[0];
-    names = names.split(/[-,_]/g)[0];
-    this.isSerifFont = !!(properties.flags & FontFlags.Serif);
-    this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);
-
-    var type = properties.type;
-    this.type = type;
-
-    // If the font is to be ignored, register it like an already loaded font
-    // to avoid the cost of waiting for it be be loaded by the platform.
-    if (properties.ignore) {
-      this.loadedName = this.isSerifFont ? 'serif' : 'sans-serif';
-      this.loading = false;
-      return;
-    }
-
-    this.differences = properties.differences;
-    this.widths = properties.widths;
-    this.defaultWidth = properties.defaultWidth;
-    this.composite = properties.composite;
-    this.wideChars = properties.wideChars;
-    this.hasEncoding = properties.hasEncoding;
-
-    this.fontMatrix = properties.fontMatrix;
-    this.widthMultiplier = 1.0;
-    if (properties.type == 'Type3') {
-      this.encoding = properties.baseEncoding;
-      return;
-    }
-
-    // Trying to fix encoding using glyph CIDSystemInfo.
-    this.loadCidToUnicode(properties);
-
-    if (properties.toUnicode)
-      this.toUnicode = properties.toUnicode;
-    else
-      this.rebuildToUnicode(properties);
-
-    this.toFontChar = this.buildToFontChar(this.toUnicode);
-
-    if (!file) {
-      // The file data is not specified. Trying to fix the font name
-      // to be used with the canvas.font.
-      var fontName = name.replace(/[,_]/g, '-');
-      fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;
-
-      this.bold = (fontName.search(/bold/gi) != -1);
-      this.italic = (fontName.search(/oblique/gi) != -1) ||
-                    (fontName.search(/italic/gi) != -1);
-
-      // Use 'name' instead of 'fontName' here because the original
-      // name ArialBlack for example will be replaced by Helvetica.
-      this.black = (name.search(/Black/g) != -1);
-
-      this.encoding = properties.baseEncoding;
-      this.noUnicodeAdaptation = true;
-      this.loadedName = fontName.split('-')[0];
-      this.loading = false;
-      return;
-    }
-
-    var data;
-    switch (type) {
-      case 'Type1':
-      case 'CIDFontType0':
-        this.mimetype = 'font/opentype';
-
-        var subtype = properties.subtype;
-        var cff = (subtype == 'Type1C' || subtype == 'CIDFontType0C') ?
-          new CFFFont(file, properties) : new Type1Font(name, file, properties);
-
-        // Wrap the CFF data inside an OTF font file
-        data = this.convert(name, cff, properties);
-        break;
-
-      case 'TrueType':
-      case 'CIDFontType2':
-        this.mimetype = 'font/opentype';
-
-        // Repair the TrueType file. It is can be damaged in the point of
-        // view of the sanitizer
-        data = this.checkAndRepair(name, file, properties);
-        break;
-
-      default:
-        warn('Font ' + properties.type + ' is not supported');
-        break;
-    }
-
-    this.data = data;
-    this.fontMatrix = properties.fontMatrix;
-    this.widthMultiplier = !properties.fontMatrix ? 1.0 :
-      1.0 / properties.fontMatrix[0];
-    this.encoding = properties.baseEncoding;
-    this.loadedName = properties.loadedName;
-    this.loading = true;
-  };
-
-  var numFonts = 0;
-  function getUniqueName() {
-    return 'pdfFont' + numFonts++;
-  }
-
-  function stringToArray(str) {
-    var array = [];
-    for (var i = 0, ii = str.length; i < ii; ++i)
-      array[i] = str.charCodeAt(i);
-
-    return array;
-  };
-
-  function arrayToString(arr) {
-    var str = '';
-    for (var i = 0, ii = arr.length; i < ii; ++i)
-      str += String.fromCharCode(arr[i]);
-
-    return str;
-  };
-
-  function int16(bytes) {
-    return (bytes[0] << 8) + (bytes[1] & 0xff);
-  };
-
-  function int32(bytes) {
-    return (bytes[0] << 24) + (bytes[1] << 16) +
-           (bytes[2] << 8) + (bytes[3] & 0xff);
-  };
-
-  function getMaxPower2(number) {
-    var maxPower = 0;
-    var value = number;
-    while (value >= 2) {
-      value /= 2;
-      maxPower++;
-    }
-
-    value = 2;
-    for (var i = 1; i < maxPower; i++)
-      value *= 2;
-    return value;
-  };
-
-  function string16(value) {
-    return String.fromCharCode((value >> 8) & 0xff) +
-           String.fromCharCode(value & 0xff);
-  };
-
-  function safeString16(value) {
-    // clamp value to the 16-bit int range
-    value = value > 0x7FFF ? 0x7FFF : value < -0x8000 ? -0x8000 : value;
-    return String.fromCharCode((value >> 8) & 0xff) +
-           String.fromCharCode(value & 0xff);
-  };
-
-  function string32(value) {
-    return String.fromCharCode((value >> 24) & 0xff) +
-           String.fromCharCode((value >> 16) & 0xff) +
-           String.fromCharCode((value >> 8) & 0xff) +
-           String.fromCharCode(value & 0xff);
-  };
-
-  function createOpenTypeHeader(sfnt, file, numTables) {
-    // Windows hates the Mac TrueType sfnt version number
-    if (sfnt == 'true')
-      sfnt = string32(0x00010000);
-
-    // sfnt version (4 bytes)
-    var header = sfnt;
-
-    // numTables (2 bytes)
-    header += string16(numTables);
-
-    // searchRange (2 bytes)
-    var tablesMaxPower2 = getMaxPower2(numTables);
-    var searchRange = tablesMaxPower2 * 16;
-    header += string16(searchRange);
-
-    // entrySelector (2 bytes)
-    header += string16(Math.log(tablesMaxPower2) / Math.log(2));
-
-    // rangeShift (2 bytes)
-    header += string16(numTables * 16 - searchRange);
-
-    file.file += header;
-    file.virtualOffset += header.length;
-  };
-
-  function createTableEntry(file, tag, data) {
-    // offset
-    var offset = file.virtualOffset;
-
-    // length
-    var length = data.length;
-
-    // Per spec tables must be 4-bytes align so add padding as needed
-    while (data.length & 3)
-      data.push(0x00);
-
-    while (file.virtualOffset & 3)
-      file.virtualOffset++;
-
-    // checksum
-    var checksum = 0, n = data.length;
-    for (var i = 0; i < n; i += 4)
-      checksum = (checksum + int32([data[i], data[i + 1], data[i + 2],
-                                    data[i + 3]])) | 0;
-
-    var tableEntry = (tag + string32(checksum) +
-                      string32(offset) + string32(length));
-    file.file += tableEntry;
-    file.virtualOffset += data.length;
-  };
-
-  function getRanges(glyphs) {
-    // Array.sort() sorts by characters, not numerically, so convert to an
-    // array of characters.
-    var codes = [];
-    var length = glyphs.length;
-    for (var n = 0; n < length; ++n)
-      codes.push({ unicode: glyphs[n].unicode, code: n });
-    codes.sort(function fontGetRangesSort(a, b) {
-      return a.unicode - b.unicode;
-    });
-
-    // Split the sorted codes into ranges.
-    var ranges = [];
-    for (var n = 0; n < length; ) {
-      var start = codes[n].unicode;
-      var codeIndices = [codes[n].code];
-      ++n;
-      var end = start;
-      while (n < length && end + 1 == codes[n].unicode) {
-        codeIndices.push(codes[n].code);
-        ++end;
-        ++n;
-      }
-      ranges.push([start, end, codeIndices]);
-    }
-
-    return ranges;
-  };
-
-  function createCMapTable(glyphs, deltas) {
-    var ranges = getRanges(glyphs);
-
-    var numTables = 1;
-    var cmap = '\x00\x00' + // version
-               string16(numTables) +  // numTables
-               '\x00\x03' + // platformID
-               '\x00\x01' + // encodingID
-               string32(4 + numTables * 8); // start of the table record
-
-    var segCount = ranges.length + 1;
-    var segCount2 = segCount * 2;
-    var searchRange = getMaxPower2(segCount) * 2;
-    var searchEntry = Math.log(segCount) / Math.log(2);
-    var rangeShift = 2 * segCount - searchRange;
-
-    // Fill up the 4 parallel arrays describing the segments.
-    var startCount = '';
-    var endCount = '';
-    var idDeltas = '';
-    var idRangeOffsets = '';
-    var glyphsIds = '';
-    var bias = 0;
-
-    if (deltas) {
-      for (var i = 0; i < segCount - 1; i++) {
-        var range = ranges[i];
-        var start = range[0];
-        var end = range[1];
-        var offset = (segCount - i) * 2 + bias * 2;
-        bias += (end - start + 1);
-
-        startCount += string16(start);
-        endCount += string16(end);
-        idDeltas += string16(0);
-        idRangeOffsets += string16(offset);
-
-        var codes = range[2];
-        for (var j = 0, jj = codes.length; j < jj; ++j)
-          glyphsIds += string16(deltas[codes[j]]);
-      }
-    } else {
-      for (var i = 0; i < segCount - 1; i++) {
-        var range = ranges[i];
-        var start = range[0];
-        var end = range[1];
-        var startCode = range[2][0];
-
-        startCount += string16(start);
-        endCount += string16(end);
-        idDeltas += string16((startCode - start + 1) & 0xFFFF);
-        idRangeOffsets += string16(0);
-      }
-    }
-
-    endCount += '\xFF\xFF';
-    startCount += '\xFF\xFF';
-    idDeltas += '\x00\x01';
-    idRangeOffsets += '\x00\x00';
-
-    var format314 = '\x00\x00' + // language
-                    string16(segCount2) +
-                    string16(searchRange) +
-                    string16(searchEntry) +
-                    string16(rangeShift) +
-                    endCount + '\x00\x00' + startCount +
-                    idDeltas + idRangeOffsets + glyphsIds;
-
-    return stringToArray(cmap +
-                         '\x00\x04' + // format
-                         string16(format314.length + 4) + // length
-                         format314);
-  };
-
-  function createOS2Table(properties, charstrings, override) {
-    override = override || {
-      unitsPerEm: 0,
-      yMax: 0,
-      yMin: 0,
-      ascent: 0,
-      descent: 0
-    };
-
-    var ulUnicodeRange1 = 0;
-    var ulUnicodeRange2 = 0;
-    var ulUnicodeRange3 = 0;
-    var ulUnicodeRange4 = 0;
-
-    var firstCharIndex = null;
-    var lastCharIndex = 0;
-
-    if (charstrings) {
-      for (var i = 0; i < charstrings.length; ++i) {
-        var code = charstrings[i].unicode;
-        if (firstCharIndex > code || !firstCharIndex)
-          firstCharIndex = code;
-        if (lastCharIndex < code)
-          lastCharIndex = code;
-
-        var position = getUnicodeRangeFor(code);
-        if (position < 32) {
-          ulUnicodeRange1 |= 1 << position;
-        } else if (position < 64) {
-          ulUnicodeRange2 |= 1 << position - 32;
-        } else if (position < 96) {
-          ulUnicodeRange3 |= 1 << position - 64;
-        } else if (position < 123) {
-          ulUnicodeRange4 |= 1 << position - 96;
-        } else {
-          error('Unicode ranges Bits > 123 are reserved for internal usage');
-        }
-      }
-    } else {
-      // TODO
-      firstCharIndex = 0;
-      lastCharIndex = 255;
-    }
-
-    var unitsPerEm = override.unitsPerEm || kPDFGlyphSpaceUnits;
-    var typoAscent = override.ascent || properties.ascent;
-    var typoDescent = override.descent || properties.descent;
-    var winAscent = override.yMax || typoAscent;
-    var winDescent = -override.yMin || -typoDescent;
-
-    // if there is a units per em value but no other override
-    // then scale the calculated ascent
-    if (unitsPerEm != kPDFGlyphSpaceUnits &&
-        'undefined' == typeof(override.ascent)) {
-      // if the font units differ to the PDF glyph space units
-      // then scale up the values
-      typoAscent = Math.round(typoAscent * unitsPerEm / kPDFGlyphSpaceUnits);
-      typoDescent = Math.round(typoDescent * unitsPerEm / kPDFGlyphSpaceUnits);
-      winAscent = typoAscent;
-      winDescent = -typoDescent;
-    }
-
-    return '\x00\x03' + // version
-           '\x02\x24' + // xAvgCharWidth
-           '\x01\xF4' + // usWeightClass
-           '\x00\x05' + // usWidthClass
-           '\x00\x00' + // fstype (0 to let the font loads via font-face on IE)
-           '\x02\x8A' + // ySubscriptXSize
-           '\x02\xBB' + // ySubscriptYSize
-           '\x00\x00' + // ySubscriptXOffset
-           '\x00\x8C' + // ySubscriptYOffset
-           '\x02\x8A' + // ySuperScriptXSize
-           '\x02\xBB' + // ySuperScriptYSize
-           '\x00\x00' + // ySuperScriptXOffset
-           '\x01\xDF' + // ySuperScriptYOffset
-           '\x00\x31' + // yStrikeOutSize
-           '\x01\x02' + // yStrikeOutPosition
-           '\x00\x00' + // sFamilyClass
-           '\x00\x00\x06' +
-           String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) +
-           '\x00\x00\x00\x00\x00\x00' + // Panose
-           string32(ulUnicodeRange1) + // ulUnicodeRange1 (Bits 0-31)
-           string32(ulUnicodeRange2) + // ulUnicodeRange2 (Bits 32-63)
-           string32(ulUnicodeRange3) + // ulUnicodeRange3 (Bits 64-95)
-           string32(ulUnicodeRange4) + // ulUnicodeRange4 (Bits 96-127)
-           '\x2A\x32\x31\x2A' + // achVendID
-           string16(properties.italicAngle ? 1 : 0) + // fsSelection
-           string16(firstCharIndex ||
-                    properties.firstChar) + // usFirstCharIndex
-           string16(lastCharIndex || properties.lastChar) +  // usLastCharIndex
-           string16(typoAscent) + // sTypoAscender
-           string16(typoDescent) + // sTypoDescender
-           '\x00\x64' + // sTypoLineGap (7%-10% of the unitsPerEM value)
-           string16(winAscent) + // usWinAscent
-           string16(winDescent) + // usWinDescent
-           '\x00\x00\x00\x00' + // ulCodePageRange1 (Bits 0-31)
-           '\x00\x00\x00\x00' + // ulCodePageRange2 (Bits 32-63)
-           string16(properties.xHeight) + // sxHeight
-           string16(properties.capHeight) + // sCapHeight
-           string16(0) + // usDefaultChar
-           string16(firstCharIndex || properties.firstChar) + // usBreakChar
-           '\x00\x03';  // usMaxContext
-  };
-
-  function createPostTable(properties) {
-    var angle = Math.floor(properties.italicAngle * (Math.pow(2, 16)));
-    return '\x00\x03\x00\x00' + // Version number
-           string32(angle) + // italicAngle
-           '\x00\x00' + // underlinePosition
-           '\x00\x00' + // underlineThickness
-           string32(properties.fixedPitch) + // isFixedPitch
-           '\x00\x00\x00\x00' + // minMemType42
-           '\x00\x00\x00\x00' + // maxMemType42
-           '\x00\x00\x00\x00' + // minMemType1
-           '\x00\x00\x00\x00';  // maxMemType1
-  };
-
-  function createNameTable(name) {
-    var strings = [
-      'Original licence',  // 0.Copyright
-      name,                // 1.Font family
-      'Unknown',           // 2.Font subfamily (font weight)
-      'uniqueID',          // 3.Unique ID
-      name,                // 4.Full font name
-      'Version 0.11',      // 5.Version
-      '',                  // 6.Postscript name
-      'Unknown',           // 7.Trademark
-      'Unknown',           // 8.Manufacturer
-      'Unknown'            // 9.Designer
-    ];
-
-    // Mac want 1-byte per character strings while Windows want
-    // 2-bytes per character, so duplicate the names table
-    var stringsUnicode = [];
-    for (var i = 0, ii = strings.length; i < ii; i++) {
-      var str = strings[i];
-
-      var strUnicode = '';
-      for (var j = 0, jj = str.length; j < jj; j++)
-        strUnicode += string16(str.charCodeAt(j));
-      stringsUnicode.push(strUnicode);
-    }
-
-    var names = [strings, stringsUnicode];
-    var platforms = ['\x00\x01', '\x00\x03'];
-    var encodings = ['\x00\x00', '\x00\x01'];
-    var languages = ['\x00\x00', '\x04\x09'];
-
-    var namesRecordCount = strings.length * platforms.length;
-    var nameTable =
-      '\x00\x00' +                           // format
-      string16(namesRecordCount) +           // Number of names Record
-      string16(namesRecordCount * 12 + 6);   // Storage
-
-    // Build the name records field
-    var strOffset = 0;
-    for (var i = 0, ii = platforms.length; i < ii; i++) {
-      var strs = names[i];
-      for (var j = 0, jj = strs.length; j < jj; j++) {
-        var str = strs[j];
-        var nameRecord =
-          platforms[i] + // platform ID
-          encodings[i] + // encoding ID
-          languages[i] + // language ID
-          string16(j) + // name ID
-          string16(str.length) +
-          string16(strOffset);
-        nameTable += nameRecord;
-        strOffset += str.length;
-      }
-    }
-
-    nameTable += strings.join('') + stringsUnicode.join('');
-    return nameTable;
-  }
-
-  Font.prototype = {
-    name: null,
-    font: null,
-    mimetype: null,
-    encoding: null,
-
-    checkAndRepair: function Font_checkAndRepair(name, font, properties) {
-      function readTableEntry(file) {
-        var tag = file.getBytes(4);
-        tag = String.fromCharCode(tag[0]) +
-              String.fromCharCode(tag[1]) +
-              String.fromCharCode(tag[2]) +
-              String.fromCharCode(tag[3]);
-
-        var checksum = int32(file.getBytes(4));
-        var offset = int32(file.getBytes(4));
-        var length = int32(file.getBytes(4));
-
-        // Read the table associated data
-        var previousPosition = file.pos;
-        file.pos = file.start ? file.start : 0;
-        file.skip(offset);
-        var data = file.getBytes(length);
-        file.pos = previousPosition;
-
-        if (tag == 'head') {
-          // clearing checksum adjustment
-          data[8] = data[9] = data[10] = data[11] = 0;
-          data[17] |= 0x20; //Set font optimized for cleartype flag
-        }
-
-        return {
-          tag: tag,
-          checksum: checksum,
-          length: length,
-          offset: offset,
-          data: data
-        };
-      };
-
-      function readOpenTypeHeader(ttf) {
-        return {
-          version: arrayToString(ttf.getBytes(4)),
-          numTables: int16(ttf.getBytes(2)),
-          searchRange: int16(ttf.getBytes(2)),
-          entrySelector: int16(ttf.getBytes(2)),
-          rangeShift: int16(ttf.getBytes(2))
-        };
-      };
-
-      function createGlyphNameMap(glyphs, ids, properties) {
-        var glyphNames = properties.glyphNames;
-        if (!glyphNames) {
-          properties.glyphNameMap = {};
-          return;
-        }
-        var glyphsLength = glyphs.length;
-        var glyphNameMap = {};
-        var encoding = [];
-        for (var i = 0; i < glyphsLength; ++i) {
-          var glyphName = glyphNames[ids[i]];
-          if (!glyphName)
-            continue;
-          var unicode = glyphs[i].unicode;
-          glyphNameMap[glyphName] = unicode;
-          var code = glyphs[i].code;
-          encoding[code] = glyphName;
-        }
-        properties.glyphNameMap = glyphNameMap;
-        if (!properties.hasEncoding)
-          properties.baseEncoding = encoding;
-      }
-
-      function readCMapTable(cmap, font) {
-        var start = (font.start ? font.start : 0) + cmap.offset;
-        font.pos = start;
-
-        var version = int16(font.getBytes(2));
-        var numRecords = int16(font.getBytes(2));
-
-        var records = [];
-        for (var i = 0; i < numRecords; i++) {
-          records.push({
-            platformID: int16(font.getBytes(2)),
-            encodingID: int16(font.getBytes(2)),
-            offset: int32(font.getBytes(4))
-          });
-        }
-
-        // Check that table are sorted by platformID then encodingID,
-        records.sort(function fontReadCMapTableSort(a, b) {
-          return ((a.platformID << 16) + a.encodingID) -
-                 ((b.platformID << 16) + b.encodingID);
-        });
-
-        var tables = [records[0]];
-        for (var i = 1; i < numRecords; i++) {
-          // The sanitizer will drop the font if 2 tables have the same
-          // platformID and the same encodingID, this will be correct for
-          // most cases but if the font has been made for Mac it could
-          // exist a few platformID: 1, encodingID: 0 but with a different
-          // language field and that's correct. But the sanitizer does not
-          // seem to support this case.
-          var current = records[i];
-          var previous = records[i - 1];
-          if (((current.platformID << 16) + current.encodingID) <=
-             ((previous.platformID << 16) + previous.encodingID))
-                continue;
-          tables.push(current);
-        }
-
-        var missing = numRecords - tables.length;
-        if (missing) {
-          numRecords = tables.length;
-          var data = string16(version) + string16(numRecords);
-
-          for (var i = 0; i < numRecords; i++) {
-            var table = tables[i];
-            data += string16(table.platformID) +
-                    string16(table.encodingID) +
-                    string32(table.offset);
-          }
-
-          for (var i = 0, ii = data.length; i < ii; i++)
-            cmap.data[i] = data.charCodeAt(i);
-        }
-
-        for (var i = 0; i < numRecords; i++) {
-          var table = tables[i];
-          font.pos = start + table.offset;
-
-          var format = int16(font.getBytes(2));
-          var length = int16(font.getBytes(2));
-          var language = int16(font.getBytes(2));
-
-          if (format == 0) {
-            // Characters below 0x20 are controls characters that are hardcoded
-            // into the platform so if some characters in the font are assigned
-            // under this limit they will not be displayed so let's rewrite the
-            // CMap.
-            var glyphs = [];
-            var ids = [];
-            for (var j = 0; j < 256; j++) {
-              var index = font.getByte();
-              if (index) {
-                glyphs.push({ unicode: j, code: j });
-                ids.push(index);
-              }
-            }
-            return {
-              glyphs: glyphs,
-              ids: ids,
-              hasShortCmap: true
-            };
-          } else if (format == 4) {
-            // re-creating the table in format 4 since the encoding
-            // might be changed
-            var segCount = (int16(font.getBytes(2)) >> 1);
-            font.getBytes(6); // skipping range fields
-            var segIndex, segments = [];
-            for (segIndex = 0; segIndex < segCount; segIndex++) {
-              segments.push({ end: int16(font.getBytes(2)) });
-            }
-            font.getBytes(2);
-            for (segIndex = 0; segIndex < segCount; segIndex++) {
-              segments[segIndex].start = int16(font.getBytes(2));
-            }
-
-            for (segIndex = 0; segIndex < segCount; segIndex++) {
-              segments[segIndex].delta = int16(font.getBytes(2));
-            }
-
-            var offsetsCount = 0;
-            for (segIndex = 0; segIndex < segCount; segIndex++) {
-              var segment = segments[segIndex];
-              var rangeOffset = int16(font.getBytes(2));
-              if (!rangeOffset) {
-                segment.offsetIndex = -1;
-                continue;
-              }
-
-              var offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);
-              segment.offsetIndex = offsetIndex;
-              offsetsCount = Math.max(offsetsCount, offsetIndex +
-                segment.end - segment.start + 1);
-            }
-
-            var offsets = [];
-            for (var j = 0; j < offsetsCount; j++)
-              offsets.push(int16(font.getBytes(2)));
-
-            var glyphs = [], ids = [];
-
-            for (segIndex = 0; segIndex < segCount; segIndex++) {
-              var segment = segments[segIndex];
-              var start = segment.start, end = segment.end;
-              var delta = segment.delta, offsetIndex = segment.offsetIndex;
-
-              for (var j = start; j <= end; j++) {
-                if (j == 0xFFFF)
-                  continue;
-
-                var glyphCode = offsetIndex < 0 ? j :
-                  offsets[offsetIndex + j - start];
-                glyphCode = (glyphCode + delta) & 0xFFFF;
-                if (glyphCode == 0)
-                  continue;
-
-                glyphs.push({ unicode: j, code: j });
-                ids.push(glyphCode);
-              }
-            }
-
-            return {
-              glyphs: glyphs,
-              ids: ids
-            };
-          } else if (format == 6) {
-            // Format 6 is a 2-bytes dense mapping, which means the font data
-            // lives glue together even if they are pretty far in the unicode
-            // table. (This looks weird, so I can have missed something), this
-            // works on Linux but seems to fails on Mac so let's rewrite the
-            // cmap table to a 3-1-4 style
-            var firstCode = int16(font.getBytes(2));
-            var entryCount = int16(font.getBytes(2));
-
-            var glyphs = [];
-            var ids = [];
-            for (var j = 0; j < entryCount; j++) {
-              var glyphCode = int16(font.getBytes(2));
-              var code = firstCode + j;
-
-              glyphs.push({ unicode: code, code: code });
-              ids.push(glyphCode);
-            }
-
-            return {
-              glyphs: glyphs,
-              ids: ids
-            };
-          }
-        }
-        error('Unsupported cmap table format');
-      };
-
-      function sanitizeMetrics(font, header, metrics, numGlyphs) {
-        if (!header && !metrics)
-          return;
-
-        // The vhea/vmtx tables are not required, so it happens that
-        // some fonts embed a vmtx table without a vhea table. In this
-        // situation the sanitizer assume numOfLongVerMetrics = 1. As
-        // a result it tries to read numGlyphs - 1 SHORT from the vmtx
-        // table, and if it is not possible, the font is rejected.
-        // So remove the vmtx table if there is no vhea table.
-        if (!header && metrics) {
-          metrics.data = null;
-          return;
-        }
-
-        font.pos = (font.start ? font.start : 0) + header.offset;
-        font.pos += header.length - 2;
-        var numOfMetrics = int16(font.getBytes(2));
-
-        var numOfSidebearings = numGlyphs - numOfMetrics;
-        var numMissing = numOfSidebearings -
-          ((hmtx.length - numOfMetrics * 4) >> 1);
-        if (numMissing > 0) {
-          font.pos = (font.start ? font.start : 0) + metrics.offset;
-          var entries = '';
-          for (var i = 0, ii = hmtx.length; i < ii; i++)
-            entries += String.fromCharCode(font.getByte());
-          for (var i = 0; i < numMissing; i++)
-            entries += '\x00\x00';
-          metrics.data = stringToArray(entries);
-        }
-      };
-
-      function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart) {
-        if (sourceEnd - sourceStart <= 12) {
-          // glyph with data less than 12 is invalid one
-          return 0;
-        }
-        var glyf = source.subarray(sourceStart, sourceEnd);
-        var contoursCount = (glyf[0] << 8) | glyf[1];
-        if (contoursCount & 0x8000) {
-          // complex glyph, writing as is
-          dest.set(glyf, destStart);
-          return glyf.length;
-        }
-
-        var j = 10, flagsCount = 0;
-        for (var i = 0; i < contoursCount; i++) {
-          var endPoint = (glyf[j] << 8) | glyf[j + 1];
-          flagsCount = endPoint + 1;
-          j += 2;
-        }
-        // skipping instructions
-        var instructionsLength = (glyf[j] << 8) | glyf[j + 1];
-        j += 2 + instructionsLength;
-        // validating flags
-        var coordinatesLength = 0;
-        for (var i = 0; i < flagsCount; i++) {
-          var flag = glyf[j++];
-          if (flag & 0xC0) {
-            // reserved flags must be zero, rejecting
-            return 0;
-          }
-          var xyLength = ((flag & 2) ? 1 : (flag & 16) ? 0 : 2) +
-                         ((flag & 4) ? 1 : (flag & 32) ? 0 : 2);
-          coordinatesLength += xyLength;
-          if (flag & 8) {
-            var repeat = glyf[j++];
-            i += repeat;
-            coordinatesLength += repeat * xyLength;
-          }
-        }
-        var glyphDataLength = j + coordinatesLength;
-        if (glyphDataLength > glyf.length) {
-          // not enough data for coordinates
-          return 0;
-        }
-        if (glyf.length - glyphDataLength > 3) {
-          // truncating and aligning to 4 bytes the long glyph data
-          glyphDataLength = (glyphDataLength + 3) & ~3;
-          dest.set(glyf.subarray(0, glyphDataLength), destStart);
-          return glyphDataLength;
-        }
-        // glyph data is fine
-        dest.set(glyf, destStart);
-        return glyf.length;
-      }
-
-      function sanitizeGlyphLocations(loca, glyf, numGlyphs,
-                                      isGlyphLocationsLong) {
-        var itemSize, itemDecode, itemEncode;
-        if (isGlyphLocationsLong) {
-          itemSize = 4;
-          itemDecode = function fontItemDecodeLong(data, offset) {
-            return (data[offset] << 24) | (data[offset + 1] << 16) |
-                   (data[offset + 2] << 8) | data[offset + 3];
-          };
-          itemEncode = function fontItemEncodeLong(data, offset, value) {
-            data[offset] = (value >>> 24) & 0xFF;
-            data[offset + 1] = (value >> 16) & 0xFF;
-            data[offset + 2] = (value >> 8) & 0xFF;
-            data[offset + 3] = value & 0xFF;
-          };
-        } else {
-          itemSize = 2;
-          itemDecode = function fontItemDecode(data, offset) {
-            return (data[offset] << 9) | (data[offset + 1] << 1);
-          };
-          itemEncode = function fontItemEncode(data, offset, value) {
-            data[offset] = (value >> 9) & 0xFF;
-            data[offset + 1] = (value >> 1) & 0xFF;
-          };
-        }
-        var locaData = loca.data;
-        // removing the invalid glyphs
-        var oldGlyfData = glyf.data;
-        var oldGlyfDataLength = oldGlyfData.length;
-        var newGlyfData = new Uint8Array(oldGlyfDataLength);
-        var startOffset = itemDecode(locaData, 0);
-        var writeOffset = 0;
-        itemEncode(locaData, 0, writeOffset);
-        for (var i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {
-          var endOffset = itemDecode(locaData, j);
-          if (endOffset > oldGlyfDataLength) {
-            // glyph end offset points outside glyf data, rejecting the glyph
-            itemEncode(locaData, j, writeOffset);
-            startOffset = endOffset;
-            continue;
-          }
-
-          var newLength = sanitizeGlyph(oldGlyfData, startOffset, endOffset,
-                                        newGlyfData, writeOffset);
-          writeOffset += newLength;
-          itemEncode(locaData, j, writeOffset);
-          startOffset = endOffset;
-        }
-
-        if (writeOffset == 0) {
-          // glyf table cannot be empty -- redoing the glyf and loca tables
-          // to have single glyph with one point
-          var simpleGlyph = new Uint8Array(
-            [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]);
-          for (var i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize)
-            itemEncode(locaData, j, simpleGlyph.length);
-          glyf.data = simpleGlyph;
-          return;
-        }
-
-        glyf.data = newGlyfData.subarray(0, writeOffset);
-      }
-
-      function findEmptyGlyphs(locaTable, isGlyphLocationsLong, emptyGlyphIds) {
-        var itemSize, itemDecode;
-        if (isGlyphLocationsLong) {
-          itemSize = 4;
-          itemDecode = function fontItemDecodeLong(data, offset) {
-            return (data[offset] << 24) | (data[offset + 1] << 16) |
-                   (data[offset + 2] << 8) | data[offset + 3];
-          };
-        } else {
-          itemSize = 2;
-          itemDecode = function fontItemDecode(data, offset) {
-            return (data[offset] << 9) | (data[offset + 1] << 1);
-          };
-        }
-        var data = locaTable.data, length = data.length;
-        var lastOffset = itemDecode(data, 0);
-        for (var i = itemSize, j = 0; i < length; i += itemSize, j++) {
-          var offset = itemDecode(data, i);
-          if (offset == lastOffset)
-            emptyGlyphIds[j] = true;
-          lastOffset = offset;
-        }
-      }
-
-      function readGlyphNameMap(post, properties) {
-        var start = (font.start ? font.start : 0) + post.offset;
-        font.pos = start;
-
-        var length = post.length, end = start + length;
-        var version = int32(font.getBytes(4));
-        // skip rest to the tables
-        font.getBytes(28);
-
-        var glyphNames;
-        switch (version) {
-          case 0x00010000:
-            glyphNames = MacStandardGlyphOrdering;
-            break;
-          case 0x00020000:
-            var numGlyphs = int16(font.getBytes(2));
-            var glyphNameIndexes = [];
-            for (var i = 0; i < numGlyphs; ++i)
-              glyphNameIndexes.push(int16(font.getBytes(2)));
-            var customNames = [];
-            while (font.pos < end) {
-              var stringLength = font.getByte();
-              var string = '';
-              for (var i = 0; i < stringLength; ++i)
-                string += font.getChar();
-              customNames.push(string);
-            }
-            glyphNames = [];
-            for (var i = 0; i < numGlyphs; ++i) {
-              var j = glyphNameIndexes[i];
-              if (j < 258) {
-                glyphNames.push(MacStandardGlyphOrdering[j]);
-                continue;
-              }
-              glyphNames.push(customNames[j - 258]);
-            }
-            break;
-          case 0x00030000:
-            break;
-          default:
-            warn('Unknown/unsupported post table version ' + version);
-            break;
-        }
-        properties.glyphNames = glyphNames;
-      }
-
-      function isOS2Valid(os2Table) {
-        var data = os2Table.data;
-        // usWinAscent == 0 makes font unreadable by windows
-        var usWinAscent = (data[74] << 8) | data[75];
-        if (usWinAscent == 0)
-          return false;
-
-        return true;
-      }
-
-      // Check that required tables are present
-      var requiredTables = ['OS/2', 'cmap', 'head', 'hhea',
-                             'hmtx', 'maxp', 'name', 'post'];
-
-      var header = readOpenTypeHeader(font);
-      var numTables = header.numTables;
-
-      var cmap, post, maxp, hhea, hmtx, vhea, vmtx, head, loca, glyf, os2;
-      var tables = [];
-      for (var i = 0; i < numTables; i++) {
-        var table = readTableEntry(font);
-        var index = requiredTables.indexOf(table.tag);
-        if (index != -1) {
-          if (table.tag == 'cmap')
-            cmap = table;
-          else if (table.tag == 'post')
-            post = table;
-          else if (table.tag == 'maxp')
-            maxp = table;
-          else if (table.tag == 'hhea')
-            hhea = table;
-          else if (table.tag == 'hmtx')
-            hmtx = table;
-          else if (table.tag == 'head')
-            head = table;
-          else if (table.tag == 'OS/2')
-            os2 = table;
-
-          requiredTables.splice(index, 1);
-        } else {
-          if (table.tag == 'vmtx')
-            vmtx = table;
-          else if (table.tag == 'vhea')
-            vhea = table;
-          else if (table.tag == 'loca')
-            loca = table;
-          else if (table.tag == 'glyf')
-            glyf = table;
-        }
-        tables.push(table);
-      }
-
-      var numTables = tables.length + requiredTables.length;
-
-      // header and new offsets. Table entry information is appended to the
-      // end of file. The virtualOffset represents where to put the actual
-      // data of a particular table;
-      var ttf = {
-        file: '',
-        virtualOffset: numTables * (4 * 4)
-      };
-
-      // The new numbers of tables will be the last one plus the num
-      // of missing tables
-      createOpenTypeHeader(header.version, ttf, numTables);
-
-      // Invalid OS/2 can break the font for the Windows
-      if (os2 && !isOS2Valid(os2)) {
-        tables.splice(tables.indexOf(os2), 1);
-        os2 = null;
-      }
-
-      // Ensure the [h/v]mtx tables contains the advance width and
-      // sidebearings information for numGlyphs in the maxp table
-      font.pos = (font.start || 0) + maxp.offset;
-      var version = int16(font.getBytes(4));
-      var numGlyphs = int16(font.getBytes(2));
-
-      sanitizeMetrics(font, hhea, hmtx, numGlyphs);
-      sanitizeMetrics(font, vhea, vmtx, numGlyphs);
-
-      var isGlyphLocationsLong = int16([head.data[50], head.data[51]]);
-      if (head && loca && glyf) {
-        sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong);
-      }
-
-      var emptyGlyphIds = [];
-      if (glyf)
-        findEmptyGlyphs(loca, isGlyphLocationsLong, emptyGlyphIds);
-
-      // Sanitizer reduces the glyph advanceWidth to the maxAdvanceWidth
-      // Sometimes it's 0. That needs to be fixed
-      if (hhea.data[10] == 0 && hhea.data[11] == 0) {
-        hhea.data[10] = 0xFF;
-        hhea.data[11] = 0xFF;
-      }
-
-      // The 'post' table has glyphs names.
-      if (post) {
-        readGlyphNameMap(post, properties);
-      }
-
-      var glyphs, ids;
-      if (properties.type == 'CIDFontType2') {
-        // Replace the old CMAP table with a shiny new one
-        // Type2 composite fonts map characters directly to glyphs so the cmap
-        // table must be replaced.
-        // canvas fillText will reencode some characters even if the font has a
-        // glyph at that position - e.g. newline is converted to a space and
-        // U+00AD (soft hyphen) is not drawn.
-        // So, offset all the glyphs by 0xFF to avoid these cases and use
-        // the encoding to map incoming characters to the new glyph positions
-        if (!cmap) {
-          cmap = {
-            tag: 'cmap',
-            data: null
-          };
-          tables.push(cmap);
-        }
-
-        var cidToGidMap = properties.cidToGidMap || [];
-        var gidToCidMap = [0];
-        if (cidToGidMap.length > 0) {
-          for (var j = cidToGidMap.length - 1; j >= 0; j--) {
-            var gid = cidToGidMap[j];
-            if (gid)
-              gidToCidMap[gid] = j;
-          }
-          // filling the gaps using CID above the CIDs currently used in font
-          var nextCid = cidToGidMap.length;
-          for (var i = 1; i < numGlyphs; i++) {
-            if (!gidToCidMap[i])
-              gidToCidMap[i] = nextCid++;
-          }
-        }
-
-        glyphs = [];
-        ids = [];
-
-        var usedUnicodes = [];
-        var unassignedUnicodeItems = [];
-        for (var i = 1; i < numGlyphs; i++) {
-          var cid = gidToCidMap[i] || i;
-          var unicode = this.toFontChar[cid];
-          if (!unicode || typeof unicode !== 'number' ||
-              isSpecialUnicode(unicode) || unicode in usedUnicodes) {
-            unassignedUnicodeItems.push(i);
-            continue;
-          }
-          usedUnicodes[unicode] = true;
-          glyphs.push({ unicode: unicode, code: cid });
-          ids.push(i);
-        }
-        // trying to fit as many unassigned symbols as we can
-        // in the range allocated for the user defined symbols
-        var unusedUnicode = kCmapGlyphOffset;
-        for (var j = 0, jj = unassignedUnicodeItems.length; j < jj; j++) {
-          var i = unassignedUnicodeItems[j];
-          var cid = gidToCidMap[i] || i;
-          while (unusedUnicode in usedUnicodes)
-            unusedUnicode++;
-          if (unusedUnicode >= kCmapGlyphOffset + kSizeOfGlyphArea)
-            break;
-          var unicode = unusedUnicode++;
-          this.toFontChar[cid] = unicode;
-          usedUnicodes[unicode] = true;
-          glyphs.push({ unicode: unicode, code: cid });
-          ids.push(i);
-        }
-      } else {
-        var cmapTable = readCMapTable(cmap, font);
-
-        glyphs = cmapTable.glyphs;
-        ids = cmapTable.ids;
-
-        var hasShortCmap = !!cmapTable.hasShortCmap;
-        var toFontChar = this.toFontChar;
-
-        if (hasShortCmap && ids.length == numGlyphs) {
-          // Fixes the short cmap tables -- some generators use incorrect
-          // glyph id.
-          for (var i = 0, ii = ids.length; i < ii; i++)
-            ids[i] = i;
-        }
-
-        var unusedUnicode = kCmapGlyphOffset;
-        var glyphNames = properties.glyphNames || [];
-        var encoding = properties.baseEncoding;
-        var differences = properties.differences;
-        if (toFontChar && toFontChar.length > 0) {
-          // checking if cmap is just identity map
-          var isIdentity = true;
-          for (var i = 0, ii = glyphs.length; i < ii; i++) {
-            if (glyphs[i].unicode != i + 1) {
-              isIdentity = false;
-              break;
-            }
-          }
-          // if it is, replacing with meaningful toUnicode values
-          if (isIdentity && !this.isSymbolicFont) {
-            var usedUnicodes = [], unassignedUnicodeItems = [];
-            for (var i = 0, ii = glyphs.length; i < ii; i++) {
-              var unicode = toFontChar[i + 1];
-              if (!unicode || typeof unicode !== 'number' ||
-                  unicode in usedUnicodes) {
-                unassignedUnicodeItems.push(i);
-                continue;
-              }
-              glyphs[i].unicode = unicode;
-              usedUnicodes[unicode] = true;
-            }
-            for (var j = 0, jj = unassignedUnicodeItems.length; j < jj; j++) {
-              var i = unassignedUnicodeItems[j];
-              while (unusedUnicode in usedUnicodes)
-                unusedUnicode++;
-              var cid = i + 1;
-              // override only if unicode mapping is not specified
-              if (!(cid in toFontChar))
-                toFontChar[cid] = unusedUnicode;
-              glyphs[i].unicode = unusedUnicode++;
-            }
-            this.useToFontChar = true;
-          }
-        }
-
-        // remove glyph references outside range of avaialable glyphs or empty
-        var glyphsRemoved = 0;
-        for (var i = ids.length - 1; i >= 0; i--) {
-          if (ids[i] < numGlyphs &&
-              (!emptyGlyphIds[ids[i]] || this.isSymbolicFont))
-            continue;
-          ids.splice(i, 1);
-          glyphs.splice(i, 1);
-          glyphsRemoved++;
-        }
-
-        // checking if it's a "true" symbolic font
-        if (this.isSymbolicFont) {
-          var minUnicode = 0xFFFF, maxUnicode = 0;
-          for (var i = 0, ii = glyphs.length; i < ii; i++) {
-            var unicode = glyphs[i].unicode;
-            minUnicode = Math.min(minUnicode, unicode);
-            maxUnicode = Math.max(maxUnicode, unicode);
-          }
-          // high byte must be the same for min and max unicodes
-          if ((maxUnicode & 0xFF00) != (minUnicode & 0xFF00))
-            this.isSymbolicFont = false;
-        }
-
-        // heuristics: if removed more than 2 glyphs encoding WinAnsiEncoding
-        // does not set properly
-        if (glyphsRemoved > 2) {
-          warn('Switching TrueType encoding to MacRomanEncoding for ' +
-               this.name + ' font');
-          encoding = Encodings.MacRomanEncoding;
-        }
-
-        if (hasShortCmap && this.hasEncoding && !this.isSymbolicFont) {
-          // Re-encode short map encoding to unicode -- that simplifies the
-          // resolution of MacRoman encoded glyphs logic for TrueType fonts:
-          // copying all characters to private use area, all mapping all known
-          // glyphs to the unicodes. The glyphs and ids arrays will grow.
-          var usedUnicodes = [];
-          for (var i = 0, ii = glyphs.length; i < ii; i++) {
-            var code = glyphs[i].unicode;
-            var gid = ids[i];
-            glyphs[i].unicode += kCmapGlyphOffset;
-            toFontChar[code] = glyphs[i].unicode;
-
-            var glyphName = glyphNames[gid] || encoding[code];
-            if (glyphName in GlyphsUnicode) {
-              var unicode = GlyphsUnicode[glyphName];
-              if (unicode in usedUnicodes)
-                continue;
-
-              usedUnicodes[unicode] = true;
-              glyphs.push({
-                unicode: unicode,
-                code: glyphs[i].code
-              });
-              ids.push(gid);
-              toFontChar[code] = unicode;
-            }
-          }
-          this.useToFontChar = true;
-        } else if (!this.isSymbolicFont && (this.hasEncoding ||
-                    properties.glyphNames || differences.length > 0)) {
-          // Re-encode cmap encoding to unicode, based on the 'post' table data
-          // diffrence array or base encoding
-          var reverseMap = [];
-          for (var i = 0, ii = glyphs.length; i < ii; i++)
-            reverseMap[glyphs[i].unicode] = i;
-
-          var newGlyphUnicodes = [];
-          for (var i = 0, ii = glyphs.length; i < ii; i++) {
-            var code = glyphs[i].unicode;
-            var changeCode = false;
-            var gid = ids[i];
-
-            var glyphName = glyphNames[gid];
-            if (!glyphName) {
-              glyphName = differences[code] || encoding[code];
-              changeCode = true;
-            }
-            if (glyphName in GlyphsUnicode) {
-              var unicode = GlyphsUnicode[glyphName];
-              if (!unicode || reverseMap[unicode] === i)
-                continue; // unknown glyph name or in its own place
-
-              newGlyphUnicodes[i] = unicode;
-              if (changeCode)
-                toFontChar[code] = unicode;
-              delete reverseMap[code];
-            }
-          }
-          for (var index in newGlyphUnicodes) {
-            var unicode = newGlyphUnicodes[index];
-            if (reverseMap[unicode]) {
-              // avoiding assigning to the same unicode
-              glyphs[index].unicode = unusedUnicode++;
-              continue;
-            }
-            glyphs[index].unicode = unicode;
-            reverseMap[unicode] = index;
-          }
-          this.useToFontChar = true;
-        }
-
-        // Moving all symbolic font glyphs into 0xF000 - 0xF0FF range.
-        if (this.isSymbolicFont) {
-          for (var i = 0, ii = glyphs.length; i < ii; i++) {
-            var code = glyphs[i].unicode & 0xFF;
-            var fontCharCode = kSymbolicFontGlyphOffset | code;
-            glyphs[i].unicode = toFontChar[code] = fontCharCode;
-          }
-          this.useToFontChar = true;
-        }
-
-        createGlyphNameMap(glyphs, ids, properties);
-        this.glyphNameMap = properties.glyphNameMap;
-      }
-
-      // Converting glyphs and ids into font's cmap table
-      cmap.data = createCMapTable(glyphs, ids);
-      var unicodeIsEnabled = [];
-      for (var i = 0, ii = glyphs.length; i < ii; i++) {
-        unicodeIsEnabled[glyphs[i].unicode] = true;
-      }
-      this.unicodeIsEnabled = unicodeIsEnabled;
-
-      if (!os2) {
-        // extract some more font properties from the OpenType head and
-        // hhea tables; yMin and descent value are always negative
-        var override = {
-          unitsPerEm: int16([head.data[18], head.data[19]]),
-          yMax: int16([head.data[42], head.data[43]]),
-          yMin: int16([head.data[38], head.data[39]]) - 0x10000,
-          ascent: int16([hhea.data[4], hhea.data[5]]),
-          descent: int16([hhea.data[6], hhea.data[7]]) - 0x10000
-        };
-
-        tables.push({
-          tag: 'OS/2',
-          data: stringToArray(createOS2Table(properties, glyphs, override))
-        });
-      }
-
-      // Rewrite the 'post' table if needed
-      if (requiredTables.indexOf('post') != -1) {
-        tables.push({
-          tag: 'post',
-          data: stringToArray(createPostTable(properties))
-        });
-      }
-
-      // Rewrite the 'name' table if needed
-      if (requiredTables.indexOf('name') != -1) {
-        tables.push({
-          tag: 'name',
-          data: stringToArray(createNameTable(this.name))
-        });
-      }
-
-      // Tables needs to be written by ascendant alphabetic order
-      tables.sort(function tables_sort(a, b) {
-        return (a.tag > b.tag) - (a.tag < b.tag);
-      });
-
-      // rewrite the tables but tweak offsets
-      for (var i = 0, ii = tables.length; i < ii; i++) {
-        var table = tables[i];
-        var data = [];
-
-        var tableData = table.data;
-        for (var j = 0, jj = tableData.length; j < jj; j++)
-          data.push(tableData[j]);
-        createTableEntry(ttf, table.tag, data);
-      }
-
-      // Add the table datas
-      for (var i = 0, ii = tables.length; i < ii; i++) {
-        var table = tables[i];
-        var tableData = table.data;
-        ttf.file += arrayToString(tableData);
-
-        // 4-byte aligned data
-        while (ttf.file.length & 3)
-          ttf.file += String.fromCharCode(0);
-      }
-
-      return stringToArray(ttf.file);
-    },
-
-    convert: function Font_convert(fontName, font, properties) {
-      function isFixedPitch(glyphs) {
-        for (var i = 0, ii = glyphs.length - 1; i < ii; i++) {
-          if (glyphs[i] != glyphs[i + 1])
-            return false;
-        }
-        return true;
-      }
-
-      // The offsets object holds at the same time a representation of where
-      // to write the table entry information about a table and another offset
-      // representing the offset where to draw the actual data of a particular
-      // table
-      var kRequiredTablesCount = 9;
-
-      var otf = {
-        file: '',
-        virtualOffset: 9 * (4 * 4)
-      };
-
-      createOpenTypeHeader('\x4F\x54\x54\x4F', otf, 9);
-
-      var charstrings = font.charstrings;
-      properties.fixedPitch = isFixedPitch(charstrings);
-
-      var glyphNameMap = {};
-      for (var i = 0; i < charstrings.length; ++i) {
-        var charstring = charstrings[i];
-        glyphNameMap[charstring.glyph] = charstring.unicode;
-      }
-      this.glyphNameMap = glyphNameMap;
-
-      if (!properties.hasEncoding && (properties.subtype == 'Type1C' ||
-          properties.subtype == 'CIDFontType0C')) {
-        var encoding = [];
-        for (var i = 0; i < charstrings.length; ++i) {
-          var charstring = charstrings[i];
-          encoding[charstring.code] = charstring.glyph;
-        }
-        properties.baseEncoding = encoding;
-      }
-      if (properties.subtype == 'CIDFontType0C') {
-        var toFontChar = [];
-        for (var i = 0; i < charstrings.length; ++i) {
-          var charstring = charstrings[i];
-          toFontChar[charstring.code] = charstring.unicode;
-        }
-        this.toFontChar = toFontChar;
-      }
-
-      var fields = {
-        // PostScript Font Program
-        'CFF ': font.data,
-
-        // OS/2 and Windows Specific metrics
-        'OS/2': stringToArray(createOS2Table(properties, charstrings)),
-
-        // Character to glyphs mapping
-        'cmap': createCMapTable(charstrings.slice(),
-                                ('glyphIds' in font) ? font.glyphIds : null),
-
-        // Font header
-        'head': (function fontFieldsHead() {
-          return stringToArray(
-              '\x00\x01\x00\x00' + // Version number
-              '\x00\x00\x10\x00' + // fontRevision
-              '\x00\x00\x00\x00' + // checksumAdjustement
-              '\x5F\x0F\x3C\xF5' + // magicNumber
-              '\x00\x00' + // Flags
-              '\x03\xE8' + // unitsPerEM (defaulting to 1000)
-              '\x00\x00\x00\x00\x9e\x0b\x7e\x27' + // creation date
-              '\x00\x00\x00\x00\x9e\x0b\x7e\x27' + // modifification date
-              '\x00\x00' + // xMin
-              safeString16(properties.descent) + // yMin
-              '\x0F\xFF' + // xMax
-              safeString16(properties.ascent) + // yMax
-              string16(properties.italicAngle ? 2 : 0) + // macStyle
-              '\x00\x11' + // lowestRecPPEM
-              '\x00\x00' + // fontDirectionHint
-              '\x00\x00' + // indexToLocFormat
-              '\x00\x00');  // glyphDataFormat
-        })(),
-
-        // Horizontal header
-        'hhea': (function fontFieldsHhea() {
-          return stringToArray(
-              '\x00\x01\x00\x00' + // Version number
-              safeString16(properties.ascent) + // Typographic Ascent
-              safeString16(properties.descent) + // Typographic Descent
-              '\x00\x00' + // Line Gap
-              '\xFF\xFF' + // advanceWidthMax
-              '\x00\x00' + // minLeftSidebearing
-              '\x00\x00' + // minRightSidebearing
-              '\x00\x00' + // xMaxExtent
-              safeString16(properties.capHeight) + // caretSlopeRise
-              safeString16(Math.tan(properties.italicAngle) *
-                       properties.xHeight) + // caretSlopeRun
-              '\x00\x00' + // caretOffset
-              '\x00\x00' + // -reserved-
-              '\x00\x00' + // -reserved-
-              '\x00\x00' + // -reserved-
-              '\x00\x00' + // -reserved-
-              '\x00\x00' + // metricDataFormat
-              string16(charstrings.length + 1)); // Number of HMetrics
-        })(),
-
-        // Horizontal metrics
-        'hmtx': (function fontFieldsHmtx() {
-          var hmtx = '\x00\x00\x00\x00'; // Fake .notdef
-          for (var i = 0, ii = charstrings.length; i < ii; i++) {
-            var charstring = charstrings[i];
-            var width = 'width' in charstring ? charstring.width : 0;
-            hmtx += string16(width) + string16(0);
-          }
-          return stringToArray(hmtx);
-        })(),
-
-        // Maximum profile
-        'maxp': (function fontFieldsMaxp() {
-          return stringToArray(
-              '\x00\x00\x50\x00' + // Version number
-             string16(charstrings.length + 1)); // Num of glyphs
-        })(),
-
-        // Naming tables
-        'name': stringToArray(createNameTable(fontName)),
-
-        // PostScript informations
-        'post': stringToArray(createPostTable(properties))
-      };
-
-      for (var field in fields)
-        createTableEntry(otf, field, fields[field]);
-
-      for (var field in fields) {
-        var table = fields[field];
-        otf.file += arrayToString(table);
-      }
-
-      return stringToArray(otf.file);
-    },
-
-    buildToFontChar: function Font_buildToFontChar(toUnicode) {
-      var result = [];
-      var unusedUnicode = kCmapGlyphOffset;
-      for (var i = 0, ii = toUnicode.length; i < ii; i++) {
-        var unicode = toUnicode[i];
-        var fontCharCode = typeof unicode === 'object' ? unusedUnicode++ :
-          unicode;
-        if (typeof unicode !== 'undefined')
-          result[i] = fontCharCode;
-      }
-      return result;
-    },
-
-    rebuildToUnicode: function Font_rebuildToUnicode(properties) {
-      var firstChar = properties.firstChar, lastChar = properties.lastChar;
-      var map = [];
-      if (properties.composite) {
-        var isIdentityMap = this.cidToUnicode.length == 0;
-        for (var i = firstChar, ii = lastChar; i <= ii; i++) {
-          // TODO missing map the character according font's CMap
-          var cid = i;
-          map[i] = isIdentityMap ? cid : this.cidToUnicode[cid];
-        }
-      } else {
-        for (var i = firstChar, ii = lastChar; i <= ii; i++) {
-          var glyph = properties.differences[i];
-          if (!glyph)
-            glyph = properties.baseEncoding[i];
-          if (!!glyph && (glyph in GlyphsUnicode))
-            map[i] = GlyphsUnicode[glyph];
-        }
-      }
-      this.toUnicode = map;
-    },
-
-    loadCidToUnicode: function Font_loadCidToUnicode(properties) {
-      if (!properties.cidSystemInfo)
-        return;
-
-      var cidToUnicodeMap = [], unicodeToCIDMap = [];
-      this.cidToUnicode = cidToUnicodeMap;
-      this.unicodeToCID = unicodeToCIDMap;
-
-      var cidSystemInfo = properties.cidSystemInfo;
-      var cidToUnicode;
-      if (cidSystemInfo) {
-        cidToUnicode = CIDToUnicodeMaps[
-          cidSystemInfo.registry + '-' + cidSystemInfo.ordering];
-      }
-
-      if (!cidToUnicode)
-        return; // identity encoding
-
-      var cid = 1, i, j, k, ii;
-      for (i = 0, ii = cidToUnicode.length; i < ii; ++i) {
-        var unicode = cidToUnicode[i];
-        if (isArray(unicode)) {
-          var length = unicode.length;
-          for (j = 0; j < length; j++) {
-            cidToUnicodeMap[cid] = unicode[j];
-            unicodeToCIDMap[unicode[j]] = cid;
-          }
-          cid++;
-        } else if (typeof unicode === 'object') {
-          var fillLength = unicode.f;
-          if (fillLength) {
-            k = unicode.c;
-            for (j = 0; j < fillLength; ++j) {
-              cidToUnicodeMap[cid] = k;
-              unicodeToCIDMap[k] = cid;
-              cid++;
-              k++;
-            }
-          } else
-            cid += unicode.s;
-        } else if (unicode) {
-          cidToUnicodeMap[cid] = unicode;
-          unicodeToCIDMap[unicode] = cid;
-          cid++;
-        } else
-          cid++;
-      }
-    },
-
-    bindDOM: function Font_bindDOM(data) {
-      var fontName = this.loadedName;
-
-      // Add the font-face rule to the document
-      var url = ('url(data:' + this.mimetype + ';base64,' +
-                 PdfJS_window.window.btoa(data) + ');');
-      var rule = "@font-face { font-family:'" + fontName + "';src:" + url + '}';
-
-      var styleElement = PdfJS_window.document.createElement('style');
-      PdfJS_window.document.documentElement.getElementsByTagName('head')[0].appendChild(
-        styleElement);
-
-      var styleSheet = styleElement.sheet;
-      styleSheet.insertRule(rule, styleSheet.cssRules.length);
-
-      if (PDFJS.pdfBug && FontInspector.enabled)
-        FontInspector.fontAdded(this, url);
-
-      return rule;
-    },
-
-    get spaceWidth() {
-      // trying to estimate space character width
-      var possibleSpaceReplacements = ['space', 'minus', 'one', 'i'];
-      var width;
-      for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {
-        var glyphName = possibleSpaceReplacements[i];
-        // if possible, getting width by glyph name
-        if (glyphName in this.widths) {
-          width = this.widths[glyphName];
-          break;
-        }
-        var glyphUnicode = GlyphsUnicode[glyphName];
-        // finding the charcode via unicodeToCID map
-        var charcode = 0;
-        if (this.composite)
-          charcode = this.unicodeToCID[glyphUnicode];
-        // ... via toUnicode map
-        if (!charcode && 'toUnicode' in this)
-          charcode = this.toUnicode.indexOf(glyphUnicode);
-        // setting it to unicode if negative or undefined
-        if (!(charcode > 0))
-          charcode = glyphUnicode;
-        // trying to get width via charcode
-        width = this.widths[charcode];
-        if (width)
-          break; // the non-zero width found
-      }
-      width = (width || this.defaultWidth) * this.widthMultiplier;
-      return shadow(this, 'spaceWidth', width);
-    },
-
-    charToGlyph: function Font_charToGlyph(charcode) {
-      var fontCharCode, width, operatorList, disabled;
-
-      var width = this.widths[charcode];
-
-      switch (this.type) {
-        case 'CIDFontType0':
-          if (this.noUnicodeAdaptation) {
-            width = this.widths[this.unicodeToCID[charcode] || charcode];
-            fontCharCode = mapPrivateUseChars(charcode);
-            break;
-          }
-          fontCharCode = this.toFontChar[charcode] || charcode;
-          break;
-        case 'CIDFontType2':
-          if (this.noUnicodeAdaptation) {
-            width = this.widths[this.unicodeToCID[charcode] || charcode];
-            fontCharCode = mapPrivateUseChars(charcode);
-            break;
-          }
-          fontCharCode = this.toFontChar[charcode] || charcode;
-          break;
-        case 'Type1':
-          var glyphName = this.differences[charcode] || this.encoding[charcode];
-          if (!isNum(width))
-            width = this.widths[glyphName];
-          if (this.noUnicodeAdaptation) {
-            fontCharCode = mapPrivateUseChars(GlyphsUnicode[glyphName] ||
-              charcode);
-            break;
-          }
-          fontCharCode = this.glyphNameMap[glyphName] ||
-            GlyphsUnicode[glyphName] || charcode;
-          break;
-        case 'Type3':
-          var glyphName = this.differences[charcode] || this.encoding[charcode];
-          operatorList = this.charProcOperatorList[glyphName];
-          fontCharCode = charcode;
-          break;
-        case 'TrueType':
-          if (this.useToFontChar) {
-            fontCharCode = this.toFontChar[charcode] || charcode;
-            break;
-          }
-          var glyphName = this.differences[charcode] || this.encoding[charcode];
-          if (!glyphName)
-            glyphName = Encodings.StandardEncoding[charcode];
-          if (!isNum(width))
-            width = this.widths[glyphName];
-          if (this.noUnicodeAdaptation) {
-            fontCharCode = GlyphsUnicode[glyphName] || charcode;
-            break;
-          }
-          if (!this.hasEncoding || this.isSymbolicFont) {
-            fontCharCode = this.useToFontChar ? this.toFontChar[charcode] :
-              charcode;
-            break;
-          }
-
-          // MacRoman encoding address by re-encoding the cmap table
-          fontCharCode = glyphName in this.glyphNameMap ?
-            this.glyphNameMap[glyphName] : GlyphsUnicode[glyphName];
-          break;
-        default:
-          warn('Unsupported font type: ' + this.type);
-          break;
-      }
-
-      var unicodeChars = !('toUnicode' in this) ? charcode :
-        this.toUnicode[charcode] || charcode;
-      if (typeof unicodeChars === 'number')
-        unicodeChars = String.fromCharCode(unicodeChars);
-
-      width = (isNum(width) ? width : this.defaultWidth) * this.widthMultiplier;
-      disabled = this.unicodeIsEnabled ?
-        !this.unicodeIsEnabled[fontCharCode] : false;
-
-      return {
-        fontChar: String.fromCharCode(fontCharCode),
-        unicode: unicodeChars,
-        width: width,
-        disabled: disabled,
-        operatorList: operatorList
-      };
-    },
-
-    charsToGlyphs: function Font_charsToGlyphs(chars) {
-      var charsCache = this.charsCache;
-      var glyphs;
-
-      // if we translated this string before, just grab it from the cache
-      if (charsCache) {
-        glyphs = charsCache[chars];
-        if (glyphs)
-          return glyphs;
-      }
-
-      // lazily create the translation cache
-      if (!charsCache)
-        charsCache = this.charsCache = Object.create(null);
-
-      glyphs = [];
-
-      if (this.wideChars) {
-        // composite fonts have multi-byte strings convert the string from
-        // single-byte to multi-byte
-        // XXX assuming CIDFonts are two-byte - later need to extract the
-        // correct byte encoding according to the PDF spec
-        var length = chars.length - 1; // looping over two bytes at a time so
-                                       // loop should never end on the last byte
-        for (var i = 0; i < length; i++) {
-          var charcode = int16([chars.charCodeAt(i++), chars.charCodeAt(i)]);
-          var glyph = this.charToGlyph(charcode);
-          glyphs.push(glyph);
-          // placing null after each word break charcode (ASCII SPACE)
-          if (charcode == 0x20)
-            glyphs.push(null);
-        }
-      }
-      else {
-        for (var i = 0, ii = chars.length; i < ii; ++i) {
-          var charcode = chars.charCodeAt(i);
-          var glyph = this.charToGlyph(charcode);
-          glyphs.push(glyph);
-          if (charcode == 0x20)
-            glyphs.push(null);
-        }
-      }
-
-      // Enter the translated string into the cache
-      return (charsCache[chars] = glyphs);
-    }
-  };
-
-  return Font;
-})();
-
-/*
- * Type1Parser encapsulate the needed code for parsing a Type1 font
- * program. Some of its logic depends on the Type2 charstrings
- * structure.
- */
-var Type1Parser = function type1Parser() {
-  /*
-   * Decrypt a Sequence of Ciphertext Bytes to Produce the Original Sequence
-   * of Plaintext Bytes. The function took a key as a parameter which can be
-   * for decrypting the eexec block of for decoding charStrings.
-   */
-  var kEexecEncryptionKey = 55665;
-  var kCharStringsEncryptionKey = 4330;
-
-  function decrypt(stream, key, discardNumber) {
-    var r = key, c1 = 52845, c2 = 22719;
-    var decryptedString = [];
-
-    var value = '';
-    var count = stream.length;
-    for (var i = 0; i < count; i++) {
-      value = stream[i];
-      decryptedString[i] = value ^ (r >> 8);
-      r = ((value + r) * c1 + c2) & ((1 << 16) - 1);
-    }
-    return decryptedString.slice(discardNumber);
-  }
-
-  /*
-   * CharStrings are encoded following the the CharString Encoding sequence
-   * describe in Chapter 6 of the "Adobe Type1 Font Format" specification.
-   * The value in a byte indicates a command, a number, or subsequent bytes
-   * that are to be interpreted in a special way.
-   *
-   * CharString Number Encoding:
-   *  A CharString byte containing the values from 32 through 255 inclusive
-   *  indicate an integer. These values are decoded in four ranges.
-   *
-   * 1. A CharString byte containing a value, v, between 32 and 246 inclusive,
-   * indicate the integer v - 139. Thus, the integer values from -107 through
-   * 107 inclusive may be encoded in single byte.
-   *
-   * 2. A CharString byte containing a value, v, between 247 and 250 inclusive,
-   * indicates an integer involving the next byte, w, according to the formula:
-   * [(v - 247) x 256] + w + 108
-   *
-   * 3. A CharString byte containing a value, v, between 251 and 254 inclusive,
-   * indicates an integer involving the next byte, w, according to the formula:
-   * -[(v - 251) * 256] - w - 108
-   *
-   * 4. A CharString containing the value 255 indicates that the next 4 bytes
-   * are a two complement signed integer. The first of these bytes contains the
-   * highest order bits, the second byte contains the next higher order bits
-   * and the fourth byte contain the lowest order bits.
-   *
-   *
-   * CharString Command Encoding:
-   *  CharStrings commands are encoded in 1 or 2 bytes.
-   *
-   *  Single byte commands are encoded in 1 byte that contains a value between
-   *  0 and 31 inclusive.
-   *  If a command byte contains the value 12, then the value in the next byte
-   *  indicates a command. This "escape" mechanism allows many extra commands
-   * to be encoded and this encoding technique helps to minimize the length of
-   * the charStrings.
-   */
-  var charStringDictionary = {
-    '1': 'hstem',
-    '3': 'vstem',
-    '4': 'vmoveto',
-    '5': 'rlineto',
-    '6': 'hlineto',
-    '7': 'vlineto',
-    '8': 'rrcurveto',
-
-    // closepath is a Type1 command that do not take argument and is useless
-    // in Type2 and it can simply be ignored.
-    '9': null, // closepath
-
-    '10': 'callsubr',
-
-    // return is normally used inside sub-routines to tells to the execution
-    // flow that it can be back to normal.
-    // During the translation process Type1 charstrings will be flattened and
-    // sub-routines will be embedded directly into the charstring directly, so
-    // this can be ignored safely.
-    '11': 'return',
-
-    '12': {
-      // dotsection is a Type1 command to specify some hinting feature for dots
-      // that do not take a parameter and it can safely be ignored for Type2.
-      '0': null, // dotsection
-
-      // [vh]stem3 are Type1 only and Type2 supports [vh]stem with multiple
-      // parameters, so instead of returning [vh]stem3 take a shortcut and
-      // return [vhstem] instead.
-      '1': 'vstem',
-      '2': 'hstem',
-
-      // Type1 only command with command not (yet) built-in ,throw an error
-      '6': -1, // seac
-      '7': -1, // sbw
-
-      '11': 'sub',
-      '12': 'div',
-
-      // callothersubr is a mechanism to make calls on the postscript
-      // interpreter, this is not supported by Type2 charstring but hopefully
-      // most of the default commands can be ignored safely.
-      '16': 'callothersubr',
-
-      '17': 'pop',
-
-      // setcurrentpoint sets the current point to x, y without performing a
-      // moveto (this is a one shot positionning command). This is used only
-      // with the return of an OtherSubrs call.
-      // TODO Implement the OtherSubrs charstring embedding and replace this
-      // call by a no-op, like 2 'pop' commands for example.
-      '33': null // setcurrentpoint
-    },
-    '13': 'hsbw',
-    '14': 'endchar',
-    '21': 'rmoveto',
-    '22': 'hmoveto',
-    '30': 'vhcurveto',
-    '31': 'hvcurveto'
-  };
-
-  var kEscapeCommand = 12;
-
-  function decodeCharString(array) {
-    var charstring = [];
-    var lsb = 0;
-    var width = 0;
-    var flexState = 0;
-
-    var value = '';
-    var count = array.length;
-    for (var i = 0; i < count; i++) {
-      value = array[i];
-
-      if (value < 32) {
-        var command = null;
-        if (value == kEscapeCommand) {
-          var escape = array[++i];
-
-          // TODO Clean this code
-          if (escape == 16) {
-            var index = charstring.pop();
-            var argc = charstring.pop();
-            for (var j = 0; j < argc; j++)
-              charstring.push('drop');
-
-            // If the flex mechanism is not used in a font program, Adobe
-            // states that entries 0, 1 and 2 can simply be replaced by
-            // {}, which means that we can simply ignore them.
-            if (index < 3) {
-              continue;
-            }
-
-            // This is the same things about hint replacement, if it is not used
-            // entry 3 can be replaced by {3}
-            // TODO support hint replacment
-            if (index == 3) {
-              charstring.push(3);
-              i++;
-              continue;
-            }
-          } else if (escape == 17 || escape == 33) {
-            // pop or setcurrentpoint commands can be ignored
-            // since we are not doing callothersubr
-            continue;
-          } else if (!kHintingEnabled && (escape == 1 || escape == 2)) {
-            charstring.push('drop', 'drop', 'drop', 'drop', 'drop', 'drop');
-            continue;
-          }
-
-          command = charStringDictionary['12'][escape];
-        } else {
-          // TODO Clean this code
-          if (value == 13) { // hsbw
-            if (charstring.length == 2) {
-              lsb = charstring[0];
-              width = charstring[1];
-              charstring.splice(0, 1);
-            } else if (charstring.length == 4 && charstring[3] == 'div') {
-              lsb = charstring[0];
-              width = charstring[1] / charstring[2];
-              charstring.splice(0, 1);
-            } else if (charstring.length == 4 && charstring[2] == 'div') {
-              lsb = charstring[0] / charstring[1];
-              width = charstring[3];
-              charstring.splice(0, 3);
-            } else {
-              error('Unsupported hsbw format: ' + charstring);
-            }
-
-            charstring.push(lsb, 'hmoveto');
-            continue;
-          } else if (value == 10) { // callsubr
-            if (charstring[charstring.length - 1] < 3) { // subr #0..2
-              var subrNumber = charstring.pop();
-              switch (subrNumber) {
-                case 1:
-                  flexState = 1; // prepare for flex coordinates
-                  break;
-                case 2:
-                  flexState = 2; // flex in progress
-                  break;
-                case 0:
-                  // type2 flex command does not need final coords
-                  charstring.push('exch', 'drop', 'exch', 'drop');
-                  charstring.push('flex');
-                  flexState = 0;
-                  break;
-              }
-              continue;
-            }
-          } else if (value == 21 && flexState > 0) {
-            if (flexState > 1)
-              continue; // ignoring rmoveto
-            value = 5; // first segment replacing with rlineto
-          } else if (!kHintingEnabled && (value == 1 || value == 3)) {
-            charstring.push('drop', 'drop');
-            continue;
-          }
-          command = charStringDictionary[value];
-        }
-
-        // Some charstring commands are meaningless in Type2 and will return
-        // a null, let's just ignored them
-        if (!command && i < count) {
-          continue;
-        } else if (!command) {
-          break;
-        } else if (command == -1) {
-          warn('Support for Type1 command ' + value +
-                ' (' + escape + ') is not implemented in charstring: ' +
-                charstring);
-          if (value == 12) {
-            // we know how to ignore only some the Type1 commands
-            switch (escape) {
-              case 7:
-                charstring.push('drop', 'drop', 'drop', 'drop');
-                continue;
-              case 8:
-                charstring.push('drop');
-                continue;
-            }
-          }
-        }
-
-        value = command;
-      } else if (value <= 246) {
-        value = value - 139;
-      } else if (value <= 250) {
-        value = ((value - 247) * 256) + array[++i] + 108;
-      } else if (value <= 254) {
-        value = -((value - 251) * 256) - array[++i] - 108;
-      } else {
-        value = (array[++i] & 0xff) << 24 | (array[++i] & 0xff) << 16 |
-                (array[++i] & 0xff) << 8 | (array[++i] & 0xff) << 0;
-      }
-
-      charstring.push(value);
-    }
-
-    return { charstring: charstring, width: width, lsb: lsb };
-  }
-
-  /*
-   * Returns an object containing a Subrs array and a CharStrings
-   * array extracted from and eexec encrypted block of data
-   */
-  function readNumberArray(str, index) {
-    var start = index;
-    while (str[index++] != '[')
-      start++;
-    start++;
-
-    var count = 0;
-    while (str[index++] != ']')
-      count++;
-
-    str = str.substr(start, count);
-
-    str = str.trim();
-    // Remove adjacent spaces
-    str = str.replace(/\s+/g, ' ');
-
-    var array = str.split(' ');
-    for (var i = 0, ii = array.length; i < ii; i++)
-      array[i] = parseFloat(array[i] || 0);
-    return array;
-  }
-
-  function readNumber(str, index) {
-    while (str[index] == ' ')
-      index++;
-
-    var start = index;
-
-    var count = 0;
-    while (str[index++] != ' ')
-      count++;
-
-    return parseFloat(str.substr(start, count) || 0);
-  }
-
-  function isSeparator(c) {
-    return c == ' ' || c == '\n' || c == '\x0d';
-  }
-
-  this.extractFontProgram = function Type1Parser_extractFontProgram(stream) {
-    var eexec = decrypt(stream, kEexecEncryptionKey, 4);
-    var eexecStr = '';
-    for (var i = 0, ii = eexec.length; i < ii; i++)
-      eexecStr += String.fromCharCode(eexec[i]);
-
-    var glyphsSection = false, subrsSection = false;
-    var program = {
-      subrs: [],
-      charstrings: [],
-      properties: {
-        'privateData': {
-          'lenIV': 4
-        }
-      }
-    };
-
-    var glyph = '';
-    var token = '';
-    var length = 0;
-
-    var c = '';
-    var count = eexecStr.length;
-    for (var i = 0; i < count; i++) {
-      var getToken = function getToken() {
-        while (i < count && isSeparator(eexecStr[i]))
-          ++i;
-
-        var token = '';
-        while (i < count && !isSeparator(eexecStr[i]))
-          token += eexecStr[i++];
-
-        return token;
-      };
-      var c = eexecStr[i];
-
-      if ((glyphsSection || subrsSection) &&
-          (token == 'RD' || token == '-|')) {
-        i++;
-        var data = eexec.slice(i, i + length);
-        var lenIV = program.properties.privateData['lenIV'];
-        var encoded = decrypt(data, kCharStringsEncryptionKey, lenIV);
-        var str = decodeCharString(encoded);
-
-        if (glyphsSection) {
-          program.charstrings.push({
-            glyph: glyph,
-            data: str.charstring,
-            lsb: str.lsb,
-            width: str.width
-          });
-        } else {
-          program.subrs.push(str.charstring);
-        }
-        i += length;
-        token = '';
-      } else if (isSeparator(c)) {
-        length = parseInt(token, 10);
-        token = '';
-      } else {
-        token += c;
-        if (!glyphsSection) {
-          switch (token) {
-            case '/CharString':
-              glyphsSection = true;
-              break;
-            case '/Subrs':
-              ++i;
-              var num = parseInt(getToken(), 10);
-              getToken(); // read in 'array'
-              for (var j = 0; j < num; ++j) {
-                var t = getToken(); // read in 'dup'
-                if (t == 'ND' || t == '|-' || t == 'noaccess')
-                  break;
-                var index = parseInt(getToken(), 10);
-                if (index > j)
-                  j = index;
-                var length = parseInt(getToken(), 10);
-                getToken(); // read in 'RD'
-                var data = eexec.slice(i + 1, i + 1 + length);
-                var lenIV = program.properties.privateData['lenIV'];
-                var encoded = decrypt(data, kCharStringsEncryptionKey, lenIV);
-                var str = decodeCharString(encoded);
-                i = i + 1 + length;
-                t = getToken(); // read in 'NP'
-                if (t == 'noaccess')
-                  getToken(); // read in 'put'
-                program.subrs[index] = str.charstring;
-              }
-              break;
-            case '/BlueValues':
-            case '/OtherBlues':
-            case '/FamilyBlues':
-            case '/FamilyOtherBlues':
-            case '/StemSnapH':
-            case '/StemSnapV':
-              program.properties.privateData[token.substring(1)] =
-                readNumberArray(eexecStr, i + 1);
-              break;
-            case '/StdHW':
-            case '/StdVW':
-              program.properties.privateData[token.substring(1)] =
-                readNumberArray(eexecStr, i + 2)[0];
-              break;
-            case '/BlueShift':
-            case '/lenIV':
-            case '/BlueFuzz':
-            case '/BlueScale':
-            case '/LanguageGroup':
-            case '/ExpansionFactor':
-              program.properties.privateData[token.substring(1)] =
-                readNumber(eexecStr, i + 1);
-              break;
-          }
-        } else if (c == '/') {
-          token = glyph = '';
-          while ((c = eexecStr[++i]) != ' ')
-            glyph += c;
-        }
-      }
-    }
-
-    return program;
-  };
-
-  this.extractFontHeader = function Type1Parser_extractFontHeader(stream,
-                                                                  properties) {
-    var headerString = '';
-    for (var i = 0, ii = stream.length; i < ii; i++)
-      headerString += String.fromCharCode(stream[i]);
-
-    var token = '';
-    var count = headerString.length;
-    for (var i = 0; i < count; i++) {
-      var getToken = function getToken() {
-        var character = headerString[i];
-        while (i < count && (isSeparator(character) || character == '/'))
-          character = headerString[++i];
-
-        var token = '';
-        while (i < count && !(isSeparator(character) || character == '/')) {
-          token += character;
-          character = headerString[++i];
-        }
-
-        return token;
-      };
-
-      var c = headerString[i];
-      if (isSeparator(c)) {
-        switch (token) {
-          case '/FontMatrix':
-            var matrix = readNumberArray(headerString, i + 1);
-
-            // The FontMatrix is in unitPerEm, so make it pixels
-            for (var j = 0, jj = matrix.length; j < jj; j++)
-              matrix[j] *= 1000;
-
-            // Make the angle into the right direction
-            matrix[2] *= -1;
-
-            properties.fontMatrix = matrix;
-            break;
-          case '/Encoding':
-            var encodingArg = getToken();
-            var encoding;
-            if (!/^\d+$/.test(encodingArg)) {
-              // encoding name is specified
-              encoding = Encodings[encodingArg];
-            } else {
-              encoding = [];
-              var size = parseInt(encodingArg, 10);
-              getToken(); // read in 'array'
-
-              for (var j = 0; j < size; j++) {
-                var token = getToken();
-                if (token == 'dup') {
-                  var index = parseInt(getToken(), 10);
-                  var glyph = getToken();
-                  encoding[index] = glyph;
-                  getToken(); // read the in 'put'
-                }
-              }
-            }
-            if (!properties.hasEncoding && encoding) {
-              properties.baseEncoding = encoding;
-              break;
-            }
-            break;
-        }
-        token = '';
-      } else {
-        token += c;
-      }
-    }
-  };
-};
-
-/**
- * The CFF class takes a Type1 file and wrap it into a
- * 'Compact Font Format' which itself embed Type2 charstrings.
- */
-var CFFStandardStrings = [
-  '.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', 'exclamsmall',
-  'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall',
-  'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', '266 ff',
-  'onedotenleader', 'zerooldstyle', 'oneoldstyle', 'twooldstyle',
-  'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle',
-  'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'commasuperior',
-  'threequartersemdash', 'periodsuperior', 'questionsmall', 'asuperior',
-  'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior',
-  'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior',
-  'tsuperior', 'ff', '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', 'questiondownsmall', 'oneeighth',
-  'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds',
-  'zerosuperior', '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', '001.000', '001.001', '001.002', '001.003',
-  'Black', 'Bold', 'Book', 'Light', 'Medium', 'Regular', 'Roman', 'Semibold'
-];
-
-var type1Parser = new Type1Parser();
-
-// Type1Font is also a CIDFontType0.
-var Type1Font = function Type1Font(name, file, properties) {
-  // Get the data block containing glyphs and subrs informations
-  var headerBlock = file.getBytes(properties.length1);
-  type1Parser.extractFontHeader(headerBlock, properties);
-
-  // Decrypt the data blocks and retrieve it's content
-  var eexecBlock = file.getBytes(properties.length2);
-  var data = type1Parser.extractFontProgram(eexecBlock);
-  for (var info in data.properties)
-    properties[info] = data.properties[info];
-
-  var charstrings = this.getOrderedCharStrings(data.charstrings, properties);
-  var type2Charstrings = this.getType2Charstrings(charstrings);
-  var subrs = this.getType2Subrs(data.subrs);
-
-  this.charstrings = charstrings;
-  this.data = this.wrap(name, type2Charstrings, this.charstrings,
-                        subrs, properties);
-};
-
-Type1Font.prototype = {
-  createCFFIndexHeader: function Type1Font_createCFFIndexHeader(objects,
-                                                                isByte) {
-    // First 2 bytes contains the number of objects contained into this index
-    var count = objects.length;
-
-    // If there is no object, just create an array saying that with another
-    // offset byte.
-    if (count == 0)
-      return '\x00\x00\x00';
-
-    var data = String.fromCharCode((count >> 8) & 0xFF, count & 0xff);
-
-    // Next byte contains the offset size use to reference object in the file
-    // Actually we're using 0x04 to be sure to be able to store everything
-    // without thinking of it while coding.
-    data += '\x04';
-
-    // Add another offset after this one because we need a new offset
-    var relativeOffset = 1;
-    for (var i = 0; i < count + 1; i++) {
-      data += String.fromCharCode((relativeOffset >>> 24) & 0xFF,
-                                  (relativeOffset >> 16) & 0xFF,
-                                  (relativeOffset >> 8) & 0xFF,
-                                  relativeOffset & 0xFF);
-
-      if (objects[i])
-        relativeOffset += objects[i].length;
-    }
-
-    for (var i = 0; i < count; i++) {
-      for (var j = 0, jj = objects[i].length; j < jj; j++)
-        data += isByte ? String.fromCharCode(objects[i][j] & 0xFF) :
-                objects[i][j];
-    }
-    return data;
-  },
-
-  encodeNumber: function Type1Font_encodeNumber(value) {
-    // some of the fonts has ouf-of-range values
-    // they are just arithmetic overflows
-    // make sanitizer happy
-    value |= 0;
-    if (value >= -32768 && value <= 32767) {
-      return '\x1c' +
-             String.fromCharCode((value >> 8) & 0xFF) +
-             String.fromCharCode(value & 0xFF);
-    } else {
-      return '\x1d' +
-             String.fromCharCode((value >> 24) & 0xFF) +
-             String.fromCharCode((value >> 16) & 0xFF) +
-             String.fromCharCode((value >> 8) & 0xFF) +
-             String.fromCharCode(value & 0xFF);
-    }
-  },
-
-  getOrderedCharStrings: function Type1Font_getOrderedCharStrings(glyphs,
-                                                            properties) {
-    var charstrings = [];
-    var i, length, glyphName;
-    var unusedUnicode = kCmapGlyphOffset;
-    for (i = 0, length = glyphs.length; i < length; i++) {
-      var item = glyphs[i];
-      var glyphName = item.glyph;
-      var unicode = glyphName in GlyphsUnicode ?
-        GlyphsUnicode[glyphName] : unusedUnicode++;
-      charstrings.push({
-        glyph: glyphName,
-        unicode: unicode,
-        gid: i,
-        charstring: item.data,
-        width: item.width,
-        lsb: item.lsb
-      });
-    }
-
-    charstrings.sort(function charstrings_sort(a, b) {
-      return a.unicode - b.unicode;
-    });
-    return charstrings;
-  },
-
-  getType2Charstrings: function Type1Font_getType2Charstrings(
-                                  type1Charstrings) {
-    var type2Charstrings = [];
-    var count = type1Charstrings.length;
-    for (var i = 0; i < count; i++) {
-      var charstring = type1Charstrings[i].charstring;
-      type2Charstrings.push(this.flattenCharstring(charstring.slice(),
-                                                   this.commandsMap));
-    }
-    return type2Charstrings;
-  },
-
-  getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) {
-    var bias = 0;
-    var count = type1Subrs.length;
-    if (count < 1240)
-      bias = 107;
-    else if (count < 33900)
-      bias = 1131;
-    else
-      bias = 32768;
-
-    // Add a bunch of empty subrs to deal with the Type2 bias
-    var type2Subrs = [];
-    for (var i = 0; i < bias; i++)
-      type2Subrs.push([0x0B]);
-
-    for (var i = 0; i < count; i++) {
-      var subr = type1Subrs[i];
-      if (!subr)
-        subr = [0x0B];
-
-      type2Subrs.push(this.flattenCharstring(subr, this.commandsMap));
-    }
-
-    return type2Subrs;
-  },
-
-  /*
-   * Flatten the commands by interpreting the postscript code and replacing
-   * every 'callsubr', 'callothersubr' by the real commands.
-   */
-  commandsMap: {
-    'hstem': 1,
-    'vstem': 3,
-    'vmoveto': 4,
-    'rlineto': 5,
-    'hlineto': 6,
-    'vlineto': 7,
-    'rrcurveto': 8,
-    'callsubr': 10,
-    'return': 11,
-    'sub': [12, 11],
-    'div': [12, 12],
-    'exch': [12, 28],
-    'flex': [12, 35],
-    'drop' : [12, 18],
-    'endchar': 14,
-    'rmoveto': 21,
-    'hmoveto': 22,
-    'vhcurveto': 30,
-    'hvcurveto': 31
-  },
-
-  flattenCharstring: function Type1Font_flattenCharstring(charstring, map) {
-    // charstring changes size - can't cache .length in loop
-    for (var i = 0; i < charstring.length; i++) {
-      var command = charstring[i];
-      if (command.charAt) {
-        var cmd = map[command];
-        assert(cmd, 'Unknow command: ' + command);
-
-        if (isArray(cmd))
-          charstring.splice(i++, 1, cmd[0], cmd[1]);
-        else
-          charstring[i] = cmd;
-      } else {
-        // Type1 charstring use a division for number above 32000
-        if (command > 32000) {
-          var divisor = charstring[i + 1];
-          command /= divisor;
-          charstring.splice(i, 3, 28, command >> 8, command & 0xff);
-        } else {
-          charstring.splice(i, 1, 28, command >> 8, command & 0xff);
-        }
-        i += 2;
-      }
-    }
-    return charstring;
-  },
-
-  wrap: function Type1Font_wrap(name, glyphs, charstrings, subrs, properties) {
-    var fields = {
-      // major version, minor version, header size, offset size
-      'header': '\x01\x00\x04\x04',
-
-      'names': this.createCFFIndexHeader([name]),
-
-      'topDict': (function topDict(self) {
-        return function cffWrapTopDict() {
-          var header = '\x00\x01\x01\x01';
-          var dict =
-              '\xf8\x1b\x00' + // version
-              '\xf8\x1c\x01' + // Notice
-              '\xf8\x1d\x02' + // FullName
-              '\xf8\x1e\x03' + // FamilyName
-              '\xf8\x1f\x04' +  // Weight
-              '\x1c\x00\x00\x10'; // Encoding
-
-          var boundingBox = properties.bbox;
-          for (var i = 0, ii = boundingBox.length; i < ii; i++)
-            dict += self.encodeNumber(boundingBox[i]);
-          dict += '\x05'; // FontBBox;
-
-          var offset = fields.header.length +
-                       fields.names.length +
-                       (header.length + 1) +
-                       (dict.length + (4 + 4)) +
-                       fields.strings.length +
-                       fields.globalSubrs.length;
-
-          // If the offset if over 32767, encodeNumber is going to return
-          // 5 bytes to encode the position instead of 3.
-          if ((offset + fields.charstrings.length) > 32767) {
-            offset += 9;
-          } else {
-            offset += 7;
-          }
-
-          dict += self.encodeNumber(offset) + '\x0f'; // Charset
-
-          offset = offset + (glyphs.length * 2) + 1;
-          dict += self.encodeNumber(offset) + '\x11'; // Charstrings
-
-          offset = offset + fields.charstrings.length;
-          dict += self.encodeNumber(fields.privateData.length);
-          dict += self.encodeNumber(offset) + '\x12'; // Private
-
-          return header + String.fromCharCode(dict.length + 1) + dict;
-        };
-      })(this),
-
-      'strings': (function strings(self) {
-        var strings = [
-          'Version 0.11',         // Version
-          'See original notice',  // Notice
-          name,                   // FullName
-          name,                   // FamilyName
-          'Medium'                // Weight
-        ];
-        return self.createCFFIndexHeader(strings);
-      })(this),
-
-      'globalSubrs': this.createCFFIndexHeader([]),
-
-      'charset': (function charset(self) {
-        var charsetString = '\x00'; // Encoding
-
-        var count = glyphs.length;
-        for (var i = 0; i < count; i++) {
-          var index = CFFStandardStrings.indexOf(charstrings[i].glyph);
-          // Some characters like asterikmath && circlecopyrt are
-          // missing from the original strings, for the moment let's
-          // map them to .notdef and see later if it cause any
-          // problems
-          if (index == -1)
-            index = 0;
-
-          charsetString += String.fromCharCode(index >> 8, index & 0xff);
-        }
-        return charsetString;
-      })(this),
-
-      'charstrings': this.createCFFIndexHeader([[0x8B, 0x0E]].concat(glyphs),
-                                               true),
-
-      'privateData': (function cffWrapPrivate(self) {
-        var data =
-            '\x8b\x14' + // defaultWidth
-            '\x8b\x15';  // nominalWidth
-        var fieldMap = {
-          BlueValues: '\x06',
-          OtherBlues: '\x07',
-          FamilyBlues: '\x08',
-          FamilyOtherBlues: '\x09',
-          StemSnapH: '\x0c\x0c',
-          StemSnapV: '\x0c\x0d',
-          BlueShift: '\x0c\x0a',
-          BlueFuzz: '\x0c\x0b',
-          BlueScale: '\x0c\x09',
-          LanguageGroup: '\x0c\x11',
-          ExpansionFactor: '\x0c\x18'
-        };
-        for (var field in fieldMap) {
-          if (!properties.privateData.hasOwnProperty(field))
-            continue;
-          var value = properties.privateData[field];
-
-          if (isArray(value)) {
-            data += self.encodeNumber(value[0]);
-            for (var i = 1, ii = value.length; i < ii; i++)
-              data += self.encodeNumber(value[i] - value[i - 1]);
-          } else {
-            data += self.encodeNumber(value);
-          }
-          data += fieldMap[field];
-        }
-
-        data += self.encodeNumber(data.length + 4) + '\x13'; // Subrs offset
-
-        return data;
-      })(this),
-
-      'localSubrs': this.createCFFIndexHeader(subrs, true)
-    };
-    fields.topDict = fields.topDict();
-
-
-    var cff = [];
-    for (var index in fields) {
-      var field = fields[index];
-      for (var i = 0, ii = field.length; i < ii; i++)
-        cff.push(field.charCodeAt(i));
-    }
-
-    return cff;
-  }
-};
-
-var CFFFont = (function CFFFontClosure() {
-  function CFFFont(file, properties) {
-    this.properties = properties;
-
-    var parser = new CFFParser(file, properties);
-    var cff = parser.parse();
-    var compiler = new CFFCompiler(cff);
-    this.readExtra(cff);
-    try {
-      this.data = compiler.compile();
-    } catch (e) {
-      warn('Failed to compile font ' + properties.loadedName);
-      // There may have just been an issue with the compiler, set the data
-      // anyway and hope the font loaded.
-      this.data = file;
-    }
-  }
-
-  CFFFont.prototype = {
-    readExtra: function CFFFont_readExtra(cff) {
-      // charstrings contains info about glyphs (one element per glyph
-      // containing mappings for {unicode, width})
-      var charset = cff.charset.charset;
-      var encoding = cff.encoding ? cff.encoding.encoding : null;
-      var charstrings = this.getCharStrings(charset, encoding);
-
-      // create the mapping between charstring and glyph id
-      var glyphIds = [];
-      for (var i = 0, ii = charstrings.length; i < ii; i++)
-        glyphIds.push(charstrings[i].gid);
-
-      this.charstrings = charstrings;
-      this.glyphIds = glyphIds;
-    },
-    getCharStrings: function CFFFont_getCharStrings(charsets, encoding) {
-      var charstrings = [];
-      var unicodeUsed = [];
-      var unassignedUnicodeItems = [];
-      var inverseEncoding = [];
-      // CID fonts don't have an encoding.
-      if (encoding !== null)
-        for (var charcode in encoding)
-          inverseEncoding[encoding[charcode]] = charcode | 0;
-      else
-        inverseEncoding = charsets;
-      for (var i = 0, ii = charsets.length; i < ii; i++) {
-        var glyph = charsets[i];
-        if (glyph == '.notdef')
-          continue;
-
-        var code = inverseEncoding[i];
-        if (!code || isSpecialUnicode(code)) {
-          unassignedUnicodeItems.push(i);
-          continue;
-        }
-        charstrings.push({
-          unicode: code,
-          code: code,
-          gid: i,
-          glyph: glyph
-        });
-        unicodeUsed[code] = true;
-      }
-
-      var nextUnusedUnicode = kCmapGlyphOffset;
-      for (var j = 0, jj = unassignedUnicodeItems.length; j < jj; ++j) {
-        var i = unassignedUnicodeItems[j];
-        // giving unicode value anyway
-        while (nextUnusedUnicode in unicodeUsed)
-          nextUnusedUnicode++;
-        var unicode = nextUnusedUnicode++;
-        charstrings.push({
-          unicode: unicode,
-          code: inverseEncoding[i] || 0,
-          gid: i,
-          glyph: charsets[i]
-        });
-      }
-
-      // sort the array by the unicode value (again)
-      charstrings.sort(function getCharStringsSort(a, b) {
-        return a.unicode - b.unicode;
-      });
-      return charstrings;
-    }
-  };
-
-  return CFFFont;
-})();
-
-var CFFParser = (function CFFParserClosure() {
-  function CFFParser(file, properties) {
-    this.bytes = file.getBytes();
-    this.properties = properties;
-  }
-  CFFParser.prototype = {
-    parse: function CFFParser_parse() {
-      var properties = this.properties;
-      var cff = new CFF();
-      this.cff = cff;
-
-      // The first five sections must be in order, all the others are reached
-      // via offsets contained in one of the below.
-      var header = this.parseHeader();
-      var nameIndex = this.parseIndex(header.endPos);
-      var topDictIndex = this.parseIndex(nameIndex.endPos);
-      var stringIndex = this.parseIndex(topDictIndex.endPos);
-      var globalSubrIndex = this.parseIndex(stringIndex.endPos);
-
-      var topDictParsed = this.parseDict(topDictIndex.obj.get(0));
-      var topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);
-
-      cff.header = header.obj;
-      cff.names = this.parseNameIndex(nameIndex.obj);
-      cff.strings = this.parseStringIndex(stringIndex.obj);
-      cff.topDict = topDict;
-      cff.globalSubrIndex = globalSubrIndex.obj;
-
-      this.parsePrivateDict(cff.topDict);
-
-      cff.isCIDFont = topDict.hasName('ROS');
-
-      var charStringOffset = topDict.getByName('CharStrings');
-      cff.charStrings = this.parseCharStrings(charStringOffset);
-
-      var charset, encoding;
-      if (cff.isCIDFont) {
-        var fdArrayIndex = this.parseIndex(topDict.getByName('FDArray')).obj;
-        for (var i = 0, ii = fdArrayIndex.count; i < ii; ++i) {
-          var dictRaw = fdArrayIndex.get(i);
-          var fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw),
-                                         cff.strings);
-          this.parsePrivateDict(fontDict);
-          cff.fdArray.push(fontDict);
-        }
-        // cid fonts don't have an encoding
-        encoding = null;
-        charset = this.parseCharsets(topDict.getByName('charset'),
-                                     cff.charStrings.count, cff.strings, true);
-        cff.fdSelect = this.parseFDSelect(topDict.getByName('FDSelect'),
-                                             cff.charStrings.count);
-      } else {
-        charset = this.parseCharsets(topDict.getByName('charset'),
-                                     cff.charStrings.count, cff.strings, false);
-        encoding = this.parseEncoding(topDict.getByName('Encoding'),
-                                      properties,
-                                      cff.strings, charset.charset);
-      }
-      cff.charset = charset;
-      cff.encoding = encoding;
-
-      return cff;
-    },
-    parseHeader: function CFFParser_parseHeader() {
-      var bytes = this.bytes;
-      var offset = 0;
-
-      while (bytes[offset] != 1)
-        ++offset;
-
-      if (offset != 0) {
-        warn('cff data is shifted');
-        bytes = bytes.subarray(offset);
-        this.bytes = bytes;
-      }
-      var major = bytes[0];
-      var minor = bytes[1];
-      var hdrSize = bytes[2];
-      var offSize = bytes[3];
-      var header = new CFFHeader(major, minor, hdrSize, offSize);
-      return {obj: header, endPos: hdrSize};
-    },
-    parseDict: function CFFParser_parseDict(dict) {
-      var pos = 0;
-
-      function parseOperand() {
-        var value = dict[pos++];
-        if (value === 30) {
-          return parseFloatOperand(pos);
-        } else if (value === 28) {
-          value = dict[pos++];
-          value = (value << 8) | dict[pos++];
-          return value;
-        } else if (value === 29) {
-          value = dict[pos++];
-          value = (value << 8) | dict[pos++];
-          value = (value << 8) | dict[pos++];
-          value = (value << 8) | dict[pos++];
-          return value;
-        } else if (value >= 32 && value <= 246) {
-          return value - 139;
-        } else if (value >= 247 && value <= 250) {
-          return ((value - 247) * 256) + dict[pos++] + 108;
-        } else if (value >= 251 && value <= 254) {
-          return -((value - 251) * 256) - dict[pos++] - 108;
-        } else {
-          error('255 is not a valid DICT command');
-        }
-        return -1;
-      }
-
-      function parseFloatOperand() {
-        var str = '';
-        var eof = 15;
-        var lookup = ['0', '1', '2', '3', '4', '5', '6', '7', '8',
-            '9', '.', 'E', 'E-', null, '-'];
-        var length = dict.length;
-        while (pos < length) {
-          var b = dict[pos++];
-          var b1 = b >> 4;
-          var b2 = b & 15;
-
-          if (b1 == eof)
-            break;
-          str += lookup[b1];
-
-          if (b2 == eof)
-            break;
-          str += lookup[b2];
-        }
-        return parseFloat(str);
-      }
-
-      var operands = [];
-      var entries = [];
-
-      var pos = 0;
-      var end = dict.length;
-      while (pos < end) {
-        var b = dict[pos];
-        if (b <= 21) {
-          if (b === 12)
-            b = (b << 8) | dict[++pos];
-          entries.push([b, operands]);
-          operands = [];
-          ++pos;
-        } else {
-          operands.push(parseOperand());
-        }
-      }
-      return entries;
-    },
-    parseIndex: function CFFParser_parseIndex(pos) {
-      var cffIndex = new CFFIndex();
-      var bytes = this.bytes;
-      var count = (bytes[pos++] << 8) | bytes[pos++];
-      var offsets = [];
-      var start = pos;
-      var end = pos;
-
-      if (count != 0) {
-        var offsetSize = bytes[pos++];
-        // add 1 for offset to determine size of last object
-        var startPos = pos + ((count + 1) * offsetSize) - 1;
-
-        for (var i = 0, ii = count + 1; i < ii; ++i) {
-          var offset = 0;
-          for (var j = 0; j < offsetSize; ++j) {
-            offset <<= 8;
-            offset += bytes[pos++];
-          }
-          offsets.push(startPos + offset);
-        }
-        end = offsets[count];
-      }
-      for (var i = 0, ii = offsets.length - 1; i < ii; ++i) {
-        var offsetStart = offsets[i];
-        var offsetEnd = offsets[i + 1];
-        cffIndex.add(bytes.subarray(offsetStart, offsetEnd));
-      }
-      return {obj: cffIndex, endPos: end};
-    },
-    parseNameIndex: function CFFParser_parseNameIndex(index) {
-      var names = [];
-      for (var i = 0, ii = index.count; i < ii; ++i) {
-        var name = index.get(i);
-        // OTS doesn't allow names to be over 127 characters.
-        var length = Math.min(name.length, 127);
-        var data = [];
-        // OTS also only permits certain characters in the name.
-        for (var j = 0; j < length; ++j) {
-          var c = name[j];
-          if (j === 0 && c === 0) {
-            data[j] = c;
-            continue;
-          }
-          if ((c < 33 || c > 126) || c === 91 /* [ */ || c === 93 /* ] */ ||
-              c === 40 /* ( */ || c === 41 /* ) */ || c === 123 /* { */ ||
-              c === 125 /* } */ || c === 60 /* < */ || c === 62 /* > */ ||
-              c === 47 /* / */ || c === 37 /* % */) {
-            data[j] = 95;
-            continue;
-          }
-          data[j] = c;
-        }
-        names.push(String.fromCharCode.apply(null, data));
-      }
-      return names;
-    },
-    parseStringIndex: function CFFParser_parseStringIndex(index) {
-      var strings = new CFFStrings();
-      for (var i = 0, ii = index.count; i < ii; ++i) {
-        var data = index.get(i);
-        strings.add(String.fromCharCode.apply(null, data));
-      }
-      return strings;
-    },
-    createDict: function CFFParser_createDict(type, dict, strings) {
-      var cffDict = new type(strings);
-      var types = cffDict.types;
-
-      for (var i = 0, ii = dict.length; i < ii; ++i) {
-        var pair = dict[i];
-        var key = pair[0];
-        var value = pair[1];
-        cffDict.setByKey(key, value);
-      }
-      return cffDict;
-    },
-    parseCharStrings: function CFFParser_parseCharStrings(charStringOffset) {
-      var charStrings = this.parseIndex(charStringOffset).obj;
-      // The CFF specification state that the 'dotsection' command
-      // (12, 0) is deprecated and treated as a no-op, but all Type2
-      // charstrings processors should support them. Unfortunately
-      // the font sanitizer don't. As a workaround the sequence (12, 0)
-      // is replaced by a useless (0, hmoveto).
-      var count = charStrings.count;
-      for (var i = 0; i < count; i++) {
-        var charstring = charStrings.get(i);
-
-        var data = charstring;
-        var length = data.length;
-        for (var j = 0; j <= length; j) {
-          var value = data[j++];
-          if (value == 12 && data[j++] == 0) {
-              data[j - 2] = 139;
-              data[j - 1] = 22;
-          } else if (value === 28) {
-            j += 2;
-          } else if (value >= 247 && value <= 254) {
-            j++;
-          } else if (value == 255) {
-            j += 4;
-          }
-        }
-      }
-      return charStrings;
-    },
-    parsePrivateDict: function CFFParser_parsePrivateDict(parentDict) {
-      // no private dict, do nothing
-      if (!parentDict.hasName('Private'))
-        return;
-      var privateOffset = parentDict.getByName('Private');
-      // make sure the params are formatted correctly
-      if (!isArray(privateOffset) || privateOffset.length !== 2) {
-        parentDict.removeByName('Private');
-        return;
-      }
-      var size = privateOffset[0];
-      var offset = privateOffset[1];
-      // remove empty dicts or ones that refer to invalid location
-      if (size === 0 || offset >= this.bytes.length) {
-        parentDict.removeByName('Private');
-        return;
-      }
-
-      var privateDictEnd = offset + size;
-      var dictData = this.bytes.subarray(offset, privateDictEnd);
-      var dict = this.parseDict(dictData);
-      var privateDict = this.createDict(CFFPrivateDict, dict,
-                                        parentDict.strings);
-      parentDict.privateDict = privateDict;
-
-      // Parse the Subrs index also since it's relative to the private dict.
-      if (!privateDict.getByName('Subrs'))
-        return;
-      var subrsOffset = privateDict.getByName('Subrs');
-      var relativeOffset = offset + subrsOffset;
-      // Validate the offset.
-      if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {
-        privateDict.removeByName('Subrs');
-        return;
-      }
-      var subrsIndex = this.parseIndex(relativeOffset);
-      privateDict.subrsIndex = subrsIndex.obj;
-    },
-    parseCharsets: function CFFParser_parseCharsets(pos, length, strings, cid) {
-      if (pos == 0) {
-        return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE,
-                              ISOAdobeCharset);
-      } else if (pos == 1) {
-        return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT,
-                              ExpertCharset);
-      } else if (pos == 2) {
-        return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET,
-                              ExpertSubsetCharset);
-      }
-
-      var bytes = this.bytes;
-      var start = pos;
-      var format = bytes[pos++];
-      var charset = ['.notdef'];
-
-      // subtract 1 for the .notdef glyph
-      length -= 1;
-
-      switch (format) {
-        case 0:
-          for (var i = 0; i < length; i++) {
-            var id = (bytes[pos++] << 8) | bytes[pos++];
-            charset.push(cid ? id : strings.get(id));
-          }
-          break;
-        case 1:
-          while (charset.length <= length) {
-            var id = (bytes[pos++] << 8) | bytes[pos++];
-            var count = bytes[pos++];
-            for (var i = 0; i <= count; i++)
-              charset.push(cid ? id++ : strings.get(id++));
-          }
-          break;
-        case 2:
-          while (charset.length <= length) {
-            var id = (bytes[pos++] << 8) | bytes[pos++];
-            var count = (bytes[pos++] << 8) | bytes[pos++];
-            for (var i = 0; i <= count; i++)
-              charset.push(cid ? id++ : strings.get(id++));
-          }
-          break;
-        default:
-          error('Unknown charset format');
-      }
-      // Raw won't be needed if we actually compile the charset.
-      var end = pos;
-      var raw = bytes.subarray(start, end);
-
-      return new CFFCharset(false, format, charset, raw);
-    },
-    parseEncoding: function CFFParser_parseEncoding(pos,
-                                                    properties,
-                                                    strings,
-                                                    charset) {
-      var encoding = {};
-      var bytes = this.bytes;
-      var predefined = false;
-      var hasSupplement = false;
-      var format;
-      var raw = null;
-
-      function readSupplement() {
-        var supplementsCount = bytes[pos++];
-        for (var i = 0; i < supplementsCount; i++) {
-          var code = bytes[pos++];
-          var sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);
-          encoding[code] = properties.differences.indexOf(strings.get(sid));
-        }
-      }
-
-      if (pos == 0 || pos == 1) {
-        predefined = true;
-        format = pos;
-        var gid = 1;
-        var baseEncoding = pos ? Encodings.ExpertEncoding :
-                                 Encodings.StandardEncoding;
-        for (var i = 0, ii = charset.length; i < ii; i++) {
-          var index = baseEncoding.indexOf(charset[i]);
-          if (index != -1)
-            encoding[index] = gid++;
-        }
-      } else {
-        var dataStart = pos;
-        var format = bytes[pos++];
-        switch (format & 0x7f) {
-          case 0:
-            var glyphsCount = bytes[pos++];
-            for (var i = 1; i <= glyphsCount; i++)
-              encoding[bytes[pos++]] = i;
-            break;
-
-          case 1:
-            var rangesCount = bytes[pos++];
-            var gid = 1;
-            for (var i = 0; i < rangesCount; i++) {
-              var start = bytes[pos++];
-              var left = bytes[pos++];
-              for (var j = start; j <= start + left; j++)
-                encoding[j] = gid++;
-            }
-            break;
-
-          default:
-            error('Unknow encoding format: ' + format + ' in CFF');
-            break;
-        }
-        var dataEnd = pos;
-        if (format & 0x80) {
-          // The font sanitizer does not support CFF encoding with a
-          // supplement, since the encoding is not really used to map
-          // between gid to glyph, let's overwrite what is declared in
-          // the top dictionary to let the sanitizer think the font use
-          // StandardEncoding, that's a lie but that's ok.
-          bytes[dataStart] &= 0x7f;
-          readSupplement();
-          hasSupplement = true;
-        }
-        raw = bytes.subarray(dataStart, dataEnd);
-      }
-      format = format & 0x7f;
-      return new CFFEncoding(predefined, format, encoding, raw);
-    },
-    parseFDSelect: function CFFParser_parseFDSelect(pos, length) {
-      var start = pos;
-      var bytes = this.bytes;
-      var format = bytes[pos++];
-      var fdSelect = [];
-      switch (format) {
-        case 0:
-          for (var i = 0; i < length; ++i) {
-            var id = bytes[pos++];
-            fdSelect.push(id);
-          }
-          break;
-        case 3:
-          var rangesCount = (bytes[pos++] << 8) | bytes[pos++];
-          for (var i = 0; i < rangesCount; ++i) {
-            var first = (bytes[pos++] << 8) | bytes[pos++];
-            var fdIndex = bytes[pos++];
-            var next = (bytes[pos] << 8) | bytes[pos + 1];
-            for (var j = first; j < next; ++j)
-              fdSelect.push(fdIndex);
-          }
-          // Advance past the sentinel(next).
-          pos += 2;
-          break;
-        default:
-          error('Unknown fdselect format ' + format);
-          break;
-      }
-      var end = pos;
-      return new CFFFDSelect(fdSelect, bytes.subarray(start, end));
-    }
-  };
-  return CFFParser;
-})();
-
-// Compact Font Format
-var CFF = (function CFFClosure() {
-  function CFF() {
-    this.header = null;
-    this.names = [];
-    this.topDict = null;
-    this.strings = new CFFStrings();
-    this.globalSubrIndex = null;
-
-    // The following could really be per font, but since we only have one font
-    // store them here.
-    this.encoding = null;
-    this.charset = null;
-    this.charStrings = null;
-    this.fdArray = [];
-    this.fdSelect = null;
-
-    this.isCIDFont = false;
-  }
-  return CFF;
-})();
-
-var CFFHeader = (function CFFHeaderClosure() {
-  function CFFHeader(major, minor, hdrSize, offSize) {
-    this.major = major;
-    this.minor = minor;
-    this.hdrSize = hdrSize;
-    this.offSize = offSize;
-  }
-  return CFFHeader;
-})();
-
-var CFFStrings = (function CFFStringsClosure() {
-  function CFFStrings() {
-    this.strings = [];
-  }
-  CFFStrings.prototype = {
-    get: function CFFStrings_get(index) {
-      if (index >= 0 && index <= 390)
-        return CFFStandardStrings[index];
-      if (index - 391 <= this.strings.length)
-        return this.strings[index - 391];
-      return CFFStandardStrings[0];
-    },
-    add: function CFFStrings_add(value) {
-      this.strings.push(value);
-    },
-    get count() {
-      return this.strings.length;
-    }
-  };
-  return CFFStrings;
-})();
-
-var CFFIndex = (function CFFIndexClosure() {
-  function CFFIndex() {
-    this.objects = [];
-    this.length = 0;
-  }
-  CFFIndex.prototype = {
-    add: function CFFIndex_add(data) {
-      this.length += data.length;
-      this.objects.push(data);
-    },
-    get: function CFFIndex_get(index) {
-      return this.objects[index];
-    },
-    get count() {
-      return this.objects.length;
-    }
-  };
-  return CFFIndex;
-})();
-
-var CFFDict = (function CFFDictClosure() {
-  function CFFDict(tables, strings) {
-    this.keyToNameMap = tables.keyToNameMap;
-    this.nameToKeyMap = tables.nameToKeyMap;
-    this.defaults = tables.defaults;
-    this.types = tables.types;
-    this.opcodes = tables.opcodes;
-    this.order = tables.order;
-    this.strings = strings;
-    this.values = {};
-  }
-  CFFDict.prototype = {
-    // value should always be an array
-    setByKey: function CFFDict_setByKey(key, value) {
-      if (!(key in this.keyToNameMap))
-        return false;
-      // ignore empty values
-      if (value.length === 0)
-        return true;
-      var type = this.types[key];
-      // remove the array wrapping these types of values
-      if (type === 'num' || type === 'sid' || type === 'offset')
-        value = value[0];
-      this.values[key] = value;
-      return true;
-    },
-    hasName: function CFFDict_hasName(name) {
-      return this.nameToKeyMap[name] in this.values;
-    },
-    getByName: function CFFDict_getByName(name) {
-      if (!(name in this.nameToKeyMap))
-        error('Invalid dictionary name "' + name + '"');
-      var key = this.nameToKeyMap[name];
-      if (!(key in this.values))
-        return this.defaults[key];
-      return this.values[key];
-    },
-    removeByName: function CFFDict_removeByName(name) {
-      delete this.values[this.nameToKeyMap[name]];
-    }
-  };
-  CFFDict.createTables = function CFFDict_createTables(layout) {
-    var tables = {
-      keyToNameMap: {},
-      nameToKeyMap: {},
-      defaults: {},
-      types: {},
-      opcodes: {},
-      order: []
-    };
-    for (var i = 0, ii = layout.length; i < ii; ++i) {
-      var entry = layout[i];
-      var key = isArray(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0];
-      tables.keyToNameMap[key] = entry[1];
-      tables.nameToKeyMap[entry[1]] = key;
-      tables.types[key] = entry[2];
-      tables.defaults[key] = entry[3];
-      tables.opcodes[key] = isArray(entry[0]) ? entry[0] : [entry[0]];
-      tables.order.push(key);
-    }
-    return tables;
-  };
-  return CFFDict;
-})();
-
-var CFFTopDict = (function CFFTopDictClosure() {
-  var layout = [
-    [[12, 30], 'ROS', ['sid', 'sid', 'num'], null],
-    [[12, 20], 'SyntheticBase', 'num', null],
-    [0, 'version', 'sid', null],
-    [1, 'Notice', 'sid', null],
-    [[12, 0], 'Copyright', 'sid', null],
-    [2, 'FullName', 'sid', null],
-    [3, 'FamilyName', 'sid', null],
-    [4, 'Weight', 'sid', null],
-    [[12, 1], 'isFixedPitch', 'num', 0],
-    [[12, 2], 'ItalicAngle', 'num', 0],
-    [[12, 3], 'UnderlinePosition', 'num', -100],
-    [[12, 4], 'UnderlineThickness', 'num', 50],
-    [[12, 5], 'PaintType', 'num', 0],
-    [[12, 6], 'CharstringType', 'num', 2],
-    [[12, 7], 'FontMatrix', ['num', 'num', 'num', 'num', 'num', 'num'],
-                            [.001, 0, 0, .001, 0, 0]],
-    [13, 'UniqueID', 'num', null],
-    [5, 'FontBBox', ['num', 'num', 'num', 'num'], [0, 0, 0, 0]],
-    [[12, 8], 'StrokeWidth', 'num', 0],
-    [14, 'XUID', 'array', null],
-    [15, 'charset', 'offset', 0],
-    [16, 'Encoding', 'offset', 0],
-    [17, 'CharStrings', 'offset', 0],
-    [18, 'Private', ['offset', 'offset'], null],
-    [[12, 21], 'PostScript', 'sid', null],
-    [[12, 22], 'BaseFontName', 'sid', null],
-    [[12, 23], 'BaseFontBlend', 'delta', null],
-    [[12, 31], 'CIDFontVersion', 'num', 0],
-    [[12, 32], 'CIDFontRevision', 'num', 0],
-    [[12, 33], 'CIDFontType', 'num', 0],
-    [[12, 34], 'CIDCount', 'num', 8720],
-    [[12, 35], 'UIDBase', 'num', null],
-    [[12, 36], 'FDArray', 'offset', null],
-    [[12, 37], 'FDSelect', 'offset', null],
-    [[12, 38], 'FontName', 'sid', null]];
-  var tables = null;
-  function CFFTopDict(strings) {
-    if (tables === null)
-      tables = CFFDict.createTables(layout);
-    CFFDict.call(this, tables, strings);
-    this.privateDict = null;
-  }
-  CFFTopDict.prototype = Object.create(CFFDict.prototype);
-  return CFFTopDict;
-})();
-
-var CFFPrivateDict = (function CFFPrivateDictClosure() {
-  var layout = [
-    [6, 'BlueValues', 'delta', null],
-    [7, 'OtherBlues', 'delta', null],
-    [8, 'FamilyBlues', 'delta', null],
-    [9, 'FamilyOtherBlues', 'delta', null],
-    [[12, 9], 'BlueScale', 'num', 0.039625],
-    [[12, 10], 'BlueShift', 'num', 7],
-    [[12, 11], 'BlueFuzz', 'num', 1],
-    [10, 'StdHW', 'num', null],
-    [11, 'StdVW', 'num', null],
-    [[12, 12], 'StemSnapH', 'delta', null],
-    [[12, 13], 'StemSnapV', 'delta', null],
-    [[12, 14], 'ForceBold', 'num', 0],
-    [[12, 17], 'LanguageGroup', 'num', 0],
-    [[12, 18], 'ExpansionFactor', 'num', 0.06],
-    [[12, 19], 'initialRandomSeed', 'num', 0],
-    [19, 'Subrs', 'offset', null],
-    [20, 'defaultWidthX', 'num', 0],
-    [21, 'nominalWidthX', 'num', 0]
-  ];
-  var tables = null;
-  function CFFPrivateDict(strings) {
-    if (tables === null)
-      tables = CFFDict.createTables(layout);
-    CFFDict.call(this, tables, strings);
-    this.subrsIndex = null;
-  }
-  CFFPrivateDict.prototype = Object.create(CFFDict.prototype);
-  return CFFPrivateDict;
-})();
-
-var CFFCharsetPredefinedTypes = {
-  ISO_ADOBE: 0,
-  EXPERT: 1,
-  EXPERT_SUBSET: 2
-};
-var CFFCharsetEmbeddedTypes = {
-  FORMAT0: 0,
-  FORMAT1: 1,
-  FORMAT2: 2
-};
-var CFFCharset = (function CFFCharsetClosure() {
-  function CFFCharset(predefined, format, charset, raw) {
-    this.predefined = predefined;
-    this.format = format;
-    this.charset = charset;
-    this.raw = raw;
-  }
-  return CFFCharset;
-})();
-
-var CFFEncodingPredefinedTypes = {
-  STANDARD: 0,
-  EXPERT: 1
-};
-var CFFCharsetEmbeddedTypes = {
-  FORMAT0: 0,
-  FORMAT1: 1
-};
-var CFFEncoding = (function CFFEncodingClosure() {
-  function CFFEncoding(predefined, format, encoding, raw) {
-    this.predefined = predefined;
-    this.format = format;
-    this.encoding = encoding;
-    this.raw = raw;
-  }
-  return CFFEncoding;
-})();
-
-var CFFFDSelect = (function CFFFDSelectClosure() {
-  function CFFFDSelect(fdSelect, raw) {
-    this.fdSelect = fdSelect;
-    this.raw = raw;
-  }
-  return CFFFDSelect;
-})();
-
-// Helper class to keep track of where an offset is within the data and helps
-// filling in that offset once it's known.
-var CFFOffsetTracker = (function CFFOffsetTrackerClosure() {
-  function CFFOffsetTracker() {
-    this.offsets = {};
-  }
-  CFFOffsetTracker.prototype = {
-    isTracking: function CFFOffsetTracker_isTracking(key) {
-      return key in this.offsets;
-    },
-    track: function CFFOffsetTracker_track(key, location) {
-      if (key in this.offsets)
-        error('Already tracking location of ' + key);
-      this.offsets[key] = location;
-    },
-    offset: function CFFOffsetTracker_offset(value) {
-      for (var key in this.offsets) {
-        this.offsets[key] += value;
-      }
-    },
-    setEntryLocation: function CFFOffsetTracker_setEntryLocation(key,
-                                                                 values,
-                                                                 output) {
-      if (!(key in this.offsets))
-        error('Not tracking location of ' + key);
-      var data = output.data;
-      var dataOffset = this.offsets[key];
-      var size = 5;
-      for (var i = 0, ii = values.length; i < ii; ++i) {
-        var offset0 = i * size + dataOffset;
-        var offset1 = offset0 + 1;
-        var offset2 = offset0 + 2;
-        var offset3 = offset0 + 3;
-        var offset4 = offset0 + 4;
-        // It's easy to screw up offsets so perform this sanity check.
-        if (data[offset0] !== 0x1d || data[offset1] !== 0 ||
-            data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0)
-          error('writing to an offset that is not empty');
-        var value = values[i];
-        data[offset0] = 0x1d;
-        data[offset1] = (value >> 24) & 0xFF;
-        data[offset2] = (value >> 16) & 0xFF;
-        data[offset3] = (value >> 8) & 0xFF;
-        data[offset4] = value & 0xFF;
-      }
-    }
-  };
-  return CFFOffsetTracker;
-})();
-
-// Takes a CFF and converts it to the binary representation.
-var CFFCompiler = (function CFFCompilerClosure() {
-  function stringToArray(str) {
-    var array = [];
-    for (var i = 0, ii = str.length; i < ii; ++i)
-      array[i] = str.charCodeAt(i);
-
-    return array;
-  };
-  function CFFCompiler(cff) {
-    this.cff = cff;
-  }
-  CFFCompiler.prototype = {
-    compile: function CFFCompiler_compile() {
-      var cff = this.cff;
-      var output = {
-        data: [],
-        length: 0,
-        add: function CFFCompiler_add(data) {
-          this.data = this.data.concat(data);
-          this.length = this.data.length;
-        }
-      };
-
-      // Compile the five entries that must be in order.
-      var header = this.compileHeader(cff.header);
-      output.add(header);
-
-      var nameIndex = this.compileNameIndex(cff.names);
-      output.add(nameIndex);
-
-      var compiled = this.compileTopDicts([cff.topDict], output.length);
-      output.add(compiled.output);
-      var topDictTracker = compiled.trackers[0];
-
-      var stringIndex = this.compileStringIndex(cff.strings.strings);
-      output.add(stringIndex);
-
-      var globalSubrIndex = this.compileIndex(cff.globalSubrIndex);
-      output.add(globalSubrIndex);
-
-      // Now start on the other entries that have no specfic order.
-      if (cff.encoding && cff.topDict.hasName('Encoding')) {
-        if (cff.encoding.predefined) {
-          topDictTracker.setEntryLocation('Encoding', [cff.encoding.format],
-                                          output);
-        } else {
-          var encoding = this.compileEncoding(cff.encoding);
-          topDictTracker.setEntryLocation('Encoding', [output.length], output);
-          output.add(encoding);
-        }
-      }
-
-      if (cff.charset && cff.topDict.hasName('charset')) {
-        if (cff.charset.predefined) {
-          topDictTracker.setEntryLocation('charset', [cff.charset.format],
-                                          output);
-        } else {
-          var charset = this.compileCharset(cff.charset);
-          topDictTracker.setEntryLocation('charset', [output.length], output);
-          output.add(charset);
-        }
-      }
-
-      var charStrings = this.compileCharStrings(cff.charStrings);
-      topDictTracker.setEntryLocation('CharStrings', [output.length], output);
-      output.add(charStrings);
-
-      if (cff.isCIDFont) {
-        // For some reason FDSelect must be in front of FDArray on windows. OSX
-        // and linux don't seem to care.
-        topDictTracker.setEntryLocation('FDSelect', [output.length], output);
-        var fdSelect = this.compileFDSelect(cff.fdSelect.raw);
-        output.add(fdSelect);
-
-        var compiled = this.compileTopDicts(cff.fdArray, output.length);
-        topDictTracker.setEntryLocation('FDArray', [output.length], output);
-        output.add(compiled.output);
-        var fontDictTrackers = compiled.trackers;
-
-        this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);
-      }
-
-      this.compilePrivateDicts([cff.topDict], [topDictTracker], output);
-
-      return output.data;
-    },
-    encodeNumber: function CFFCompiler_encodeNumber(value) {
-      if (parseFloat(value) == parseInt(value) && !isNaN(value)) // isInt
-        return this.encodeInteger(value);
-      else
-        return this.encodeFloat(value);
-    },
-    encodeFloat: function CFFCompiler_encodeFloat(value) {
-      value = value.toString();
-      // Strip off the any leading zeros.
-      if (value.substr(0, 2) === '0.')
-        value = value.substr(1);
-      else if (value.substr(0, 3) === '-0.')
-        value = '-' + value.substr(2);
-      var nibbles = [];
-      for (var i = 0, ii = value.length; i < ii; ++i) {
-        var a = value.charAt(i), b = value.charAt(i + 1);
-        var nibble;
-        if (a === 'e' && b === '-') {
-          nibble = 0xc;
-          ++i;
-        } else if (a === '.') {
-          nibble = 0xa;
-        } else if (a === 'E') {
-          nibble = 0xb;
-        } else if (a === '-') {
-          nibble = 0xe;
-        } else {
-          nibble = a;
-        }
-        nibbles.push(nibble);
-      }
-      nibbles.push(0xf);
-      if (nibbles.length % 2)
-        nibbles.push(0xf);
-      var out = [30];
-      for (var i = 0, ii = nibbles.length; i < ii; i += 2)
-        out.push(nibbles[i] << 4 | nibbles[i + 1]);
-      return out;
-    },
-    encodeInteger: function CFFCompiler_encodeInteger(value) {
-      var code;
-      if (value >= -107 && value <= 107) {
-        code = [value + 139];
-      } else if (value >= 108 && value <= 1131) {
-        value = [value - 108];
-        code = [(value >> 8) + 247, value & 0xFF];
-      } else if (value >= -1131 && value <= -108) {
-        value = -value - 108;
-        code = [(value >> 8) + 251, value & 0xFF];
-      } else if (value >= -32768 && value <= 32767) {
-        code = [0x1c, (value >> 8) & 0xFF, value & 0xFF];
-      } else {
-        code = [0x1d,
-                (value >> 24) & 0xFF,
-                (value >> 16) & 0xFF,
-                (value >> 8) & 0xFF,
-                 value & 0xFF];
-      }
-      return code;
-    },
-    compileHeader: function CFFCompiler_compileHeader(header) {
-      return [
-        header.major,
-        header.minor,
-        header.hdrSize,
-        header.offSize
-      ];
-    },
-    compileNameIndex: function CFFCompiler_compileNameIndex(names) {
-      var nameIndex = new CFFIndex();
-      for (var i = 0, ii = names.length; i < ii; ++i)
-        nameIndex.add(stringToArray(names[i]));
-      return this.compileIndex(nameIndex);
-    },
-    compileTopDicts: function CFFCompiler_compileTopDicts(dicts, length) {
-      var fontDictTrackers = [];
-      var fdArrayIndex = new CFFIndex();
-      for (var i = 0, ii = dicts.length; i < ii; ++i) {
-        var fontDict = dicts[i];
-        var fontDictTracker = new CFFOffsetTracker();
-        var fontDictData = this.compileDict(fontDict, fontDictTracker);
-        fontDictTrackers.push(fontDictTracker);
-        fdArrayIndex.add(fontDictData);
-        fontDictTracker.offset(length);
-      }
-      fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);
-      return {
-        trackers: fontDictTrackers,
-        output: fdArrayIndex
-      };
-    },
-    compilePrivateDicts: function CFFCompiler_compilePrivateDicts(dicts,
-                                                                  trackers,
-                                                                  output) {
-      for (var i = 0, ii = dicts.length; i < ii; ++i) {
-        var fontDict = dicts[i];
-        if (!fontDict.privateDict || !fontDict.hasName('Private'))
-          continue;
-        var privateDict = fontDict.privateDict;
-        var privateDictTracker = new CFFOffsetTracker();
-        var privateDictData = this.compileDict(privateDict, privateDictTracker);
-
-        privateDictTracker.offset(output.length);
-        trackers[i].setEntryLocation('Private',
-                                     [privateDictData.length, output.length],
-                                     output);
-        output.add(privateDictData);
-
-        if (privateDict.subrsIndex && privateDict.hasName('Subrs')) {
-          var subrs = this.compileIndex(privateDict.subrsIndex);
-          privateDictTracker.setEntryLocation('Subrs', [privateDictData.length],
-                                              output);
-          output.add(subrs);
-        }
-      }
-    },
-    compileDict: function CFFCompiler_compileDict(dict, offsetTracker) {
-      var out = [];
-      // The dictionary keys must be in a certain order.
-      var order = dict.order;
-      for (var i = 0; i < order.length; ++i) {
-        var key = order[i];
-        if (!(key in dict.values))
-          continue;
-        var values = dict.values[key];
-        var types = dict.types[key];
-        if (!isArray(types)) types = [types];
-        if (!isArray(values)) values = [values];
-
-        // Remove any empty dict values.
-        if (values.length === 0)
-          continue;
-
-        for (var j = 0, jj = types.length; j < jj; ++j) {
-          var type = types[j];
-          var value = values[j];
-          switch (type) {
-            case 'num':
-            case 'sid':
-              out = out.concat(this.encodeNumber(value));
-              break;
-            case 'offset':
-              // For offsets we just insert a 32bit integer so we don't have to
-              // deal with figuring out the length of the offset when it gets
-              // replaced later on by the compiler.
-              var name = dict.keyToNameMap[key];
-              // Some offsets have the offset and the length, so just record the
-              // position of the first one.
-              if (!offsetTracker.isTracking(name))
-                offsetTracker.track(name, out.length);
-              out = out.concat([0x1d, 0, 0, 0, 0]);
-              break;
-            case 'array':
-            case 'delta':
-              out = out.concat(this.encodeNumber(value));
-              for (var k = 1, kk = values.length; k < kk; ++k)
-                out = out.concat(this.encodeNumber(values[k]));
-              break;
-            default:
-              error('Unknown data type of ' + type);
-              break;
-          }
-        }
-        out = out.concat(dict.opcodes[key]);
-      }
-      return out;
-    },
-    compileStringIndex: function CFFCompiler_compileStringIndex(strings) {
-      var stringIndex = new CFFIndex();
-      for (var i = 0, ii = strings.length; i < ii; ++i)
-        stringIndex.add(stringToArray(strings[i]));
-      return this.compileIndex(stringIndex);
-    },
-    compileGlobalSubrIndex: function CFFCompiler_compileGlobalSubrIndex() {
-      var globalSubrIndex = this.cff.globalSubrIndex;
-      this.out.writeByteArray(this.compileIndex(globalSubrIndex));
-    },
-    compileCharStrings: function CFFCompiler_compileCharStrings(charStrings) {
-      return this.compileIndex(charStrings);
-    },
-    compileCharset: function CFFCompiler_compileCharset(charset) {
-      return this.compileTypedArray(charset.raw);
-    },
-    compileEncoding: function CFFCompiler_compileEncoding(encoding) {
-      return this.compileTypedArray(encoding.raw);
-    },
-    compileFDSelect: function CFFCompiler_compileFDSelect(fdSelect) {
-      return this.compileTypedArray(fdSelect);
-    },
-    compileTypedArray: function CFFCompiler_compileTypedArray(data) {
-      var out = [];
-      for (var i = 0, ii = data.length; i < ii; ++i)
-        out[i] = data[i];
-      return out;
-    },
-    compileIndex: function CFFCompiler_compileIndex(index, trackers) {
-      trackers = trackers || [];
-      var objects = index.objects;
-      // First 2 bytes contains the number of objects contained into this index
-      var count = objects.length;
-
-      // If there is no object, just create an index. This technically
-      // should just be [0, 0] but OTS has an issue with that.
-      if (count == 0)
-        return [0, 0, 0];
-
-      var data = [(count >> 8) & 0xFF, count & 0xff];
-
-      var lastOffset = 1;
-      for (var i = 0; i < count; ++i)
-        lastOffset += objects[i].length;
-
-      var offsetSize;
-      if (lastOffset < 0x100)
-        offsetSize = 1;
-      else if (lastOffset < 0x10000)
-        offsetSize = 2;
-      else if (lastOffset < 0x1000000)
-        offsetSize = 3;
-      else
-        offsetSize = 4;
-
-      // Next byte contains the offset size use to reference object in the file
-      data.push(offsetSize);
-
-      // Add another offset after this one because we need a new offset
-      var relativeOffset = 1;
-      for (var i = 0; i < count + 1; i++) {
-        if (offsetSize === 1) {
-          data.push(relativeOffset & 0xFF);
-        } else if (offsetSize === 2) {
-          data.push((relativeOffset >> 8) & 0xFF,
-                     relativeOffset & 0xFF);
-        } else if (offsetSize === 3) {
-          data.push((relativeOffset >> 16) & 0xFF,
-                    (relativeOffset >> 8) & 0xFF,
-                     relativeOffset & 0xFF);
-        } else {
-          data.push((relativeOffset >>> 24) & 0xFF,
-                    (relativeOffset >> 16) & 0xFF,
-                    (relativeOffset >> 8) & 0xFF,
-                     relativeOffset & 0xFF);
-        }
-
-        if (objects[i])
-          relativeOffset += objects[i].length;
-      }
-      var offset = data.length;
-
-      for (var i = 0; i < count; i++) {
-        // Notify the tracker where the object will be offset in the data.
-        if (trackers[i])
-          trackers[i].offset(data.length);
-        for (var j = 0, jj = objects[i].length; j < jj; j++)
-          data.push(objects[i][j]);
-      }
-      return data;
-    }
-  };
-  return CFFCompiler;
-})();
-
-
-/* -*- 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 GlyphsUnicode = {
-  A: 0x0041,
-  AE: 0x00C6,
-  AEacute: 0x01FC,
-  AEmacron: 0x01E2,
-  AEsmall: 0xF7E6,
-  Aacute: 0x00C1,
-  Aacutesmall: 0xF7E1,
-  Abreve: 0x0102,
-  Abreveacute: 0x1EAE,
-  Abrevecyrillic: 0x04D0,
-  Abrevedotbelow: 0x1EB6,
-  Abrevegrave: 0x1EB0,
-  Abrevehookabove: 0x1EB2,
-  Abrevetilde: 0x1EB4,
-  Acaron: 0x01CD,
-  Acircle: 0x24B6,
-  Acircumflex: 0x00C2,
-  Acircumflexacute: 0x1EA4,
-  Acircumflexdotbelow: 0x1EAC,
-  Acircumflexgrave: 0x1EA6,
-  Acircumflexhookabove: 0x1EA8,
-  Acircumflexsmall: 0xF7E2,
-  Acircumflextilde: 0x1EAA,
-  Acute: 0xF6C9,
-  Acutesmall: 0xF7B4,
-  Acyrillic: 0x0410,
-  Adblgrave: 0x0200,
-  Adieresis: 0x00C4,
-  Adieresiscyrillic: 0x04D2,
-  Adieresismacron: 0x01DE,
-  Adieresissmall: 0xF7E4,
-  Adotbelow: 0x1EA0,
-  Adotmacron: 0x01E0,
-  Agrave: 0x00C0,
-  Agravesmall: 0xF7E0,
-  Ahookabove: 0x1EA2,
-  Aiecyrillic: 0x04D4,
-  Ainvertedbreve: 0x0202,
-  Alpha: 0x0391,
-  Alphatonos: 0x0386,
-  Amacron: 0x0100,
-  Amonospace: 0xFF21,
-  Aogonek: 0x0104,
-  Aring: 0x00C5,
-  Aringacute: 0x01FA,
-  Aringbelow: 0x1E00,
-  Aringsmall: 0xF7E5,
-  Asmall: 0xF761,
-  Atilde: 0x00C3,
-  Atildesmall: 0xF7E3,
-  Aybarmenian: 0x0531,
-  B: 0x0042,
-  Bcircle: 0x24B7,
-  Bdotaccent: 0x1E02,
-  Bdotbelow: 0x1E04,
-  Becyrillic: 0x0411,
-  Benarmenian: 0x0532,
-  Beta: 0x0392,
-  Bhook: 0x0181,
-  Blinebelow: 0x1E06,
-  Bmonospace: 0xFF22,
-  Brevesmall: 0xF6F4,
-  Bsmall: 0xF762,
-  Btopbar: 0x0182,
-  C: 0x0043,
-  Caarmenian: 0x053E,
-  Cacute: 0x0106,
-  Caron: 0xF6CA,
-  Caronsmall: 0xF6F5,
-  Ccaron: 0x010C,
-  Ccedilla: 0x00C7,
-  Ccedillaacute: 0x1E08,
-  Ccedillasmall: 0xF7E7,
-  Ccircle: 0x24B8,
-  Ccircumflex: 0x0108,
-  Cdot: 0x010A,
-  Cdotaccent: 0x010A,
-  Cedillasmall: 0xF7B8,
-  Chaarmenian: 0x0549,
-  Cheabkhasiancyrillic: 0x04BC,
-  Checyrillic: 0x0427,
-  Chedescenderabkhasiancyrillic: 0x04BE,
-  Chedescendercyrillic: 0x04B6,
-  Chedieresiscyrillic: 0x04F4,
-  Cheharmenian: 0x0543,
-  Chekhakassiancyrillic: 0x04CB,
-  Cheverticalstrokecyrillic: 0x04B8,
-  Chi: 0x03A7,
-  Chook: 0x0187,
-  Circumflexsmall: 0xF6F6,
-  Cmonospace: 0xFF23,
-  Coarmenian: 0x0551,
-  Csmall: 0xF763,
-  D: 0x0044,
-  DZ: 0x01F1,
-  DZcaron: 0x01C4,
-  Daarmenian: 0x0534,
-  Dafrican: 0x0189,
-  Dcaron: 0x010E,
-  Dcedilla: 0x1E10,
-  Dcircle: 0x24B9,
-  Dcircumflexbelow: 0x1E12,
-  Dcroat: 0x0110,
-  Ddotaccent: 0x1E0A,
-  Ddotbelow: 0x1E0C,
-  Decyrillic: 0x0414,
-  Deicoptic: 0x03EE,
-  Delta: 0x2206,
-  Deltagreek: 0x0394,
-  Dhook: 0x018A,
-  Dieresis: 0xF6CB,
-  DieresisAcute: 0xF6CC,
-  DieresisGrave: 0xF6CD,
-  Dieresissmall: 0xF7A8,
-  Digammagreek: 0x03DC,
-  Djecyrillic: 0x0402,
-  Dlinebelow: 0x1E0E,
-  Dmonospace: 0xFF24,
-  Dotaccentsmall: 0xF6F7,
-  Dslash: 0x0110,
-  Dsmall: 0xF764,
-  Dtopbar: 0x018B,
-  Dz: 0x01F2,
-  Dzcaron: 0x01C5,
-  Dzeabkhasiancyrillic: 0x04E0,
-  Dzecyrillic: 0x0405,
-  Dzhecyrillic: 0x040F,
-  E: 0x0045,
-  Eacute: 0x00C9,
-  Eacutesmall: 0xF7E9,
-  Ebreve: 0x0114,
-  Ecaron: 0x011A,
-  Ecedillabreve: 0x1E1C,
-  Echarmenian: 0x0535,
-  Ecircle: 0x24BA,
-  Ecircumflex: 0x00CA,
-  Ecircumflexacute: 0x1EBE,
-  Ecircumflexbelow: 0x1E18,
-  Ecircumflexdotbelow: 0x1EC6,
-  Ecircumflexgrave: 0x1EC0,
-  Ecircumflexhookabove: 0x1EC2,
-  Ecircumflexsmall: 0xF7EA,
-  Ecircumflextilde: 0x1EC4,
-  Ecyrillic: 0x0404,
-  Edblgrave: 0x0204,
-  Edieresis: 0x00CB,
-  Edieresissmall: 0xF7EB,
-  Edot: 0x0116,
-  Edotaccent: 0x0116,
-  Edotbelow: 0x1EB8,
-  Efcyrillic: 0x0424,
-  Egrave: 0x00C8,
-  Egravesmall: 0xF7E8,
-  Eharmenian: 0x0537,
-  Ehookabove: 0x1EBA,
-  Eightroman: 0x2167,
-  Einvertedbreve: 0x0206,
-  Eiotifiedcyrillic: 0x0464,
-  Elcyrillic: 0x041B,
-  Elevenroman: 0x216A,
-  Emacron: 0x0112,
-  Emacronacute: 0x1E16,
-  Emacrongrave: 0x1E14,
-  Emcyrillic: 0x041C,
-  Emonospace: 0xFF25,
-  Encyrillic: 0x041D,
-  Endescendercyrillic: 0x04A2,
-  Eng: 0x014A,
-  Enghecyrillic: 0x04A4,
-  Enhookcyrillic: 0x04C7,
-  Eogonek: 0x0118,
-  Eopen: 0x0190,
-  Epsilon: 0x0395,
-  Epsilontonos: 0x0388,
-  Ercyrillic: 0x0420,
-  Ereversed: 0x018E,
-  Ereversedcyrillic: 0x042D,
-  Escyrillic: 0x0421,
-  Esdescendercyrillic: 0x04AA,
-  Esh: 0x01A9,
-  Esmall: 0xF765,
-  Eta: 0x0397,
-  Etarmenian: 0x0538,
-  Etatonos: 0x0389,
-  Eth: 0x00D0,
-  Ethsmall: 0xF7F0,
-  Etilde: 0x1EBC,
-  Etildebelow: 0x1E1A,
-  Euro: 0x20AC,
-  Ezh: 0x01B7,
-  Ezhcaron: 0x01EE,
-  Ezhreversed: 0x01B8,
-  F: 0x0046,
-  Fcircle: 0x24BB,
-  Fdotaccent: 0x1E1E,
-  Feharmenian: 0x0556,
-  Feicoptic: 0x03E4,
-  Fhook: 0x0191,
-  Fitacyrillic: 0x0472,
-  Fiveroman: 0x2164,
-  Fmonospace: 0xFF26,
-  Fourroman: 0x2163,
-  Fsmall: 0xF766,
-  G: 0x0047,
-  GBsquare: 0x3387,
-  Gacute: 0x01F4,
-  Gamma: 0x0393,
-  Gammaafrican: 0x0194,
-  Gangiacoptic: 0x03EA,
-  Gbreve: 0x011E,
-  Gcaron: 0x01E6,
-  Gcedilla: 0x0122,
-  Gcircle: 0x24BC,
-  Gcircumflex: 0x011C,
-  Gcommaaccent: 0x0122,
-  Gdot: 0x0120,
-  Gdotaccent: 0x0120,
-  Gecyrillic: 0x0413,
-  Ghadarmenian: 0x0542,
-  Ghemiddlehookcyrillic: 0x0494,
-  Ghestrokecyrillic: 0x0492,
-  Gheupturncyrillic: 0x0490,
-  Ghook: 0x0193,
-  Gimarmenian: 0x0533,
-  Gjecyrillic: 0x0403,
-  Gmacron: 0x1E20,
-  Gmonospace: 0xFF27,
-  Grave: 0xF6CE,
-  Gravesmall: 0xF760,
-  Gsmall: 0xF767,
-  Gsmallhook: 0x029B,
-  Gstroke: 0x01E4,
-  H: 0x0048,
-  H18533: 0x25CF,
-  H18543: 0x25AA,
-  H18551: 0x25AB,
-  H22073: 0x25A1,
-  HPsquare: 0x33CB,
-  Haabkhasiancyrillic: 0x04A8,
-  Hadescendercyrillic: 0x04B2,
-  Hardsigncyrillic: 0x042A,
-  Hbar: 0x0126,
-  Hbrevebelow: 0x1E2A,
-  Hcedilla: 0x1E28,
-  Hcircle: 0x24BD,
-  Hcircumflex: 0x0124,
-  Hdieresis: 0x1E26,
-  Hdotaccent: 0x1E22,
-  Hdotbelow: 0x1E24,
-  Hmonospace: 0xFF28,
-  Hoarmenian: 0x0540,
-  Horicoptic: 0x03E8,
-  Hsmall: 0xF768,
-  Hungarumlaut: 0xF6CF,
-  Hungarumlautsmall: 0xF6F8,
-  Hzsquare: 0x3390,
-  I: 0x0049,
-  IAcyrillic: 0x042F,
-  IJ: 0x0132,
-  IUcyrillic: 0x042E,
-  Iacute: 0x00CD,
-  Iacutesmall: 0xF7ED,
-  Ibreve: 0x012C,
-  Icaron: 0x01CF,
-  Icircle: 0x24BE,
-  Icircumflex: 0x00CE,
-  Icircumflexsmall: 0xF7EE,
-  Icyrillic: 0x0406,
-  Idblgrave: 0x0208,
-  Idieresis: 0x00CF,
-  Idieresisacute: 0x1E2E,
-  Idieresiscyrillic: 0x04E4,
-  Idieresissmall: 0xF7EF,
-  Idot: 0x0130,
-  Idotaccent: 0x0130,
-  Idotbelow: 0x1ECA,
-  Iebrevecyrillic: 0x04D6,
-  Iecyrillic: 0x0415,
-  Ifraktur: 0x2111,
-  Igrave: 0x00CC,
-  Igravesmall: 0xF7EC,
-  Ihookabove: 0x1EC8,
-  Iicyrillic: 0x0418,
-  Iinvertedbreve: 0x020A,
-  Iishortcyrillic: 0x0419,
-  Imacron: 0x012A,
-  Imacroncyrillic: 0x04E2,
-  Imonospace: 0xFF29,
-  Iniarmenian: 0x053B,
-  Iocyrillic: 0x0401,
-  Iogonek: 0x012E,
-  Iota: 0x0399,
-  Iotaafrican: 0x0196,
-  Iotadieresis: 0x03AA,
-  Iotatonos: 0x038A,
-  Ismall: 0xF769,
-  Istroke: 0x0197,
-  Itilde: 0x0128,
-  Itildebelow: 0x1E2C,
-  Izhitsacyrillic: 0x0474,
-  Izhitsadblgravecyrillic: 0x0476,
-  J: 0x004A,
-  Jaarmenian: 0x0541,
-  Jcircle: 0x24BF,
-  Jcircumflex: 0x0134,
-  Jecyrillic: 0x0408,
-  Jheharmenian: 0x054B,
-  Jmonospace: 0xFF2A,
-  Jsmall: 0xF76A,
-  K: 0x004B,
-  KBsquare: 0x3385,
-  KKsquare: 0x33CD,
-  Kabashkircyrillic: 0x04A0,
-  Kacute: 0x1E30,
-  Kacyrillic: 0x041A,
-  Kadescendercyrillic: 0x049A,
-  Kahookcyrillic: 0x04C3,
-  Kappa: 0x039A,
-  Kastrokecyrillic: 0x049E,
-  Kaverticalstrokecyrillic: 0x049C,
-  Kcaron: 0x01E8,
-  Kcedilla: 0x0136,
-  Kcircle: 0x24C0,
-  Kcommaaccent: 0x0136,
-  Kdotbelow: 0x1E32,
-  Keharmenian: 0x0554,
-  Kenarmenian: 0x053F,
-  Khacyrillic: 0x0425,
-  Kheicoptic: 0x03E6,
-  Khook: 0x0198,
-  Kjecyrillic: 0x040C,
-  Klinebelow: 0x1E34,
-  Kmonospace: 0xFF2B,
-  Koppacyrillic: 0x0480,
-  Koppagreek: 0x03DE,
-  Ksicyrillic: 0x046E,
-  Ksmall: 0xF76B,
-  L: 0x004C,
-  LJ: 0x01C7,
-  LL: 0xF6BF,
-  Lacute: 0x0139,
-  Lambda: 0x039B,
-  Lcaron: 0x013D,
-  Lcedilla: 0x013B,
-  Lcircle: 0x24C1,
-  Lcircumflexbelow: 0x1E3C,
-  Lcommaaccent: 0x013B,
-  Ldot: 0x013F,
-  Ldotaccent: 0x013F,
-  Ldotbelow: 0x1E36,
-  Ldotbelowmacron: 0x1E38,
-  Liwnarmenian: 0x053C,
-  Lj: 0x01C8,
-  Ljecyrillic: 0x0409,
-  Llinebelow: 0x1E3A,
-  Lmonospace: 0xFF2C,
-  Lslash: 0x0141,
-  Lslashsmall: 0xF6F9,
-  Lsmall: 0xF76C,
-  M: 0x004D,
-  MBsquare: 0x3386,
-  Macron: 0xF6D0,
-  Macronsmall: 0xF7AF,
-  Macute: 0x1E3E,
-  Mcircle: 0x24C2,
-  Mdotaccent: 0x1E40,
-  Mdotbelow: 0x1E42,
-  Menarmenian: 0x0544,
-  Mmonospace: 0xFF2D,
-  Msmall: 0xF76D,
-  Mturned: 0x019C,
-  Mu: 0x039C,
-  N: 0x004E,
-  NJ: 0x01CA,
-  Nacute: 0x0143,
-  Ncaron: 0x0147,
-  Ncedilla: 0x0145,
-  Ncircle: 0x24C3,
-  Ncircumflexbelow: 0x1E4A,
-  Ncommaaccent: 0x0145,
-  Ndotaccent: 0x1E44,
-  Ndotbelow: 0x1E46,
-  Nhookleft: 0x019D,
-  Nineroman: 0x2168,
-  Nj: 0x01CB,
-  Njecyrillic: 0x040A,
-  Nlinebelow: 0x1E48,
-  Nmonospace: 0xFF2E,
-  Nowarmenian: 0x0546,
-  Nsmall: 0xF76E,
-  Ntilde: 0x00D1,
-  Ntildesmall: 0xF7F1,
-  Nu: 0x039D,
-  O: 0x004F,
-  OE: 0x0152,
-  OEsmall: 0xF6FA,
-  Oacute: 0x00D3,
-  Oacutesmall: 0xF7F3,
-  Obarredcyrillic: 0x04E8,
-  Obarreddieresiscyrillic: 0x04EA,
-  Obreve: 0x014E,
-  Ocaron: 0x01D1,
-  Ocenteredtilde: 0x019F,
-  Ocircle: 0x24C4,
-  Ocircumflex: 0x00D4,
-  Ocircumflexacute: 0x1ED0,
-  Ocircumflexdotbelow: 0x1ED8,
-  Ocircumflexgrave: 0x1ED2,
-  Ocircumflexhookabove: 0x1ED4,
-  Ocircumflexsmall: 0xF7F4,
-  Ocircumflextilde: 0x1ED6,
-  Ocyrillic: 0x041E,
-  Odblacute: 0x0150,
-  Odblgrave: 0x020C,
-  Odieresis: 0x00D6,
-  Odieresiscyrillic: 0x04E6,
-  Odieresissmall: 0xF7F6,
-  Odotbelow: 0x1ECC,
-  Ogoneksmall: 0xF6FB,
-  Ograve: 0x00D2,
-  Ogravesmall: 0xF7F2,
-  Oharmenian: 0x0555,
-  Ohm: 0x2126,
-  Ohookabove: 0x1ECE,
-  Ohorn: 0x01A0,
-  Ohornacute: 0x1EDA,
-  Ohorndotbelow: 0x1EE2,
-  Ohorngrave: 0x1EDC,
-  Ohornhookabove: 0x1EDE,
-  Ohorntilde: 0x1EE0,
-  Ohungarumlaut: 0x0150,
-  Oi: 0x01A2,
-  Oinvertedbreve: 0x020E,
-  Omacron: 0x014C,
-  Omacronacute: 0x1E52,
-  Omacrongrave: 0x1E50,
-  Omega: 0x2126,
-  Omegacyrillic: 0x0460,
-  Omegagreek: 0x03A9,
-  Omegaroundcyrillic: 0x047A,
-  Omegatitlocyrillic: 0x047C,
-  Omegatonos: 0x038F,
-  Omicron: 0x039F,
-  Omicrontonos: 0x038C,
-  Omonospace: 0xFF2F,
-  Oneroman: 0x2160,
-  Oogonek: 0x01EA,
-  Oogonekmacron: 0x01EC,
-  Oopen: 0x0186,
-  Oslash: 0x00D8,
-  Oslashacute: 0x01FE,
-  Oslashsmall: 0xF7F8,
-  Osmall: 0xF76F,
-  Ostrokeacute: 0x01FE,
-  Otcyrillic: 0x047E,
-  Otilde: 0x00D5,
-  Otildeacute: 0x1E4C,
-  Otildedieresis: 0x1E4E,
-  Otildesmall: 0xF7F5,
-  P: 0x0050,
-  Pacute: 0x1E54,
-  Pcircle: 0x24C5,
-  Pdotaccent: 0x1E56,
-  Pecyrillic: 0x041F,
-  Peharmenian: 0x054A,
-  Pemiddlehookcyrillic: 0x04A6,
-  Phi: 0x03A6,
-  Phook: 0x01A4,
-  Pi: 0x03A0,
-  Piwrarmenian: 0x0553,
-  Pmonospace: 0xFF30,
-  Psi: 0x03A8,
-  Psicyrillic: 0x0470,
-  Psmall: 0xF770,
-  Q: 0x0051,
-  Qcircle: 0x24C6,
-  Qmonospace: 0xFF31,
-  Qsmall: 0xF771,
-  R: 0x0052,
-  Raarmenian: 0x054C,
-  Racute: 0x0154,
-  Rcaron: 0x0158,
-  Rcedilla: 0x0156,
-  Rcircle: 0x24C7,
-  Rcommaaccent: 0x0156,
-  Rdblgrave: 0x0210,
-  Rdotaccent: 0x1E58,
-  Rdotbelow: 0x1E5A,
-  Rdotbelowmacron: 0x1E5C,
-  Reharmenian: 0x0550,
-  Rfraktur: 0x211C,
-  Rho: 0x03A1,
-  Ringsmall: 0xF6FC,
-  Rinvertedbreve: 0x0212,
-  Rlinebelow: 0x1E5E,
-  Rmonospace: 0xFF32,
-  Rsmall: 0xF772,
-  Rsmallinverted: 0x0281,
-  Rsmallinvertedsuperior: 0x02B6,
-  S: 0x0053,
-  SF010000: 0x250C,
-  SF020000: 0x2514,
-  SF030000: 0x2510,
-  SF040000: 0x2518,
-  SF050000: 0x253C,
-  SF060000: 0x252C,
-  SF070000: 0x2534,
-  SF080000: 0x251C,
-  SF090000: 0x2524,
-  SF100000: 0x2500,
-  SF110000: 0x2502,
-  SF190000: 0x2561,
-  SF200000: 0x2562,
-  SF210000: 0x2556,
-  SF220000: 0x2555,
-  SF230000: 0x2563,
-  SF240000: 0x2551,
-  SF250000: 0x2557,
-  SF260000: 0x255D,
-  SF270000: 0x255C,
-  SF280000: 0x255B,
-  SF360000: 0x255E,
-  SF370000: 0x255F,
-  SF380000: 0x255A,
-  SF390000: 0x2554,
-  SF400000: 0x2569,
-  SF410000: 0x2566,
-  SF420000: 0x2560,
-  SF430000: 0x2550,
-  SF440000: 0x256C,
-  SF450000: 0x2567,
-  SF460000: 0x2568,
-  SF470000: 0x2564,
-  SF480000: 0x2565,
-  SF490000: 0x2559,
-  SF500000: 0x2558,
-  SF510000: 0x2552,
-  SF520000: 0x2553,
-  SF530000: 0x256B,
-  SF540000: 0x256A,
-  Sacute: 0x015A,
-  Sacutedotaccent: 0x1E64,
-  Sampigreek: 0x03E0,
-  Scaron: 0x0160,
-  Scarondotaccent: 0x1E66,
-  Scaronsmall: 0xF6FD,
-  Scedilla: 0x015E,
-  Schwa: 0x018F,
-  Schwacyrillic: 0x04D8,
-  Schwadieresiscyrillic: 0x04DA,
-  Scircle: 0x24C8,
-  Scircumflex: 0x015C,
-  Scommaaccent: 0x0218,
-  Sdotaccent: 0x1E60,
-  Sdotbelow: 0x1E62,
-  Sdotbelowdotaccent: 0x1E68,
-  Seharmenian: 0x054D,
-  Sevenroman: 0x2166,
-  Shaarmenian: 0x0547,
-  Shacyrillic: 0x0428,
-  Shchacyrillic: 0x0429,
-  Sheicoptic: 0x03E2,
-  Shhacyrillic: 0x04BA,
-  Shimacoptic: 0x03EC,
-  Sigma: 0x03A3,
-  Sixroman: 0x2165,
-  Smonospace: 0xFF33,
-  Softsigncyrillic: 0x042C,
-  Ssmall: 0xF773,
-  Stigmagreek: 0x03DA,
-  T: 0x0054,
-  Tau: 0x03A4,
-  Tbar: 0x0166,
-  Tcaron: 0x0164,
-  Tcedilla: 0x0162,
-  Tcircle: 0x24C9,
-  Tcircumflexbelow: 0x1E70,
-  Tcommaaccent: 0x0162,
-  Tdotaccent: 0x1E6A,
-  Tdotbelow: 0x1E6C,
-  Tecyrillic: 0x0422,
-  Tedescendercyrillic: 0x04AC,
-  Tenroman: 0x2169,
-  Tetsecyrillic: 0x04B4,
-  Theta: 0x0398,
-  Thook: 0x01AC,
-  Thorn: 0x00DE,
-  Thornsmall: 0xF7FE,
-  Threeroman: 0x2162,
-  Tildesmall: 0xF6FE,
-  Tiwnarmenian: 0x054F,
-  Tlinebelow: 0x1E6E,
-  Tmonospace: 0xFF34,
-  Toarmenian: 0x0539,
-  Tonefive: 0x01BC,
-  Tonesix: 0x0184,
-  Tonetwo: 0x01A7,
-  Tretroflexhook: 0x01AE,
-  Tsecyrillic: 0x0426,
-  Tshecyrillic: 0x040B,
-  Tsmall: 0xF774,
-  Twelveroman: 0x216B,
-  Tworoman: 0x2161,
-  U: 0x0055,
-  Uacute: 0x00DA,
-  Uacutesmall: 0xF7FA,
-  Ubreve: 0x016C,
-  Ucaron: 0x01D3,
-  Ucircle: 0x24CA,
-  Ucircumflex: 0x00DB,
-  Ucircumflexbelow: 0x1E76,
-  Ucircumflexsmall: 0xF7FB,
-  Ucyrillic: 0x0423,
-  Udblacute: 0x0170,
-  Udblgrave: 0x0214,
-  Udieresis: 0x00DC,
-  Udieresisacute: 0x01D7,
-  Udieresisbelow: 0x1E72,
-  Udieresiscaron: 0x01D9,
-  Udieresiscyrillic: 0x04F0,
-  Udieresisgrave: 0x01DB,
-  Udieresismacron: 0x01D5,
-  Udieresissmall: 0xF7FC,
-  Udotbelow: 0x1EE4,
-  Ugrave: 0x00D9,
-  Ugravesmall: 0xF7F9,
-  Uhookabove: 0x1EE6,
-  Uhorn: 0x01AF,
-  Uhornacute: 0x1EE8,
-  Uhorndotbelow: 0x1EF0,
-  Uhorngrave: 0x1EEA,
-  Uhornhookabove: 0x1EEC,
-  Uhorntilde: 0x1EEE,
-  Uhungarumlaut: 0x0170,
-  Uhungarumlautcyrillic: 0x04F2,
-  Uinvertedbreve: 0x0216,
-  Ukcyrillic: 0x0478,
-  Umacron: 0x016A,
-  Umacroncyrillic: 0x04EE,
-  Umacrondieresis: 0x1E7A,
-  Umonospace: 0xFF35,
-  Uogonek: 0x0172,
-  Upsilon: 0x03A5,
-  Upsilon1: 0x03D2,
-  Upsilonacutehooksymbolgreek: 0x03D3,
-  Upsilonafrican: 0x01B1,
-  Upsilondieresis: 0x03AB,
-  Upsilondieresishooksymbolgreek: 0x03D4,
-  Upsilonhooksymbol: 0x03D2,
-  Upsilontonos: 0x038E,
-  Uring: 0x016E,
-  Ushortcyrillic: 0x040E,
-  Usmall: 0xF775,
-  Ustraightcyrillic: 0x04AE,
-  Ustraightstrokecyrillic: 0x04B0,
-  Utilde: 0x0168,
-  Utildeacute: 0x1E78,
-  Utildebelow: 0x1E74,
-  V: 0x0056,
-  Vcircle: 0x24CB,
-  Vdotbelow: 0x1E7E,
-  Vecyrillic: 0x0412,
-  Vewarmenian: 0x054E,
-  Vhook: 0x01B2,
-  Vmonospace: 0xFF36,
-  Voarmenian: 0x0548,
-  Vsmall: 0xF776,
-  Vtilde: 0x1E7C,
-  W: 0x0057,
-  Wacute: 0x1E82,
-  Wcircle: 0x24CC,
-  Wcircumflex: 0x0174,
-  Wdieresis: 0x1E84,
-  Wdotaccent: 0x1E86,
-  Wdotbelow: 0x1E88,
-  Wgrave: 0x1E80,
-  Wmonospace: 0xFF37,
-  Wsmall: 0xF777,
-  X: 0x0058,
-  Xcircle: 0x24CD,
-  Xdieresis: 0x1E8C,
-  Xdotaccent: 0x1E8A,
-  Xeharmenian: 0x053D,
-  Xi: 0x039E,
-  Xmonospace: 0xFF38,
-  Xsmall: 0xF778,
-  Y: 0x0059,
-  Yacute: 0x00DD,
-  Yacutesmall: 0xF7FD,
-  Yatcyrillic: 0x0462,
-  Ycircle: 0x24CE,
-  Ycircumflex: 0x0176,
-  Ydieresis: 0x0178,
-  Ydieresissmall: 0xF7FF,
-  Ydotaccent: 0x1E8E,
-  Ydotbelow: 0x1EF4,
-  Yericyrillic: 0x042B,
-  Yerudieresiscyrillic: 0x04F8,
-  Ygrave: 0x1EF2,
-  Yhook: 0x01B3,
-  Yhookabove: 0x1EF6,
-  Yiarmenian: 0x0545,
-  Yicyrillic: 0x0407,
-  Yiwnarmenian: 0x0552,
-  Ymonospace: 0xFF39,
-  Ysmall: 0xF779,
-  Ytilde: 0x1EF8,
-  Yusbigcyrillic: 0x046A,
-  Yusbigiotifiedcyrillic: 0x046C,
-  Yuslittlecyrillic: 0x0466,
-  Yuslittleiotifiedcyrillic: 0x0468,
-  Z: 0x005A,
-  Zaarmenian: 0x0536,
-  Zacute: 0x0179,
-  Zcaron: 0x017D,
-  Zcaronsmall: 0xF6FF,
-  Zcircle: 0x24CF,
-  Zcircumflex: 0x1E90,
-  Zdot: 0x017B,
-  Zdotaccent: 0x017B,
-  Zdotbelow: 0x1E92,
-  Zecyrillic: 0x0417,
-  Zedescendercyrillic: 0x0498,
-  Zedieresiscyrillic: 0x04DE,
-  Zeta: 0x0396,
-  Zhearmenian: 0x053A,
-  Zhebrevecyrillic: 0x04C1,
-  Zhecyrillic: 0x0416,
-  Zhedescendercyrillic: 0x0496,
-  Zhedieresiscyrillic: 0x04DC,
-  Zlinebelow: 0x1E94,
-  Zmonospace: 0xFF3A,
-  Zsmall: 0xF77A,
-  Zstroke: 0x01B5,
-  a: 0x0061,
-  aabengali: 0x0986,
-  aacute: 0x00E1,
-  aadeva: 0x0906,
-  aagujarati: 0x0A86,
-  aagurmukhi: 0x0A06,
-  aamatragurmukhi: 0x0A3E,
-  aarusquare: 0x3303,
-  aavowelsignbengali: 0x09BE,
-  aavowelsigndeva: 0x093E,
-  aavowelsigngujarati: 0x0ABE,
-  abbreviationmarkarmenian: 0x055F,
-  abbreviationsigndeva: 0x0970,
-  abengali: 0x0985,
-  abopomofo: 0x311A,
-  abreve: 0x0103,
-  abreveacute: 0x1EAF,
-  abrevecyrillic: 0x04D1,
-  abrevedotbelow: 0x1EB7,
-  abrevegrave: 0x1EB1,
-  abrevehookabove: 0x1EB3,
-  abrevetilde: 0x1EB5,
-  acaron: 0x01CE,
-  acircle: 0x24D0,
-  acircumflex: 0x00E2,
-  acircumflexacute: 0x1EA5,
-  acircumflexdotbelow: 0x1EAD,
-  acircumflexgrave: 0x1EA7,
-  acircumflexhookabove: 0x1EA9,
-  acircumflextilde: 0x1EAB,
-  acute: 0x00B4,
-  acutebelowcmb: 0x0317,
-  acutecmb: 0x0301,
-  acutecomb: 0x0301,
-  acutedeva: 0x0954,
-  acutelowmod: 0x02CF,
-  acutetonecmb: 0x0341,
-  acyrillic: 0x0430,
-  adblgrave: 0x0201,
-  addakgurmukhi: 0x0A71,
-  adeva: 0x0905,
-  adieresis: 0x00E4,
-  adieresiscyrillic: 0x04D3,
-  adieresismacron: 0x01DF,
-  adotbelow: 0x1EA1,
-  adotmacron: 0x01E1,
-  ae: 0x00E6,
-  aeacute: 0x01FD,
-  aekorean: 0x3150,
-  aemacron: 0x01E3,
-  afii00208: 0x2015,
-  afii08941: 0x20A4,
-  afii10017: 0x0410,
-  afii10018: 0x0411,
-  afii10019: 0x0412,
-  afii10020: 0x0413,
-  afii10021: 0x0414,
-  afii10022: 0x0415,
-  afii10023: 0x0401,
-  afii10024: 0x0416,
-  afii10025: 0x0417,
-  afii10026: 0x0418,
-  afii10027: 0x0419,
-  afii10028: 0x041A,
-  afii10029: 0x041B,
-  afii10030: 0x041C,
-  afii10031: 0x041D,
-  afii10032: 0x041E,
-  afii10033: 0x041F,
-  afii10034: 0x0420,
-  afii10035: 0x0421,
-  afii10036: 0x0422,
-  afii10037: 0x0423,
-  afii10038: 0x0424,
-  afii10039: 0x0425,
-  afii10040: 0x0426,
-  afii10041: 0x0427,
-  afii10042: 0x0428,
-  afii10043: 0x0429,
-  afii10044: 0x042A,
-  afii10045: 0x042B,
-  afii10046: 0x042C,
-  afii10047: 0x042D,
-  afii10048: 0x042E,
-  afii10049: 0x042F,
-  afii10050: 0x0490,
-  afii10051: 0x0402,
-  afii10052: 0x0403,
-  afii10053: 0x0404,
-  afii10054: 0x0405,
-  afii10055: 0x0406,
-  afii10056: 0x0407,
-  afii10057: 0x0408,
-  afii10058: 0x0409,
-  afii10059: 0x040A,
-  afii10060: 0x040B,
-  afii10061: 0x040C,
-  afii10062: 0x040E,
-  afii10063: 0xF6C4,
-  afii10064: 0xF6C5,
-  afii10065: 0x0430,
-  afii10066: 0x0431,
-  afii10067: 0x0432,
-  afii10068: 0x0433,
-  afii10069: 0x0434,
-  afii10070: 0x0435,
-  afii10071: 0x0451,
-  afii10072: 0x0436,
-  afii10073: 0x0437,
-  afii10074: 0x0438,
-  afii10075: 0x0439,
-  afii10076: 0x043A,
-  afii10077: 0x043B,
-  afii10078: 0x043C,
-  afii10079: 0x043D,
-  afii10080: 0x043E,
-  afii10081: 0x043F,
-  afii10082: 0x0440,
-  afii10083: 0x0441,
-  afii10084: 0x0442,
-  afii10085: 0x0443,
-  afii10086: 0x0444,
-  afii10087: 0x0445,
-  afii10088: 0x0446,
-  afii10089: 0x0447,
-  afii10090: 0x0448,
-  afii10091: 0x0449,
-  afii10092: 0x044A,
-  afii10093: 0x044B,
-  afii10094: 0x044C,
-  afii10095: 0x044D,
-  afii10096: 0x044E,
-  afii10097: 0x044F,
-  afii10098: 0x0491,
-  afii10099: 0x0452,
-  afii10100: 0x0453,
-  afii10101: 0x0454,
-  afii10102: 0x0455,
-  afii10103: 0x0456,
-  afii10104: 0x0457,
-  afii10105: 0x0458,
-  afii10106: 0x0459,
-  afii10107: 0x045A,
-  afii10108: 0x045B,
-  afii10109: 0x045C,
-  afii10110: 0x045E,
-  afii10145: 0x040F,
-  afii10146: 0x0462,
-  afii10147: 0x0472,
-  afii10148: 0x0474,
-  afii10192: 0xF6C6,
-  afii10193: 0x045F,
-  afii10194: 0x0463,
-  afii10195: 0x0473,
-  afii10196: 0x0475,
-  afii10831: 0xF6C7,
-  afii10832: 0xF6C8,
-  afii10846: 0x04D9,
-  afii299: 0x200E,
-  afii300: 0x200F,
-  afii301: 0x200D,
-  afii57381: 0x066A,
-  afii57388: 0x060C,
-  afii57392: 0x0660,
-  afii57393: 0x0661,
-  afii57394: 0x0662,
-  afii57395: 0x0663,
-  afii57396: 0x0664,
-  afii57397: 0x0665,
-  afii57398: 0x0666,
-  afii57399: 0x0667,
-  afii57400: 0x0668,
-  afii57401: 0x0669,
-  afii57403: 0x061B,
-  afii57407: 0x061F,
-  afii57409: 0x0621,
-  afii57410: 0x0622,
-  afii57411: 0x0623,
-  afii57412: 0x0624,
-  afii57413: 0x0625,
-  afii57414: 0x0626,
-  afii57415: 0x0627,
-  afii57416: 0x0628,
-  afii57417: 0x0629,
-  afii57418: 0x062A,
-  afii57419: 0x062B,
-  afii57420: 0x062C,
-  afii57421: 0x062D,
-  afii57422: 0x062E,
-  afii57423: 0x062F,
-  afii57424: 0x0630,
-  afii57425: 0x0631,
-  afii57426: 0x0632,
-  afii57427: 0x0633,
-  afii57428: 0x0634,
-  afii57429: 0x0635,
-  afii57430: 0x0636,
-  afii57431: 0x0637,
-  afii57432: 0x0638,
-  afii57433: 0x0639,
-  afii57434: 0x063A,
-  afii57440: 0x0640,
-  afii57441: 0x0641,
-  afii57442: 0x0642,
-  afii57443: 0x0643,
-  afii57444: 0x0644,
-  afii57445: 0x0645,
-  afii57446: 0x0646,
-  afii57448: 0x0648,
-  afii57449: 0x0649,
-  afii57450: 0x064A,
-  afii57451: 0x064B,
-  afii57452: 0x064C,
-  afii57453: 0x064D,
-  afii57454: 0x064E,
-  afii57455: 0x064F,
-  afii57456: 0x0650,
-  afii57457: 0x0651,
-  afii57458: 0x0652,
-  afii57470: 0x0647,
-  afii57505: 0x06A4,
-  afii57506: 0x067E,
-  afii57507: 0x0686,
-  afii57508: 0x0698,
-  afii57509: 0x06AF,
-  afii57511: 0x0679,
-  afii57512: 0x0688,
-  afii57513: 0x0691,
-  afii57514: 0x06BA,
-  afii57519: 0x06D2,
-  afii57534: 0x06D5,
-  afii57636: 0x20AA,
-  afii57645: 0x05BE,
-  afii57658: 0x05C3,
-  afii57664: 0x05D0,
-  afii57665: 0x05D1,
-  afii57666: 0x05D2,
-  afii57667: 0x05D3,
-  afii57668: 0x05D4,
-  afii57669: 0x05D5,
-  afii57670: 0x05D6,
-  afii57671: 0x05D7,
-  afii57672: 0x05D8,
-  afii57673: 0x05D9,
-  afii57674: 0x05DA,
-  afii57675: 0x05DB,
-  afii57676: 0x05DC,
-  afii57677: 0x05DD,
-  afii57678: 0x05DE,
-  afii57679: 0x05DF,
-  afii57680: 0x05E0,
-  afii57681: 0x05E1,
-  afii57682: 0x05E2,
-  afii57683: 0x05E3,
-  afii57684: 0x05E4,
-  afii57685: 0x05E5,
-  afii57686: 0x05E6,
-  afii57687: 0x05E7,
-  afii57688: 0x05E8,
-  afii57689: 0x05E9,
-  afii57690: 0x05EA,
-  afii57694: 0xFB2A,
-  afii57695: 0xFB2B,
-  afii57700: 0xFB4B,
-  afii57705: 0xFB1F,
-  afii57716: 0x05F0,
-  afii57717: 0x05F1,
-  afii57718: 0x05F2,
-  afii57723: 0xFB35,
-  afii57793: 0x05B4,
-  afii57794: 0x05B5,
-  afii57795: 0x05B6,
-  afii57796: 0x05BB,
-  afii57797: 0x05B8,
-  afii57798: 0x05B7,
-  afii57799: 0x05B0,
-  afii57800: 0x05B2,
-  afii57801: 0x05B1,
-  afii57802: 0x05B3,
-  afii57803: 0x05C2,
-  afii57804: 0x05C1,
-  afii57806: 0x05B9,
-  afii57807: 0x05BC,
-  afii57839: 0x05BD,
-  afii57841: 0x05BF,
-  afii57842: 0x05C0,
-  afii57929: 0x02BC,
-  afii61248: 0x2105,
-  afii61289: 0x2113,
-  afii61352: 0x2116,
-  afii61573: 0x202C,
-  afii61574: 0x202D,
-  afii61575: 0x202E,
-  afii61664: 0x200C,
-  afii63167: 0x066D,
-  afii64937: 0x02BD,
-  agrave: 0x00E0,
-  agujarati: 0x0A85,
-  agurmukhi: 0x0A05,
-  ahiragana: 0x3042,
-  ahookabove: 0x1EA3,
-  aibengali: 0x0990,
-  aibopomofo: 0x311E,
-  aideva: 0x0910,
-  aiecyrillic: 0x04D5,
-  aigujarati: 0x0A90,
-  aigurmukhi: 0x0A10,
-  aimatragurmukhi: 0x0A48,
-  ainarabic: 0x0639,
-  ainfinalarabic: 0xFECA,
-  aininitialarabic: 0xFECB,
-  ainmedialarabic: 0xFECC,
-  ainvertedbreve: 0x0203,
-  aivowelsignbengali: 0x09C8,
-  aivowelsigndeva: 0x0948,
-  aivowelsigngujarati: 0x0AC8,
-  akatakana: 0x30A2,
-  akatakanahalfwidth: 0xFF71,
-  akorean: 0x314F,
-  alef: 0x05D0,
-  alefarabic: 0x0627,
-  alefdageshhebrew: 0xFB30,
-  aleffinalarabic: 0xFE8E,
-  alefhamzaabovearabic: 0x0623,
-  alefhamzaabovefinalarabic: 0xFE84,
-  alefhamzabelowarabic: 0x0625,
-  alefhamzabelowfinalarabic: 0xFE88,
-  alefhebrew: 0x05D0,
-  aleflamedhebrew: 0xFB4F,
-  alefmaddaabovearabic: 0x0622,
-  alefmaddaabovefinalarabic: 0xFE82,
-  alefmaksuraarabic: 0x0649,
-  alefmaksurafinalarabic: 0xFEF0,
-  alefmaksurainitialarabic: 0xFEF3,
-  alefmaksuramedialarabic: 0xFEF4,
-  alefpatahhebrew: 0xFB2E,
-  alefqamatshebrew: 0xFB2F,
-  aleph: 0x2135,
-  allequal: 0x224C,
-  alpha: 0x03B1,
-  alphatonos: 0x03AC,
-  amacron: 0x0101,
-  amonospace: 0xFF41,
-  ampersand: 0x0026,
-  ampersandmonospace: 0xFF06,
-  ampersandsmall: 0xF726,
-  amsquare: 0x33C2,
-  anbopomofo: 0x3122,
-  angbopomofo: 0x3124,
-  angbracketleft: 0x3008, // This glyph is missing from Adobe's original list.
-  angbracketright: 0x3009, // This glyph is missing from Adobe's original list.
-  angkhankhuthai: 0x0E5A,
-  angle: 0x2220,
-  anglebracketleft: 0x3008,
-  anglebracketleftvertical: 0xFE3F,
-  anglebracketright: 0x3009,
-  anglebracketrightvertical: 0xFE40,
-  angleleft: 0x2329,
-  angleright: 0x232A,
-  angstrom: 0x212B,
-  anoteleia: 0x0387,
-  anudattadeva: 0x0952,
-  anusvarabengali: 0x0982,
-  anusvaradeva: 0x0902,
-  anusvaragujarati: 0x0A82,
-  aogonek: 0x0105,
-  apaatosquare: 0x3300,
-  aparen: 0x249C,
-  apostrophearmenian: 0x055A,
-  apostrophemod: 0x02BC,
-  apple: 0xF8FF,
-  approaches: 0x2250,
-  approxequal: 0x2248,
-  approxequalorimage: 0x2252,
-  approximatelyequal: 0x2245,
-  araeaekorean: 0x318E,
-  araeakorean: 0x318D,
-  arc: 0x2312,
-  arighthalfring: 0x1E9A,
-  aring: 0x00E5,
-  aringacute: 0x01FB,
-  aringbelow: 0x1E01,
-  arrowboth: 0x2194,
-  arrowdashdown: 0x21E3,
-  arrowdashleft: 0x21E0,
-  arrowdashright: 0x21E2,
-  arrowdashup: 0x21E1,
-  arrowdblboth: 0x21D4,
-  arrowdbldown: 0x21D3,
-  arrowdblleft: 0x21D0,
-  arrowdblright: 0x21D2,
-  arrowdblup: 0x21D1,
-  arrowdown: 0x2193,
-  arrowdownleft: 0x2199,
-  arrowdownright: 0x2198,
-  arrowdownwhite: 0x21E9,
-  arrowheaddownmod: 0x02C5,
-  arrowheadleftmod: 0x02C2,
-  arrowheadrightmod: 0x02C3,
-  arrowheadupmod: 0x02C4,
-  arrowhorizex: 0xF8E7,
-  arrowleft: 0x2190,
-  arrowleftdbl: 0x21D0,
-  arrowleftdblstroke: 0x21CD,
-  arrowleftoverright: 0x21C6,
-  arrowleftwhite: 0x21E6,
-  arrowright: 0x2192,
-  arrowrightdblstroke: 0x21CF,
-  arrowrightheavy: 0x279E,
-  arrowrightoverleft: 0x21C4,
-  arrowrightwhite: 0x21E8,
-  arrowtableft: 0x21E4,
-  arrowtabright: 0x21E5,
-  arrowup: 0x2191,
-  arrowupdn: 0x2195,
-  arrowupdnbse: 0x21A8,
-  arrowupdownbase: 0x21A8,
-  arrowupleft: 0x2196,
-  arrowupleftofdown: 0x21C5,
-  arrowupright: 0x2197,
-  arrowupwhite: 0x21E7,
-  arrowvertex: 0xF8E6,
-  asciicircum: 0x005E,
-  asciicircummonospace: 0xFF3E,
-  asciitilde: 0x007E,
-  asciitildemonospace: 0xFF5E,
-  ascript: 0x0251,
-  ascriptturned: 0x0252,
-  asmallhiragana: 0x3041,
-  asmallkatakana: 0x30A1,
-  asmallkatakanahalfwidth: 0xFF67,
-  asterisk: 0x002A,
-  asteriskaltonearabic: 0x066D,
-  asteriskarabic: 0x066D,
-  asteriskmath: 0x2217,
-  asteriskmonospace: 0xFF0A,
-  asterisksmall: 0xFE61,
-  asterism: 0x2042,
-  asuperior: 0xF6E9,
-  asymptoticallyequal: 0x2243,
-  at: 0x0040,
-  atilde: 0x00E3,
-  atmonospace: 0xFF20,
-  atsmall: 0xFE6B,
-  aturned: 0x0250,
-  aubengali: 0x0994,
-  aubopomofo: 0x3120,
-  audeva: 0x0914,
-  augujarati: 0x0A94,
-  augurmukhi: 0x0A14,
-  aulengthmarkbengali: 0x09D7,
-  aumatragurmukhi: 0x0A4C,
-  auvowelsignbengali: 0x09CC,
-  auvowelsigndeva: 0x094C,
-  auvowelsigngujarati: 0x0ACC,
-  avagrahadeva: 0x093D,
-  aybarmenian: 0x0561,
-  ayin: 0x05E2,
-  ayinaltonehebrew: 0xFB20,
-  ayinhebrew: 0x05E2,
-  b: 0x0062,
-  babengali: 0x09AC,
-  backslash: 0x005C,
-  backslashmonospace: 0xFF3C,
-  badeva: 0x092C,
-  bagujarati: 0x0AAC,
-  bagurmukhi: 0x0A2C,
-  bahiragana: 0x3070,
-  bahtthai: 0x0E3F,
-  bakatakana: 0x30D0,
-  bar: 0x007C,
-  barmonospace: 0xFF5C,
-  bbopomofo: 0x3105,
-  bcircle: 0x24D1,
-  bdotaccent: 0x1E03,
-  bdotbelow: 0x1E05,
-  beamedsixteenthnotes: 0x266C,
-  because: 0x2235,
-  becyrillic: 0x0431,
-  beharabic: 0x0628,
-  behfinalarabic: 0xFE90,
-  behinitialarabic: 0xFE91,
-  behiragana: 0x3079,
-  behmedialarabic: 0xFE92,
-  behmeeminitialarabic: 0xFC9F,
-  behmeemisolatedarabic: 0xFC08,
-  behnoonfinalarabic: 0xFC6D,
-  bekatakana: 0x30D9,
-  benarmenian: 0x0562,
-  bet: 0x05D1,
-  beta: 0x03B2,
-  betasymbolgreek: 0x03D0,
-  betdagesh: 0xFB31,
-  betdageshhebrew: 0xFB31,
-  bethebrew: 0x05D1,
-  betrafehebrew: 0xFB4C,
-  bhabengali: 0x09AD,
-  bhadeva: 0x092D,
-  bhagujarati: 0x0AAD,
-  bhagurmukhi: 0x0A2D,
-  bhook: 0x0253,
-  bihiragana: 0x3073,
-  bikatakana: 0x30D3,
-  bilabialclick: 0x0298,
-  bindigurmukhi: 0x0A02,
-  birusquare: 0x3331,
-  blackcircle: 0x25CF,
-  blackdiamond: 0x25C6,
-  blackdownpointingtriangle: 0x25BC,
-  blackleftpointingpointer: 0x25C4,
-  blackleftpointingtriangle: 0x25C0,
-  blacklenticularbracketleft: 0x3010,
-  blacklenticularbracketleftvertical: 0xFE3B,
-  blacklenticularbracketright: 0x3011,
-  blacklenticularbracketrightvertical: 0xFE3C,
-  blacklowerlefttriangle: 0x25E3,
-  blacklowerrighttriangle: 0x25E2,
-  blackrectangle: 0x25AC,
-  blackrightpointingpointer: 0x25BA,
-  blackrightpointingtriangle: 0x25B6,
-  blacksmallsquare: 0x25AA,
-  blacksmilingface: 0x263B,
-  blacksquare: 0x25A0,
-  blackstar: 0x2605,
-  blackupperlefttriangle: 0x25E4,
-  blackupperrighttriangle: 0x25E5,
-  blackuppointingsmalltriangle: 0x25B4,
-  blackuppointingtriangle: 0x25B2,
-  blank: 0x2423,
-  blinebelow: 0x1E07,
-  block: 0x2588,
-  bmonospace: 0xFF42,
-  bobaimaithai: 0x0E1A,
-  bohiragana: 0x307C,
-  bokatakana: 0x30DC,
-  bparen: 0x249D,
-  bqsquare: 0x33C3,
-  braceex: 0xF8F4,
-  braceleft: 0x007B,
-  braceleftbt: 0xF8F3,
-  braceleftmid: 0xF8F2,
-  braceleftmonospace: 0xFF5B,
-  braceleftsmall: 0xFE5B,
-  bracelefttp: 0xF8F1,
-  braceleftvertical: 0xFE37,
-  braceright: 0x007D,
-  bracerightbt: 0xF8FE,
-  bracerightmid: 0xF8FD,
-  bracerightmonospace: 0xFF5D,
-  bracerightsmall: 0xFE5C,
-  bracerighttp: 0xF8FC,
-  bracerightvertical: 0xFE38,
-  bracketleft: 0x005B,
-  bracketleftbt: 0xF8F0,
-  bracketleftex: 0xF8EF,
-  bracketleftmonospace: 0xFF3B,
-  bracketlefttp: 0xF8EE,
-  bracketright: 0x005D,
-  bracketrightbt: 0xF8FB,
-  bracketrightex: 0xF8FA,
-  bracketrightmonospace: 0xFF3D,
-  bracketrighttp: 0xF8F9,
-  breve: 0x02D8,
-  brevebelowcmb: 0x032E,
-  brevecmb: 0x0306,
-  breveinvertedbelowcmb: 0x032F,
-  breveinvertedcmb: 0x0311,
-  breveinverteddoublecmb: 0x0361,
-  bridgebelowcmb: 0x032A,
-  bridgeinvertedbelowcmb: 0x033A,
-  brokenbar: 0x00A6,
-  bstroke: 0x0180,
-  bsuperior: 0xF6EA,
-  btopbar: 0x0183,
-  buhiragana: 0x3076,
-  bukatakana: 0x30D6,
-  bullet: 0x2022,
-  bulletinverse: 0x25D8,
-  bulletoperator: 0x2219,
-  bullseye: 0x25CE,
-  c: 0x0063,
-  caarmenian: 0x056E,
-  cabengali: 0x099A,
-  cacute: 0x0107,
-  cadeva: 0x091A,
-  cagujarati: 0x0A9A,
-  cagurmukhi: 0x0A1A,
-  calsquare: 0x3388,
-  candrabindubengali: 0x0981,
-  candrabinducmb: 0x0310,
-  candrabindudeva: 0x0901,
-  candrabindugujarati: 0x0A81,
-  capslock: 0x21EA,
-  careof: 0x2105,
-  caron: 0x02C7,
-  caronbelowcmb: 0x032C,
-  caroncmb: 0x030C,
-  carriagereturn: 0x21B5,
-  cbopomofo: 0x3118,
-  ccaron: 0x010D,
-  ccedilla: 0x00E7,
-  ccedillaacute: 0x1E09,
-  ccircle: 0x24D2,
-  ccircumflex: 0x0109,
-  ccurl: 0x0255,
-  cdot: 0x010B,
-  cdotaccent: 0x010B,
-  cdsquare: 0x33C5,
-  cedilla: 0x00B8,
-  cedillacmb: 0x0327,
-  cent: 0x00A2,
-  centigrade: 0x2103,
-  centinferior: 0xF6DF,
-  centmonospace: 0xFFE0,
-  centoldstyle: 0xF7A2,
-  centsuperior: 0xF6E0,
-  chaarmenian: 0x0579,
-  chabengali: 0x099B,
-  chadeva: 0x091B,
-  chagujarati: 0x0A9B,
-  chagurmukhi: 0x0A1B,
-  chbopomofo: 0x3114,
-  cheabkhasiancyrillic: 0x04BD,
-  checkmark: 0x2713,
-  checyrillic: 0x0447,
-  chedescenderabkhasiancyrillic: 0x04BF,
-  chedescendercyrillic: 0x04B7,
-  chedieresiscyrillic: 0x04F5,
-  cheharmenian: 0x0573,
-  chekhakassiancyrillic: 0x04CC,
-  cheverticalstrokecyrillic: 0x04B9,
-  chi: 0x03C7,
-  chieuchacirclekorean: 0x3277,
-  chieuchaparenkorean: 0x3217,
-  chieuchcirclekorean: 0x3269,
-  chieuchkorean: 0x314A,
-  chieuchparenkorean: 0x3209,
-  chochangthai: 0x0E0A,
-  chochanthai: 0x0E08,
-  chochingthai: 0x0E09,
-  chochoethai: 0x0E0C,
-  chook: 0x0188,
-  cieucacirclekorean: 0x3276,
-  cieucaparenkorean: 0x3216,
-  cieuccirclekorean: 0x3268,
-  cieuckorean: 0x3148,
-  cieucparenkorean: 0x3208,
-  cieucuparenkorean: 0x321C,
-  circle: 0x25CB,
-  circlecopyrt: 0x00A9, // This glyph is missing from Adobe's original list.
-  circlemultiply: 0x2297,
-  circleot: 0x2299,
-  circleplus: 0x2295,
-  circlepostalmark: 0x3036,
-  circlewithlefthalfblack: 0x25D0,
-  circlewithrighthalfblack: 0x25D1,
-  circumflex: 0x02C6,
-  circumflexbelowcmb: 0x032D,
-  circumflexcmb: 0x0302,
-  clear: 0x2327,
-  clickalveolar: 0x01C2,
-  clickdental: 0x01C0,
-  clicklateral: 0x01C1,
-  clickretroflex: 0x01C3,
-  club: 0x2663,
-  clubsuitblack: 0x2663,
-  clubsuitwhite: 0x2667,
-  cmcubedsquare: 0x33A4,
-  cmonospace: 0xFF43,
-  cmsquaredsquare: 0x33A0,
-  coarmenian: 0x0581,
-  colon: 0x003A,
-  colonmonetary: 0x20A1,
-  colonmonospace: 0xFF1A,
-  colonsign: 0x20A1,
-  colonsmall: 0xFE55,
-  colontriangularhalfmod: 0x02D1,
-  colontriangularmod: 0x02D0,
-  comma: 0x002C,
-  commaabovecmb: 0x0313,
-  commaaboverightcmb: 0x0315,
-  commaaccent: 0xF6C3,
-  commaarabic: 0x060C,
-  commaarmenian: 0x055D,
-  commainferior: 0xF6E1,
-  commamonospace: 0xFF0C,
-  commareversedabovecmb: 0x0314,
-  commareversedmod: 0x02BD,
-  commasmall: 0xFE50,
-  commasuperior: 0xF6E2,
-  commaturnedabovecmb: 0x0312,
-  commaturnedmod: 0x02BB,
-  compass: 0x263C,
-  congruent: 0x2245,
-  contourintegral: 0x222E,
-  control: 0x2303,
-  controlACK: 0x0006,
-  controlBEL: 0x0007,
-  controlBS: 0x0008,
-  controlCAN: 0x0018,
-  controlCR: 0x000D,
-  controlDC1: 0x0011,
-  controlDC2: 0x0012,
-  controlDC3: 0x0013,
-  controlDC4: 0x0014,
-  controlDEL: 0x007F,
-  controlDLE: 0x0010,
-  controlEM: 0x0019,
-  controlENQ: 0x0005,
-  controlEOT: 0x0004,
-  controlESC: 0x001B,
-  controlETB: 0x0017,
-  controlETX: 0x0003,
-  controlFF: 0x000C,
-  controlFS: 0x001C,
-  controlGS: 0x001D,
-  controlHT: 0x0009,
-  controlLF: 0x000A,
-  controlNAK: 0x0015,
-  controlRS: 0x001E,
-  controlSI: 0x000F,
-  controlSO: 0x000E,
-  controlSOT: 0x0002,
-  controlSTX: 0x0001,
-  controlSUB: 0x001A,
-  controlSYN: 0x0016,
-  controlUS: 0x001F,
-  controlVT: 0x000B,
-  copyright: 0x00A9,
-  copyrightsans: 0xF8E9,
-  copyrightserif: 0xF6D9,
-  cornerbracketleft: 0x300C,
-  cornerbracketlefthalfwidth: 0xFF62,
-  cornerbracketleftvertical: 0xFE41,
-  cornerbracketright: 0x300D,
-  cornerbracketrighthalfwidth: 0xFF63,
-  cornerbracketrightvertical: 0xFE42,
-  corporationsquare: 0x337F,
-  cosquare: 0x33C7,
-  coverkgsquare: 0x33C6,
-  cparen: 0x249E,
-  cruzeiro: 0x20A2,
-  cstretched: 0x0297,
-  curlyand: 0x22CF,
-  curlyor: 0x22CE,
-  currency: 0x00A4,
-  cyrBreve: 0xF6D1,
-  cyrFlex: 0xF6D2,
-  cyrbreve: 0xF6D4,
-  cyrflex: 0xF6D5,
-  d: 0x0064,
-  daarmenian: 0x0564,
-  dabengali: 0x09A6,
-  dadarabic: 0x0636,
-  dadeva: 0x0926,
-  dadfinalarabic: 0xFEBE,
-  dadinitialarabic: 0xFEBF,
-  dadmedialarabic: 0xFEC0,
-  dagesh: 0x05BC,
-  dageshhebrew: 0x05BC,
-  dagger: 0x2020,
-  daggerdbl: 0x2021,
-  dagujarati: 0x0AA6,
-  dagurmukhi: 0x0A26,
-  dahiragana: 0x3060,
-  dakatakana: 0x30C0,
-  dalarabic: 0x062F,
-  dalet: 0x05D3,
-  daletdagesh: 0xFB33,
-  daletdageshhebrew: 0xFB33,
-  dalethebrew: 0x05D3,
-  dalfinalarabic: 0xFEAA,
-  dammaarabic: 0x064F,
-  dammalowarabic: 0x064F,
-  dammatanaltonearabic: 0x064C,
-  dammatanarabic: 0x064C,
-  danda: 0x0964,
-  dargahebrew: 0x05A7,
-  dargalefthebrew: 0x05A7,
-  dasiapneumatacyrilliccmb: 0x0485,
-  dblGrave: 0xF6D3,
-  dblanglebracketleft: 0x300A,
-  dblanglebracketleftvertical: 0xFE3D,
-  dblanglebracketright: 0x300B,
-  dblanglebracketrightvertical: 0xFE3E,
-  dblarchinvertedbelowcmb: 0x032B,
-  dblarrowleft: 0x21D4,
-  dblarrowright: 0x21D2,
-  dbldanda: 0x0965,
-  dblgrave: 0xF6D6,
-  dblgravecmb: 0x030F,
-  dblintegral: 0x222C,
-  dbllowline: 0x2017,
-  dbllowlinecmb: 0x0333,
-  dbloverlinecmb: 0x033F,
-  dblprimemod: 0x02BA,
-  dblverticalbar: 0x2016,
-  dblverticallineabovecmb: 0x030E,
-  dbopomofo: 0x3109,
-  dbsquare: 0x33C8,
-  dcaron: 0x010F,
-  dcedilla: 0x1E11,
-  dcircle: 0x24D3,
-  dcircumflexbelow: 0x1E13,
-  dcroat: 0x0111,
-  ddabengali: 0x09A1,
-  ddadeva: 0x0921,
-  ddagujarati: 0x0AA1,
-  ddagurmukhi: 0x0A21,
-  ddalarabic: 0x0688,
-  ddalfinalarabic: 0xFB89,
-  dddhadeva: 0x095C,
-  ddhabengali: 0x09A2,
-  ddhadeva: 0x0922,
-  ddhagujarati: 0x0AA2,
-  ddhagurmukhi: 0x0A22,
-  ddotaccent: 0x1E0B,
-  ddotbelow: 0x1E0D,
-  decimalseparatorarabic: 0x066B,
-  decimalseparatorpersian: 0x066B,
-  decyrillic: 0x0434,
-  degree: 0x00B0,
-  dehihebrew: 0x05AD,
-  dehiragana: 0x3067,
-  deicoptic: 0x03EF,
-  dekatakana: 0x30C7,
-  deleteleft: 0x232B,
-  deleteright: 0x2326,
-  delta: 0x03B4,
-  deltaturned: 0x018D,
-  denominatorminusonenumeratorbengali: 0x09F8,
-  dezh: 0x02A4,
-  dhabengali: 0x09A7,
-  dhadeva: 0x0927,
-  dhagujarati: 0x0AA7,
-  dhagurmukhi: 0x0A27,
-  dhook: 0x0257,
-  dialytikatonos: 0x0385,
-  dialytikatonoscmb: 0x0344,
-  diamond: 0x2666,
-  diamondsuitwhite: 0x2662,
-  dieresis: 0x00A8,
-  dieresisacute: 0xF6D7,
-  dieresisbelowcmb: 0x0324,
-  dieresiscmb: 0x0308,
-  dieresisgrave: 0xF6D8,
-  dieresistonos: 0x0385,
-  dihiragana: 0x3062,
-  dikatakana: 0x30C2,
-  dittomark: 0x3003,
-  divide: 0x00F7,
-  divides: 0x2223,
-  divisionslash: 0x2215,
-  djecyrillic: 0x0452,
-  dkshade: 0x2593,
-  dlinebelow: 0x1E0F,
-  dlsquare: 0x3397,
-  dmacron: 0x0111,
-  dmonospace: 0xFF44,
-  dnblock: 0x2584,
-  dochadathai: 0x0E0E,
-  dodekthai: 0x0E14,
-  dohiragana: 0x3069,
-  dokatakana: 0x30C9,
-  dollar: 0x0024,
-  dollarinferior: 0xF6E3,
-  dollarmonospace: 0xFF04,
-  dollaroldstyle: 0xF724,
-  dollarsmall: 0xFE69,
-  dollarsuperior: 0xF6E4,
-  dong: 0x20AB,
-  dorusquare: 0x3326,
-  dotaccent: 0x02D9,
-  dotaccentcmb: 0x0307,
-  dotbelowcmb: 0x0323,
-  dotbelowcomb: 0x0323,
-  dotkatakana: 0x30FB,
-  dotlessi: 0x0131,
-  dotlessj: 0xF6BE,
-  dotlessjstrokehook: 0x0284,
-  dotmath: 0x22C5,
-  dottedcircle: 0x25CC,
-  doubleyodpatah: 0xFB1F,
-  doubleyodpatahhebrew: 0xFB1F,
-  downtackbelowcmb: 0x031E,
-  downtackmod: 0x02D5,
-  dparen: 0x249F,
-  dsuperior: 0xF6EB,
-  dtail: 0x0256,
-  dtopbar: 0x018C,
-  duhiragana: 0x3065,
-  dukatakana: 0x30C5,
-  dz: 0x01F3,
-  dzaltone: 0x02A3,
-  dzcaron: 0x01C6,
-  dzcurl: 0x02A5,
-  dzeabkhasiancyrillic: 0x04E1,
-  dzecyrillic: 0x0455,
-  dzhecyrillic: 0x045F,
-  e: 0x0065,
-  eacute: 0x00E9,
-  earth: 0x2641,
-  ebengali: 0x098F,
-  ebopomofo: 0x311C,
-  ebreve: 0x0115,
-  ecandradeva: 0x090D,
-  ecandragujarati: 0x0A8D,
-  ecandravowelsigndeva: 0x0945,
-  ecandravowelsigngujarati: 0x0AC5,
-  ecaron: 0x011B,
-  ecedillabreve: 0x1E1D,
-  echarmenian: 0x0565,
-  echyiwnarmenian: 0x0587,
-  ecircle: 0x24D4,
-  ecircumflex: 0x00EA,
-  ecircumflexacute: 0x1EBF,
-  ecircumflexbelow: 0x1E19,
-  ecircumflexdotbelow: 0x1EC7,
-  ecircumflexgrave: 0x1EC1,
-  ecircumflexhookabove: 0x1EC3,
-  ecircumflextilde: 0x1EC5,
-  ecyrillic: 0x0454,
-  edblgrave: 0x0205,
-  edeva: 0x090F,
-  edieresis: 0x00EB,
-  edot: 0x0117,
-  edotaccent: 0x0117,
-  edotbelow: 0x1EB9,
-  eegurmukhi: 0x0A0F,
-  eematragurmukhi: 0x0A47,
-  efcyrillic: 0x0444,
-  egrave: 0x00E8,
-  egujarati: 0x0A8F,
-  eharmenian: 0x0567,
-  ehbopomofo: 0x311D,
-  ehiragana: 0x3048,
-  ehookabove: 0x1EBB,
-  eibopomofo: 0x311F,
-  eight: 0x0038,
-  eightarabic: 0x0668,
-  eightbengali: 0x09EE,
-  eightcircle: 0x2467,
-  eightcircleinversesansserif: 0x2791,
-  eightdeva: 0x096E,
-  eighteencircle: 0x2471,
-  eighteenparen: 0x2485,
-  eighteenperiod: 0x2499,
-  eightgujarati: 0x0AEE,
-  eightgurmukhi: 0x0A6E,
-  eighthackarabic: 0x0668,
-  eighthangzhou: 0x3028,
-  eighthnotebeamed: 0x266B,
-  eightideographicparen: 0x3227,
-  eightinferior: 0x2088,
-  eightmonospace: 0xFF18,
-  eightoldstyle: 0xF738,
-  eightparen: 0x247B,
-  eightperiod: 0x248F,
-  eightpersian: 0x06F8,
-  eightroman: 0x2177,
-  eightsuperior: 0x2078,
-  eightthai: 0x0E58,
-  einvertedbreve: 0x0207,
-  eiotifiedcyrillic: 0x0465,
-  ekatakana: 0x30A8,
-  ekatakanahalfwidth: 0xFF74,
-  ekonkargurmukhi: 0x0A74,
-  ekorean: 0x3154,
-  elcyrillic: 0x043B,
-  element: 0x2208,
-  elevencircle: 0x246A,
-  elevenparen: 0x247E,
-  elevenperiod: 0x2492,
-  elevenroman: 0x217A,
-  ellipsis: 0x2026,
-  ellipsisvertical: 0x22EE,
-  emacron: 0x0113,
-  emacronacute: 0x1E17,
-  emacrongrave: 0x1E15,
-  emcyrillic: 0x043C,
-  emdash: 0x2014,
-  emdashvertical: 0xFE31,
-  emonospace: 0xFF45,
-  emphasismarkarmenian: 0x055B,
-  emptyset: 0x2205,
-  enbopomofo: 0x3123,
-  encyrillic: 0x043D,
-  endash: 0x2013,
-  endashvertical: 0xFE32,
-  endescendercyrillic: 0x04A3,
-  eng: 0x014B,
-  engbopomofo: 0x3125,
-  enghecyrillic: 0x04A5,
-  enhookcyrillic: 0x04C8,
-  enspace: 0x2002,
-  eogonek: 0x0119,
-  eokorean: 0x3153,
-  eopen: 0x025B,
-  eopenclosed: 0x029A,
-  eopenreversed: 0x025C,
-  eopenreversedclosed: 0x025E,
-  eopenreversedhook: 0x025D,
-  eparen: 0x24A0,
-  epsilon: 0x03B5,
-  epsilontonos: 0x03AD,
-  equal: 0x003D,
-  equalmonospace: 0xFF1D,
-  equalsmall: 0xFE66,
-  equalsuperior: 0x207C,
-  equivalence: 0x2261,
-  erbopomofo: 0x3126,
-  ercyrillic: 0x0440,
-  ereversed: 0x0258,
-  ereversedcyrillic: 0x044D,
-  escyrillic: 0x0441,
-  esdescendercyrillic: 0x04AB,
-  esh: 0x0283,
-  eshcurl: 0x0286,
-  eshortdeva: 0x090E,
-  eshortvowelsigndeva: 0x0946,
-  eshreversedloop: 0x01AA,
-  eshsquatreversed: 0x0285,
-  esmallhiragana: 0x3047,
-  esmallkatakana: 0x30A7,
-  esmallkatakanahalfwidth: 0xFF6A,
-  estimated: 0x212E,
-  esuperior: 0xF6EC,
-  eta: 0x03B7,
-  etarmenian: 0x0568,
-  etatonos: 0x03AE,
-  eth: 0x00F0,
-  etilde: 0x1EBD,
-  etildebelow: 0x1E1B,
-  etnahtafoukhhebrew: 0x0591,
-  etnahtafoukhlefthebrew: 0x0591,
-  etnahtahebrew: 0x0591,
-  etnahtalefthebrew: 0x0591,
-  eturned: 0x01DD,
-  eukorean: 0x3161,
-  euro: 0x20AC,
-  evowelsignbengali: 0x09C7,
-  evowelsigndeva: 0x0947,
-  evowelsigngujarati: 0x0AC7,
-  exclam: 0x0021,
-  exclamarmenian: 0x055C,
-  exclamdbl: 0x203C,
-  exclamdown: 0x00A1,
-  exclamdownsmall: 0xF7A1,
-  exclammonospace: 0xFF01,
-  exclamsmall: 0xF721,
-  existential: 0x2203,
-  ezh: 0x0292,
-  ezhcaron: 0x01EF,
-  ezhcurl: 0x0293,
-  ezhreversed: 0x01B9,
-  ezhtail: 0x01BA,
-  f: 0x0066,
-  fadeva: 0x095E,
-  fagurmukhi: 0x0A5E,
-  fahrenheit: 0x2109,
-  fathaarabic: 0x064E,
-  fathalowarabic: 0x064E,
-  fathatanarabic: 0x064B,
-  fbopomofo: 0x3108,
-  fcircle: 0x24D5,
-  fdotaccent: 0x1E1F,
-  feharabic: 0x0641,
-  feharmenian: 0x0586,
-  fehfinalarabic: 0xFED2,
-  fehinitialarabic: 0xFED3,
-  fehmedialarabic: 0xFED4,
-  feicoptic: 0x03E5,
-  female: 0x2640,
-  ff: 0xFB00,
-  ffi: 0xFB03,
-  ffl: 0xFB04,
-  fi: 0xFB01,
-  fifteencircle: 0x246E,
-  fifteenparen: 0x2482,
-  fifteenperiod: 0x2496,
-  figuredash: 0x2012,
-  filledbox: 0x25A0,
-  filledrect: 0x25AC,
-  finalkaf: 0x05DA,
-  finalkafdagesh: 0xFB3A,
-  finalkafdageshhebrew: 0xFB3A,
-  finalkafhebrew: 0x05DA,
-  finalmem: 0x05DD,
-  finalmemhebrew: 0x05DD,
-  finalnun: 0x05DF,
-  finalnunhebrew: 0x05DF,
-  finalpe: 0x05E3,
-  finalpehebrew: 0x05E3,
-  finaltsadi: 0x05E5,
-  finaltsadihebrew: 0x05E5,
-  firsttonechinese: 0x02C9,
-  fisheye: 0x25C9,
-  fitacyrillic: 0x0473,
-  five: 0x0035,
-  fivearabic: 0x0665,
-  fivebengali: 0x09EB,
-  fivecircle: 0x2464,
-  fivecircleinversesansserif: 0x278E,
-  fivedeva: 0x096B,
-  fiveeighths: 0x215D,
-  fivegujarati: 0x0AEB,
-  fivegurmukhi: 0x0A6B,
-  fivehackarabic: 0x0665,
-  fivehangzhou: 0x3025,
-  fiveideographicparen: 0x3224,
-  fiveinferior: 0x2085,
-  fivemonospace: 0xFF15,
-  fiveoldstyle: 0xF735,
-  fiveparen: 0x2478,
-  fiveperiod: 0x248C,
-  fivepersian: 0x06F5,
-  fiveroman: 0x2174,
-  fivesuperior: 0x2075,
-  fivethai: 0x0E55,
-  fl: 0xFB02,
-  florin: 0x0192,
-  fmonospace: 0xFF46,
-  fmsquare: 0x3399,
-  fofanthai: 0x0E1F,
-  fofathai: 0x0E1D,
-  fongmanthai: 0x0E4F,
-  forall: 0x2200,
-  four: 0x0034,
-  fourarabic: 0x0664,
-  fourbengali: 0x09EA,
-  fourcircle: 0x2463,
-  fourcircleinversesansserif: 0x278D,
-  fourdeva: 0x096A,
-  fourgujarati: 0x0AEA,
-  fourgurmukhi: 0x0A6A,
-  fourhackarabic: 0x0664,
-  fourhangzhou: 0x3024,
-  fourideographicparen: 0x3223,
-  fourinferior: 0x2084,
-  fourmonospace: 0xFF14,
-  fournumeratorbengali: 0x09F7,
-  fouroldstyle: 0xF734,
-  fourparen: 0x2477,
-  fourperiod: 0x248B,
-  fourpersian: 0x06F4,
-  fourroman: 0x2173,
-  foursuperior: 0x2074,
-  fourteencircle: 0x246D,
-  fourteenparen: 0x2481,
-  fourteenperiod: 0x2495,
-  fourthai: 0x0E54,
-  fourthtonechinese: 0x02CB,
-  fparen: 0x24A1,
-  fraction: 0x2044,
-  franc: 0x20A3,
-  g: 0x0067,
-  gabengali: 0x0997,
-  gacute: 0x01F5,
-  gadeva: 0x0917,
-  gafarabic: 0x06AF,
-  gaffinalarabic: 0xFB93,
-  gafinitialarabic: 0xFB94,
-  gafmedialarabic: 0xFB95,
-  gagujarati: 0x0A97,
-  gagurmukhi: 0x0A17,
-  gahiragana: 0x304C,
-  gakatakana: 0x30AC,
-  gamma: 0x03B3,
-  gammalatinsmall: 0x0263,
-  gammasuperior: 0x02E0,
-  gangiacoptic: 0x03EB,
-  gbopomofo: 0x310D,
-  gbreve: 0x011F,
-  gcaron: 0x01E7,
-  gcedilla: 0x0123,
-  gcircle: 0x24D6,
-  gcircumflex: 0x011D,
-  gcommaaccent: 0x0123,
-  gdot: 0x0121,
-  gdotaccent: 0x0121,
-  gecyrillic: 0x0433,
-  gehiragana: 0x3052,
-  gekatakana: 0x30B2,
-  geometricallyequal: 0x2251,
-  gereshaccenthebrew: 0x059C,
-  gereshhebrew: 0x05F3,
-  gereshmuqdamhebrew: 0x059D,
-  germandbls: 0x00DF,
-  gershayimaccenthebrew: 0x059E,
-  gershayimhebrew: 0x05F4,
-  getamark: 0x3013,
-  ghabengali: 0x0998,
-  ghadarmenian: 0x0572,
-  ghadeva: 0x0918,
-  ghagujarati: 0x0A98,
-  ghagurmukhi: 0x0A18,
-  ghainarabic: 0x063A,
-  ghainfinalarabic: 0xFECE,
-  ghaininitialarabic: 0xFECF,
-  ghainmedialarabic: 0xFED0,
-  ghemiddlehookcyrillic: 0x0495,
-  ghestrokecyrillic: 0x0493,
-  gheupturncyrillic: 0x0491,
-  ghhadeva: 0x095A,
-  ghhagurmukhi: 0x0A5A,
-  ghook: 0x0260,
-  ghzsquare: 0x3393,
-  gihiragana: 0x304E,
-  gikatakana: 0x30AE,
-  gimarmenian: 0x0563,
-  gimel: 0x05D2,
-  gimeldagesh: 0xFB32,
-  gimeldageshhebrew: 0xFB32,
-  gimelhebrew: 0x05D2,
-  gjecyrillic: 0x0453,
-  glottalinvertedstroke: 0x01BE,
-  glottalstop: 0x0294,
-  glottalstopinverted: 0x0296,
-  glottalstopmod: 0x02C0,
-  glottalstopreversed: 0x0295,
-  glottalstopreversedmod: 0x02C1,
-  glottalstopreversedsuperior: 0x02E4,
-  glottalstopstroke: 0x02A1,
-  glottalstopstrokereversed: 0x02A2,
-  gmacron: 0x1E21,
-  gmonospace: 0xFF47,
-  gohiragana: 0x3054,
-  gokatakana: 0x30B4,
-  gparen: 0x24A2,
-  gpasquare: 0x33AC,
-  gradient: 0x2207,
-  grave: 0x0060,
-  gravebelowcmb: 0x0316,
-  gravecmb: 0x0300,
-  gravecomb: 0x0300,
-  gravedeva: 0x0953,
-  gravelowmod: 0x02CE,
-  gravemonospace: 0xFF40,
-  gravetonecmb: 0x0340,
-  greater: 0x003E,
-  greaterequal: 0x2265,
-  greaterequalorless: 0x22DB,
-  greatermonospace: 0xFF1E,
-  greaterorequivalent: 0x2273,
-  greaterorless: 0x2277,
-  greateroverequal: 0x2267,
-  greatersmall: 0xFE65,
-  gscript: 0x0261,
-  gstroke: 0x01E5,
-  guhiragana: 0x3050,
-  guillemotleft: 0x00AB,
-  guillemotright: 0x00BB,
-  guilsinglleft: 0x2039,
-  guilsinglright: 0x203A,
-  gukatakana: 0x30B0,
-  guramusquare: 0x3318,
-  gysquare: 0x33C9,
-  h: 0x0068,
-  haabkhasiancyrillic: 0x04A9,
-  haaltonearabic: 0x06C1,
-  habengali: 0x09B9,
-  hadescendercyrillic: 0x04B3,
-  hadeva: 0x0939,
-  hagujarati: 0x0AB9,
-  hagurmukhi: 0x0A39,
-  haharabic: 0x062D,
-  hahfinalarabic: 0xFEA2,
-  hahinitialarabic: 0xFEA3,
-  hahiragana: 0x306F,
-  hahmedialarabic: 0xFEA4,
-  haitusquare: 0x332A,
-  hakatakana: 0x30CF,
-  hakatakanahalfwidth: 0xFF8A,
-  halantgurmukhi: 0x0A4D,
-  hamzaarabic: 0x0621,
-  hamzalowarabic: 0x0621,
-  hangulfiller: 0x3164,
-  hardsigncyrillic: 0x044A,
-  harpoonleftbarbup: 0x21BC,
-  harpoonrightbarbup: 0x21C0,
-  hasquare: 0x33CA,
-  hatafpatah: 0x05B2,
-  hatafpatah16: 0x05B2,
-  hatafpatah23: 0x05B2,
-  hatafpatah2f: 0x05B2,
-  hatafpatahhebrew: 0x05B2,
-  hatafpatahnarrowhebrew: 0x05B2,
-  hatafpatahquarterhebrew: 0x05B2,
-  hatafpatahwidehebrew: 0x05B2,
-  hatafqamats: 0x05B3,
-  hatafqamats1b: 0x05B3,
-  hatafqamats28: 0x05B3,
-  hatafqamats34: 0x05B3,
-  hatafqamatshebrew: 0x05B3,
-  hatafqamatsnarrowhebrew: 0x05B3,
-  hatafqamatsquarterhebrew: 0x05B3,
-  hatafqamatswidehebrew: 0x05B3,
-  hatafsegol: 0x05B1,
-  hatafsegol17: 0x05B1,
-  hatafsegol24: 0x05B1,
-  hatafsegol30: 0x05B1,
-  hatafsegolhebrew: 0x05B1,
-  hatafsegolnarrowhebrew: 0x05B1,
-  hatafsegolquarterhebrew: 0x05B1,
-  hatafsegolwidehebrew: 0x05B1,
-  hbar: 0x0127,
-  hbopomofo: 0x310F,
-  hbrevebelow: 0x1E2B,
-  hcedilla: 0x1E29,
-  hcircle: 0x24D7,
-  hcircumflex: 0x0125,
-  hdieresis: 0x1E27,
-  hdotaccent: 0x1E23,
-  hdotbelow: 0x1E25,
-  he: 0x05D4,
-  heart: 0x2665,
-  heartsuitblack: 0x2665,
-  heartsuitwhite: 0x2661,
-  hedagesh: 0xFB34,
-  hedageshhebrew: 0xFB34,
-  hehaltonearabic: 0x06C1,
-  heharabic: 0x0647,
-  hehebrew: 0x05D4,
-  hehfinalaltonearabic: 0xFBA7,
-  hehfinalalttwoarabic: 0xFEEA,
-  hehfinalarabic: 0xFEEA,
-  hehhamzaabovefinalarabic: 0xFBA5,
-  hehhamzaaboveisolatedarabic: 0xFBA4,
-  hehinitialaltonearabic: 0xFBA8,
-  hehinitialarabic: 0xFEEB,
-  hehiragana: 0x3078,
-  hehmedialaltonearabic: 0xFBA9,
-  hehmedialarabic: 0xFEEC,
-  heiseierasquare: 0x337B,
-  hekatakana: 0x30D8,
-  hekatakanahalfwidth: 0xFF8D,
-  hekutaarusquare: 0x3336,
-  henghook: 0x0267,
-  herutusquare: 0x3339,
-  het: 0x05D7,
-  hethebrew: 0x05D7,
-  hhook: 0x0266,
-  hhooksuperior: 0x02B1,
-  hieuhacirclekorean: 0x327B,
-  hieuhaparenkorean: 0x321B,
-  hieuhcirclekorean: 0x326D,
-  hieuhkorean: 0x314E,
-  hieuhparenkorean: 0x320D,
-  hihiragana: 0x3072,
-  hikatakana: 0x30D2,
-  hikatakanahalfwidth: 0xFF8B,
-  hiriq: 0x05B4,
-  hiriq14: 0x05B4,
-  hiriq21: 0x05B4,
-  hiriq2d: 0x05B4,
-  hiriqhebrew: 0x05B4,
-  hiriqnarrowhebrew: 0x05B4,
-  hiriqquarterhebrew: 0x05B4,
-  hiriqwidehebrew: 0x05B4,
-  hlinebelow: 0x1E96,
-  hmonospace: 0xFF48,
-  hoarmenian: 0x0570,
-  hohipthai: 0x0E2B,
-  hohiragana: 0x307B,
-  hokatakana: 0x30DB,
-  hokatakanahalfwidth: 0xFF8E,
-  holam: 0x05B9,
-  holam19: 0x05B9,
-  holam26: 0x05B9,
-  holam32: 0x05B9,
-  holamhebrew: 0x05B9,
-  holamnarrowhebrew: 0x05B9,
-  holamquarterhebrew: 0x05B9,
-  holamwidehebrew: 0x05B9,
-  honokhukthai: 0x0E2E,
-  hookabovecomb: 0x0309,
-  hookcmb: 0x0309,
-  hookpalatalizedbelowcmb: 0x0321,
-  hookretroflexbelowcmb: 0x0322,
-  hoonsquare: 0x3342,
-  horicoptic: 0x03E9,
-  horizontalbar: 0x2015,
-  horncmb: 0x031B,
-  hotsprings: 0x2668,
-  house: 0x2302,
-  hparen: 0x24A3,
-  hsuperior: 0x02B0,
-  hturned: 0x0265,
-  huhiragana: 0x3075,
-  huiitosquare: 0x3333,
-  hukatakana: 0x30D5,
-  hukatakanahalfwidth: 0xFF8C,
-  hungarumlaut: 0x02DD,
-  hungarumlautcmb: 0x030B,
-  hv: 0x0195,
-  hyphen: 0x002D,
-  hypheninferior: 0xF6E5,
-  hyphenmonospace: 0xFF0D,
-  hyphensmall: 0xFE63,
-  hyphensuperior: 0xF6E6,
-  hyphentwo: 0x2010,
-  i: 0x0069,
-  iacute: 0x00ED,
-  iacyrillic: 0x044F,
-  ibengali: 0x0987,
-  ibopomofo: 0x3127,
-  ibreve: 0x012D,
-  icaron: 0x01D0,
-  icircle: 0x24D8,
-  icircumflex: 0x00EE,
-  icyrillic: 0x0456,
-  idblgrave: 0x0209,
-  ideographearthcircle: 0x328F,
-  ideographfirecircle: 0x328B,
-  ideographicallianceparen: 0x323F,
-  ideographiccallparen: 0x323A,
-  ideographiccentrecircle: 0x32A5,
-  ideographicclose: 0x3006,
-  ideographiccomma: 0x3001,
-  ideographiccommaleft: 0xFF64,
-  ideographiccongratulationparen: 0x3237,
-  ideographiccorrectcircle: 0x32A3,
-  ideographicearthparen: 0x322F,
-  ideographicenterpriseparen: 0x323D,
-  ideographicexcellentcircle: 0x329D,
-  ideographicfestivalparen: 0x3240,
-  ideographicfinancialcircle: 0x3296,
-  ideographicfinancialparen: 0x3236,
-  ideographicfireparen: 0x322B,
-  ideographichaveparen: 0x3232,
-  ideographichighcircle: 0x32A4,
-  ideographiciterationmark: 0x3005,
-  ideographiclaborcircle: 0x3298,
-  ideographiclaborparen: 0x3238,
-  ideographicleftcircle: 0x32A7,
-  ideographiclowcircle: 0x32A6,
-  ideographicmedicinecircle: 0x32A9,
-  ideographicmetalparen: 0x322E,
-  ideographicmoonparen: 0x322A,
-  ideographicnameparen: 0x3234,
-  ideographicperiod: 0x3002,
-  ideographicprintcircle: 0x329E,
-  ideographicreachparen: 0x3243,
-  ideographicrepresentparen: 0x3239,
-  ideographicresourceparen: 0x323E,
-  ideographicrightcircle: 0x32A8,
-  ideographicsecretcircle: 0x3299,
-  ideographicselfparen: 0x3242,
-  ideographicsocietyparen: 0x3233,
-  ideographicspace: 0x3000,
-  ideographicspecialparen: 0x3235,
-  ideographicstockparen: 0x3231,
-  ideographicstudyparen: 0x323B,
-  ideographicsunparen: 0x3230,
-  ideographicsuperviseparen: 0x323C,
-  ideographicwaterparen: 0x322C,
-  ideographicwoodparen: 0x322D,
-  ideographiczero: 0x3007,
-  ideographmetalcircle: 0x328E,
-  ideographmooncircle: 0x328A,
-  ideographnamecircle: 0x3294,
-  ideographsuncircle: 0x3290,
-  ideographwatercircle: 0x328C,
-  ideographwoodcircle: 0x328D,
-  ideva: 0x0907,
-  idieresis: 0x00EF,
-  idieresisacute: 0x1E2F,
-  idieresiscyrillic: 0x04E5,
-  idotbelow: 0x1ECB,
-  iebrevecyrillic: 0x04D7,
-  iecyrillic: 0x0435,
-  ieungacirclekorean: 0x3275,
-  ieungaparenkorean: 0x3215,
-  ieungcirclekorean: 0x3267,
-  ieungkorean: 0x3147,
-  ieungparenkorean: 0x3207,
-  igrave: 0x00EC,
-  igujarati: 0x0A87,
-  igurmukhi: 0x0A07,
-  ihiragana: 0x3044,
-  ihookabove: 0x1EC9,
-  iibengali: 0x0988,
-  iicyrillic: 0x0438,
-  iideva: 0x0908,
-  iigujarati: 0x0A88,
-  iigurmukhi: 0x0A08,
-  iimatragurmukhi: 0x0A40,
-  iinvertedbreve: 0x020B,
-  iishortcyrillic: 0x0439,
-  iivowelsignbengali: 0x09C0,
-  iivowelsigndeva: 0x0940,
-  iivowelsigngujarati: 0x0AC0,
-  ij: 0x0133,
-  ikatakana: 0x30A4,
-  ikatakanahalfwidth: 0xFF72,
-  ikorean: 0x3163,
-  ilde: 0x02DC,
-  iluyhebrew: 0x05AC,
-  imacron: 0x012B,
-  imacroncyrillic: 0x04E3,
-  imageorapproximatelyequal: 0x2253,
-  imatragurmukhi: 0x0A3F,
-  imonospace: 0xFF49,
-  increment: 0x2206,
-  infinity: 0x221E,
-  iniarmenian: 0x056B,
-  integral: 0x222B,
-  integralbottom: 0x2321,
-  integralbt: 0x2321,
-  integralex: 0xF8F5,
-  integraltop: 0x2320,
-  integraltp: 0x2320,
-  intersection: 0x2229,
-  intisquare: 0x3305,
-  invbullet: 0x25D8,
-  invcircle: 0x25D9,
-  invsmileface: 0x263B,
-  iocyrillic: 0x0451,
-  iogonek: 0x012F,
-  iota: 0x03B9,
-  iotadieresis: 0x03CA,
-  iotadieresistonos: 0x0390,
-  iotalatin: 0x0269,
-  iotatonos: 0x03AF,
-  iparen: 0x24A4,
-  irigurmukhi: 0x0A72,
-  ismallhiragana: 0x3043,
-  ismallkatakana: 0x30A3,
-  ismallkatakanahalfwidth: 0xFF68,
-  issharbengali: 0x09FA,
-  istroke: 0x0268,
-  isuperior: 0xF6ED,
-  iterationhiragana: 0x309D,
-  iterationkatakana: 0x30FD,
-  itilde: 0x0129,
-  itildebelow: 0x1E2D,
-  iubopomofo: 0x3129,
-  iucyrillic: 0x044E,
-  ivowelsignbengali: 0x09BF,
-  ivowelsigndeva: 0x093F,
-  ivowelsigngujarati: 0x0ABF,
-  izhitsacyrillic: 0x0475,
-  izhitsadblgravecyrillic: 0x0477,
-  j: 0x006A,
-  jaarmenian: 0x0571,
-  jabengali: 0x099C,
-  jadeva: 0x091C,
-  jagujarati: 0x0A9C,
-  jagurmukhi: 0x0A1C,
-  jbopomofo: 0x3110,
-  jcaron: 0x01F0,
-  jcircle: 0x24D9,
-  jcircumflex: 0x0135,
-  jcrossedtail: 0x029D,
-  jdotlessstroke: 0x025F,
-  jecyrillic: 0x0458,
-  jeemarabic: 0x062C,
-  jeemfinalarabic: 0xFE9E,
-  jeeminitialarabic: 0xFE9F,
-  jeemmedialarabic: 0xFEA0,
-  jeharabic: 0x0698,
-  jehfinalarabic: 0xFB8B,
-  jhabengali: 0x099D,
-  jhadeva: 0x091D,
-  jhagujarati: 0x0A9D,
-  jhagurmukhi: 0x0A1D,
-  jheharmenian: 0x057B,
-  jis: 0x3004,
-  jmonospace: 0xFF4A,
-  jparen: 0x24A5,
-  jsuperior: 0x02B2,
-  k: 0x006B,
-  kabashkircyrillic: 0x04A1,
-  kabengali: 0x0995,
-  kacute: 0x1E31,
-  kacyrillic: 0x043A,
-  kadescendercyrillic: 0x049B,
-  kadeva: 0x0915,
-  kaf: 0x05DB,
-  kafarabic: 0x0643,
-  kafdagesh: 0xFB3B,
-  kafdageshhebrew: 0xFB3B,
-  kaffinalarabic: 0xFEDA,
-  kafhebrew: 0x05DB,
-  kafinitialarabic: 0xFEDB,
-  kafmedialarabic: 0xFEDC,
-  kafrafehebrew: 0xFB4D,
-  kagujarati: 0x0A95,
-  kagurmukhi: 0x0A15,
-  kahiragana: 0x304B,
-  kahookcyrillic: 0x04C4,
-  kakatakana: 0x30AB,
-  kakatakanahalfwidth: 0xFF76,
-  kappa: 0x03BA,
-  kappasymbolgreek: 0x03F0,
-  kapyeounmieumkorean: 0x3171,
-  kapyeounphieuphkorean: 0x3184,
-  kapyeounpieupkorean: 0x3178,
-  kapyeounssangpieupkorean: 0x3179,
-  karoriisquare: 0x330D,
-  kashidaautoarabic: 0x0640,
-  kashidaautonosidebearingarabic: 0x0640,
-  kasmallkatakana: 0x30F5,
-  kasquare: 0x3384,
-  kasraarabic: 0x0650,
-  kasratanarabic: 0x064D,
-  kastrokecyrillic: 0x049F,
-  katahiraprolongmarkhalfwidth: 0xFF70,
-  kaverticalstrokecyrillic: 0x049D,
-  kbopomofo: 0x310E,
-  kcalsquare: 0x3389,
-  kcaron: 0x01E9,
-  kcedilla: 0x0137,
-  kcircle: 0x24DA,
-  kcommaaccent: 0x0137,
-  kdotbelow: 0x1E33,
-  keharmenian: 0x0584,
-  kehiragana: 0x3051,
-  kekatakana: 0x30B1,
-  kekatakanahalfwidth: 0xFF79,
-  kenarmenian: 0x056F,
-  kesmallkatakana: 0x30F6,
-  kgreenlandic: 0x0138,
-  khabengali: 0x0996,
-  khacyrillic: 0x0445,
-  khadeva: 0x0916,
-  khagujarati: 0x0A96,
-  khagurmukhi: 0x0A16,
-  khaharabic: 0x062E,
-  khahfinalarabic: 0xFEA6,
-  khahinitialarabic: 0xFEA7,
-  khahmedialarabic: 0xFEA8,
-  kheicoptic: 0x03E7,
-  khhadeva: 0x0959,
-  khhagurmukhi: 0x0A59,
-  khieukhacirclekorean: 0x3278,
-  khieukhaparenkorean: 0x3218,
-  khieukhcirclekorean: 0x326A,
-  khieukhkorean: 0x314B,
-  khieukhparenkorean: 0x320A,
-  khokhaithai: 0x0E02,
-  khokhonthai: 0x0E05,
-  khokhuatthai: 0x0E03,
-  khokhwaithai: 0x0E04,
-  khomutthai: 0x0E5B,
-  khook: 0x0199,
-  khorakhangthai: 0x0E06,
-  khzsquare: 0x3391,
-  kihiragana: 0x304D,
-  kikatakana: 0x30AD,
-  kikatakanahalfwidth: 0xFF77,
-  kiroguramusquare: 0x3315,
-  kiromeetorusquare: 0x3316,
-  kirosquare: 0x3314,
-  kiyeokacirclekorean: 0x326E,
-  kiyeokaparenkorean: 0x320E,
-  kiyeokcirclekorean: 0x3260,
-  kiyeokkorean: 0x3131,
-  kiyeokparenkorean: 0x3200,
-  kiyeoksioskorean: 0x3133,
-  kjecyrillic: 0x045C,
-  klinebelow: 0x1E35,
-  klsquare: 0x3398,
-  kmcubedsquare: 0x33A6,
-  kmonospace: 0xFF4B,
-  kmsquaredsquare: 0x33A2,
-  kohiragana: 0x3053,
-  kohmsquare: 0x33C0,
-  kokaithai: 0x0E01,
-  kokatakana: 0x30B3,
-  kokatakanahalfwidth: 0xFF7A,
-  kooposquare: 0x331E,
-  koppacyrillic: 0x0481,
-  koreanstandardsymbol: 0x327F,
-  koroniscmb: 0x0343,
-  kparen: 0x24A6,
-  kpasquare: 0x33AA,
-  ksicyrillic: 0x046F,
-  ktsquare: 0x33CF,
-  kturned: 0x029E,
-  kuhiragana: 0x304F,
-  kukatakana: 0x30AF,
-  kukatakanahalfwidth: 0xFF78,
-  kvsquare: 0x33B8,
-  kwsquare: 0x33BE,
-  l: 0x006C,
-  labengali: 0x09B2,
-  lacute: 0x013A,
-  ladeva: 0x0932,
-  lagujarati: 0x0AB2,
-  lagurmukhi: 0x0A32,
-  lakkhangyaothai: 0x0E45,
-  lamaleffinalarabic: 0xFEFC,
-  lamalefhamzaabovefinalarabic: 0xFEF8,
-  lamalefhamzaaboveisolatedarabic: 0xFEF7,
-  lamalefhamzabelowfinalarabic: 0xFEFA,
-  lamalefhamzabelowisolatedarabic: 0xFEF9,
-  lamalefisolatedarabic: 0xFEFB,
-  lamalefmaddaabovefinalarabic: 0xFEF6,
-  lamalefmaddaaboveisolatedarabic: 0xFEF5,
-  lamarabic: 0x0644,
-  lambda: 0x03BB,
-  lambdastroke: 0x019B,
-  lamed: 0x05DC,
-  lameddagesh: 0xFB3C,
-  lameddageshhebrew: 0xFB3C,
-  lamedhebrew: 0x05DC,
-  lamfinalarabic: 0xFEDE,
-  lamhahinitialarabic: 0xFCCA,
-  laminitialarabic: 0xFEDF,
-  lamjeeminitialarabic: 0xFCC9,
-  lamkhahinitialarabic: 0xFCCB,
-  lamlamhehisolatedarabic: 0xFDF2,
-  lammedialarabic: 0xFEE0,
-  lammeemhahinitialarabic: 0xFD88,
-  lammeeminitialarabic: 0xFCCC,
-  largecircle: 0x25EF,
-  lbar: 0x019A,
-  lbelt: 0x026C,
-  lbopomofo: 0x310C,
-  lcaron: 0x013E,
-  lcedilla: 0x013C,
-  lcircle: 0x24DB,
-  lcircumflexbelow: 0x1E3D,
-  lcommaaccent: 0x013C,
-  ldot: 0x0140,
-  ldotaccent: 0x0140,
-  ldotbelow: 0x1E37,
-  ldotbelowmacron: 0x1E39,
-  leftangleabovecmb: 0x031A,
-  lefttackbelowcmb: 0x0318,
-  less: 0x003C,
-  lessequal: 0x2264,
-  lessequalorgreater: 0x22DA,
-  lessmonospace: 0xFF1C,
-  lessorequivalent: 0x2272,
-  lessorgreater: 0x2276,
-  lessoverequal: 0x2266,
-  lesssmall: 0xFE64,
-  lezh: 0x026E,
-  lfblock: 0x258C,
-  lhookretroflex: 0x026D,
-  lira: 0x20A4,
-  liwnarmenian: 0x056C,
-  lj: 0x01C9,
-  ljecyrillic: 0x0459,
-  ll: 0xF6C0,
-  lladeva: 0x0933,
-  llagujarati: 0x0AB3,
-  llinebelow: 0x1E3B,
-  llladeva: 0x0934,
-  llvocalicbengali: 0x09E1,
-  llvocalicdeva: 0x0961,
-  llvocalicvowelsignbengali: 0x09E3,
-  llvocalicvowelsigndeva: 0x0963,
-  lmiddletilde: 0x026B,
-  lmonospace: 0xFF4C,
-  lmsquare: 0x33D0,
-  lochulathai: 0x0E2C,
-  logicaland: 0x2227,
-  logicalnot: 0x00AC,
-  logicalnotreversed: 0x2310,
-  logicalor: 0x2228,
-  lolingthai: 0x0E25,
-  longs: 0x017F,
-  lowlinecenterline: 0xFE4E,
-  lowlinecmb: 0x0332,
-  lowlinedashed: 0xFE4D,
-  lozenge: 0x25CA,
-  lparen: 0x24A7,
-  lslash: 0x0142,
-  lsquare: 0x2113,
-  lsuperior: 0xF6EE,
-  ltshade: 0x2591,
-  luthai: 0x0E26,
-  lvocalicbengali: 0x098C,
-  lvocalicdeva: 0x090C,
-  lvocalicvowelsignbengali: 0x09E2,
-  lvocalicvowelsigndeva: 0x0962,
-  lxsquare: 0x33D3,
-  m: 0x006D,
-  mabengali: 0x09AE,
-  macron: 0x00AF,
-  macronbelowcmb: 0x0331,
-  macroncmb: 0x0304,
-  macronlowmod: 0x02CD,
-  macronmonospace: 0xFFE3,
-  macute: 0x1E3F,
-  madeva: 0x092E,
-  magujarati: 0x0AAE,
-  magurmukhi: 0x0A2E,
-  mahapakhhebrew: 0x05A4,
-  mahapakhlefthebrew: 0x05A4,
-  mahiragana: 0x307E,
-  maichattawalowleftthai: 0xF895,
-  maichattawalowrightthai: 0xF894,
-  maichattawathai: 0x0E4B,
-  maichattawaupperleftthai: 0xF893,
-  maieklowleftthai: 0xF88C,
-  maieklowrightthai: 0xF88B,
-  maiekthai: 0x0E48,
-  maiekupperleftthai: 0xF88A,
-  maihanakatleftthai: 0xF884,
-  maihanakatthai: 0x0E31,
-  maitaikhuleftthai: 0xF889,
-  maitaikhuthai: 0x0E47,
-  maitholowleftthai: 0xF88F,
-  maitholowrightthai: 0xF88E,
-  maithothai: 0x0E49,
-  maithoupperleftthai: 0xF88D,
-  maitrilowleftthai: 0xF892,
-  maitrilowrightthai: 0xF891,
-  maitrithai: 0x0E4A,
-  maitriupperleftthai: 0xF890,
-  maiyamokthai: 0x0E46,
-  makatakana: 0x30DE,
-  makatakanahalfwidth: 0xFF8F,
-  male: 0x2642,
-  mansyonsquare: 0x3347,
-  maqafhebrew: 0x05BE,
-  mars: 0x2642,
-  masoracirclehebrew: 0x05AF,
-  masquare: 0x3383,
-  mbopomofo: 0x3107,
-  mbsquare: 0x33D4,
-  mcircle: 0x24DC,
-  mcubedsquare: 0x33A5,
-  mdotaccent: 0x1E41,
-  mdotbelow: 0x1E43,
-  meemarabic: 0x0645,
-  meemfinalarabic: 0xFEE2,
-  meeminitialarabic: 0xFEE3,
-  meemmedialarabic: 0xFEE4,
-  meemmeeminitialarabic: 0xFCD1,
-  meemmeemisolatedarabic: 0xFC48,
-  meetorusquare: 0x334D,
-  mehiragana: 0x3081,
-  meizierasquare: 0x337E,
-  mekatakana: 0x30E1,
-  mekatakanahalfwidth: 0xFF92,
-  mem: 0x05DE,
-  memdagesh: 0xFB3E,
-  memdageshhebrew: 0xFB3E,
-  memhebrew: 0x05DE,
-  menarmenian: 0x0574,
-  merkhahebrew: 0x05A5,
-  merkhakefulahebrew: 0x05A6,
-  merkhakefulalefthebrew: 0x05A6,
-  merkhalefthebrew: 0x05A5,
-  mhook: 0x0271,
-  mhzsquare: 0x3392,
-  middledotkatakanahalfwidth: 0xFF65,
-  middot: 0x00B7,
-  mieumacirclekorean: 0x3272,
-  mieumaparenkorean: 0x3212,
-  mieumcirclekorean: 0x3264,
-  mieumkorean: 0x3141,
-  mieumpansioskorean: 0x3170,
-  mieumparenkorean: 0x3204,
-  mieumpieupkorean: 0x316E,
-  mieumsioskorean: 0x316F,
-  mihiragana: 0x307F,
-  mikatakana: 0x30DF,
-  mikatakanahalfwidth: 0xFF90,
-  minus: 0x2212,
-  minusbelowcmb: 0x0320,
-  minuscircle: 0x2296,
-  minusmod: 0x02D7,
-  minusplus: 0x2213,
-  minute: 0x2032,
-  miribaarusquare: 0x334A,
-  mirisquare: 0x3349,
-  mlonglegturned: 0x0270,
-  mlsquare: 0x3396,
-  mmcubedsquare: 0x33A3,
-  mmonospace: 0xFF4D,
-  mmsquaredsquare: 0x339F,
-  mohiragana: 0x3082,
-  mohmsquare: 0x33C1,
-  mokatakana: 0x30E2,
-  mokatakanahalfwidth: 0xFF93,
-  molsquare: 0x33D6,
-  momathai: 0x0E21,
-  moverssquare: 0x33A7,
-  moverssquaredsquare: 0x33A8,
-  mparen: 0x24A8,
-  mpasquare: 0x33AB,
-  mssquare: 0x33B3,
-  msuperior: 0xF6EF,
-  mturned: 0x026F,
-  mu: 0x00B5,
-  mu1: 0x00B5,
-  muasquare: 0x3382,
-  muchgreater: 0x226B,
-  muchless: 0x226A,
-  mufsquare: 0x338C,
-  mugreek: 0x03BC,
-  mugsquare: 0x338D,
-  muhiragana: 0x3080,
-  mukatakana: 0x30E0,
-  mukatakanahalfwidth: 0xFF91,
-  mulsquare: 0x3395,
-  multiply: 0x00D7,
-  mumsquare: 0x339B,
-  munahhebrew: 0x05A3,
-  munahlefthebrew: 0x05A3,
-  musicalnote: 0x266A,
-  musicalnotedbl: 0x266B,
-  musicflatsign: 0x266D,
-  musicsharpsign: 0x266F,
-  mussquare: 0x33B2,
-  muvsquare: 0x33B6,
-  muwsquare: 0x33BC,
-  mvmegasquare: 0x33B9,
-  mvsquare: 0x33B7,
-  mwmegasquare: 0x33BF,
-  mwsquare: 0x33BD,
-  n: 0x006E,
-  nabengali: 0x09A8,
-  nabla: 0x2207,
-  nacute: 0x0144,
-  nadeva: 0x0928,
-  nagujarati: 0x0AA8,
-  nagurmukhi: 0x0A28,
-  nahiragana: 0x306A,
-  nakatakana: 0x30CA,
-  nakatakanahalfwidth: 0xFF85,
-  napostrophe: 0x0149,
-  nasquare: 0x3381,
-  nbopomofo: 0x310B,
-  nbspace: 0x00A0,
-  ncaron: 0x0148,
-  ncedilla: 0x0146,
-  ncircle: 0x24DD,
-  ncircumflexbelow: 0x1E4B,
-  ncommaaccent: 0x0146,
-  ndotaccent: 0x1E45,
-  ndotbelow: 0x1E47,
-  nehiragana: 0x306D,
-  nekatakana: 0x30CD,
-  nekatakanahalfwidth: 0xFF88,
-  newsheqelsign: 0x20AA,
-  nfsquare: 0x338B,
-  ngabengali: 0x0999,
-  ngadeva: 0x0919,
-  ngagujarati: 0x0A99,
-  ngagurmukhi: 0x0A19,
-  ngonguthai: 0x0E07,
-  nhiragana: 0x3093,
-  nhookleft: 0x0272,
-  nhookretroflex: 0x0273,
-  nieunacirclekorean: 0x326F,
-  nieunaparenkorean: 0x320F,
-  nieuncieuckorean: 0x3135,
-  nieuncirclekorean: 0x3261,
-  nieunhieuhkorean: 0x3136,
-  nieunkorean: 0x3134,
-  nieunpansioskorean: 0x3168,
-  nieunparenkorean: 0x3201,
-  nieunsioskorean: 0x3167,
-  nieuntikeutkorean: 0x3166,
-  nihiragana: 0x306B,
-  nikatakana: 0x30CB,
-  nikatakanahalfwidth: 0xFF86,
-  nikhahitleftthai: 0xF899,
-  nikhahitthai: 0x0E4D,
-  nine: 0x0039,
-  ninearabic: 0x0669,
-  ninebengali: 0x09EF,
-  ninecircle: 0x2468,
-  ninecircleinversesansserif: 0x2792,
-  ninedeva: 0x096F,
-  ninegujarati: 0x0AEF,
-  ninegurmukhi: 0x0A6F,
-  ninehackarabic: 0x0669,
-  ninehangzhou: 0x3029,
-  nineideographicparen: 0x3228,
-  nineinferior: 0x2089,
-  ninemonospace: 0xFF19,
-  nineoldstyle: 0xF739,
-  nineparen: 0x247C,
-  nineperiod: 0x2490,
-  ninepersian: 0x06F9,
-  nineroman: 0x2178,
-  ninesuperior: 0x2079,
-  nineteencircle: 0x2472,
-  nineteenparen: 0x2486,
-  nineteenperiod: 0x249A,
-  ninethai: 0x0E59,
-  nj: 0x01CC,
-  njecyrillic: 0x045A,
-  nkatakana: 0x30F3,
-  nkatakanahalfwidth: 0xFF9D,
-  nlegrightlong: 0x019E,
-  nlinebelow: 0x1E49,
-  nmonospace: 0xFF4E,
-  nmsquare: 0x339A,
-  nnabengali: 0x09A3,
-  nnadeva: 0x0923,
-  nnagujarati: 0x0AA3,
-  nnagurmukhi: 0x0A23,
-  nnnadeva: 0x0929,
-  nohiragana: 0x306E,
-  nokatakana: 0x30CE,
-  nokatakanahalfwidth: 0xFF89,
-  nonbreakingspace: 0x00A0,
-  nonenthai: 0x0E13,
-  nonuthai: 0x0E19,
-  noonarabic: 0x0646,
-  noonfinalarabic: 0xFEE6,
-  noonghunnaarabic: 0x06BA,
-  noonghunnafinalarabic: 0xFB9F,
-  nooninitialarabic: 0xFEE7,
-  noonjeeminitialarabic: 0xFCD2,
-  noonjeemisolatedarabic: 0xFC4B,
-  noonmedialarabic: 0xFEE8,
-  noonmeeminitialarabic: 0xFCD5,
-  noonmeemisolatedarabic: 0xFC4E,
-  noonnoonfinalarabic: 0xFC8D,
-  notcontains: 0x220C,
-  notelement: 0x2209,
-  notelementof: 0x2209,
-  notequal: 0x2260,
-  notgreater: 0x226F,
-  notgreaternorequal: 0x2271,
-  notgreaternorless: 0x2279,
-  notidentical: 0x2262,
-  notless: 0x226E,
-  notlessnorequal: 0x2270,
-  notparallel: 0x2226,
-  notprecedes: 0x2280,
-  notsubset: 0x2284,
-  notsucceeds: 0x2281,
-  notsuperset: 0x2285,
-  nowarmenian: 0x0576,
-  nparen: 0x24A9,
-  nssquare: 0x33B1,
-  nsuperior: 0x207F,
-  ntilde: 0x00F1,
-  nu: 0x03BD,
-  nuhiragana: 0x306C,
-  nukatakana: 0x30CC,
-  nukatakanahalfwidth: 0xFF87,
-  nuktabengali: 0x09BC,
-  nuktadeva: 0x093C,
-  nuktagujarati: 0x0ABC,
-  nuktagurmukhi: 0x0A3C,
-  numbersign: 0x0023,
-  numbersignmonospace: 0xFF03,
-  numbersignsmall: 0xFE5F,
-  numeralsigngreek: 0x0374,
-  numeralsignlowergreek: 0x0375,
-  numero: 0x2116,
-  nun: 0x05E0,
-  nundagesh: 0xFB40,
-  nundageshhebrew: 0xFB40,
-  nunhebrew: 0x05E0,
-  nvsquare: 0x33B5,
-  nwsquare: 0x33BB,
-  nyabengali: 0x099E,
-  nyadeva: 0x091E,
-  nyagujarati: 0x0A9E,
-  nyagurmukhi: 0x0A1E,
-  o: 0x006F,
-  oacute: 0x00F3,
-  oangthai: 0x0E2D,
-  obarred: 0x0275,
-  obarredcyrillic: 0x04E9,
-  obarreddieresiscyrillic: 0x04EB,
-  obengali: 0x0993,
-  obopomofo: 0x311B,
-  obreve: 0x014F,
-  ocandradeva: 0x0911,
-  ocandragujarati: 0x0A91,
-  ocandravowelsigndeva: 0x0949,
-  ocandravowelsigngujarati: 0x0AC9,
-  ocaron: 0x01D2,
-  ocircle: 0x24DE,
-  ocircumflex: 0x00F4,
-  ocircumflexacute: 0x1ED1,
-  ocircumflexdotbelow: 0x1ED9,
-  ocircumflexgrave: 0x1ED3,
-  ocircumflexhookabove: 0x1ED5,
-  ocircumflextilde: 0x1ED7,
-  ocyrillic: 0x043E,
-  odblacute: 0x0151,
-  odblgrave: 0x020D,
-  odeva: 0x0913,
-  odieresis: 0x00F6,
-  odieresiscyrillic: 0x04E7,
-  odotbelow: 0x1ECD,
-  oe: 0x0153,
-  oekorean: 0x315A,
-  ogonek: 0x02DB,
-  ogonekcmb: 0x0328,
-  ograve: 0x00F2,
-  ogujarati: 0x0A93,
-  oharmenian: 0x0585,
-  ohiragana: 0x304A,
-  ohookabove: 0x1ECF,
-  ohorn: 0x01A1,
-  ohornacute: 0x1EDB,
-  ohorndotbelow: 0x1EE3,
-  ohorngrave: 0x1EDD,
-  ohornhookabove: 0x1EDF,
-  ohorntilde: 0x1EE1,
-  ohungarumlaut: 0x0151,
-  oi: 0x01A3,
-  oinvertedbreve: 0x020F,
-  okatakana: 0x30AA,
-  okatakanahalfwidth: 0xFF75,
-  okorean: 0x3157,
-  olehebrew: 0x05AB,
-  omacron: 0x014D,
-  omacronacute: 0x1E53,
-  omacrongrave: 0x1E51,
-  omdeva: 0x0950,
-  omega: 0x03C9,
-  omega1: 0x03D6,
-  omegacyrillic: 0x0461,
-  omegalatinclosed: 0x0277,
-  omegaroundcyrillic: 0x047B,
-  omegatitlocyrillic: 0x047D,
-  omegatonos: 0x03CE,
-  omgujarati: 0x0AD0,
-  omicron: 0x03BF,
-  omicrontonos: 0x03CC,
-  omonospace: 0xFF4F,
-  one: 0x0031,
-  onearabic: 0x0661,
-  onebengali: 0x09E7,
-  onecircle: 0x2460,
-  onecircleinversesansserif: 0x278A,
-  onedeva: 0x0967,
-  onedotenleader: 0x2024,
-  oneeighth: 0x215B,
-  onefitted: 0xF6DC,
-  onegujarati: 0x0AE7,
-  onegurmukhi: 0x0A67,
-  onehackarabic: 0x0661,
-  onehalf: 0x00BD,
-  onehangzhou: 0x3021,
-  oneideographicparen: 0x3220,
-  oneinferior: 0x2081,
-  onemonospace: 0xFF11,
-  onenumeratorbengali: 0x09F4,
-  oneoldstyle: 0xF731,
-  oneparen: 0x2474,
-  oneperiod: 0x2488,
-  onepersian: 0x06F1,
-  onequarter: 0x00BC,
-  oneroman: 0x2170,
-  onesuperior: 0x00B9,
-  onethai: 0x0E51,
-  onethird: 0x2153,
-  oogonek: 0x01EB,
-  oogonekmacron: 0x01ED,
-  oogurmukhi: 0x0A13,
-  oomatragurmukhi: 0x0A4B,
-  oopen: 0x0254,
-  oparen: 0x24AA,
-  openbullet: 0x25E6,
-  option: 0x2325,
-  ordfeminine: 0x00AA,
-  ordmasculine: 0x00BA,
-  orthogonal: 0x221F,
-  oshortdeva: 0x0912,
-  oshortvowelsigndeva: 0x094A,
-  oslash: 0x00F8,
-  oslashacute: 0x01FF,
-  osmallhiragana: 0x3049,
-  osmallkatakana: 0x30A9,
-  osmallkatakanahalfwidth: 0xFF6B,
-  ostrokeacute: 0x01FF,
-  osuperior: 0xF6F0,
-  otcyrillic: 0x047F,
-  otilde: 0x00F5,
-  otildeacute: 0x1E4D,
-  otildedieresis: 0x1E4F,
-  oubopomofo: 0x3121,
-  overline: 0x203E,
-  overlinecenterline: 0xFE4A,
-  overlinecmb: 0x0305,
-  overlinedashed: 0xFE49,
-  overlinedblwavy: 0xFE4C,
-  overlinewavy: 0xFE4B,
-  overscore: 0x00AF,
-  ovowelsignbengali: 0x09CB,
-  ovowelsigndeva: 0x094B,
-  ovowelsigngujarati: 0x0ACB,
-  p: 0x0070,
-  paampssquare: 0x3380,
-  paasentosquare: 0x332B,
-  pabengali: 0x09AA,
-  pacute: 0x1E55,
-  padeva: 0x092A,
-  pagedown: 0x21DF,
-  pageup: 0x21DE,
-  pagujarati: 0x0AAA,
-  pagurmukhi: 0x0A2A,
-  pahiragana: 0x3071,
-  paiyannoithai: 0x0E2F,
-  pakatakana: 0x30D1,
-  palatalizationcyrilliccmb: 0x0484,
-  palochkacyrillic: 0x04C0,
-  pansioskorean: 0x317F,
-  paragraph: 0x00B6,
-  parallel: 0x2225,
-  parenleft: 0x0028,
-  parenleftaltonearabic: 0xFD3E,
-  parenleftbt: 0xF8ED,
-  parenleftex: 0xF8EC,
-  parenleftinferior: 0x208D,
-  parenleftmonospace: 0xFF08,
-  parenleftsmall: 0xFE59,
-  parenleftsuperior: 0x207D,
-  parenlefttp: 0xF8EB,
-  parenleftvertical: 0xFE35,
-  parenright: 0x0029,
-  parenrightaltonearabic: 0xFD3F,
-  parenrightbt: 0xF8F8,
-  parenrightex: 0xF8F7,
-  parenrightinferior: 0x208E,
-  parenrightmonospace: 0xFF09,
-  parenrightsmall: 0xFE5A,
-  parenrightsuperior: 0x207E,
-  parenrighttp: 0xF8F6,
-  parenrightvertical: 0xFE36,
-  partialdiff: 0x2202,
-  paseqhebrew: 0x05C0,
-  pashtahebrew: 0x0599,
-  pasquare: 0x33A9,
-  patah: 0x05B7,
-  patah11: 0x05B7,
-  patah1d: 0x05B7,
-  patah2a: 0x05B7,
-  patahhebrew: 0x05B7,
-  patahnarrowhebrew: 0x05B7,
-  patahquarterhebrew: 0x05B7,
-  patahwidehebrew: 0x05B7,
-  pazerhebrew: 0x05A1,
-  pbopomofo: 0x3106,
-  pcircle: 0x24DF,
-  pdotaccent: 0x1E57,
-  pe: 0x05E4,
-  pecyrillic: 0x043F,
-  pedagesh: 0xFB44,
-  pedageshhebrew: 0xFB44,
-  peezisquare: 0x333B,
-  pefinaldageshhebrew: 0xFB43,
-  peharabic: 0x067E,
-  peharmenian: 0x057A,
-  pehebrew: 0x05E4,
-  pehfinalarabic: 0xFB57,
-  pehinitialarabic: 0xFB58,
-  pehiragana: 0x307A,
-  pehmedialarabic: 0xFB59,
-  pekatakana: 0x30DA,
-  pemiddlehookcyrillic: 0x04A7,
-  perafehebrew: 0xFB4E,
-  percent: 0x0025,
-  percentarabic: 0x066A,
-  percentmonospace: 0xFF05,
-  percentsmall: 0xFE6A,
-  period: 0x002E,
-  periodarmenian: 0x0589,
-  periodcentered: 0x00B7,
-  periodhalfwidth: 0xFF61,
-  periodinferior: 0xF6E7,
-  periodmonospace: 0xFF0E,
-  periodsmall: 0xFE52,
-  periodsuperior: 0xF6E8,
-  perispomenigreekcmb: 0x0342,
-  perpendicular: 0x22A5,
-  perthousand: 0x2030,
-  peseta: 0x20A7,
-  pfsquare: 0x338A,
-  phabengali: 0x09AB,
-  phadeva: 0x092B,
-  phagujarati: 0x0AAB,
-  phagurmukhi: 0x0A2B,
-  phi: 0x03C6,
-  phi1: 0x03D5,
-  phieuphacirclekorean: 0x327A,
-  phieuphaparenkorean: 0x321A,
-  phieuphcirclekorean: 0x326C,
-  phieuphkorean: 0x314D,
-  phieuphparenkorean: 0x320C,
-  philatin: 0x0278,
-  phinthuthai: 0x0E3A,
-  phisymbolgreek: 0x03D5,
-  phook: 0x01A5,
-  phophanthai: 0x0E1E,
-  phophungthai: 0x0E1C,
-  phosamphaothai: 0x0E20,
-  pi: 0x03C0,
-  pieupacirclekorean: 0x3273,
-  pieupaparenkorean: 0x3213,
-  pieupcieuckorean: 0x3176,
-  pieupcirclekorean: 0x3265,
-  pieupkiyeokkorean: 0x3172,
-  pieupkorean: 0x3142,
-  pieupparenkorean: 0x3205,
-  pieupsioskiyeokkorean: 0x3174,
-  pieupsioskorean: 0x3144,
-  pieupsiostikeutkorean: 0x3175,
-  pieupthieuthkorean: 0x3177,
-  pieuptikeutkorean: 0x3173,
-  pihiragana: 0x3074,
-  pikatakana: 0x30D4,
-  pisymbolgreek: 0x03D6,
-  piwrarmenian: 0x0583,
-  plus: 0x002B,
-  plusbelowcmb: 0x031F,
-  pluscircle: 0x2295,
-  plusminus: 0x00B1,
-  plusmod: 0x02D6,
-  plusmonospace: 0xFF0B,
-  plussmall: 0xFE62,
-  plussuperior: 0x207A,
-  pmonospace: 0xFF50,
-  pmsquare: 0x33D8,
-  pohiragana: 0x307D,
-  pointingindexdownwhite: 0x261F,
-  pointingindexleftwhite: 0x261C,
-  pointingindexrightwhite: 0x261E,
-  pointingindexupwhite: 0x261D,
-  pokatakana: 0x30DD,
-  poplathai: 0x0E1B,
-  postalmark: 0x3012,
-  postalmarkface: 0x3020,
-  pparen: 0x24AB,
-  precedes: 0x227A,
-  prescription: 0x211E,
-  primemod: 0x02B9,
-  primereversed: 0x2035,
-  product: 0x220F,
-  projective: 0x2305,
-  prolongedkana: 0x30FC,
-  propellor: 0x2318,
-  propersubset: 0x2282,
-  propersuperset: 0x2283,
-  proportion: 0x2237,
-  proportional: 0x221D,
-  psi: 0x03C8,
-  psicyrillic: 0x0471,
-  psilipneumatacyrilliccmb: 0x0486,
-  pssquare: 0x33B0,
-  puhiragana: 0x3077,
-  pukatakana: 0x30D7,
-  pvsquare: 0x33B4,
-  pwsquare: 0x33BA,
-  q: 0x0071,
-  qadeva: 0x0958,
-  qadmahebrew: 0x05A8,
-  qafarabic: 0x0642,
-  qaffinalarabic: 0xFED6,
-  qafinitialarabic: 0xFED7,
-  qafmedialarabic: 0xFED8,
-  qamats: 0x05B8,
-  qamats10: 0x05B8,
-  qamats1a: 0x05B8,
-  qamats1c: 0x05B8,
-  qamats27: 0x05B8,
-  qamats29: 0x05B8,
-  qamats33: 0x05B8,
-  qamatsde: 0x05B8,
-  qamatshebrew: 0x05B8,
-  qamatsnarrowhebrew: 0x05B8,
-  qamatsqatanhebrew: 0x05B8,
-  qamatsqatannarrowhebrew: 0x05B8,
-  qamatsqatanquarterhebrew: 0x05B8,
-  qamatsqatanwidehebrew: 0x05B8,
-  qamatsquarterhebrew: 0x05B8,
-  qamatswidehebrew: 0x05B8,
-  qarneyparahebrew: 0x059F,
-  qbopomofo: 0x3111,
-  qcircle: 0x24E0,
-  qhook: 0x02A0,
-  qmonospace: 0xFF51,
-  qof: 0x05E7,
-  qofdagesh: 0xFB47,
-  qofdageshhebrew: 0xFB47,
-  qofhebrew: 0x05E7,
-  qparen: 0x24AC,
-  quarternote: 0x2669,
-  qubuts: 0x05BB,
-  qubuts18: 0x05BB,
-  qubuts25: 0x05BB,
-  qubuts31: 0x05BB,
-  qubutshebrew: 0x05BB,
-  qubutsnarrowhebrew: 0x05BB,
-  qubutsquarterhebrew: 0x05BB,
-  qubutswidehebrew: 0x05BB,
-  question: 0x003F,
-  questionarabic: 0x061F,
-  questionarmenian: 0x055E,
-  questiondown: 0x00BF,
-  questiondownsmall: 0xF7BF,
-  questiongreek: 0x037E,
-  questionmonospace: 0xFF1F,
-  questionsmall: 0xF73F,
-  quotedbl: 0x0022,
-  quotedblbase: 0x201E,
-  quotedblleft: 0x201C,
-  quotedblmonospace: 0xFF02,
-  quotedblprime: 0x301E,
-  quotedblprimereversed: 0x301D,
-  quotedblright: 0x201D,
-  quoteleft: 0x2018,
-  quoteleftreversed: 0x201B,
-  quotereversed: 0x201B,
-  quoteright: 0x2019,
-  quoterightn: 0x0149,
-  quotesinglbase: 0x201A,
-  quotesingle: 0x0027,
-  quotesinglemonospace: 0xFF07,
-  r: 0x0072,
-  raarmenian: 0x057C,
-  rabengali: 0x09B0,
-  racute: 0x0155,
-  radeva: 0x0930,
-  radical: 0x221A,
-  radicalex: 0xF8E5,
-  radoverssquare: 0x33AE,
-  radoverssquaredsquare: 0x33AF,
-  radsquare: 0x33AD,
-  rafe: 0x05BF,
-  rafehebrew: 0x05BF,
-  ragujarati: 0x0AB0,
-  ragurmukhi: 0x0A30,
-  rahiragana: 0x3089,
-  rakatakana: 0x30E9,
-  rakatakanahalfwidth: 0xFF97,
-  ralowerdiagonalbengali: 0x09F1,
-  ramiddlediagonalbengali: 0x09F0,
-  ramshorn: 0x0264,
-  ratio: 0x2236,
-  rbopomofo: 0x3116,
-  rcaron: 0x0159,
-  rcedilla: 0x0157,
-  rcircle: 0x24E1,
-  rcommaaccent: 0x0157,
-  rdblgrave: 0x0211,
-  rdotaccent: 0x1E59,
-  rdotbelow: 0x1E5B,
-  rdotbelowmacron: 0x1E5D,
-  referencemark: 0x203B,
-  reflexsubset: 0x2286,
-  reflexsuperset: 0x2287,
-  registered: 0x00AE,
-  registersans: 0xF8E8,
-  registerserif: 0xF6DA,
-  reharabic: 0x0631,
-  reharmenian: 0x0580,
-  rehfinalarabic: 0xFEAE,
-  rehiragana: 0x308C,
-  rekatakana: 0x30EC,
-  rekatakanahalfwidth: 0xFF9A,
-  resh: 0x05E8,
-  reshdageshhebrew: 0xFB48,
-  reshhebrew: 0x05E8,
-  reversedtilde: 0x223D,
-  reviahebrew: 0x0597,
-  reviamugrashhebrew: 0x0597,
-  revlogicalnot: 0x2310,
-  rfishhook: 0x027E,
-  rfishhookreversed: 0x027F,
-  rhabengali: 0x09DD,
-  rhadeva: 0x095D,
-  rho: 0x03C1,
-  rhook: 0x027D,
-  rhookturned: 0x027B,
-  rhookturnedsuperior: 0x02B5,
-  rhosymbolgreek: 0x03F1,
-  rhotichookmod: 0x02DE,
-  rieulacirclekorean: 0x3271,
-  rieulaparenkorean: 0x3211,
-  rieulcirclekorean: 0x3263,
-  rieulhieuhkorean: 0x3140,
-  rieulkiyeokkorean: 0x313A,
-  rieulkiyeoksioskorean: 0x3169,
-  rieulkorean: 0x3139,
-  rieulmieumkorean: 0x313B,
-  rieulpansioskorean: 0x316C,
-  rieulparenkorean: 0x3203,
-  rieulphieuphkorean: 0x313F,
-  rieulpieupkorean: 0x313C,
-  rieulpieupsioskorean: 0x316B,
-  rieulsioskorean: 0x313D,
-  rieulthieuthkorean: 0x313E,
-  rieultikeutkorean: 0x316A,
-  rieulyeorinhieuhkorean: 0x316D,
-  rightangle: 0x221F,
-  righttackbelowcmb: 0x0319,
-  righttriangle: 0x22BF,
-  rihiragana: 0x308A,
-  rikatakana: 0x30EA,
-  rikatakanahalfwidth: 0xFF98,
-  ring: 0x02DA,
-  ringbelowcmb: 0x0325,
-  ringcmb: 0x030A,
-  ringhalfleft: 0x02BF,
-  ringhalfleftarmenian: 0x0559,
-  ringhalfleftbelowcmb: 0x031C,
-  ringhalfleftcentered: 0x02D3,
-  ringhalfright: 0x02BE,
-  ringhalfrightbelowcmb: 0x0339,
-  ringhalfrightcentered: 0x02D2,
-  rinvertedbreve: 0x0213,
-  rittorusquare: 0x3351,
-  rlinebelow: 0x1E5F,
-  rlongleg: 0x027C,
-  rlonglegturned: 0x027A,
-  rmonospace: 0xFF52,
-  rohiragana: 0x308D,
-  rokatakana: 0x30ED,
-  rokatakanahalfwidth: 0xFF9B,
-  roruathai: 0x0E23,
-  rparen: 0x24AD,
-  rrabengali: 0x09DC,
-  rradeva: 0x0931,
-  rragurmukhi: 0x0A5C,
-  rreharabic: 0x0691,
-  rrehfinalarabic: 0xFB8D,
-  rrvocalicbengali: 0x09E0,
-  rrvocalicdeva: 0x0960,
-  rrvocalicgujarati: 0x0AE0,
-  rrvocalicvowelsignbengali: 0x09C4,
-  rrvocalicvowelsigndeva: 0x0944,
-  rrvocalicvowelsigngujarati: 0x0AC4,
-  rsuperior: 0xF6F1,
-  rtblock: 0x2590,
-  rturned: 0x0279,
-  rturnedsuperior: 0x02B4,
-  ruhiragana: 0x308B,
-  rukatakana: 0x30EB,
-  rukatakanahalfwidth: 0xFF99,
-  rupeemarkbengali: 0x09F2,
-  rupeesignbengali: 0x09F3,
-  rupiah: 0xF6DD,
-  ruthai: 0x0E24,
-  rvocalicbengali: 0x098B,
-  rvocalicdeva: 0x090B,
-  rvocalicgujarati: 0x0A8B,
-  rvocalicvowelsignbengali: 0x09C3,
-  rvocalicvowelsigndeva: 0x0943,
-  rvocalicvowelsigngujarati: 0x0AC3,
-  s: 0x0073,
-  sabengali: 0x09B8,
-  sacute: 0x015B,
-  sacutedotaccent: 0x1E65,
-  sadarabic: 0x0635,
-  sadeva: 0x0938,
-  sadfinalarabic: 0xFEBA,
-  sadinitialarabic: 0xFEBB,
-  sadmedialarabic: 0xFEBC,
-  sagujarati: 0x0AB8,
-  sagurmukhi: 0x0A38,
-  sahiragana: 0x3055,
-  sakatakana: 0x30B5,
-  sakatakanahalfwidth: 0xFF7B,
-  sallallahoualayhewasallamarabic: 0xFDFA,
-  samekh: 0x05E1,
-  samekhdagesh: 0xFB41,
-  samekhdageshhebrew: 0xFB41,
-  samekhhebrew: 0x05E1,
-  saraaathai: 0x0E32,
-  saraaethai: 0x0E41,
-  saraaimaimalaithai: 0x0E44,
-  saraaimaimuanthai: 0x0E43,
-  saraamthai: 0x0E33,
-  saraathai: 0x0E30,
-  saraethai: 0x0E40,
-  saraiileftthai: 0xF886,
-  saraiithai: 0x0E35,
-  saraileftthai: 0xF885,
-  saraithai: 0x0E34,
-  saraothai: 0x0E42,
-  saraueeleftthai: 0xF888,
-  saraueethai: 0x0E37,
-  saraueleftthai: 0xF887,
-  sarauethai: 0x0E36,
-  sarauthai: 0x0E38,
-  sarauuthai: 0x0E39,
-  sbopomofo: 0x3119,
-  scaron: 0x0161,
-  scarondotaccent: 0x1E67,
-  scedilla: 0x015F,
-  schwa: 0x0259,
-  schwacyrillic: 0x04D9,
-  schwadieresiscyrillic: 0x04DB,
-  schwahook: 0x025A,
-  scircle: 0x24E2,
-  scircumflex: 0x015D,
-  scommaaccent: 0x0219,
-  sdotaccent: 0x1E61,
-  sdotbelow: 0x1E63,
-  sdotbelowdotaccent: 0x1E69,
-  seagullbelowcmb: 0x033C,
-  second: 0x2033,
-  secondtonechinese: 0x02CA,
-  section: 0x00A7,
-  seenarabic: 0x0633,
-  seenfinalarabic: 0xFEB2,
-  seeninitialarabic: 0xFEB3,
-  seenmedialarabic: 0xFEB4,
-  segol: 0x05B6,
-  segol13: 0x05B6,
-  segol1f: 0x05B6,
-  segol2c: 0x05B6,
-  segolhebrew: 0x05B6,
-  segolnarrowhebrew: 0x05B6,
-  segolquarterhebrew: 0x05B6,
-  segoltahebrew: 0x0592,
-  segolwidehebrew: 0x05B6,
-  seharmenian: 0x057D,
-  sehiragana: 0x305B,
-  sekatakana: 0x30BB,
-  sekatakanahalfwidth: 0xFF7E,
-  semicolon: 0x003B,
-  semicolonarabic: 0x061B,
-  semicolonmonospace: 0xFF1B,
-  semicolonsmall: 0xFE54,
-  semivoicedmarkkana: 0x309C,
-  semivoicedmarkkanahalfwidth: 0xFF9F,
-  sentisquare: 0x3322,
-  sentosquare: 0x3323,
-  seven: 0x0037,
-  sevenarabic: 0x0667,
-  sevenbengali: 0x09ED,
-  sevencircle: 0x2466,
-  sevencircleinversesansserif: 0x2790,
-  sevendeva: 0x096D,
-  seveneighths: 0x215E,
-  sevengujarati: 0x0AED,
-  sevengurmukhi: 0x0A6D,
-  sevenhackarabic: 0x0667,
-  sevenhangzhou: 0x3027,
-  sevenideographicparen: 0x3226,
-  seveninferior: 0x2087,
-  sevenmonospace: 0xFF17,
-  sevenoldstyle: 0xF737,
-  sevenparen: 0x247A,
-  sevenperiod: 0x248E,
-  sevenpersian: 0x06F7,
-  sevenroman: 0x2176,
-  sevensuperior: 0x2077,
-  seventeencircle: 0x2470,
-  seventeenparen: 0x2484,
-  seventeenperiod: 0x2498,
-  seventhai: 0x0E57,
-  sfthyphen: 0x00AD,
-  shaarmenian: 0x0577,
-  shabengali: 0x09B6,
-  shacyrillic: 0x0448,
-  shaddaarabic: 0x0651,
-  shaddadammaarabic: 0xFC61,
-  shaddadammatanarabic: 0xFC5E,
-  shaddafathaarabic: 0xFC60,
-  shaddakasraarabic: 0xFC62,
-  shaddakasratanarabic: 0xFC5F,
-  shade: 0x2592,
-  shadedark: 0x2593,
-  shadelight: 0x2591,
-  shademedium: 0x2592,
-  shadeva: 0x0936,
-  shagujarati: 0x0AB6,
-  shagurmukhi: 0x0A36,
-  shalshelethebrew: 0x0593,
-  shbopomofo: 0x3115,
-  shchacyrillic: 0x0449,
-  sheenarabic: 0x0634,
-  sheenfinalarabic: 0xFEB6,
-  sheeninitialarabic: 0xFEB7,
-  sheenmedialarabic: 0xFEB8,
-  sheicoptic: 0x03E3,
-  sheqel: 0x20AA,
-  sheqelhebrew: 0x20AA,
-  sheva: 0x05B0,
-  sheva115: 0x05B0,
-  sheva15: 0x05B0,
-  sheva22: 0x05B0,
-  sheva2e: 0x05B0,
-  shevahebrew: 0x05B0,
-  shevanarrowhebrew: 0x05B0,
-  shevaquarterhebrew: 0x05B0,
-  shevawidehebrew: 0x05B0,
-  shhacyrillic: 0x04BB,
-  shimacoptic: 0x03ED,
-  shin: 0x05E9,
-  shindagesh: 0xFB49,
-  shindageshhebrew: 0xFB49,
-  shindageshshindot: 0xFB2C,
-  shindageshshindothebrew: 0xFB2C,
-  shindageshsindot: 0xFB2D,
-  shindageshsindothebrew: 0xFB2D,
-  shindothebrew: 0x05C1,
-  shinhebrew: 0x05E9,
-  shinshindot: 0xFB2A,
-  shinshindothebrew: 0xFB2A,
-  shinsindot: 0xFB2B,
-  shinsindothebrew: 0xFB2B,
-  shook: 0x0282,
-  sigma: 0x03C3,
-  sigma1: 0x03C2,
-  sigmafinal: 0x03C2,
-  sigmalunatesymbolgreek: 0x03F2,
-  sihiragana: 0x3057,
-  sikatakana: 0x30B7,
-  sikatakanahalfwidth: 0xFF7C,
-  siluqhebrew: 0x05BD,
-  siluqlefthebrew: 0x05BD,
-  similar: 0x223C,
-  sindothebrew: 0x05C2,
-  siosacirclekorean: 0x3274,
-  siosaparenkorean: 0x3214,
-  sioscieuckorean: 0x317E,
-  sioscirclekorean: 0x3266,
-  sioskiyeokkorean: 0x317A,
-  sioskorean: 0x3145,
-  siosnieunkorean: 0x317B,
-  siosparenkorean: 0x3206,
-  siospieupkorean: 0x317D,
-  siostikeutkorean: 0x317C,
-  six: 0x0036,
-  sixarabic: 0x0666,
-  sixbengali: 0x09EC,
-  sixcircle: 0x2465,
-  sixcircleinversesansserif: 0x278F,
-  sixdeva: 0x096C,
-  sixgujarati: 0x0AEC,
-  sixgurmukhi: 0x0A6C,
-  sixhackarabic: 0x0666,
-  sixhangzhou: 0x3026,
-  sixideographicparen: 0x3225,
-  sixinferior: 0x2086,
-  sixmonospace: 0xFF16,
-  sixoldstyle: 0xF736,
-  sixparen: 0x2479,
-  sixperiod: 0x248D,
-  sixpersian: 0x06F6,
-  sixroman: 0x2175,
-  sixsuperior: 0x2076,
-  sixteencircle: 0x246F,
-  sixteencurrencydenominatorbengali: 0x09F9,
-  sixteenparen: 0x2483,
-  sixteenperiod: 0x2497,
-  sixthai: 0x0E56,
-  slash: 0x002F,
-  slashmonospace: 0xFF0F,
-  slong: 0x017F,
-  slongdotaccent: 0x1E9B,
-  smileface: 0x263A,
-  smonospace: 0xFF53,
-  sofpasuqhebrew: 0x05C3,
-  softhyphen: 0x00AD,
-  softsigncyrillic: 0x044C,
-  sohiragana: 0x305D,
-  sokatakana: 0x30BD,
-  sokatakanahalfwidth: 0xFF7F,
-  soliduslongoverlaycmb: 0x0338,
-  solidusshortoverlaycmb: 0x0337,
-  sorusithai: 0x0E29,
-  sosalathai: 0x0E28,
-  sosothai: 0x0E0B,
-  sosuathai: 0x0E2A,
-  space: 0x0020,
-  spacehackarabic: 0x0020,
-  spade: 0x2660,
-  spadesuitblack: 0x2660,
-  spadesuitwhite: 0x2664,
-  sparen: 0x24AE,
-  squarebelowcmb: 0x033B,
-  squarecc: 0x33C4,
-  squarecm: 0x339D,
-  squarediagonalcrosshatchfill: 0x25A9,
-  squarehorizontalfill: 0x25A4,
-  squarekg: 0x338F,
-  squarekm: 0x339E,
-  squarekmcapital: 0x33CE,
-  squareln: 0x33D1,
-  squarelog: 0x33D2,
-  squaremg: 0x338E,
-  squaremil: 0x33D5,
-  squaremm: 0x339C,
-  squaremsquared: 0x33A1,
-  squareorthogonalcrosshatchfill: 0x25A6,
-  squareupperlefttolowerrightfill: 0x25A7,
-  squareupperrighttolowerleftfill: 0x25A8,
-  squareverticalfill: 0x25A5,
-  squarewhitewithsmallblack: 0x25A3,
-  srsquare: 0x33DB,
-  ssabengali: 0x09B7,
-  ssadeva: 0x0937,
-  ssagujarati: 0x0AB7,
-  ssangcieuckorean: 0x3149,
-  ssanghieuhkorean: 0x3185,
-  ssangieungkorean: 0x3180,
-  ssangkiyeokkorean: 0x3132,
-  ssangnieunkorean: 0x3165,
-  ssangpieupkorean: 0x3143,
-  ssangsioskorean: 0x3146,
-  ssangtikeutkorean: 0x3138,
-  ssuperior: 0xF6F2,
-  sterling: 0x00A3,
-  sterlingmonospace: 0xFFE1,
-  strokelongoverlaycmb: 0x0336,
-  strokeshortoverlaycmb: 0x0335,
-  subset: 0x2282,
-  subsetnotequal: 0x228A,
-  subsetorequal: 0x2286,
-  succeeds: 0x227B,
-  suchthat: 0x220B,
-  suhiragana: 0x3059,
-  sukatakana: 0x30B9,
-  sukatakanahalfwidth: 0xFF7D,
-  sukunarabic: 0x0652,
-  summation: 0x2211,
-  sun: 0x263C,
-  superset: 0x2283,
-  supersetnotequal: 0x228B,
-  supersetorequal: 0x2287,
-  svsquare: 0x33DC,
-  syouwaerasquare: 0x337C,
-  t: 0x0074,
-  tabengali: 0x09A4,
-  tackdown: 0x22A4,
-  tackleft: 0x22A3,
-  tadeva: 0x0924,
-  tagujarati: 0x0AA4,
-  tagurmukhi: 0x0A24,
-  taharabic: 0x0637,
-  tahfinalarabic: 0xFEC2,
-  tahinitialarabic: 0xFEC3,
-  tahiragana: 0x305F,
-  tahmedialarabic: 0xFEC4,
-  taisyouerasquare: 0x337D,
-  takatakana: 0x30BF,
-  takatakanahalfwidth: 0xFF80,
-  tatweelarabic: 0x0640,
-  tau: 0x03C4,
-  tav: 0x05EA,
-  tavdages: 0xFB4A,
-  tavdagesh: 0xFB4A,
-  tavdageshhebrew: 0xFB4A,
-  tavhebrew: 0x05EA,
-  tbar: 0x0167,
-  tbopomofo: 0x310A,
-  tcaron: 0x0165,
-  tccurl: 0x02A8,
-  tcedilla: 0x0163,
-  tcheharabic: 0x0686,
-  tchehfinalarabic: 0xFB7B,
-  tchehinitialarabic: 0xFB7C,
-  tchehmedialarabic: 0xFB7D,
-  tcircle: 0x24E3,
-  tcircumflexbelow: 0x1E71,
-  tcommaaccent: 0x0163,
-  tdieresis: 0x1E97,
-  tdotaccent: 0x1E6B,
-  tdotbelow: 0x1E6D,
-  tecyrillic: 0x0442,
-  tedescendercyrillic: 0x04AD,
-  teharabic: 0x062A,
-  tehfinalarabic: 0xFE96,
-  tehhahinitialarabic: 0xFCA2,
-  tehhahisolatedarabic: 0xFC0C,
-  tehinitialarabic: 0xFE97,
-  tehiragana: 0x3066,
-  tehjeeminitialarabic: 0xFCA1,
-  tehjeemisolatedarabic: 0xFC0B,
-  tehmarbutaarabic: 0x0629,
-  tehmarbutafinalarabic: 0xFE94,
-  tehmedialarabic: 0xFE98,
-  tehmeeminitialarabic: 0xFCA4,
-  tehmeemisolatedarabic: 0xFC0E,
-  tehnoonfinalarabic: 0xFC73,
-  tekatakana: 0x30C6,
-  tekatakanahalfwidth: 0xFF83,
-  telephone: 0x2121,
-  telephoneblack: 0x260E,
-  telishagedolahebrew: 0x05A0,
-  telishaqetanahebrew: 0x05A9,
-  tencircle: 0x2469,
-  tenideographicparen: 0x3229,
-  tenparen: 0x247D,
-  tenperiod: 0x2491,
-  tenroman: 0x2179,
-  tesh: 0x02A7,
-  tet: 0x05D8,
-  tetdagesh: 0xFB38,
-  tetdageshhebrew: 0xFB38,
-  tethebrew: 0x05D8,
-  tetsecyrillic: 0x04B5,
-  tevirhebrew: 0x059B,
-  tevirlefthebrew: 0x059B,
-  thabengali: 0x09A5,
-  thadeva: 0x0925,
-  thagujarati: 0x0AA5,
-  thagurmukhi: 0x0A25,
-  thalarabic: 0x0630,
-  thalfinalarabic: 0xFEAC,
-  thanthakhatlowleftthai: 0xF898,
-  thanthakhatlowrightthai: 0xF897,
-  thanthakhatthai: 0x0E4C,
-  thanthakhatupperleftthai: 0xF896,
-  theharabic: 0x062B,
-  thehfinalarabic: 0xFE9A,
-  thehinitialarabic: 0xFE9B,
-  thehmedialarabic: 0xFE9C,
-  thereexists: 0x2203,
-  therefore: 0x2234,
-  theta: 0x03B8,
-  theta1: 0x03D1,
-  thetasymbolgreek: 0x03D1,
-  thieuthacirclekorean: 0x3279,
-  thieuthaparenkorean: 0x3219,
-  thieuthcirclekorean: 0x326B,
-  thieuthkorean: 0x314C,
-  thieuthparenkorean: 0x320B,
-  thirteencircle: 0x246C,
-  thirteenparen: 0x2480,
-  thirteenperiod: 0x2494,
-  thonangmonthothai: 0x0E11,
-  thook: 0x01AD,
-  thophuthaothai: 0x0E12,
-  thorn: 0x00FE,
-  thothahanthai: 0x0E17,
-  thothanthai: 0x0E10,
-  thothongthai: 0x0E18,
-  thothungthai: 0x0E16,
-  thousandcyrillic: 0x0482,
-  thousandsseparatorarabic: 0x066C,
-  thousandsseparatorpersian: 0x066C,
-  three: 0x0033,
-  threearabic: 0x0663,
-  threebengali: 0x09E9,
-  threecircle: 0x2462,
-  threecircleinversesansserif: 0x278C,
-  threedeva: 0x0969,
-  threeeighths: 0x215C,
-  threegujarati: 0x0AE9,
-  threegurmukhi: 0x0A69,
-  threehackarabic: 0x0663,
-  threehangzhou: 0x3023,
-  threeideographicparen: 0x3222,
-  threeinferior: 0x2083,
-  threemonospace: 0xFF13,
-  threenumeratorbengali: 0x09F6,
-  threeoldstyle: 0xF733,
-  threeparen: 0x2476,
-  threeperiod: 0x248A,
-  threepersian: 0x06F3,
-  threequarters: 0x00BE,
-  threequartersemdash: 0xF6DE,
-  threeroman: 0x2172,
-  threesuperior: 0x00B3,
-  threethai: 0x0E53,
-  thzsquare: 0x3394,
-  tihiragana: 0x3061,
-  tikatakana: 0x30C1,
-  tikatakanahalfwidth: 0xFF81,
-  tikeutacirclekorean: 0x3270,
-  tikeutaparenkorean: 0x3210,
-  tikeutcirclekorean: 0x3262,
-  tikeutkorean: 0x3137,
-  tikeutparenkorean: 0x3202,
-  tilde: 0x02DC,
-  tildebelowcmb: 0x0330,
-  tildecmb: 0x0303,
-  tildecomb: 0x0303,
-  tildedoublecmb: 0x0360,
-  tildeoperator: 0x223C,
-  tildeoverlaycmb: 0x0334,
-  tildeverticalcmb: 0x033E,
-  timescircle: 0x2297,
-  tipehahebrew: 0x0596,
-  tipehalefthebrew: 0x0596,
-  tippigurmukhi: 0x0A70,
-  titlocyrilliccmb: 0x0483,
-  tiwnarmenian: 0x057F,
-  tlinebelow: 0x1E6F,
-  tmonospace: 0xFF54,
-  toarmenian: 0x0569,
-  tohiragana: 0x3068,
-  tokatakana: 0x30C8,
-  tokatakanahalfwidth: 0xFF84,
-  tonebarextrahighmod: 0x02E5,
-  tonebarextralowmod: 0x02E9,
-  tonebarhighmod: 0x02E6,
-  tonebarlowmod: 0x02E8,
-  tonebarmidmod: 0x02E7,
-  tonefive: 0x01BD,
-  tonesix: 0x0185,
-  tonetwo: 0x01A8,
-  tonos: 0x0384,
-  tonsquare: 0x3327,
-  topatakthai: 0x0E0F,
-  tortoiseshellbracketleft: 0x3014,
-  tortoiseshellbracketleftsmall: 0xFE5D,
-  tortoiseshellbracketleftvertical: 0xFE39,
-  tortoiseshellbracketright: 0x3015,
-  tortoiseshellbracketrightsmall: 0xFE5E,
-  tortoiseshellbracketrightvertical: 0xFE3A,
-  totaothai: 0x0E15,
-  tpalatalhook: 0x01AB,
-  tparen: 0x24AF,
-  trademark: 0x2122,
-  trademarksans: 0xF8EA,
-  trademarkserif: 0xF6DB,
-  tretroflexhook: 0x0288,
-  triagdn: 0x25BC,
-  triaglf: 0x25C4,
-  triagrt: 0x25BA,
-  triagup: 0x25B2,
-  ts: 0x02A6,
-  tsadi: 0x05E6,
-  tsadidagesh: 0xFB46,
-  tsadidageshhebrew: 0xFB46,
-  tsadihebrew: 0x05E6,
-  tsecyrillic: 0x0446,
-  tsere: 0x05B5,
-  tsere12: 0x05B5,
-  tsere1e: 0x05B5,
-  tsere2b: 0x05B5,
-  tserehebrew: 0x05B5,
-  tserenarrowhebrew: 0x05B5,
-  tserequarterhebrew: 0x05B5,
-  tserewidehebrew: 0x05B5,
-  tshecyrillic: 0x045B,
-  tsuperior: 0xF6F3,
-  ttabengali: 0x099F,
-  ttadeva: 0x091F,
-  ttagujarati: 0x0A9F,
-  ttagurmukhi: 0x0A1F,
-  tteharabic: 0x0679,
-  ttehfinalarabic: 0xFB67,
-  ttehinitialarabic: 0xFB68,
-  ttehmedialarabic: 0xFB69,
-  tthabengali: 0x09A0,
-  tthadeva: 0x0920,
-  tthagujarati: 0x0AA0,
-  tthagurmukhi: 0x0A20,
-  tturned: 0x0287,
-  tuhiragana: 0x3064,
-  tukatakana: 0x30C4,
-  tukatakanahalfwidth: 0xFF82,
-  tusmallhiragana: 0x3063,
-  tusmallkatakana: 0x30C3,
-  tusmallkatakanahalfwidth: 0xFF6F,
-  twelvecircle: 0x246B,
-  twelveparen: 0x247F,
-  twelveperiod: 0x2493,
-  twelveroman: 0x217B,
-  twentycircle: 0x2473,
-  twentyhangzhou: 0x5344,
-  twentyparen: 0x2487,
-  twentyperiod: 0x249B,
-  two: 0x0032,
-  twoarabic: 0x0662,
-  twobengali: 0x09E8,
-  twocircle: 0x2461,
-  twocircleinversesansserif: 0x278B,
-  twodeva: 0x0968,
-  twodotenleader: 0x2025,
-  twodotleader: 0x2025,
-  twodotleadervertical: 0xFE30,
-  twogujarati: 0x0AE8,
-  twogurmukhi: 0x0A68,
-  twohackarabic: 0x0662,
-  twohangzhou: 0x3022,
-  twoideographicparen: 0x3221,
-  twoinferior: 0x2082,
-  twomonospace: 0xFF12,
-  twonumeratorbengali: 0x09F5,
-  twooldstyle: 0xF732,
-  twoparen: 0x2475,
-  twoperiod: 0x2489,
-  twopersian: 0x06F2,
-  tworoman: 0x2171,
-  twostroke: 0x01BB,
-  twosuperior: 0x00B2,
-  twothai: 0x0E52,
-  twothirds: 0x2154,
-  u: 0x0075,
-  uacute: 0x00FA,
-  ubar: 0x0289,
-  ubengali: 0x0989,
-  ubopomofo: 0x3128,
-  ubreve: 0x016D,
-  ucaron: 0x01D4,
-  ucircle: 0x24E4,
-  ucircumflex: 0x00FB,
-  ucircumflexbelow: 0x1E77,
-  ucyrillic: 0x0443,
-  udattadeva: 0x0951,
-  udblacute: 0x0171,
-  udblgrave: 0x0215,
-  udeva: 0x0909,
-  udieresis: 0x00FC,
-  udieresisacute: 0x01D8,
-  udieresisbelow: 0x1E73,
-  udieresiscaron: 0x01DA,
-  udieresiscyrillic: 0x04F1,
-  udieresisgrave: 0x01DC,
-  udieresismacron: 0x01D6,
-  udotbelow: 0x1EE5,
-  ugrave: 0x00F9,
-  ugujarati: 0x0A89,
-  ugurmukhi: 0x0A09,
-  uhiragana: 0x3046,
-  uhookabove: 0x1EE7,
-  uhorn: 0x01B0,
-  uhornacute: 0x1EE9,
-  uhorndotbelow: 0x1EF1,
-  uhorngrave: 0x1EEB,
-  uhornhookabove: 0x1EED,
-  uhorntilde: 0x1EEF,
-  uhungarumlaut: 0x0171,
-  uhungarumlautcyrillic: 0x04F3,
-  uinvertedbreve: 0x0217,
-  ukatakana: 0x30A6,
-  ukatakanahalfwidth: 0xFF73,
-  ukcyrillic: 0x0479,
-  ukorean: 0x315C,
-  umacron: 0x016B,
-  umacroncyrillic: 0x04EF,
-  umacrondieresis: 0x1E7B,
-  umatragurmukhi: 0x0A41,
-  umonospace: 0xFF55,
-  underscore: 0x005F,
-  underscoredbl: 0x2017,
-  underscoremonospace: 0xFF3F,
-  underscorevertical: 0xFE33,
-  underscorewavy: 0xFE4F,
-  union: 0x222A,
-  universal: 0x2200,
-  uogonek: 0x0173,
-  uparen: 0x24B0,
-  upblock: 0x2580,
-  upperdothebrew: 0x05C4,
-  upsilon: 0x03C5,
-  upsilondieresis: 0x03CB,
-  upsilondieresistonos: 0x03B0,
-  upsilonlatin: 0x028A,
-  upsilontonos: 0x03CD,
-  uptackbelowcmb: 0x031D,
-  uptackmod: 0x02D4,
-  uragurmukhi: 0x0A73,
-  uring: 0x016F,
-  ushortcyrillic: 0x045E,
-  usmallhiragana: 0x3045,
-  usmallkatakana: 0x30A5,
-  usmallkatakanahalfwidth: 0xFF69,
-  ustraightcyrillic: 0x04AF,
-  ustraightstrokecyrillic: 0x04B1,
-  utilde: 0x0169,
-  utildeacute: 0x1E79,
-  utildebelow: 0x1E75,
-  uubengali: 0x098A,
-  uudeva: 0x090A,
-  uugujarati: 0x0A8A,
-  uugurmukhi: 0x0A0A,
-  uumatragurmukhi: 0x0A42,
-  uuvowelsignbengali: 0x09C2,
-  uuvowelsigndeva: 0x0942,
-  uuvowelsigngujarati: 0x0AC2,
-  uvowelsignbengali: 0x09C1,
-  uvowelsigndeva: 0x0941,
-  uvowelsigngujarati: 0x0AC1,
-  v: 0x0076,
-  vadeva: 0x0935,
-  vagujarati: 0x0AB5,
-  vagurmukhi: 0x0A35,
-  vakatakana: 0x30F7,
-  vav: 0x05D5,
-  vavdagesh: 0xFB35,
-  vavdagesh65: 0xFB35,
-  vavdageshhebrew: 0xFB35,
-  vavhebrew: 0x05D5,
-  vavholam: 0xFB4B,
-  vavholamhebrew: 0xFB4B,
-  vavvavhebrew: 0x05F0,
-  vavyodhebrew: 0x05F1,
-  vcircle: 0x24E5,
-  vdotbelow: 0x1E7F,
-  vecyrillic: 0x0432,
-  veharabic: 0x06A4,
-  vehfinalarabic: 0xFB6B,
-  vehinitialarabic: 0xFB6C,
-  vehmedialarabic: 0xFB6D,
-  vekatakana: 0x30F9,
-  venus: 0x2640,
-  verticalbar: 0x007C,
-  verticallineabovecmb: 0x030D,
-  verticallinebelowcmb: 0x0329,
-  verticallinelowmod: 0x02CC,
-  verticallinemod: 0x02C8,
-  vewarmenian: 0x057E,
-  vhook: 0x028B,
-  vikatakana: 0x30F8,
-  viramabengali: 0x09CD,
-  viramadeva: 0x094D,
-  viramagujarati: 0x0ACD,
-  visargabengali: 0x0983,
-  visargadeva: 0x0903,
-  visargagujarati: 0x0A83,
-  vmonospace: 0xFF56,
-  voarmenian: 0x0578,
-  voicediterationhiragana: 0x309E,
-  voicediterationkatakana: 0x30FE,
-  voicedmarkkana: 0x309B,
-  voicedmarkkanahalfwidth: 0xFF9E,
-  vokatakana: 0x30FA,
-  vparen: 0x24B1,
-  vtilde: 0x1E7D,
-  vturned: 0x028C,
-  vuhiragana: 0x3094,
-  vukatakana: 0x30F4,
-  w: 0x0077,
-  wacute: 0x1E83,
-  waekorean: 0x3159,
-  wahiragana: 0x308F,
-  wakatakana: 0x30EF,
-  wakatakanahalfwidth: 0xFF9C,
-  wakorean: 0x3158,
-  wasmallhiragana: 0x308E,
-  wasmallkatakana: 0x30EE,
-  wattosquare: 0x3357,
-  wavedash: 0x301C,
-  wavyunderscorevertical: 0xFE34,
-  wawarabic: 0x0648,
-  wawfinalarabic: 0xFEEE,
-  wawhamzaabovearabic: 0x0624,
-  wawhamzaabovefinalarabic: 0xFE86,
-  wbsquare: 0x33DD,
-  wcircle: 0x24E6,
-  wcircumflex: 0x0175,
-  wdieresis: 0x1E85,
-  wdotaccent: 0x1E87,
-  wdotbelow: 0x1E89,
-  wehiragana: 0x3091,
-  weierstrass: 0x2118,
-  wekatakana: 0x30F1,
-  wekorean: 0x315E,
-  weokorean: 0x315D,
-  wgrave: 0x1E81,
-  whitebullet: 0x25E6,
-  whitecircle: 0x25CB,
-  whitecircleinverse: 0x25D9,
-  whitecornerbracketleft: 0x300E,
-  whitecornerbracketleftvertical: 0xFE43,
-  whitecornerbracketright: 0x300F,
-  whitecornerbracketrightvertical: 0xFE44,
-  whitediamond: 0x25C7,
-  whitediamondcontainingblacksmalldiamond: 0x25C8,
-  whitedownpointingsmalltriangle: 0x25BF,
-  whitedownpointingtriangle: 0x25BD,
-  whiteleftpointingsmalltriangle: 0x25C3,
-  whiteleftpointingtriangle: 0x25C1,
-  whitelenticularbracketleft: 0x3016,
-  whitelenticularbracketright: 0x3017,
-  whiterightpointingsmalltriangle: 0x25B9,
-  whiterightpointingtriangle: 0x25B7,
-  whitesmallsquare: 0x25AB,
-  whitesmilingface: 0x263A,
-  whitesquare: 0x25A1,
-  whitestar: 0x2606,
-  whitetelephone: 0x260F,
-  whitetortoiseshellbracketleft: 0x3018,
-  whitetortoiseshellbracketright: 0x3019,
-  whiteuppointingsmalltriangle: 0x25B5,
-  whiteuppointingtriangle: 0x25B3,
-  wihiragana: 0x3090,
-  wikatakana: 0x30F0,
-  wikorean: 0x315F,
-  wmonospace: 0xFF57,
-  wohiragana: 0x3092,
-  wokatakana: 0x30F2,
-  wokatakanahalfwidth: 0xFF66,
-  won: 0x20A9,
-  wonmonospace: 0xFFE6,
-  wowaenthai: 0x0E27,
-  wparen: 0x24B2,
-  wring: 0x1E98,
-  wsuperior: 0x02B7,
-  wturned: 0x028D,
-  wynn: 0x01BF,
-  x: 0x0078,
-  xabovecmb: 0x033D,
-  xbopomofo: 0x3112,
-  xcircle: 0x24E7,
-  xdieresis: 0x1E8D,
-  xdotaccent: 0x1E8B,
-  xeharmenian: 0x056D,
-  xi: 0x03BE,
-  xmonospace: 0xFF58,
-  xparen: 0x24B3,
-  xsuperior: 0x02E3,
-  y: 0x0079,
-  yaadosquare: 0x334E,
-  yabengali: 0x09AF,
-  yacute: 0x00FD,
-  yadeva: 0x092F,
-  yaekorean: 0x3152,
-  yagujarati: 0x0AAF,
-  yagurmukhi: 0x0A2F,
-  yahiragana: 0x3084,
-  yakatakana: 0x30E4,
-  yakatakanahalfwidth: 0xFF94,
-  yakorean: 0x3151,
-  yamakkanthai: 0x0E4E,
-  yasmallhiragana: 0x3083,
-  yasmallkatakana: 0x30E3,
-  yasmallkatakanahalfwidth: 0xFF6C,
-  yatcyrillic: 0x0463,
-  ycircle: 0x24E8,
-  ycircumflex: 0x0177,
-  ydieresis: 0x00FF,
-  ydotaccent: 0x1E8F,
-  ydotbelow: 0x1EF5,
-  yeharabic: 0x064A,
-  yehbarreearabic: 0x06D2,
-  yehbarreefinalarabic: 0xFBAF,
-  yehfinalarabic: 0xFEF2,
-  yehhamzaabovearabic: 0x0626,
-  yehhamzaabovefinalarabic: 0xFE8A,
-  yehhamzaaboveinitialarabic: 0xFE8B,
-  yehhamzaabovemedialarabic: 0xFE8C,
-  yehinitialarabic: 0xFEF3,
-  yehmedialarabic: 0xFEF4,
-  yehmeeminitialarabic: 0xFCDD,
-  yehmeemisolatedarabic: 0xFC58,
-  yehnoonfinalarabic: 0xFC94,
-  yehthreedotsbelowarabic: 0x06D1,
-  yekorean: 0x3156,
-  yen: 0x00A5,
-  yenmonospace: 0xFFE5,
-  yeokorean: 0x3155,
-  yeorinhieuhkorean: 0x3186,
-  yerahbenyomohebrew: 0x05AA,
-  yerahbenyomolefthebrew: 0x05AA,
-  yericyrillic: 0x044B,
-  yerudieresiscyrillic: 0x04F9,
-  yesieungkorean: 0x3181,
-  yesieungpansioskorean: 0x3183,
-  yesieungsioskorean: 0x3182,
-  yetivhebrew: 0x059A,
-  ygrave: 0x1EF3,
-  yhook: 0x01B4,
-  yhookabove: 0x1EF7,
-  yiarmenian: 0x0575,
-  yicyrillic: 0x0457,
-  yikorean: 0x3162,
-  yinyang: 0x262F,
-  yiwnarmenian: 0x0582,
-  ymonospace: 0xFF59,
-  yod: 0x05D9,
-  yoddagesh: 0xFB39,
-  yoddageshhebrew: 0xFB39,
-  yodhebrew: 0x05D9,
-  yodyodhebrew: 0x05F2,
-  yodyodpatahhebrew: 0xFB1F,
-  yohiragana: 0x3088,
-  yoikorean: 0x3189,
-  yokatakana: 0x30E8,
-  yokatakanahalfwidth: 0xFF96,
-  yokorean: 0x315B,
-  yosmallhiragana: 0x3087,
-  yosmallkatakana: 0x30E7,
-  yosmallkatakanahalfwidth: 0xFF6E,
-  yotgreek: 0x03F3,
-  yoyaekorean: 0x3188,
-  yoyakorean: 0x3187,
-  yoyakthai: 0x0E22,
-  yoyingthai: 0x0E0D,
-  yparen: 0x24B4,
-  ypogegrammeni: 0x037A,
-  ypogegrammenigreekcmb: 0x0345,
-  yr: 0x01A6,
-  yring: 0x1E99,
-  ysuperior: 0x02B8,
-  ytilde: 0x1EF9,
-  yturned: 0x028E,
-  yuhiragana: 0x3086,
-  yuikorean: 0x318C,
-  yukatakana: 0x30E6,
-  yukatakanahalfwidth: 0xFF95,
-  yukorean: 0x3160,
-  yusbigcyrillic: 0x046B,
-  yusbigiotifiedcyrillic: 0x046D,
-  yuslittlecyrillic: 0x0467,
-  yuslittleiotifiedcyrillic: 0x0469,
-  yusmallhiragana: 0x3085,
-  yusmallkatakana: 0x30E5,
-  yusmallkatakanahalfwidth: 0xFF6D,
-  yuyekorean: 0x318B,
-  yuyeokorean: 0x318A,
-  yyabengali: 0x09DF,
-  yyadeva: 0x095F,
-  z: 0x007A,
-  zaarmenian: 0x0566,
-  zacute: 0x017A,
-  zadeva: 0x095B,
-  zagurmukhi: 0x0A5B,
-  zaharabic: 0x0638,
-  zahfinalarabic: 0xFEC6,
-  zahinitialarabic: 0xFEC7,
-  zahiragana: 0x3056,
-  zahmedialarabic: 0xFEC8,
-  zainarabic: 0x0632,
-  zainfinalarabic: 0xFEB0,
-  zakatakana: 0x30B6,
-  zaqefgadolhebrew: 0x0595,
-  zaqefqatanhebrew: 0x0594,
-  zarqahebrew: 0x0598,
-  zayin: 0x05D6,
-  zayindagesh: 0xFB36,
-  zayindageshhebrew: 0xFB36,
-  zayinhebrew: 0x05D6,
-  zbopomofo: 0x3117,
-  zcaron: 0x017E,
-  zcircle: 0x24E9,
-  zcircumflex: 0x1E91,
-  zcurl: 0x0291,
-  zdot: 0x017C,
-  zdotaccent: 0x017C,
-  zdotbelow: 0x1E93,
-  zecyrillic: 0x0437,
-  zedescendercyrillic: 0x0499,
-  zedieresiscyrillic: 0x04DF,
-  zehiragana: 0x305C,
-  zekatakana: 0x30BC,
-  zero: 0x0030,
-  zeroarabic: 0x0660,
-  zerobengali: 0x09E6,
-  zerodeva: 0x0966,
-  zerogujarati: 0x0AE6,
-  zerogurmukhi: 0x0A66,
-  zerohackarabic: 0x0660,
-  zeroinferior: 0x2080,
-  zeromonospace: 0xFF10,
-  zerooldstyle: 0xF730,
-  zeropersian: 0x06F0,
-  zerosuperior: 0x2070,
-  zerothai: 0x0E50,
-  zerowidthjoiner: 0xFEFF,
-  zerowidthnonjoiner: 0x200C,
-  zerowidthspace: 0x200B,
-  zeta: 0x03B6,
-  zhbopomofo: 0x3113,
-  zhearmenian: 0x056A,
-  zhebrevecyrillic: 0x04C2,
-  zhecyrillic: 0x0436,
-  zhedescendercyrillic: 0x0497,
-  zhedieresiscyrillic: 0x04DD,
-  zihiragana: 0x3058,
-  zikatakana: 0x30B8,
-  zinorhebrew: 0x05AE,
-  zlinebelow: 0x1E95,
-  zmonospace: 0xFF5A,
-  zohiragana: 0x305E,
-  zokatakana: 0x30BE,
-  zparen: 0x24B5,
-  zretroflexhook: 0x0290,
-  zstroke: 0x01B6,
-  zuhiragana: 0x305A,
-  zukatakana: 0x30BA,
-  '.notdef': 0x0000
-};
-
-
-/* -*- 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 PDFImage = (function PDFImageClosure() {
-  /**
-   * Decode the image in the main thread if it supported. Resovles the promise
-   * when the image data is ready.
-   */
-  function handleImageData(handler, xref, res, image, promise) {
-    if (image instanceof JpegStream && image.isNativelyDecodable(xref, res)) {
-      // For natively supported jpegs send them to the main thread for decoding.
-      var dict = image.dict;
-      var colorSpace = dict.get('ColorSpace', 'CS');
-      colorSpace = ColorSpace.parse(colorSpace, xref, res);
-      var numComps = colorSpace.numComps;
-      handler.send('JpegDecode', [image.getIR(), numComps], function(message) {
-        var data = message.data;
-        var stream = new Stream(data, 0, data.length, image.dict);
-        promise.resolve(stream);
-      });
-    } else {
-      promise.resolve(image);
-    }
-  }
-  /**
-   * Decode and clamp a value. The formula is different from the spec because we
-   * don't decode to float range [0,1], we decode it in the [0,max] range.
-   */
-  function decodeAndClamp(value, addend, coefficient, max) {
-    value = addend + value * coefficient;
-    // Clamp the value to the range
-    return value < 0 ? 0 : value > max ? max : value;
-  }
-  function PDFImage(xref, res, image, inline, smask) {
-    this.image = image;
-    if (image.getParams) {
-      // JPX/JPEG2000 streams directly contain bits per component
-      // and color space mode information.
-      TODO('get params from actual stream');
-      // var bits = ...
-      // var colorspace = ...
-    }
-    // TODO cache rendered images?
-
-    var dict = image.dict;
-    this.width = dict.get('Width', 'W');
-    this.height = dict.get('Height', 'H');
-
-    if (this.width < 1 || this.height < 1)
-      error('Invalid image width: ' + this.width + ' or height: ' +
-            this.height);
-
-    this.interpolate = dict.get('Interpolate', 'I') || false;
-    this.imageMask = dict.get('ImageMask', 'IM') || false;
-
-    var bitsPerComponent = image.bitsPerComponent;
-    if (!bitsPerComponent) {
-      bitsPerComponent = dict.get('BitsPerComponent', 'BPC');
-      if (!bitsPerComponent) {
-        if (this.imageMask)
-          bitsPerComponent = 1;
-        else
-          error('Bits per component missing in image: ' + this.imageMask);
-      }
-    }
-    this.bpc = bitsPerComponent;
-
-    if (!this.imageMask) {
-      var colorSpace = dict.get('ColorSpace', 'CS');
-      if (!colorSpace) {
-        TODO('JPX images (which don"t require color spaces');
-        colorSpace = new Name('DeviceRGB');
-      }
-      this.colorSpace = ColorSpace.parse(colorSpace, xref, res);
-      this.numComps = this.colorSpace.numComps;
-    }
-
-    this.decode = dict.get('Decode', 'D');
-    this.needsDecode = false;
-    if (this.decode && this.colorSpace &&
-        !this.colorSpace.isDefaultDecode(this.decode)) {
-      this.needsDecode = true;
-      // Do some preprocessing to avoid more math.
-      var max = (1 << bitsPerComponent) - 1;
-      this.decodeCoefficients = [];
-      this.decodeAddends = [];
-      for (var i = 0, j = 0; i < this.decode.length; i += 2, ++j) {
-        var dmin = this.decode[i];
-        var dmax = this.decode[i + 1];
-        this.decodeCoefficients[j] = dmax - dmin;
-        this.decodeAddends[j] = max * dmin;
-      }
-    }
-
-    var mask = dict.get('Mask');
-
-    if (mask) {
-      TODO('masked images');
-    } else if (smask) {
-      this.smask = new PDFImage(xref, res, smask, false);
-    }
-  }
-  /**
-   * Handles processing of image data and calls the callback with an argument
-   * of a PDFImage when the image is ready to be used.
-   */
-  PDFImage.buildImage = function PDFImage_buildImage(callback, handler, xref,
-                                                     res, image, inline) {
-    var imageDataPromise = new Promise();
-    var smaskPromise = new Promise();
-    // The image data and smask data may not be ready yet, wait till both are
-    // resolved.
-    Promise.all([imageDataPromise, smaskPromise]).then(function(results) {
-      var imageData = results[0], smaskData = results[1];
-      var image = new PDFImage(xref, res, imageData, inline, smaskData);
-      callback(image);
-    });
-
-    handleImageData(handler, xref, res, image, imageDataPromise);
-
-    var smask = image.dict.get('SMask');
-    if (smask)
-      handleImageData(handler, xref, res, smask, smaskPromise);
-    else
-      smaskPromise.resolve(null);
-  };
-
-  /**
-   * Resize an image using the nearest neighbor algorithm.  Currently only
-   * supports one and three component images.
-   * @param {TypedArray} pixels The original image with one component.
-   * @param {Number} bpc Number of bits per component.
-   * @param {Number} components Number of color components, 1 or 3 is supported.
-   * @param {Number} w1 Original width.
-   * @param {Number} h1 Original height.
-   * @param {Number} w2 New width.
-   * @param {Number} h2 New height.
-   * @return {TypedArray} Resized image data.
-   */
-  PDFImage.resize = function PDFImage_resize(pixels, bpc, components,
-                                             w1, h1, w2, h2) {
-    var length = w2 * h2 * components;
-    var temp = bpc <= 8 ? new Uint8Array(length) :
-        bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);
-    var xRatio = w1 / w2;
-    var yRatio = h1 / h2;
-    var px, py, newIndex, oldIndex;
-    for (var i = 0; i < h2; i++) {
-      for (var j = 0; j < w2; j++) {
-        px = Math.floor(j * xRatio);
-        py = Math.floor(i * yRatio);
-        newIndex = (i * w2) + j;
-        oldIndex = ((py * w1) + px);
-        if (components === 1) {
-          temp[newIndex] = pixels[oldIndex];
-        } else if (components === 3) {
-          newIndex *= 3;
-          oldIndex *= 3;
-          temp[newIndex] = pixels[oldIndex];
-          temp[newIndex + 1] = pixels[oldIndex + 1];
-          temp[newIndex + 2] = pixels[oldIndex + 2];
-        }
-      }
-    }
-    return temp;
-  };
-
-  PDFImage.prototype = {
-    get drawWidth() {
-      if (!this.smask)
-        return this.width;
-      return Math.max(this.width, this.smask.width);
-    },
-    get drawHeight() {
-      if (!this.smask)
-        return this.height;
-      return Math.max(this.height, this.smask.height);
-    },
-    getComponents: function PDFImage_getComponents(buffer) {
-      var bpc = this.bpc;
-      var needsDecode = this.needsDecode;
-      var decodeMap = this.decode;
-
-      // This image doesn't require any extra work.
-      if (bpc == 8 && !needsDecode)
-        return buffer;
-
-      var bufferLength = buffer.length;
-      var width = this.width;
-      var height = this.height;
-      var numComps = this.numComps;
-
-      var length = width * height * numComps;
-      var bufferPos = 0;
-      var output = bpc <= 8 ? new Uint8Array(length) :
-        bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);
-      var rowComps = width * numComps;
-      var decodeAddends, decodeCoefficients;
-      if (needsDecode) {
-        decodeAddends = this.decodeAddends;
-        decodeCoefficients = this.decodeCoefficients;
-      }
-      var max = (1 << bpc) - 1;
-
-      if (bpc == 8) {
-        // Optimization for reading 8 bpc images that have a decode.
-        for (var i = 0, ii = length; i < ii; ++i) {
-          var compIndex = i % numComps;
-          var value = buffer[i];
-          value = decodeAndClamp(value, decodeAddends[compIndex],
-                          decodeCoefficients[compIndex], max);
-          output[i] = value;
-        }
-      } else if (bpc == 1) {
-        // Optimization for reading 1 bpc images.
-        var valueZero = 0, valueOne = 1;
-        if (decodeMap) {
-          valueZero = decodeMap[0] ? 1 : 0;
-          valueOne = decodeMap[1] ? 1 : 0;
-        }
-        var mask = 0;
-        var buf = 0;
-
-        for (var i = 0, ii = length; i < ii; ++i) {
-          if (i % rowComps == 0) {
-            mask = 0;
-            buf = 0;
-          } else {
-            mask >>= 1;
-          }
-
-          if (mask <= 0) {
-            buf = buffer[bufferPos++];
-            mask = 128;
-          }
-
-          output[i] = !(buf & mask) ? valueZero : valueOne;
-        }
-      } else {
-        // The general case that handles all other bpc values.
-        var bits = 0, buf = 0;
-        for (var i = 0, ii = length; i < ii; ++i) {
-          if (i % rowComps == 0) {
-            buf = 0;
-            bits = 0;
-          }
-
-          while (bits < bpc) {
-            buf = (buf << 8) | buffer[bufferPos++];
-            bits += 8;
-          }
-
-          var remainingBits = bits - bpc;
-          var value = buf >> remainingBits;
-          if (needsDecode) {
-            var compIndex = i % numComps;
-            value = decodeAndClamp(value, decodeAddends[compIndex],
-                            decodeCoefficients[compIndex], max);
-          }
-          output[i] = value;
-          buf = buf & ((1 << remainingBits) - 1);
-          bits = remainingBits;
-        }
-      }
-      return output;
-    },
-    getOpacity: function PDFImage_getOpacity(width, height) {
-      var smask = this.smask;
-      var originalWidth = this.width;
-      var originalHeight = this.height;
-      var buf;
-
-      if (smask) {
-        var sw = smask.width;
-        var sh = smask.height;
-        buf = new Uint8Array(sw * sh);
-        smask.fillGrayBuffer(buf);
-        if (sw != width || sh != height)
-          buf = PDFImage.resize(buf, smask.bps, 1, sw, sh, width, height);
-      } else {
-        buf = new Uint8Array(width * height);
-        for (var i = 0, ii = width * height; i < ii; ++i)
-          buf[i] = 255;
-      }
-      return buf;
-    },
-    applyStencilMask: function PDFImage_applyStencilMask(buffer,
-                                                         inverseDecode) {
-      var width = this.width, height = this.height;
-      var bitStrideLength = (width + 7) >> 3;
-      var imgArray = this.getImageBytes(bitStrideLength * height);
-      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;
-        }
-      }
-    },
-    fillRgbaBuffer: function PDFImage_fillRgbaBuffer(buffer, width, height) {
-      var numComps = this.numComps;
-      var originalWidth = this.width;
-      var originalHeight = this.height;
-      var bpc = this.bpc;
-
-      // rows start at byte boundary;
-      var rowBytes = (originalWidth * numComps * bpc + 7) >> 3;
-      var imgArray = this.getImageBytes(originalHeight * rowBytes);
-
-      var comps = this.colorSpace.getRgbBuffer(
-        this.getComponents(imgArray), bpc);
-      if (originalWidth != width || originalHeight != height)
-        comps = PDFImage.resize(comps, this.bpc, 3, originalWidth,
-                                originalHeight, width, height);
-      var compsPos = 0;
-      var opacity = this.getOpacity(width, height);
-      var opacityPos = 0;
-      var length = width * height * 4;
-
-      for (var i = 0; i < length; i += 4) {
-        buffer[i] = comps[compsPos++];
-        buffer[i + 1] = comps[compsPos++];
-        buffer[i + 2] = comps[compsPos++];
-        buffer[i + 3] = opacity[opacityPos++];
-      }
-    },
-    fillGrayBuffer: function PDFImage_fillGrayBuffer(buffer) {
-      var numComps = this.numComps;
-      if (numComps != 1)
-        error('Reading gray scale from a color image: ' + numComps);
-
-      var width = this.width;
-      var height = this.height;
-      var bpc = this.bpc;
-
-      // rows start at byte boundary;
-      var rowBytes = (width * numComps * bpc + 7) >> 3;
-      var imgArray = this.getImageBytes(height * rowBytes);
-
-      var comps = this.getComponents(imgArray);
-      var length = width * height;
-      // we aren't using a colorspace so we need to scale the value
-      var scale = 255 / ((1 << bpc) - 1);
-      for (var i = 0; i < length; ++i)
-        buffer[i] = (scale * comps[i]) | 0;
-    },
-    getImageBytes: function PDFImage_getImageBytes(length) {
-      this.image.reset();
-      return this.image.getBytes(length);
-    }
-  };
-  return PDFImage;
-})();
-
-function loadJpegStream(id, imageData, objs) {
-  var img = new Image();
-  img.onload = (function loadJpegStream_onloadClosure() {
-    objs.resolve(id, img);
-  });
-  img.src = 'data:image/jpeg;base64,' + PdfJS_window.window.btoa(imageData);
-}
-
-
-/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
-
-'use strict';
-
-// The Metrics object contains glyph widths (in glyph space units).
-// As per PDF spec, for most fonts (Type 3 being an exception) a glyph
-// space unit corresponds to 1/1000th of text space unit.
-var Metrics = {
-  'Courier': 600,
-  'Courier-Bold': 600,
-  'Courier-BoldOblique': 600,
-  'Courier-Oblique': 600,
-  'Helvetica' : {
-    'space': 278,
-    'exclam': 278,
-    'quotedbl': 355,
-    'numbersign': 556,
-    'dollar': 556,
-    'percent': 889,
-    'ampersand': 667,
-    'quoteright': 222,
-    'parenleft': 333,
-    'parenright': 333,
-    'asterisk': 389,
-    'plus': 584,
-    'comma': 278,
-    'hyphen': 333,
-    'period': 278,
-    'slash': 278,
-    'zero': 556,
-    'one': 556,
-    'two': 556,
-    'three': 556,
-    'four': 556,
-    'five': 556,
-    'six': 556,
-    'seven': 556,
-    'eight': 556,
-    'nine': 556,
-    'colon': 278,
-    'semicolon': 278,
-    'less': 584,
-    'equal': 584,
-    'greater': 584,
-    'question': 556,
-    'at': 1015,
-    'A': 667,
-    'B': 667,
-    'C': 722,
-    'D': 722,
-    'E': 667,
-    'F': 611,
-    'G': 778,
-    'H': 722,
-    'I': 278,
-    'J': 500,
-    'K': 667,
-    'L': 556,
-    'M': 833,
-    'N': 722,
-    'O': 778,
-    'P': 667,
-    'Q': 778,
-    'R': 722,
-    'S': 667,
-    'T': 611,
-    'U': 722,
-    'V': 667,
-    'W': 944,
-    'X': 667,
-    'Y': 667,
-    'Z': 611,
-    'bracketleft': 278,
-    'backslash': 278,
-    'bracketright': 278,
-    'asciicircum': 469,
-    'underscore': 556,
-    'quoteleft': 222,
-    'a': 556,
-    'b': 556,
-    'c': 500,
-    'd': 556,
-    'e': 556,
-    'f': 278,
-    'g': 556,
-    'h': 556,
-    'i': 222,
-    'j': 222,
-    'k': 500,
-    'l': 222,
-    'm': 833,
-    'n': 556,
-    'o': 556,
-    'p': 556,
-    'q': 556,
-    'r': 333,
-    's': 500,
-    't': 278,
-    'u': 556,
-    'v': 500,
-    'w': 722,
-    'x': 500,
-    'y': 500,
-    'z': 500,
-    'braceleft': 334,
-    'bar': 260,
-    'braceright': 334,
-    'asciitilde': 584,
-    'exclamdown': 333,
-    'cent': 556,
-    'sterling': 556,
-    'fraction': 167,
-    'yen': 556,
-    'florin': 556,
-    'section': 556,
-    'currency': 556,
-    'quotesingle': 191,
-    'quotedblleft': 333,
-    'guillemotleft': 556,
-    'guilsinglleft': 333,
-    'guilsinglright': 333,
-    'fi': 500,
-    'fl': 500,
-    'endash': 556,
-    'dagger': 556,
-    'daggerdbl': 556,
-    'periodcentered': 278,
-    'paragraph': 537,
-    'bullet': 350,
-    'quotesinglbase': 222,
-    'quotedblbase': 333,
-    'quotedblright': 333,
-    'guillemotright': 556,
-    'ellipsis': 1000,
-    'perthousand': 1000,
-    'questiondown': 611,
-    'grave': 333,
-    'acute': 333,
-    'circumflex': 333,
-    'tilde': 333,
-    'macron': 333,
-    'breve': 333,
-    'dotaccent': 333,
-    'dieresis': 333,
-    'ring': 333,
-    'cedilla': 333,
-    'hungarumlaut': 333,
-    'ogonek': 333,
-    'caron': 333,
-    'emdash': 1000,
-    'AE': 1000,
-    'ordfeminine': 370,
-    'Lslash': 556,
-    'Oslash': 778,
-    'OE': 1000,
-    'ordmasculine': 365,
-    'ae': 889,
-    'dotlessi': 278,
-    'lslash': 222,
-    'oslash': 611,
-    'oe': 944,
-    'germandbls': 611,
-    'Idieresis': 278,
-    'eacute': 556,
-    'abreve': 556,
-    'uhungarumlaut': 556,
-    'ecaron': 556,
-    'Ydieresis': 667,
-    'divide': 584,
-    'Yacute': 667,
-    'Acircumflex': 667,
-    'aacute': 556,
-    'Ucircumflex': 722,
-    'yacute': 500,
-    'scommaaccent': 500,
-    'ecircumflex': 556,
-    'Uring': 722,
-    'Udieresis': 722,
-    'aogonek': 556,
-    'Uacute': 722,
-    'uogonek': 556,
-    'Edieresis': 667,
-    'Dcroat': 722,
-    'commaaccent': 250,
-    'copyright': 737,
-    'Emacron': 667,
-    'ccaron': 500,
-    'aring': 556,
-    'Ncommaaccent': 722,
-    'lacute': 222,
-    'agrave': 556,
-    'Tcommaaccent': 611,
-    'Cacute': 722,
-    'atilde': 556,
-    'Edotaccent': 667,
-    'scaron': 500,
-    'scedilla': 500,
-    'iacute': 278,
-    'lozenge': 471,
-    'Rcaron': 722,
-    'Gcommaaccent': 778,
-    'ucircumflex': 556,
-    'acircumflex': 556,
-    'Amacron': 667,
-    'rcaron': 333,
-    'ccedilla': 500,
-    'Zdotaccent': 611,
-    'Thorn': 667,
-    'Omacron': 778,
-    'Racute': 722,
-    'Sacute': 667,
-    'dcaron': 643,
-    'Umacron': 722,
-    'uring': 556,
-    'threesuperior': 333,
-    'Ograve': 778,
-    'Agrave': 667,
-    'Abreve': 667,
-    'multiply': 584,
-    'uacute': 556,
-    'Tcaron': 611,
-    'partialdiff': 476,
-    'ydieresis': 500,
-    'Nacute': 722,
-    'icircumflex': 278,
-    'Ecircumflex': 667,
-    'adieresis': 556,
-    'edieresis': 556,
-    'cacute': 500,
-    'nacute': 556,
-    'umacron': 556,
-    'Ncaron': 722,
-    'Iacute': 278,
-    'plusminus': 584,
-    'brokenbar': 260,
-    'registered': 737,
-    'Gbreve': 778,
-    'Idotaccent': 278,
-    'summation': 600,
-    'Egrave': 667,
-    'racute': 333,
-    'omacron': 556,
-    'Zacute': 611,
-    'Zcaron': 611,
-    'greaterequal': 549,
-    'Eth': 722,
-    'Ccedilla': 722,
-    'lcommaaccent': 222,
-    'tcaron': 317,
-    'eogonek': 556,
-    'Uogonek': 722,
-    'Aacute': 667,
-    'Adieresis': 667,
-    'egrave': 556,
-    'zacute': 500,
-    'iogonek': 222,
-    'Oacute': 778,
-    'oacute': 556,
-    'amacron': 556,
-    'sacute': 500,
-    'idieresis': 278,
-    'Ocircumflex': 778,
-    'Ugrave': 722,
-    'Delta': 612,
-    'thorn': 556,
-    'twosuperior': 333,
-    'Odieresis': 778,
-    'mu': 556,
-    'igrave': 278,
-    'ohungarumlaut': 556,
-    'Eogonek': 667,
-    'dcroat': 556,
-    'threequarters': 834,
-    'Scedilla': 667,
-    'lcaron': 299,
-    'Kcommaaccent': 667,
-    'Lacute': 556,
-    'trademark': 1000,
-    'edotaccent': 556,
-    'Igrave': 278,
-    'Imacron': 278,
-    'Lcaron': 556,
-    'onehalf': 834,
-    'lessequal': 549,
-    'ocircumflex': 556,
-    'ntilde': 556,
-    'Uhungarumlaut': 722,
-    'Eacute': 667,
-    'emacron': 556,
-    'gbreve': 556,
-    'onequarter': 834,
-    'Scaron': 667,
-    'Scommaaccent': 667,
-    'Ohungarumlaut': 778,
-    'degree': 400,
-    'ograve': 556,
-    'Ccaron': 722,
-    'ugrave': 556,
-    'radical': 453,
-    'Dcaron': 722,
-    'rcommaaccent': 333,
-    'Ntilde': 722,
-    'otilde': 556,
-    'Rcommaaccent': 722,
-    'Lcommaaccent': 556,
-    'Atilde': 667,
-    'Aogonek': 667,
-    'Aring': 667,
-    'Otilde': 778,
-    'zdotaccent': 500,
-    'Ecaron': 667,
-    'Iogonek': 278,
-    'kcommaaccent': 500,
-    'minus': 584,
-    'Icircumflex': 278,
-    'ncaron': 556,
-    'tcommaaccent': 278,
-    'logicalnot': 584,
-    'odieresis': 556,
-    'udieresis': 556,
-    'notequal': 549,
-    'gcommaaccent': 556,
-    'eth': 556,
-    'zcaron': 500,
-    'ncommaaccent': 556,
-    'onesuperior': 333,
-    'imacron': 278,
-    'Euro': 556
-  },
-  'Helvetica-Bold': {
-    'space': 278,
-    'exclam': 333,
-    'quotedbl': 474,
-    'numbersign': 556,
-    'dollar': 556,
-    'percent': 889,
-    'ampersand': 722,
-    'quoteright': 278,
-    'parenleft': 333,
-    'parenright': 333,
-    'asterisk': 389,
-    'plus': 584,
-    'comma': 278,
-    'hyphen': 333,
-    'period': 278,
-    'slash': 278,
-    'zero': 556,
-    'one': 556,
-    'two': 556,
-    'three': 556,
-    'four': 556,
-    'five': 556,
-    'six': 556,
-    'seven': 556,
-    'eight': 556,
-    'nine': 556,
-    'colon': 333,
-    'semicolon': 333,
-    'less': 584,
-    'equal': 584,
-    'greater': 584,
-    'question': 611,
-    'at': 975,
-    'A': 722,
-    'B': 722,
-    'C': 722,
-    'D': 722,
-    'E': 667,
-    'F': 611,
-    'G': 778,
-    'H': 722,
-    'I': 278,
-    'J': 556,
-    'K': 722,
-    'L': 611,
-    'M': 833,
-    'N': 722,
-    'O': 778,
-    'P': 667,
-    'Q': 778,
-    'R': 722,
-    'S': 667,
-    'T': 611,
-    'U': 722,
-    'V': 667,
-    'W': 944,
-    'X': 667,
-    'Y': 667,
-    'Z': 611,
-    'bracketleft': 333,
-    'backslash': 278,
-    'bracketright': 333,
-    'asciicircum': 584,
-    'underscore': 556,
-    'quoteleft': 278,
-    'a': 556,
-    'b': 611,
-    'c': 556,
-    'd': 611,
-    'e': 556,
-    'f': 333,
-    'g': 611,
-    'h': 611,
-    'i': 278,
-    'j': 278,
-    'k': 556,
-    'l': 278,
-    'm': 889,
-    'n': 611,
-    'o': 611,
-    'p': 611,
-    'q': 611,
-    'r': 389,
-    's': 556,
-    't': 333,
-    'u': 611,
-    'v': 556,
-    'w': 778,
-    'x': 556,
-    'y': 556,
-    'z': 500,
-    'braceleft': 389,
-    'bar': 280,
-    'braceright': 389,
-    'asciitilde': 584,
-    'exclamdown': 333,
-    'cent': 556,
-    'sterling': 556,
-    'fraction': 167,
-    'yen': 556,
-    'florin': 556,
-    'section': 556,
-    'currency': 556,
-    'quotesingle': 238,
-    'quotedblleft': 500,
-    'guillemotleft': 556,
-    'guilsinglleft': 333,
-    'guilsinglright': 333,
-    'fi': 611,
-    'fl': 611,
-    'endash': 556,
-    'dagger': 556,
-    'daggerdbl': 556,
-    'periodcentered': 278,
-    'paragraph': 556,
-    'bullet': 350,
-    'quotesinglbase': 278,
-    'quotedblbase': 500,
-    'quotedblright': 500,
-    'guillemotright': 556,
-    'ellipsis': 1000,
-    'perthousand': 1000,
-    'questiondown': 611,
-    'grave': 333,
-    'acute': 333,
-    'circumflex': 333,
-    'tilde': 333,
-    'macron': 333,
-    'breve': 333,
-    'dotaccent': 333,
-    'dieresis': 333,
-    'ring': 333,
-    'cedilla': 333,
-    'hungarumlaut': 333,
-    'ogonek': 333,
-    'caron': 333,
-    'emdash': 1000,
-    'AE': 1000,
-    'ordfeminine': 370,
-    'Lslash': 611,
-    'Oslash': 778,
-    'OE': 1000,
-    'ordmasculine': 365,
-    'ae': 889,
-    'dotlessi': 278,
-    'lslash': 278,
-    'oslash': 611,
-    'oe': 944,
-    'germandbls': 611,
-    'Idieresis': 278,
-    'eacute': 556,
-    'abreve': 556,
-    'uhungarumlaut': 611,
-    'ecaron': 556,
-    'Ydieresis': 667,
-    'divide': 584,
-    'Yacute': 667,
-    'Acircumflex': 722,
-    'aacute': 556,
-    'Ucircumflex': 722,
-    'yacute': 556,
-    'scommaaccent': 556,
-    'ecircumflex': 556,
-    'Uring': 722,
-    'Udieresis': 722,
-    'aogonek': 556,
-    'Uacute': 722,
-    'uogonek': 611,
-    'Edieresis': 667,
-    'Dcroat': 722,
-    'commaaccent': 250,
-    'copyright': 737,
-    'Emacron': 667,
-    'ccaron': 556,
-    'aring': 556,
-    'Ncommaaccent': 722,
-    'lacute': 278,
-    'agrave': 556,
-    'Tcommaaccent': 611,
-    'Cacute': 722,
-    'atilde': 556,
-    'Edotaccent': 667,
-    'scaron': 556,
-    'scedilla': 556,
-    'iacute': 278,
-    'lozenge': 494,
-    'Rcaron': 722,
-    'Gcommaaccent': 778,
-    'ucircumflex': 611,
-    'acircumflex': 556,
-    'Amacron': 722,
-    'rcaron': 389,
-    'ccedilla': 556,
-    'Zdotaccent': 611,
-    'Thorn': 667,
-    'Omacron': 778,
-    'Racute': 722,
-    'Sacute': 667,
-    'dcaron': 743,
-    'Umacron': 722,
-    'uring': 611,
-    'threesuperior': 333,
-    'Ograve': 778,
-    'Agrave': 722,
-    'Abreve': 722,
-    'multiply': 584,
-    'uacute': 611,
-    'Tcaron': 611,
-    'partialdiff': 494,
-    'ydieresis': 556,
-    'Nacute': 722,
-    'icircumflex': 278,
-    'Ecircumflex': 667,
-    'adieresis': 556,
-    'edieresis': 556,
-    'cacute': 556,
-    'nacute': 611,
-    'umacron': 611,
-    'Ncaron': 722,
-    'Iacute': 278,
-    'plusminus': 584,
-    'brokenbar': 280,
-    'registered': 737,
-    'Gbreve': 778,
-    'Idotaccent': 278,
-    'summation': 600,
-    'Egrave': 667,
-    'racute': 389,
-    'omacron': 611,
-    'Zacute': 611,
-    'Zcaron': 611,
-    'greaterequal': 549,
-    'Eth': 722,
-    'Ccedilla': 722,
-    'lcommaaccent': 278,
-    'tcaron': 389,
-    'eogonek': 556,
-    'Uogonek': 722,
-    'Aacute': 722,
-    'Adieresis': 722,
-    'egrave': 556,
-    'zacute': 500,
-    'iogonek': 278,
-    'Oacute': 778,
-    'oacute': 611,
-    'amacron': 556,
-    'sacute': 556,
-    'idieresis': 278,
-    'Ocircumflex': 778,
-    'Ugrave': 722,
-    'Delta': 612,
-    'thorn': 611,
-    'twosuperior': 333,
-    'Odieresis': 778,
-    'mu': 611,
-    'igrave': 278,
-    'ohungarumlaut': 611,
-    'Eogonek': 667,
-    'dcroat': 611,
-    'threequarters': 834,
-    'Scedilla': 667,
-    'lcaron': 400,
-    'Kcommaaccent': 722,
-    'Lacute': 611,
-    'trademark': 1000,
-    'edotaccent': 556,
-    'Igrave': 278,
-    'Imacron': 278,
-    'Lcaron': 611,
-    'onehalf': 834,
-    'lessequal': 549,
-    'ocircumflex': 611,
-    'ntilde': 611,
-    'Uhungarumlaut': 722,
-    'Eacute': 667,
-    'emacron': 556,
-    'gbreve': 611,
-    'onequarter': 834,
-    'Scaron': 667,
-    'Scommaaccent': 667,
-    'Ohungarumlaut': 778,
-    'degree': 400,
-    'ograve': 611,
-    'Ccaron': 722,
-    'ugrave': 611,
-    'radical': 549,
-    'Dcaron': 722,
-    'rcommaaccent': 389,
-    'Ntilde': 722,
-    'otilde': 611,
-    'Rcommaaccent': 722,
-    'Lcommaaccent': 611,
-    'Atilde': 722,
-    'Aogonek': 722,
-    'Aring': 722,
-    'Otilde': 778,
-    'zdotaccent': 500,
-    'Ecaron': 667,
-    'Iogonek': 278,
-    'kcommaaccent': 556,
-    'minus': 584,
-    'Icircumflex': 278,
-    'ncaron': 611,
-    'tcommaaccent': 333,
-    'logicalnot': 584,
-    'odieresis': 611,
-    'udieresis': 611,
-    'notequal': 549,
-    'gcommaaccent': 611,
-    'eth': 611,
-    'zcaron': 500,
-    'ncommaaccent': 611,
-    'onesuperior': 333,
-    'imacron': 278,
-    'Euro': 556
-  },
-  'Helvetica-BoldOblique': {
-    'space': 278,
-    'exclam': 333,
-    'quotedbl': 474,
-    'numbersign': 556,
-    'dollar': 556,
-    'percent': 889,
-    'ampersand': 722,
-    'quoteright': 278,
-    'parenleft': 333,
-    'parenright': 333,
-    'asterisk': 389,
-    'plus': 584,
-    'comma': 278,
-    'hyphen': 333,
-    'period': 278,
-    'slash': 278,
-    'zero': 556,
-    'one': 556,
-    'two': 556,
-    'three': 556,
-    'four': 556,
-    'five': 556,
-    'six': 556,
-    'seven': 556,
-    'eight': 556,
-    'nine': 556,
-    'colon': 333,
-    'semicolon': 333,
-    'less': 584,
-    'equal': 584,
-    'greater': 584,
-    'question': 611,
-    'at': 975,
-    'A': 722,
-    'B': 722,
-    'C': 722,
-    'D': 722,
-    'E': 667,
-    'F': 611,
-    'G': 778,
-    'H': 722,
-    'I': 278,
-    'J': 556,
-    'K': 722,
-    'L': 611,
-    'M': 833,
-    'N': 722,
-    'O': 778,
-    'P': 667,
-    'Q': 778,
-    'R': 722,
-    'S': 667,
-    'T': 611,
-    'U': 722,
-    'V': 667,
-    'W': 944,
-    'X': 667,
-    'Y': 667,
-    'Z': 611,
-    'bracketleft': 333,
-    'backslash': 278,
-    'bracketright': 333,
-    'asciicircum': 584,
-    'underscore': 556,
-    'quoteleft': 278,
-    'a': 556,
-    'b': 611,
-    'c': 556,
-    'd': 611,
-    'e': 556,
-    'f': 333,
-    'g': 611,
-    'h': 611,
-    'i': 278,
-    'j': 278,
-    'k': 556,
-    'l': 278,
-    'm': 889,
-    'n': 611,
-    'o': 611,
-    'p': 611,
-    'q': 611,
-    'r': 389,
-    's': 556,
-    't': 333,
-    'u': 611,
-    'v': 556,
-    'w': 778,
-    'x': 556,
-    'y': 556,
-    'z': 500,
-    'braceleft': 389,
-    'bar': 280,
-    'braceright': 389,
-    'asciitilde': 584,
-    'exclamdown': 333,
-    'cent': 556,
-    'sterling': 556,
-    'fraction': 167,
-    'yen': 556,
-    'florin': 556,
-    'section': 556,
-    'currency': 556,
-    'quotesingle': 238,
-    'quotedblleft': 500,
-    'guillemotleft': 556,
-    'guilsinglleft': 333,
-    'guilsinglright': 333,
-    'fi': 611,
-    'fl': 611,
-    'endash': 556,
-    'dagger': 556,
-    'daggerdbl': 556,
-    'periodcentered': 278,
-    'paragraph': 556,
-    'bullet': 350,
-    'quotesinglbase': 278,
-    'quotedblbase': 500,
-    'quotedblright': 500,
-    'guillemotright': 556,
-    'ellipsis': 1000,
-    'perthousand': 1000,
-    'questiondown': 611,
-    'grave': 333,
-    'acute': 333,
-    'circumflex': 333,
-    'tilde': 333,
-    'macron': 333,
-    'breve': 333,
-    'dotaccent': 333,
-    'dieresis': 333,
-    'ring': 333,
-    'cedilla': 333,
-    'hungarumlaut': 333,
-    'ogonek': 333,
-    'caron': 333,
-    'emdash': 1000,
-    'AE': 1000,
-    'ordfeminine': 370,
-    'Lslash': 611,
-    'Oslash': 778,
-    'OE': 1000,
-    'ordmasculine': 365,
-    'ae': 889,
-    'dotlessi': 278,
-    'lslash': 278,
-    'oslash': 611,
-    'oe': 944,
-    'germandbls': 611,
-    'Idieresis': 278,
-    'eacute': 556,
-    'abreve': 556,
-    'uhungarumlaut': 611,
-    'ecaron': 556,
-    'Ydieresis': 667,
-    'divide': 584,
-    'Yacute': 667,
-    'Acircumflex': 722,
-    'aacute': 556,
-    'Ucircumflex': 722,
-    'yacute': 556,
-    'scommaaccent': 556,
-    'ecircumflex': 556,
-    'Uring': 722,
-    'Udieresis': 722,
-    'aogonek': 556,
-    'Uacute': 722,
-    'uogonek': 611,
-    'Edieresis': 667,
-    'Dcroat': 722,
-    'commaaccent': 250,
-    'copyright': 737,
-    'Emacron': 667,
-    'ccaron': 556,
-    'aring': 556,
-    'Ncommaaccent': 722,
-    'lacute': 278,
-    'agrave': 556,
-    'Tcommaaccent': 611,
-    'Cacute': 722,
-    'atilde': 556,
-    'Edotaccent': 667,
-    'scaron': 556,
-    'scedilla': 556,
-    'iacute': 278,
-    'lozenge': 494,
-    'Rcaron': 722,
-    'Gcommaaccent': 778,
-    'ucircumflex': 611,
-    'acircumflex': 556,
-    'Amacron': 722,
-    'rcaron': 389,
-    'ccedilla': 556,
-    'Zdotaccent': 611,
-    'Thorn': 667,
-    'Omacron': 778,
-    'Racute': 722,
-    'Sacute': 667,
-    'dcaron': 743,
-    'Umacron': 722,
-    'uring': 611,
-    'threesuperior': 333,
-    'Ograve': 778,
-    'Agrave': 722,
-    'Abreve': 722,
-    'multiply': 584,
-    'uacute': 611,
-    'Tcaron': 611,
-    'partialdiff': 494,
-    'ydieresis': 556,
-    'Nacute': 722,
-    'icircumflex': 278,
-    'Ecircumflex': 667,
-    'adieresis': 556,
-    'edieresis': 556,
-    'cacute': 556,
-    'nacute': 611,
-    'umacron': 611,
-    'Ncaron': 722,
-    'Iacute': 278,
-    'plusminus': 584,
-    'brokenbar': 280,
-    'registered': 737,
-    'Gbreve': 778,
-    'Idotaccent': 278,
-    'summation': 600,
-    'Egrave': 667,
-    'racute': 389,
-    'omacron': 611,
-    'Zacute': 611,
-    'Zcaron': 611,
-    'greaterequal': 549,
-    'Eth': 722,
-    'Ccedilla': 722,
-    'lcommaaccent': 278,
-    'tcaron': 389,
-    'eogonek': 556,
-    'Uogonek': 722,
-    'Aacute': 722,
-    'Adieresis': 722,
-    'egrave': 556,
-    'zacute': 500,
-    'iogonek': 278,
-    'Oacute': 778,
-    'oacute': 611,
-    'amacron': 556,
-    'sacute': 556,
-    'idieresis': 278,
-    'Ocircumflex': 778,
-    'Ugrave': 722,
-    'Delta': 612,
-    'thorn': 611,
-    'twosuperior': 333,
-    'Odieresis': 778,
-    'mu': 611,
-    'igrave': 278,
-    'ohungarumlaut': 611,
-    'Eogonek': 667,
-    'dcroat': 611,
-    'threequarters': 834,
-    'Scedilla': 667,
-    'lcaron': 400,
-    'Kcommaaccent': 722,
-    'Lacute': 611,
-    'trademark': 1000,
-    'edotaccent': 556,
-    'Igrave': 278,
-    'Imacron': 278,
-    'Lcaron': 611,
-    'onehalf': 834,
-    'lessequal': 549,
-    'ocircumflex': 611,
-    'ntilde': 611,
-    'Uhungarumlaut': 722,
-    'Eacute': 667,
-    'emacron': 556,
-    'gbreve': 611,
-    'onequarter': 834,
-    'Scaron': 667,
-    'Scommaaccent': 667,
-    'Ohungarumlaut': 778,
-    'degree': 400,
-    'ograve': 611,
-    'Ccaron': 722,
-    'ugrave': 611,
-    'radical': 549,
-    'Dcaron': 722,
-    'rcommaaccent': 389,
-    'Ntilde': 722,
-    'otilde': 611,
-    'Rcommaaccent': 722,
-    'Lcommaaccent': 611,
-    'Atilde': 722,
-    'Aogonek': 722,
-    'Aring': 722,
-    'Otilde': 778,
-    'zdotaccent': 500,
-    'Ecaron': 667,
-    'Iogonek': 278,
-    'kcommaaccent': 556,
-    'minus': 584,
-    'Icircumflex': 278,
-    'ncaron': 611,
-    'tcommaaccent': 333,
-    'logicalnot': 584,
-    'odieresis': 611,
-    'udieresis': 611,
-    'notequal': 549,
-    'gcommaaccent': 611,
-    'eth': 611,
-    'zcaron': 500,
-    'ncommaaccent': 611,
-    'onesuperior': 333,
-    'imacron': 278,
-    'Euro': 556
-  },
-  'Helvetica-Oblique' : {
-    'space': 278,
-    'exclam': 278,
-    'quotedbl': 355,
-    'numbersign': 556,
-    'dollar': 556,
-    'percent': 889,
-    'ampersand': 667,
-    'quoteright': 222,
-    'parenleft': 333,
-    'parenright': 333,
-    'asterisk': 389,
-    'plus': 584,
-    'comma': 278,
-    'hyphen': 333,
-    'period': 278,
-    'slash': 278,
-    'zero': 556,
-    'one': 556,
-    'two': 556,
-    'three': 556,
-    'four': 556,
-    'five': 556,
-    'six': 556,
-    'seven': 556,
-    'eight': 556,
-    'nine': 556,
-    'colon': 278,
-    'semicolon': 278,
-    'less': 584,
-    'equal': 584,
-    'greater': 584,
-    'question': 556,
-    'at': 1015,
-    'A': 667,
-    'B': 667,
-    'C': 722,
-    'D': 722,
-    'E': 667,
-    'F': 611,
-    'G': 778,
-    'H': 722,
-    'I': 278,
-    'J': 500,
-    'K': 667,
-    'L': 556,
-    'M': 833,
-    'N': 722,
-    'O': 778,
-    'P': 667,
-    'Q': 778,
-    'R': 722,
-    'S': 667,
-    'T': 611,
-    'U': 722,
-    'V': 667,
-    'W': 944,
-    'X': 667,
-    'Y': 667,
-    'Z': 611,
-    'bracketleft': 278,
-    'backslash': 278,
-    'bracketright': 278,
-    'asciicircum': 469,
-    'underscore': 556,
-    'quoteleft': 222,
-    'a': 556,
-    'b': 556,
-    'c': 500,
-    'd': 556,
-    'e': 556,
-    'f': 278,
-    'g': 556,
-    'h': 556,
-    'i': 222,
-    'j': 222,
-    'k': 500,
-    'l': 222,
-    'm': 833,
-    'n': 556,
-    'o': 556,
-    'p': 556,
-    'q': 556,
-    'r': 333,
-    's': 500,
-    't': 278,
-    'u': 556,
-    'v': 500,
-    'w': 722,
-    'x': 500,
-    'y': 500,
-    'z': 500,
-    'braceleft': 334,
-    'bar': 260,
-    'braceright': 334,
-    'asciitilde': 584,
-    'exclamdown': 333,
-    'cent': 556,
-    'sterling': 556,
-    'fraction': 167,
-    'yen': 556,
-    'florin': 556,
-    'section': 556,
-    'currency': 556,
-    'quotesingle': 191,
-    'quotedblleft': 333,
-    'guillemotleft': 556,
-    'guilsinglleft': 333,
-    'guilsinglright': 333,
-    'fi': 500,
-    'fl': 500,
-    'endash': 556,
-    'dagger': 556,
-    'daggerdbl': 556,
-    'periodcentered': 278,
-    'paragraph': 537,
-    'bullet': 350,
-    'quotesinglbase': 222,
-    'quotedblbase': 333,
-    'quotedblright': 333,
-    'guillemotright': 556,
-    'ellipsis': 1000,
-    'perthousand': 1000,
-    'questiondown': 611,
-    'grave': 333,
-    'acute': 333,
-    'circumflex': 333,
-    'tilde': 333,
-    'macron': 333,
-    'breve': 333,
-    'dotaccent': 333,
-    'dieresis': 333,
-    'ring': 333,
-    'cedilla': 333,
-    'hungarumlaut': 333,
-    'ogonek': 333,
-    'caron': 333,
-    'emdash': 1000,
-    'AE': 1000,
-    'ordfeminine': 370,
-    'Lslash': 556,
-    'Oslash': 778,
-    'OE': 1000,
-    'ordmasculine': 365,
-    'ae': 889,
-    'dotlessi': 278,
-    'lslash': 222,
-    'oslash': 611,
-    'oe': 944,
-    'germandbls': 611,
-    'Idieresis': 278,
-    'eacute': 556,
-    'abreve': 556,
-    'uhungarumlaut': 556,
-    'ecaron': 556,
-    'Ydieresis': 667,
-    'divide': 584,
-    'Yacute': 667,
-    'Acircumflex': 667,
-    'aacute': 556,
-    'Ucircumflex': 722,
-    'yacute': 500,
-    'scommaaccent': 500,
-    'ecircumflex': 556,
-    'Uring': 722,
-    'Udieresis': 722,
-    'aogonek': 556,
-    'Uacute': 722,
-    'uogonek': 556,
-    'Edieresis': 667,
-    'Dcroat': 722,
-    'commaaccent': 250,
-    'copyright': 737,
-    'Emacron': 667,
-    'ccaron': 500,
-    'aring': 556,
-    'Ncommaaccent': 722,
-    'lacute': 222,
-    'agrave': 556,
-    'Tcommaaccent': 611,
-    'Cacute': 722,
-    'atilde': 556,
-    'Edotaccent': 667,
-    'scaron': 500,
-    'scedilla': 500,
-    'iacute': 278,
-    'lozenge': 471,
-    'Rcaron': 722,
-    'Gcommaaccent': 778,
-    'ucircumflex': 556,
-    'acircumflex': 556,
-    'Amacron': 667,
-    'rcaron': 333,
-    'ccedilla': 500,
-    'Zdotaccent': 611,
-    'Thorn': 667,
-    'Omacron': 778,
-    'Racute': 722,
-    'Sacute': 667,
-    'dcaron': 643,
-    'Umacron': 722,
-    'uring': 556,
-    'threesuperior': 333,
-    'Ograve': 778,
-    'Agrave': 667,
-    'Abreve': 667,
-    'multiply': 584,
-    'uacute': 556,
-    'Tcaron': 611,
-    'partialdiff': 476,
-    'ydieresis': 500,
-    'Nacute': 722,
-    'icircumflex': 278,
-    'Ecircumflex': 667,
-    'adieresis': 556,
-    'edieresis': 556,
-    'cacute': 500,
-    'nacute': 556,
-    'umacron': 556,
-    'Ncaron': 722,
-    'Iacute': 278,
-    'plusminus': 584,
-    'brokenbar': 260,
-    'registered': 737,
-    'Gbreve': 778,
-    'Idotaccent': 278,
-    'summation': 600,
-    'Egrave': 667,
-    'racute': 333,
-    'omacron': 556,
-    'Zacute': 611,
-    'Zcaron': 611,
-    'greaterequal': 549,
-    'Eth': 722,
-    'Ccedilla': 722,
-    'lcommaaccent': 222,
-    'tcaron': 317,
-    'eogonek': 556,
-    'Uogonek': 722,
-    'Aacute': 667,
-    'Adieresis': 667,
-    'egrave': 556,
-    'zacute': 500,
-    'iogonek': 222,
-    'Oacute': 778,
-    'oacute': 556,
-    'amacron': 556,
-    'sacute': 500,
-    'idieresis': 278,
-    'Ocircumflex': 778,
-    'Ugrave': 722,
-    'Delta': 612,
-    'thorn': 556,
-    'twosuperior': 333,
-    'Odieresis': 778,
-    'mu': 556,
-    'igrave': 278,
-    'ohungarumlaut': 556,
-    'Eogonek': 667,
-    'dcroat': 556,
-    'threequarters': 834,
-    'Scedilla': 667,
-    'lcaron': 299,
-    'Kcommaaccent': 667,
-    'Lacute': 556,
-    'trademark': 1000,
-    'edotaccent': 556,
-    'Igrave': 278,
-    'Imacron': 278,
-    'Lcaron': 556,
-    'onehalf': 834,
-    'lessequal': 549,
-    'ocircumflex': 556,
-    'ntilde': 556,
-    'Uhungarumlaut': 722,
-    'Eacute': 667,
-    'emacron': 556,
-    'gbreve': 556,
-    'onequarter': 834,
-    'Scaron': 667,
-    'Scommaaccent': 667,
-    'Ohungarumlaut': 778,
-    'degree': 400,
-    'ograve': 556,
-    'Ccaron': 722,
-    'ugrave': 556,
-    'radical': 453,
-    'Dcaron': 722,
-    'rcommaaccent': 333,
-    'Ntilde': 722,
-    'otilde': 556,
-    'Rcommaaccent': 722,
-    'Lcommaaccent': 556,
-    'Atilde': 667,
-    'Aogonek': 667,
-    'Aring': 667,
-    'Otilde': 778,
-    'zdotaccent': 500,
-    'Ecaron': 667,
-    'Iogonek': 278,
-    'kcommaaccent': 500,
-    'minus': 584,
-    'Icircumflex': 278,
-    'ncaron': 556,
-    'tcommaaccent': 278,
-    'logicalnot': 584,
-    'odieresis': 556,
-    'udieresis': 556,
-    'notequal': 549,
-    'gcommaaccent': 556,
-    'eth': 556,
-    'zcaron': 500,
-    'ncommaaccent': 556,
-    'onesuperior': 333,
-    'imacron': 278,
-    'Euro': 556
-  },
-  'Symbol': {
-    'space': 250,
-    'exclam': 333,
-    'universal': 713,
-    'numbersign': 500,
-    'existential': 549,
-    'percent': 833,
-    'ampersand': 778,
-    'suchthat': 439,
-    'parenleft': 333,
-    'parenright': 333,
-    'asteriskmath': 500,
-    'plus': 549,
-    'comma': 250,
-    'minus': 549,
-    'period': 250,
-    'slash': 278,
-    'zero': 500,
-    'one': 500,
-    'two': 500,
-    'three': 500,
-    'four': 500,
-    'five': 500,
-    'six': 500,
-    'seven': 500,
-    'eight': 500,
-    'nine': 500,
-    'colon': 278,
-    'semicolon': 278,
-    'less': 549,
-    'equal': 549,
-    'greater': 549,
-    'question': 444,
-    'congruent': 549,
-    'Alpha': 722,
-    'Beta': 667,
-    'Chi': 722,
-    'Delta': 612,
-    'Epsilon': 611,
-    'Phi': 763,
-    'Gamma': 603,
-    'Eta': 722,
-    'Iota': 333,
-    'theta1': 631,
-    'Kappa': 722,
-    'Lambda': 686,
-    'Mu': 889,
-    'Nu': 722,
-    'Omicron': 722,
-    'Pi': 768,
-    'Theta': 741,
-    'Rho': 556,
-    'Sigma': 592,
-    'Tau': 611,
-    'Upsilon': 690,
-    'sigma1': 439,
-    'Omega': 768,
-    'Xi': 645,
-    'Psi': 795,
-    'Zeta': 611,
-    'bracketleft': 333,
-    'therefore': 863,
-    'bracketright': 333,
-    'perpendicular': 658,
-    'underscore': 500,
-    'radicalex': 500,
-    'alpha': 631,
-    'beta': 549,
-    'chi': 549,
-    'delta': 494,
-    'epsilon': 439,
-    'phi': 521,
-    'gamma': 411,
-    'eta': 603,
-    'iota': 329,
-    'phi1': 603,
-    'kappa': 549,
-    'lambda': 549,
-    'mu': 576,
-    'nu': 521,
-    'omicron': 549,
-    'pi': 549,
-    'theta': 521,
-    'rho': 549,
-    'sigma': 603,
-    'tau': 439,
-    'upsilon': 576,
-    'omega1': 713,
-    'omega': 686,
-    'xi': 493,
-    'psi': 686,
-    'zeta': 494,
-    'braceleft': 480,
-    'bar': 200,
-    'braceright': 480,
-    'similar': 549,
-    'Euro': 750,
-    'Upsilon1': 620,
-    'minute': 247,
-    'lessequal': 549,
-    'fraction': 167,
-    'infinity': 713,
-    'florin': 500,
-    'club': 753,
-    'diamond': 753,
-    'heart': 753,
-    'spade': 753,
-    'arrowboth': 1042,
-    'arrowleft': 987,
-    'arrowup': 603,
-    'arrowright': 987,
-    'arrowdown': 603,
-    'degree': 400,
-    'plusminus': 549,
-    'second': 411,
-    'greaterequal': 549,
-    'multiply': 549,
-    'proportional': 713,
-    'partialdiff': 494,
-    'bullet': 460,
-    'divide': 549,
-    'notequal': 549,
-    'equivalence': 549,
-    'approxequal': 549,
-    'ellipsis': 1000,
-    'arrowvertex': 603,
-    'arrowhorizex': 1000,
-    'carriagereturn': 658,
-    'aleph': 823,
-    'Ifraktur': 686,
-    'Rfraktur': 795,
-    'weierstrass': 987,
-    'circlemultiply': 768,
-    'circleplus': 768,
-    'emptyset': 823,
-    'intersection': 768,
-    'union': 768,
-    'propersuperset': 713,
-    'reflexsuperset': 713,
-    'notsubset': 713,
-    'propersubset': 713,
-    'reflexsubset': 713,
-    'element': 713,
-    'notelement': 713,
-    'angle': 768,
-    'gradient': 713,
-    'registerserif': 790,
-    'copyrightserif': 790,
-    'trademarkserif': 890,
-    'product': 823,
-    'radical': 549,
-    'dotmath': 250,
-    'logicalnot': 713,
-    'logicaland': 603,
-    'logicalor': 603,
-    'arrowdblboth': 1042,
-    'arrowdblleft': 987,
-    'arrowdblup': 603,
-    'arrowdblright': 987,
-    'arrowdbldown': 603,
-    'lozenge': 494,
-    'angleleft': 329,
-    'registersans': 790,
-    'copyrightsans': 790,
-    'trademarksans': 786,
-    'summation': 713,
-    'parenlefttp': 384,
-    'parenleftex': 384,
-    'parenleftbt': 384,
-    'bracketlefttp': 384,
-    'bracketleftex': 384,
-    'bracketleftbt': 384,
-    'bracelefttp': 494,
-    'braceleftmid': 494,
-    'braceleftbt': 494,
-    'braceex': 494,
-    'angleright': 329,
-    'integral': 274,
-    'integraltp': 686,
-    'integralex': 686,
-    'integralbt': 686,
-    'parenrighttp': 384,
-    'parenrightex': 384,
-    'parenrightbt': 384,
-    'bracketrighttp': 384,
-    'bracketrightex': 384,
-    'bracketrightbt': 384,
-    'bracerighttp': 494,
-    'bracerightmid': 494,
-    'bracerightbt': 494,
-    'apple': 790
-  },
-  'Times-Roman': {
-    'space': 250,
-    'exclam': 333,
-    'quotedbl': 408,
-    'numbersign': 500,
-    'dollar': 500,
-    'percent': 833,
-    'ampersand': 778,
-    'quoteright': 333,
-    'parenleft': 333,
-    'parenright': 333,
-    'asterisk': 500,
-    'plus': 564,
-    'comma': 250,
-    'hyphen': 333,
-    'period': 250,
-    'slash': 278,
-    'zero': 500,
-    'one': 500,
-    'two': 500,
-    'three': 500,
-    'four': 500,
-    'five': 500,
-    'six': 500,
-    'seven': 500,
-    'eight': 500,
-    'nine': 500,
-    'colon': 278,
-    'semicolon': 278,
-    'less': 564,
-    'equal': 564,
-    'greater': 564,
-    'question': 444,
-    'at': 921,
-    'A': 722,
-    'B': 667,
-    'C': 667,
-    'D': 722,
-    'E': 611,
-    'F': 556,
-    'G': 722,
-    'H': 722,
-    'I': 333,
-    'J': 389,
-    'K': 722,
-    'L': 611,
-    'M': 889,
-    'N': 722,
-    'O': 722,
-    'P': 556,
-    'Q': 722,
-    'R': 667,
-    'S': 556,
-    'T': 611,
-    'U': 722,
-    'V': 722,
-    'W': 944,
-    'X': 722,
-    'Y': 722,
-    'Z': 611,
-    'bracketleft': 333,
-    'backslash': 278,
-    'bracketright': 333,
-    'asciicircum': 469,
-    'underscore': 500,
-    'quoteleft': 333,
-    'a': 444,
-    'b': 500,
-    'c': 444,
-    'd': 500,
-    'e': 444,
-    'f': 333,
-    'g': 500,
-    'h': 500,
-    'i': 278,
-    'j': 278,
-    'k': 500,
-    'l': 278,
-    'm': 778,
-    'n': 500,
-    'o': 500,
-    'p': 500,
-    'q': 500,
-    'r': 333,
-    's': 389,
-    't': 278,
-    'u': 500,
-    'v': 500,
-    'w': 722,
-    'x': 500,
-    'y': 500,
-    'z': 444,
-    'braceleft': 480,
-    'bar': 200,
-    'braceright': 480,
-    'asciitilde': 541,
-    'exclamdown': 333,
-    'cent': 500,
-    'sterling': 500,
-    'fraction': 167,
-    'yen': 500,
-    'florin': 500,
-    'section': 500,
-    'currency': 500,
-    'quotesingle': 180,
-    'quotedblleft': 444,
-    'guillemotleft': 500,
-    'guilsinglleft': 333,
-    'guilsinglright': 333,
-    'fi': 556,
-    'fl': 556,
-    'endash': 500,
-    'dagger': 500,
-    'daggerdbl': 500,
-    'periodcentered': 250,
-    'paragraph': 453,
-    'bullet': 350,
-    'quotesinglbase': 333,
-    'quotedblbase': 444,
-    'quotedblright': 444,
-    'guillemotright': 500,
-    'ellipsis': 1000,
-    'perthousand': 1000,
-    'questiondown': 444,
-    'grave': 333,
-    'acute': 333,
-    'circumflex': 333,
-    'tilde': 333,
-    'macron': 333,
-    'breve': 333,
-    'dotaccent': 333,
-    'dieresis': 333,
-    'ring': 333,
-    'cedilla': 333,
-    'hungarumlaut': 333,
-    'ogonek': 333,
-    'caron': 333,
-    'emdash': 1000,
-    'AE': 889,
-    'ordfeminine': 276,
-    'Lslash': 611,
-    'Oslash': 722,
-    'OE': 889,
-    'ordmasculine': 310,
-    'ae': 667,
-    'dotlessi': 278,
-    'lslash': 278,
-    'oslash': 500,
-    'oe': 722,
-    'germandbls': 500,
-    'Idieresis': 333,
-    'eacute': 444,
-    'abreve': 444,
-    'uhungarumlaut': 500,
-    'ecaron': 444,
-    'Ydieresis': 722,
-    'divide': 564,
-    'Yacute': 722,
-    'Acircumflex': 722,
-    'aacute': 444,
-    'Ucircumflex': 722,
-    'yacute': 500,
-    'scommaaccent': 389,
-    'ecircumflex': 444,
-    'Uring': 722,
-    'Udieresis': 722,
-    'aogonek': 444,
-    'Uacute': 722,
-    'uogonek': 500,
-    'Edieresis': 611,
-    'Dcroat': 722,
-    'commaaccent': 250,
-    'copyright': 760,
-    'Emacron': 611,
-    'ccaron': 444,
-    'aring': 444,
-    'Ncommaaccent': 722,
-    'lacute': 278,
-    'agrave': 444,
-    'Tcommaaccent': 611,
-    'Cacute': 667,
-    'atilde': 444,
-    'Edotaccent': 611,
-    'scaron': 389,
-    'scedilla': 389,
-    'iacute': 278,
-    'lozenge': 471,
-    'Rcaron': 667,
-    'Gcommaaccent': 722,
-    'ucircumflex': 500,
-    'acircumflex': 444,
-    'Amacron': 722,
-    'rcaron': 333,
-    'ccedilla': 444,
-    'Zdotaccent': 611,
-    'Thorn': 556,
-    'Omacron': 722,
-    'Racute': 667,
-    'Sacute': 556,
-    'dcaron': 588,
-    'Umacron': 722,
-    'uring': 500,
-    'threesuperior': 300,
-    'Ograve': 722,
-    'Agrave': 722,
-    'Abreve': 722,
-    'multiply': 564,
-    'uacute': 500,
-    'Tcaron': 611,
-    'partialdiff': 476,
-    'ydieresis': 500,
-    'Nacute': 722,
-    'icircumflex': 278,
-    'Ecircumflex': 611,
-    'adieresis': 444,
-    'edieresis': 444,
-    'cacute': 444,
-    'nacute': 500,
-    'umacron': 500,
-    'Ncaron': 722,
-    'Iacute': 333,
-    'plusminus': 564,
-    'brokenbar': 200,
-    'registered': 760,
-    'Gbreve': 722,
-    'Idotaccent': 333,
-    'summation': 600,
-    'Egrave': 611,
-    'racute': 333,
-    'omacron': 500,
-    'Zacute': 611,
-    'Zcaron': 611,
-    'greaterequal': 549,
-    'Eth': 722,
-    'Ccedilla': 667,
-    'lcommaaccent': 278,
-    'tcaron': 326,
-    'eogonek': 444,
-    'Uogonek': 722,
-    'Aacute': 722,
-    'Adieresis': 722,
-    'egrave': 444,
-    'zacute': 444,
-    'iogonek': 278,
-    'Oacute': 722,
-    'oacute': 500,
-    'amacron': 444,
-    'sacute': 389,
-    'idieresis': 278,
-    'Ocircumflex': 722,
-    'Ugrave': 722,
-    'Delta': 612,
-    'thorn': 500,
-    'twosuperior': 300,
-    'Odieresis': 722,
-    'mu': 500,
-    'igrave': 278,
-    'ohungarumlaut': 500,
-    'Eogonek': 611,
-    'dcroat': 500,
-    'threequarters': 750,
-    'Scedilla': 556,
-    'lcaron': 344,
-    'Kcommaaccent': 722,
-    'Lacute': 611,
-    'trademark': 980,
-    'edotaccent': 444,
-    'Igrave': 333,
-    'Imacron': 333,
-    'Lcaron': 611,
-    'onehalf': 750,
-    'lessequal': 549,
-    'ocircumflex': 500,
-    'ntilde': 500,
-    'Uhungarumlaut': 722,
-    'Eacute': 611,
-    'emacron': 444,
-    'gbreve': 500,
-    'onequarter': 750,
-    'Scaron': 556,
-    'Scommaaccent': 556,
-    'Ohungarumlaut': 722,
-    'degree': 400,
-    'ograve': 500,
-    'Ccaron': 667,
-    'ugrave': 500,
-    'radical': 453,
-    'Dcaron': 722,
-    'rcommaaccent': 333,
-    'Ntilde': 722,
-    'otilde': 500,
-    'Rcommaaccent': 667,
-    'Lcommaaccent': 611,
-    'Atilde': 722,
-    'Aogonek': 722,
-    'Aring': 722,
-    'Otilde': 722,
-    'zdotaccent': 444,
-    'Ecaron': 611,
-    'Iogonek': 333,
-    'kcommaaccent': 500,
-    'minus': 564,
-    'Icircumflex': 333,
-    'ncaron': 500,
-    'tcommaaccent': 278,
-    'logicalnot': 564,
-    'odieresis': 500,
-    'udieresis': 500,
-    'notequal': 549,
-    'gcommaaccent': 500,
-    'eth': 500,
-    'zcaron': 444,
-    'ncommaaccent': 500,
-    'onesuperior': 300,
-    'imacron': 278,
-    'Euro': 500
-  },
-  'Times-Bold': {
-    'space': 250,
-    'exclam': 333,
-    'quotedbl': 555,
-    'numbersign': 500,
-    'dollar': 500,
-    'percent': 1000,
-    'ampersand': 833,
-    'quoteright': 333,
-    'parenleft': 333,
-    'parenright': 333,
-    'asterisk': 500,
-    'plus': 570,
-    'comma': 250,
-    'hyphen': 333,
-    'period': 250,
-    'slash': 278,
-    'zero': 500,
-    'one': 500,
-    'two': 500,
-    'three': 500,
-    'four': 500,
-    'five': 500,
-    'six': 500,
-    'seven': 500,
-    'eight': 500,
-    'nine': 500,
-    'colon': 333,
-    'semicolon': 333,
-    'less': 570,
-    'equal': 570,
-    'greater': 570,
-    'question': 500,
-    'at': 930,
-    'A': 722,
-    'B': 667,
-    'C': 722,
-    'D': 722,
-    'E': 667,
-    'F': 611,
-    'G': 778,
-    'H': 778,
-    'I': 389,
-    'J': 500,
-    'K': 778,
-    'L': 667,
-    'M': 944,
-    'N': 722,
-    'O': 778,
-    'P': 611,
-    'Q': 778,
-    'R': 722,
-    'S': 556,
-    'T': 667,
-    'U': 722,
-    'V': 722,
-    'W': 1000,
-    'X': 722,
-    'Y': 722,
-    'Z': 667,
-    'bracketleft': 333,
-    'backslash': 278,
-    'bracketright': 333,
-    'asciicircum': 581,
-    'underscore': 500,
-    'quoteleft': 333,
-    'a': 500,
-    'b': 556,
-    'c': 444,
-    'd': 556,
-    'e': 444,
-    'f': 333,
-    'g': 500,
-    'h': 556,
-    'i': 278,
-    'j': 333,
-    'k': 556,
-    'l': 278,
-    'm': 833,
-    'n': 556,
-    'o': 500,
-    'p': 556,
-    'q': 556,
-    'r': 444,
-    's': 389,
-    't': 333,
-    'u': 556,
-    'v': 500,
-    'w': 722,
-    'x': 500,
-    'y': 500,
-    'z': 444,
-    'braceleft': 394,
-    'bar': 220,
-    'braceright': 394,
-    'asciitilde': 520,
-    'exclamdown': 333,
-    'cent': 500,
-    'sterling': 500,
-    'fraction': 167,
-    'yen': 500,
-    'florin': 500,
-    'section': 500,
-    'currency': 500,
-    'quotesingle': 278,
-    'quotedblleft': 500,
-    'guillemotleft': 500,
-    'guilsinglleft': 333,
-    'guilsinglright': 333,
-    'fi': 556,
-    'fl': 556,
-    'endash': 500,
-    'dagger': 500,
-    'daggerdbl': 500,
-    'periodcentered': 250,
-    'paragraph': 540,
-    'bullet': 350,
-    'quotesinglbase': 333,
-    'quotedblbase': 500,
-    'quotedblright': 500,
-    'guillemotright': 500,
-    'ellipsis': 1000,
-    'perthousand': 1000,
-    'questiondown': 500,
-    'grave': 333,
-    'acute': 333,
-    'circumflex': 333,
-    'tilde': 333,
-    'macron': 333,
-    'breve': 333,
-    'dotaccent': 333,
-    'dieresis': 333,
-    'ring': 333,
-    'cedilla': 333,
-    'hungarumlaut': 333,
-    'ogonek': 333,
-    'caron': 333,
-    'emdash': 1000,
-    'AE': 1000,
-    'ordfeminine': 300,
-    'Lslash': 667,
-    'Oslash': 778,
-    'OE': 1000,
-    'ordmasculine': 330,
-    'ae': 722,
-    'dotlessi': 278,
-    'lslash': 278,
-    'oslash': 500,
-    'oe': 722,
-    'germandbls': 556,
-    'Idieresis': 389,
-    'eacute': 444,
-    'abreve': 500,
-    'uhungarumlaut': 556,
-    'ecaron': 444,
-    'Ydieresis': 722,
-    'divide': 570,
-    'Yacute': 722,
-    'Acircumflex': 722,
-    'aacute': 500,
-    'Ucircumflex': 722,
-    'yacute': 500,
-    'scommaaccent': 389,
-    'ecircumflex': 444,
-    'Uring': 722,
-    'Udieresis': 722,
-    'aogonek': 500,
-    'Uacute': 722,
-    'uogonek': 556,
-    'Edieresis': 667,
-    'Dcroat': 722,
-    'commaaccent': 250,
-    'copyright': 747,
-    'Emacron': 667,
-    'ccaron': 444,
-    'aring': 500,
-    'Ncommaaccent': 722,
-    'lacute': 278,
-    'agrave': 500,
-    'Tcommaaccent': 667,
-    'Cacute': 722,
-    'atilde': 500,
-    'Edotaccent': 667,
-    'scaron': 389,
-    'scedilla': 389,
-    'iacute': 278,
-    'lozenge': 494,
-    'Rcaron': 722,
-    'Gcommaaccent': 778,
-    'ucircumflex': 556,
-    'acircumflex': 500,
-    'Amacron': 722,
-    'rcaron': 444,
-    'ccedilla': 444,
-    'Zdotaccent': 667,
-    'Thorn': 611,
-    'Omacron': 778,
-    'Racute': 722,
-    'Sacute': 556,
-    'dcaron': 672,
-    'Umacron': 722,
-    'uring': 556,
-    'threesuperior': 300,
-    'Ograve': 778,
-    'Agrave': 722,
-    'Abreve': 722,
-    'multiply': 570,
-    'uacute': 556,
-    'Tcaron': 667,
-    'partialdiff': 494,
-    'ydieresis': 500,
-    'Nacute': 722,
-    'icircumflex': 278,
-    'Ecircumflex': 667,
-    'adieresis': 500,
-    'edieresis': 444,
-    'cacute': 444,
-    'nacute': 556,
-    'umacron': 556,
-    'Ncaron': 722,
-    'Iacute': 389,
-    'plusminus': 570,
-    'brokenbar': 220,
-    'registered': 747,
-    'Gbreve': 778,
-    'Idotaccent': 389,
-    'summation': 600,
-    'Egrave': 667,
-    'racute': 444,
-    'omacron': 500,
-    'Zacute': 667,
-    'Zcaron': 667,
-    'greaterequal': 549,
-    'Eth': 722,
-    'Ccedilla': 722,
-    'lcommaaccent': 278,
-    'tcaron': 416,
-    'eogonek': 444,
-    'Uogonek': 722,
-    'Aacute': 722,
-    'Adieresis': 722,
-    'egrave': 444,
-    'zacute': 444,
-    'iogonek': 278,
-    'Oacute': 778,
-    'oacute': 500,
-    'amacron': 500,
-    'sacute': 389,
-    'idieresis': 278,
-    'Ocircumflex': 778,
-    'Ugrave': 722,
-    'Delta': 612,
-    'thorn': 556,
-    'twosuperior': 300,
-    'Odieresis': 778,
-    'mu': 556,
-    'igrave': 278,
-    'ohungarumlaut': 500,
-    'Eogonek': 667,
-    'dcroat': 556,
-    'threequarters': 750,
-    'Scedilla': 556,
-    'lcaron': 394,
-    'Kcommaaccent': 778,
-    'Lacute': 667,
-    'trademark': 1000,
-    'edotaccent': 444,
-    'Igrave': 389,
-    'Imacron': 389,
-    'Lcaron': 667,
-    'onehalf': 750,
-    'lessequal': 549,
-    'ocircumflex': 500,
-    'ntilde': 556,
-    'Uhungarumlaut': 722,
-    'Eacute': 667,
-    'emacron': 444,
-    'gbreve': 500,
-    'onequarter': 750,
-    'Scaron': 556,
-    'Scommaaccent': 556,
-    'Ohungarumlaut': 778,
-    'degree': 400,
-    'ograve': 500,
-    'Ccaron': 722,
-    'ugrave': 556,
-    'radical': 549,
-    'Dcaron': 722,
-    'rcommaaccent': 444,
-    'Ntilde': 722,
-    'otilde': 500,
-    'Rcommaaccent': 722,
-    'Lcommaaccent': 667,
-    'Atilde': 722,
-    'Aogonek': 722,
-    'Aring': 722,
-    'Otilde': 778,
-    'zdotaccent': 444,
-    'Ecaron': 667,
-    'Iogonek': 389,
-    'kcommaaccent': 556,
-    'minus': 570,
-    'Icircumflex': 389,
-    'ncaron': 556,
-    'tcommaaccent': 333,
-    'logicalnot': 570,
-    'odieresis': 500,
-    'udieresis': 556,
-    'notequal': 549,
-    'gcommaaccent': 500,
-    'eth': 500,
-    'zcaron': 444,
-    'ncommaaccent': 556,
-    'onesuperior': 300,
-    'imacron': 278,
-    'Euro': 500
-  },
-  'Times-BoldItalic': {
-    'space': 250,
-    'exclam': 389,
-    'quotedbl': 555,
-    'numbersign': 500,
-    'dollar': 500,
-    'percent': 833,
-    'ampersand': 778,
-    'quoteright': 333,
-    'parenleft': 333,
-    'parenright': 333,
-    'asterisk': 500,
-    'plus': 570,
-    'comma': 250,
-    'hyphen': 333,
-    'period': 250,
-    'slash': 278,
-    'zero': 500,
-    'one': 500,
-    'two': 500,
-    'three': 500,
-    'four': 500,
-    'five': 500,
-    'six': 500,
-    'seven': 500,
-    'eight': 500,
-    'nine': 500,
-    'colon': 333,
-    'semicolon': 333,
-    'less': 570,
-    'equal': 570,
-    'greater': 570,
-    'question': 500,
-    'at': 832,
-    'A': 667,
-    'B': 667,
-    'C': 667,
-    'D': 722,
-    'E': 667,
-    'F': 667,
-    'G': 722,
-    'H': 778,
-    'I': 389,
-    'J': 500,
-    'K': 667,
-    'L': 611,
-    'M': 889,
-    'N': 722,
-    'O': 722,
-    'P': 611,
-    'Q': 722,
-    'R': 667,
-    'S': 556,
-    'T': 611,
-    'U': 722,
-    'V': 667,
-    'W': 889,
-    'X': 667,
-    'Y': 611,
-    'Z': 611,
-    'bracketleft': 333,
-    'backslash': 278,
-    'bracketright': 333,
-    'asciicircum': 570,
-    'underscore': 500,
-    'quoteleft': 333,
-    'a': 500,
-    'b': 500,
-    'c': 444,
-    'd': 500,
-    'e': 444,
-    'f': 333,
-    'g': 500,
-    'h': 556,
-    'i': 278,
-    'j': 278,
-    'k': 500,
-    'l': 278,
-    'm': 778,
-    'n': 556,
-    'o': 500,
-    'p': 500,
-    'q': 500,
-    'r': 389,
-    's': 389,
-    't': 278,
-    'u': 556,
-    'v': 444,
-    'w': 667,
-    'x': 500,
-    'y': 444,
-    'z': 389,
-    'braceleft': 348,
-    'bar': 220,
-    'braceright': 348,
-    'asciitilde': 570,
-    'exclamdown': 389,
-    'cent': 500,
-    'sterling': 500,
-    'fraction': 167,
-    'yen': 500,
-    'florin': 500,
-    'section': 500,
-    'currency': 500,
-    'quotesingle': 278,
-    'quotedblleft': 500,
-    'guillemotleft': 500,
-    'guilsinglleft': 333,
-    'guilsinglright': 333,
-    'fi': 556,
-    'fl': 556,
-    'endash': 500,
-    'dagger': 500,
-    'daggerdbl': 500,
-    'periodcentered': 250,
-    'paragraph': 500,
-    'bullet': 350,
-    'quotesinglbase': 333,
-    'quotedblbase': 500,
-    'quotedblright': 500,
-    'guillemotright': 500,
-    'ellipsis': 1000,
-    'perthousand': 1000,
-    'questiondown': 500,
-    'grave': 333,
-    'acute': 333,
-    'circumflex': 333,
-    'tilde': 333,
-    'macron': 333,
-    'breve': 333,
-    'dotaccent': 333,
-    'dieresis': 333,
-    'ring': 333,
-    'cedilla': 333,
-    'hungarumlaut': 333,
-    'ogonek': 333,
-    'caron': 333,
-    'emdash': 1000,
-    'AE': 944,
-    'ordfeminine': 266,
-    'Lslash': 611,
-    'Oslash': 722,
-    'OE': 944,
-    'ordmasculine': 300,
-    'ae': 722,
-    'dotlessi': 278,
-    'lslash': 278,
-    'oslash': 500,
-    'oe': 722,
-    'germandbls': 500,
-    'Idieresis': 389,
-    'eacute': 444,
-    'abreve': 500,
-    'uhungarumlaut': 556,
-    'ecaron': 444,
-    'Ydieresis': 611,
-    'divide': 570,
-    'Yacute': 611,
-    'Acircumflex': 667,
-    'aacute': 500,
-    'Ucircumflex': 722,
-    'yacute': 444,
-    'scommaaccent': 389,
-    'ecircumflex': 444,
-    'Uring': 722,
-    'Udieresis': 722,
-    'aogonek': 500,
-    'Uacute': 722,
-    'uogonek': 556,
-    'Edieresis': 667,
-    'Dcroat': 722,
-    'commaaccent': 250,
-    'copyright': 747,
-    'Emacron': 667,
-    'ccaron': 444,
-    'aring': 500,
-    'Ncommaaccent': 722,
-    'lacute': 278,
-    'agrave': 500,
-    'Tcommaaccent': 611,
-    'Cacute': 667,
-    'atilde': 500,
-    'Edotaccent': 667,
-    'scaron': 389,
-    'scedilla': 389,
-    'iacute': 278,
-    'lozenge': 494,
-    'Rcaron': 667,
-    'Gcommaaccent': 722,
-    'ucircumflex': 556,
-    'acircumflex': 500,
-    'Amacron': 667,
-    'rcaron': 389,
-    'ccedilla': 444,
-    'Zdotaccent': 611,
-    'Thorn': 611,
-    'Omacron': 722,
-    'Racute': 667,
-    'Sacute': 556,
-    'dcaron': 608,
-    'Umacron': 722,
-    'uring': 556,
-    'threesuperior': 300,
-    'Ograve': 722,
-    'Agrave': 667,
-    'Abreve': 667,
-    'multiply': 570,
-    'uacute': 556,
-    'Tcaron': 611,
-    'partialdiff': 494,
-    'ydieresis': 444,
-    'Nacute': 722,
-    'icircumflex': 278,
-    'Ecircumflex': 667,
-    'adieresis': 500,
-    'edieresis': 444,
-    'cacute': 444,
-    'nacute': 556,
-    'umacron': 556,
-    'Ncaron': 722,
-    'Iacute': 389,
-    'plusminus': 570,
-    'brokenbar': 220,
-    'registered': 747,
-    'Gbreve': 722,
-    'Idotaccent': 389,
-    'summation': 600,
-    'Egrave': 667,
-    'racute': 389,
-    'omacron': 500,
-    'Zacute': 611,
-    'Zcaron': 611,
-    'greaterequal': 549,
-    'Eth': 722,
-    'Ccedilla': 667,
-    'lcommaaccent': 278,
-    'tcaron': 366,
-    'eogonek': 444,
-    'Uogonek': 722,
-    'Aacute': 667,
-    'Adieresis': 667,
-    'egrave': 444,
-    'zacute': 389,
-    'iogonek': 278,
-    'Oacute': 722,
-    'oacute': 500,
-    'amacron': 500,
-    'sacute': 389,
-    'idieresis': 278,
-    'Ocircumflex': 722,
-    'Ugrave': 722,
-    'Delta': 612,
-    'thorn': 500,
-    'twosuperior': 300,
-    'Odieresis': 722,
-    'mu': 576,
-    'igrave': 278,
-    'ohungarumlaut': 500,
-    'Eogonek': 667,
-    'dcroat': 500,
-    'threequarters': 750,
-    'Scedilla': 556,
-    'lcaron': 382,
-    'Kcommaaccent': 667,
-    'Lacute': 611,
-    'trademark': 1000,
-    'edotaccent': 444,
-    'Igrave': 389,
-    'Imacron': 389,
-    'Lcaron': 611,
-    'onehalf': 750,
-    'lessequal': 549,
-    'ocircumflex': 500,
-    'ntilde': 556,
-    'Uhungarumlaut': 722,
-    'Eacute': 667,
-    'emacron': 444,
-    'gbreve': 500,
-    'onequarter': 750,
-    'Scaron': 556,
-    'Scommaaccent': 556,
-    'Ohungarumlaut': 722,
-    'degree': 400,
-    'ograve': 500,
-    'Ccaron': 667,
-    'ugrave': 556,
-    'radical': 549,
-    'Dcaron': 722,
-    'rcommaaccent': 389,
-    'Ntilde': 722,
-    'otilde': 500,
-    'Rcommaaccent': 667,
-    'Lcommaaccent': 611,
-    'Atilde': 667,
-    'Aogonek': 667,
-    'Aring': 667,
-    'Otilde': 722,
-    'zdotaccent': 389,
-    'Ecaron': 667,
-    'Iogonek': 389,
-    'kcommaaccent': 500,
-    'minus': 606,
-    'Icircumflex': 389,
-    'ncaron': 556,
-    'tcommaaccent': 278,
-    'logicalnot': 606,
-    'odieresis': 500,
-    'udieresis': 556,
-    'notequal': 549,
-    'gcommaaccent': 500,
-    'eth': 500,
-    'zcaron': 389,
-    'ncommaaccent': 556,
-    'onesuperior': 300,
-    'imacron': 278,
-    'Euro': 500
-  },
-  'Times-Italic': {
-    'space': 250,
-    'exclam': 333,
-    'quotedbl': 420,
-    'numbersign': 500,
-    'dollar': 500,
-    'percent': 833,
-    'ampersand': 778,
-    'quoteright': 333,
-    'parenleft': 333,
-    'parenright': 333,
-    'asterisk': 500,
-    'plus': 675,
-    'comma': 250,
-    'hyphen': 333,
-    'period': 250,
-    'slash': 278,
-    'zero': 500,
-    'one': 500,
-    'two': 500,
-    'three': 500,
-    'four': 500,
-    'five': 500,
-    'six': 500,
-    'seven': 500,
-    'eight': 500,
-    'nine': 500,
-    'colon': 333,
-    'semicolon': 333,
-    'less': 675,
-    'equal': 675,
-    'greater': 675,
-    'question': 500,
-    'at': 920,
-    'A': 611,
-    'B': 611,
-    'C': 667,
-    'D': 722,
-    'E': 611,
-    'F': 611,
-    'G': 722,
-    'H': 722,
-    'I': 333,
-    'J': 444,
-    'K': 667,
-    'L': 556,
-    'M': 833,
-    'N': 667,
-    'O': 722,
-    'P': 611,
-    'Q': 722,
-    'R': 611,
-    'S': 500,
-    'T': 556,
-    'U': 722,
-    'V': 611,
-    'W': 833,
-    'X': 611,
-    'Y': 556,
-    'Z': 556,
-    'bracketleft': 389,
-    'backslash': 278,
-    'bracketright': 389,
-    'asciicircum': 422,
-    'underscore': 500,
-    'quoteleft': 333,
-    'a': 500,
-    'b': 500,
-    'c': 444,
-    'd': 500,
-    'e': 444,
-    'f': 278,
-    'g': 500,
-    'h': 500,
-    'i': 278,
-    'j': 278,
-    'k': 444,
-    'l': 278,
-    'm': 722,
-    'n': 500,
-    'o': 500,
-    'p': 500,
-    'q': 500,
-    'r': 389,
-    's': 389,
-    't': 278,
-    'u': 500,
-    'v': 444,
-    'w': 667,
-    'x': 444,
-    'y': 444,
-    'z': 389,
-    'braceleft': 400,
-    'bar': 275,
-    'braceright': 400,
-    'asciitilde': 541,
-    'exclamdown': 389,
-    'cent': 500,
-    'sterling': 500,
-    'fraction': 167,
-    'yen': 500,
-    'florin': 500,
-    'section': 500,
-    'currency': 500,
-    'quotesingle': 214,
-    'quotedblleft': 556,
-    'guillemotleft': 500,
-    'guilsinglleft': 333,
-    'guilsinglright': 333,
-    'fi': 500,
-    'fl': 500,
-    'endash': 500,
-    'dagger': 500,
-    'daggerdbl': 500,
-    'periodcentered': 250,
-    'paragraph': 523,
-    'bullet': 350,
-    'quotesinglbase': 333,
-    'quotedblbase': 556,
-    'quotedblright': 556,
-    'guillemotright': 500,
-    'ellipsis': 889,
-    'perthousand': 1000,
-    'questiondown': 500,
-    'grave': 333,
-    'acute': 333,
-    'circumflex': 333,
-    'tilde': 333,
-    'macron': 333,
-    'breve': 333,
-    'dotaccent': 333,
-    'dieresis': 333,
-    'ring': 333,
-    'cedilla': 333,
-    'hungarumlaut': 333,
-    'ogonek': 333,
-    'caron': 333,
-    'emdash': 889,
-    'AE': 889,
-    'ordfeminine': 276,
-    'Lslash': 556,
-    'Oslash': 722,
-    'OE': 944,
-    'ordmasculine': 310,
-    'ae': 667,
-    'dotlessi': 278,
-    'lslash': 278,
-    'oslash': 500,
-    'oe': 667,
-    'germandbls': 500,
-    'Idieresis': 333,
-    'eacute': 444,
-    'abreve': 500,
-    'uhungarumlaut': 500,
-    'ecaron': 444,
-    'Ydieresis': 556,
-    'divide': 675,
-    'Yacute': 556,
-    'Acircumflex': 611,
-    'aacute': 500,
-    'Ucircumflex': 722,
-    'yacute': 444,
-    'scommaaccent': 389,
-    'ecircumflex': 444,
-    'Uring': 722,
-    'Udieresis': 722,
-    'aogonek': 500,
-    'Uacute': 722,
-    'uogonek': 500,
-    'Edieresis': 611,
-    'Dcroat': 722,
-    'commaaccent': 250,
-    'copyright': 760,
-    'Emacron': 611,
-    'ccaron': 444,
-    'aring': 500,
-    'Ncommaaccent': 667,
-    'lacute': 278,
-    'agrave': 500,
-    'Tcommaaccent': 556,
-    'Cacute': 667,
-    'atilde': 500,
-    'Edotaccent': 611,
-    'scaron': 389,
-    'scedilla': 389,
-    'iacute': 278,
-    'lozenge': 471,
-    'Rcaron': 611,
-    'Gcommaaccent': 722,
-    'ucircumflex': 500,
-    'acircumflex': 500,
-    'Amacron': 611,
-    'rcaron': 389,
-    'ccedilla': 444,
-    'Zdotaccent': 556,
-    'Thorn': 611,
-    'Omacron': 722,
-    'Racute': 611,
-    'Sacute': 500,
-    'dcaron': 544,
-    'Umacron': 722,
-    'uring': 500,
-    'threesuperior': 300,
-    'Ograve': 722,
-    'Agrave': 611,
-    'Abreve': 611,
-    'multiply': 675,
-    'uacute': 500,
-    'Tcaron': 556,
-    'partialdiff': 476,
-    'ydieresis': 444,
-    'Nacute': 667,
-    'icircumflex': 278,
-    'Ecircumflex': 611,
-    'adieresis': 500,
-    'edieresis': 444,
-    'cacute': 444,
-    'nacute': 500,
-    'umacron': 500,
-    'Ncaron': 667,
-    'Iacute': 333,
-    'plusminus': 675,
-    'brokenbar': 275,
-    'registered': 760,
-    'Gbreve': 722,
-    'Idotaccent': 333,
-    'summation': 600,
-    'Egrave': 611,
-    'racute': 389,
-    'omacron': 500,
-    'Zacute': 556,
-    'Zcaron': 556,
-    'greaterequal': 549,
-    'Eth': 722,
-    'Ccedilla': 667,
-    'lcommaaccent': 278,
-    'tcaron': 300,
-    'eogonek': 444,
-    'Uogonek': 722,
-    'Aacute': 611,
-    'Adieresis': 611,
-    'egrave': 444,
-    'zacute': 389,
-    'iogonek': 278,
-    'Oacute': 722,
-    'oacute': 500,
-    'amacron': 500,
-    'sacute': 389,
-    'idieresis': 278,
-    'Ocircumflex': 722,
-    'Ugrave': 722,
-    'Delta': 612,
-    'thorn': 500,
-    'twosuperior': 300,
-    'Odieresis': 722,
-    'mu': 500,
-    'igrave': 278,
-    'ohungarumlaut': 500,
-    'Eogonek': 611,
-    'dcroat': 500,
-    'threequarters': 750,
-    'Scedilla': 500,
-    'lcaron': 300,
-    'Kcommaaccent': 667,
-    'Lacute': 556,
-    'trademark': 980,
-    'edotaccent': 444,
-    'Igrave': 333,
-    'Imacron': 333,
-    'Lcaron': 611,
-    'onehalf': 750,
-    'lessequal': 549,
-    'ocircumflex': 500,
-    'ntilde': 500,
-    'Uhungarumlaut': 722,
-    'Eacute': 611,
-    'emacron': 444,
-    'gbreve': 500,
-    'onequarter': 750,
-    'Scaron': 500,
-    'Scommaaccent': 500,
-    'Ohungarumlaut': 722,
-    'degree': 400,
-    'ograve': 500,
-    'Ccaron': 667,
-    'ugrave': 500,
-    'radical': 453,
-    'Dcaron': 722,
-    'rcommaaccent': 389,
-    'Ntilde': 667,
-    'otilde': 500,
-    'Rcommaaccent': 611,
-    'Lcommaaccent': 556,
-    'Atilde': 611,
-    'Aogonek': 611,
-    'Aring': 611,
-    'Otilde': 722,
-    'zdotaccent': 389,
-    'Ecaron': 611,
-    'Iogonek': 333,
-    'kcommaaccent': 444,
-    'minus': 675,
-    'Icircumflex': 333,
-    'ncaron': 500,
-    'tcommaaccent': 278,
-    'logicalnot': 675,
-    'odieresis': 500,
-    'udieresis': 500,
-    'notequal': 549,
-    'gcommaaccent': 500,
-    'eth': 500,
-    'zcaron': 389,
-    'ncommaaccent': 500,
-    'onesuperior': 300,
-    'imacron': 278,
-    'Euro': 500
-  },
-  'ZapfDingbats': {
-    'space': 278,
-    'a1': 974,
-    'a2': 961,
-    'a202': 974,
-    'a3': 980,
-    'a4': 719,
-    'a5': 789,
-    'a119': 790,
-    'a118': 791,
-    'a117': 690,
-    'a11': 960,
-    'a12': 939,
-    'a13': 549,
-    'a14': 855,
-    'a15': 911,
-    'a16': 933,
-    'a105': 911,
-    'a17': 945,
-    'a18': 974,
-    'a19': 755,
-    'a20': 846,
-    'a21': 762,
-    'a22': 761,
-    'a23': 571,
-    'a24': 677,
-    'a25': 763,
-    'a26': 760,
-    'a27': 759,
-    'a28': 754,
-    'a6': 494,
-    'a7': 552,
-    'a8': 537,
-    'a9': 577,
-    'a10': 692,
-    'a29': 786,
-    'a30': 788,
-    'a31': 788,
-    'a32': 790,
-    'a33': 793,
-    'a34': 794,
-    'a35': 816,
-    'a36': 823,
-    'a37': 789,
-    'a38': 841,
-    'a39': 823,
-    'a40': 833,
-    'a41': 816,
-    'a42': 831,
-    'a43': 923,
-    'a44': 744,
-    'a45': 723,
-    'a46': 749,
-    'a47': 790,
-    'a48': 792,
-    'a49': 695,
-    'a50': 776,
-    'a51': 768,
-    'a52': 792,
-    'a53': 759,
-    'a54': 707,
-    'a55': 708,
-    'a56': 682,
-    'a57': 701,
-    'a58': 826,
-    'a59': 815,
-    'a60': 789,
-    'a61': 789,
-    'a62': 707,
-    'a63': 687,
-    'a64': 696,
-    'a65': 689,
-    'a66': 786,
-    'a67': 787,
-    'a68': 713,
-    'a69': 791,
-    'a70': 785,
-    'a71': 791,
-    'a72': 873,
-    'a73': 761,
-    'a74': 762,
-    'a203': 762,
-    'a75': 759,
-    'a204': 759,
-    'a76': 892,
-    'a77': 892,
-    'a78': 788,
-    'a79': 784,
-    'a81': 438,
-    'a82': 138,
-    'a83': 277,
-    'a84': 415,
-    'a97': 392,
-    'a98': 392,
-    'a99': 668,
-    'a100': 668,
-    'a89': 390,
-    'a90': 390,
-    'a93': 317,
-    'a94': 317,
-    'a91': 276,
-    'a92': 276,
-    'a205': 509,
-    'a85': 509,
-    'a206': 410,
-    'a86': 410,
-    'a87': 234,
-    'a88': 234,
-    'a95': 334,
-    'a96': 334,
-    'a101': 732,
-    'a102': 544,
-    'a103': 544,
-    'a104': 910,
-    'a106': 667,
-    'a107': 760,
-    'a108': 760,
-    'a112': 776,
-    'a111': 595,
-    'a110': 694,
-    'a109': 626,
-    'a120': 788,
-    'a121': 788,
-    'a122': 788,
-    'a123': 788,
-    'a124': 788,
-    'a125': 788,
-    'a126': 788,
-    'a127': 788,
-    'a128': 788,
-    'a129': 788,
-    'a130': 788,
-    'a131': 788,
-    'a132': 788,
-    'a133': 788,
-    'a134': 788,
-    'a135': 788,
-    'a136': 788,
-    'a137': 788,
-    'a138': 788,
-    'a139': 788,
-    'a140': 788,
-    'a141': 788,
-    'a142': 788,
-    'a143': 788,
-    'a144': 788,
-    'a145': 788,
-    'a146': 788,
-    'a147': 788,
-    'a148': 788,
-    'a149': 788,
-    'a150': 788,
-    'a151': 788,
-    'a152': 788,
-    'a153': 788,
-    'a154': 788,
-    'a155': 788,
-    'a156': 788,
-    'a157': 788,
-    'a158': 788,
-    'a159': 788,
-    'a160': 894,
-    'a161': 838,
-    'a163': 1016,
-    'a164': 458,
-    'a196': 748,
-    'a165': 924,
-    'a192': 748,
-    'a166': 918,
-    'a167': 927,
-    'a168': 928,
-    'a169': 928,
-    'a170': 834,
-    'a171': 873,
-    'a172': 828,
-    'a173': 924,
-    'a162': 924,
-    'a174': 917,
-    'a175': 930,
-    'a176': 931,
-    'a177': 463,
-    'a178': 883,
-    'a179': 836,
-    'a193': 836,
-    'a180': 867,
-    'a199': 867,
-    'a181': 696,
-    'a200': 696,
-    'a182': 874,
-    'a201': 874,
-    'a183': 760,
-    'a184': 946,
-    'a197': 771,
-    'a185': 865,
-    'a194': 771,
-    'a198': 888,
-    'a186': 967,
-    'a195': 888,
-    'a187': 831,
-    'a188': 873,
-    'a189': 927,
-    'a190': 970,
-    'a191': 918
-  }
-};
-
-
-/* -*- 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 EOF = {};
-
-function isEOF(v) {
-  return v == EOF;
-}
-
-var Parser = (function ParserClosure() {
-  function Parser(lexer, allowStreams, xref) {
-    this.lexer = lexer;
-    this.allowStreams = allowStreams;
-    this.xref = xref;
-    this.inlineImg = 0;
-    this.refill();
-  }
-
-  Parser.prototype = {
-    refill: function Parser_refill() {
-      this.buf1 = this.lexer.getObj();
-      this.buf2 = this.lexer.getObj();
-    },
-    shift: function Parser_shift() {
-      if (isCmd(this.buf2, 'ID')) {
-        this.buf1 = this.buf2;
-        this.buf2 = null;
-        // skip byte after ID
-        this.lexer.skip();
-      } else {
-        this.buf1 = this.buf2;
-        this.buf2 = this.lexer.getObj();
-      }
-    },
-    getObj: function Parser_getObj(cipherTransform) {
-      if (isCmd(this.buf1, 'BI')) { // inline image
-        this.shift();
-        return this.makeInlineImage(cipherTransform);
-      }
-      if (isCmd(this.buf1, '[')) { // array
-        this.shift();
-        var array = [];
-        while (!isCmd(this.buf1, ']') && !isEOF(this.buf1))
-          array.push(this.getObj());
-        if (isEOF(this.buf1))
-          error('End of file inside array');
-        this.shift();
-        return array;
-      }
-      if (isCmd(this.buf1, '<<')) { // dictionary or stream
-        this.shift();
-        var dict = new Dict(this.xref);
-        while (!isCmd(this.buf1, '>>') && !isEOF(this.buf1)) {
-          if (!isName(this.buf1))
-            error('Dictionary key must be a name object');
-
-          var key = this.buf1.name;
-          this.shift();
-          if (isEOF(this.buf1))
-            break;
-          dict.set(key, this.getObj(cipherTransform));
-        }
-        if (isEOF(this.buf1))
-          error('End of file inside dictionary');
-
-        // stream objects are not allowed inside content streams or
-        // object streams
-        if (isCmd(this.buf2, 'stream')) {
-          return this.allowStreams ?
-            this.makeStream(dict, cipherTransform) : dict;
-        }
-        this.shift();
-        return dict;
-      }
-      if (isInt(this.buf1)) { // indirect reference or integer
-        var num = this.buf1;
-        this.shift();
-        if (isInt(this.buf1) && isCmd(this.buf2, 'R')) {
-          var ref = new Ref(num, this.buf1);
-          this.shift();
-          this.shift();
-          return ref;
-        }
-        return num;
-      }
-      if (isString(this.buf1)) { // string
-        var str = this.buf1;
-        this.shift();
-        if (cipherTransform)
-          str = cipherTransform.decryptString(str);
-        return str;
-      }
-
-      // simple object
-      var obj = this.buf1;
-      this.shift();
-      return obj;
-    },
-    makeInlineImage: function Parser_makeInlineImage(cipherTransform) {
-      var lexer = this.lexer;
-      var stream = lexer.stream;
-
-      // parse dictionary
-      var dict = new Dict();
-      while (!isCmd(this.buf1, 'ID') && !isEOF(this.buf1)) {
-        if (!isName(this.buf1))
-          error('Dictionary key must be a name object');
-
-        var key = this.buf1.name;
-        this.shift();
-        if (isEOF(this.buf1))
-          break;
-        dict.set(key, this.getObj(cipherTransform));
-      }
-
-      // parse image stream
-      var startPos = stream.pos;
-
-      // searching for the /EI\s/
-      var state = 0, ch;
-      while (state != 4 && (ch = stream.getByte()) != null) {
-        switch (ch) {
-          case 0x20:
-          case 0x0D:
-          case 0x0A:
-            state = state === 3 ? 4 : 0;
-            break;
-          case 0x45:
-            state = 2;
-            break;
-          case 0x49:
-            state = state === 2 ? 3 : 0;
-            break;
-          default:
-            state = 0;
-            break;
-        }
-      }
-
-      // TODO improve the small images performance to remove the limit
-      var inlineImgLimit = 500;
-      if (++this.inlineImg >= inlineImgLimit) {
-        if (this.inlineImg === inlineImgLimit)
-          warn('Too many inline images');
-        this.shift();
-        return null;
-      }
-
-      var length = (stream.pos - 4) - startPos;
-      var imageStream = stream.makeSubStream(startPos, length, dict);
-      if (cipherTransform)
-        imageStream = cipherTransform.createStream(imageStream);
-      imageStream = this.filter(imageStream, dict, length);
-      imageStream.parameters = dict;
-
-      this.buf2 = Cmd.get('EI');
-      this.shift();
-
-      return imageStream;
-    },
-    fetchIfRef: function Parser_fetchIfRef(obj) {
-      // not relying on the xref.fetchIfRef -- xref might not be set
-      return isRef(obj) ? this.xref.fetch(obj) : obj;
-    },
-    makeStream: function Parser_makeStream(dict, cipherTransform) {
-      var lexer = this.lexer;
-      var stream = lexer.stream;
-
-      // get stream start position
-      lexer.skipToNextLine();
-      var pos = stream.pos;
-
-      // get length
-      var length = this.fetchIfRef(dict.get('Length'));
-      if (!isInt(length))
-        error('Bad ' + length + ' attribute in stream');
-
-      // skip over the stream data
-      stream.pos = pos + length;
-      this.shift(); // '>>'
-      this.shift(); // 'stream'
-      if (!isCmd(this.buf1, 'endstream'))
-        error('Missing endstream');
-      this.shift();
-
-      stream = stream.makeSubStream(pos, length, dict);
-      if (cipherTransform)
-        stream = cipherTransform.createStream(stream);
-      stream = this.filter(stream, dict, length);
-      stream.parameters = dict;
-      return stream;
-    },
-    filter: function Parser_filter(stream, dict, length) {
-      var filter = this.fetchIfRef(dict.get('Filter', 'F'));
-      var params = this.fetchIfRef(dict.get('DecodeParms', 'DP'));
-      if (isName(filter))
-        return this.makeFilter(stream, filter.name, length, params);
-      if (isArray(filter)) {
-        var filterArray = filter;
-        var paramsArray = params;
-        for (var i = 0, ii = filterArray.length; i < ii; ++i) {
-          filter = filterArray[i];
-          if (!isName(filter))
-            error('Bad filter name: ' + filter);
-
-          params = null;
-          if (isArray(paramsArray) && (i in paramsArray))
-            params = paramsArray[i];
-          stream = this.makeFilter(stream, filter.name, length, params);
-          // after the first stream the length variable is invalid
-          length = null;
-        }
-      }
-      return stream;
-    },
-    makeFilter: function Parser_makeFilter(stream, name, length, params) {
-      if (name == 'FlateDecode' || name == 'Fl') {
-        if (params) {
-          return new PredictorStream(new FlateStream(stream), params);
-        }
-        return new FlateStream(stream);
-      }
-      if (name == 'LZWDecode' || name == 'LZW') {
-        var earlyChange = 1;
-        if (params) {
-          if (params.has('EarlyChange'))
-            earlyChange = params.get('EarlyChange');
-          return new PredictorStream(
-            new LZWStream(stream, earlyChange), params);
-        }
-        return new LZWStream(stream, earlyChange);
-      }
-      if (name == 'DCTDecode' || name == 'DCT') {
-        var bytes = stream.getBytes(length);
-        return new JpegStream(bytes, stream.dict, this.xref);
-      }
-      if (name == 'JPXDecode' || name == 'JPX') {
-        var bytes = stream.getBytes(length);
-        return new JpxStream(bytes, stream.dict);
-      }
-      if (name == 'ASCII85Decode' || name == 'A85') {
-        return new Ascii85Stream(stream);
-      }
-      if (name == 'ASCIIHexDecode' || name == 'AHx') {
-        return new AsciiHexStream(stream);
-      }
-      if (name == 'CCITTFaxDecode' || name == 'CCF') {
-        return new CCITTFaxStream(stream, params);
-      }
-      if (name == 'RunLengthDecode' || name == 'RL') {
-        return new RunLengthStream(stream);
-      }
-      if (name == 'JBIG2Decode') {
-        error('JBIG2 image format is not currently supprted.');
-      }
-      warn('filter "' + name + '" not supported yet');
-      return stream;
-    }
-  };
-
-  return Parser;
-})();
-
-var Lexer = (function LexerClosure() {
-  function Lexer(stream) {
-    this.stream = stream;
-  }
-
-  Lexer.isSpace = function Lexer_isSpace(ch) {
-    return ch == ' ' || ch == '\t' || ch == '\x0d' || ch == '\x0a';
-  };
-
-  // A '1' in this array means the character is white space.  A '1' or
-  // '2' means the character ends a name or command.
-  var specialChars = [
-    1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0,   // 0x
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // 1x
-    1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2,   // 2x
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0,   // 3x
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // 4x
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0,   // 5x
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // 6x
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0,   // 7x
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // 8x
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // 9x
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // ax
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // bx
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // cx
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // dx
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   // ex
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0    // fx
-  ];
-
-  function toHexDigit(ch) {
-    if (ch >= '0' && ch <= '9')
-      return ch.charCodeAt(0) - 48;
-    ch = ch.toUpperCase();
-    if (ch >= 'A' && ch <= 'F')
-      return ch.charCodeAt(0) - 55;
-    return -1;
-  }
-
-  Lexer.prototype = {
-    getNumber: function Lexer_getNumber(ch) {
-      var floating = false;
-      var str = ch;
-      var stream = this.stream;
-      for (;;) {
-        ch = stream.lookChar();
-        if (ch == '.' && !floating) {
-          str += ch;
-          floating = true;
-        } else if (ch == '-') {
-          // ignore minus signs in the middle of numbers to match
-          // Adobe's behavior
-          warn('Badly formated number');
-        } else if (ch >= '0' && ch <= '9') {
-          str += ch;
-        } else if (ch == 'e' || ch == 'E') {
-          floating = true;
-        } else {
-          // the last character doesn't belong to us
-          break;
-        }
-        stream.skip();
-      }
-      var value = parseFloat(str);
-      if (isNaN(value))
-        error('Invalid floating point number: ' + value);
-      return value;
-    },
-    getString: function Lexer_getString() {
-      var numParen = 1;
-      var done = false;
-      var str = '';
-      var stream = this.stream;
-      var ch;
-      do {
-        ch = stream.getChar();
-        switch (ch) {
-          case undefined:
-            warn('Unterminated string');
-            done = true;
-            break;
-          case '(':
-            ++numParen;
-            str += ch;
-            break;
-          case ')':
-            if (--numParen == 0) {
-              done = true;
-            } else {
-              str += ch;
-            }
-            break;
-          case '\\':
-            ch = stream.getChar();
-            switch (ch) {
-              case undefined:
-                warn('Unterminated string');
-                done = true;
-                break;
-              case 'n':
-                str += '\n';
-                break;
-              case 'r':
-                str += '\r';
-                break;
-              case 't':
-                str += '\t';
-                break;
-              case 'b':
-                str += '\b';
-                break;
-              case 'f':
-                str += '\f';
-                break;
-              case '\\':
-              case '(':
-              case ')':
-                str += ch;
-                break;
-              case '0': case '1': case '2': case '3':
-              case '4': case '5': case '6': case '7':
-                var x = ch - '0';
-                ch = stream.lookChar();
-                if (ch >= '0' && ch <= '7') {
-                  stream.skip();
-                  x = (x << 3) + (ch - '0');
-                  ch = stream.lookChar();
-                  if (ch >= '0' && ch <= '7') {
-                    stream.skip();
-                    x = (x << 3) + (ch - '0');
-                  }
-                }
-
-                str += String.fromCharCode(x);
-                break;
-              case '\r':
-                ch = stream.lookChar();
-                if (ch == '\n')
-                  stream.skip();
-                break;
-              case '\n':
-                break;
-              default:
-                str += ch;
-            }
-            break;
-          default:
-            str += ch;
-        }
-      } while (!done);
-      return str;
-    },
-    getName: function Lexer_getName(ch) {
-      var str = '';
-      var stream = this.stream;
-      while (!!(ch = stream.lookChar()) && !specialChars[ch.charCodeAt(0)]) {
-        stream.skip();
-        if (ch == '#') {
-          ch = stream.lookChar();
-          var x = toHexDigit(ch);
-          if (x != -1) {
-            stream.skip();
-            var x2 = toHexDigit(stream.getChar());
-            if (x2 == -1)
-              error('Illegal digit in hex char in name: ' + x2);
-            str += String.fromCharCode((x << 4) | x2);
-          } else {
-            str += '#';
-            str += ch;
-          }
-        } else {
-          str += ch;
-        }
-      }
-      if (str.length > 128)
-        error('Warning: name token is longer than allowed by the spec: ' +
-              str.length);
-      return new Name(str);
-    },
-    getHexString: function Lexer_getHexString(ch) {
-      var str = '';
-      var stream = this.stream;
-      for (;;) {
-        ch = stream.getChar();
-        if (ch == '>') {
-          break;
-        }
-        if (!ch) {
-          warn('Unterminated hex string');
-          break;
-        }
-        if (specialChars[ch.charCodeAt(0)] != 1) {
-          var x, x2;
-          if ((x = toHexDigit(ch)) == -1)
-            error('Illegal character in hex string: ' + ch);
-
-          ch = stream.getChar();
-          while (specialChars[ch.charCodeAt(0)] == 1)
-            ch = stream.getChar();
-
-          if ((x2 = toHexDigit(ch)) == -1)
-            error('Illegal character in hex string: ' + ch);
-
-          str += String.fromCharCode((x << 4) | x2);
-        }
-      }
-      return str;
-    },
-    getObj: function Lexer_getObj() {
-      // skip whitespace and comments
-      var comment = false;
-      var stream = this.stream;
-      var ch;
-      while (true) {
-        if (!(ch = stream.getChar()))
-          return EOF;
-        if (comment) {
-          if (ch == '\r' || ch == '\n')
-            comment = false;
-        } else if (ch == '%') {
-          comment = true;
-        } else if (specialChars[ch.charCodeAt(0)] != 1) {
-          break;
-        }
-      }
-
-      // start reading token
-      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 this.getNumber(ch);
-        case '(':
-          return this.getString();
-        case '/':
-          return this.getName(ch);
-        // array punctuation
-        case '[':
-        case ']':
-          return Cmd.get(ch);
-        // hex string or dict punctuation
-        case '<':
-          ch = stream.lookChar();
-          if (ch == '<') {
-            // dict punctuation
-            stream.skip();
-            return Cmd.get('<<');
-          }
-          return this.getHexString(ch);
-        // dict punctuation
-        case '>':
-          ch = stream.lookChar();
-          if (ch == '>') {
-            stream.skip();
-            return Cmd.get('>>');
-          }
-        case '{':
-        case '}':
-          return Cmd.get(ch);
-        // fall through
-        case ')':
-          error('Illegal character: ' + ch);
-      }
-
-      // command
-      var str = ch;
-      while (!!(ch = stream.lookChar()) && !specialChars[ch.charCodeAt(0)]) {
-        stream.skip();
-        if (str.length == 128)
-          error('Command token too long: ' + str.length);
-
-        str += ch;
-      }
-      if (str == 'true')
-        return true;
-      if (str == 'false')
-        return false;
-      if (str == 'null')
-        return null;
-      return Cmd.get(str);
-    },
-    skipToNextLine: function Lexer_skipToNextLine() {
-      var stream = this.stream;
-      while (true) {
-        var ch = stream.getChar();
-        if (!ch || ch == '\n')
-          return;
-        if (ch == '\r') {
-          if ((ch = stream.lookChar()) == '\n')
-            stream.skip();
-          return;
-        }
-      }
-    },
-    skip: function Lexer_skip() {
-      this.stream.skip();
-    }
-  };
-
-  return Lexer;
-})();
-
-var Linearization = (function LinearizationClosure() {
-  function Linearization(stream) {
-    this.parser = new Parser(new Lexer(stream), false, null);
-    var obj1 = this.parser.getObj();
-    var obj2 = this.parser.getObj();
-    var obj3 = this.parser.getObj();
-    this.linDict = this.parser.getObj();
-    if (isInt(obj1) && isInt(obj2) && isCmd(obj3, 'obj') &&
-        isDict(this.linDict)) {
-      var obj = this.linDict.get('Linearized');
-      if (!(isNum(obj) && obj > 0))
-        this.linDict = null;
-    }
-  }
-
-  Linearization.prototype = {
-    getInt: function Linearization_getInt(name) {
-      var linDict = this.linDict;
-      var obj;
-      if (isDict(linDict) &&
-          isInt(obj = linDict.get(name)) &&
-          obj > 0) {
-        return obj;
-      }
-      error('"' + name + '" field in linearization table is invalid');
-    },
-    getHint: function Linearization_getHint(index) {
-      var linDict = this.linDict;
-      var obj1, obj2;
-      if (isDict(linDict) &&
-          isArray(obj1 = linDict.get('H')) &&
-          obj1.length >= 2 &&
-          isInt(obj2 = obj1[index]) &&
-          obj2 > 0) {
-        return obj2;
-      }
-      error('Hints table in linearization table is invalid: ' + index);
-    },
-    get length() {
-      if (!isDict(this.linDict))
-        return 0;
-      return this.getInt('L');
-    },
-    get hintsOffset() {
-      return this.getHint(0);
-    },
-    get hintsLength() {
-      return this.getHint(1);
-    },
-    get hintsOffset2() {
-      return this.getHint(2);
-    },
-    get hintsLenth2() {
-      return this.getHint(3);
-    },
-    get objectNumberFirst() {
-      return this.getInt('O');
-    },
-    get endFirst() {
-      return this.getInt('E');
-    },
-    get numPages() {
-      return this.getInt('N');
-    },
-    get mainXRefEntriesOffset() {
-      return this.getInt('T');
-    },
-    get pageFirst() {
-      return this.getInt('P');
-    }
-  };
-
-  return Linearization;
-})();
-
-
-/* -*- 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 PatternType = {
-  AXIAL: 2,
-  RADIAL: 3
-};
-
-var Pattern = (function PatternClosure() {
-  // Constructor should define this.getPattern
-  function Pattern() {
-    error('should not call Pattern constructor');
-  }
-
-  Pattern.prototype = {
-    // Input: current Canvas context
-    // Output: the appropriate fillStyle or strokeStyle
-    getPattern: function Pattern_getPattern(ctx) {
-      error('Should not call Pattern.getStyle: ' + ctx);
-    }
-  };
-
-  Pattern.shadingFromIR = function Pattern_shadingFromIR(raw) {
-    return Shadings[raw[0]].fromIR(raw);
-  };
-
-  Pattern.parseShading = function Pattern_parseShading(shading, matrix, xref,
-                                                       res) {
-
-    var dict = isStream(shading) ? shading.dict : shading;
-    var type = dict.get('ShadingType');
-
-    switch (type) {
-      case PatternType.AXIAL:
-      case PatternType.RADIAL:
-        // Both radial and axial shadings are handled by RadialAxial shading.
-        return new Shadings.RadialAxial(dict, matrix, xref, res);
-      default:
-        return new Shadings.Dummy();
-    }
-  };
-  return Pattern;
-})();
-
-var Shadings = {};
-
-// Radial and axial shading have very similar implementations
-// If needed, the implementations can be broken into two classes
-Shadings.RadialAxial = (function RadialAxialClosure() {
-  function RadialAxial(dict, matrix, xref, res, ctx) {
-    this.matrix = matrix;
-    this.coordsArr = dict.get('Coords');
-    this.shadingType = dict.get('ShadingType');
-    this.type = 'Pattern';
-
-    this.ctx = ctx;
-    var cs = dict.get('ColorSpace', 'CS');
-    cs = ColorSpace.parse(cs, xref, res);
-    this.cs = cs;
-
-    var t0 = 0.0, t1 = 1.0;
-    if (dict.has('Domain')) {
-      var domainArr = dict.get('Domain');
-      t0 = domainArr[0];
-      t1 = domainArr[1];
-    }
-
-    var extendStart = false, extendEnd = false;
-    if (dict.has('Extend')) {
-      var extendArr = dict.get('Extend');
-      extendStart = extendArr[0];
-      extendEnd = extendArr[1];
-      TODO('Support extend');
-    }
-
-    this.extendStart = extendStart;
-    this.extendEnd = extendEnd;
-
-    var fnObj = dict.get('Function');
-    if (isArray(fnObj))
-      error('No support for array of functions');
-    if (!isPDFFunction(fnObj))
-      error('Invalid function');
-    var fn = PDFFunction.parse(xref, fnObj);
-
-    // 10 samples seems good enough for now, but probably won't work
-    // if there are sharp color changes. Ideally, we would implement
-    // the spec faithfully and add lossless optimizations.
-    var step = (t1 - t0) / 10;
-    var diff = t1 - t0;
-
-    var colorStops = [];
-    for (var i = t0; i <= t1; i += step) {
-      var rgbColor = cs.getRgb(fn([i]));
-      var cssColor = Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);
-      colorStops.push([(i - t0) / diff, cssColor]);
-    }
-
-    this.colorStops = colorStops;
-  }
-
-  RadialAxial.fromIR = function RadialAxial_fromIR(raw) {
-    var type = raw[1];
-    var colorStops = raw[2];
-    var p0 = raw[3];
-    var p1 = raw[4];
-    var r0 = raw[5];
-    var r1 = raw[6];
-    return {
-      type: 'Pattern',
-      getPattern: function RadialAxial_getPattern(ctx) {
-        var curMatrix = ctx.mozCurrentTransform;
-        if (curMatrix) {
-          var userMatrix = ctx.mozCurrentTransformInverse;
-
-          p0 = Util.applyTransform(p0, curMatrix);
-          p0 = Util.applyTransform(p0, userMatrix);
-
-          p1 = Util.applyTransform(p1, curMatrix);
-          p1 = Util.applyTransform(p1, userMatrix);
-        }
-
-        var grad;
-        if (type == PatternType.AXIAL)
-          grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);
-        else if (type == PatternType.RADIAL)
-          grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);
-
-        for (var i = 0, ii = colorStops.length; i < ii; ++i) {
-          var c = colorStops[i];
-          grad.addColorStop(c[0], c[1]);
-        }
-        return grad;
-      }
-    };
-  };
-
-  RadialAxial.prototype = {
-    getIR: function RadialAxial_getIR() {
-      var coordsArr = this.coordsArr;
-      var type = this.shadingType;
-      if (type == PatternType.AXIAL) {
-        var p0 = [coordsArr[0], coordsArr[1]];
-        var p1 = [coordsArr[2], coordsArr[3]];
-        var r0 = null;
-        var r1 = null;
-      } else if (type == PatternType.RADIAL) {
-        var p0 = [coordsArr[0], coordsArr[1]];
-        var p1 = [coordsArr[3], coordsArr[4]];
-        var r0 = coordsArr[2];
-        var r1 = coordsArr[5];
-      } else {
-        error('getPattern type unknown: ' + type);
-      }
-
-      var matrix = this.matrix;
-      if (matrix) {
-        p0 = Util.applyTransform(p0, matrix);
-        p1 = Util.applyTransform(p1, matrix);
-      }
-
-      return ['RadialAxial', type, this.colorStops, p0, p1, r0, r1];
-    }
-  };
-
-  return RadialAxial;
-})();
-
-Shadings.Dummy = (function DummyClosure() {
-  function Dummy() {
-    this.type = 'Pattern';
-  }
-
-  Dummy.fromIR = function Dummy_fromIR() {
-    return 'hotpink';
-  };
-
-  Dummy.prototype = {
-    getIR: function Dummy_getIR() {
-      return ['Dummy'];
-    }
-  };
-  return Dummy;
-})();
-
-var TilingPattern = (function TilingPatternClosure() {
-  var PaintType = {
-    COLORED: 1,
-    UNCOLORED: 2
-  };
-  var MAX_PATTERN_SIZE = 512;
-
-  function TilingPattern(IR, color, ctx, objs) {
-    var operatorList = IR[2];
-    this.matrix = IR[3];
-    var bbox = IR[4];
-    var xstep = IR[5];
-    var ystep = IR[6];
-    var paintType = IR[7];
-
-    TODO('TilingType');
-
-    this.curMatrix = ctx.mozCurrentTransform;
-    this.invMatrix = ctx.mozCurrentTransformInverse;
-    this.ctx = ctx;
-    this.type = 'Pattern';
-
-    var x0 = bbox[0], y0 = bbox[1], x1 = bbox[2], y1 = bbox[3];
-
-    var topLeft = [x0, y0];
-    // we want the canvas to be as large as the step size
-    var botRight = [x0 + xstep, y0 + ystep];
-
-    var width = botRight[0] - topLeft[0];
-    var height = botRight[1] - topLeft[1];
-
-    // TODO: hack to avoid OOM, we would ideally compute the tiling
-    // pattern to be only as large as the acual size in device space
-    // This could be computed with .mozCurrentTransform, but still
-    // needs to be implemented
-    while (Math.abs(width) > MAX_PATTERN_SIZE ||
-           Math.abs(height) > MAX_PATTERN_SIZE) {
-      width = height = MAX_PATTERN_SIZE;
-    }
-
-    var tmpCanvas = createScratchCanvas(width, height);
-
-    // set the new canvas element context as the graphics context
-    var tmpCtx = tmpCanvas.getContext('2d');
-    var graphics = new CanvasGraphics(tmpCtx, objs);
-
-    switch (paintType) {
-      case PaintType.COLORED:
-        tmpCtx.fillStyle = ctx.fillStyle;
-        tmpCtx.strokeStyle = ctx.strokeStyle;
-        break;
-      case PaintType.UNCOLORED:
-        var cssColor = Util.makeCssRgb(this, color[0], color[1], color[2]);
-        tmpCtx.fillStyle = cssColor;
-        tmpCtx.strokeStyle = cssColor;
-        break;
-      default:
-        error('Unsupported paint type: ' + paintType);
-    }
-
-    var scale = [width / xstep, height / ystep];
-    this.scale = scale;
-
-    // transform coordinates to pattern space
-    var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]];
-    var tmpScale = [scale[0], 0, 0, scale[1], 0, 0];
-    graphics.transform.apply(graphics, tmpScale);
-    graphics.transform.apply(graphics, tmpTranslate);
-
-    if (bbox && isArray(bbox) && 4 == bbox.length) {
-      var bboxWidth = x1 - x0;
-      var bboxHeight = y1 - y0;
-      graphics.rectangle(x0, y0, bboxWidth, bboxHeight);
-      graphics.clip();
-      graphics.endPath();
-    }
-
-    graphics.executeOperatorList(operatorList);
-
-    this.canvas = tmpCanvas;
-  }
-
-  TilingPattern.getIR = function TilingPattern_getIR(operatorList, dict, args) {
-    var matrix = dict.get('Matrix');
-    var bbox = dict.get('BBox');
-    var xstep = dict.get('XStep');
-    var ystep = dict.get('YStep');
-    var paintType = dict.get('PaintType');
-
-    return [
-      'TilingPattern', args, operatorList, matrix, bbox, xstep, ystep, paintType
-    ];
-  };
-
-  TilingPattern.prototype = {
-    getPattern: function TilingPattern_getPattern() {
-      var matrix = this.matrix;
-      var curMatrix = this.curMatrix;
-      var ctx = this.ctx;
-
-      if (curMatrix)
-        ctx.setTransform.apply(ctx, curMatrix);
-
-      if (matrix)
-        ctx.transform.apply(ctx, matrix);
-
-      var scale = this.scale;
-      ctx.scale(1 / scale[0], 1 / scale[1]);
-
-      return ctx.createPattern(this.canvas, 'repeat');
-    }
-  };
-
-  return TilingPattern;
-})();
-
-
-/* -*- 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 Stream = (function StreamClosure() {
-  function Stream(arrayBuffer, start, length, dict) {
-    this.bytes = new Uint8Array(arrayBuffer);
-    this.start = start || 0;
-    this.pos = this.start;
-    this.end = (start + length) || this.bytes.length;
-    this.dict = dict;
-  }
-
-  // required methods for a stream. if a particular stream does not
-  // implement these, an error should be thrown
-  Stream.prototype = {
-    get length() {
-      return this.end - this.start;
-    },
-    getByte: function Stream_getByte() {
-      if (this.pos >= this.end)
-        return null;
-      return this.bytes[this.pos++];
-    },
-    // returns subarray of original buffer
-    // should only be read
-    getBytes: function Stream_getBytes(length) {
-      var bytes = this.bytes;
-      var pos = this.pos;
-      var strEnd = this.end;
-
-      if (!length)
-        return bytes.subarray(pos, strEnd);
-
-      var end = pos + length;
-      if (end > strEnd)
-        end = strEnd;
-
-      this.pos = end;
-      return bytes.subarray(pos, end);
-    },
-    lookChar: function Stream_lookChar() {
-      if (this.pos >= this.end)
-        return null;
-      return String.fromCharCode(this.bytes[this.pos]);
-    },
-    getChar: function Stream_getChar() {
-      if (this.pos >= this.end)
-        return null;
-      return String.fromCharCode(this.bytes[this.pos++]);
-    },
-    skip: function Stream_skip(n) {
-      if (!n)
-        n = 1;
-      this.pos += n;
-    },
-    reset: function Stream_reset() {
-      this.pos = this.start;
-    },
-    moveStart: function Stream_moveStart() {
-      this.start = this.pos;
-    },
-    makeSubStream: function Stream_makeSubStream(start, length, dict) {
-      return new Stream(this.bytes.buffer, start, length, dict);
-    },
-    isStream: true
-  };
-
-  return Stream;
-})();
-
-var StringStream = (function StringStreamClosure() {
-  function StringStream(str) {
-    var length = str.length;
-    var bytes = new Uint8Array(length);
-    for (var n = 0; n < length; ++n)
-      bytes[n] = str.charCodeAt(n);
-    Stream.call(this, bytes);
-  }
-
-  StringStream.prototype = Stream.prototype;
-
-  return StringStream;
-})();
-
-// super class for the decoding streams
-var DecodeStream = (function DecodeStreamClosure() {
-  function DecodeStream() {
-    this.pos = 0;
-    this.bufferLength = 0;
-    this.eof = false;
-    this.buffer = null;
-  }
-
-  DecodeStream.prototype = {
-    ensureBuffer: function DecodeStream_ensureBuffer(requested) {
-      var buffer = this.buffer;
-      var current = buffer ? buffer.byteLength : 0;
-      if (requested < current)
-        return buffer;
-      var size = 512;
-      while (size < requested)
-        size <<= 1;
-      var buffer2 = new Uint8Array(size);
-      for (var i = 0; i < current; ++i)
-        buffer2[i] = buffer[i];
-      return (this.buffer = buffer2);
-    },
-    getByte: function DecodeStream_getByte() {
-      var pos = this.pos;
-      while (this.bufferLength <= pos) {
-        if (this.eof)
-          return null;
-        this.readBlock();
-      }
-      return this.buffer[this.pos++];
-    },
-    getBytes: function DecodeStream_getBytes(length) {
-      var end, pos = this.pos;
-
-      if (length) {
-        this.ensureBuffer(pos + length);
-        end = pos + length;
-
-        while (!this.eof && this.bufferLength < end)
-          this.readBlock();
-
-        var bufEnd = this.bufferLength;
-        if (end > bufEnd)
-          end = bufEnd;
-      } else {
-        while (!this.eof)
-          this.readBlock();
-
-        end = this.bufferLength;
-
-        // checking if bufferLength is still 0 then
-        // the buffer has to be initialized
-        if (!end)
-          this.buffer = new Uint8Array(0);
-      }
-
-      this.pos = end;
-      return this.buffer.subarray(pos, end);
-    },
-    lookChar: function DecodeStream_lookChar() {
-      var pos = this.pos;
-      while (this.bufferLength <= pos) {
-        if (this.eof)
-          return null;
-        this.readBlock();
-      }
-      return String.fromCharCode(this.buffer[this.pos]);
-    },
-    getChar: function DecodeStream_getChar() {
-      var pos = this.pos;
-      while (this.bufferLength <= pos) {
-        if (this.eof)
-          return null;
-        this.readBlock();
-      }
-      return String.fromCharCode(this.buffer[this.pos++]);
-    },
-    makeSubStream: function DecodeStream_makeSubStream(start, length, dict) {
-      var end = start + length;
-      while (this.bufferLength <= end && !this.eof)
-        this.readBlock();
-      return new Stream(this.buffer, start, length, dict);
-    },
-    skip: function DecodeStream_skip(n) {
-      if (!n)
-        n = 1;
-      this.pos += n;
-    },
-    reset: function DecodeStream_reset() {
-      this.pos = 0;
-    }
-  };
-
-  return DecodeStream;
-})();
-
-var FakeStream = (function FakeStreamClosure() {
-  function FakeStream(stream) {
-    this.dict = stream.dict;
-    DecodeStream.call(this);
-  }
-
-  FakeStream.prototype = Object.create(DecodeStream.prototype);
-  FakeStream.prototype.readBlock = function FakeStream_readBlock() {
-    var bufferLength = this.bufferLength;
-    bufferLength += 1024;
-    var buffer = this.ensureBuffer(bufferLength);
-    this.bufferLength = bufferLength;
-  };
-
-  FakeStream.prototype.getBytes = function FakeStream_getBytes(length) {
-    var end, pos = this.pos;
-
-    if (length) {
-      this.ensureBuffer(pos + length);
-      end = pos + length;
-
-      while (!this.eof && this.bufferLength < end)
-        this.readBlock();
-
-      var bufEnd = this.bufferLength;
-      if (end > bufEnd)
-        end = bufEnd;
-    } else {
-      this.eof = true;
-      end = this.bufferLength;
-    }
-
-    this.pos = end;
-    return this.buffer.subarray(pos, end);
-  };
-
-  return FakeStream;
-})();
-
-var StreamsSequenceStream = (function StreamsSequenceStreamClosure() {
-  function StreamsSequenceStream(streams) {
-    this.streams = streams;
-    DecodeStream.call(this);
-  }
-
-  StreamsSequenceStream.prototype = Object.create(DecodeStream.prototype);
-
-  StreamsSequenceStream.prototype.readBlock =
-    function streamSequenceStreamReadBlock() {
-
-    var streams = this.streams;
-    if (streams.length == 0) {
-      this.eof = true;
-      return;
-    }
-    var stream = streams.shift();
-    var chunk = stream.getBytes();
-    var bufferLength = this.bufferLength;
-    var newLength = bufferLength + chunk.length;
-    var buffer = this.ensureBuffer(newLength);
-    buffer.set(chunk, bufferLength);
-    this.bufferLength = newLength;
-  };
-
-  return StreamsSequenceStream;
-})();
-
-var FlateStream = (function FlateStreamClosure() {
-  var codeLenCodeMap = new Uint32Array([
-    16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15
-  ]);
-
-  var lengthDecode = new Uint32Array([
-    0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a,
-    0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f,
-    0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073,
-    0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102
-  ]);
-
-  var distDecode = new Uint32Array([
-    0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d,
-    0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1,
-    0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01,
-    0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001
-  ]);
-
-  var fixedLitCodeTab = [new Uint32Array([
-    0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0,
-    0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0,
-    0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0,
-    0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0,
-    0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8,
-    0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8,
-    0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8,
-    0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8,
-    0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4,
-    0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4,
-    0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4,
-    0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4,
-    0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc,
-    0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec,
-    0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc,
-    0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc,
-    0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2,
-    0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2,
-    0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2,
-    0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2,
-    0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca,
-    0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea,
-    0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da,
-    0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa,
-    0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6,
-    0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6,
-    0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6,
-    0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6,
-    0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce,
-    0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee,
-    0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de,
-    0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe,
-    0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1,
-    0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1,
-    0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1,
-    0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1,
-    0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9,
-    0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9,
-    0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9,
-    0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9,
-    0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5,
-    0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5,
-    0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5,
-    0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5,
-    0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd,
-    0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed,
-    0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd,
-    0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd,
-    0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3,
-    0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3,
-    0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3,
-    0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3,
-    0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb,
-    0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb,
-    0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db,
-    0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb,
-    0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7,
-    0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7,
-    0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7,
-    0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7,
-    0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf,
-    0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef,
-    0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df,
-    0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff
-  ]), 9];
-
-  var fixedDistCodeTab = [new Uint32Array([
-    0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c,
-    0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000,
-    0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d,
-    0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000
-  ]), 5];
-
-  function FlateStream(stream) {
-    var bytes = stream.getBytes();
-    var bytesPos = 0;
-
-    this.dict = stream.dict;
-    var cmf = bytes[bytesPos++];
-    var flg = bytes[bytesPos++];
-    if (cmf == -1 || flg == -1)
-      error('Invalid header in flate stream: ' + cmf + ', ' + flg);
-    if ((cmf & 0x0f) != 0x08)
-      error('Unknown compression method in flate stream: ' + cmf + ', ' + flg);
-    if ((((cmf << 8) + flg) % 31) != 0)
-      error('Bad FCHECK in flate stream: ' + cmf + ', ' + flg);
-    if (flg & 0x20)
-      error('FDICT bit set in flate stream: ' + cmf + ', ' + flg);
-
-    this.bytes = bytes;
-    this.bytesPos = bytesPos;
-
-    this.codeSize = 0;
-    this.codeBuf = 0;
-
-    DecodeStream.call(this);
-  }
-
-  FlateStream.prototype = Object.create(DecodeStream.prototype);
-
-  FlateStream.prototype.getBits = function FlateStream_getBits(bits) {
-    var codeSize = this.codeSize;
-    var codeBuf = this.codeBuf;
-    var bytes = this.bytes;
-    var bytesPos = this.bytesPos;
-
-    var b;
-    while (codeSize < bits) {
-      if (typeof (b = bytes[bytesPos++]) == 'undefined')
-        error('Bad encoding in flate stream');
-      codeBuf |= b << codeSize;
-      codeSize += 8;
-    }
-    b = codeBuf & ((1 << bits) - 1);
-    this.codeBuf = codeBuf >> bits;
-    this.codeSize = codeSize -= bits;
-    this.bytesPos = bytesPos;
-    return b;
-  };
-
-  FlateStream.prototype.getCode = function FlateStream_getCode(table) {
-    var codes = table[0];
-    var maxLen = table[1];
-    var codeSize = this.codeSize;
-    var codeBuf = this.codeBuf;
-    var bytes = this.bytes;
-    var bytesPos = this.bytesPos;
-
-    while (codeSize < maxLen) {
-      var b;
-      if (typeof (b = bytes[bytesPos++]) == 'undefined')
-        error('Bad encoding in flate stream');
-      codeBuf |= (b << codeSize);
-      codeSize += 8;
-    }
-    var code = codes[codeBuf & ((1 << maxLen) - 1)];
-    var codeLen = code >> 16;
-    var codeVal = code & 0xffff;
-    if (codeSize == 0 || codeSize < codeLen || codeLen == 0)
-      error('Bad encoding in flate stream');
-    this.codeBuf = (codeBuf >> codeLen);
-    this.codeSize = (codeSize - codeLen);
-    this.bytesPos = bytesPos;
-    return codeVal;
-  };
-
-  FlateStream.prototype.generateHuffmanTable =
-    function flateStreamGenerateHuffmanTable(lengths) {
-    var n = lengths.length;
-
-    // find max code length
-    var maxLen = 0;
-    for (var i = 0; i < n; ++i) {
-      if (lengths[i] > maxLen)
-        maxLen = lengths[i];
-    }
-
-    // build the table
-    var size = 1 << maxLen;
-    var codes = new Uint32Array(size);
-    for (var len = 1, code = 0, skip = 2;
-         len <= maxLen;
-         ++len, code <<= 1, skip <<= 1) {
-      for (var val = 0; val < n; ++val) {
-        if (lengths[val] == len) {
-          // bit-reverse the code
-          var code2 = 0;
-          var t = code;
-          for (var i = 0; i < len; ++i) {
-            code2 = (code2 << 1) | (t & 1);
-            t >>= 1;
-          }
-
-          // fill the table entries
-          for (var i = code2; i < size; i += skip)
-            codes[i] = (len << 16) | val;
-
-          ++code;
-        }
-      }
-    }
-
-    return [codes, maxLen];
-  };
-
-  FlateStream.prototype.readBlock = function FlateStream_readBlock() {
-    // read block header
-    var hdr = this.getBits(3);
-    if (hdr & 1)
-      this.eof = true;
-    hdr >>= 1;
-
-    if (hdr == 0) { // uncompressed block
-      var bytes = this.bytes;
-      var bytesPos = this.bytesPos;
-      var b;
-
-      if (typeof (b = bytes[bytesPos++]) == 'undefined')
-        error('Bad block header in flate stream');
-      var blockLen = b;
-      if (typeof (b = bytes[bytesPos++]) == 'undefined')
-        error('Bad block header in flate stream');
-      blockLen |= (b << 8);
-      if (typeof (b = bytes[bytesPos++]) == 'undefined')
-        error('Bad block header in flate stream');
-      var check = b;
-      if (typeof (b = bytes[bytesPos++]) == 'undefined')
-        error('Bad block header in flate stream');
-      check |= (b << 8);
-      if (check != (~blockLen & 0xffff))
-        error('Bad uncompressed block length in flate stream');
-
-      this.codeBuf = 0;
-      this.codeSize = 0;
-
-      var bufferLength = this.bufferLength;
-      var buffer = this.ensureBuffer(bufferLength + blockLen);
-      var end = bufferLength + blockLen;
-      this.bufferLength = end;
-      for (var n = bufferLength; n < end; ++n) {
-        if (typeof (b = bytes[bytesPos++]) == 'undefined') {
-          this.eof = true;
-          break;
-        }
-        buffer[n] = b;
-      }
-      this.bytesPos = bytesPos;
-      return;
-    }
-
-    var litCodeTable;
-    var distCodeTable;
-    if (hdr == 1) { // compressed block, fixed codes
-      litCodeTable = fixedLitCodeTab;
-      distCodeTable = fixedDistCodeTab;
-    } else if (hdr == 2) { // compressed block, dynamic codes
-      var numLitCodes = this.getBits(5) + 257;
-      var numDistCodes = this.getBits(5) + 1;
-      var numCodeLenCodes = this.getBits(4) + 4;
-
-      // build the code lengths code table
-      var codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);
-
-      for (var i = 0; i < numCodeLenCodes; ++i)
-        codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);
-      var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);
-
-      // build the literal and distance code tables
-      var len = 0;
-      var i = 0;
-      var codes = numLitCodes + numDistCodes;
-      var codeLengths = new Uint8Array(codes);
-      while (i < codes) {
-        var code = this.getCode(codeLenCodeTab);
-        if (code == 16) {
-          var bitsLength = 2, bitsOffset = 3, what = len;
-        } else if (code == 17) {
-          var bitsLength = 3, bitsOffset = 3, what = (len = 0);
-        } else if (code == 18) {
-          var bitsLength = 7, bitsOffset = 11, what = (len = 0);
-        } else {
-          codeLengths[i++] = len = code;
-          continue;
-        }
-
-        var repeatLength = this.getBits(bitsLength) + bitsOffset;
-        while (repeatLength-- > 0)
-          codeLengths[i++] = what;
-      }
-
-      litCodeTable =
-        this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes));
-      distCodeTable =
-        this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes));
-    } else {
-      error('Unknown block type in flate stream');
-    }
-
-    var buffer = this.buffer;
-    var limit = buffer ? buffer.length : 0;
-    var pos = this.bufferLength;
-    while (true) {
-      var code1 = this.getCode(litCodeTable);
-      if (code1 < 256) {
-        if (pos + 1 >= limit) {
-          buffer = this.ensureBuffer(pos + 1);
-          limit = buffer.length;
-        }
-        buffer[pos++] = code1;
-        continue;
-      }
-      if (code1 == 256) {
-        this.bufferLength = pos;
-        return;
-      }
-      code1 -= 257;
-      code1 = lengthDecode[code1];
-      var code2 = code1 >> 16;
-      if (code2 > 0)
-        code2 = this.getBits(code2);
-      var len = (code1 & 0xffff) + code2;
-      code1 = this.getCode(distCodeTable);
-      code1 = distDecode[code1];
-      code2 = code1 >> 16;
-      if (code2 > 0)
-        code2 = this.getBits(code2);
-      var dist = (code1 & 0xffff) + code2;
-      if (pos + len >= limit) {
-        buffer = this.ensureBuffer(pos + len);
-        limit = buffer.length;
-      }
-      for (var k = 0; k < len; ++k, ++pos)
-        buffer[pos] = buffer[pos - dist];
-    }
-  };
-
-  return FlateStream;
-})();
-
-var PredictorStream = (function PredictorStreamClosure() {
-  function PredictorStream(stream, params) {
-    var predictor = this.predictor = params.get('Predictor') || 1;
-
-    if (predictor <= 1)
-      return stream; // no prediction
-    if (predictor !== 2 && (predictor < 10 || predictor > 15))
-      error('Unsupported predictor: ' + predictor);
-
-    if (predictor === 2)
-      this.readBlock = this.readBlockTiff;
-    else
-      this.readBlock = this.readBlockPng;
-
-    this.stream = stream;
-    this.dict = stream.dict;
-
-    var colors = this.colors = params.get('Colors') || 1;
-    var bits = this.bits = params.get('BitsPerComponent') || 8;
-    var columns = this.columns = params.get('Columns') || 1;
-
-    this.pixBytes = (colors * bits + 7) >> 3;
-    this.rowBytes = (columns * colors * bits + 7) >> 3;
-
-    DecodeStream.call(this);
-    return this;
-  }
-
-  PredictorStream.prototype = Object.create(DecodeStream.prototype);
-
-  PredictorStream.prototype.readBlockTiff =
-    function predictorStreamReadBlockTiff() {
-    var rowBytes = this.rowBytes;
-
-    var bufferLength = this.bufferLength;
-    var buffer = this.ensureBuffer(bufferLength + rowBytes);
-
-    var bits = this.bits;
-    var colors = this.colors;
-
-    var rawBytes = this.stream.getBytes(rowBytes);
-
-    var inbuf = 0, outbuf = 0;
-    var inbits = 0, outbits = 0;
-    var pos = bufferLength;
-
-    if (bits === 1) {
-      for (var i = 0; i < rowBytes; ++i) {
-        var c = rawBytes[i];
-        inbuf = (inbuf << 8) | c;
-        // bitwise addition is exclusive or
-        // first shift inbuf and then add
-        buffer[pos++] = (c ^ (inbuf >> colors)) & 0xFF;
-        // truncate inbuf (assumes colors < 16)
-        inbuf &= 0xFFFF;
-      }
-    } else if (bits === 8) {
-      for (var i = 0; i < colors; ++i)
-        buffer[pos++] = rawBytes[i];
-      for (; i < rowBytes; ++i) {
-        buffer[pos] = buffer[pos - colors] + rawBytes[i];
-        pos++;
-      }
-    } else {
-      var compArray = new Uint8Array(colors + 1);
-      var bitMask = (1 << bits) - 1;
-      var j = 0, k = bufferLength;
-      var columns = this.columns;
-      for (var i = 0; i < columns; ++i) {
-        for (var kk = 0; kk < colors; ++kk) {
-          if (inbits < bits) {
-            inbuf = (inbuf << 8) | (rawBytes[j++] & 0xFF);
-            inbits += 8;
-          }
-          compArray[kk] = (compArray[kk] +
-                           (inbuf >> (inbits - bits))) & bitMask;
-          inbits -= bits;
-          outbuf = (outbuf << bits) | compArray[kk];
-          outbits += bits;
-          if (outbits >= 8) {
-            buffer[k++] = (outbuf >> (outbits - 8)) & 0xFF;
-            outbits -= 8;
-          }
-        }
-      }
-      if (outbits > 0) {
-        buffer[k++] = (outbuf << (8 - outbits)) +
-        (inbuf & ((1 << (8 - outbits)) - 1));
-      }
-    }
-    this.bufferLength += rowBytes;
-  };
-
-  PredictorStream.prototype.readBlockPng =
-    function predictorStreamReadBlockPng() {
-
-    var rowBytes = this.rowBytes;
-    var pixBytes = this.pixBytes;
-
-    var predictor = this.stream.getByte();
-    var rawBytes = this.stream.getBytes(rowBytes);
-
-    var bufferLength = this.bufferLength;
-    var buffer = this.ensureBuffer(bufferLength + rowBytes);
-
-    var prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);
-    if (prevRow.length == 0)
-      prevRow = new Uint8Array(rowBytes);
-
-    var j = bufferLength;
-    switch (predictor) {
-      case 0:
-        for (var i = 0; i < rowBytes; ++i)
-          buffer[j++] = rawBytes[i];
-        break;
-      case 1:
-        for (var i = 0; i < pixBytes; ++i)
-          buffer[j++] = rawBytes[i];
-        for (; i < rowBytes; ++i) {
-          buffer[j] = (buffer[j - pixBytes] + rawBytes[i]) & 0xFF;
-          j++;
-        }
-        break;
-      case 2:
-        for (var i = 0; i < rowBytes; ++i)
-          buffer[j++] = (prevRow[i] + rawBytes[i]) & 0xFF;
-        break;
-      case 3:
-        for (var i = 0; i < pixBytes; ++i)
-          buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];
-        for (; i < rowBytes; ++i) {
-          buffer[j] = (((prevRow[i] + buffer[j - pixBytes]) >> 1) +
-                           rawBytes[i]) & 0xFF;
-          j++;
-        }
-        break;
-      case 4:
-        // we need to save the up left pixels values. the simplest way
-        // is to create a new buffer
-        for (var i = 0; i < pixBytes; ++i) {
-          var up = prevRow[i];
-          var c = rawBytes[i];
-          buffer[j++] = up + c;
-        }
-        for (; i < rowBytes; ++i) {
-          var up = prevRow[i];
-          var upLeft = prevRow[i - pixBytes];
-          var left = buffer[j - pixBytes];
-          var p = left + up - upLeft;
-
-          var pa = p - left;
-          if (pa < 0)
-            pa = -pa;
-          var pb = p - up;
-          if (pb < 0)
-            pb = -pb;
-          var pc = p - upLeft;
-          if (pc < 0)
-            pc = -pc;
-
-          var c = rawBytes[i];
-          if (pa <= pb && pa <= pc)
-            buffer[j++] = left + c;
-          else if (pb <= pc)
-            buffer[j++] = up + c;
-          else
-            buffer[j++] = upLeft + c;
-        }
-        break;
-      default:
-        error('Unsupported predictor: ' + predictor);
-    }
-    this.bufferLength += rowBytes;
-  };
-
-  return PredictorStream;
-})();
-
-/**
- * Depending on the type of JPEG a JpegStream is handled in different ways. For
- * JPEG's that are supported natively such as DeviceGray and DeviceRGB the image
- * data is stored and then loaded by the browser.  For unsupported JPEG's we use
- * a library to decode these images and the stream behaves like all the other
- * DecodeStreams.
- */
-var JpegStream = (function JpegStreamClosure() {
-  function isAdobeImage(bytes) {
-    var maxBytesScanned = Math.max(bytes.length - 16, 1024);
-    // Looking for APP14, 'Adobe'
-    for (var i = 0; i < maxBytesScanned; ++i) {
-      if (bytes[i] == 0xFF && bytes[i + 1] == 0xEE &&
-          bytes[i + 2] == 0x00 && bytes[i + 3] == 0x0E &&
-          bytes[i + 4] == 0x41 && bytes[i + 5] == 0x64 &&
-          bytes[i + 6] == 0x6F && bytes[i + 7] == 0x62 &&
-          bytes[i + 8] == 0x65 && bytes[i + 9] == 0x00)
-          return true;
-      // scanning until frame tag
-      if (bytes[i] == 0xFF && bytes[i + 1] == 0xC0)
-        break;
-    }
-    return false;
-  }
-
-  function fixAdobeImage(bytes) {
-    // Inserting 'EMBED' marker after JPEG signature
-    var embedMarker = new Uint8Array([0xFF, 0xEC, 0, 8, 0x45, 0x4D, 0x42, 0x45,
-                                      0x44, 0]);
-    var newBytes = new Uint8Array(bytes.length + embedMarker.length);
-    newBytes.set(bytes, embedMarker.length);
-    // copy JPEG header
-    newBytes[0] = bytes[0];
-    newBytes[1] = bytes[1];
-    newBytes.set(embedMarker, 2);
-    return newBytes;
-  }
-
-  function JpegStream(bytes, dict, xref) {
-    // TODO: per poppler, some images may have 'junk' before that
-    // need to be removed
-    this.dict = dict;
-
-    this.isAdobeImage = false;
-    this.colorTransform = dict.get('ColorTransform') || -1;
-
-    if (isAdobeImage(bytes)) {
-      this.isAdobeImage = true;
-      bytes = fixAdobeImage(bytes);
-    }
-
-    this.bytes = bytes;
-
-    DecodeStream.call(this);
-  }
-
-  JpegStream.prototype = Object.create(DecodeStream.prototype);
-
-  JpegStream.prototype.ensureBuffer = function JpegStream_ensureBuffer(req) {
-    if (this.bufferLength)
-      return;
-    try {
-      var jpegImage = new JpegImage();
-      if (this.colorTransform != -1)
-        jpegImage.colorTransform = this.colorTransform;
-      jpegImage.parse(this.bytes);
-      var width = jpegImage.width;
-      var height = jpegImage.height;
-      var data = jpegImage.getData(width, height);
-      this.buffer = data;
-      this.bufferLength = data.length;
-    } catch (e) {
-      error('JPEG error: ' + e);
-    }
-  };
-  JpegStream.prototype.getIR = function JpegStream_getIR() {
-    return bytesToString(this.bytes);
-  };
-  JpegStream.prototype.getChar = function JpegStream_getChar() {
-    error('internal error: getChar is not valid on JpegStream');
-  };
-  /**
-   * Checks if the image can be decoded and displayed by the browser without any
-   * further processing such as color space conversions.
-   */
-  JpegStream.prototype.isNativelySupported =
-    function JpegStream_isNativelySupported(xref, res) {
-    var cs = ColorSpace.parse(this.dict.get('ColorSpace'), xref, res);
-    // when bug 674619 lands, let's check if browser can do
-    // normal cmyk and then we won't need to decode in JS
-    if (cs.name === 'DeviceGray' || cs.name === 'DeviceRGB')
-      return true;
-    if (cs.name === 'DeviceCMYK' && !this.isAdobeImage &&
-        this.colorTransform < 1)
-      return true;
-    return false;
-  };
-  /**
-   * Checks if the image can be decoded by the browser.
-   */
-  JpegStream.prototype.isNativelyDecodable =
-    function JpegStream_isNativelyDecodable(xref, res) {
-    var cs = ColorSpace.parse(this.dict.get('ColorSpace'), xref, res);
-    var numComps = cs.numComps;
-    if (numComps == 1 || numComps == 3)
-      return true;
-
-    return false;
-  };
-
-  return JpegStream;
-})();
-
-/**
- * For JPEG 2000's we use a library to decode these images and
- * the stream behaves like all the other DecodeStreams.
- */
-var JpxStream = (function JpxStreamClosure() {
-  function JpxStream(bytes, dict) {
-    this.dict = dict;
-    this.bytes = bytes;
-
-    DecodeStream.call(this);
-  }
-
-  JpxStream.prototype = Object.create(DecodeStream.prototype);
-
-  JpxStream.prototype.ensureBuffer = function JpxStream_ensureBuffer(req) {
-    if (this.bufferLength)
-      return;
-
-    var jpxImage = new JpxImage();
-    jpxImage.parse(this.bytes);
-
-    var width = jpxImage.width;
-    var height = jpxImage.height;
-    var componentsCount = jpxImage.componentsCount;
-    if (componentsCount != 1 && componentsCount != 3 && componentsCount != 4)
-      error('JPX with ' + componentsCount + ' components is not supported');
-
-    var data = new Uint8Array(width * height * componentsCount);
-
-    for (var k = 0, kk = jpxImage.tiles.length; k < kk; k++) {
-      var tileCompoments = jpxImage.tiles[k];
-      var tileWidth = tileCompoments[0].width;
-      var tileHeight = tileCompoments[0].height;
-      var tileLeft = tileCompoments[0].left;
-      var tileTop = tileCompoments[0].top;
-
-      var dataPosition, sourcePosition, data0, data1, data2, data3, rowFeed;
-      switch (componentsCount) {
-        case 1:
-          data0 = tileCompoments[0].items;
-
-          dataPosition = width * tileTop + tileLeft;
-          rowFeed = width - tileWidth;
-          sourcePosition = 0;
-          for (var j = 0; j < tileHeight; j++) {
-            for (var i = 0; i < tileWidth; i++)
-              data[dataPosition++] = data0[sourcePosition++];
-            dataPosition += rowFeed;
-          }
-          break;
-        case 3:
-          data0 = tileCompoments[0].items;
-          data1 = tileCompoments[1].items;
-          data2 = tileCompoments[2].items;
-
-          dataPosition = (width * tileTop + tileLeft) * 3;
-          rowFeed = (width - tileWidth) * 3;
-          sourcePosition = 0;
-          for (var j = 0; j < tileHeight; j++) {
-            for (var i = 0; i < tileWidth; i++) {
-              data[dataPosition++] = data0[sourcePosition];
-              data[dataPosition++] = data1[sourcePosition];
-              data[dataPosition++] = data2[sourcePosition];
-              sourcePosition++;
-            }
-            dataPosition += rowFeed;
-          }
-          break;
-        case 4:
-          data0 = tileCompoments[0].items;
-          data1 = tileCompoments[1].items;
-          data2 = tileCompoments[2].items;
-          data3 = tileCompoments[3].items;
-
-          dataPosition = (width * tileTop + tileLeft) * 4;
-          rowFeed = (width - tileWidth) * 4;
-          sourcePosition = 0;
-          for (var j = 0; j < tileHeight; j++) {
-            for (var i = 0; i < tileWidth; i++) {
-              data[dataPosition++] = data0[sourcePosition];
-              data[dataPosition++] = data1[sourcePosition];
-              data[dataPosition++] = data2[sourcePosition];
-              data[dataPosition++] = data3[sourcePosition];
-              sourcePosition++;
-            }
-            dataPosition += rowFeed;
-          }
-          break;
-      }
-    }
-
-    this.buffer = data;
-    this.bufferLength = data.length;
-  };
-  JpxStream.prototype.getChar = function JpxStream_getChar() {
-    error('internal error: getChar is not valid on JpxStream');
-  };
-
-  return JpxStream;
-})();
-
-var DecryptStream = (function DecryptStreamClosure() {
-  function DecryptStream(str, decrypt) {
-    this.str = str;
-    this.dict = str.dict;
-    this.decrypt = decrypt;
-
-    DecodeStream.call(this);
-  }
-
-  var chunkSize = 512;
-
-  DecryptStream.prototype = Object.create(DecodeStream.prototype);
-
-  DecryptStream.prototype.readBlock = function DecryptStream_readBlock() {
-    var chunk = this.str.getBytes(chunkSize);
-    if (!chunk || chunk.length == 0) {
-      this.eof = true;
-      return;
-    }
-    var decrypt = this.decrypt;
-    chunk = decrypt(chunk);
-
-    var bufferLength = this.bufferLength;
-    var i, n = chunk.length;
-    var buffer = this.ensureBuffer(bufferLength + n);
-    for (i = 0; i < n; i++)
-      buffer[bufferLength++] = chunk[i];
-    this.bufferLength = bufferLength;
-  };
-
-  return DecryptStream;
-})();
-
-var Ascii85Stream = (function Ascii85StreamClosure() {
-  function Ascii85Stream(str) {
-    this.str = str;
-    this.dict = str.dict;
-    this.input = new Uint8Array(5);
-
-    DecodeStream.call(this);
-  }
-
-  Ascii85Stream.prototype = Object.create(DecodeStream.prototype);
-
-  Ascii85Stream.prototype.readBlock = function Ascii85Stream_readBlock() {
-    var tildaCode = '~'.charCodeAt(0);
-    var zCode = 'z'.charCodeAt(0);
-    var str = this.str;
-
-    var c = str.getByte();
-    while (Lexer.isSpace(String.fromCharCode(c)))
-      c = str.getByte();
-
-    if (!c || c === tildaCode) {
-      this.eof = true;
-      return;
-    }
-
-    var bufferLength = this.bufferLength, buffer;
-
-    // special code for z
-    if (c == zCode) {
-      buffer = this.ensureBuffer(bufferLength + 4);
-      for (var i = 0; i < 4; ++i)
-        buffer[bufferLength + i] = 0;
-      this.bufferLength += 4;
-    } else {
-      var input = this.input;
-      input[0] = c;
-      for (var i = 1; i < 5; ++i) {
-        c = str.getByte();
-        while (Lexer.isSpace(String.fromCharCode(c)))
-          c = str.getByte();
-
-        input[i] = c;
-
-        if (!c || c == tildaCode)
-          break;
-      }
-      buffer = this.ensureBuffer(bufferLength + i - 1);
-      this.bufferLength += i - 1;
-
-      // partial ending;
-      if (i < 5) {
-        for (; i < 5; ++i)
-          input[i] = 0x21 + 84;
-        this.eof = true;
-      }
-      var t = 0;
-      for (var i = 0; i < 5; ++i)
-        t = t * 85 + (input[i] - 0x21);
-
-      for (var i = 3; i >= 0; --i) {
-        buffer[bufferLength + i] = t & 0xFF;
-        t >>= 8;
-      }
-    }
-  };
-
-  return Ascii85Stream;
-})();
-
-var AsciiHexStream = (function AsciiHexStreamClosure() {
-  function AsciiHexStream(str) {
-    this.str = str;
-    this.dict = str.dict;
-
-    DecodeStream.call(this);
-  }
-
-  var hexvalueMap = {
-      9: -1, // \t
-      32: -1, // space
-      48: 0,
-      49: 1,
-      50: 2,
-      51: 3,
-      52: 4,
-      53: 5,
-      54: 6,
-      55: 7,
-      56: 8,
-      57: 9,
-      65: 10,
-      66: 11,
-      67: 12,
-      68: 13,
-      69: 14,
-      70: 15,
-      97: 10,
-      98: 11,
-      99: 12,
-      100: 13,
-      101: 14,
-      102: 15
-  };
-
-  AsciiHexStream.prototype = Object.create(DecodeStream.prototype);
-
-  AsciiHexStream.prototype.readBlock = function AsciiHexStream_readBlock() {
-    var gtCode = '>'.charCodeAt(0), bytes = this.str.getBytes(), c, n,
-        decodeLength, buffer, bufferLength, i, length;
-
-    decodeLength = (bytes.length + 1) >> 1;
-    buffer = this.ensureBuffer(this.bufferLength + decodeLength);
-    bufferLength = this.bufferLength;
-
-    for (i = 0, length = bytes.length; i < length; i++) {
-      c = hexvalueMap[bytes[i]];
-      while (c == -1 && (i + 1) < length) {
-        c = hexvalueMap[bytes[++i]];
-      }
-
-      if ((i + 1) < length && (bytes[i + 1] !== gtCode)) {
-        n = hexvalueMap[bytes[++i]];
-        buffer[bufferLength++] = c * 16 + n;
-      } else {
-        // EOD marker at an odd number, behave as if a 0 followed the last
-        // digit.
-        if (bytes[i] !== gtCode) {
-          buffer[bufferLength++] = c * 16;
-        }
-      }
-    }
-
-    this.bufferLength = bufferLength;
-    this.eof = true;
-  };
-
-  return AsciiHexStream;
-})();
-
-var RunLengthStream = (function RunLengthStreamClosure() {
-  function RunLengthStream(str) {
-    this.str = str;
-    this.dict = str.dict;
-
-    DecodeStream.call(this);
-  }
-
-  RunLengthStream.prototype = Object.create(DecodeStream.prototype);
-
-  RunLengthStream.prototype.readBlock = function RunLengthStream_readBlock() {
-    // The repeatHeader has following format. The first byte defines type of run
-    // and amount of bytes to repeat/copy: n = 0 through 127 - copy next n bytes
-    // (in addition to the second byte from the header), n = 129 through 255 -
-    // duplicate the second byte from the header (257 - n) times, n = 128 - end.
-    var repeatHeader = this.str.getBytes(2);
-    if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] == 128) {
-      this.eof = true;
-      return;
-    }
-
-    var bufferLength = this.bufferLength;
-    var n = repeatHeader[0];
-    if (n < 128) {
-      // copy n bytes
-      var buffer = this.ensureBuffer(bufferLength + n + 1);
-      buffer[bufferLength++] = repeatHeader[1];
-      if (n > 0) {
-        var source = this.str.getBytes(n);
-        buffer.set(source, bufferLength);
-        bufferLength += n;
-      }
-    } else {
-      n = 257 - n;
-      var b = repeatHeader[1];
-      var buffer = this.ensureBuffer(bufferLength + n + 1);
-      for (var i = 0; i < n; i++)
-        buffer[bufferLength++] = b;
-    }
-    this.bufferLength = bufferLength;
-  };
-
-  return RunLengthStream;
-})();
-
-var CCITTFaxStream = (function CCITTFaxStreamClosure() {
-
-  var ccittEOL = -2;
-  var twoDimPass = 0;
-  var twoDimHoriz = 1;
-  var twoDimVert0 = 2;
-  var twoDimVertR1 = 3;
-  var twoDimVertL1 = 4;
-  var twoDimVertR2 = 5;
-  var twoDimVertL2 = 6;
-  var twoDimVertR3 = 7;
-  var twoDimVertL3 = 8;
-
-  var twoDimTable = [
-    [-1, -1], [-1, -1],                   // 000000x
-    [7, twoDimVertL3],                    // 0000010
-    [7, twoDimVertR3],                    // 0000011
-    [6, twoDimVertL2], [6, twoDimVertL2], // 000010x
-    [6, twoDimVertR2], [6, twoDimVertR2], // 000011x
-    [4, twoDimPass], [4, twoDimPass],     // 0001xxx
-    [4, twoDimPass], [4, twoDimPass],
-    [4, twoDimPass], [4, twoDimPass],
-    [4, twoDimPass], [4, twoDimPass],
-    [3, twoDimHoriz], [3, twoDimHoriz],   // 001xxxx
-    [3, twoDimHoriz], [3, twoDimHoriz],
-    [3, twoDimHoriz], [3, twoDimHoriz],
-    [3, twoDimHoriz], [3, twoDimHoriz],
-    [3, twoDimHoriz], [3, twoDimHoriz],
-    [3, twoDimHoriz], [3, twoDimHoriz],
-    [3, twoDimHoriz], [3, twoDimHoriz],
-    [3, twoDimHoriz], [3, twoDimHoriz],
-    [3, twoDimVertL1], [3, twoDimVertL1], // 010xxxx
-    [3, twoDimVertL1], [3, twoDimVertL1],
-    [3, twoDimVertL1], [3, twoDimVertL1],
-    [3, twoDimVertL1], [3, twoDimVertL1],
-    [3, twoDimVertL1], [3, twoDimVertL1],
-    [3, twoDimVertL1], [3, twoDimVertL1],
-    [3, twoDimVertL1], [3, twoDimVertL1],
-    [3, twoDimVertL1], [3, twoDimVertL1],
-    [3, twoDimVertR1], [3, twoDimVertR1], // 011xxxx
-    [3, twoDimVertR1], [3, twoDimVertR1],
-    [3, twoDimVertR1], [3, twoDimVertR1],
-    [3, twoDimVertR1], [3, twoDimVertR1],
-    [3, twoDimVertR1], [3, twoDimVertR1],
-    [3, twoDimVertR1], [3, twoDimVertR1],
-    [3, twoDimVertR1], [3, twoDimVertR1],
-    [3, twoDimVertR1], [3, twoDimVertR1],
-    [1, twoDimVert0], [1, twoDimVert0],   // 1xxxxxx
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0],
-    [1, twoDimVert0], [1, twoDimVert0]
-  ];
-
-  var whiteTable1 = [
-    [-1, -1],                               // 00000
-    [12, ccittEOL],                         // 00001
-    [-1, -1], [-1, -1],                     // 0001x
-    [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 001xx
-    [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 010xx
-    [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 011xx
-    [11, 1792], [11, 1792],                 // 1000x
-    [12, 1984],                             // 10010
-    [12, 2048],                             // 10011
-    [12, 2112],                             // 10100
-    [12, 2176],                             // 10101
-    [12, 2240],                             // 10110
-    [12, 2304],                             // 10111
-    [11, 1856], [11, 1856],                 // 1100x
-    [11, 1920], [11, 1920],                 // 1101x
-    [12, 2368],                             // 11100
-    [12, 2432],                             // 11101
-    [12, 2496],                             // 11110
-    [12, 2560]                              // 11111
-  ];
-
-  var whiteTable2 = [
-    [-1, -1], [-1, -1], [-1, -1], [-1, -1],     // 0000000xx
-    [8, 29], [8, 29],                           // 00000010x
-    [8, 30], [8, 30],                           // 00000011x
-    [8, 45], [8, 45],                           // 00000100x
-    [8, 46], [8, 46],                           // 00000101x
-    [7, 22], [7, 22], [7, 22], [7, 22],         // 0000011xx
-    [7, 23], [7, 23], [7, 23], [7, 23],         // 0000100xx
-    [8, 47], [8, 47],                           // 00001010x
-    [8, 48], [8, 48],                           // 00001011x
-    [6, 13], [6, 13], [6, 13], [6, 13],         // 000011xxx
-    [6, 13], [6, 13], [6, 13], [6, 13],
-    [7, 20], [7, 20], [7, 20], [7, 20],         // 0001000xx
-    [8, 33], [8, 33],                           // 00010010x
-    [8, 34], [8, 34],                           // 00010011x
-    [8, 35], [8, 35],                           // 00010100x
-    [8, 36], [8, 36],                           // 00010101x
-    [8, 37], [8, 37],                           // 00010110x
-    [8, 38], [8, 38],                           // 00010111x
-    [7, 19], [7, 19], [7, 19], [7, 19],         // 0001100xx
-    [8, 31], [8, 31],                           // 00011010x
-    [8, 32], [8, 32],                           // 00011011x
-    [6, 1], [6, 1], [6, 1], [6, 1],             // 000111xxx
-    [6, 1], [6, 1], [6, 1], [6, 1],
-    [6, 12], [6, 12], [6, 12], [6, 12],         // 001000xxx
-    [6, 12], [6, 12], [6, 12], [6, 12],
-    [8, 53], [8, 53],                           // 00100100x
-    [8, 54], [8, 54],                           // 00100101x
-    [7, 26], [7, 26], [7, 26], [7, 26],         // 0010011xx
-    [8, 39], [8, 39],                           // 00101000x
-    [8, 40], [8, 40],                           // 00101001x
-    [8, 41], [8, 41],                           // 00101010x
-    [8, 42], [8, 42],                           // 00101011x
-    [8, 43], [8, 43],                           // 00101100x
-    [8, 44], [8, 44],                           // 00101101x
-    [7, 21], [7, 21], [7, 21], [7, 21],         // 0010111xx
-    [7, 28], [7, 28], [7, 28], [7, 28],         // 0011000xx
-    [8, 61], [8, 61],                           // 00110010x
-    [8, 62], [8, 62],                           // 00110011x
-    [8, 63], [8, 63],                           // 00110100x
-    [8, 0], [8, 0],                             // 00110101x
-    [8, 320], [8, 320],                         // 00110110x
-    [8, 384], [8, 384],                         // 00110111x
-    [5, 10], [5, 10], [5, 10], [5, 10],         // 00111xxxx
-    [5, 10], [5, 10], [5, 10], [5, 10],
-    [5, 10], [5, 10], [5, 10], [5, 10],
-    [5, 10], [5, 10], [5, 10], [5, 10],
-    [5, 11], [5, 11], [5, 11], [5, 11],         // 01000xxxx
-    [5, 11], [5, 11], [5, 11], [5, 11],
-    [5, 11], [5, 11], [5, 11], [5, 11],
-    [5, 11], [5, 11], [5, 11], [5, 11],
-    [7, 27], [7, 27], [7, 27], [7, 27],         // 0100100xx
-    [8, 59], [8, 59],                           // 01001010x
-    [8, 60], [8, 60],                           // 01001011x
-    [9, 1472],                                  // 010011000
-    [9, 1536],                                  // 010011001
-    [9, 1600],                                  // 010011010
-    [9, 1728],                                  // 010011011
-    [7, 18], [7, 18], [7, 18], [7, 18],         // 0100111xx
-    [7, 24], [7, 24], [7, 24], [7, 24],         // 0101000xx
-    [8, 49], [8, 49],                           // 01010010x
-    [8, 50], [8, 50],                           // 01010011x
-    [8, 51], [8, 51],                           // 01010100x
-    [8, 52], [8, 52],                           // 01010101x
-    [7, 25], [7, 25], [7, 25], [7, 25],         // 0101011xx
-    [8, 55], [8, 55],                           // 01011000x
-    [8, 56], [8, 56],                           // 01011001x
-    [8, 57], [8, 57],                           // 01011010x
-    [8, 58], [8, 58],                           // 01011011x
-    [6, 192], [6, 192], [6, 192], [6, 192],     // 010111xxx
-    [6, 192], [6, 192], [6, 192], [6, 192],
-    [6, 1664], [6, 1664], [6, 1664], [6, 1664], // 011000xxx
-    [6, 1664], [6, 1664], [6, 1664], [6, 1664],
-    [8, 448], [8, 448],                         // 01100100x
-    [8, 512], [8, 512],                         // 01100101x
-    [9, 704],                                   // 011001100
-    [9, 768],                                   // 011001101
-    [8, 640], [8, 640],                         // 01100111x
-    [8, 576], [8, 576],                         // 01101000x
-    [9, 832],                                   // 011010010
-    [9, 896],                                   // 011010011
-    [9, 960],                                   // 011010100
-    [9, 1024],                                  // 011010101
-    [9, 1088],                                  // 011010110
-    [9, 1152],                                  // 011010111
-    [9, 1216],                                  // 011011000
-    [9, 1280],                                  // 011011001
-    [9, 1344],                                  // 011011010
-    [9, 1408],                                  // 011011011
-    [7, 256], [7, 256], [7, 256], [7, 256],     // 0110111xx
-    [4, 2], [4, 2], [4, 2], [4, 2],             // 0111xxxxx
-    [4, 2], [4, 2], [4, 2], [4, 2],
-    [4, 2], [4, 2], [4, 2], [4, 2],
-    [4, 2], [4, 2], [4, 2], [4, 2],
-    [4, 2], [4, 2], [4, 2], [4, 2],
-    [4, 2], [4, 2], [4, 2], [4, 2],
-    [4, 2], [4, 2], [4, 2], [4, 2],
-    [4, 2], [4, 2], [4, 2], [4, 2],
-    [4, 3], [4, 3], [4, 3], [4, 3],             // 1000xxxxx
-    [4, 3], [4, 3], [4, 3], [4, 3],
-    [4, 3], [4, 3], [4, 3], [4, 3],
-    [4, 3], [4, 3], [4, 3], [4, 3],
-    [4, 3], [4, 3], [4, 3], [4, 3],
-    [4, 3], [4, 3], [4, 3], [4, 3],
-    [4, 3], [4, 3], [4, 3], [4, 3],
-    [4, 3], [4, 3], [4, 3], [4, 3],
-    [5, 128], [5, 128], [5, 128], [5, 128],     // 10010xxxx
-    [5, 128], [5, 128], [5, 128], [5, 128],
-    [5, 128], [5, 128], [5, 128], [5, 128],
-    [5, 128], [5, 128], [5, 128], [5, 128],
-    [5, 8], [5, 8], [5, 8], [5, 8],             // 10011xxxx
-    [5, 8], [5, 8], [5, 8], [5, 8],
-    [5, 8], [5, 8], [5, 8], [5, 8],
-    [5, 8], [5, 8], [5, 8], [5, 8],
-    [5, 9], [5, 9], [5, 9], [5, 9],             // 10100xxxx
-    [5, 9], [5, 9], [5, 9], [5, 9],
-    [5, 9], [5, 9], [5, 9], [5, 9],
-    [5, 9], [5, 9], [5, 9], [5, 9],
-    [6, 16], [6, 16], [6, 16], [6, 16],         // 101010xxx
-    [6, 16], [6, 16], [6, 16], [6, 16],
-    [6, 17], [6, 17], [6, 17], [6, 17],         // 101011xxx
-    [6, 17], [6, 17], [6, 17], [6, 17],
-    [4, 4], [4, 4], [4, 4], [4, 4],             // 1011xxxxx
-    [4, 4], [4, 4], [4, 4], [4, 4],
-    [4, 4], [4, 4], [4, 4], [4, 4],
-    [4, 4], [4, 4], [4, 4], [4, 4],
-    [4, 4], [4, 4], [4, 4], [4, 4],
-    [4, 4], [4, 4], [4, 4], [4, 4],
-    [4, 4], [4, 4], [4, 4], [4, 4],
-    [4, 4], [4, 4], [4, 4], [4, 4],
-    [4, 5], [4, 5], [4, 5], [4, 5],             // 1100xxxxx
-    [4, 5], [4, 5], [4, 5], [4, 5],
-    [4, 5], [4, 5], [4, 5], [4, 5],
-    [4, 5], [4, 5], [4, 5], [4, 5],
-    [4, 5], [4, 5], [4, 5], [4, 5],
-    [4, 5], [4, 5], [4, 5], [4, 5],
-    [4, 5], [4, 5], [4, 5], [4, 5],
-    [4, 5], [4, 5], [4, 5], [4, 5],
-    [6, 14], [6, 14], [6, 14], [6, 14],         // 110100xxx
-    [6, 14], [6, 14], [6, 14], [6, 14],
-    [6, 15], [6, 15], [6, 15], [6, 15],         // 110101xxx
-    [6, 15], [6, 15], [6, 15], [6, 15],
-    [5, 64], [5, 64], [5, 64], [5, 64],         // 11011xxxx
-    [5, 64], [5, 64], [5, 64], [5, 64],
-    [5, 64], [5, 64], [5, 64], [5, 64],
-    [5, 64], [5, 64], [5, 64], [5, 64],
-    [4, 6], [4, 6], [4, 6], [4, 6],             // 1110xxxxx
-    [4, 6], [4, 6], [4, 6], [4, 6],
-    [4, 6], [4, 6], [4, 6], [4, 6],
-    [4, 6], [4, 6], [4, 6], [4, 6],
-    [4, 6], [4, 6], [4, 6], [4, 6],
-    [4, 6], [4, 6], [4, 6], [4, 6],
-    [4, 6], [4, 6], [4, 6], [4, 6],
-    [4, 6], [4, 6], [4, 6], [4, 6],
-    [4, 7], [4, 7], [4, 7], [4, 7],             // 1111xxxxx
-    [4, 7], [4, 7], [4, 7], [4, 7],
-    [4, 7], [4, 7], [4, 7], [4, 7],
-    [4, 7], [4, 7], [4, 7], [4, 7],
-    [4, 7], [4, 7], [4, 7], [4, 7],
-    [4, 7], [4, 7], [4, 7], [4, 7],
-    [4, 7], [4, 7], [4, 7], [4, 7],
-    [4, 7], [4, 7], [4, 7], [4, 7]
-  ];
-
-  var blackTable1 = [
-    [-1, -1], [-1, -1],                             // 000000000000x
-    [12, ccittEOL], [12, ccittEOL],                 // 000000000001x
-    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000001xx
-    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000010xx
-    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000011xx
-    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000100xx
-    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000101xx
-    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000110xx
-    [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000111xx
-    [11, 1792], [11, 1792], [11, 1792], [11, 1792], // 00000001000xx
-    [12, 1984], [12, 1984],                         // 000000010010x
-    [12, 2048], [12, 2048],                         // 000000010011x
-    [12, 2112], [12, 2112],                         // 000000010100x
-    [12, 2176], [12, 2176],                         // 000000010101x
-    [12, 2240], [12, 2240],                         // 000000010110x
-    [12, 2304], [12, 2304],                         // 000000010111x
-    [11, 1856], [11, 1856], [11, 1856], [11, 1856], // 00000001100xx
-    [11, 1920], [11, 1920], [11, 1920], [11, 1920], // 00000001101xx
-    [12, 2368], [12, 2368],                         // 000000011100x
-    [12, 2432], [12, 2432],                         // 000000011101x
-    [12, 2496], [12, 2496],                         // 000000011110x
-    [12, 2560], [12, 2560],                         // 000000011111x
-    [10, 18], [10, 18], [10, 18], [10, 18],         // 0000001000xxx
-    [10, 18], [10, 18], [10, 18], [10, 18],
-    [12, 52], [12, 52],                             // 000000100100x
-    [13, 640],                                      // 0000001001010
-    [13, 704],                                      // 0000001001011
-    [13, 768],                                      // 0000001001100
-    [13, 832],                                      // 0000001001101
-    [12, 55], [12, 55],                             // 000000100111x
-    [12, 56], [12, 56],                             // 000000101000x
-    [13, 1280],                                     // 0000001010010
-    [13, 1344],                                     // 0000001010011
-    [13, 1408],                                     // 0000001010100
-    [13, 1472],                                     // 0000001010101
-    [12, 59], [12, 59],                             // 000000101011x
-    [12, 60], [12, 60],                             // 000000101100x
-    [13, 1536],                                     // 0000001011010
-    [13, 1600],                                     // 0000001011011
-    [11, 24], [11, 24], [11, 24], [11, 24],         // 00000010111xx
-    [11, 25], [11, 25], [11, 25], [11, 25],         // 00000011000xx
-    [13, 1664],                                     // 0000001100100
-    [13, 1728],                                     // 0000001100101
-    [12, 320], [12, 320],                           // 000000110011x
-    [12, 384], [12, 384],                           // 000000110100x
-    [12, 448], [12, 448],                           // 000000110101x
-    [13, 512],                                      // 0000001101100
-    [13, 576],                                      // 0000001101101
-    [12, 53], [12, 53],                             // 000000110111x
-    [12, 54], [12, 54],                             // 000000111000x
-    [13, 896],                                      // 0000001110010
-    [13, 960],                                      // 0000001110011
-    [13, 1024],                                     // 0000001110100
-    [13, 1088],                                     // 0000001110101
-    [13, 1152],                                     // 0000001110110
-    [13, 1216],                                     // 0000001110111
-    [10, 64], [10, 64], [10, 64], [10, 64],         // 0000001111xxx
-    [10, 64], [10, 64], [10, 64], [10, 64]
-  ];
-
-  var blackTable2 = [
-    [8, 13], [8, 13], [8, 13], [8, 13],     // 00000100xxxx
-    [8, 13], [8, 13], [8, 13], [8, 13],
-    [8, 13], [8, 13], [8, 13], [8, 13],
-    [8, 13], [8, 13], [8, 13], [8, 13],
-    [11, 23], [11, 23],                     // 00000101000x
-    [12, 50],                               // 000001010010
-    [12, 51],                               // 000001010011
-    [12, 44],                               // 000001010100
-    [12, 45],                               // 000001010101
-    [12, 46],                               // 000001010110
-    [12, 47],                               // 000001010111
-    [12, 57],                               // 000001011000
-    [12, 58],                               // 000001011001
-    [12, 61],                               // 000001011010
-    [12, 256],                              // 000001011011
-    [10, 16], [10, 16], [10, 16], [10, 16], // 0000010111xx
-    [10, 17], [10, 17], [10, 17], [10, 17], // 0000011000xx
-    [12, 48],                               // 000001100100
-    [12, 49],                               // 000001100101
-    [12, 62],                               // 000001100110
-    [12, 63],                               // 000001100111
-    [12, 30],                               // 000001101000
-    [12, 31],                               // 000001101001
-    [12, 32],                               // 000001101010
-    [12, 33],                               // 000001101011
-    [12, 40],                               // 000001101100
-    [12, 41],                               // 000001101101
-    [11, 22], [11, 22],                     // 00000110111x
-    [8, 14], [8, 14], [8, 14], [8, 14],     // 00000111xxxx
-    [8, 14], [8, 14], [8, 14], [8, 14],
-    [8, 14], [8, 14], [8, 14], [8, 14],
-    [8, 14], [8, 14], [8, 14], [8, 14],
-    [7, 10], [7, 10], [7, 10], [7, 10],     // 0000100xxxxx
-    [7, 10], [7, 10], [7, 10], [7, 10],
-    [7, 10], [7, 10], [7, 10], [7, 10],
-    [7, 10], [7, 10], [7, 10], [7, 10],
-    [7, 10], [7, 10], [7, 10], [7, 10],
-    [7, 10], [7, 10], [7, 10], [7, 10],
-    [7, 10], [7, 10], [7, 10], [7, 10],
-    [7, 10], [7, 10], [7, 10], [7, 10],
-    [7, 11], [7, 11], [7, 11], [7, 11],     // 0000101xxxxx
-    [7, 11], [7, 11], [7, 11], [7, 11],
-    [7, 11], [7, 11], [7, 11], [7, 11],
-    [7, 11], [7, 11], [7, 11], [7, 11],
-    [7, 11], [7, 11], [7, 11], [7, 11],
-    [7, 11], [7, 11], [7, 11], [7, 11],
-    [7, 11], [7, 11], [7, 11], [7, 11],
-    [7, 11], [7, 11], [7, 11], [7, 11],
-    [9, 15], [9, 15], [9, 15], [9, 15],     // 000011000xxx
-    [9, 15], [9, 15], [9, 15], [9, 15],
-    [12, 128],                              // 000011001000
-    [12, 192],                              // 000011001001
-    [12, 26],                               // 000011001010
-    [12, 27],                               // 000011001011
-    [12, 28],                               // 000011001100
-    [12, 29],                               // 000011001101
-    [11, 19], [11, 19],                     // 00001100111x
-    [11, 20], [11, 20],                     // 00001101000x
-    [12, 34],                               // 000011010010
-    [12, 35],                               // 000011010011
-    [12, 36],                               // 000011010100
-    [12, 37],                               // 000011010101
-    [12, 38],                               // 000011010110
-    [12, 39],                               // 000011010111
-    [11, 21], [11, 21],                     // 00001101100x
-    [12, 42],                               // 000011011010
-    [12, 43],                               // 000011011011
-    [10, 0], [10, 0], [10, 0], [10, 0],     // 0000110111xx
-    [7, 12], [7, 12], [7, 12], [7, 12],     // 0000111xxxxx
-    [7, 12], [7, 12], [7, 12], [7, 12],
-    [7, 12], [7, 12], [7, 12], [7, 12],
-    [7, 12], [7, 12], [7, 12], [7, 12],
-    [7, 12], [7, 12], [7, 12], [7, 12],
-    [7, 12], [7, 12], [7, 12], [7, 12],
-    [7, 12], [7, 12], [7, 12], [7, 12],
-    [7, 12], [7, 12], [7, 12], [7, 12]
-  ];
-
-  var blackTable3 = [
-    [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000xx
-    [6, 9],                                 // 000100
-    [6, 8],                                 // 000101
-    [5, 7], [5, 7],                         // 00011x
-    [4, 6], [4, 6], [4, 6], [4, 6],         // 0010xx
-    [4, 5], [4, 5], [4, 5], [4, 5],         // 0011xx
-    [3, 1], [3, 1], [3, 1], [3, 1],         // 010xxx
-    [3, 1], [3, 1], [3, 1], [3, 1],
-    [3, 4], [3, 4], [3, 4], [3, 4],         // 011xxx
-    [3, 4], [3, 4], [3, 4], [3, 4],
-    [2, 3], [2, 3], [2, 3], [2, 3],         // 10xxxx
-    [2, 3], [2, 3], [2, 3], [2, 3],
-    [2, 3], [2, 3], [2, 3], [2, 3],
-    [2, 3], [2, 3], [2, 3], [2, 3],
-    [2, 2], [2, 2], [2, 2], [2, 2],         // 11xxxx
-    [2, 2], [2, 2], [2, 2], [2, 2],
-    [2, 2], [2, 2], [2, 2], [2, 2],
-    [2, 2], [2, 2], [2, 2], [2, 2]
-  ];
-
-  function CCITTFaxStream(str, params) {
-    this.str = str;
-    this.dict = str.dict;
-
-    params = params || new Dict();
-
-    this.encoding = params.get('K') || 0;
-    this.eoline = params.get('EndOfLine') || false;
-    this.byteAlign = params.get('EncodedByteAlign') || false;
-    this.columns = params.get('Columns') || 1728;
-    this.rows = params.get('Rows') || 0;
-    var eoblock = params.get('EndOfBlock');
-    if (eoblock == null)
-      eoblock = true;
-    this.eoblock = eoblock;
-    this.black = params.get('BlackIs1') || false;
-
-    this.codingLine = new Uint32Array(this.columns + 1);
-    this.refLine = new Uint32Array(this.columns + 2);
-
-    this.codingLine[0] = this.columns;
-    this.codingPos = 0;
-
-    this.row = 0;
-    this.nextLine2D = this.encoding < 0;
-    this.inputBits = 0;
-    this.inputBuf = 0;
-    this.outputBits = 0;
-    this.buf = EOF;
-
-    var code1;
-    while ((code1 = this.lookBits(12)) == 0) {
-      this.eatBits(1);
-    }
-    if (code1 == 1) {
-      this.eatBits(12);
-    }
-    if (this.encoding > 0) {
-      this.nextLine2D = !this.lookBits(1);
-      this.eatBits(1);
-    }
-
-    DecodeStream.call(this);
-  }
-
-  CCITTFaxStream.prototype = Object.create(DecodeStream.prototype);
-
-  CCITTFaxStream.prototype.readBlock = function CCITTFaxStream_readBlock() {
-    while (!this.eof) {
-      var c = this.lookChar();
-      this.buf = EOF;
-      this.ensureBuffer(this.bufferLength + 1);
-      this.buffer[this.bufferLength++] = c;
-    }
-  };
-
-  CCITTFaxStream.prototype.addPixels =
-    function ccittFaxStreamAddPixels(a1, blackPixels) {
-    var codingLine = this.codingLine;
-    var codingPos = this.codingPos;
-
-    if (a1 > codingLine[codingPos]) {
-      if (a1 > this.columns) {
-        warn('row is wrong length');
-        this.err = true;
-        a1 = this.columns;
-      }
-      if ((codingPos & 1) ^ blackPixels) {
-        ++codingPos;
-      }
-
-      codingLine[codingPos] = a1;
-    }
-    this.codingPos = codingPos;
-  };
-
-  CCITTFaxStream.prototype.addPixelsNeg =
-    function ccittFaxStreamAddPixelsNeg(a1, blackPixels) {
-    var codingLine = this.codingLine;
-    var codingPos = this.codingPos;
-
-    if (a1 > codingLine[codingPos]) {
-      if (a1 > this.columns) {
-        warn('row is wrong length');
-        this.err = true;
-        a1 = this.columns;
-      }
-      if ((codingPos & 1) ^ blackPixels)
-        ++codingPos;
-
-      codingLine[codingPos] = a1;
-    } else if (a1 < codingLine[codingPos]) {
-      if (a1 < 0) {
-        warn('invalid code');
-        this.err = true;
-        a1 = 0;
-      }
-      while (codingPos > 0 && a1 < codingLine[codingPos - 1])
-        --codingPos;
-      codingLine[codingPos] = a1;
-    }
-
-    this.codingPos = codingPos;
-  };
-
-  CCITTFaxStream.prototype.lookChar = function CCITTFaxStream_lookChar() {
-    if (this.buf != EOF)
-      return this.buf;
-
-    var refLine = this.refLine;
-    var codingLine = this.codingLine;
-    var columns = this.columns;
-
-    var refPos, blackPixels, bits;
-
-    if (this.outputBits == 0) {
-      if (this.eof)
-        return null;
-
-      this.err = false;
-
-      var code1, code2, code3;
-      if (this.nextLine2D) {
-        for (var i = 0; codingLine[i] < columns; ++i)
-          refLine[i] = codingLine[i];
-
-        refLine[i++] = columns;
-        refLine[i] = columns;
-        codingLine[0] = 0;
-        this.codingPos = 0;
-        refPos = 0;
-        blackPixels = 0;
-
-        while (codingLine[this.codingPos] < columns) {
-          code1 = this.getTwoDimCode();
-          switch (code1) {
-            case twoDimPass:
-              this.addPixels(refLine[refPos + 1], blackPixels);
-              if (refLine[refPos + 1] < columns)
-                refPos += 2;
-              break;
-            case twoDimHoriz:
-              code1 = code2 = 0;
-              if (blackPixels) {
-                do {
-                  code1 += (code3 = this.getBlackCode());
-                } while (code3 >= 64);
-                do {
-                  code2 += (code3 = this.getWhiteCode());
-                } while (code3 >= 64);
-              } else {
-                do {
-                  code1 += (code3 = this.getWhiteCode());
-                } while (code3 >= 64);
-                do {
-                  code2 += (code3 = this.getBlackCode());
-                } while (code3 >= 64);
-              }
-              this.addPixels(codingLine[this.codingPos] +
-                             code1, blackPixels);
-              if (codingLine[this.codingPos] < columns) {
-                this.addPixels(codingLine[this.codingPos] + code2,
-                               blackPixels ^ 1);
-              }
-              while (refLine[refPos] <= codingLine[this.codingPos] &&
-                     refLine[refPos] < columns) {
-                refPos += 2;
-              }
-              break;
-            case twoDimVertR3:
-              this.addPixels(refLine[refPos] + 3, blackPixels);
-              blackPixels ^= 1;
-              if (codingLine[this.codingPos] < columns) {
-                ++refPos;
-                while (refLine[refPos] <= codingLine[this.codingPos] &&
-                       refLine[refPos] < columns)
-                  refPos += 2;
-              }
-              break;
-            case twoDimVertR2:
-              this.addPixels(refLine[refPos] + 2, blackPixels);
-              blackPixels ^= 1;
-              if (codingLine[this.codingPos] < columns) {
-                ++refPos;
-                while (refLine[refPos] <= codingLine[this.codingPos] &&
-                       refLine[refPos] < columns) {
-                  refPos += 2;
-                }
-              }
-              break;
-            case twoDimVertR1:
-              this.addPixels(refLine[refPos] + 1, blackPixels);
-              blackPixels ^= 1;
-              if (codingLine[this.codingPos] < columns) {
-                ++refPos;
-                while (refLine[refPos] <= codingLine[this.codingPos] &&
-                       refLine[refPos] < columns)
-                  refPos += 2;
-              }
-              break;
-            case twoDimVert0:
-              this.addPixels(refLine[refPos], blackPixels);
-              blackPixels ^= 1;
-              if (codingLine[this.codingPos] < columns) {
-                ++refPos;
-                while (refLine[refPos] <= codingLine[this.codingPos] &&
-                       refLine[refPos] < columns)
-                  refPos += 2;
-              }
-              break;
-            case twoDimVertL3:
-              this.addPixelsNeg(refLine[refPos] - 3, blackPixels);
-              blackPixels ^= 1;
-              if (codingLine[this.codingPos] < columns) {
-                if (refPos > 0)
-                  --refPos;
-                else
-                  ++refPos;
-                while (refLine[refPos] <= codingLine[this.codingPos] &&
-                       refLine[refPos] < columns)
-                  refPos += 2;
-              }
-              break;
-            case twoDimVertL2:
-              this.addPixelsNeg(refLine[refPos] - 2, blackPixels);
-              blackPixels ^= 1;
-              if (codingLine[this.codingPos] < columns) {
-                if (refPos > 0)
-                  --refPos;
-                else
-                  ++refPos;
-                while (refLine[refPos] <= codingLine[this.codingPos] &&
-                       refLine[refPos] < columns)
-                  refPos += 2;
-              }
-              break;
-            case twoDimVertL1:
-              this.addPixelsNeg(refLine[refPos] - 1, blackPixels);
-              blackPixels ^= 1;
-              if (codingLine[this.codingPos] < columns) {
-                if (refPos > 0)
-                  --refPos;
-                else
-                  ++refPos;
-
-                while (refLine[refPos] <= codingLine[this.codingPos] &&
-                       refLine[refPos] < columns)
-                  refPos += 2;
-              }
-              break;
-            case EOF:
-              this.addPixels(columns, 0);
-              this.eof = true;
-              break;
-            default:
-              warn('bad 2d code');
-              this.addPixels(columns, 0);
-              this.err = true;
-          }
-        }
-      } else {
-        codingLine[0] = 0;
-        this.codingPos = 0;
-        blackPixels = 0;
-        while (codingLine[this.codingPos] < columns) {
-          code1 = 0;
-          if (blackPixels) {
-            do {
-              code1 += (code3 = this.getBlackCode());
-            } while (code3 >= 64);
-          } else {
-            do {
-              code1 += (code3 = this.getWhiteCode());
-            } while (code3 >= 64);
-          }
-          this.addPixels(codingLine[this.codingPos] + code1, blackPixels);
-          blackPixels ^= 1;
-        }
-      }
-
-      if (this.byteAlign)
-        this.inputBits &= ~7;
-
-      var gotEOL = false;
-
-      if (!this.eoblock && this.row == this.rows - 1) {
-        this.eof = true;
-      } else {
-        code1 = this.lookBits(12);
-        while (code1 == 0) {
-          this.eatBits(1);
-          code1 = this.lookBits(12);
-        }
-        if (code1 == 1) {
-          this.eatBits(12);
-          gotEOL = true;
-        } else if (code1 == EOF) {
-          this.eof = true;
-        }
-      }
-
-      if (!this.eof && this.encoding > 0) {
-        this.nextLine2D = !this.lookBits(1);
-        this.eatBits(1);
-      }
-
-      if (this.eoblock && gotEOL) {
-        code1 = this.lookBits(12);
-        if (code1 == 1) {
-          this.eatBits(12);
-          if (this.encoding > 0) {
-            this.lookBits(1);
-            this.eatBits(1);
-          }
-          if (this.encoding >= 0) {
-            for (var i = 0; i < 4; ++i) {
-              code1 = this.lookBits(12);
-              if (code1 != 1)
-                warn('bad rtc code: ' + code1);
-              this.eatBits(12);
-              if (this.encoding > 0) {
-                this.lookBits(1);
-                this.eatBits(1);
-              }
-            }
-          }
-          this.eof = true;
-        }
-      } else if (this.err && this.eoline) {
-        while (true) {
-          code1 = this.lookBits(13);
-          if (code1 == EOF) {
-            this.eof = true;
-            return null;
-          }
-          if ((code1 >> 1) == 1) {
-            break;
-          }
-          this.eatBits(1);
-        }
-        this.eatBits(12);
-        if (this.encoding > 0) {
-          this.eatBits(1);
-          this.nextLine2D = !(code1 & 1);
-        }
-      }
-
-      if (codingLine[0] > 0)
-        this.outputBits = codingLine[this.codingPos = 0];
-      else
-        this.outputBits = codingLine[this.codingPos = 1];
-      this.row++;
-    }
-
-    if (this.outputBits >= 8) {
-      this.buf = (this.codingPos & 1) ? 0 : 0xFF;
-      this.outputBits -= 8;
-      if (this.outputBits == 0 && codingLine[this.codingPos] < columns) {
-        this.codingPos++;
-        this.outputBits = (codingLine[this.codingPos] -
-                           codingLine[this.codingPos - 1]);
-      }
-    } else {
-      var bits = 8;
-      this.buf = 0;
-      do {
-        if (this.outputBits > bits) {
-          this.buf <<= bits;
-          if (!(this.codingPos & 1)) {
-            this.buf |= 0xFF >> (8 - bits);
-          }
-          this.outputBits -= bits;
-          bits = 0;
-        } else {
-          this.buf <<= this.outputBits;
-          if (!(this.codingPos & 1)) {
-            this.buf |= 0xFF >> (8 - this.outputBits);
-          }
-          bits -= this.outputBits;
-          this.outputBits = 0;
-          if (codingLine[this.codingPos] < columns) {
-            this.codingPos++;
-            this.outputBits = (codingLine[this.codingPos] -
-                               codingLine[this.codingPos - 1]);
-          } else if (bits > 0) {
-            this.buf <<= bits;
-            bits = 0;
-          }
-        }
-      } while (bits);
-    }
-    if (this.black) {
-      this.buf ^= 0xFF;
-    }
-    return this.buf;
-  };
-
-  // This functions returns the code found from the table.
-  // The start and end parameters set the boundaries for searching the table.
-  // The limit parameter is optional. Function returns an array with three
-  // values. The first array element indicates whether a valid code is being
-  // returned. The second array element is the actual code. The third array
-  // element indicates whether EOF was reached.
-  CCITTFaxStream.prototype.findTableCode =
-    function ccittFaxStreamFindTableCode(start, end, table, limit) {
-
-    var limitValue = limit || 0;
-    for (var i = start; i <= end; ++i) {
-      var code = this.lookBits(i);
-      if (code == EOF)
-        return [true, 1, false];
-      if (i < end)
-        code <<= end - i;
-      if (!limitValue || code >= limitValue) {
-        var p = table[code - limitValue];
-        if (p[0] == i) {
-          this.eatBits(i);
-          return [true, p[1], true];
-        }
-      }
-    }
-    return [false, 0, false];
-  };
-
-  CCITTFaxStream.prototype.getTwoDimCode =
-    function ccittFaxStreamGetTwoDimCode() {
-
-    var code = 0;
-    var p;
-    if (this.eoblock) {
-      code = this.lookBits(7);
-      p = twoDimTable[code];
-      if (p && p[0] > 0) {
-        this.eatBits(p[0]);
-        return p[1];
-      }
-    } else {
-      var result = this.findTableCode(1, 7, twoDimTable);
-      if (result[0] && result[2])
-        return result[1];
-    }
-    warn('Bad two dim code');
-    return EOF;
-  };
-
-  CCITTFaxStream.prototype.getWhiteCode =
-    function ccittFaxStreamGetWhiteCode() {
-
-    var code = 0;
-    var p;
-    var n;
-    if (this.eoblock) {
-      code = this.lookBits(12);
-      if (code == EOF)
-        return 1;
-
-      if ((code >> 5) == 0)
-        p = whiteTable1[code];
-      else
-        p = whiteTable2[code >> 3];
-
-      if (p[0] > 0) {
-        this.eatBits(p[0]);
-        return p[1];
-      }
-    } else {
-      var result = this.findTableCode(1, 9, whiteTable2);
-      if (result[0])
-        return result[1];
-
-      result = this.findTableCode(11, 12, whiteTable1);
-      if (result[0])
-        return result[1];
-    }
-    warn('bad white code');
-    this.eatBits(1);
-    return 1;
-  };
-
-  CCITTFaxStream.prototype.getBlackCode =
-    function ccittFaxStreamGetBlackCode() {
-
-    var code, p;
-    if (this.eoblock) {
-      code = this.lookBits(13);
-      if (code == EOF)
-        return 1;
-      if ((code >> 7) == 0)
-        p = blackTable1[code];
-      else if ((code >> 9) == 0 && (code >> 7) != 0)
-        p = blackTable2[(code >> 1) - 64];
-      else
-        p = blackTable3[code >> 7];
-
-      if (p[0] > 0) {
-        this.eatBits(p[0]);
-        return p[1];
-      }
-    } else {
-      var result = this.findTableCode(2, 6, blackTable3);
-      if (result[0])
-        return result[1];
-
-      result = this.findTableCode(7, 12, blackTable2, 64);
-      if (result[0])
-        return result[1];
-
-      result = this.findTableCode(10, 13, blackTable1);
-      if (result[0])
-        return result[1];
-    }
-    warn('bad black code');
-    this.eatBits(1);
-    return 1;
-  };
-
-  CCITTFaxStream.prototype.lookBits = function CCITTFaxStream_lookBits(n) {
-    var c;
-    while (this.inputBits < n) {
-      if ((c = this.str.getByte()) == null) {
-        if (this.inputBits == 0)
-          return EOF;
-        return ((this.inputBuf << (n - this.inputBits)) &
-                (0xFFFF >> (16 - n)));
-      }
-      this.inputBuf = (this.inputBuf << 8) + c;
-      this.inputBits += 8;
-    }
-    return (this.inputBuf >> (this.inputBits - n)) & (0xFFFF >> (16 - n));
-  };
-
-  CCITTFaxStream.prototype.eatBits = function CCITTFaxStream_eatBits(n) {
-    if ((this.inputBits -= n) < 0)
-      this.inputBits = 0;
-  };
-
-  return CCITTFaxStream;
-})();
-
-var LZWStream = (function LZWStreamClosure() {
-  function LZWStream(str, earlyChange) {
-    this.str = str;
-    this.dict = str.dict;
-    this.cachedData = 0;
-    this.bitsCached = 0;
-
-    var maxLzwDictionarySize = 4096;
-    var lzwState = {
-      earlyChange: earlyChange,
-      codeLength: 9,
-      nextCode: 258,
-      dictionaryValues: new Uint8Array(maxLzwDictionarySize),
-      dictionaryLengths: new Uint16Array(maxLzwDictionarySize),
-      dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),
-      currentSequence: new Uint8Array(maxLzwDictionarySize),
-      currentSequenceLength: 0
-    };
-    for (var i = 0; i < 256; ++i) {
-      lzwState.dictionaryValues[i] = i;
-      lzwState.dictionaryLengths[i] = 1;
-    }
-    this.lzwState = lzwState;
-
-    DecodeStream.call(this);
-  }
-
-  LZWStream.prototype = Object.create(DecodeStream.prototype);
-
-  LZWStream.prototype.readBits = function LZWStream_readBits(n) {
-    var bitsCached = this.bitsCached;
-    var cachedData = this.cachedData;
-    while (bitsCached < n) {
-      var c = this.str.getByte();
-      if (c == null) {
-        this.eof = true;
-        return null;
-      }
-      cachedData = (cachedData << 8) | c;
-      bitsCached += 8;
-    }
-    this.bitsCached = (bitsCached -= n);
-    this.cachedData = cachedData;
-    this.lastCode = null;
-    return (cachedData >>> bitsCached) & ((1 << n) - 1);
-  };
-
-  LZWStream.prototype.readBlock = function LZWStream_readBlock() {
-    var blockSize = 512;
-    var estimatedDecodedSize = blockSize * 2, decodedSizeDelta = blockSize;
-    var i, j, q;
-
-    var lzwState = this.lzwState;
-    if (!lzwState)
-      return; // eof was found
-
-    var earlyChange = lzwState.earlyChange;
-    var nextCode = lzwState.nextCode;
-    var dictionaryValues = lzwState.dictionaryValues;
-    var dictionaryLengths = lzwState.dictionaryLengths;
-    var dictionaryPrevCodes = lzwState.dictionaryPrevCodes;
-    var codeLength = lzwState.codeLength;
-    var prevCode = lzwState.prevCode;
-    var currentSequence = lzwState.currentSequence;
-    var currentSequenceLength = lzwState.currentSequenceLength;
-
-    var decodedLength = 0;
-    var currentBufferLength = this.bufferLength;
-    var buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);
-
-    for (i = 0; i < blockSize; i++) {
-      var code = this.readBits(codeLength);
-      var hasPrev = currentSequenceLength > 0;
-      if (code < 256) {
-        currentSequence[0] = code;
-        currentSequenceLength = 1;
-      } else if (code >= 258) {
-        if (code < nextCode) {
-          currentSequenceLength = dictionaryLengths[code];
-          for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {
-            currentSequence[j] = dictionaryValues[q];
-            q = dictionaryPrevCodes[q];
-          }
-        } else {
-          currentSequence[currentSequenceLength++] = currentSequence[0];
-        }
-      } else if (code == 256) {
-        codeLength = 9;
-        nextCode = 258;
-        currentSequenceLength = 0;
-        continue;
-      } else {
-        this.eof = true;
-        delete this.lzwState;
-        break;
-      }
-
-      if (hasPrev) {
-        dictionaryPrevCodes[nextCode] = prevCode;
-        dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;
-        dictionaryValues[nextCode] = currentSequence[0];
-        nextCode++;
-        codeLength = (nextCode + earlyChange) & (nextCode + earlyChange - 1) ?
-          codeLength : Math.min(Math.log(nextCode + earlyChange) /
-          0.6931471805599453 + 1, 12) | 0;
-      }
-      prevCode = code;
-
-      decodedLength += currentSequenceLength;
-      if (estimatedDecodedSize < decodedLength) {
-        do {
-          estimatedDecodedSize += decodedSizeDelta;
-        } while (estimatedDecodedSize < decodedLength);
-        buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);
-      }
-      for (j = 0; j < currentSequenceLength; j++)
-        buffer[currentBufferLength++] = currentSequence[j];
-    }
-    lzwState.nextCode = nextCode;
-    lzwState.codeLength = codeLength;
-    lzwState.prevCode = prevCode;
-    lzwState.currentSequenceLength = currentSequenceLength;
-
-    this.bufferLength = currentBufferLength;
-  };
-
-  return LZWStream;
-})();
-
-
-/* -*- 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 MessageHandler(name, comObj) {
-  this.name = name;
-  this.comObj = comObj;
-  this.callbackIndex = 1;
-  var callbacks = this.callbacks = {};
-  var ah = this.actionHandler = {};
-
-  ah['console_log'] = [function ahConsoleLog(data) {
-      PdfJS_window.console.log.apply(PdfJS_window.console, data);
-  }];
-  ah['console_error'] = [function ahConsoleError(data) {
-      PdfJS_window.console.error.apply(PdfJS_window.console, data);
-  }];
-
-  comObj.onmessage = function messageHandlerComObjOnMessage(event) {
-    var data = event.data;
-    if (data.isReply) {
-      var callbackId = data.callbackId;
-      if (data.callbackId in callbacks) {
-        var callback = callbacks[callbackId];
-        delete callbacks[callbackId];
-        callback(data.data);
-      } else {
-        error('Cannot resolve callback ' + callbackId);
-      }
-    } else if (data.action in ah) {
-      var action = ah[data.action];
-      if (data.callbackId) {
-        var promise = new Promise();
-        promise.then(function(resolvedData) {
-          comObj.postMessage({
-            isReply: true,
-            callbackId: data.callbackId,
-            data: resolvedData
-          });
-        });
-        action[0].call(action[1], data.data, promise);
-      } else {
-        action[0].call(action[1], data.data);
-      }
-    } else {
-      error('Unkown action from worker: ' + data.action);
-    }
-  };
-}
-
-MessageHandler.prototype = {
-  on: function messageHandlerOn(actionName, handler, scope) {
-    var ah = this.actionHandler;
-    if (ah[actionName]) {
-      error('There is already an actionName called "' + actionName + '"');
-    }
-    ah[actionName] = [handler, scope];
-  },
-  /**
-   * Sends a message to the comObj to invoke the action with the supplied data.
-   * @param {String} actionName Action to call.
-   * @param {JSON} data JSON data to send.
-   * @param {function} [callback] Optional callback that will handle a reply.
-   */
-  send: function messageHandlerSend(actionName, data, callback) {
-    var message = {
-      action: actionName,
-      data: data
-    };
-    if (callback) {
-      var callbackId = this.callbackIndex++;
-      this.callbacks[callbackId] = callback;
-      message.callbackId = callbackId;
-    }
-    this.comObj.postMessage(message);
-  }
-};
-
-var WorkerMessageHandler = {
-  setup: function wphSetup(handler) {
-    var pdfModel = null;
-
-    handler.on('test', function wphSetupTest(data) {
-      handler.send('test', data instanceof Uint8Array);
-    });
-
-    handler.on('GetDocRequest', function wphSetupDoc(data) {
-      // Create only the model of the PDFDoc, which is enough for
-      // processing the content of the pdf.
-      pdfModel = new PDFDocument(new Stream(data));
-      var doc = {
-        numPages: pdfModel.numPages,
-        fingerprint: pdfModel.getFingerprint(),
-        destinations: pdfModel.catalog.destinations,
-        outline: pdfModel.catalog.documentOutline,
-        info: pdfModel.getDocumentInfo(),
-        metadata: pdfModel.catalog.metadata
-      };
-      handler.send('GetDoc', {pdfInfo: doc});
-    });
-
-    handler.on('GetPageRequest', function wphSetupGetPage(data) {
-      var pageNumber = data.pageIndex + 1;
-      var pdfPage = pdfModel.getPage(pageNumber);
-      var page = {
-        pageIndex: data.pageIndex,
-        rotate: pdfPage.rotate,
-        ref: pdfPage.ref,
-        view: pdfPage.view
-      };
-      handler.send('GetPage', {pageInfo: page});
-    });
-
-    handler.on('GetAnnotationsRequest', function wphSetupGetAnnotations(data) {
-      var pdfPage = pdfModel.getPage(data.pageIndex + 1);
-      handler.send('GetAnnotations', {
-        pageIndex: data.pageIndex,
-        annotations: pdfPage.getAnnotations()
-      });
-    });
-
-    handler.on('RenderPageRequest', function wphSetupRenderPage(data) {
-      var pageNum = data.pageIndex + 1;
-
-
-      // The following code does quite the same as
-      // Page.prototype.startRendering, but stops at one point and sends the
-      // result back to the main thread.
-      var gfx = new CanvasGraphics(null);
-
-      var start = Date.now();
-
-      var dependency = [];
-      var operatorList = null;
-      try {
-        var page = pdfModel.getPage(pageNum);
-        // Pre compile the pdf page and fetch the fonts/images.
-        operatorList = page.getOperatorList(handler, dependency);
-      } catch (e) {
-        var minimumStackMessage =
-            'worker.js: while trying to getPage() and getOperatorList()';
-
-        // Turn the error into an obj that can be serialized
-        if (typeof e === 'string') {
-          e = {
-            message: e,
-            stack: minimumStackMessage
-          };
-        } else if (typeof e === 'object') {
-          e = {
-            message: e.message || e.toString(),
-            stack: e.stack || minimumStackMessage
-          };
-        } else {
-          e = {
-            message: 'Unknown exception type: ' + (typeof e),
-            stack: minimumStackMessage
-          };
-        }
-
-        handler.send('PageError', {
-          pageNum: pageNum,
-          error: e
-        });
-        return;
-      }
-
-      //comment out as it floods the logcat
-      //PdfJS_window.console.log('page=%d - getOperatorList: time=%dms, len=%d', pageNum,
-      //                        Date.now() - start, operatorList.fnArray.length);
-
-      // Filter the dependecies for fonts.
-      var fonts = {};
-      for (var i = 0, ii = dependency.length; i < ii; i++) {
-        var dep = dependency[i];
-        if (dep.indexOf('font_') == 0) {
-          fonts[dep] = true;
-        }
-      }
-      handler.send('RenderPage', {
-        pageIndex: data.pageIndex,
-        operatorList: operatorList,
-        depFonts: Object.keys(fonts)
-      });
-    }, this);
-  }
-};
-
-var consoleTimer = {};
-
-var workerConsole = {
-  log: function log() {
-    var args = Array.prototype.slice.call(arguments);
-    postMessage({
-      action: 'console_log',
-      data: args
-    });
-  },
-
-  error: function error() {
-    var args = Array.prototype.slice.call(arguments);
-    postMessage({
-      action: 'console_error',
-      data: args
-    });
-    throw 'pdf.js execution error';
-  },
-
-  time: function time(name) {
-    consoleTimer[name] = Date.now();
-  },
-
-  timeEnd: function timeEnd(name) {
-    var time = consoleTimer[name];
-    if (time == null) {
-      error('Unkown timer name ' + name);
-    }
-    this.log('Timer:', name, Date.now() - time);
-  }
-};
-
-// Worker thread?
-if (typeof PdfJS_window.window === 'undefined') {
-  globalScope.console = workerConsole;
-
-  var handler = new MessageHandler('worker_processor', this);
-  WorkerMessageHandler.setup(handler);
-}
-
-
-/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /
-/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
-
-// - The JPEG specification can be found in the ITU CCITT Recommendation T.81
-//   (www.w3.org/Graphics/JPEG/itu-t81.pdf)
-// - The JFIF specification can be found in the JPEG File Interchange Format
-//   (www.w3.org/Graphics/JPEG/jfif3.pdf)
-// - The Adobe Application-Specific JPEG markers in the Supporting the DCT Filters
-//   in PostScript Level 2, Technical Note #5116
-//   (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)
-
-var JpegImage = (function jpegImage() {
-  "use strict";
-  var dctZigZag = new Int32Array([
-     0,
-     1,  8,
-    16,  9,  2,
-     3, 10, 17, 24,
-    32, 25, 18, 11, 4,
-     5, 12, 19, 26, 33, 40,
-    48, 41, 34, 27, 20, 13,  6,
-     7, 14, 21, 28, 35, 42, 49, 56,
-    57, 50, 43, 36, 29, 22, 15,
-    23, 30, 37, 44, 51, 58,
-    59, 52, 45, 38, 31,
-    39, 46, 53, 60,
-    61, 54, 47,
-    55, 62,
-    63
-  ]);
-
-  var dctCos1  =  4017   // cos(pi/16)
-  var dctSin1  =   799   // sin(pi/16)
-  var dctCos3  =  3406   // cos(3*pi/16)
-  var dctSin3  =  2276   // sin(3*pi/16)
-  var dctCos6  =  1567   // cos(6*pi/16)
-  var dctSin6  =  3784   // sin(6*pi/16)
-  var dctSqrt2 =  5793   // sqrt(2)
-  var dctSqrt1d2 = 2896  // sqrt(2) / 2
-
-  function constructor() {
-  }
-
-  function buildHuffmanTable(codeLengths, values) {
-    var k = 0, code = [], i, j, length = 16;
-    while (length > 0 && !codeLengths[length - 1])
-      length--;
-    code.push({children: [], index: 0});
-    var p = code[0], q;
-    for (i = 0; i < length; i++) {
-      for (j = 0; j < codeLengths[i]; j++) {
-        p = code.pop();
-        p.children[p.index] = values[k];
-        while (p.index > 0) {
-          p = code.pop();
-        }
-        p.index++;
-        code.push(p);
-        while (code.length <= i) {
-          code.push(q = {children: [], index: 0});
-          p.children[p.index] = q.children;
-          p = q;
-        }
-        k++;
-      }
-      if (i + 1 < length) {
-        // p here points to last code
-        code.push(q = {children: [], index: 0});
-        p.children[p.index] = q.children;
-        p = q;
-      }
-    }
-    return code[0].children;
-  }
-
-  function decodeScan(data, offset,
-                      frame, components, resetInterval,
-                      spectralStart, spectralEnd,
-                      successivePrev, successive) {
-    var precision = frame.precision;
-    var samplesPerLine = frame.samplesPerLine;
-    var scanLines = frame.scanLines;
-    var mcusPerLine = frame.mcusPerLine;
-    var progressive = frame.progressive;
-    var maxH = frame.maxH, maxV = frame.maxV;
-
-    var startOffset = offset, bitsData = 0, bitsCount = 0;
-    function readBit() {
-      if (bitsCount > 0) {
-        bitsCount--;
-        return (bitsData >> bitsCount) & 1;
-      }
-      bitsData = data[offset++];
-      if (bitsData == 0xFF) {
-        var nextByte = data[offset++];
-        if (nextByte) {
-          throw "unexpected marker: " + ((bitsData << 8) | nextByte).toString(16);
-        }
-        // unstuff 0
-      }
-      bitsCount = 7;
-      return bitsData >>> 7;
-    }
-    function decodeHuffman(tree) {
-      var node = tree, bit;
-      while ((bit = readBit()) !== null) {
-        node = node[bit];
-        if (typeof node === 'number')
-          return node;
-        if (typeof node !== 'object')
-          throw "invalid huffman sequence";
-      }
-      return null;
-    }
-    function receive(length) {
-      var n = 0;
-      while (length > 0) {
-        var bit = readBit();
-        if (bit === null) return;
-        n = (n << 1) | bit;
-        length--;
-      }
-      return n;
-    }
-    function receiveAndExtend(length) {
-      var n = receive(length);
-      if (n >= 1 << (length - 1))
-        return n;
-      return n + (-1 << length) + 1;
-    }
-    function decodeBaseline(component, zz) {
-      var t = decodeHuffman(component.huffmanTableDC);
-      var diff = t === 0 ? 0 : receiveAndExtend(t);
-      zz[0]= (component.pred += diff);
-      var k = 1;
-      while (k < 64) {
-        var rs = decodeHuffman(component.huffmanTableAC);
-        var s = rs & 15, r = rs >> 4;
-        if (s === 0) {
-          if (r < 15)
-            break;
-          k += 16;
-          continue;
-        }
-        k += r;
-        var z = dctZigZag[k];
-        zz[z] = receiveAndExtend(s);
-        k++;
-      }
-    }
-    function decodeDCFirst(component, zz) {
-      var t = decodeHuffman(component.huffmanTableDC);
-      var diff = t === 0 ? 0 : (receiveAndExtend(t) << successive);
-      zz[0] = (component.pred += diff);
-    }
-    function decodeDCSuccessive(component, zz) {
-      zz[0] |= readBit() << successive;
-    }
-    var eobrun = 0;
-    function decodeACFirst(component, zz) {
-      if (eobrun > 0) {
-        eobrun--;
-        return;
-      }
-      var k = spectralStart, e = spectralEnd;
-      while (k <= e) {
-        var rs = decodeHuffman(component.huffmanTableAC);
-        var s = rs & 15, r = rs >> 4;
-        if (s === 0) {
-          if (r < 15) {
-            eobrun = receive(r) + (1 << r) - 1;
-            break;
-          }
-          k += 16;
-          continue;
-        }
-        k += r;
-        var z = dctZigZag[k];
-        zz[z] = receiveAndExtend(s) * (1 << successive);
-        k++;
-      }
-    }
-    var successiveACState = 0, successiveACNextValue;
-    function decodeACSuccessive(component, zz) {
-      var k = spectralStart, e = spectralEnd, r = 0;
-      while (k <= e) {
-        var z = dctZigZag[k];
-        switch (successiveACState) {
-        case 0: // initial state
-          var rs = decodeHuffman(component.huffmanTableAC);
-          var s = rs & 15, r = rs >> 4;
-          if (s === 0) {
-            if (r < 15) {
-              eobrun = receive(r) + (1 << r);
-              successiveACState = 4;
-            } else {
-              r = 16;
-              successiveACState = 1;
-            }
-          } else {
-            if (s !== 1)
-              throw "invalid ACn encoding";
-            successiveACNextValue = receiveAndExtend(s);
-            successiveACState = r ? 2 : 3;
-          }
-          continue;
-        case 1: // skipping r zero items
-        case 2:
-          if (zz[z])
-            zz[z] += (readBit() << successive);
-          else {
-            r--;
-            if (r === 0)
-              successiveACState = successiveACState == 2 ? 3 : 0;
-          }
-          break;
-        case 3: // set value for a zero item
-          if (zz[z])
-            zz[z] += (readBit() << successive);
-          else {
-            zz[z] = successiveACNextValue << successive;
-            successiveACState = 0;
-          }
-          break;
-        case 4: // eob
-          if (zz[z])
-            zz[z] += (readBit() << successive);
-          break;
-        }
-        k++;
-      }
-      if (successiveACState === 4) {
-        eobrun--;
-        if (eobrun === 0)
-          successiveACState = 0;
-      }
-    }
-    function decodeMcu(component, decode, mcu, row, col) {
-      var mcuRow = (mcu / mcusPerLine) | 0;
-      var mcuCol = mcu % mcusPerLine;
-      var blockRow = mcuRow * component.v + row;
-      var blockCol = mcuCol * component.h + col;
-      decode(component, component.blocks[blockRow][blockCol]);
-    }
-    function decodeBlock(component, decode, mcu) {
-      var blockRow = (mcu / component.blocksPerLine) | 0;
-      var blockCol = mcu % component.blocksPerLine;
-      decode(component, component.blocks[blockRow][blockCol]);
-    }
-
-    var componentsLength = components.length;
-    var component, i, j, k, n;
-    var decodeFn;
-    if (progressive) {
-      if (spectralStart === 0)
-        decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;
-      else
-        decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;
-    } else {
-      decodeFn = decodeBaseline;
-    }
-
-    var mcu = 0, marker;
-    var mcuExpected;
-    if (componentsLength == 1) {
-      mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;
-    } else {
-      mcuExpected = mcusPerLine * frame.mcusPerColumn;
-    }
-    if (!resetInterval) resetInterval = mcuExpected;
-
-    var h, v;
-    while (mcu < mcuExpected) {
-      // reset interval stuff
-      for (i = 0; i < componentsLength; i++)
-        components[i].pred = 0;
-      eobrun = 0;
-
-      if (componentsLength == 1) {
-        component = components[0];
-        for (n = 0; n < resetInterval; n++) {
-          decodeBlock(component, decodeFn, mcu);
-          mcu++;
-        }
-      } else {
-        for (n = 0; n < resetInterval; n++) {
-          for (i = 0; i < componentsLength; i++) {
-            component = components[i];
-            h = component.h;
-            v = component.v;
-            for (j = 0; j < v; j++) {
-              for (k = 0; k < h; k++) {
-                decodeMcu(component, decodeFn, mcu, j, k);
-              }
-            }
-          }
-          mcu++;
-        }
-      }
-
-      // find marker
-      bitsCount = 0;
-      marker = (data[offset] << 8) | data[offset + 1];
-      if (marker <= 0xFF00) {
-        throw "marker was not found";
-      }
-
-      if (marker >= 0xFFD0 && marker <= 0xFFD7) { // RSTx
-        offset += 2;
-      }
-      else
-        break;
-    }
-
-    return offset - startOffset;
-  }
-
-  function buildComponentData(frame, component) {
-    var lines = [];
-    var blocksPerLine = component.blocksPerLine;
-    var blocksPerColumn = component.blocksPerColumn;
-    var samplesPerLine = blocksPerLine << 3;
-    var R = new Int32Array(64), r = new Uint8Array(64);
-
-    // A port of poppler's IDCT method which in turn is taken from:
-    //   Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,
-    //   "Practical Fast 1-D DCT Algorithms with 11 Multiplications",
-    //   IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,
-    //   988-991.
-    function quantizeAndInverse(zz, dataOut, dataIn) {
-      var qt = component.quantizationTable;
-      var v0, v1, v2, v3, v4, v5, v6, v7, t;
-      var p = dataIn;
-      var i;
-
-      // dequant
-      for (i = 0; i < 64; i++)
-        p[i] = zz[i] * qt[i];
-
-      // inverse DCT on rows
-      for (i = 0; i < 8; ++i) {
-        var row = 8 * i;
-
-        // check for all-zero AC coefficients
-        if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 &&
-            p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 &&
-            p[7 + row] == 0) {
-          t = (dctSqrt2 * p[0 + row] + 512) >> 10;
-          p[0 + row] = t;
-          p[1 + row] = t;
-          p[2 + row] = t;
-          p[3 + row] = t;
-          p[4 + row] = t;
-          p[5 + row] = t;
-          p[6 + row] = t;
-          p[7 + row] = t;
-          continue;
-        }
-
-        // stage 4
-        v0 = (dctSqrt2 * p[0 + row] + 128) >> 8;
-        v1 = (dctSqrt2 * p[4 + row] + 128) >> 8;
-        v2 = p[2 + row];
-        v3 = p[6 + row];
-        v4 = (dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128) >> 8;
-        v7 = (dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128) >> 8;
-        v5 = p[3 + row] << 4;
-        v6 = p[5 + row] << 4;
-
-        // stage 3
-        t = (v0 - v1+ 1) >> 1;
-        v0 = (v0 + v1 + 1) >> 1;
-        v1 = t;
-        t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;
-        v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;
-        v3 = t;
-        t = (v4 - v6 + 1) >> 1;
-        v4 = (v4 + v6 + 1) >> 1;
-        v6 = t;
-        t = (v7 + v5 + 1) >> 1;
-        v5 = (v7 - v5 + 1) >> 1;
-        v7 = t;
-
-        // stage 2
-        t = (v0 - v3 + 1) >> 1;
-        v0 = (v0 + v3 + 1) >> 1;
-        v3 = t;
-        t = (v1 - v2 + 1) >> 1;
-        v1 = (v1 + v2 + 1) >> 1;
-        v2 = t;
-        t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;
-        v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;
-        v7 = t;
-        t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;
-        v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;
-        v6 = t;
-
-        // stage 1
-        p[0 + row] = v0 + v7;
-        p[7 + row] = v0 - v7;
-        p[1 + row] = v1 + v6;
-        p[6 + row] = v1 - v6;
-        p[2 + row] = v2 + v5;
-        p[5 + row] = v2 - v5;
-        p[3 + row] = v3 + v4;
-        p[4 + row] = v3 - v4;
-      }
-
-      // inverse DCT on columns
-      for (i = 0; i < 8; ++i) {
-        var col = i;
-
-        // check for all-zero AC coefficients
-        if (p[1*8 + col] == 0 && p[2*8 + col] == 0 && p[3*8 + col] == 0 &&
-            p[4*8 + col] == 0 && p[5*8 + col] == 0 && p[6*8 + col] == 0 &&
-            p[7*8 + col] == 0) {
-          t = (dctSqrt2 * dataIn[i+0] + 8192) >> 14;
-          p[0*8 + col] = t;
-          p[1*8 + col] = t;
-          p[2*8 + col] = t;
-          p[3*8 + col] = t;
-          p[4*8 + col] = t;
-          p[5*8 + col] = t;
-          p[6*8 + col] = t;
-          p[7*8 + col] = t;
-          continue;
-        }
-
-        // stage 4
-        v0 = (dctSqrt2 * p[0*8 + col] + 2048) >> 12;
-        v1 = (dctSqrt2 * p[4*8 + col] + 2048) >> 12;
-        v2 = p[2*8 + col];
-        v3 = p[6*8 + col];
-        v4 = (dctSqrt1d2 * (p[1*8 + col] - p[7*8 + col]) + 2048) >> 12;
-        v7 = (dctSqrt1d2 * (p[1*8 + col] + p[7*8 + col]) + 2048) >> 12;
-        v5 = p[3*8 + col];
-        v6 = p[5*8 + col];
-
-        // stage 3
-        t = (v0 - v1 + 1) >> 1;
-        v0 = (v0 + v1 + 1) >> 1;
-        v1 = t;
-        t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;
-        v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;
-        v3 = t;
-        t = (v4 - v6 + 1) >> 1;
-        v4 = (v4 + v6 + 1) >> 1;
-        v6 = t;
-        t = (v7 + v5 + 1) >> 1;
-        v5 = (v7 - v5 + 1) >> 1;
-        v7 = t;
-
-        // stage 2
-        t = (v0 - v3 + 1) >> 1;
-        v0 = (v0 + v3 + 1) >> 1;
-        v3 = t;
-        t = (v1 - v2 + 1) >> 1;
-        v1 = (v1 + v2 + 1) >> 1;
-        v2 = t;
-        t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;
-        v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;
-        v7 = t;
-        t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;
-        v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;
-        v6 = t;
-
-        // stage 1
-        p[0*8 + col] = v0 + v7;
-        p[7*8 + col] = v0 - v7;
-        p[1*8 + col] = v1 + v6;
-        p[6*8 + col] = v1 - v6;
-        p[2*8 + col] = v2 + v5;
-        p[5*8 + col] = v2 - v5;
-        p[3*8 + col] = v3 + v4;
-        p[4*8 + col] = v3 - v4;
-      }
-
-      // convert to 8-bit integers
-      for (i = 0; i < 64; ++i) {
-        var sample = 128 + ((p[i] + 8) >> 4);
-        dataOut[i] = sample < 0 ? 0 : sample > 0xFF ? 0xFF : sample;
-      }
-    }
-
-    var i, j;
-    for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {
-      var scanLine = blockRow << 3;
-      for (i = 0; i < 8; i++)
-        lines.push(new Uint8Array(samplesPerLine));
-      for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {
-        quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);
-
-        var offset = 0, sample = blockCol << 3;
-        for (j = 0; j < 8; j++) {
-          var line = lines[scanLine + j];
-          for (i = 0; i < 8; i++)
-            line[sample + i] = r[offset++];
-        }
-      }
-    }
-    return lines;
-  }
-
-  constructor.prototype = {
-    load: function load(path) {
-      var xhr = new PdfJS_window.XMLHttpRequest();
-      xhr.open("GET", path, true);
-      xhr.responseType = "arraybuffer";
-      xhr.onload = (function() {
-        // TODO catch parse error
-        var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);
-        this.parse(data);
-        if (this.onload)
-          this.onload();
-      }).bind(this);
-      xhr.send(null);
-    },
-    parse: function parse(data) {
-      var offset = 0, length = data.length;
-      function readUint16() {
-        var value = (data[offset] << 8) | data[offset + 1];
-        offset += 2;
-        return value;
-      }
-      function readDataBlock() {
-        var length = readUint16();
-        var array = data.subarray(offset, offset + length - 2);
-        offset += array.length;
-        return array;
-      }
-      function prepareComponents(frame) {
-        var maxH = 0, maxV = 0;
-        var component, componentId;
-        for (componentId in frame.components) {
-          if (frame.components.hasOwnProperty(componentId)) {
-            component = frame.components[componentId];
-            if (maxH < component.h) maxH = component.h;
-            if (maxV < component.v) maxV = component.v;
-          }
-        }
-        var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / maxH);
-        var mcusPerColumn = Math.ceil(frame.scanLines / 8 / maxV);
-        for (componentId in frame.components) {
-          if (frame.components.hasOwnProperty(componentId)) {
-            component = frame.components[componentId];
-            var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / maxH);
-            var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines  / 8) * component.v / maxV);
-            var blocksPerLineForMcu = mcusPerLine * component.h;
-            var blocksPerColumnForMcu = mcusPerColumn * component.v;
-            var blocks = [];
-            for (var i = 0; i < blocksPerColumnForMcu; i++) {
-              var row = [];
-              for (var j = 0; j < blocksPerLineForMcu; j++)
-                row.push(new Int32Array(64));
-              blocks.push(row);
-            }
-            component.blocksPerLine = blocksPerLine;
-            component.blocksPerColumn = blocksPerColumn;
-            component.blocks = blocks;
-          }
-        }
-        frame.maxH = maxH;
-        frame.maxV = maxV;
-        frame.mcusPerLine = mcusPerLine;
-        frame.mcusPerColumn = mcusPerColumn;
-      }
-      var jfif = null;
-      var adobe = null;
-      var pixels = null;
-      var frame, resetInterval;
-      var quantizationTables = [], frames = [];
-      var huffmanTablesAC = [], huffmanTablesDC = [];
-      var fileMarker = readUint16();
-      if (fileMarker != 0xFFD8) { // SOI (Start of Image)
-        throw "SOI not found";
-      }
-
-      fileMarker = readUint16();
-      while (fileMarker != 0xFFD9) { // EOI (End of image)
-        var i, j, l;
-        switch(fileMarker) {
-          case 0xFFE0: // APP0 (Application Specific)
-          case 0xFFE1: // APP1
-          case 0xFFE2: // APP2
-          case 0xFFE3: // APP3
-          case 0xFFE4: // APP4
-          case 0xFFE5: // APP5
-          case 0xFFE6: // APP6
-          case 0xFFE7: // APP7
-          case 0xFFE8: // APP8
-          case 0xFFE9: // APP9
-          case 0xFFEA: // APP10
-          case 0xFFEB: // APP11
-          case 0xFFEC: // APP12
-          case 0xFFED: // APP13
-          case 0xFFEE: // APP14
-          case 0xFFEF: // APP15
-          case 0xFFFE: // COM (Comment)
-            var appData = readDataBlock();
-
-            if (fileMarker === 0xFFE0) {
-              if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49 &&
-                appData[3] === 0x46 && appData[4] === 0) { // 'JFIF\x00'
-                jfif = {
-                  version: { major: appData[5], minor: appData[6] },
-                  densityUnits: appData[7],
-                  xDensity: (appData[8] << 8) | appData[9],
-                  yDensity: (appData[10] << 8) | appData[11],
-                  thumbWidth: appData[12],
-                  thumbHeight: appData[13],
-                  thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])
-                };
-              }
-            }
-            // TODO APP1 - Exif
-            if (fileMarker === 0xFFEE) {
-              if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F &&
-                appData[3] === 0x62 && appData[4] === 0x65 && appData[5] === 0) { // 'Adobe\x00'
-                adobe = {
-                  version: appData[6],
-                  flags0: (appData[7] << 8) | appData[8],
-                  flags1: (appData[9] << 8) | appData[10],
-                  transformCode: appData[11]
-                };
-              }
-            }
-            break;
-
-          case 0xFFDB: // DQT (Define Quantization Tables)
-            var quantizationTableCount = Math.floor((readUint16() - 2) / 65);
-            for (i = 0; i < quantizationTableCount; i++) {
-              var quantizationTableSpec = data[offset++];
-              var tableData = new Int32Array(64);
-              if ((quantizationTableSpec >> 4) === 0) { // 8 bit values
-                for (j = 0; j < 64; j++) {
-                  var z = dctZigZag[j];
-                  tableData[z] = data[offset++];
-                }
-              } else if ((quantizationTableSpec >> 4) === 1) { //16 bit
-                for (j = 0; j < 64; j++) {
-                  var z = dctZigZag[j];
-                  tableData[z] = readUint16();
-                }
-              } else
-                throw "DQT: invalid table spec";
-              quantizationTables[quantizationTableSpec & 15] = tableData;
-            }
-            break;
-
-          case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT)
-          case 0xFFC2: // SOF2 (Start of Frame, Progressive DCT)
-            readUint16(); // skip data length
-            frame = {};
-            frame.progressive = (fileMarker === 0xFFC2);
-            frame.precision = data[offset++];
-            frame.scanLines = readUint16();
-            frame.samplesPerLine = readUint16();
-            frame.components = {};
-            frame.componentsOrder = [];
-            var componentsCount = data[offset++], componentId;
-            var maxH = 0, maxV = 0;
-            for (i = 0; i < componentsCount; i++) {
-              componentId = data[offset];
-              var h = data[offset + 1] >> 4;
-              var v = data[offset + 1] & 15;
-              var qId = data[offset + 2];
-              frame.componentsOrder.push(componentId);
-              frame.components[componentId] = {
-                h: h,
-                v: v,
-                quantizationTable: quantizationTables[qId]
-              };
-              offset += 3;
-            }
-            prepareComponents(frame);
-            frames.push(frame);
-            break;
-
-          case 0xFFC4: // DHT (Define Huffman Tables)
-            var huffmanLength = readUint16();
-            for (i = 2; i < huffmanLength;) {
-              var huffmanTableSpec = data[offset++];
-              var codeLengths = new Uint8Array(16);
-              var codeLengthSum = 0;
-              for (j = 0; j < 16; j++, offset++)
-                codeLengthSum += (codeLengths[j] = data[offset]);
-              var huffmanValues = new Uint8Array(codeLengthSum);
-              for (j = 0; j < codeLengthSum; j++, offset++)
-                huffmanValues[j] = data[offset];
-              i += 17 + codeLengthSum;
-
-              ((huffmanTableSpec >> 4) === 0 ? 
-                huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] =
-                buildHuffmanTable(codeLengths, huffmanValues);
-            }
-            break;
-
-          case 0xFFDD: // DRI (Define Restart Interval)
-            readUint16(); // skip data length
-            resetInterval = readUint16();
-            break;
-
-          case 0xFFDA: // SOS (Start of Scan)
-            var scanLength = readUint16();
-            var selectorsCount = data[offset++];
-            var components = [], component;
-            for (i = 0; i < selectorsCount; i++) {
-              component = frame.components[data[offset++]];
-              var tableSpec = data[offset++];
-              component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];
-              component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];
-              components.push(component);
-            }
-            var spectralStart = data[offset++];
-            var spectralEnd = data[offset++];
-            var successiveApproximation = data[offset++];
-            var processed = decodeScan(data, offset,
-              frame, components, resetInterval,
-              spectralStart, spectralEnd,
-              successiveApproximation >> 4, successiveApproximation & 15);
-            offset += processed;
-            break;
-          default:
-            throw "unknown JPEG marker " + fileMarker.toString(16);
-        }
-        fileMarker = readUint16();
-      }
-      if (frames.length != 1)
-        throw "only single frame JPEGs supported";
-
-      this.width = frame.samplesPerLine;
-      this.height = frame.scanLines;
-      this.jfif = jfif;
-      this.adobe = adobe;
-      this.components = [];
-      for (var i = 0; i < frame.componentsOrder.length; i++) {
-        var component = frame.components[frame.componentsOrder[i]];
-        this.components.push({
-          lines: buildComponentData(frame, component),
-          scaleX: component.h / frame.maxH,
-          scaleY: component.v / frame.maxV
-        });
-      }
-    },
-    getData: function getData(width, height) {
-      function clampTo8bit(a) {
-        return a < 0 ? 0 : a > 255 ? 255 : a;
-      }
-      var scaleX = this.width / width, scaleY = this.height / height;
-
-      var component1, component2, component3, component4;
-      var component1Line, component2Line, component3Line, component4Line;
-      var x, y;
-      var offset = 0;
-      var Y, Cb, Cr, K, C, M, Ye, R, G, B;
-      var colorTransform;
-      var dataLength = width * height * this.components.length;
-      var data = new Uint8Array(dataLength);
-      switch (this.components.length) {
-        case 1:
-          component1 = this.components[0];
-          for (y = 0; y < height; y++) {
-            component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];
-            for (x = 0; x < width; x++) {
-              Y = component1Line[0 | (x * component1.scaleX * scaleX)];
-
-              data[offset++] = Y;
-            }
-          }
-          break;
-        case 3:
-          // The default transform for three components is true
-          colorTransform = true;
-          // The adobe transform marker overrides any previous setting
-          if (this.adobe && this.adobe.transformCode)
-            colorTransform = true;
-          else if (typeof this.colorTransform !== 'undefined')
-            colorTransform = !!this.colorTransform;
-
-          component1 = this.components[0];
-          component2 = this.components[1];
-          component3 = this.components[2];
-          for (y = 0; y < height; y++) {
-            component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];
-            component2Line = component2.lines[0 | (y * component2.scaleY * scaleY)];
-            component3Line = component3.lines[0 | (y * component3.scaleY * scaleY)];
-            for (x = 0; x < width; x++) {
-              if (!colorTransform) {
-                R = component1Line[0 | (x * component1.scaleX * scaleX)];
-                G = component2Line[0 | (x * component2.scaleX * scaleX)];
-                B = component3Line[0 | (x * component3.scaleX * scaleX)];
-              } else {
-                Y = component1Line[0 | (x * component1.scaleX * scaleX)];
-                Cb = component2Line[0 | (x * component2.scaleX * scaleX)];
-                Cr = component3Line[0 | (x * component3.scaleX * scaleX)];
-
-                R = clampTo8bit(Y + 1.402 * (Cr - 128));
-                G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));
-                B = clampTo8bit(Y + 1.772 * (Cb - 128));
-              }
-
-              data[offset++] = R;
-              data[offset++] = G;
-              data[offset++] = B;
-            }
-          }
-          break;
-        case 4:
-          if (!this.adobe)
-            throw 'Unsupported color mode (4 components)';
-          // The default transform for four components is false
-          colorTransform = false;
-          // The adobe transform marker overrides any previous setting
-          if (this.adobe && this.adobe.transformCode)
-            colorTransform = true;
-          else if (typeof this.colorTransform !== 'undefined')
-            colorTransform = !!this.colorTransform;
-
-          component1 = this.components[0];
-          component2 = this.components[1];
-          component3 = this.components[2];
-          component4 = this.components[3];
-          for (y = 0; y < height; y++) {
-            component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];
-            component2Line = component2.lines[0 | (y * component2.scaleY * scaleY)];
-            component3Line = component3.lines[0 | (y * component3.scaleY * scaleY)];
-            component4Line = component4.lines[0 | (y * component4.scaleY * scaleY)];
-            for (x = 0; x < width; x++) {
-              if (!colorTransform) {
-                C = component1Line[0 | (x * component1.scaleX * scaleX)];
-                M = component2Line[0 | (x * component2.scaleX * scaleX)];
-                Ye = component3Line[0 | (x * component3.scaleX * scaleX)];
-                K = component4Line[0 | (x * component4.scaleX * scaleX)];
-              } else {
-                Y = component1Line[0 | (x * component1.scaleX * scaleX)];
-                Cb = component2Line[0 | (x * component2.scaleX * scaleX)];
-                Cr = component3Line[0 | (x * component3.scaleX * scaleX)];
-                K = component4Line[0 | (x * component4.scaleX * scaleX)];
-
-                C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));
-                M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));
-                Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));
-              }
-              data[offset++] = C;
-              data[offset++] = M;
-              data[offset++] = Ye;
-              data[offset++] = K;
-            }
-          }
-          break;
-        default:
-          throw 'Unsupported color mode';
-      }
-      return data;
-    },
-    copyToImageData: function copyToImageData(imageData) {
-      var width = imageData.width, height = imageData.height;
-      var imageDataArray = imageData.data;
-      var data = this.getData(width, height);
-      var i = 0, j = 0, x, y;
-      var Y, K, C, M, R, G, B;
-      switch (this.components.length) {
-        case 1:
-          for (y = 0; y < height; y++) {
-            for (x = 0; x < width; x++) {
-              Y = data[i++];
-
-              imageDataArray[j++] = Y;
-              imageDataArray[j++] = Y;
-              imageDataArray[j++] = Y;
-              imageDataArray[j++] = 255;
-            }
-          }
-          break;
-        case 3:
-          for (y = 0; y < height; y++) {
-            for (x = 0; x < width; x++) {
-              R = data[i++];
-              G = data[i++];
-              B = data[i++];
-
-              imageDataArray[j++] = R;
-              imageDataArray[j++] = G;
-              imageDataArray[j++] = B;
-              imageDataArray[j++] = 255;
-            }
-          }
-          break;
-        case 4:
-          for (y = 0; y < height; y++) {
-            for (x = 0; x < width; x++) {
-              C = data[i++];
-              M = data[i++];
-              Y = data[i++];
-              K = data[i++];
-
-              R = 255 - clampTo8bit(C * (1 - K / 255) + K);
-              G = 255 - clampTo8bit(M * (1 - K / 255) + K);
-              B = 255 - clampTo8bit(Y * (1 - K / 255) + K);
-
-              imageDataArray[j++] = R;
-              imageDataArray[j++] = G;
-              imageDataArray[j++] = B;
-              imageDataArray[j++] = 255;
-            }
-          }
-          break;
-        default:
-          throw 'Unsupported color mode';
-      }
-    }
-  };
-
-  return constructor;
-})();
-/* -*- 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 JpxImage = (function JpxImageClosure() {
-  // Table E.1
-  var SubbandsGainLog2 = {
-    'LL': 0,
-    'LH': 1,
-    'HL': 1,
-    'HH': 2
-  };
-  function JpxImage() {
-    this.failOnCorruptedImage = false;
-  }
-  JpxImage.prototype = {
-    load: function JpxImage_load(url) {
-      var xhr = new PdfJS_window.XMLHttpRequest();
-      xhr.open('GET', url, true);
-      xhr.responseType = 'arraybuffer';
-      xhr.onload = (function() {
-        // TODO catch parse error
-        var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);
-        this.parse(data);
-        if (this.onload)
-          this.onload();
-      }).bind(this);
-      xhr.send(null);
-    },
-    parse: function JpxImage_parse(data) {
-      function ReadUint(data, offset, bytes) {
-        var n = 0;
-        for (var i = 0; i < bytes; i++)
-          n = n * 256 + (data[offset + i] & 0xFF);
-        return n;
-      }
-      var position = 0, length = data.length;
-      while (position < length) {
-        var headerSize = 8;
-        var lbox = ReadUint(data, position, 4);
-        var tbox = ReadUint(data, position + 4, 4);
-        position += headerSize;
-        if (lbox == 1) {
-          lbox = ReadUint(data, position, 8);
-          position += 8;
-          headerSize += 8;
-        }
-        if (lbox == 0)
-          lbox = length - position + headerSize;
-        if (lbox < headerSize)
-          error('JPX error: Invalid box field size');
-        var dataLength = lbox - headerSize;
-        var jumpDataLength = true;
-        switch (tbox) {
-          case 0x6A501A1A: // 'jP\032\032'
-            // TODO
-            break;
-          case 0x6A703268: // 'jp2h'
-            jumpDataLength = false; // parsing child boxes
-            break;
-          case 0x636F6C72: // 'colr'
-            // TODO
-            break;
-          case 0x6A703263: // 'jp2c'
-            this.parseCodestream(data, position, position + dataLength);
-            break;
-        }
-        if (jumpDataLength)
-          position += dataLength;
-      }
-    },
-    parseCodestream: function JpxImage_parseCodestream(data, start, end) {
-      var context = {};
-      try {
-        var position = start;
-        while (position < end) {
-          var code = readUint16(data, position);
-          position += 2;
-
-          var length = 0, j;
-          switch (code) {
-            case 0xFF4F: // Start of codestream (SOC)
-              context.mainHeader = true;
-              break;
-            case 0xFFD9: // End of codestream (EOC)
-              break;
-            case 0xFF51: // Image and tile size (SIZ)
-              length = readUint16(data, position);
-              var siz = {};
-              siz.Xsiz = readUint32(data, position + 4);
-              siz.Ysiz = readUint32(data, position + 8);
-              siz.XOsiz = readUint32(data, position + 12);
-              siz.YOsiz = readUint32(data, position + 16);
-              siz.XTsiz = readUint32(data, position + 20);
-              siz.YTsiz = readUint32(data, position + 24);
-              siz.XTOsiz = readUint32(data, position + 28);
-              siz.YTOsiz = readUint32(data, position + 32);
-              var componentsCount = readUint16(data, position + 36);
-              siz.Csiz = componentsCount;
-              var components = [];
-              j = position + 38;
-              for (var i = 0; i < componentsCount; i++) {
-                var component = {
-                  precision: (data[j] & 0x7F) + 1,
-                  isSigned: !!(data[j] & 0x80),
-                  XRsiz: data[j + 1],
-                  YRsiz: data[j + 1]
-                };
-                calculateComponentDimensions(component, siz);
-                components.push(component);
-              }
-              context.SIZ = siz;
-              context.components = components;
-              calculateTileGrids(context, components);
-              context.QCC = [];
-              context.COC = [];
-              break;
-            case 0xFF5C: // Quantization default (QCD)
-              length = readUint16(data, position);
-              var qcd = {};
-              j = position + 2;
-              var sqcd = data[j++];
-              var spqcdSize, scalarExpounded;
-              switch (sqcd & 0x1F) {
-                case 0:
-                  spqcdSize = 8;
-                  scalarExpounded = true;
-                  break;
-                case 1:
-                  spqcdSize = 16;
-                  scalarExpounded = false;
-                  break;
-                case 2:
-                  spqcdSize = 16;
-                  scalarExpounded = true;
-                  break;
-                default:
-                  throw 'Invalid SQcd value ' + sqcd;
-              }
-              qcd.noQuantization = spqcdSize == 8;
-              qcd.scalarExpounded = scalarExpounded;
-              qcd.guardBits = sqcd >> 5;
-              var spqcds = [];
-              while (j < length + position) {
-                var spqcd = {};
-                if (spqcdSize == 8) {
-                  spqcd.epsilon = data[j++] >> 3;
-                  spqcd.mu = 0;
-                } else {
-                  spqcd.epsilon = data[j] >> 3;
-                  spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];
-                  j += 2;
-                }
-                spqcds.push(spqcd);
-              }
-              qcd.SPqcds = spqcds;
-              if (context.mainHeader)
-                context.QCD = qcd;
-              else {
-                context.currentTile.QCD = qcd;
-                context.currentTile.QCC = [];
-              }
-              break;
-            case 0xFF5D: // Quantization component (QCC)
-              length = readUint16(data, position);
-              var qcc = {};
-              j = position + 2;
-              var cqcc;
-              if (context.SIZ.Csiz < 257)
-                cqcc = data[j++];
-              else {
-                cqcc = readUint16(data, j);
-                j += 2;
-              }
-              var sqcd = data[j++];
-              var spqcdSize, scalarExpounded;
-              switch (sqcd & 0x1F) {
-                case 0:
-                  spqcdSize = 8;
-                  scalarExpounded = true;
-                  break;
-                case 1:
-                  spqcdSize = 16;
-                  scalarExpounded = false;
-                  break;
-                case 2:
-                  spqcdSize = 16;
-                  scalarExpounded = true;
-                  break;
-                default:
-                  throw 'Invalid SQcd value ' + sqcd;
-              }
-              qcc.noQuantization = spqcdSize == 8;
-              qcc.scalarExpounded = scalarExpounded;
-              qcc.guardBits = sqcd >> 5;
-              var spqcds = [];
-              while (j < length + position) {
-                var spqcd = {};
-                if (spqcdSize == 8) {
-                  spqcd.epsilon = data[j++] >> 3;
-                  spqcd.mu = 0;
-                } else {
-                  spqcd.epsilon = data[j] >> 3;
-                  spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];
-                  j += 2;
-                }
-                spqcds.push(spqcd);
-              }
-              qcc.SPqcds = spqcds;
-              if (context.mainHeader)
-                context.QCC[cqcc] = qcc;
-              else
-                context.currentTile.QCC[cqcc] = qcc;
-              break;
-            case 0xFF52: // Coding style default (COD)
-              length = readUint16(data, position);
-              var cod = {};
-              j = position + 2;
-              var scod = data[j++];
-              cod.entropyCoderWithCustomPrecincts = !!(scod & 1);
-              cod.sopMarkerUsed = !!(scod & 2);
-              cod.ephMarkerUsed = !!(scod & 4);
-              var codingStyle = {};
-              cod.progressionOrder = data[j++];
-              cod.layersCount = readUint16(data, j);
-              j += 2;
-              cod.multipleComponentTransform = data[j++];
-
-              cod.decompositionLevelsCount = data[j++];
-              cod.xcb = (data[j++] & 0xF) + 2;
-              cod.ycb = (data[j++] & 0xF) + 2;
-              var blockStyle = data[j++];
-              cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);
-              cod.resetContextProbabilities = !!(blockStyle & 2);
-              cod.terminationOnEachCodingPass = !!(blockStyle & 4);
-              cod.verticalyStripe = !!(blockStyle & 8);
-              cod.predictableTermination = !!(blockStyle & 16);
-              cod.segmentationSymbolUsed = !!(blockStyle & 32);
-              cod.transformation = data[j++];
-              if (cod.entropyCoderWithCustomPrecincts) {
-                var precinctsSizes = {};
-                while (j < length + position) {
-                  var precinctsSize = data[j];
-                  precinctsSizes.push({
-                    PPx: precinctsSize & 0xF,
-                    PPy: precinctsSize >> 4
-                  });
-                }
-                cod.precinctsSizes = precinctsSizes;
-              }
-
-              if (cod.sopMarkerUsed || cod.ephMarkerUsed ||
-                  cod.selectiveArithmeticCodingBypass ||
-                  cod.resetContextProbabilities ||
-                  cod.terminationOnEachCodingPass ||
-                  cod.verticalyStripe || cod.predictableTermination ||
-                  cod.segmentationSymbolUsed)
-                throw 'Unsupported COD options: ' + uneval(cod);
-
-              if (context.mainHeader)
-                context.COD = cod;
-              else {
-                context.currentTile.COD = cod;
-                context.currentTile.COC = [];
-              }
-              break;
-            case 0xFF90: // Start of tile-part (SOT)
-              length = readUint16(data, position);
-              var tile = {};
-              tile.index = readUint16(data, position + 2);
-              tile.length = readUint32(data, position + 4);
-              tile.dataEnd = tile.length + position - 2;
-              tile.partIndex = data[position + 8];
-              tile.partsCount = data[position + 9];
-
-              context.mainHeader = false;
-              if (tile.partIndex == 0) {
-                // reset component specific settings
-                tile.COD = context.COD;
-                tile.COC = context.COC.slice(0); // clone of the global COC
-                tile.QCD = context.QCD;
-                tile.QCC = context.QCC.slice(0); // clone of the global COC
-              }
-              context.currentTile = tile;
-              break;
-            case 0xFF93: // Start of data (SOD)
-              var tile = context.currentTile;
-              if (tile.partIndex == 0) {
-                initializeTile(context, tile.index);
-                buildPackets(context);
-              }
-
-              // moving to the end of the data
-              length = tile.dataEnd - position;
-
-              parseTilePackets(context, data, position, length);
-              break;
-            case 0xFF64: // Comment (COM)
-              length = readUint16(data, position);
-              // skipping content
-              break;
-            default:
-              throw 'Unknown codestream code: ' + code.toString(16);
-          }
-          position += length;
-        }
-      } catch (e) {
-        if (this.failOnCorruptedImage)
-          error('JPX error: ' + e);
-        else
-          warn('JPX error: ' + e + '. Trying to recover');
-      }
-      this.tiles = transformComponents(context);
-      this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;
-      this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;
-      this.componentsCount = context.SIZ.Csiz;
-    }
-  };
-  function readUint32(data, offset) {
-    return (data[offset] << 24) | (data[offset + 1] << 16) |
-      (data[offset + 2] << 8) | data[offset + 3];
-  }
-  function readUint16(data, offset) {
-    return (data[offset] << 8) | data[offset + 1];
-  }
-  function log2(x) {
-    var n = 1, i = 0;
-    while (x > n) {
-      n <<= 1;
-      i++;
-    }
-    return i;
-  }
-  function calculateComponentDimensions(component, siz) {
-    // Section B.2 Component mapping
-    component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);
-    component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);
-    component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);
-    component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);
-    component.width = component.x1 - component.x0;
-    component.height = component.y1 - component.y0;
-  }
-  function calculateTileGrids(context, components) {
-    var siz = context.SIZ;
-    // Section B.3 Division into tile and tile-components
-    var tiles = [];
-    var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);
-    var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);
-    for (var q = 0; q < numYtiles; q++) {
-      for (var p = 0; p < numXtiles; p++) {
-        var tile = {};
-        tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);
-        tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);
-        tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);
-        tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);
-        tile.width = tile.tx1 - tile.tx0;
-        tile.height = tile.ty1 - tile.ty0;
-        tile.components = [];
-        tiles.push(tile);
-      }
-    }
-    context.tiles = tiles;
-
-    var componentsCount = siz.Csiz;
-    for (var i = 0, ii = componentsCount; i < ii; i++) {
-      var component = components[i];
-      var tileComponents = [];
-      for (var j = 0, jj = tiles.length; j < jj; j++) {
-        var tileComponent = {}, tile = tiles[j];
-        tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);
-        tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);
-        tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);
-        tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);
-        tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;
-        tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;
-        tile.components[i] = tileComponent;
-      }
-    }
-  }
-  function getBlocksDimensions(context, component, r) {
-    var codOrCoc = component.codingStyleParameters;
-    var result = {};
-    if (!codOrCoc.entropyCoderWithCustomPrecincts) {
-      result.PPx = 15;
-      result.PPy = 15;
-    } else {
-      result.PPx = codOrCoc.precinctsSizes[r].PPx;
-      result.PPy = codOrCoc.precinctsSizes[r].PPy;
-    }
-    // calculate codeblock size as described in section B.7
-    result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) :
-      Math.min(codOrCoc.xcb, result.PPx);
-    result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) :
-      Math.min(codOrCoc.ycb, result.PPy);
-    return result;
-  }
-  function buildPrecincts(context, resolution, dimensions) {
-    // Section B.6 Division resolution to precincts
-    var precinctWidth = 1 << dimensions.PPx;
-    var precinctHeight = 1 << dimensions.PPy;
-    var numprecinctswide = resolution.trx1 > resolution.trx0 ?
-      Math.ceil(resolution.trx1 / precinctWidth) -
-      Math.floor(resolution.trx0 / precinctWidth) : 0;
-    var numprecinctshigh = resolution.try1 > resolution.try0 ?
-      Math.ceil(resolution.try1 / precinctHeight) -
-      Math.floor(resolution.try0 / precinctHeight) : 0;
-    var numprecincts = numprecinctswide * numprecinctshigh;
-    var precinctXOffset = Math.floor(resolution.trx0 / precinctWidth) *
-      precinctWidth;
-    var precinctYOffset = Math.floor(resolution.try0 / precinctHeight) *
-      precinctHeight;
-    resolution.precinctParameters = {
-      precinctXOffset: precinctXOffset,
-      precinctYOffset: precinctYOffset,
-      precinctWidth: precinctWidth,
-      precinctHeight: precinctHeight,
-      numprecinctswide: numprecinctswide,
-      numprecinctshigh: numprecinctshigh,
-      numprecincts: numprecincts
-    };
-  }
-  function buildCodeblocks(context, subband, dimensions) {
-    // Section B.7 Division sub-band into code-blocks
-    var xcb_ = dimensions.xcb_;
-    var ycb_ = dimensions.ycb_;
-    var codeblockWidth = 1 << xcb_;
-    var codeblockHeight = 1 << ycb_;
-    var cbx0 = Math.floor(subband.tbx0 / codeblockWidth);
-    var cby0 = Math.floor(subband.tby0 / codeblockHeight);
-    var cbx1 = Math.ceil(subband.tbx1 / codeblockWidth);
-    var cby1 = Math.ceil(subband.tby1 / codeblockHeight);
-    var precinctParameters = subband.resolution.precinctParameters;
-    var codeblocks = [];
-    var precincts = [];
-    for (var j = cby0; j < cby1; j++) {
-      for (var i = cbx0; i < cbx1; i++) {
-        var codeblock = {
-          cbx: i,
-          cby: j,
-          tbx0: codeblockWidth * i,
-          tby0: codeblockHeight * j,
-          tbx1: codeblockWidth * (i + 1),
-          tby1: codeblockHeight * (j + 1)
-        };
-        // calculate precinct number
-        var pi = Math.floor((codeblock.tbx0 -
-          precinctParameters.precinctXOffset) /
-          precinctParameters.precinctWidth);
-        var pj = Math.floor((codeblock.tby0 -
-          precinctParameters.precinctYOffset) /
-          precinctParameters.precinctHeight);
-        var precinctNumber = pj +
-          pi * precinctParameters.numprecinctswide;
-        codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);
-        codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);
-        codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);
-        codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);
-        codeblock.precinctNumber = precinctNumber;
-        codeblock.subbandType = subband.type;
-        var coefficientsLength = (codeblock.tbx1_ - codeblock.tbx0_) *
-          (codeblock.tby1_ - codeblock.tby0_);
-        codeblock.Lblock = 3;
-        codeblocks.push(codeblock);
-        // building precinct for the sub-band
-        var precinct;
-        if (precinctNumber in precincts) {
-          precinct = precincts[precinctNumber];
-          precinct.cbxMin = Math.min(precinct.cbxMin, i);
-          precinct.cbyMin = Math.min(precinct.cbyMin, j);
-          precinct.cbxMax = Math.max(precinct.cbxMax, i);
-          precinct.cbyMax = Math.max(precinct.cbyMax, j);
-        } else {
-          precincts[precinctNumber] = precinct = {
-            cbxMin: i,
-            cbyMin: j,
-            cbxMax: i,
-            cbyMax: j
-          };
-        }
-        codeblock.precinct = precinct;
-      }
-    }
-    subband.codeblockParameters = {
-      codeblockWidth: xcb_,
-      codeblockHeight: ycb_,
-      numcodeblockwide: cbx1 - cbx0 + 1,
-      numcodeblockhigh: cby1 - cby1 + 1
-    };
-    subband.codeblocks = codeblocks;
-    for (var i = 0, ii = codeblocks.length; i < ii; i++) {
-      var codeblock = codeblocks[i];
-      var precinctNumber = codeblock.precinctNumber;
-    }
-    subband.precincts = precincts;
-  }
-  function createPacket(resolution, precinctNumber, layerNumber) {
-    var precinctCodeblocks = [];
-    // Section B.10.8 Order of info in packet
-    var subbands = resolution.subbands;
-    // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence
-    for (var i = 0, ii = subbands.length; i < ii; i++) {
-      var subband = subbands[i];
-      var codeblocks = subband.codeblocks;
-      for (var j = 0, jj = codeblocks.length; j < jj; j++) {
-        var codeblock = codeblocks[j];
-        if (codeblock.precinctNumber != precinctNumber)
-          continue;
-        precinctCodeblocks.push(codeblock);
-      }
-    }
-    return {
-      layerNumber: layerNumber,
-      codeblocks: precinctCodeblocks
-    };
-  }
-  function LayerResolutionComponentPositionIterator(context) {
-    var siz = context.SIZ;
-    var tileIndex = context.currentTile.index;
-    var tile = context.tiles[tileIndex];
-    var layersCount = tile.codingStyleDefaultParameters.layersCount;
-    var componentsCount = siz.Csiz;
-    var maxDecompositionLevelsCount = 0;
-    for (var q = 0; q < componentsCount; q++) {
-      maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount,
-        tile.components[q].codingStyleParameters.decompositionLevelsCount);
-    }
-
-    var l = 0, r = 0, i = 0, k = 0;
-
-    this.nextPacket = function JpxImage_nextPacket() {
-      // Section B.12.1.1 Layer-resolution-component-position
-      for (; l < layersCount; l++) {
-        for (; r <= maxDecompositionLevelsCount; r++) {
-          for (; i < componentsCount; i++) {
-            var component = tile.components[i];
-            if (r > component.codingStyleParameters.decompositionLevelsCount)
-              continue;
-
-            var resolution = component.resolutions[r];
-            var numprecincts = resolution.precinctParameters.numprecincts;
-            for (; k < numprecincts;) {
-              var packet = createPacket(resolution, k, l);
-              k++;
-              return packet;
-            }
-            k = 0;
-          }
-          i = 0;
-        }
-        r = 0;
-      }
-      throw 'Out of packets';
-    };
-  }
-  function ResolutionLayerComponentPositionIterator(context) {
-    var siz = context.SIZ;
-    var tileIndex = context.currentTile.index;
-    var tile = context.tiles[tileIndex];
-    var layersCount = tile.codingStyleDefaultParameters.layersCount;
-    var componentsCount = siz.Csiz;
-    var maxDecompositionLevelsCount = 0;
-    for (var q = 0; q < componentsCount; q++) {
-      maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount,
-        tile.components[q].codingStyleParameters.decompositionLevelsCount);
-    }
-
-    var r = 0, l = 0, i = 0, k = 0;
-
-    this.nextPacket = function JpxImage_nextPacket() {
-      // Section B.12.1.2 Resolution-layer-component-position
-      for (; r <= maxDecompositionLevelsCount; r++) {
-        for (; l < layersCount; l++) {
-          for (; i < componentsCount; i++) {
-            var component = tile.components[i];
-            if (r > component.codingStyleParameters.decompositionLevelsCount)
-              continue;
-
-            var resolution = component.resolutions[r];
-            var numprecincts = resolution.precinctParameters.numprecincts;
-            for (; k < numprecincts;) {
-              var packet = createPacket(resolution, k, l);
-              k++;
-              return packet;
-            }
-            k = 0;
-          }
-          i = 0;
-        }
-        l = 0;
-      }
-      throw 'Out of packets';
-    };
-  }
-  function buildPackets(context) {
-    var siz = context.SIZ;
-    var tileIndex = context.currentTile.index;
-    var tile = context.tiles[tileIndex];
-    var componentsCount = siz.Csiz;
-    // Creating resolutions and sub-bands for each component
-    for (var c = 0; c < componentsCount; c++) {
-      var component = tile.components[c];
-      var decompositionLevelsCount =
-        component.codingStyleParameters.decompositionLevelsCount;
-      // Section B.5 Resolution levels and sub-bands
-      var resolutions = [];
-      var subbands = [];
-      for (var r = 0; r <= decompositionLevelsCount; r++) {
-        var blocksDimensions = getBlocksDimensions(context, component, r);
-        var resolution = {};
-        var scale = 1 << (decompositionLevelsCount - r);
-        resolution.trx0 = Math.ceil(component.tcx0 / scale);
-        resolution.try0 = Math.ceil(component.tcy0 / scale);
-        resolution.trx1 = Math.ceil(component.tcx1 / scale);
-        resolution.try1 = Math.ceil(component.tcy1 / scale);
-        buildPrecincts(context, resolution, blocksDimensions);
-        resolutions.push(resolution);
-
-        var subband;
-        if (r == 0) {
-          // one sub-band (LL) with last decomposition
-          subband = {};
-          subband.type = 'LL';
-          subband.tbx0 = Math.ceil(component.tcx0 / scale);
-          subband.tby0 = Math.ceil(component.tcy0 / scale);
-          subband.tbx1 = Math.ceil(component.tcx1 / scale);
-          subband.tby1 = Math.ceil(component.tcy1 / scale);
-          subband.resolution = resolution;
-          buildCodeblocks(context, subband, blocksDimensions);
-          subbands.push(subband);
-          resolution.subbands = [subband];
-        } else {
-          var bscale = 1 << (decompositionLevelsCount - r + 1);
-          var resolutionSubbands = [];
-          // three sub-bands (HL, LH and HH) with rest of decompositions
-          subband = {};
-          subband.type = 'HL';
-          subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);
-          subband.tby0 = Math.ceil(component.tcy0 / bscale);
-          subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);
-          subband.tby1 = Math.ceil(component.tcy1 / bscale);
-          subband.resolution = resolution;
-          buildCodeblocks(context, subband, blocksDimensions);
-          subbands.push(subband);
-          resolutionSubbands.push(subband);
-
-          subband = {};
-          subband.type = 'LH';
-          subband.tbx0 = Math.ceil(component.tcx0 / bscale);
-          subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);
-          subband.tbx1 = Math.ceil(component.tcx1 / bscale);
-          subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);
-          subband.resolution = resolution;
-          buildCodeblocks(context, subband, blocksDimensions);
-          subbands.push(subband);
-          resolutionSubbands.push(subband);
-
-          subband = {};
-          subband.type = 'HH';
-          subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);
-          subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);
-          subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);
-          subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);
-          subband.resolution = resolution;
-          buildCodeblocks(context, subband, blocksDimensions);
-          subbands.push(subband);
-          resolutionSubbands.push(subband);
-
-          resolution.subbands = resolutionSubbands;
-        }
-      }
-      component.resolutions = resolutions;
-      component.subbands = subbands;
-    }
-    // Generate the packets sequence
-    var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;
-    var packetsIterator;
-    switch (progressionOrder) {
-      case 0:
-        tile.packetsIterator =
-          new LayerResolutionComponentPositionIterator(context);
-        break;
-      case 1:
-        tile.packetsIterator =
-          new ResolutionLayerComponentPositionIterator(context);
-        break;
-      default:
-        throw 'Unsupported progression order ' + progressionOrder;
-    }
-  }
-  function parseTilePackets(context, data, offset, dataLength) {
-    var position = 0;
-    var buffer, bufferSize = 0, skipNextBit = false;
-    function readBits(count) {
-      while (bufferSize < count) {
-        var b = data[offset + position];
-        position++;
-        if (skipNextBit) {
-          buffer = (buffer << 7) | b;
-          bufferSize += 7;
-          skipNextBit = false;
-        } else {
-          buffer = (buffer << 8) | b;
-          bufferSize += 8;
-        }
-        if (b == 0xFF) {
-          skipNextBit = true;
-        }
-      }
-      bufferSize -= count;
-      return (buffer >>> bufferSize) & ((1 << count) - 1);
-    }
-    function alignToByte() {
-      bufferSize = 0;
-      if (skipNextBit) {
-        position++;
-        skipNextBit = false;
-      }
-    }
-    function readCodingpasses() {
-      var value = readBits(1);
-      if (value == 0)
-        return 1;
-      value = (value << 1) | readBits(1);
-      if (value == 0x02)
-        return 2;
-      value = (value << 2) | readBits(2);
-      if (value <= 0x0E)
-        return (value & 0x03) + 3;
-      value = (value << 5) | readBits(5);
-      if (value <= 0x1FE)
-        return (value & 0x1F) + 6;
-      value = (value << 7) | readBits(7);
-      return (value & 0x7F) + 37;
-    }
-    var tileIndex = context.currentTile.index;
-    var tile = context.tiles[tileIndex];
-    var packetsIterator = tile.packetsIterator;
-    while (position < dataLength) {
-      var packet = packetsIterator.nextPacket();
-      if (!readBits(1)) {
-        alignToByte();
-        continue;
-      }
-      var layerNumber = packet.layerNumber;
-      var queue = [];
-      for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) {
-        var codeblock = packet.codeblocks[i];
-        var precinct = codeblock.precinct;
-        var codeblockColumn = codeblock.cbx - precinct.cbxMin;
-        var codeblockRow = codeblock.cby - precinct.cbyMin;
-        var codeblockIncluded = false;
-        var firstTimeInclusion = false;
-        if ('included' in codeblock) {
-          codeblockIncluded = !!readBits(1);
-        } else {
-          // reading inclusion tree
-          var precinct = codeblock.precinct;
-          var inclusionTree, zeroBitPlanesTree;
-          if ('inclusionTree' in precinct) {
-            inclusionTree = precinct.inclusionTree;
-          } else {
-            // building inclusion and zero bit-planes trees
-            var width = precinct.cbxMax - precinct.cbxMin + 1;
-            var height = precinct.cbyMax - precinct.cbyMin + 1;
-            inclusionTree = new InclusionTree(width, height, layerNumber);
-            zeroBitPlanesTree = new TagTree(width, height);
-            precinct.inclusionTree = inclusionTree;
-            precinct.zeroBitPlanesTree = zeroBitPlanesTree;
-          }
-
-          if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {
-            while (true) {
-              if (readBits(1)) {
-                var valueReady = !inclusionTree.nextLevel();
-                if (valueReady) {
-                  codeblock.included = true;
-                  codeblockIncluded = firstTimeInclusion = true;
-                  break;
-                }
-              } else {
-                inclusionTree.incrementValue(layerNumber);
-                break;
-              }
-            }
-          }
-        }
-        if (!codeblockIncluded)
-          continue;
-        if (firstTimeInclusion) {
-          zeroBitPlanesTree = precinct.zeroBitPlanesTree;
-          zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);
-          while (true) {
-            if (readBits(1)) {
-              var valueReady = !zeroBitPlanesTree.nextLevel();
-              if (valueReady)
-                break;
-            } else
-              zeroBitPlanesTree.incrementValue();
-          }
-          codeblock.zeroBitPlanes = zeroBitPlanesTree.value;
-        }
-        var codingpasses = readCodingpasses();
-        while (readBits(1))
-          codeblock.Lblock++;
-        var codingpassesLog2 = log2(codingpasses);
-        // rounding down log2
-        var bits = ((codingpasses < (1 << codingpassesLog2)) ?
-          codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock;
-        var codedDataLength = readBits(bits);
-        queue.push({
-          codeblock: codeblock,
-          codingpasses: codingpasses,
-          dataLength: codedDataLength
-        });
-      }
-      alignToByte();
-      while (queue.length > 0) {
-        var packetItem = queue.shift();
-        var codeblock = packetItem.codeblock;
-        if (!('data' in codeblock))
-          codeblock.data = [];
-        codeblock.data.push({
-          data: data,
-          start: offset + position,
-          end: offset + position + packetItem.dataLength,
-          codingpasses: packetItem.codingpasses
-        });
-        position += packetItem.dataLength;
-      }
-    }
-    return position;
-  }
-  function copyCoefficients(coefficients, x0, y0, width, height,
-                            delta, mb, codeblocks, transformation) {
-    var r = 0.5; // formula (E-6)
-    for (var i = 0, ii = codeblocks.length; i < ii; ++i) {
-      var codeblock = codeblocks[i];
-      var blockWidth = codeblock.tbx1_ - codeblock.tbx0_;
-      var blockHeight = codeblock.tby1_ - codeblock.tby0_;
-      if (blockWidth == 0 || blockHeight == 0)
-        continue;
-      if (!('data' in codeblock))
-        continue;
-
-      var bitModel, currentCodingpassType;
-      bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType,
-        codeblock.zeroBitPlanes);
-      currentCodingpassType = 2; // first bit plane starts from cleanup
-
-      // collect data
-      var data = codeblock.data, totalLength = 0, codingpasses = 0;
-      for (var q = 0, qq = data.length; q < qq; q++) {
-        var dataItem = data[q];
-        totalLength += dataItem.end - dataItem.start;
-        codingpasses += dataItem.codingpasses;
-      }
-      var encodedData = new Uint8Array(totalLength), k = 0;
-      for (var q = 0, qq = data.length; q < qq; q++) {
-        var dataItem = data[q];
-        var chunk = dataItem.data.subarray(dataItem.start, dataItem.end);
-        encodedData.set(chunk, k);
-        k += chunk.length;
-      }
-      // decoding the item
-      var decoder = new ArithmeticDecoder(encodedData, 0, totalLength);
-      bitModel.setDecoder(decoder);
-
-      for (var q = 0; q < codingpasses; q++) {
-        switch (currentCodingpassType) {
-          case 0:
-            bitModel.runSignificancePropogationPass();
-            break;
-          case 1:
-            bitModel.runMagnitudeRefinementPass();
-            break;
-          case 2:
-            bitModel.runCleanupPass();
-            break;
-        }
-        currentCodingpassType = (currentCodingpassType + 1) % 3;
-      }
-
-      var offset = (codeblock.tbx0_ - x0) + (codeblock.tby0_ - y0) * width;
-      var position = 0;
-      for (var j = 0; j < blockHeight; j++) {
-        for (var k = 0; k < blockWidth; k++) {
-          var n = (bitModel.coefficentsSign[position] ? -1 : 1) *
-            bitModel.coefficentsMagnitude[position];
-          var nb = bitModel.bitsDecoded[position], correction;
-          if (transformation == 0 || mb > nb) {
-            // use r only if transformation is irreversible or
-            // not all bitplanes were decoded for reversible transformation
-            n += n < 0 ? n - r : n > 0 ? n + r : 0;
-            correction = 1 << (mb - nb);
-          } else
-            correction = 1;
-          coefficients[offset++] = n * correction * delta;
-          position++;
-        }
-        offset += width - blockWidth;
-      }
-    }
-  }
-  function transformTile(context, tile, c) {
-    var component = tile.components[c];
-    var codingStyleParameters = component.codingStyleParameters;
-    var quantizationParameters = component.quantizationParameters;
-    var decompositionLevelsCount =
-      codingStyleParameters.decompositionLevelsCount;
-    var spqcds = quantizationParameters.SPqcds;
-    var scalarExpounded = quantizationParameters.scalarExpounded;
-    var guardBits = quantizationParameters.guardBits;
-    var transformation = codingStyleParameters.transformation;
-    var precision = context.components[c].precision;
-
-    var subbandCoefficients = [];
-    var k = 0, b = 0;
-    for (var i = 0; i <= decompositionLevelsCount; i++) {
-      var resolution = component.resolutions[i];
-
-      for (var j = 0, jj = resolution.subbands.length; j < jj; j++) {
-        var mu, epsilon;
-        if (!scalarExpounded) {
-          // formula E-5
-          mu = spqcds[0].mu;
-          epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);
-        } else {
-          mu = spqcds[b].mu;
-          epsilon = spqcds[b].epsilon;
-        }
-
-        var subband = resolution.subbands[j];
-        var width = subband.tbx1 - subband.tbx0;
-        var height = subband.tby1 - subband.tby0;
-        var gainLog2 = SubbandsGainLog2[subband.type];
-
-        // calulate quantization coefficient (Section E.1.1.1)
-        var delta = Math.pow(2, (precision + gainLog2) - epsilon) *
-          (1 + mu / 2048);
-        var mb = (guardBits + epsilon - 1);
-
-        var coefficients = new Float32Array(width * height);
-        copyCoefficients(coefficients, subband.tbx0, subband.tby0,
-          width, height, delta, mb, subband.codeblocks, transformation);
-
-        subbandCoefficients.push({
-          width: width,
-          height: height,
-          items: coefficients
-        });
-
-        b++;
-      }
-    }
-
-    var transformation = codingStyleParameters.transformation;
-    var transform = transformation == 0 ? new IrreversibleTransform() :
-      new ReversibleTransform();
-    var result = transform.calculate(subbandCoefficients,
-      component.tcx0, component.tcy0);
-    return {
-      left: component.tcx0,
-      top: component.tcy0,
-      width: result.width,
-      height: result.height,
-      items: result.items
-    };
-  }
-  function transformComponents(context) {
-    var siz = context.SIZ;
-    var components = context.components;
-    var componentsCount = siz.Csiz;
-    var resultImages = [];
-    for (var i = 0, ii = context.tiles.length; i < ii; i++) {
-      var tile = context.tiles[i];
-      var result = [];
-      for (var c = 0; c < componentsCount; c++) {
-        var image = transformTile(context, tile, c);
-        result.push(image);
-      }
-
-      // Section G.2.2 Inverse multi component transform
-      if (tile.codingStyleDefaultParameters.multipleComponentTransform) {
-        var y0items = result[0].items;
-        var y1items = result[1].items;
-        var y2items = result[2].items;
-        for (var j = 0, jj = y0items.length; j < jj; j++) {
-          var y0 = y0items[j], y1 = y1items[j], y2 = y2items[j];
-          var i1 = y0 - ((y2 + y1) >> 2);
-          y1items[j] = i1;
-          y0items[j] = y2 + i1;
-          y2items[j] = y1 + i1;
-        }
-      }
-
-      // Section G.1 DC level shifting to unsigned component values
-      for (var c = 0; c < componentsCount; c++) {
-        var component = components[c];
-        if (component.isSigned)
-          continue;
-
-        var offset = 1 << (component.precision - 1);
-        var tileImage = result[c];
-        var items = tileImage.items;
-        for (var j = 0, jj = items.length; j < jj; j++)
-          items[j] += offset;
-      }
-
-      // To simplify things: shift and clamp output to 8 bit unsigned
-      for (var c = 0; c < componentsCount; c++) {
-        var component = components[c];
-        var offset = component.isSigned ? 128 : 0;
-        var shift = component.precision - 8;
-        var tileImage = result[c];
-        var items = tileImage.items;
-        var data = new Uint8Array(items.length);
-        for (var j = 0, jj = items.length; j < jj; j++) {
-          var value = (items[j] >> shift) + offset;
-          data[j] = value < 0 ? 0 : value > 255 ? 255 : value;
-        }
-        result[c].items = data;
-      }
-
-      resultImages.push(result);
-    }
-    return resultImages;
-  }
-  function initializeTile(context, tileIndex) {
-    var siz = context.SIZ;
-    var componentsCount = siz.Csiz;
-    var tile = context.tiles[tileIndex];
-    var resultTiles = [];
-    for (var c = 0; c < componentsCount; c++) {
-      var component = tile.components[c];
-      var qcdOrQcc = c in context.currentTile.QCC ?
-        context.currentTile.QCC[c] : context.currentTile.QCD;
-      component.quantizationParameters = qcdOrQcc;
-      var codOrCoc = c in context.currentTile.COC ?
-        context.currentTile.COC[c] : context.currentTile.COD;
-      component.codingStyleParameters = codOrCoc;
-    }
-    tile.codingStyleDefaultParameters = context.currentTile.COD;
-  }
-
-  // Section B.10.2 Tag trees
-  var TagTree = (function TagTreeClosure() {
-    function TagTree(width, height) {
-      var levelsLength = log2(Math.max(width, height)) + 1;
-      this.levels = [];
-      for (var i = 0; i < levelsLength; i++) {
-        var level = {
-          width: width,
-          height: height,
-          items: []
-        };
-        this.levels.push(level);
-        width = Math.ceil(width / 2);
-        height = Math.ceil(height / 2);
-      }
-    }
-    TagTree.prototype = {
-      reset: function TagTree_reset(i, j) {
-        var currentLevel = 0, value = 0;
-        while (currentLevel < this.levels.length) {
-          var level = this.levels[currentLevel];
-          var index = i + j * level.width;
-          if (index in level.items) {
-            value = level.items[index];
-            break;
-          }
-          level.index = index;
-          i >>= 1;
-          j >>= 1;
-          currentLevel++;
-        }
-        currentLevel--;
-        var level = this.levels[currentLevel];
-        level.items[level.index] = value;
-        this.currentLevel = currentLevel;
-        delete this.value;
-      },
-      incrementValue: function TagTree_incrementValue() {
-        var level = this.levels[this.currentLevel];
-        level.items[level.index]++;
-      },
-      nextLevel: function TagTree_nextLevel() {
-        var currentLevel = this.currentLevel;
-        var level = this.levels[currentLevel];
-        var value = level.items[level.index];
-        currentLevel--;
-        if (currentLevel < 0) {
-          this.value = value;
-          return false;
-        }
-
-        this.currentLevel = currentLevel;
-        var level = this.levels[currentLevel];
-        level.items[level.index] = value;
-        return true;
-      }
-    };
-    return TagTree;
-  })();
-
-  var InclusionTree = (function InclusionTreeClosure() {
-    function InclusionTree(width, height,  defaultValue) {
-      var levelsLength = log2(Math.max(width, height)) + 1;
-      this.levels = [];
-      for (var i = 0; i < levelsLength; i++) {
-        var items = new Uint8Array(width * height);
-        for (var j = 0, jj = items.length; j < jj; j++)
-          items[j] = defaultValue;
-
-        var level = {
-          width: width,
-          height: height,
-          items: items
-        };
-        this.levels.push(level);
-
-        width = Math.ceil(width / 2);
-        height = Math.ceil(height / 2);
-      }
-    }
-    InclusionTree.prototype = {
-      reset: function InclusionTree_reset(i, j, stopValue) {
-        var currentLevel = 0;
-        while (currentLevel < this.levels.length) {
-          var level = this.levels[currentLevel];
-          var index = i + j * level.width;
-          level.index = index;
-          var value = level.items[index];
-
-          if (value == 0xFF)
-            break;
-
-          if (value > stopValue) {
-            this.currentLevel = currentLevel;
-            // already know about this one, propagating the value to top levels
-            this.propagateValues();
-            return false;
-          }
-
-          i >>= 1;
-          j >>= 1;
-          currentLevel++;
-        }
-        this.currentLevel = currentLevel - 1;
-        return true;
-      },
-      incrementValue: function InclusionTree_incrementValue(stopValue) {
-        var level = this.levels[this.currentLevel];
-        level.items[level.index] = stopValue + 1;
-        this.propagateValues();
-      },
-      propagateValues: function InclusionTree_propagateValues() {
-        var levelIndex = this.currentLevel;
-        var level = this.levels[levelIndex];
-        var currentValue = level.items[level.index];
-        while (--levelIndex >= 0) {
-          var level = this.levels[levelIndex];
-          level.items[level.index] = currentValue;
-        }
-      },
-      nextLevel: function InclusionTree_nextLevel() {
-        var currentLevel = this.currentLevel;
-        var level = this.levels[currentLevel];
-        var value = level.items[level.index];
-        level.items[level.index] = 0xFF;
-        currentLevel--;
-        if (currentLevel < 0)
-          return false;
-
-        this.currentLevel = currentLevel;
-        var level = this.levels[currentLevel];
-        level.items[level.index] = value;
-        return true;
-      }
-    };
-    return InclusionTree;
-  })();
-
-  // Implements C.3. Arithmetic decoding procedures
-  var ArithmeticDecoder = (function ArithmeticDecoderClosure() {
-    var QeTable = [
-      {qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1},
-      {qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0},
-      {qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0},
-      {qe: 0x0AC1, nmps: 4, nlps: 12, switchFlag: 0},
-      {qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0},
-      {qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0},
-      {qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1},
-      {qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0},
-      {qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0},
-      {qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0},
-      {qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0},
-      {qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0},
-      {qe: 0x1C01, nmps: 13, nlps: 20, switchFlag: 0},
-      {qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0},
-      {qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1},
-      {qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0},
-      {qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0},
-      {qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0},
-      {qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0},
-      {qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0},
-      {qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0},
-      {qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0},
-      {qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0},
-      {qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0},
-      {qe: 0x1C01, nmps: 25, nlps: 22, switchFlag: 0},
-      {qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0},
-      {qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0},
-      {qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0},
-      {qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0},
-      {qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0},
-      {qe: 0x0AC1, nmps: 31, nlps: 28, switchFlag: 0},
-      {qe: 0x09C1, nmps: 32, nlps: 29, switchFlag: 0},
-      {qe: 0x08A1, nmps: 33, nlps: 30, switchFlag: 0},
-      {qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0},
-      {qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0},
-      {qe: 0x02A1, nmps: 36, nlps: 33, switchFlag: 0},
-      {qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0},
-      {qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0},
-      {qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0},
-      {qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0},
-      {qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0},
-      {qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0},
-      {qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0},
-      {qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0},
-      {qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0},
-      {qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0},
-      {qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0}
-    ];
-
-    function ArithmeticDecoder(data, start, end) {
-      this.data = data;
-      this.bp = start;
-      this.dataEnd = end;
-
-      this.chigh = data[start];
-      this.clow = 0;
-
-      this.byteIn();
-
-      this.chigh = ((this.chigh << 7) & 0xFFFF) | ((this.clow >> 9) & 0x7F);
-      this.clow = (this.clow << 7) & 0xFFFF;
-      this.ct -= 7;
-      this.a = 0x8000;
-    }
-
-    ArithmeticDecoder.prototype = {
-      byteIn: function ArithmeticDecoder_byteIn() {
-        var data = this.data;
-        var bp = this.bp;
-        if (data[bp] == 0xFF) {
-          var b1 = data[bp + 1];
-          if (b1 > 0x8F) {
-            this.clow += 0xFF00;
-            this.ct = 8;
-          } else {
-            bp++;
-            this.clow += (data[bp] << 9);
-            this.ct = 7;
-            this.bp = bp;
-          }
-        } else {
-          bp++;
-          this.clow += bp < this.dataEnd ? (data[bp] << 8) : 0xFF00;
-          this.ct = 8;
-          this.bp = bp;
-        }
-        if (this.clow > 0xFFFF) {
-          this.chigh += (this.clow >> 16);
-          this.clow &= 0xFFFF;
-        }
-      },
-      readBit: function ArithmeticDecoder_readBit(cx) {
-        var qeIcx = QeTable[cx.index].qe;
-        this.a -= qeIcx;
-
-        if (this.chigh < qeIcx) {
-          var d = this.exchangeLps(cx);
-          this.renormD();
-          return d;
-        } else {
-          this.chigh -= qeIcx;
-          if ((this.a & 0x8000) == 0) {
-            var d = this.exchangeMps(cx);
-            this.renormD();
-            return d;
-          } else {
-            return cx.mps;
-          }
-        }
-      },
-      renormD: function ArithmeticDecoder_renormD() {
-        do {
-          if (this.ct == 0)
-            this.byteIn();
-
-          this.a <<= 1;
-          this.chigh = ((this.chigh << 1) & 0xFFFF) | ((this.clow >> 15) & 1);
-          this.clow = (this.clow << 1) & 0xFFFF;
-          this.ct--;
-        } while ((this.a & 0x8000) == 0);
-      },
-      exchangeMps: function ArithmeticDecoder_exchangeMps(cx) {
-        var d;
-        var qeTableIcx = QeTable[cx.index];
-        if (this.a < qeTableIcx.qe) {
-          d = 1 - cx.mps;
-
-          if (qeTableIcx.switchFlag == 1) {
-            cx.mps = 1 - cx.mps;
-          }
-          cx.index = qeTableIcx.nlps;
-        } else {
-          d = cx.mps;
-          cx.index = qeTableIcx.nmps;
-        }
-        return d;
-      },
-      exchangeLps: function ArithmeticDecoder_exchangeLps(cx) {
-        var d;
-        var qeTableIcx = QeTable[cx.index];
-        if (this.a < qeTableIcx.qe) {
-          this.a = qeTableIcx.qe;
-          d = cx.mps;
-          cx.index = qeTableIcx.nmps;
-        } else {
-          this.a = qeTableIcx.qe;
-          d = 1 - cx.mps;
-
-          if (qeTableIcx.switchFlag == 1) {
-            cx.mps = 1 - cx.mps;
-          }
-          cx.index = qeTableIcx.nlps;
-        }
-        return d;
-      }
-    };
-
-    return ArithmeticDecoder;
-  })();
-
-  // Section D. Coefficient bit modeling
-  var BitModel = (function BitModelClosure() {
-    // Table D-1
-    // The index is binary presentation: 0dddvvhh, ddd - sum of Di (0..4),
-    // vv - sum of Vi (0..2), and hh - sum of Hi (0..2)
-    var LLAndLHContextsLabel = new Uint8Array([
-      0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4,
-      7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6,
-      8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8
-    ]);
-    var HLContextLabel = new Uint8Array([
-      0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8,
-      8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3,
-      4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8
-    ]);
-    var HHContextLabel = new Uint8Array([
-      0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5,
-      5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8,
-      8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8
-    ]);
-
-    // Table D-2
-    function calcSignContribution(significance0, sign0, significance1, sign1) {
-      if (significance1) {
-        if (!sign1)
-          return significance0 ? (!sign0 ? 1 : 0) : 1;
-        else
-          return significance0 ? (!sign0 ? 0 : -1) : -1;
-      } else
-        return significance0 ? (!sign0 ? 1 : -1) : 0;
-    }
-    // Table D-3
-    var SignContextLabels = [
-      {contextLabel: 13, xorBit: 0},
-      {contextLabel: 12, xorBit: 0},
-      {contextLabel: 11, xorBit: 0},
-      {contextLabel: 10, xorBit: 0},
-      {contextLabel: 9, xorBit: 0},
-      {contextLabel: 10, xorBit: 1},
-      {contextLabel: 11, xorBit: 1},
-      {contextLabel: 12, xorBit: 1},
-      {contextLabel: 13, xorBit: 1}
-    ];
-
-    function BitModel(width, height, subband, zeroBitPlanes) {
-      this.width = width;
-      this.height = height;
-
-      this.contextLabelTable = subband == 'HH' ? HHContextLabel :
-        subband == 'HL' ? HLContextLabel : LLAndLHContextsLabel;
-
-      var coefficientCount = width * height;
-
-      // coefficients outside the encoding region treated as insignificant
-      // add border state cells for significanceState
-      this.neighborsSignificance = new Uint8Array(coefficientCount);
-      this.coefficentsSign = new Uint8Array(coefficientCount);
-      this.coefficentsMagnitude = new Uint32Array(coefficientCount);
-      this.processingFlags = new Uint8Array(coefficientCount);
-
-      var bitsDecoded = new Uint8Array(this.width * this.height);
-      for (var i = 0, ii = bitsDecoded.length; i < ii; i++)
-        bitsDecoded[i] = zeroBitPlanes;
-      this.bitsDecoded = bitsDecoded;
-
-      this.reset();
-    }
-
-    BitModel.prototype = {
-      setDecoder: function BitModel_setDecoder(decoder) {
-        this.decoder = decoder;
-      },
-      reset: function BitModel_reset() {
-        this.uniformContext = {index: 46, mps: 0};
-        this.runLengthContext = {index: 3, mps: 0};
-        this.contexts = [];
-        this.contexts.push({index: 4, mps: 0});
-        for (var i = 1; i <= 16; i++)
-          this.contexts.push({index: 0, mps: 0});
-      },
-      setNeighborsSignificance:
-        function BitModel_setNeighborsSignificance(row, column) {
-        var neighborsSignificance = this.neighborsSignificance;
-        var width = this.width, height = this.height;
-        var index = row * width + column;
-        if (row > 0) {
-          if (column > 0)
-            neighborsSignificance[index - width - 1] += 0x10;
-          if (column + 1 < width)
-            neighborsSignificance[index - width + 1] += 0x10;
-          neighborsSignificance[index - width] += 0x04;
-        }
-        if (row + 1 < height) {
-          if (column > 0)
-            neighborsSignificance[index + width - 1] += 0x10;
-          if (column + 1 < width)
-            neighborsSignificance[index + width + 1] += 0x10;
-          neighborsSignificance[index + width] += 0x04;
-        }
-        if (column > 0)
-          neighborsSignificance[index - 1] += 0x01;
-        if (column + 1 < width)
-          neighborsSignificance[index + 1] += 0x01;
-        neighborsSignificance[index] |= 0x80;
-      },
-      runSignificancePropogationPass:
-        function BitModel_runSignificancePropogationPass() {
-        var decoder = this.decoder;
-        var width = this.width, height = this.height;
-        var coefficentsMagnitude = this.coefficentsMagnitude;
-        var coefficentsSign = this.coefficentsSign;
-        var contextLabels = this.contextLabels;
-        var neighborsSignificance = this.neighborsSignificance;
-        var processingFlags = this.processingFlags;
-        var contexts = this.contexts;
-        var labels = this.contextLabelTable;
-        var bitsDecoded = this.bitsDecoded;
-        // clear processed flag
-        var processedInverseMask = ~1;
-        var processedMask = 1;
-        var firstMagnitudeBitMask = 2;
-        for (var q = 0, qq = width * height; q < qq; q++)
-          processingFlags[q] &= processedInverseMask;
-
-        for (var i0 = 0; i0 < height; i0 += 4) {
-          for (var j = 0; j < width; j++) {
-            var index = i0 * width + j;
-            for (var i1 = 0; i1 < 4; i1++, index += width) {
-              var i = i0 + i1;
-              if (i >= height)
-                break;
-
-              if (coefficentsMagnitude[index] || !neighborsSignificance[index])
-                continue;
-
-              var contextLabel = labels[neighborsSignificance[index]];
-              var cx = contexts[contextLabel];
-              var decision = decoder.readBit(cx);
-              if (decision) {
-                var sign = this.decodeSignBit(i, j);
-                coefficentsSign[index] = sign;
-                coefficentsMagnitude[index] = 1;
-                this.setNeighborsSignificance(i, j);
-                processingFlags[index] |= firstMagnitudeBitMask;
-              }
-              bitsDecoded[index]++;
-              processingFlags[index] |= processedMask;
-            }
-          }
-        }
-      },
-      decodeSignBit: function BitModel_decodeSignBit(row, column) {
-        var width = this.width, height = this.height;
-        var index = row * width + column;
-        var coefficentsMagnitude = this.coefficentsMagnitude;
-        var coefficentsSign = this.coefficentsSign;
-        var horizontalContribution = calcSignContribution(
-          column > 0 && coefficentsMagnitude[index - 1],
-          coefficentsSign[index - 1],
-          column + 1 < width && coefficentsMagnitude[index + 1],
-          coefficentsSign[index + 1]);
-        var verticalContribution = calcSignContribution(
-          row > 0 && coefficentsMagnitude[index - width],
-          coefficentsSign[index - width],
-          row + 1 < height && coefficentsMagnitude[index + width],
-          coefficentsSign[index + width]);
-
-        var contextLabelAndXor = SignContextLabels[
-          3 * (1 - horizontalContribution) + (1 - verticalContribution)];
-        var contextLabel = contextLabelAndXor.contextLabel;
-        var cx = this.contexts[contextLabel];
-        var decoded = this.decoder.readBit(cx);
-        return decoded ^ contextLabelAndXor.xorBit;
-      },
-      runMagnitudeRefinementPass:
-        function BitModel_runMagnitudeRefinementPass() {
-        var decoder = this.decoder;
-        var width = this.width, height = this.height;
-        var coefficentsMagnitude = this.coefficentsMagnitude;
-        var neighborsSignificance = this.neighborsSignificance;
-        var contexts = this.contexts;
-        var bitsDecoded = this.bitsDecoded;
-        var processingFlags = this.processingFlags;
-        var processedMask = 1;
-        var firstMagnitudeBitMask = 2;
-        for (var i0 = 0; i0 < height; i0 += 4) {
-          for (var j = 0; j < width; j++) {
-            for (var i1 = 0; i1 < 4; i1++) {
-              var i = i0 + i1;
-              if (i >= height)
-                break;
-              var index = i * width + j;
-
-              // significant but not those that have just become
-              if (!coefficentsMagnitude[index] ||
-                (processingFlags[index] & processedMask) != 0)
-                continue;
-
-              var contextLabel = 16;
-              if ((processingFlags[index] &
-                firstMagnitudeBitMask) != 0) {
-                processingFlags[i * width + j] ^= firstMagnitudeBitMask;
-                // first refinement
-                var significance = neighborsSignificance[index];
-                var sumOfSignificance = (significance & 3) +
-                  ((significance >> 2) & 3) + ((significance >> 4) & 7);
-                contextLabel = sumOfSignificance >= 1 ? 15 : 14;
-              }
-
-              var cx = contexts[contextLabel];
-              var bit = decoder.readBit(cx);
-              coefficentsMagnitude[index] =
-                (coefficentsMagnitude[index] << 1) | bit;
-              bitsDecoded[index]++;
-              processingFlags[index] |= processedMask;
-            }
-          }
-        }
-      },
-      runCleanupPass: function BitModel_runCleanupPass() {
-        var decoder = this.decoder;
-        var width = this.width, height = this.height;
-        var neighborsSignificance = this.neighborsSignificance;
-        var significanceState = this.significanceState;
-        var coefficentsMagnitude = this.coefficentsMagnitude;
-        var coefficentsSign = this.coefficentsSign;
-        var contexts = this.contexts;
-        var labels = this.contextLabelTable;
-        var bitsDecoded = this.bitsDecoded;
-        var processingFlags = this.processingFlags;
-        var processedMask = 1;
-        var firstMagnitudeBitMask = 2;
-        var oneRowDown = width;
-        var twoRowsDown = width * 2;
-        var threeRowsDown = width * 3;
-        for (var i0 = 0; i0 < height; i0 += 4) {
-          for (var j = 0; j < width; j++) {
-            var index0 = i0 * width + j;
-            // using the property: labels[neighborsSignificance[index]] == 0
-            // when neighborsSignificance[index] == 0
-            var allEmpty = i0 + 3 < height &&
-              processingFlags[index0] == 0 &&
-              processingFlags[index0 + oneRowDown] == 0 &&
-              processingFlags[index0 + twoRowsDown] == 0 &&
-              processingFlags[index0 + threeRowsDown] == 0 &&
-              neighborsSignificance[index0] == 0 &&
-              neighborsSignificance[index0 + oneRowDown] == 0 &&
-              neighborsSignificance[index0 + twoRowsDown] == 0 &&
-              neighborsSignificance[index0 + threeRowsDown] == 0;
-            var i1 = 0, index = index0;
-            var cx, i;
-            if (allEmpty) {
-              cx = this.runLengthContext;
-              var hasSignificantCoefficent = decoder.readBit(cx);
-              if (!hasSignificantCoefficent) {
-                bitsDecoded[index0]++;
-                bitsDecoded[index0 + oneRowDown]++;
-                bitsDecoded[index0 + twoRowsDown]++;
-                bitsDecoded[index0 + threeRowsDown]++;
-                continue; // next column
-              }
-              cx = this.uniformContext;
-              i1 = (decoder.readBit(cx) << 1) | decoder.readBit(cx);
-              i = i0 + i1;
-              index += i1 * width;
-
-              var sign = this.decodeSignBit(i, j);
-              coefficentsSign[index] = sign;
-              coefficentsMagnitude[index] = 1;
-              this.setNeighborsSignificance(i, j);
-              processingFlags[index] |= firstMagnitudeBitMask;
-
-              index = index0;
-              for (var i2 = i0; i2 <= i; i2++, index += width)
-                bitsDecoded[index]++;
-
-              i1++;
-            }
-            for (; i1 < 4; i1++, index += width) {
-              i = i0 + i1;
-              if (i >= height)
-                break;
-
-              if (coefficentsMagnitude[index] ||
-                (processingFlags[index] & processedMask) != 0)
-                continue;
-
-              var contextLabel = labels[neighborsSignificance[index]];
-              cx = contexts[contextLabel];
-              var decision = decoder.readBit(cx);
-              if (decision == 1) {
-                var sign = this.decodeSignBit(i, j);
-                coefficentsSign[index] = sign;
-                coefficentsMagnitude[index] = 1;
-                this.setNeighborsSignificance(i, j);
-                processingFlags[index] |= firstMagnitudeBitMask;
-              }
-              bitsDecoded[index]++;
-            }
-          }
-        }
-      }
-    };
-
-    return BitModel;
-  })();
-
-  // Section F, Discrete wavelet transofrmation
-  var Transform = (function TransformClosure() {
-    function Transform() {
-    }
-    Transform.prototype.calculate =
-      function transformCalculate(subbands, u0, v0) {
-      var ll = subbands[0];
-      for (var i = 1, ii = subbands.length, j = 1; i < ii; i += 3, j++) {
-        ll = this.iterate(ll, subbands[i], subbands[i + 1],
-                          subbands[i + 2], u0, v0);
-      }
-      return ll;
-    };
-    Transform.prototype.iterate = function Transform_iterate(ll, hl, lh, hh,
-                                                            u0, v0) {
-      var llWidth = ll.width, llHeight = ll.height, llItems = ll.items;
-      var hlWidth = hl.width, hlHeight = hl.height, hlItems = hl.items;
-      var lhWidth = lh.width, lhHeight = lh.height, lhItems = lh.items;
-      var hhWidth = hh.width, hhHeight = hh.height, hhItems = hh.items;
-
-      // Section F.3.3 interleave
-      var width = llWidth + hlWidth;
-      var height = llHeight + lhHeight;
-      var items = new Float32Array(width * height);
-      for (var i = 0, ii = llHeight; i < ii; i++) {
-        var k = i * llWidth, l = i * 2 * width;
-        for (var j = 0, jj = llWidth; j < jj; j++, k++, l += 2)
-          items[l] = llItems[k];
-      }
-      for (var i = 0, ii = hlHeight; i < ii; i++) {
-        var k = i * hlWidth, l = i * 2 * width + 1;
-        for (var j = 0, jj = hlWidth; j < jj; j++, k++, l += 2)
-          items[l] = hlItems[k];
-      }
-      for (var i = 0, ii = lhHeight; i < ii; i++) {
-        var k = i * lhWidth, l = (i * 2 + 1) * width;
-        for (var j = 0, jj = lhWidth; j < jj; j++, k++, l += 2)
-          items[l] = lhItems[k];
-      }
-      for (var i = 0, ii = hhHeight; i < ii; i++) {
-        var k = i * hhWidth, l = (i * 2 + 1) * width + 1;
-        for (var j = 0, jj = hhWidth; j < jj; j++, k++, l += 2)
-          items[l] = hhItems[k];
-      }
-
-      var bufferPadding = 4;
-      var bufferLength = new Float32Array(Math.max(width, height) +
-        2 * bufferPadding);
-      var buffer = new Float32Array(bufferLength);
-      var bufferOut = new Float32Array(bufferLength);
-
-      // Section F.3.4 HOR_SR
-      for (var v = 0; v < height; v++) {
-        if (width == 1) {
-          // if width = 1, when u0 even keep items as is, when odd divide by 2
-          if ((u0 % 1) != 0) {
-            items[v * width] /= 2;
-          }
-          continue;
-        }
-
-        var k = v * width;
-        var l = bufferPadding;
-        for (var u = 0; u < width; u++, k++, l++)
-          buffer[l] = items[k];
-
-        // Section F.3.7 extending... using max extension of 4
-        var i1 = bufferPadding - 1, j1 = bufferPadding + 1;
-        var i2 = bufferPadding + width - 2, j2 = bufferPadding + width;
-        buffer[i1--] = buffer[j1++];
-        buffer[j2++] = buffer[i2--];
-        buffer[i1--] = buffer[j1++];
-        buffer[j2++] = buffer[i2--];
-        buffer[i1--] = buffer[j1++];
-        buffer[j2++] = buffer[i2--];
-        buffer[i1--] = buffer[j1++];
-        buffer[j2++] = buffer[i2--];
-
-        this.filter(buffer, bufferPadding, width, u0, bufferOut);
-
-        k = v * width;
-        l = bufferPadding;
-        for (var u = 0; u < width; u++, k++, l++)
-          items[k] = bufferOut[l];
-      }
-
-      // Section F.3.5 VER_SR
-      for (var u = 0; u < width; u++) {
-        if (height == 1) {
-          // if height = 1, when v0 even keep items as is, when odd divide by 2
-          if ((v0 % 1) != 0) {
-            items[u] /= 2;
-          }
-          continue;
-        }
-
-        var k = u;
-        var l = bufferPadding;
-        for (var v = 0; v < height; v++, k += width, l++)
-          buffer[l] = items[k];
-
-        // Section F.3.7 extending... using max extension of 4
-        var i1 = bufferPadding - 1, j1 = bufferPadding + 1;
-        var i2 = bufferPadding + height - 2, j2 = bufferPadding + height;
-        buffer[i1--] = buffer[j1++];
-        buffer[j2++] = buffer[i2--];
-        buffer[i1--] = buffer[j1++];
-        buffer[j2++] = buffer[i2--];
-        buffer[i1--] = buffer[j1++];
-        buffer[j2++] = buffer[i2--];
-        buffer[i1--] = buffer[j1++];
-        buffer[j2++] = buffer[i2--];
-
-        this.filter(buffer, bufferPadding, height, v0, bufferOut);
-
-        k = u;
-        l = bufferPadding;
-        for (var v = 0; v < height; v++, k += width, l++)
-          items[k] = bufferOut[l];
-      }
-      return {
-        width: width,
-        height: height,
-        items: items
-      };
-    };
-    return Transform;
-  })();
-
-  // Section 3.8.2 Irreversible 9-7 filter
-  var IrreversibleTransform = (function IrreversibleTransformClosure() {
-    function IrreversibleTransform() {
-      Transform.call(this);
-    }
-
-    IrreversibleTransform.prototype = Object.create(Transform.prototype);
-    IrreversibleTransform.prototype.filter =
-      function irreversibleTransformFilter(y, offset, length, i0, x) {
-      var i0_ = Math.floor(i0 / 2);
-      var i1_ = Math.floor((i0 + length) / 2);
-      var offset_ = offset - (i0 % 1);
-
-      var alpha = -1.586134342059924;
-      var beta = -0.052980118572961;
-      var gamma = 0.882911075530934;
-      var delta = 0.443506852043971;
-      var K = 1.230174104914001;
-      var K_ = 1 / K;
-
-      // step 1
-      var j = offset_ - 2;
-      for (var n = i0_ - 1, nn = i1_ + 2; n < nn; n++, j += 2)
-        x[j] = K * y[j];
-
-      // step 2
-      var j = offset_ - 3;
-      for (var n = i0_ - 2, nn = i1_ + 2; n < nn; n++, j += 2)
-        x[j] = K_ * y[j];
-
-      // step 3
-      var j = offset_ - 2;
-      for (var n = i0_ - 1, nn = i1_ + 2; n < nn; n++, j += 2)
-        x[j] -= delta * (x[j - 1] + x[j + 1]);
-
-      // step 4
-      var j = offset_ - 1;
-      for (var n = i0_ - 1, nn = i1_ + 1; n < nn; n++, j += 2)
-        x[j] -= gamma * (x[j - 1] + x[j + 1]);
-
-      // step 5
-      var j = offset_;
-      for (var n = i0_, nn = i1_ + 1; n < nn; n++, j += 2)
-        x[j] -= beta * (x[j - 1] + x[j + 1]);
-
-      // step 6
-      var j = offset_ + 1;
-      for (var n = i0_, nn = i1_; n < nn; n++, j += 2)
-        x[j] -= alpha * (x[j - 1] + x[j + 1]);
-    };
-
-    return IrreversibleTransform;
-  })();
-
-  // Section 3.8.1 Reversible 5-3 filter
-  var ReversibleTransform = (function ReversibleTransformClosure() {
-    function ReversibleTransform() {
-      Transform.call(this);
-    }
-
-    ReversibleTransform.prototype = Object.create(Transform.prototype);
-    ReversibleTransform.prototype.filter =
-      function reversibleTransformFilter(y, offset, length, i0, x) {
-      var i0_ = Math.floor(i0 / 2);
-      var i1_ = Math.floor((i0 + length) / 2);
-      var offset_ = offset - (i0 % 1);
-
-      for (var n = i0_, nn = i1_ + 1, j = offset_; n < nn; n++, j += 2)
-        x[j] = y[j] - Math.floor((y[j - 1] + y[j + 1] + 2) / 4);
-
-      for (var n = i0_, nn = i1_, j = offset_ + 1; n < nn; n++, j += 2)
-        x[j] = y[j] + Math.floor((x[j - 1] + x[j + 1]) / 2);
-    };
-
-    return ReversibleTransform;
-  })();
-
-  return JpxImage;
-})();
-
-
-/* -*- 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 bidi = PDFJS.bidi = (function bidiClosure() {
-  // Character types for symbols from 0000 to 00FF.
-  var baseTypes = [
-    'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'S', 'B', 'S', 'WS',
-    'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN',
-    'BN', 'BN', 'B', 'B', 'B', 'S', 'WS', 'ON', 'ON', 'ET', 'ET', 'ET', 'ON',
-    'ON', 'ON', 'ON', 'ON', 'ON', 'CS', 'ON', 'CS', 'ON', 'EN', 'EN', 'EN',
-    'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'ON', 'ON', 'ON', 'ON', 'ON',
-    'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',
-    'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON',
-    'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',
-    'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',
-    'L', 'ON', 'ON', 'ON', 'ON', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'BN',
-    'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN',
-    'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN',
-    'BN', 'CS', 'ON', 'ET', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'L', 'ON',
-    'ON', 'ON', 'ON', 'ON', 'ET', 'ET', 'EN', 'EN', 'ON', 'L', 'ON', 'ON', 'ON',
-    'EN', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L',
-    'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',
-    'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',
-    'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L',
-    'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'
-  ];
-
-  // Character types for symbols from 0600 to 06FF
-  var arabicTypes = [
-    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
-    'CS', 'AL', 'ON', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL',
-    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
-    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
-    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
-    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
-    'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM',
-    'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'AL', 'AL',
-    'AL', 'AL', 'AL', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN',
-    'AN', 'ET', 'AN', 'AN', 'AL', 'AL', 'AL', 'NSM', 'AL', 'AL', 'AL', 'AL',
-    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
-    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
-    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
-    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
-    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
-    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
-    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
-    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
-    'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM',
-    'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'ON', 'NSM',
-    'NSM', 'NSM', 'NSM', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL',
-    'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL'
-  ];
-
-  function isOdd(i) {
-    return (i & 1) != 0;
-  }
-
-  function isEven(i) {
-    return (i & 1) == 0;
-  }
-
-  function findUnequal(arr, start, value) {
-    var j;
-    for (var j = start, jj = arr.length; j < jj; ++j) {
-      if (arr[j] != value)
-        return j;
-    }
-    return j;
-  }
-
-  function setValues(arr, start, end, value) {
-    for (var j = start; j < end; ++j) {
-      arr[j] = value;
-    }
-  }
-
-  function reverseValues(arr, start, end) {
-    for (var i = start, j = end - 1; i < j; ++i, --j) {
-      var temp = arr[i];
-      arr[i] = arr[j];
-      arr[j] = temp;
-    }
-  }
-
-  function mirrorGlyphs(c) {
-    /*
-     # BidiMirroring-1.txt
-     0028; 0029 # LEFT PARENTHESIS
-     0029; 0028 # RIGHT PARENTHESIS
-     003C; 003E # LESS-THAN SIGN
-     003E; 003C # GREATER-THAN SIGN
-     005B; 005D # LEFT SQUARE BRACKET
-     005D; 005B # RIGHT SQUARE BRACKET
-     007B; 007D # LEFT CURLY BRACKET
-     007D; 007B # RIGHT CURLY BRACKET
-     00AB; 00BB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-     00BB; 00AB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-     */
-    switch (c) {
-      case '(':
-        return ')';
-      case ')':
-        return '(';
-      case '<':
-        return '>';
-      case '>':
-        return '<';
-      case ']':
-        return '[';
-      case '[':
-        return ']';
-      case '}':
-        return '{';
-      case '{':
-        return '}';
-      case '\u00AB':
-        return '\u00BB';
-      case '\u00BB':
-        return '\u00AB';
-      default:
-        return c;
-    }
-  }
-
-  function bidi(text, startLevel) {
-    var str = text.str;
-    var strLength = str.length;
-    if (strLength == 0)
-      return str;
-
-    // get types, fill arrays
-
-    var chars = [];
-    var types = [];
-    var oldtypes = [];
-    var numBidi = 0;
-
-    for (var i = 0; i < strLength; ++i) {
-      chars[i] = str.charAt(i);
-
-      var charCode = str.charCodeAt(i);
-      var charType = 'L';
-      if (charCode <= 0x00ff)
-        charType = baseTypes[charCode];
-      else if (0x0590 <= charCode && charCode <= 0x05f4)
-        charType = 'R';
-      else if (0x0600 <= charCode && charCode <= 0x06ff)
-        charType = arabicTypes[charCode & 0xff];
-      else if (0x0700 <= charCode && charCode <= 0x08AC)
-        charType = 'AL';
-
-      if (charType == 'R' || charType == 'AL' || charType == 'AN')
-        numBidi++;
-
-      oldtypes[i] = types[i] = charType;
-    }
-
-    // detect the bidi method
-    //  if there are no rtl characters then no bidi needed
-    //  if less than 30% chars are rtl then string is primarily ltr
-    //  if more than 30% chars are rtl then string is primarily rtl
-    if (numBidi == 0) {
-      text.direction = 'ltr';
-      return str;
-    }
-
-    if (startLevel == -1) {
-      if ((strLength / numBidi) < 0.3) {
-        text.direction = 'ltr';
-        startLevel = 0;
-      } else {
-        text.direction = 'rtl';
-        startLevel = 1;
-      }
-    }
-
-    var levels = [];
-
-    for (var i = 0; i < strLength; ++i) {
-      levels[i] = startLevel;
-    }
-
-    /*
-     X1-X10: skip most of this, since we are NOT doing the embeddings.
-     */
-
-    var e = isOdd(startLevel) ? 'R' : 'L';
-    var sor = e;
-    var eor = sor;
-
-    /*
-     W1. Examine each non-spacing mark (NSM) in the level run, and change the
-     type of the NSM to the type of the previous character. If the NSM is at the
-     start of the level run, it will get the type of sor.
-     */
-
-    var lastType = sor;
-    for (var i = 0; i < strLength; ++i) {
-      if (types[i] == 'NSM')
-        types[i] = lastType;
-      else
-        lastType = types[i];
-    }
-
-    /*
-     W2. Search backwards from each instance of a European number until the
-     first strong type (R, L, AL, or sor) is found.  If an AL is found, change
-     the type of the European number to Arabic number.
-     */
-
-    var lastType = sor;
-    for (var i = 0; i < strLength; ++i) {
-      var t = types[i];
-      if (t == 'EN')
-        types[i] = (lastType == 'AL') ? 'AN' : 'EN';
-      else if (t == 'R' || t == 'L' || t == 'AL')
-        lastType = t;
-    }
-
-    /*
-     W3. Change all ALs to R.
-     */
-
-    for (var i = 0; i < strLength; ++i) {
-      var t = types[i];
-      if (t == 'AL')
-        types[i] = 'R';
-    }
-
-    /*
-     W4. A single European separator between two European numbers changes to a
-     European number. A single common separator between two numbers of the same
-     type changes to that type:
-     */
-
-    for (var i = 1; i < strLength - 1; ++i) {
-      if (types[i] == 'ES' && types[i - 1] == 'EN' && types[i + 1] == 'EN')
-        types[i] = 'EN';
-      if (types[i] == 'CS' && (types[i - 1] == 'EN' || types[i - 1] == 'AN') &&
-          types[i + 1] == types[i - 1])
-        types[i] = types[i - 1];
-    }
-
-    /*
-     W5. A sequence of European terminators adjacent to European numbers changes
-     to all European numbers:
-     */
-
-    for (var i = 0; i < strLength; ++i) {
-      if (types[i] == 'EN') {
-        // do before
-        for (var j = i - 1; j >= 0; --j) {
-          if (types[j] != 'ET')
-            break;
-          types[j] = 'EN';
-        }
-        // do after
-        for (var j = i + 1; j < strLength; --j) {
-          if (types[j] != 'ET')
-            break;
-          types[j] = 'EN';
-        }
-      }
-    }
-
-    /*
-     W6. Otherwise, separators and terminators change to Other Neutral:
-     */
-
-    for (var i = 0; i < strLength; ++i) {
-      var t = types[i];
-      if (t == 'WS' || t == 'ES' || t == 'ET' || t == 'CS')
-        types[i] = 'ON';
-    }
-
-    /*
-     W7. Search backwards from each instance of a European number until the
-     first strong type (R, L, or sor) is found. If an L is found,  then change
-     the type of the European number to L.
-     */
-
-    var lastType = sor;
-    for (var i = 0; i < strLength; ++i) {
-      var t = types[i];
-      if (t == 'EN')
-        types[i] = (lastType == 'L') ? 'L' : 'EN';
-      else if (t == 'R' || t == 'L')
-        lastType = t;
-    }
-
-    /*
-     N1. A sequence of neutrals takes the direction of the surrounding strong
-     text if the text on both sides has the same direction. European and Arabic
-     numbers are treated as though they were R. Start-of-level-run (sor) and
-     end-of-level-run (eor) are used at level run boundaries.
-     */
-
-    for (var i = 0; i < strLength; ++i) {
-      if (types[i] == 'ON') {
-        var end = findUnequal(types, i + 1, 'ON');
-        var before = sor;
-        if (i > 0)
-          before = types[i - 1];
-        var after = eor;
-        if (end + 1 < strLength)
-          after = types[end + 1];
-        if (before != 'L')
-          before = 'R';
-        if (after != 'L')
-          after = 'R';
-        if (before == after)
-          setValues(types, i, end, before);
-        i = end - 1; // reset to end (-1 so next iteration is ok)
-      }
-    }
-
-    /*
-     N2. Any remaining neutrals take the embedding direction.
-     */
-
-    for (var i = 0; i < strLength; ++i) {
-      if (types[i] == 'ON')
-        types[i] = e;
-    }
-
-    /*
-     I1. For all characters with an even (left-to-right) embedding direction,
-     those of type R go up one level and those of type AN or EN go up two
-     levels.
-     I2. For all characters with an odd (right-to-left) embedding direction,
-     those of type L, EN or AN go up one level.
-     */
-
-    for (var i = 0; i < strLength; ++i) {
-      var t = types[i];
-      if (isEven(levels[i])) {
-        if (t == 'R') {
-          levels[i] += 1;
-        } else if (t == 'AN' || t == 'EN') {
-          levels[i] += 2;
-        }
-      } else { // isOdd, so
-        if (t == 'L' || t == 'AN' || t == 'EN') {
-          levels[i] += 1;
-        }
-      }
-    }
-
-    /*
-     L1. On each line, reset the embedding level of the following characters to
-     the paragraph embedding level:
-
-     segment separators,
-     paragraph separators,
-     any sequence of whitespace characters preceding a segment separator or
-     paragraph separator, and any sequence of white space characters at the end
-     of the line.
-     */
-
-    // don't bother as text is only single line
-
-    /*
-     L2. From the highest level found in the text to the lowest odd level on
-     each line, reverse any contiguous sequence of characters that are at that
-     level or higher.
-     */
-
-    // find highest level & lowest odd level
-
-    var highestLevel = -1;
-    var lowestOddLevel = 99;
-    for (var i = 0, ii = levels.length; i < ii; ++i) {
-      var level = levels[i];
-      if (highestLevel < level)
-        highestLevel = level;
-      if (lowestOddLevel > level && isOdd(level))
-        lowestOddLevel = level;
-    }
-
-    // now reverse between those limits
-
-    for (var level = highestLevel; level >= lowestOddLevel; --level) {
-      // find segments to reverse
-      var start = -1;
-      for (var i = 0, ii = levels.length; i < ii; ++i) {
-        if (levels[i] < level) {
-          if (start >= 0) {
-            reverseValues(chars, start, i);
-            start = -1;
-          }
-        } else if (start < 0) {
-          start = i;
-        }
-      }
-      if (start >= 0) {
-        reverseValues(chars, start, levels.length);
-      }
-    }
-
-    /*
-     L3. Combining marks applied to a right-to-left base character will at this
-     point precede their base character. If the rendering engine expects them to
-     follow the base characters in the final display process, then the ordering
-     of the marks and the base character must be reversed.
-     */
-
-    // don't bother for now
-
-    /*
-     L4. A character that possesses the mirrored property as specified by
-     Section 4.7, Mirrored, must be depicted by a mirrored glyph if the resolved
-     directionality of that character is R.
-     */
-
-    // don't mirror as characters are already mirrored in the pdf
-
-    // Finally, return string
-
-    var result = '';
-    for (var i = 0, ii = chars.length; i < ii; ++i) {
-      var ch = chars[i];
-      if (ch != '<' && ch != '>')
-        result += ch;
-    }
-    return result;
-  }
-
-  return bidi;
-})();
-
-
-/* -*- 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 Metadata = PDFJS.Metadata = (function MetadataClosure() {
-  function fixMetadata(meta) {
-    return meta.replace(/>\\376\\377([^<]+)/g, function(all, codes) {
-      var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g,
-                                function(code, d1, d2, d3) {
-        return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);
-      });
-      var chars = '';
-      for (var i = 0; i < bytes.length; i += 2) {
-        var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);
-        chars += code >= 32 && code < 127 && code != 60 && code != 62 &&
-          code != 38 && false ? String.fromCharCode(code) :
-          '&#x' + (0x10000 + code).toString(16).substring(1) + ';';
-      }
-      return '>' + chars;
-    });
-  }
-
-  function Metadata(meta) {
-    if (typeof meta === 'string') {
-      // Ghostscript produces invalid metadata
-      meta = fixMetadata(meta);
-
-      var parser = new DOMParser();
-      meta = parser.parseFromString(meta, 'application/xml');
-    } else if (!(meta instanceof Document)) {
-      error('Metadata: Invalid metadata object');
-    }
-
-    this.metaDocument = meta;
-    this.metadata = {};
-    this.parse();
-  }
-
-  Metadata.prototype = {
-    parse: function Metadata_parse() {
-      var doc = this.metaDocument;
-      var rdf = doc.documentElement;
-
-      if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') { // Wrapped in <xmpmeta>
-        rdf = rdf.firstChild;
-        while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf')
-          rdf = rdf.nextSibling;
-      }
-
-      var nodeName = (rdf) ? rdf.nodeName.toLowerCase() : null;
-      if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes())
-        return;
-
-      var childNodes = rdf.childNodes, desc, namespace, entries, entry;
-
-      for (var i = 0, length = childNodes.length; i < length; i++) {
-        desc = childNodes[i];
-        if (desc.nodeName.toLowerCase() !== 'rdf:description')
-          continue;
-
-        entries = [];
-        for (var ii = 0, iLength = desc.childNodes.length; ii < iLength; ii++) {
-          if (desc.childNodes[ii].nodeName.toLowerCase() !== '#text')
-            entries.push(desc.childNodes[ii]);
-        }
-
-        for (ii = 0, iLength = entries.length; ii < iLength; ii++) {
-          var entry = entries[ii];
-          var name = entry.nodeName.toLowerCase();
-          this.metadata[name] = entry.textContent.trim();
-        }
-      }
-    },
-
-    get: function Metadata_get(name) {
-      return this.metadata[name] || null;
-    },
-
-    has: function Metadata_has(name) {
-      return typeof this.metadata[name] !== 'undefined';
-    }
-  };
-
-  return Metadata;
-})();
-
-}).call((typeof PdfJS_window.window === 'undefined') ? this : PdfJS_window.window);
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/raytrace.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/raytrace.js
deleted file mode 100644
index 971ef72..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/raytrace.js
+++ /dev/null
@@ -1,904 +0,0 @@
-// The ray tracer code in this file is written by Adam Burmister. It
-// is available in its original form from:
-//
-//   http://labs.flog.nz.co/raytracer/
-//
-// It has been modified slightly by Google to work as a standalone
-// benchmark, but the all the computational code remains
-// untouched. This file also contains a copy of parts of the Prototype
-// JavaScript framework which is used by the ray tracer.
-
-var RayTrace = new BenchmarkSuite('RayTrace', 739989, [
-  new Benchmark('RayTrace', renderScene)
-]);
-
-
-// Variable used to hold a number that can be used to verify that
-// the scene was ray traced correctly.
-var checkNumber;
-
-
-// ------------------------------------------------------------------------
-// ------------------------------------------------------------------------
-
-// The following is a copy of parts of the Prototype JavaScript library:
-
-// Prototype JavaScript framework, version 1.5.0
-// (c) 2005-2007 Sam Stephenson
-//
-// Prototype is freely distributable under the terms of an MIT-style license.
-// For details, see the Prototype web site: http://prototype.conio.net/
-
-
-var Class = {
-  create: function() {
-    return function() {
-      this.initialize.apply(this, arguments);
-    }
-  }
-};
-
-
-Object.extend = function(destination, source) {
-  for (var property in source) {
-    destination[property] = source[property];
-  }
-  return destination;
-};
-
-
-// ------------------------------------------------------------------------
-// ------------------------------------------------------------------------
-
-// The rest of this file is the actual ray tracer written by Adam
-// Burmister. It's a concatenation of the following files:
-//
-//   flog/color.js
-//   flog/light.js
-//   flog/vector.js
-//   flog/ray.js
-//   flog/scene.js
-//   flog/material/basematerial.js
-//   flog/material/solid.js
-//   flog/material/chessboard.js
-//   flog/shape/baseshape.js
-//   flog/shape/sphere.js
-//   flog/shape/plane.js
-//   flog/intersectioninfo.js
-//   flog/camera.js
-//   flog/background.js
-//   flog/engine.js
-
-
-/* Fake a Flog.* namespace */
-if(typeof(Flog) == 'undefined') var Flog = {};
-if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
-
-Flog.RayTracer.Color = Class.create();
-
-Flog.RayTracer.Color.prototype = {
-    red : 0.0,
-    green : 0.0,
-    blue : 0.0,
-
-    initialize : function(r, g, b) {
-        if(!r) r = 0.0;
-        if(!g) g = 0.0;
-        if(!b) b = 0.0;
-
-        this.red = r;
-        this.green = g;
-        this.blue = b;
-    },
-
-    add : function(c1, c2){
-        var result = new Flog.RayTracer.Color(0,0,0);
-
-        result.red = c1.red + c2.red;
-        result.green = c1.green + c2.green;
-        result.blue = c1.blue + c2.blue;
-
-        return result;
-    },
-
-    addScalar: function(c1, s){
-        var result = new Flog.RayTracer.Color(0,0,0);
-
-        result.red = c1.red + s;
-        result.green = c1.green + s;
-        result.blue = c1.blue + s;
-
-        result.limit();
-
-        return result;
-    },
-
-    subtract: function(c1, c2){
-        var result = new Flog.RayTracer.Color(0,0,0);
-
-        result.red = c1.red - c2.red;
-        result.green = c1.green - c2.green;
-        result.blue = c1.blue - c2.blue;
-
-        return result;
-    },
-
-    multiply : function(c1, c2) {
-        var result = new Flog.RayTracer.Color(0,0,0);
-
-        result.red = c1.red * c2.red;
-        result.green = c1.green * c2.green;
-        result.blue = c1.blue * c2.blue;
-
-        return result;
-    },
-
-    multiplyScalar : function(c1, f) {
-        var result = new Flog.RayTracer.Color(0,0,0);
-
-        result.red = c1.red * f;
-        result.green = c1.green * f;
-        result.blue = c1.blue * f;
-
-        return result;
-    },
-
-    divideFactor : function(c1, f) {
-        var result = new Flog.RayTracer.Color(0,0,0);
-
-        result.red = c1.red / f;
-        result.green = c1.green / f;
-        result.blue = c1.blue / f;
-
-        return result;
-    },
-
-    limit: function(){
-        this.red = (this.red > 0.0) ? ( (this.red > 1.0) ? 1.0 : this.red ) : 0.0;
-        this.green = (this.green > 0.0) ? ( (this.green > 1.0) ? 1.0 : this.green ) : 0.0;
-        this.blue = (this.blue > 0.0) ? ( (this.blue > 1.0) ? 1.0 : this.blue ) : 0.0;
-    },
-
-    distance : function(color) {
-        var d = Math.abs(this.red - color.red) + Math.abs(this.green - color.green) + Math.abs(this.blue - color.blue);
-        return d;
-    },
-
-    blend: function(c1, c2, w){
-        var result = new Flog.RayTracer.Color(0,0,0);
-        result = Flog.RayTracer.Color.prototype.add(
-                    Flog.RayTracer.Color.prototype.multiplyScalar(c1, 1 - w),
-                    Flog.RayTracer.Color.prototype.multiplyScalar(c2, w)
-                  );
-        return result;
-    },
-
-    brightness : function() {
-        var r = Math.floor(this.red*255);
-        var g = Math.floor(this.green*255);
-        var b = Math.floor(this.blue*255);
-        return (r * 77 + g * 150 + b * 29) >> 8;
-    },
-
-    toString : function () {
-        var r = Math.floor(this.red*255);
-        var g = Math.floor(this.green*255);
-        var b = Math.floor(this.blue*255);
-
-        return "rgb("+ r +","+ g +","+ b +")";
-    }
-}
-/* Fake a Flog.* namespace */
-if(typeof(Flog) == 'undefined') var Flog = {};
-if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
-
-Flog.RayTracer.Light = Class.create();
-
-Flog.RayTracer.Light.prototype = {
-    position: null,
-    color: null,
-    intensity: 10.0,
-
-    initialize : function(pos, color, intensity) {
-        this.position = pos;
-        this.color = color;
-        this.intensity = (intensity ? intensity : 10.0);
-    },
-
-    toString : function () {
-        return 'Light [' + this.position.x + ',' + this.position.y + ',' + this.position.z + ']';
-    }
-}
-/* Fake a Flog.* namespace */
-if(typeof(Flog) == 'undefined') var Flog = {};
-if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
-
-Flog.RayTracer.Vector = Class.create();
-
-Flog.RayTracer.Vector.prototype = {
-    x : 0.0,
-    y : 0.0,
-    z : 0.0,
-
-    initialize : function(x, y, z) {
-        this.x = (x ? x : 0);
-        this.y = (y ? y : 0);
-        this.z = (z ? z : 0);
-    },
-
-    copy: function(vector){
-        this.x = vector.x;
-        this.y = vector.y;
-        this.z = vector.z;
-    },
-
-    normalize : function() {
-        var m = this.magnitude();
-        return new Flog.RayTracer.Vector(this.x / m, this.y / m, this.z / m);
-    },
-
-    magnitude : function() {
-        return Math.sqrt((this.x * this.x) + (this.y * this.y) + (this.z * this.z));
-    },
-
-    cross : function(w) {
-        return new Flog.RayTracer.Vector(
-                                            -this.z * w.y + this.y * w.z,
-                                           this.z * w.x - this.x * w.z,
-                                          -this.y * w.x + this.x * w.y);
-    },
-
-    dot : function(w) {
-        return this.x * w.x + this.y * w.y + this.z * w.z;
-    },
-
-    add : function(v, w) {
-        return new Flog.RayTracer.Vector(w.x + v.x, w.y + v.y, w.z + v.z);
-    },
-
-    subtract : function(v, w) {
-        if(!w || !v) throw 'Vectors must be defined [' + v + ',' + w + ']';
-        return new Flog.RayTracer.Vector(v.x - w.x, v.y - w.y, v.z - w.z);
-    },
-
-    multiplyVector : function(v, w) {
-        return new Flog.RayTracer.Vector(v.x * w.x, v.y * w.y, v.z * w.z);
-    },
-
-    multiplyScalar : function(v, w) {
-        return new Flog.RayTracer.Vector(v.x * w, v.y * w, v.z * w);
-    },
-
-    toString : function () {
-        return 'Vector [' + this.x + ',' + this.y + ',' + this.z + ']';
-    }
-}
-/* Fake a Flog.* namespace */
-if(typeof(Flog) == 'undefined') var Flog = {};
-if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
-
-Flog.RayTracer.Ray = Class.create();
-
-Flog.RayTracer.Ray.prototype = {
-    position : null,
-    direction : null,
-    initialize : function(pos, dir) {
-        this.position = pos;
-        this.direction = dir;
-    },
-
-    toString : function () {
-        return 'Ray [' + this.position + ',' + this.direction + ']';
-    }
-}
-/* Fake a Flog.* namespace */
-if(typeof(Flog) == 'undefined') var Flog = {};
-if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
-
-Flog.RayTracer.Scene = Class.create();
-
-Flog.RayTracer.Scene.prototype = {
-    camera : null,
-    shapes : [],
-    lights : [],
-    background : null,
-
-    initialize : function() {
-        this.camera = new Flog.RayTracer.Camera(
-            new Flog.RayTracer.Vector(0,0,-5),
-            new Flog.RayTracer.Vector(0,0,1),
-            new Flog.RayTracer.Vector(0,1,0)
-        );
-        this.shapes = new Array();
-        this.lights = new Array();
-        this.background = new Flog.RayTracer.Background(new Flog.RayTracer.Color(0,0,0.5), 0.2);
-    }
-}
-/* Fake a Flog.* namespace */
-if(typeof(Flog) == 'undefined') var Flog = {};
-if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
-if(typeof(Flog.RayTracer.Material) == 'undefined') Flog.RayTracer.Material = {};
-
-Flog.RayTracer.Material.BaseMaterial = Class.create();
-
-Flog.RayTracer.Material.BaseMaterial.prototype = {
-
-    gloss: 2.0,             // [0...infinity] 0 = matt
-    transparency: 0.0,      // 0=opaque
-    reflection: 0.0,        // [0...infinity] 0 = no reflection
-    refraction: 0.50,
-    hasTexture: false,
-
-    initialize : function() {
-
-    },
-
-    getColor: function(u, v){
-
-    },
-
-    wrapUp: function(t){
-        t = t % 2.0;
-        if(t < -1) t += 2.0;
-        if(t >= 1) t -= 2.0;
-        return t;
-    },
-
-    toString : function () {
-        return 'Material [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
-    }
-}
-/* Fake a Flog.* namespace */
-if(typeof(Flog) == 'undefined') var Flog = {};
-if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
-
-Flog.RayTracer.Material.Solid = Class.create();
-
-Flog.RayTracer.Material.Solid.prototype = Object.extend(
-    new Flog.RayTracer.Material.BaseMaterial(), {
-        initialize : function(color, reflection, refraction, transparency, gloss) {
-            this.color = color;
-            this.reflection = reflection;
-            this.transparency = transparency;
-            this.gloss = gloss;
-            this.hasTexture = false;
-        },
-
-        getColor: function(u, v){
-            return this.color;
-        },
-
-        toString : function () {
-            return 'SolidMaterial [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
-        }
-    }
-);
-/* Fake a Flog.* namespace */
-if(typeof(Flog) == 'undefined') var Flog = {};
-if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
-
-Flog.RayTracer.Material.Chessboard = Class.create();
-
-Flog.RayTracer.Material.Chessboard.prototype = Object.extend(
-    new Flog.RayTracer.Material.BaseMaterial(), {
-        colorEven: null,
-        colorOdd: null,
-        density: 0.5,
-
-        initialize : function(colorEven, colorOdd, reflection, transparency, gloss, density) {
-            this.colorEven = colorEven;
-            this.colorOdd = colorOdd;
-            this.reflection = reflection;
-            this.transparency = transparency;
-            this.gloss = gloss;
-            this.density = density;
-            this.hasTexture = true;
-        },
-
-        getColor: function(u, v){
-            var t = this.wrapUp(u * this.density) * this.wrapUp(v * this.density);
-
-            if(t < 0.0)
-                return this.colorEven;
-            else
-                return this.colorOdd;
-        },
-
-        toString : function () {
-            return 'ChessMaterial [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
-        }
-    }
-);
-/* Fake a Flog.* namespace */
-if(typeof(Flog) == 'undefined') var Flog = {};
-if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
-if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
-
-Flog.RayTracer.Shape.Sphere = Class.create();
-
-Flog.RayTracer.Shape.Sphere.prototype = {
-    initialize : function(pos, radius, material) {
-        this.radius = radius;
-        this.position = pos;
-        this.material = material;
-    },
-
-    intersect: function(ray){
-        var info = new Flog.RayTracer.IntersectionInfo();
-        info.shape = this;
-
-        var dst = Flog.RayTracer.Vector.prototype.subtract(ray.position, this.position);
-
-        var B = dst.dot(ray.direction);
-        var C = dst.dot(dst) - (this.radius * this.radius);
-        var D = (B * B) - C;
-
-        if(D > 0){ // intersection!
-            info.isHit = true;
-            info.distance = (-B) - Math.sqrt(D);
-            info.position = Flog.RayTracer.Vector.prototype.add(
-                                                ray.position,
-                                                Flog.RayTracer.Vector.prototype.multiplyScalar(
-                                                    ray.direction,
-                                                    info.distance
-                                                )
-                                            );
-            info.normal = Flog.RayTracer.Vector.prototype.subtract(
-                                            info.position,
-                                            this.position
-                                        ).normalize();
-
-            info.color = this.material.getColor(0,0);
-        } else {
-            info.isHit = false;
-        }
-        return info;
-    },
-
-    toString : function () {
-        return 'Sphere [position=' + this.position + ', radius=' + this.radius + ']';
-    }
-}
-/* Fake a Flog.* namespace */
-if(typeof(Flog) == 'undefined') var Flog = {};
-if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
-if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
-
-Flog.RayTracer.Shape.Plane = Class.create();
-
-Flog.RayTracer.Shape.Plane.prototype = {
-    d: 0.0,
-
-    initialize : function(pos, d, material) {
-        this.position = pos;
-        this.d = d;
-        this.material = material;
-    },
-
-    intersect: function(ray){
-        var info = new Flog.RayTracer.IntersectionInfo();
-
-        var Vd = this.position.dot(ray.direction);
-        if(Vd == 0) return info; // no intersection
-
-        var t = -(this.position.dot(ray.position) + this.d) / Vd;
-        if(t <= 0) return info;
-
-        info.shape = this;
-        info.isHit = true;
-        info.position = Flog.RayTracer.Vector.prototype.add(
-                                            ray.position,
-                                            Flog.RayTracer.Vector.prototype.multiplyScalar(
-                                                ray.direction,
-                                                t
-                                            )
-                                        );
-        info.normal = this.position;
-        info.distance = t;
-
-        if(this.material.hasTexture){
-            var vU = new Flog.RayTracer.Vector(this.position.y, this.position.z, -this.position.x);
-            var vV = vU.cross(this.position);
-            var u = info.position.dot(vU);
-            var v = info.position.dot(vV);
-            info.color = this.material.getColor(u,v);
-        } else {
-            info.color = this.material.getColor(0,0);
-        }
-
-        return info;
-    },
-
-    toString : function () {
-        return 'Plane [' + this.position + ', d=' + this.d + ']';
-    }
-}
-/* Fake a Flog.* namespace */
-if(typeof(Flog) == 'undefined') var Flog = {};
-if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
-
-Flog.RayTracer.IntersectionInfo = Class.create();
-
-Flog.RayTracer.IntersectionInfo.prototype = {
-    isHit: false,
-    hitCount: 0,
-    shape: null,
-    position: null,
-    normal: null,
-    color: null,
-    distance: null,
-
-    initialize : function() {
-        this.color = new Flog.RayTracer.Color(0,0,0);
-    },
-
-    toString : function () {
-        return 'Intersection [' + this.position + ']';
-    }
-}
-/* Fake a Flog.* namespace */
-if(typeof(Flog) == 'undefined') var Flog = {};
-if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
-
-Flog.RayTracer.Camera = Class.create();
-
-Flog.RayTracer.Camera.prototype = {
-    position: null,
-    lookAt: null,
-    equator: null,
-    up: null,
-    screen: null,
-
-    initialize : function(pos, lookAt, up) {
-        this.position = pos;
-        this.lookAt = lookAt;
-        this.up = up;
-        this.equator = lookAt.normalize().cross(this.up);
-        this.screen = Flog.RayTracer.Vector.prototype.add(this.position, this.lookAt);
-    },
-
-    getRay: function(vx, vy){
-        var pos = Flog.RayTracer.Vector.prototype.subtract(
-            this.screen,
-            Flog.RayTracer.Vector.prototype.subtract(
-                Flog.RayTracer.Vector.prototype.multiplyScalar(this.equator, vx),
-                Flog.RayTracer.Vector.prototype.multiplyScalar(this.up, vy)
-            )
-        );
-        pos.y = pos.y * -1;
-        var dir = Flog.RayTracer.Vector.prototype.subtract(
-            pos,
-            this.position
-        );
-
-        var ray = new Flog.RayTracer.Ray(pos, dir.normalize());
-
-        return ray;
-    },
-
-    toString : function () {
-        return 'Ray []';
-    }
-}
-/* Fake a Flog.* namespace */
-if(typeof(Flog) == 'undefined') var Flog = {};
-if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
-
-Flog.RayTracer.Background = Class.create();
-
-Flog.RayTracer.Background.prototype = {
-    color : null,
-    ambience : 0.0,
-
-    initialize : function(color, ambience) {
-        this.color = color;
-        this.ambience = ambience;
-    }
-}
-/* Fake a Flog.* namespace */
-if(typeof(Flog) == 'undefined') var Flog = {};
-if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
-
-Flog.RayTracer.Engine = Class.create();
-
-Flog.RayTracer.Engine.prototype = {
-    canvas: null, /* 2d context we can render to */
-
-    initialize: function(options){
-        this.options = Object.extend({
-                canvasHeight: 100,
-                canvasWidth: 100,
-                pixelWidth: 2,
-                pixelHeight: 2,
-                renderDiffuse: false,
-                renderShadows: false,
-                renderHighlights: false,
-                renderReflections: false,
-                rayDepth: 2
-            }, options || {});
-
-        this.options.canvasHeight /= this.options.pixelHeight;
-        this.options.canvasWidth /= this.options.pixelWidth;
-
-        /* TODO: dynamically include other scripts */
-    },
-
-    setPixel: function(x, y, color){
-        var pxW, pxH;
-        pxW = this.options.pixelWidth;
-        pxH = this.options.pixelHeight;
-
-        if (this.canvas) {
-          this.canvas.fillStyle = color.toString();
-          this.canvas.fillRect (x * pxW, y * pxH, pxW, pxH);
-        } else {
-          if (x ===  y) {
-            checkNumber += color.brightness();
-          }
-          // print(x * pxW, y * pxH, pxW, pxH);
-        }
-    },
-
-    renderScene: function(scene, canvas){
-        checkNumber = 0;
-        /* Get canvas */
-        if (canvas) {
-          this.canvas = canvas.getContext("2d");
-        } else {
-          this.canvas = null;
-        }
-
-        var canvasHeight = this.options.canvasHeight;
-        var canvasWidth = this.options.canvasWidth;
-
-        for(var y=0; y < canvasHeight; y++){
-            for(var x=0; x < canvasWidth; x++){
-                var yp = y * 1.0 / canvasHeight * 2 - 1;
-          		var xp = x * 1.0 / canvasWidth * 2 - 1;
-
-          		var ray = scene.camera.getRay(xp, yp);
-
-          		var color = this.getPixelColor(ray, scene);
-
-            	this.setPixel(x, y, color);
-            }
-        }
-        if (checkNumber !== 2321) {
-          throw new Error("Scene rendered incorrectly");
-        }
-    },
-
-    getPixelColor: function(ray, scene){
-        var info = this.testIntersection(ray, scene, null);
-        if(info.isHit){
-            var color = this.rayTrace(info, ray, scene, 0);
-            return color;
-        }
-        return scene.background.color;
-    },
-
-    testIntersection: function(ray, scene, exclude){
-        var hits = 0;
-        var best = new Flog.RayTracer.IntersectionInfo();
-        best.distance = 2000;
-
-        for(var i=0; i<scene.shapes.length; i++){
-            var shape = scene.shapes[i];
-
-            if(shape != exclude){
-                var info = shape.intersect(ray);
-                if(info.isHit && info.distance >= 0 && info.distance < best.distance){
-                    best = info;
-                    hits++;
-                }
-            }
-        }
-        best.hitCount = hits;
-        return best;
-    },
-
-    getReflectionRay: function(P,N,V){
-        var c1 = -N.dot(V);
-        var R1 = Flog.RayTracer.Vector.prototype.add(
-            Flog.RayTracer.Vector.prototype.multiplyScalar(N, 2*c1),
-            V
-        );
-        return new Flog.RayTracer.Ray(P, R1);
-    },
-
-    rayTrace: function(info, ray, scene, depth){
-        // Calc ambient
-        var color = Flog.RayTracer.Color.prototype.multiplyScalar(info.color, scene.background.ambience);
-        var oldColor = color;
-        var shininess = Math.pow(10, info.shape.material.gloss + 1);
-
-        for(var i=0; i<scene.lights.length; i++){
-            var light = scene.lights[i];
-
-            // Calc diffuse lighting
-            var v = Flog.RayTracer.Vector.prototype.subtract(
-                                light.position,
-                                info.position
-                            ).normalize();
-
-            if(this.options.renderDiffuse){
-                var L = v.dot(info.normal);
-                if(L > 0.0){
-                    color = Flog.RayTracer.Color.prototype.add(
-                                        color,
-                                        Flog.RayTracer.Color.prototype.multiply(
-                                            info.color,
-                                            Flog.RayTracer.Color.prototype.multiplyScalar(
-                                                light.color,
-                                                L
-                                            )
-                                        )
-                                    );
-                }
-            }
-
-            // The greater the depth the more accurate the colours, but
-            // this is exponentially (!) expensive
-            if(depth <= this.options.rayDepth){
-          // calculate reflection ray
-          if(this.options.renderReflections && info.shape.material.reflection > 0)
-          {
-              var reflectionRay = this.getReflectionRay(info.position, info.normal, ray.direction);
-              var refl = this.testIntersection(reflectionRay, scene, info.shape);
-
-              if (refl.isHit && refl.distance > 0){
-                  refl.color = this.rayTrace(refl, reflectionRay, scene, depth + 1);
-              } else {
-                  refl.color = scene.background.color;
-                        }
-
-                  color = Flog.RayTracer.Color.prototype.blend(
-                    color,
-                    refl.color,
-                    info.shape.material.reflection
-                  );
-          }
-
-                // Refraction
-                /* TODO */
-            }
-
-            /* Render shadows and highlights */
-
-            var shadowInfo = new Flog.RayTracer.IntersectionInfo();
-
-            if(this.options.renderShadows){
-                var shadowRay = new Flog.RayTracer.Ray(info.position, v);
-
-                shadowInfo = this.testIntersection(shadowRay, scene, info.shape);
-                if(shadowInfo.isHit && shadowInfo.shape != info.shape /*&& shadowInfo.shape.type != 'PLANE'*/){
-                    var vA = Flog.RayTracer.Color.prototype.multiplyScalar(color, 0.5);
-                    var dB = (0.5 * Math.pow(shadowInfo.shape.material.transparency, 0.5));
-                    color = Flog.RayTracer.Color.prototype.addScalar(vA,dB);
-                }
-            }
-
-      // Phong specular highlights
-      if(this.options.renderHighlights && !shadowInfo.isHit && info.shape.material.gloss > 0){
-        var Lv = Flog.RayTracer.Vector.prototype.subtract(
-                            info.shape.position,
-                            light.position
-                        ).normalize();
-
-        var E = Flog.RayTracer.Vector.prototype.subtract(
-                            scene.camera.position,
-                            info.shape.position
-                        ).normalize();
-
-        var H = Flog.RayTracer.Vector.prototype.subtract(
-                            E,
-                            Lv
-                        ).normalize();
-
-        var glossWeight = Math.pow(Math.max(info.normal.dot(H), 0), shininess);
-        color = Flog.RayTracer.Color.prototype.add(
-                            Flog.RayTracer.Color.prototype.multiplyScalar(light.color, glossWeight),
-                            color
-                        );
-      }
-        }
-        color.limit();
-        return color;
-    }
-};
-
-
-function renderScene(){
-    var scene = new Flog.RayTracer.Scene();
-
-    scene.camera = new Flog.RayTracer.Camera(
-                        new Flog.RayTracer.Vector(0, 0, -15),
-                        new Flog.RayTracer.Vector(-0.2, 0, 5),
-                        new Flog.RayTracer.Vector(0, 1, 0)
-                    );
-
-    scene.background = new Flog.RayTracer.Background(
-                                new Flog.RayTracer.Color(0.5, 0.5, 0.5),
-                                0.4
-                            );
-
-    var sphere = new Flog.RayTracer.Shape.Sphere(
-        new Flog.RayTracer.Vector(-1.5, 1.5, 2),
-        1.5,
-        new Flog.RayTracer.Material.Solid(
-            new Flog.RayTracer.Color(0,0.5,0.5),
-            0.3,
-            0.0,
-            0.0,
-            2.0
-        )
-    );
-
-    var sphere1 = new Flog.RayTracer.Shape.Sphere(
-        new Flog.RayTracer.Vector(1, 0.25, 1),
-        0.5,
-        new Flog.RayTracer.Material.Solid(
-            new Flog.RayTracer.Color(0.9,0.9,0.9),
-            0.1,
-            0.0,
-            0.0,
-            1.5
-        )
-    );
-
-    var plane = new Flog.RayTracer.Shape.Plane(
-                                new Flog.RayTracer.Vector(0.1, 0.9, -0.5).normalize(),
-                                1.2,
-                                new Flog.RayTracer.Material.Chessboard(
-                                    new Flog.RayTracer.Color(1,1,1),
-                                    new Flog.RayTracer.Color(0,0,0),
-                                    0.2,
-                                    0.0,
-                                    1.0,
-                                    0.7
-                                )
-                            );
-
-    scene.shapes.push(plane);
-    scene.shapes.push(sphere);
-    scene.shapes.push(sphere1);
-
-    var light = new Flog.RayTracer.Light(
-        new Flog.RayTracer.Vector(5, 10, -1),
-        new Flog.RayTracer.Color(0.8, 0.8, 0.8)
-    );
-
-    var light1 = new Flog.RayTracer.Light(
-        new Flog.RayTracer.Vector(-3, 5, -15),
-        new Flog.RayTracer.Color(0.8, 0.8, 0.8),
-        100
-    );
-
-    scene.lights.push(light);
-    scene.lights.push(light1);
-
-    var imageWidth = 100; // $F('imageWidth');
-    var imageHeight = 100; // $F('imageHeight');
-    var pixelSize = "5,5".split(','); //  $F('pixelSize').split(',');
-    var renderDiffuse = true; // $F('renderDiffuse');
-    var renderShadows = true; // $F('renderShadows');
-    var renderHighlights = true; // $F('renderHighlights');
-    var renderReflections = true; // $F('renderReflections');
-    var rayDepth = 2;//$F('rayDepth');
-
-    var raytracer = new Flog.RayTracer.Engine(
-        {
-            canvasWidth: imageWidth,
-            canvasHeight: imageHeight,
-            pixelWidth: pixelSize[0],
-            pixelHeight: pixelSize[1],
-            "renderDiffuse": renderDiffuse,
-            "renderHighlights": renderHighlights,
-            "renderShadows": renderShadows,
-            "renderReflections": renderReflections,
-            "rayDepth": rayDepth
-        }
-    );
-
-    raytracer.renderScene(scene, null, 0);
-}
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/regexp.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/regexp.js
deleted file mode 100644
index f1474bf..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/regexp.js
+++ /dev/null
@@ -1,1764 +0,0 @@
-// Copyright 2010 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.
-
-// Automatically generated on 2009-01-30. Manually updated on 2010-09-17.
-
-// This benchmark is generated by loading 50 of the most popular pages
-// on the web and logging all regexp operations performed.  Each
-// operation is given a weight that is calculated from an estimate of
-// the popularity of the pages where it occurs and the number of times
-// it is executed while loading each page.  Furthermore the literal
-// letters in the data are encoded using ROT13 in a way that does not
-// affect how the regexps match their input.  Finally the strings are
-// scrambled to exercise the regexp engine on different input strings.
-
-
-var RegExpSuite = new BenchmarkSuite('RegExp', 910985, [
-  new Benchmark("RegExp", RegExpRun, RegExpSetup, RegExpTearDown, 16)
-]);
-
-var regExpBenchmark = null;
-
-function RegExpSetup() {
-  regExpBenchmark = new RegExpBenchmark();
-  RegExpRun(); // run once to get system initialized
-}
-
-function RegExpRun() {
-  regExpBenchmark.run();
-}
-
-function RegExpTearDown() {
-  regExpBenchmark = null;
-}
-
-// Returns an array of n different variants of the input string str.
-// The variants are computed by randomly rotating one random
-// character.
-function computeInputVariants(str, n) {
-  var variants = [ str ];
-  for (var i = 1; i < n; i++) {
-    var pos = Math.floor(Math.random() * str.length);
-    var chr = String.fromCharCode((str.charCodeAt(pos) + Math.floor(Math.random() * 128)) % 128);
-    variants[i] = str.substring(0, pos) + chr + str.substring(pos + 1, str.length);
-  }
-  return variants;
-}
-
-function RegExpBenchmark() {
-  var re0 = /^ba/;
-  var re1 = /(((\w+):\/\/)([^\/:]*)(:(\d+))?)?([^#?]*)(\?([^#]*))?(#(.*))?/;
-  var re2 = /^\s*|\s*$/g;
-  var re3 = /\bQBZPbageby_cynprubyqre\b/;
-  var re4 = /,/;
-  var re5 = /\bQBZPbageby_cynprubyqre\b/g;
-  var re6 = /^[\s\xa0]+|[\s\xa0]+$/g;
-  var re7 = /(\d*)(\D*)/g;
-  var re8 = /=/;
-  var re9 = /(^|\s)lhv\-h(\s|$)/;
-  var str0 = 'Zbmvyyn/5.0 (Jvaqbjf; H; Jvaqbjf AG 5.1; ra-HF) NccyrJroXvg/528.9 (XUGZY, yvxr Trpxb) Puebzr/2.0.157.0 Fnsnev/528.9';
-  var re10 = /\#/g;
-  var re11 = /\./g;
-  var re12 = /'/g;
-  var re13 = /\?[\w\W]*(sevraqvq|punaaryvq|tebhcvq)=([^\&\?#]*)/i;
-  var str1 = 'Fubpxjnir Synfu 9.0  e115';
-  var re14 = /\s+/g;
-  var re15 = /^\s*(\S*(\s+\S+)*)\s*$/;
-  var re16 = /(-[a-z])/i;
-
-  var s0 = computeInputVariants('pyvpx', 6511);
-  var s1 = computeInputVariants('uggc://jjj.snprobbx.pbz/ybtva.cuc', 1844);
-  var s2 = computeInputVariants('QBZPbageby_cynprubyqre', 739);
-  var s3 = computeInputVariants('uggc://jjj.snprobbx.pbz/', 598);
-  var s4 = computeInputVariants('uggc://jjj.snprobbx.pbz/fepu.cuc', 454);
-  var s5 = computeInputVariants('qqqq, ZZZ q, llll', 352);
-  var s6 = computeInputVariants('vachggrkg QBZPbageby_cynprubyqre', 312);
-  var s7 = computeInputVariants('/ZlFcnprUbzrcntr/Vaqrk-FvgrUbzr,10000000', 282);
-  var s8 = computeInputVariants('vachggrkg', 177);
-  var s9 = computeInputVariants('528.9', 170);
-  var s10 = computeInputVariants('528', 170);
-  var s11 = computeInputVariants('VCPhygher=ra-HF', 156);
-  var s12 = computeInputVariants('CersreerqPhygher=ra-HF', 156);
-  var s13 = computeInputVariants('xrlcerff', 144);
-  var s14 = computeInputVariants('521', 139);
-  var s15 = computeInputVariants(str0, 139);
-  var s16 = computeInputVariants('qvi .so_zrah', 137);
-  var s17 = computeInputVariants('qvi.so_zrah', 137);
-  var s18 = computeInputVariants('uvqqra_ryrz', 117);
-  var s19 = computeInputVariants('sevraqfgre_naba=nvq%3Qn6ss9p85n868ro9s059pn854735956o3%26ers%3Q%26df%3Q%26vpgl%3QHF', 95);
-  var s20 = computeInputVariants('uggc://ubzr.zlfcnpr.pbz/vaqrk.psz', 93);
-  var s21 = computeInputVariants(str1, 92);
-  var s22 = computeInputVariants('svefg', 85);
-  var s23 = computeInputVariants('uggc://cebsvyr.zlfcnpr.pbz/vaqrk.psz', 85);
-  var s24 = computeInputVariants('ynfg', 85);
-  var s25 = computeInputVariants('qvfcynl', 85);
-
-  function runBlock0() {
-    for (var i = 0; i < 6511; i++) {
-      re0.exec(s0[i]);
-    }
-    for (var i = 0; i < 1844; i++) {
-      re1.exec(s1[i]);
-    }
-    for (var i = 0; i < 739; i++) {
-      s2[i].replace(re2, '');
-    }
-    for (var i = 0; i < 598; i++) {
-      re1.exec(s3[i]);
-    }
-    for (var i = 0; i < 454; i++) {
-      re1.exec(s4[i]);
-    }
-    for (var i = 0; i < 352; i++) {
-      /qqqq|qqq|qq|q|ZZZZ|ZZZ|ZZ|Z|llll|ll|l|uu|u|UU|U|zz|z|ff|f|gg|g|sss|ss|s|mmm|mm|m/g.exec(s5[i]);
-    }
-    for (var i = 0; i < 312; i++) {
-      re3.exec(s6[i]);
-    }
-    for (var i = 0; i < 282; i++) {
-      re4.exec(s7[i]);
-    }
-    for (var i = 0; i < 177; i++) {
-      s8[i].replace(re5, '');
-    }
-    for (var i = 0; i < 170; i++) {
-      s9[i].replace(re6, '');
-      re7.exec(s10[i]);
-    }
-    for (var i = 0; i < 156; i++) {
-      re8.exec(s11[i]);
-      re8.exec(s12[i]);
-    }
-    for (var i = 0; i < 144; i++) {
-      re0.exec(s13[i]);
-    }
-    for (var i = 0; i < 139; i++) {
-      s14[i].replace(re6, '');
-      re7.exec(s14[i]);
-      re9.exec('');
-      /JroXvg\/(\S+)/.exec(s15[i]);
-    }
-    for (var i = 0; i < 137; i++) {
-      s16[i].replace(re10, '');
-      s16[i].replace(/\[/g, '');
-      s17[i].replace(re11, '');
-    }
-    for (var i = 0; i < 117; i++) {
-      s18[i].replace(re2, '');
-    }
-    for (var i = 0; i < 95; i++) {
-      /(?:^|;)\s*sevraqfgre_ynat=([^;]*)/.exec(s19[i]);
-    }
-    for (var i = 0; i < 93; i++) {
-      s20[i].replace(re12, '');
-      re13.exec(s20[i]);
-    }
-    for (var i = 0; i < 92; i++) {
-      s21[i].replace(/([a-zA-Z]|\s)+/, '');
-    }
-    for (var i = 0; i < 85; i++) {
-      s22[i].replace(re14, '');
-      s22[i].replace(re15, '');
-      s23[i].replace(re12, '');
-      s24[i].replace(re14, '');
-      s24[i].replace(re15, '');
-      re16.exec(s25[i]);
-      re13.exec(s23[i]);
-    }
-  }
-  var re17 = /(^|[^\\])\"\\\/Qngr\((-?[0-9]+)\)\\\/\"/g;
-  var str2 = '{"anzr":"","ahzoreSbezng":{"PheeraplQrpvznyQvtvgf":2,"PheeraplQrpvznyFrcnengbe":".","VfErnqBayl":gehr,"PheeraplTebhcFvmrf":[3],"AhzoreTebhcFvmrf":[3],"CrepragTebhcFvmrf":[3],"PheeraplTebhcFrcnengbe":",","PheeraplFlzoby":"\xa4","AnAFlzoby":"AnA","PheeraplArtngvirCnggrea":0,"AhzoreArtngvirCnggrea":1,"CrepragCbfvgvirCnggrea":0,"CrepragArtngvirCnggrea":0,"ArtngvirVasvavglFlzoby":"-Vasvavgl","ArtngvirFvta":"-","AhzoreQrpvznyQvtvgf":2,"AhzoreQrpvznyFrcnengbe":".","AhzoreTebhcFrcnengbe":",","PheeraplCbfvgvirCnggrea":0,"CbfvgvirVasvavglFlzoby":"Vasvavgl","CbfvgvirFvta":"+","CrepragQrpvznyQvtvgf":2,"CrepragQrpvznyFrcnengbe":".","CrepragTebhcFrcnengbe":",","CrepragFlzoby":"%","CreZvyyrFlzoby":"\u2030","AngvirQvtvgf":["0","1","2","3","4","5","6","7","8","9"],"QvtvgFhofgvghgvba":1},"qngrGvzrSbezng":{"NZQrfvtangbe":"NZ","Pnyraqne":{"ZvaFhccbegrqQngrGvzr":"@-62135568000000@","ZnkFhccbegrqQngrGvzr":"@253402300799999@","NytbevguzGlcr":1,"PnyraqneGlcr":1,"Renf":[1],"GjbQvtvgLrneZnk":2029,"VfErnqBayl":gehr},"QngrFrcnengbe":"/","SvefgQnlBsJrrx":0,"PnyraqneJrrxEhyr":0,"ShyyQngrGvzrCnggrea":"qqqq, qq ZZZZ llll UU:zz:ff","YbatQngrCnggrea":"qqqq, qq ZZZZ llll","YbatGvzrCnggrea":"UU:zz:ff","ZbaguQnlCnggrea":"ZZZZ qq","CZQrfvtangbe":"CZ","ESP1123Cnggrea":"qqq, qq ZZZ llll UU\':\'zz\':\'ff \'TZG\'","FubegQngrCnggrea":"ZZ/qq/llll","FubegGvzrCnggrea":"UU:zz","FbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq\'G\'UU\':\'zz\':\'ff","GvzrFrcnengbe":":","HavirefnyFbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq UU\':\'zz\':\'ff\'M\'","LrneZbaguCnggrea":"llll ZZZZ","NooerivngrqQnlAnzrf":["Fha","Zba","Ghr","Jrq","Guh","Sev","Fng"],"FubegrfgQnlAnzrf":["Fh","Zb","Gh","Jr","Gu","Se","Fn"],"QnlAnzrf":["Fhaqnl","Zbaqnl","Ghrfqnl","Jrqarfqnl","Guhefqnl","Sevqnl","Fngheqnl"],"NooerivngrqZbaguAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""],"VfErnqBayl":gehr,"AngvirPnyraqneAnzr":"Tertbevna Pnyraqne","NooerivngrqZbaguTravgvirAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguTravgvirAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""]}}';
-  var str3 = '{"anzr":"ra-HF","ahzoreSbezng":{"PheeraplQrpvznyQvtvgf":2,"PheeraplQrpvznyFrcnengbe":".","VfErnqBayl":snyfr,"PheeraplTebhcFvmrf":[3],"AhzoreTebhcFvmrf":[3],"CrepragTebhcFvmrf":[3],"PheeraplTebhcFrcnengbe":",","PheeraplFlzoby":"$","AnAFlzoby":"AnA","PheeraplArtngvirCnggrea":0,"AhzoreArtngvirCnggrea":1,"CrepragCbfvgvirCnggrea":0,"CrepragArtngvirCnggrea":0,"ArtngvirVasvavglFlzoby":"-Vasvavgl","ArtngvirFvta":"-","AhzoreQrpvznyQvtvgf":2,"AhzoreQrpvznyFrcnengbe":".","AhzoreTebhcFrcnengbe":",","PheeraplCbfvgvirCnggrea":0,"CbfvgvirVasvavglFlzoby":"Vasvavgl","CbfvgvirFvta":"+","CrepragQrpvznyQvtvgf":2,"CrepragQrpvznyFrcnengbe":".","CrepragTebhcFrcnengbe":",","CrepragFlzoby":"%","CreZvyyrFlzoby":"\u2030","AngvirQvtvgf":["0","1","2","3","4","5","6","7","8","9"],"QvtvgFhofgvghgvba":1},"qngrGvzrSbezng":{"NZQrfvtangbe":"NZ","Pnyraqne":{"ZvaFhccbegrqQngrGvzr":"@-62135568000000@","ZnkFhccbegrqQngrGvzr":"@253402300799999@","NytbevguzGlcr":1,"PnyraqneGlcr":1,"Renf":[1],"GjbQvtvgLrneZnk":2029,"VfErnqBayl":snyfr},"QngrFrcnengbe":"/","SvefgQnlBsJrrx":0,"PnyraqneJrrxEhyr":0,"ShyyQngrGvzrCnggrea":"qqqq, ZZZZ qq, llll u:zz:ff gg","YbatQngrCnggrea":"qqqq, ZZZZ qq, llll","YbatGvzrCnggrea":"u:zz:ff gg","ZbaguQnlCnggrea":"ZZZZ qq","CZQrfvtangbe":"CZ","ESP1123Cnggrea":"qqq, qq ZZZ llll UU\':\'zz\':\'ff \'TZG\'","FubegQngrCnggrea":"Z/q/llll","FubegGvzrCnggrea":"u:zz gg","FbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq\'G\'UU\':\'zz\':\'ff","GvzrFrcnengbe":":","HavirefnyFbegnoyrQngrGvzrCnggrea":"llll\'-\'ZZ\'-\'qq UU\':\'zz\':\'ff\'M\'","LrneZbaguCnggrea":"ZZZZ, llll","NooerivngrqQnlAnzrf":["Fha","Zba","Ghr","Jrq","Guh","Sev","Fng"],"FubegrfgQnlAnzrf":["Fh","Zb","Gh","Jr","Gu","Se","Fn"],"QnlAnzrf":["Fhaqnl","Zbaqnl","Ghrfqnl","Jrqarfqnl","Guhefqnl","Sevqnl","Fngheqnl"],"NooerivngrqZbaguAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""],"VfErnqBayl":snyfr,"AngvirPnyraqneAnzr":"Tertbevna Pnyraqne","NooerivngrqZbaguTravgvirAnzrf":["Wna","Sro","Zne","Nce","Znl","Wha","Why","Nht","Frc","Bpg","Abi","Qrp",""],"ZbaguTravgvirAnzrf":["Wnahnel","Sroehnel","Znepu","Ncevy","Znl","Whar","Whyl","Nhthfg","Frcgrzore","Bpgbore","Abirzore","Qrprzore",""]}}';
-  var str4 = 'HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str5 = 'HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
-  var re18 = /^\s+|\s+$/g;
-  var str6 = 'uggc://jjj.snprobbx.pbz/vaqrk.cuc';
-  var re19 = /(?:^|\s+)ba(?:\s+|$)/;
-  var re20 = /[+, ]/;
-  var re21 = /ybnqrq|pbzcyrgr/;
-  var str7 = ';;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(d1)c=d1.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+d1.Cnaryf[c].Jvqgu,o=g+d1.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(d1&&d1.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(d1)d1.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(d1)d1.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;d1.IjTc=d2(n,c){ine nq=d1;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;d1.IjTpy=d2(n,c,p){ine cn=d1.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;d1.IjGenpr=d2(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;d1.IjYvzvg1=d2(n,f){ine nq=d1,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;d1.IjYvzvg0=d2(n,f){ine nq=d1,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;d1.IjRVST=d2(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",d1.rvsg);};;d1.IjNavzSHC=d2(n,c){ine nq=d1;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;d1.IjTrgErnyCbfvgvba=d2(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;d1.IjPnapryGvzrbhg=d2(n,c){c=IjTc(n,c);ine cay=d1.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;d1.IjPnapryNyyGvzrbhgf=d2(n){vs(d1.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<d1.bac;c++)IjPnapryGvzrbhg(n,c);};;d1.IjFgnegGvzrbhg=d2(n,c,bG){c=IjTc(n,c);ine cay=d1.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;d1.IjErfrgGvzrbhg=d2(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;d1.IjErfrgNyyGvzrbhgf=d2(n){sbe(ine c=0;c<d1.bac;c++)IjErfrgGvzrbhg(n,c);};;d1.IjQrgnpure=d2(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag(\'ba"+rig+"\',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbirRiragYvfgrare(\'"+rig+"\',"+sap+"NQ_VQ,snyfr)");}pngpu(r){}};;d1.IjPyrnaHc=d2(n){IjCvat(n,"G");ine nq=d1;sbe(ine v=0;v<nq.Cnaryf.yratgu;v++){IjUvqrCnary(n,v,gehr);}gel{IjTrgBow(nq.gya).vaareUGZY="";}pngpu(r){}vs(nq.gya!=nq.gya2)gel{IjTrgBow(nq.gya2).vaareUGZY="";}pngpu(r){}gel{d1=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"haybnq","IjHayNQ_VQ");}pngpu(r){}gel{jvaqbj.IjHayNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"fpebyy","IjFeNQ_VQ");}pngpu(r){}gel{jvaqbj.IjFeNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n,"erfvmr","IjEmNQ_VQ");}pngpu(r){}gel{jvaqbj.IjEmNQ_VQ=ahyy;}pngpu(r){}gel{IjQrgnpure(n';
-  var str8 = ';;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(jvaqbj.IjNqNQ_VQ)c=jvaqbj.IjNqNQ_VQ.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Jvqgu,o=g+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(jvaqbj.IjNqNQ_VQ&&jvaqbj.IjNqNQ_VQ.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjTc=shapgvba(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;jvaqbj.IjNqNQ_VQ.IjTpy=shapgvba(n,c,p){ine cn=jvaqbj.IjNqNQ_VQ.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;jvaqbj.IjNqNQ_VQ.IjGenpr=shapgvba(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjYvzvg1=shapgvba(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;jvaqbj.IjNqNQ_VQ.IjYvzvg0=shapgvba(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;jvaqbj.IjNqNQ_VQ.IjRVST=shapgvba(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",jvaqbj.IjNqNQ_VQ.rvsg);};;jvaqbj.IjNqNQ_VQ.IjNavzSHC=shapgvba(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;jvaqbj.IjNqNQ_VQ.IjTrgErnyCbfvgvba=shapgvba(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;jvaqbj.IjNqNQ_VQ.IjPnapryGvzrbhg=shapgvba(n,c){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;jvaqbj.IjNqNQ_VQ.IjPnapryNyyGvzrbhgf=shapgvba(n){vs(jvaqbj.IjNqNQ_VQ.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjPnapryGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjFgnegGvzrbhg=shapgvba(n,c,bG){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;jvaqbj.IjNqNQ_VQ.IjErfrgGvzrbhg=shapgvba(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;jvaqbj.IjNqNQ_VQ.IjErfrgNyyGvzrbhgf=shapgvba(n){sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjErfrgGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjQrgnpure=shapgvba(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag(\'ba"+rig+"\',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbir';
-  var str9 = ';;jvaqbj.IjPurpxZbhfrCbfvgvbaNQ_VQ=shapgvba(r){vs(!r)ine r=jvaqbj.rirag;ine c=-1;vs(jvaqbj.IjNqNQ_VQ)c=jvaqbj.IjNqNQ_VQ.EbyybssCnary;ine bo=IjTrgBow("IjCnayNQ_VQ_"+c);vs(bo&&bo.fglyr.ivfvovyvgl=="ivfvoyr"){ine fns=IjFns?8:0;ine pheK=r.pyvragK+IjBOFpe("U")+fns,pheL=r.pyvragL+IjBOFpe("I")+fns;ine y=IjBOEC(NQ_VQ,bo,"Y"),g=IjBOEC(NQ_VQ,bo,"G");ine e=y+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Jvqgu,o=g+jvaqbj.IjNqNQ_VQ.Cnaryf[c].Urvtug;vs((pheK<y)||(pheK>e)||(pheL<g)||(pheL>o)){vs(jvaqbj.IjBaEbyybssNQ_VQ)IjBaEbyybssNQ_VQ(c);ryfr IjPybfrNq(NQ_VQ,c,gehr,"");}ryfr erghea;}IjPnapryZbhfrYvfgrareNQ_VQ();};;jvaqbj.IjFrgEbyybssCnaryNQ_VQ=shapgvba(c){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;c=IjTc(NQ_VQ,c);vs(jvaqbj.IjNqNQ_VQ&&jvaqbj.IjNqNQ_VQ.EbyybssCnary>-1)IjPnapryZbhfrYvfgrareNQ_VQ();vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=c;gel{vs(q.nqqRiragYvfgrare)q.nqqRiragYvfgrare(z,s,snyfr);ryfr vs(q.nggnpuRirag)q.nggnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjPnapryZbhfrYvfgrareNQ_VQ=shapgvba(){ine z="zbhfrzbir",q=qbphzrag,s=IjPurpxZbhfrCbfvgvbaNQ_VQ;vs(jvaqbj.IjNqNQ_VQ)jvaqbj.IjNqNQ_VQ.EbyybssCnary=-1;gel{vs(q.erzbirRiragYvfgrare)q.erzbirRiragYvfgrare(z,s,snyfr);ryfr vs(q.qrgnpuRirag)q.qrgnpuRirag("ba"+z,s);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjTc=d2(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(vfAnA(c)){sbe(ine v=0;v<nq.Cnaryf.yratgu;v++)vs(nq.Cnaryf[v].Anzr==c)erghea v;erghea 0;}erghea c;};;jvaqbj.IjNqNQ_VQ.IjTpy=d2(n,c,p){ine cn=jvaqbj.IjNqNQ_VQ.Cnaryf[IjTc(n,c)];vs(!cn)erghea 0;vs(vfAnA(p)){sbe(ine v=0;v<cn.Pyvpxguehf.yratgu;v++)vs(cn.Pyvpxguehf[v].Anzr==p)erghea v;erghea 0;}erghea p;};;jvaqbj.IjNqNQ_VQ.IjGenpr=d2(n,f){gel{vs(jvaqbj["Ij"+"QtQ"])jvaqbj["Ij"+"QtQ"](n,1,f);}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjYvzvg1=d2(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0,p=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.FzV.yratgu>0)nq.FzV+="/";nq.FzV+=vh[v];nq.FtZ[nq.FtZ.yratgu]=snyfr;}}};;jvaqbj.IjNqNQ_VQ.IjYvzvg0=d2(n,f){ine nq=jvaqbj.IjNqNQ_VQ,vh=f.fcyvg("/");sbe(ine v=0;v<vh.yratgu;v++){vs(vh[v].yratgu>0){vs(nq.OvC.yratgu>0)nq.OvC+="/";nq.OvC+=vh[v];}}};;jvaqbj.IjNqNQ_VQ.IjRVST=d2(n,c){jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]=IjTrgBow("IjCnayNQ_VQ_"+c+"_Bow");vs(jvaqbj["IjCnayNQ_VQ_"+c+"_Bow"]==ahyy)frgGvzrbhg("IjRVST(NQ_VQ,"+c+")",jvaqbj.IjNqNQ_VQ.rvsg);};;jvaqbj.IjNqNQ_VQ.IjNavzSHC=d2(n,c){ine nq=jvaqbj.IjNqNQ_VQ;vs(c>nq.Cnaryf.yratgu)erghea;ine cna=nq.Cnaryf[c],nn=gehr,on=gehr,yn=gehr,en=gehr,cn=nq.Cnaryf[0],sf=nq.ShF,j=cn.Jvqgu,u=cn.Urvtug;vs(j=="100%"){j=sf;en=snyfr;yn=snyfr;}vs(u=="100%"){u=sf;nn=snyfr;on=snyfr;}vs(cn.YnY=="Y")yn=snyfr;vs(cn.YnY=="E")en=snyfr;vs(cn.GnY=="G")nn=snyfr;vs(cn.GnY=="O")on=snyfr;ine k=0,l=0;fjvgpu(nq.NshP%8){pnfr 0:oernx;pnfr 1:vs(nn)l=-sf;oernx;pnfr 2:k=j-sf;oernx;pnfr 3:vs(en)k=j;oernx;pnfr 4:k=j-sf;l=u-sf;oernx;pnfr 5:k=j-sf;vs(on)l=u;oernx;pnfr 6:l=u-sf;oernx;pnfr 7:vs(yn)k=-sf;l=u-sf;oernx;}vs(nq.NshP++ <nq.NshG)frgGvzrbhg(("IjNavzSHC(NQ_VQ,"+c+")"),nq.NshC);ryfr{k=-1000;l=k;}cna.YrsgBssfrg=k;cna.GbcBssfrg=l;IjNhErcb(n,c);};;jvaqbj.IjNqNQ_VQ.IjTrgErnyCbfvgvba=d2(n,b,j){erghea IjBOEC.nccyl(guvf,nethzragf);};;jvaqbj.IjNqNQ_VQ.IjPnapryGvzrbhg=d2(n,c){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&cay.UgU!=""){pyrneGvzrbhg(cay.UgU);}};;jvaqbj.IjNqNQ_VQ.IjPnapryNyyGvzrbhgf=d2(n){vs(jvaqbj.IjNqNQ_VQ.YbpxGvzrbhgPunatrf)erghea;sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjPnapryGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjFgnegGvzrbhg=d2(n,c,bG){c=IjTc(n,c);ine cay=jvaqbj.IjNqNQ_VQ.Cnaryf[c];vs(cay&&((cay.UvqrGvzrbhgInyhr>0)||(nethzragf.yratgu==3&&bG>0))){pyrneGvzrbhg(cay.UgU);cay.UgU=frgGvzrbhg(cay.UvqrNpgvba,(nethzragf.yratgu==3?bG:cay.UvqrGvzrbhgInyhr));}};;jvaqbj.IjNqNQ_VQ.IjErfrgGvzrbhg=d2(n,c,bG){c=IjTc(n,c);IjPnapryGvzrbhg(n,c);riny("IjFgnegGvzrbhg(NQ_VQ,c"+(nethzragf.yratgu==3?",bG":"")+")");};;jvaqbj.IjNqNQ_VQ.IjErfrgNyyGvzrbhgf=d2(n){sbe(ine c=0;c<jvaqbj.IjNqNQ_VQ.bac;c++)IjErfrgGvzrbhg(n,c);};;jvaqbj.IjNqNQ_VQ.IjQrgnpure=d2(n,rig,sap){gel{vs(IjQVR5)riny("jvaqbj.qrgnpuRirag(\'ba"+rig+"\',"+sap+"NQ_VQ)");ryfr vs(!IjQVRZnp)riny("jvaqbj.erzbirRiragYvfgrare(\'"+rig+"\',"+sap+"NQ_VQ,snyfr)");}pngpu(r){}};;jvaqbj.IjNqNQ_VQ.IjPyrna';
-
-  var s26 = computeInputVariants('VC=74.125.75.1', 81);
-  var s27 = computeInputVariants('9.0  e115', 78);
-  var s28 = computeInputVariants('k',78);
-  var s29 = computeInputVariants(str2, 81);
-  var s30 = computeInputVariants(str3, 81);
-  var s31 = computeInputVariants('144631658', 78);
-  var s32 = computeInputVariants('Pbhagel=IIZ%3Q', 78);
-  var s33 = computeInputVariants('Pbhagel=IIZ=', 78);
-  var s34 = computeInputVariants('CersreerqPhygherCraqvat=', 78);
-  var s35 = computeInputVariants(str4, 78);
-  var s36 = computeInputVariants(str5, 78);
-  var s37 = computeInputVariants('__hgzp=144631658', 78);
-  var s38 = computeInputVariants('gvzrMbar=-8', 78);
-  var s39 = computeInputVariants('gvzrMbar=0', 78);
-  // var s40 = computeInputVariants(s15[i], 78);
-  var s41 = computeInputVariants('vachggrkg  QBZPbageby_cynprubyqre', 78);
-  var s42 = computeInputVariants('xrlqbja', 78);
-  var s43 = computeInputVariants('xrlhc', 78);
-  var s44 = computeInputVariants('uggc://zrffntvat.zlfcnpr.pbz/vaqrk.psz', 77);
-  var s45 = computeInputVariants('FrffvbaFgbentr=%7O%22GnoThvq%22%3N%7O%22thvq%22%3N1231367125017%7Q%7Q', 73);
-  var s46 = computeInputVariants(str6, 72);
-  var s47 = computeInputVariants('3.5.0.0', 70);
-  var s48 = computeInputVariants(str7, 70);
-  var s49 = computeInputVariants(str8, 70);
-  var s50 = computeInputVariants(str9, 70);
-  var s51 = computeInputVariants('NI%3Q1_CI%3Q1_PI%3Q1_EI%3Q1_HI%3Q1_HP%3Q1_IC%3Q0.0.0.0_IH%3Q0', 70);
-  var s52 = computeInputVariants('svz_zlfcnpr_ubzrcntr_abgybttrqva,svz_zlfcnpr_aba_HTP,svz_zlfcnpr_havgrq-fgngrf', 70);
-  var s53 = computeInputVariants('ybnqvat', 70);
-  var s54 = computeInputVariants('#', 68);
-  var s55 = computeInputVariants('ybnqrq', 68);
-  var s56 = computeInputVariants('pbybe', 49);
-  var s57 = computeInputVariants('uggc://sevraqf.zlfcnpr.pbz/vaqrk.psz', 44);
-
-  function runBlock1() {
-    for (var i = 0; i < 81; i++) {
-      re8.exec(s26[i]);
-    }
-    for (var i = 0; i < 78; i++) {
-      s27[i].replace(/(\s)+e/, '');
-      s28[i].replace(/./, '');
-      s29[i].replace(re17, '');
-      s30[i].replace(re17, '');
-      re8.exec(s31[i]);
-      re8.exec(s32[i]);
-      re8.exec(s33[i]);
-      re8.exec(s34[i]);
-      re8.exec(s35[i]);
-      re8.exec(s36[i]);
-      re8.exec(s37[i]);
-      re8.exec(s38[i]);
-      re8.exec(s39[i]);
-      /Fnsnev\/(\d+\.\d+)/.exec(s15[i]);
-      re3.exec(s41[i]);
-      re0.exec(s42[i]);
-      re0.exec(s43[i]);
-    }
-    for (var i = 0; i < 77; i++) {
-      s44[i].replace(re12, '');
-      re13.exec(s44[i]);
-    }
-    for (var i = 0; i < 73; i++) {
-      s45[i].replace(re18, '');
-    }
-    for (var i = 0; i < 72; i++) {
-      re1.exec(s46[i]);
-    }
-    for (var i = 0; i < 71; i++) {
-      re19.exec('');
-    }
-    for (var i = 0; i < 70; i++) {
-      s47[i].replace(re11, '');
-      s48[i].replace(/d1/g, '');
-      s49[i].replace(/NQ_VQ/g, '');
-      s50[i].replace(/d2/g, '');
-      s51[i].replace(/_/g, '');
-      s52[i].split(re20);
-      re21.exec(s53[i]);
-    }
-    for (var i = 0; i < 68; i++) {
-      re1.exec(s54[i]);
-      /(?:ZFVR.(\d+\.\d+))|(?:(?:Sversbk|TenaCnenqvfb|Vprjrnfry).(\d+\.\d+))|(?:Bcren.(\d+\.\d+))|(?:NccyrJroXvg.(\d+(?:\.\d+)?))/.exec(s15[i]);
-      /(Znp BF K)|(Jvaqbjf;)/.exec(s15[i]);
-      /Trpxb\/([0-9]+)/.exec(s15[i]);
-      re21.exec(s55[i]);
-    }
-    for (var i = 0; i < 49; i++) {
-      re16.exec(s56[i]);
-    }
-    for (var i = 0; i < 44; i++) {
-      s57[i].replace(re12, '');
-      re13.exec(s57[i]);
-    }
-  }
-  var re22 = /\bso_zrah\b/;
-  var re23 = /^(?:(?:[^:\/?#]+):)?(?:\/\/(?:[^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/;
-  var re24 = /uggcf?:\/\/([^\/]+\.)?snprobbx\.pbz\//;
-  var re25 = /"/g;
-  var re26 = /^([^?#]+)(?:\?([^#]*))?(#.*)?/;
-  var s57a = computeInputVariants('fryrpgrq', 40);
-  var s58 = computeInputVariants('vachggrkg uvqqra_ryrz', 40);
-  var s59 = computeInputVariants('vachggrkg ', 40);
-  var s60 = computeInputVariants('vachggrkg', 40);
-  var s61 = computeInputVariants('uggc://jjj.snprobbx.pbz/', 40);
-  var s62 = computeInputVariants('uggc://jjj.snprobbx.pbz/ybtva.cuc', 40);
-  var s63 = computeInputVariants('Funer guvf tnqtrg', 40);
-  var s64 = computeInputVariants('uggc://jjj.tbbtyr.pbz/vt/qverpgbel', 40);
-  var s65 = computeInputVariants('419', 40);
-  var s66 = computeInputVariants('gvzrfgnzc', 40);
-
-  function runBlock2() {
-    for (var i = 0; i < 40; i++) {
-      s57a[i].replace(re14, '');
-      s57a[i].replace(re15, '');
-    }
-    for (var i = 0; i < 39; i++) {
-      s58[i].replace(/\buvqqra_ryrz\b/g, '');
-      re3.exec(s59[i]);
-      re3.exec(s60[i]);
-      re22.exec('HVYvaxOhggba');
-      re22.exec('HVYvaxOhggba_E');
-      re22.exec('HVYvaxOhggba_EJ');
-      re22.exec('zrah_ybtva_pbagnvare');
-      /\buvqqra_ryrz\b/.exec('vachgcnffjbeq');
-    }
-    for (var i = 0; i < 37; i++) {
-      re8.exec('111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904');
-      re8.exec('SbeprqRkcvengvba=633669315660164980');
-      re8.exec('FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904');
-    }
-    for (var i = 0; i < 35; i++) {
-      'puvyq p1 svefg'.replace(re14, '');
-      'puvyq p1 svefg'.replace(re15, '');
-      'sylbhg pybfrq'.replace(re14, '');
-      'sylbhg pybfrq'.replace(re15, '');
-    }
-    for (var i = 0; i < 34; i++) {
-      re19.exec('gno2');
-      re19.exec('gno3');
-      re8.exec('44132r503660');
-      re8.exec('SbeprqRkcvengvba=633669316860113296');
-      re8.exec('AFP_zp_dfctwzs-aowb_80=44132r503660');
-      re8.exec('FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696');
-      re8.exec('s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696');
-    }
-    for (var i = 0; i < 32; i++) {
-      /puebzr/i.exec(s15[i]);
-    }
-    for (var i = 0; i < 31; i++) {
-      s61[i].replace(re23, '');
-      re8.exec('SbeprqRkcvengvba=633669358527244818');
-      re8.exec('VC=66.249.85.130');
-      re8.exec('FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58');
-      re8.exec('s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58');
-      re24.exec(s61[i]);
-    }
-    for (var i = 0; i < 30; i++) {
-      s65[i].replace(re6, '');
-      /(?:^|\s+)gvzrfgnzc(?:\s+|$)/.exec(s66[i]);
-      re7.exec(s65[i]);
-    }
-    for (var i = 0; i < 29; i++) {
-      s62[i].replace(re23, '');
-    }
-    for (var i = 0; i < 28; i++) {
-      s63[i].replace(re25, '');
-      s63[i].replace(re12, '');
-      re26.exec(s64[i]);
-    }
-  }
-  var re27 = /-\D/g;
-  var re28 = /\bnpgvingr\b/;
-  var re29 = /%2R/gi;
-  var re30 = /%2S/gi;
-  var re31 = /^(mu-(PA|GJ)|wn|xb)$/;
-  var re32 = /\s?;\s?/;
-  var re33 = /%\w?$/;
-  var re34 = /TNQP=([^;]*)/i;
-  var str10 = 'FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669315660164980&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
-  var str11 = 'FrffvbaQQS2=111soqs57qo8o8480qo18sor2011r3n591q7s6s37r120904; __hgzm=144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.3426875219718084000.1231363570.1231363570.1231363570.1; __hgzo=144631658.0.10.1231363570; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669315660164980&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str12 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231363514065&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231363514065&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Subzr.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1326469221.1231363557&tn_fvq=1231363557&tn_uvq=1114636509&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
-  var str13 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669315660164980&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str14 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669315660164980&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
-  var re35 = /[<>]/g;
-  var str15 = 'FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669316860113296&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzs-aowb_80=44132r503660';
-  var str16 = 'FrffvbaQQS2=s6r4579npn4rn2135s904r0s75pp1o5334p6s6pospo12696; AFP_zp_dfctwzs-aowb_80=44132r503660; __hgzm=144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.965867047679498800.1231363638.1231363638.1231363638.1; __hgzo=144631658.0.10.1231363638; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669316860113296&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str17 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231363621014&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231363621014&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyr.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=348699119.1231363624&tn_fvq=1231363624&tn_uvq=895511034&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
-  var str18 = 'uggc://jjj.yrobapbva.se/yv';
-  var str19 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669316860113296&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str20 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669316860113296&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
-
-  var s67 = computeInputVariants('e115', 27);
-  var s68 = computeInputVariants('qvfcynl', 27);
-  var s69 = computeInputVariants('cbfvgvba', 27);
-  var s70 = computeInputVariants('uggc://jjj.zlfcnpr.pbz/', 27);
-  var s71 = computeInputVariants('cntrivrj', 27);
-  var s72 = computeInputVariants('VC=74.125.75.3', 27);
-  var s73 = computeInputVariants('ra', 27);
-  var s74 = computeInputVariants(str10, 27);
-  var s75 = computeInputVariants(str11, 27);
-  var s76 = computeInputVariants(str12, 27);
-  var s77 = computeInputVariants(str17, 27);
-  var s78 = computeInputVariants(str18, 27);
-
-  function runBlock3() {
-    for (var i = 0; i < 27; i++) {
-      s67[i].replace(/[A-Za-z]/g, '');
-    }
-    for (var i = 0; i < 23; i++) {
-      s68[i].replace(re27, '');
-      s69[i].replace(re27, '');
-    }
-    for (var i = 0; i < 22; i++) {
-      'unaqyr'.replace(re14, '');
-      'unaqyr'.replace(re15, '');
-      'yvar'.replace(re14, '');
-      'yvar'.replace(re15, '');
-      'cnerag puebzr6 fvatyr1 gno'.replace(re14, '');
-      'cnerag puebzr6 fvatyr1 gno'.replace(re15, '');
-      'fyvqre'.replace(re14, '');
-      'fyvqre'.replace(re15, '');
-      re28.exec('');
-    }
-    for (var i = 0; i < 21; i++) {
-      s70[i].replace(re12, '');
-      re13.exec(s70[i]);
-    }
-    for (var i = 0; i < 20; i++) {
-      s71[i].replace(re29, '');
-      s71[i].replace(re30, '');
-      re19.exec('ynfg');
-      re19.exec('ba svefg');
-      re8.exec(s72[i]);
-    }
-    for (var i = 0; i < 19; i++) {
-      re31.exec(s73[i]);
-    }
-    for (var i = 0; i < 18; i++) {
-      s74[i].split(re32);
-      s75[i].split(re32);
-      s76[i].replace(re33, '');
-      re8.exec('144631658.0.10.1231363570');
-      re8.exec('144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re8.exec('144631658.3426875219718084000.1231363570.1231363570.1231363570.1');
-      re8.exec(str13);
-      re8.exec(str14);
-      re8.exec('__hgzn=144631658.3426875219718084000.1231363570.1231363570.1231363570.1');
-      re8.exec('__hgzo=144631658.0.10.1231363570');
-      re8.exec('__hgzm=144631658.1231363570.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re34.exec(s74[i]);
-      re34.exec(s75[i]);
-    }
-    for (var i = 0; i < 17; i++) {
-      s15[i].match(/zfvr/gi);
-      s15[i].match(/bcren/gi);
-      str15.split(re32);
-      str16.split(re32);
-      'ohggba'.replace(re14, '');
-      'ohggba'.replace(re15, '');
-      'puvyq p1 svefg sylbhg pybfrq'.replace(re14, '');
-      'puvyq p1 svefg sylbhg pybfrq'.replace(re15, '');
-      'pvgvrf'.replace(re14, '');
-      'pvgvrf'.replace(re15, '');
-      'pybfrq'.replace(re14, '');
-      'pybfrq'.replace(re15, '');
-      'qry'.replace(re14, '');
-      'qry'.replace(re15, '');
-      'uqy_zba'.replace(re14, '');
-      'uqy_zba'.replace(re15, '');
-      s77[i].replace(re33, '');
-      s78[i].replace(/%3P/g, '');
-      s78[i].replace(/%3R/g, '');
-      s78[i].replace(/%3q/g, '');
-      s78[i].replace(re35, '');
-      'yvaxyvfg16'.replace(re14, '');
-      'yvaxyvfg16'.replace(re15, '');
-      'zvahf'.replace(re14, '');
-      'zvahf'.replace(re15, '');
-      'bcra'.replace(re14, '');
-      'bcra'.replace(re15, '');
-      'cnerag puebzr5 fvatyr1 ps NU'.replace(re14, '');
-      'cnerag puebzr5 fvatyr1 ps NU'.replace(re15, '');
-      'cynlre'.replace(re14, '');
-      'cynlre'.replace(re15, '');
-      'cyhf'.replace(re14, '');
-      'cyhf'.replace(re15, '');
-      'cb_uqy'.replace(re14, '');
-      'cb_uqy'.replace(re15, '');
-      'hyJVzt'.replace(re14, '');
-      'hyJVzt'.replace(re15, '');
-      re8.exec('144631658.0.10.1231363638');
-      re8.exec('144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re8.exec('144631658.965867047679498800.1231363638.1231363638.1231363638.1');
-      re8.exec('4413268q3660');
-      re8.exec('4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n');
-      re8.exec('SbeprqRkcvengvba=633669321699093060');
-      re8.exec('VC=74.125.75.20');
-      re8.exec(str19);
-      re8.exec(str20);
-      re8.exec('AFP_zp_tfwsbrg-aowb_80=4413268q3660');
-      re8.exec('FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n');
-      re8.exec('__hgzn=144631658.965867047679498800.1231363638.1231363638.1231363638.1');
-      re8.exec('__hgzo=144631658.0.10.1231363638');
-      re8.exec('__hgzm=144631658.1231363638.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re34.exec(str15);
-      re34.exec(str16);
-    }
-  }
-  var re36 = /uers|fep|fryrpgrq/;
-  var re37 = /\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g;
-  var re38 = /^(\w+|\*)$/;
-  var str21 = 'FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58; ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669358527244818&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
-  var str22 = 'FrffvbaQQS2=s15q53p9n372sn76npr13o271n4s3p5r29p235746p908p58; __hgzm=144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.4127520630321984500.1231367822.1231367822.1231367822.1; __hgzo=144631658.0.10.1231367822; __hgzp=144631658; ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669358527244818&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str23 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231367803797&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367803797&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Szrffntvat.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1192552091.1231367807&tn_fvq=1231367807&tn_uvq=1155446857&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
-  var str24 = 'ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669358527244818&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str25 = 'ZFPhygher=VC=66.249.85.130&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669358527244818&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
-  var str26 = 'hy.ynat-fryrpgbe';
-  var re39 = /\\/g;
-  var re40 = / /g;
-  var re41 = /\/\xc4\/t/;
-  var re42 = /\/\xd6\/t/;
-  var re43 = /\/\xdc\/t/;
-  var re44 = /\/\xdf\/t/;
-  var re45 = /\/\xe4\/t/;
-  var re46 = /\/\xf6\/t/;
-  var re47 = /\/\xfc\/t/;
-  var re48 = /\W/g;
-  var re49 = /uers|fep|fglyr/;
-  var s79 = computeInputVariants(str21, 16);
-  var s80 = computeInputVariants(str22, 16);
-  var s81 = computeInputVariants(str23, 16);
-  var s82 = computeInputVariants(str26, 16);
-
-  function runBlock4() {
-    for (var i = 0; i < 16; i++) {
-      ''.replace(/\*/g, '');
-      /\bnpgvir\b/.exec('npgvir');
-      /sversbk/i.exec(s15[i]);
-      re36.exec('glcr');
-      /zfvr/i.exec(s15[i]);
-      /bcren/i.exec(s15[i]);
-    }
-    for (var i = 0; i < 15; i++) {
-      s79[i].split(re32);
-      s80[i].split(re32);
-      'uggc://ohyyrgvaf.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
-      s81[i].replace(re33, '');
-      'yv'.replace(re37, '');
-      'yv'.replace(re18, '');
-      re8.exec('144631658.0.10.1231367822');
-      re8.exec('144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re8.exec('144631658.4127520630321984500.1231367822.1231367822.1231367822.1');
-      re8.exec(str24);
-      re8.exec(str25);
-      re8.exec('__hgzn=144631658.4127520630321984500.1231367822.1231367822.1231367822.1');
-      re8.exec('__hgzo=144631658.0.10.1231367822');
-      re8.exec('__hgzm=144631658.1231367822.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re34.exec(s79[i]);
-      re34.exec(s80[i]);
-      /\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)["']?(.*?)["']?)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g.exec(s82[i]);
-      re13.exec('uggc://ohyyrgvaf.zlfcnpr.pbz/vaqrk.psz');
-      re38.exec('yv');
-    }
-    for (var i = 0; i < 14; i++) {
-      ''.replace(re18, '');
-      '9.0  e115'.replace(/(\s+e|\s+o[0-9]+)/, '');
-      'Funer guvf tnqtrg'.replace(/</g, '');
-      'Funer guvf tnqtrg'.replace(/>/g, '');
-      'Funer guvf tnqtrg'.replace(re39, '');
-      'uggc://cebsvyrrqvg.zlfcnpr.pbz/vaqrk.psz'.replace(re12, '');
-      'grnfre'.replace(re40, '');
-      'grnfre'.replace(re41, '');
-      'grnfre'.replace(re42, '');
-      'grnfre'.replace(re43, '');
-      'grnfre'.replace(re44, '');
-      'grnfre'.replace(re45, '');
-      'grnfre'.replace(re46, '');
-      'grnfre'.replace(re47, '');
-      'grnfre'.replace(re48, '');
-      re16.exec('znetva-gbc');
-      re16.exec('cbfvgvba');
-      re19.exec('gno1');
-      re9.exec('qz');
-      re9.exec('qg');
-      re9.exec('zbqobk');
-      re9.exec('zbqobkva');
-      re9.exec('zbqgvgyr');
-      re13.exec('uggc://cebsvyrrqvg.zlfcnpr.pbz/vaqrk.psz');
-      re26.exec('/vt/znvytnqtrg');
-      re49.exec('glcr');
-    }
-  }
-  var re50 = /(?:^|\s+)fryrpgrq(?:\s+|$)/;
-  var re51 = /\&/g;
-  var re52 = /\+/g;
-  var re53 = /\?/g;
-  var re54 = /\t/g;
-  var re55 = /(\$\{nqiHey\})|(\$nqiHey\b)/g;
-  var re56 = /(\$\{cngu\})|(\$cngu\b)/g;
-  function runBlock5() {
-    for (var i = 0; i < 13; i++) {
-      'purpx'.replace(re14, '');
-      'purpx'.replace(re15, '');
-      'pvgl'.replace(re14, '');
-      'pvgl'.replace(re15, '');
-      'qrpe fyvqrgrkg'.replace(re14, '');
-      'qrpe fyvqrgrkg'.replace(re15, '');
-      'svefg fryrpgrq'.replace(re14, '');
-      'svefg fryrpgrq'.replace(re15, '');
-      'uqy_rag'.replace(re14, '');
-      'uqy_rag'.replace(re15, '');
-      'vape fyvqrgrkg'.replace(re14, '');
-      'vape fyvqrgrkg'.replace(re15, '');
-      'vachggrkg QBZPbageby_cynprubyqre'.replace(re5, '');
-      'cnerag puebzr6 fvatyr1 gno fryrpgrq'.replace(re14, '');
-      'cnerag puebzr6 fvatyr1 gno fryrpgrq'.replace(re15, '');
-      'cb_guz'.replace(re14, '');
-      'cb_guz'.replace(re15, '');
-      'fhozvg'.replace(re14, '');
-      'fhozvg'.replace(re15, '');
-      re50.exec('');
-      /NccyrJroXvg\/([^\s]*)/.exec(s15[i]);
-      /XUGZY/.exec(s15[i]);
-    }
-    for (var i = 0; i < 12; i++) {
-      '${cebg}://${ubfg}${cngu}/${dz}'.replace(/(\$\{cebg\})|(\$cebg\b)/g, '');
-      '1'.replace(re40, '');
-      '1'.replace(re10, '');
-      '1'.replace(re51, '');
-      '1'.replace(re52, '');
-      '1'.replace(re53, '');
-      '1'.replace(re39, '');
-      '1'.replace(re54, '');
-      '9.0  e115'.replace(/^(.*)\..*$/, '');
-      '9.0  e115'.replace(/^.*e(.*)$/, '');
-      '<!-- ${nqiHey} -->'.replace(re55, '');
-      '<fpevcg glcr="grkg/wninfpevcg" fep="${nqiHey}"></fpevcg>'.replace(re55, '');
-      s21[i].replace(/^.*\s+(\S+\s+\S+$)/, '');
-      'tzk%2Subzrcntr%2Sfgneg%2Sqr%2S'.replace(re30, '');
-      'tzk'.replace(re30, '');
-      'uggc://${ubfg}${cngu}/${dz}'.replace(/(\$\{ubfg\})|(\$ubfg\b)/g, '');
-      'uggc://nqpyvrag.hvzfrei.arg${cngu}/${dz}'.replace(re56, '');
-      'uggc://nqpyvrag.hvzfrei.arg/wf.at/${dz}'.replace(/(\$\{dz\})|(\$dz\b)/g, '');
-      'frpgvba'.replace(re29, '');
-      'frpgvba'.replace(re30, '');
-      'fvgr'.replace(re29, '');
-      'fvgr'.replace(re30, '');
-      'fcrpvny'.replace(re29, '');
-      'fcrpvny'.replace(re30, '');
-      re36.exec('anzr');
-      /e/.exec('9.0  e115');
-    }
-  }
-  var re57 = /##yv4##/gi;
-  var re58 = /##yv16##/gi;
-  var re59 = /##yv19##/gi;
-  var str27 = '<hy pynff="nqi">##yv4##Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.##yv16##Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
-  var str28 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.##yv16##Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
-  var str29 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.##yv19##Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
-  var str30 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.##OE## ##OE## ##N##Yrnea zber##/N##</hy>';
-  var str31 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.<oe> <oe> ##N##Yrnea zber##/N##</hy>';
-  var str32 = '<hy pynff="nqi"><yv vq="YvOYG4" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg4.cat)">Cbjreshy Zvpebfbsg grpuabybtl urycf svtug fcnz naq vzcebir frphevgl.<yv vq="YvOYG19" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg19.cat)">Trg zber qbar gunaxf gb terngre rnfr naq fcrrq.<yv vq="YvOYG16" fglyr="onpxtebhaq-vzntr:hey(uggc://vzt.jykef.pbz/~Yvir.FvgrPbagrag.VQ/~14.2.1230/~/~/~/oyg16.cat)">Ybgf bs fgbentr &#40;5 TO&#41; - zber pbby fghss ba gur jnl.<oe> <oe> <n uers="uggc://znvy.yvir.pbz/znvy/nobhg.nfck" gnetrg="_oynax">Yrnea zber##/N##</hy>';
-  var str33 = 'Bar Jvaqbjf Yvir VQ trgf lbh vagb <o>Ubgznvy</o>, <o>Zrffratre</o>, <o>Kobk YVIR</o> \u2014 naq bgure cynprf lbh frr #~#argjbexybtb#~#';
-  var re60 = /(?:^|\s+)bss(?:\s+|$)/;
-  var re61 = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/;
-  var re62 = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;
-  var str34 = '${1}://${2}${3}${4}${5}';
-  var str35 = ' O=6gnyg0g4znrrn&o=3&f=gc; Q=_lyu=K3bQZGSxnT4lZzD3OS9GNmV3ZGLkAQxRpTyxNmRlZmRmAmNkAQLRqTImqNZjOUEgpTjQnJ5xMKtgoN--; SCF=qy';
-  var s83 = computeInputVariants(str27, 11);
-  var s84 = computeInputVariants(str28, 11);
-  var s85 = computeInputVariants(str29, 11);
-  var s86 = computeInputVariants(str30, 11);
-  var s87 = computeInputVariants(str31, 11);
-  var s88 = computeInputVariants(str32, 11);
-  var s89 = computeInputVariants(str33, 11);
-  var s90 = computeInputVariants(str34, 11);
-
-  function runBlock6() {
-    for (var i = 0; i < 11; i++) {
-      s83[i].replace(/##yv0##/gi, '');
-      s83[i].replace(re57, '');
-      s84[i].replace(re58, '');
-      s85[i].replace(re59, '');
-      s86[i].replace(/##\/o##/gi, '');
-      s86[i].replace(/##\/v##/gi, '');
-      s86[i].replace(/##\/h##/gi, '');
-      s86[i].replace(/##o##/gi, '');
-      s86[i].replace(/##oe##/gi, '');
-      s86[i].replace(/##v##/gi, '');
-      s86[i].replace(/##h##/gi, '');
-      s87[i].replace(/##n##/gi, '');
-      s88[i].replace(/##\/n##/gi, '');
-      s89[i].replace(/#~#argjbexybtb#~#/g, '');
-      / Zbovyr\//.exec(s15[i]);
-      /##yv1##/gi.exec(s83[i]);
-      /##yv10##/gi.exec(s84[i]);
-      /##yv11##/gi.exec(s84[i]);
-      /##yv12##/gi.exec(s84[i]);
-      /##yv13##/gi.exec(s84[i]);
-      /##yv14##/gi.exec(s84[i]);
-      /##yv15##/gi.exec(s84[i]);
-      re58.exec(s84[i]);
-      /##yv17##/gi.exec(s85[i]);
-      /##yv18##/gi.exec(s85[i]);
-      re59.exec(s85[i]);
-      /##yv2##/gi.exec(s83[i]);
-      /##yv20##/gi.exec(s86[i]);
-      /##yv21##/gi.exec(s86[i]);
-      /##yv22##/gi.exec(s86[i]);
-      /##yv23##/gi.exec(s86[i]);
-      /##yv3##/gi.exec(s83[i]);
-      re57.exec(s83[i]);
-      /##yv5##/gi.exec(s84[i]);
-      /##yv6##/gi.exec(s84[i]);
-      /##yv7##/gi.exec(s84[i]);
-      /##yv8##/gi.exec(s84[i]);
-      /##yv9##/gi.exec(s84[i]);
-      re8.exec('473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29');
-      re8.exec('SbeprqRkcvengvba=633669325184628362');
-      re8.exec('FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29');
-      /AbxvnA[^\/]*/.exec(s15[i]);
-    }
-    for (var i = 0; i < 10; i++) {
-      ' bss'.replace(/(?:^|\s+)bss(?:\s+|$)/g, '');
-      s90[i].replace(/(\$\{0\})|(\$0\b)/g, '');
-      s90[i].replace(/(\$\{1\})|(\$1\b)/g, '');
-      s90[i].replace(/(\$\{pbzcyrgr\})|(\$pbzcyrgr\b)/g, '');
-      s90[i].replace(/(\$\{sentzrag\})|(\$sentzrag\b)/g, '');
-      s90[i].replace(/(\$\{ubfgcbeg\})|(\$ubfgcbeg\b)/g, '');
-      s90[i].replace(re56, '');
-      s90[i].replace(/(\$\{cebgbpby\})|(\$cebgbpby\b)/g, '');
-      s90[i].replace(/(\$\{dhrel\})|(\$dhrel\b)/g, '');
-      'nqfvmr'.replace(re29, '');
-      'nqfvmr'.replace(re30, '');
-      'uggc://${2}${3}${4}${5}'.replace(/(\$\{2\})|(\$2\b)/g, '');
-      'uggc://wf.hv-cbegny.qr${3}${4}${5}'.replace(/(\$\{3\})|(\$3\b)/g, '');
-      'arjf'.replace(re40, '');
-      'arjf'.replace(re41, '');
-      'arjf'.replace(re42, '');
-      'arjf'.replace(re43, '');
-      'arjf'.replace(re44, '');
-      'arjf'.replace(re45, '');
-      'arjf'.replace(re46, '');
-      'arjf'.replace(re47, '');
-      'arjf'.replace(re48, '');
-      / PC=i=(\d+)&oe=(.)/.exec(str35);
-      re60.exec(' ');
-      re60.exec(' bss');
-      re60.exec('');
-      re19.exec(' ');
-      re19.exec('svefg ba');
-      re19.exec('ynfg vtaber');
-      re19.exec('ba');
-      re9.exec('scnq so ');
-      re9.exec('zrqvgobk');
-      re9.exec('hsgy');
-      re9.exec('lhv-h');
-      /Fnsnev|Xbadhrebe|XUGZY/gi.exec(s15[i]);
-      re61.exec('uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf');
-      re62.exec('#Ybtva_rznvy');
-    }
-  }
-  var re63 = /\{0\}/g;
-  var str36 = 'FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n; ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669321699093060&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_tfwsbrg-aowb_80=4413268q3660';
-  var str37 = 'FrffvbaQQS2=4ss747o77904333q374or84qrr1s9r0nprp8r5q81534o94n; AFP_zp_tfwsbrg-aowb_80=4413268q3660; __hgzm=144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.2294274870215848400.1231364074.1231364074.1231364074.1; __hgzo=144631658.0.10.1231364074; __hgzp=144631658; ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669321699093060&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str38 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231364057761&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231364057761&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Ssevraqf.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1667363813.1231364061&tn_fvq=1231364061&tn_uvq=1917563877&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
-  var str39 = 'ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669321699093060&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str40 = 'ZFPhygher=VC=74.125.75.20&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669321699093060&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
-  var s91 = computeInputVariants(str36, 9);
-  var s92 = computeInputVariants(str37, 9);
-  var s93 = computeInputVariants(str38, 9);
-  function runBlock7() {
-    for (var i = 0; i < 9; i++) {
-      '0'.replace(re40, '');
-      '0'.replace(re10, '');
-      '0'.replace(re51, '');
-      '0'.replace(re52, '');
-      '0'.replace(re53, '');
-      '0'.replace(re39, '');
-      '0'.replace(re54, '');
-      'Lrf'.replace(re40, '');
-      'Lrf'.replace(re10, '');
-      'Lrf'.replace(re51, '');
-      'Lrf'.replace(re52, '');
-      'Lrf'.replace(re53, '');
-      'Lrf'.replace(re39, '');
-      'Lrf'.replace(re54, '');
-    }
-    for (var i = 0; i < 8; i++) {
-      'Pybfr {0}'.replace(re63, '');
-      'Bcra {0}'.replace(re63, '');
-      s91[i].split(re32);
-      s92[i].split(re32);
-      'puvyq p1 svefg gnournqref'.replace(re14, '');
-      'puvyq p1 svefg gnournqref'.replace(re15, '');
-      'uqy_fcb'.replace(re14, '');
-      'uqy_fcb'.replace(re15, '');
-      'uvag'.replace(re14, '');
-      'uvag'.replace(re15, '');
-      s93[i].replace(re33, '');
-      'yvfg'.replace(re14, '');
-      'yvfg'.replace(re15, '');
-      'at_bhgre'.replace(re30, '');
-      'cnerag puebzr5 qbhoyr2 NU'.replace(re14, '');
-      'cnerag puebzr5 qbhoyr2 NU'.replace(re15, '');
-      'cnerag puebzr5 dhnq5 ps NU osyvax zbarl'.replace(re14, '');
-      'cnerag puebzr5 dhnq5 ps NU osyvax zbarl'.replace(re15, '');
-      'cnerag puebzr6 fvatyr1'.replace(re14, '');
-      'cnerag puebzr6 fvatyr1'.replace(re15, '');
-      'cb_qrs'.replace(re14, '');
-      'cb_qrs'.replace(re15, '');
-      'gnopbagrag'.replace(re14, '');
-      'gnopbagrag'.replace(re15, '');
-      'iv_svefg_gvzr'.replace(re30, '');
-      /(^|.)(ronl|qri-ehf3.wbg)(|fgberf|zbgbef|yvirnhpgvbaf|jvxv|rkcerff|punggre).(pbz(|.nh|.pa|.ux|.zl|.ft|.oe|.zk)|pb(.hx|.xe|.am)|pn|qr|se|vg|ay|or|ng|pu|vr|va|rf|cy|cu|fr)$/i.exec('cntrf.ronl.pbz');
-      re8.exec('144631658.0.10.1231364074');
-      re8.exec('144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re8.exec('144631658.2294274870215848400.1231364074.1231364074.1231364074.1');
-      re8.exec('4413241q3660');
-      re8.exec('SbeprqRkcvengvba=633669357391353591');
-      re8.exec(str39);
-      re8.exec(str40);
-      re8.exec('AFP_zp_kkk-gdzogv_80=4413241q3660');
-      re8.exec('FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7');
-      re8.exec('__hgzn=144631658.2294274870215848400.1231364074.1231364074.1231364074.1');
-      re8.exec('__hgzo=144631658.0.10.1231364074');
-      re8.exec('__hgzm=144631658.1231364074.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re8.exec('p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7');
-      re34.exec(s91[i]);
-      re34.exec(s92[i]);
-    }
-  }
-  var re64 = /\b[a-z]/g;
-  var re65 = /^uggc:\/\//;
-  var re66 = /(?:^|\s+)qvfnoyrq(?:\s+|$)/;
-  var str41 = 'uggc://cebsvyr.zlfcnpr.pbz/Zbqhyrf/Nccyvpngvbaf/Cntrf/Pnainf.nfck';
-  function runBlock8() {
-    for (var i = 0; i < 7; i++) {
-      s21[i].match(/\d+/g);
-      'nsgre'.replace(re64, '');
-      'orsber'.replace(re64, '');
-      'obggbz'.replace(re64, '');
-      'ohvygva_jrngure.kzy'.replace(re65, '');
-      'ohggba'.replace(re37, '');
-      'ohggba'.replace(re18, '');
-      'qngrgvzr.kzy'.replace(re65, '');
-      'uggc://eff.paa.pbz/eff/paa_gbcfgbevrf.eff'.replace(re65, '');
-      'vachg'.replace(re37, '');
-      'vachg'.replace(re18, '');
-      'vafvqr'.replace(re64, '');
-      'cbvagre'.replace(re27, '');
-      'cbfvgvba'.replace(/[A-Z]/g, '');
-      'gbc'.replace(re27, '');
-      'gbc'.replace(re64, '');
-      'hy'.replace(re37, '');
-      'hy'.replace(re18, '');
-      str26.replace(re37, '');
-      str26.replace(re18, '');
-      'lbhghor_vtbbtyr/i2/lbhghor.kzy'.replace(re65, '');
-      'm-vaqrk'.replace(re27, '');
-      /#([\w-]+)/.exec(str26);
-      re16.exec('urvtug');
-      re16.exec('znetvaGbc');
-      re16.exec('jvqgu');
-      re19.exec('gno0 svefg ba');
-      re19.exec('gno0 ba');
-      re19.exec('gno4 ynfg');
-      re19.exec('gno4');
-      re19.exec('gno5');
-      re19.exec('gno6');
-      re19.exec('gno7');
-      re19.exec('gno8');
-      /NqborNVE\/([^\s]*)/.exec(s15[i]);
-      /NccyrJroXvg\/([^ ]*)/.exec(s15[i]);
-      /XUGZY/gi.exec(s15[i]);
-      /^(?:obql|ugzy)$/i.exec('YV');
-      re38.exec('ohggba');
-      re38.exec('vachg');
-      re38.exec('hy');
-      re38.exec(str26);
-      /^(\w+|\*)/.exec(str26);
-      /znp|jva|yvahk/i.exec('Jva32');
-      /eton?\([\d\s,]+\)/.exec('fgngvp');
-    }
-    for (var i = 0; i < 6; i++) {
-      ''.replace(/\r/g, '');
-      '/'.replace(re40, '');
-      '/'.replace(re10, '');
-      '/'.replace(re51, '');
-      '/'.replace(re52, '');
-      '/'.replace(re53, '');
-      '/'.replace(re39, '');
-      '/'.replace(re54, '');
-      'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/{0}?[NDO]&{1}&{2}&[NDR]'.replace(re63, '');
-      str41.replace(re12, '');
-      'uggc://jjj.snprobbx.pbz/fepu.cuc'.replace(re23, '');
-      'freivpr'.replace(re40, '');
-      'freivpr'.replace(re41, '');
-      'freivpr'.replace(re42, '');
-      'freivpr'.replace(re43, '');
-      'freivpr'.replace(re44, '');
-      'freivpr'.replace(re45, '');
-      'freivpr'.replace(re46, '');
-      'freivpr'.replace(re47, '');
-      'freivpr'.replace(re48, '');
-      /((ZFVR\s+([6-9]|\d\d)\.))/.exec(s15[i]);
-      re66.exec('');
-      re50.exec('fryrpgrq');
-      re8.exec('8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn');
-      re8.exec('SbeprqRkcvengvba=633669340386893867');
-      re8.exec('VC=74.125.75.17');
-      re8.exec('FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn');
-      /Xbadhrebe|Fnsnev|XUGZY/.exec(s15[i]);
-      re13.exec(str41);
-      re49.exec('unfsbphf');
-    }
-  }
-  var re67 = /zrah_byq/g;
-  var str42 = 'FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669325184628362&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
-  var str43 = 'FrffvbaQQS2=473qq1rs0n2r70q9qo1pq48n021s9468ron90nps048p4p29; __hgzm=144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.3931862196947939300.1231364380.1231364380.1231364380.1; __hgzo=144631658.0.10.1231364380; __hgzp=144631658; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669325184628362&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str44 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_vzntrf_wf&qg=1231364373088&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231364373088&punaary=svz_zlfcnpr_hfre-ivrj-pbzzragf%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Spbzzrag.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1158737789.1231364375&tn_fvq=1231364375&tn_uvq=415520832&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
-  var str45 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669325184628362&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str46 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669325184628362&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
-  var re68 = /^([#.]?)((?:[\w\u0128-\uffff*_-]|\\.)*)/;
-  var re69 = /\{1\}/g;
-  var re70 = /\s+/;
-  var re71 = /(\$\{4\})|(\$4\b)/g;
-  var re72 = /(\$\{5\})|(\$5\b)/g;
-  var re73 = /\{2\}/g;
-  var re74 = /[^+>] [^+>]/;
-  var re75 = /\bucpyv\s*=\s*([^;]*)/i;
-  var re76 = /\bucuvqr\s*=\s*([^;]*)/i;
-  var re77 = /\bucfie\s*=\s*([^;]*)/i;
-  var re78 = /\bhfucjrn\s*=\s*([^;]*)/i;
-  var re79 = /\bmvc\s*=\s*([^;]*)/i;
-  var re80 = /^((?:[\w\u0128-\uffff*_-]|\\.)+)(#)((?:[\w\u0128-\uffff*_-]|\\.)+)/;
-  var re81 = /^([>+~])\s*(\w*)/i;
-  var re82 = /^>\s*((?:[\w\u0128-\uffff*_-]|\\.)+)/;
-  var re83 = /^[\s[]?shapgvba/;
-  var re84 = /v\/g.tvs#(.*)/i;
-  var str47 = '#Zbq-Vasb-Vasb-WninFpevcgUvag';
-  var str48 = ',n.svryqOgaPnapry';
-  var str49 = 'FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669357391353591&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_kkk-gdzogv_80=4413241q3660';
-  var str50 = 'FrffvbaQQS2=p98s8o9q42nr21or1r61pqorn1n002nsss569635984s6qp7; AFP_zp_kkk-gdzogv_80=4413241q3660; AFP_zp_kkk-aowb_80=4413235p3660; __hgzm=144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.2770915348920628700.1231367708.1231367708.1231367708.1; __hgzo=144631658.0.10.1231367708; __hgzp=144631658; ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669357391353591&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str51 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231367691141&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367691141&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Sjjj.zlfcnpr.pbz%2S&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=320757904.1231367694&tn_fvq=1231367694&tn_uvq=1758792003&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
-  var str52 = 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55332979829981?[NDO]&aqu=1&g=7%2S0%2S2009%2014%3N38%3N42%203%20480&af=zfacbegny&cntrAnzr=HF%20UCZFSGJ&t=uggc%3N%2S%2Sjjj.zfa.pbz%2S&f=1024k768&p=24&x=L&oj=994&ou=634&uc=A&{2}&[NDR]';
-  var str53 = 'cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq qbhoyr2 ps';
-  var str54 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669357391353591&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str55 = 'ZFPhygher=VC=74.125.75.3&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669357391353591&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
-  var str56 = 'ne;ng;nh;or;oe;pn;pu;py;pa;qr;qx;rf;sv;se;to;ux;vq;vr;va;vg;wc;xe;zk;zl;ay;ab;am;cu;cy;cg;eh;fr;ft;gu;ge;gj;mn;';
-  var str57 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886&GHVQ=1';
-  var str58 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886';
-  var str59 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886; mvc=m:94043|yn:37.4154|yb:-122.0585|p:HF|ue:1';
-  var str60 = 'ZP1=I=3&THVQ=6nnpr9q661804s33nnop45nosqp17q85; zu=ZFSG; PHYGHER=RA-HF; SyvtugTebhcVq=97; SyvtugVq=OnfrCntr; ucfie=Z:5|S:5|G:5|R:5|Q:oyh|J:S; ucpyv=J.U|Y.|F.|E.|H.Y|P.|U.; hfucjrn=jp:HFPN0746; ZHVQ=Q783SN9O14054831N4869R51P0SO8886; mvc=m:94043|yn:37.4154|yb:-122.0585|p:HF';
-  var str61 = 'uggc://gx2.fgp.f-zfa.pbz/oe/uc/11/ra-hf/pff/v/g.tvs#uggc://gx2.fgo.f-zfa.pbz/v/29/4RQP4969777N048NPS4RRR3PO2S7S.wct';
-  var str62 = 'uggc://gx2.fgp.f-zfa.pbz/oe/uc/11/ra-hf/pff/v/g.tvs#uggc://gx2.fgo.f-zfa.pbz/v/OQ/63NP9O94NS5OQP1249Q9S1ROP7NS3.wct';
-  var str63 = 'zbmvyyn/5.0 (jvaqbjf; h; jvaqbjf ag 5.1; ra-hf) nccyrjroxvg/528.9 (xugzy, yvxr trpxb) puebzr/2.0.157.0 fnsnev/528.9';
-  var s94 = computeInputVariants(str42, 5);
-  var s95 = computeInputVariants(str43, 5);
-  var s96 = computeInputVariants(str44, 5);
-  var s97 = computeInputVariants(str47, 5);
-  var s98 = computeInputVariants(str48, 5);
-  var s99 = computeInputVariants(str49, 5);
-  var s100 = computeInputVariants(str50, 5);
-  var s101 = computeInputVariants(str51, 5);
-  var s102 = computeInputVariants(str52, 5);
-  var s103 = computeInputVariants(str53, 5);
-
-  function runBlock9() {
-    for (var i = 0; i < 5; i++) {
-      s94[i].split(re32);
-      s95[i].split(re32);
-      'svz_zlfcnpr_hfre-ivrj-pbzzragf,svz_zlfcnpr_havgrq-fgngrf'.split(re20);
-      s96[i].replace(re33, '');
-      'zrah_arj zrah_arj_gbttyr zrah_gbttyr'.replace(re67, '');
-      'zrah_byq zrah_byq_gbttyr zrah_gbttyr'.replace(re67, '');
-      re8.exec('102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98');
-      re8.exec('144631658.0.10.1231364380');
-      re8.exec('144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re8.exec('144631658.3931862196947939300.1231364380.1231364380.1231364380.1');
-      re8.exec('441326q33660');
-      re8.exec('SbeprqRkcvengvba=633669341278771470');
-      re8.exec(str45);
-      re8.exec(str46);
-      re8.exec('AFP_zp_dfctwzssrwh-aowb_80=441326q33660');
-      re8.exec('FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98');
-      re8.exec('__hgzn=144631658.3931862196947939300.1231364380.1231364380.1231364380.1');
-      re8.exec('__hgzo=144631658.0.10.1231364380');
-      re8.exec('__hgzm=144631658.1231364380.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-    }
-    for (var i = 0; i < 4; i++) {
-      ' yvfg1'.replace(re14, '');
-      ' yvfg1'.replace(re15, '');
-      ' yvfg2'.replace(re14, '');
-      ' yvfg2'.replace(re15, '');
-      ' frneputebhc1'.replace(re14, '');
-      ' frneputebhc1'.replace(re15, '');
-      s97[i].replace(re68, '');
-      s97[i].replace(re18, '');
-      ''.replace(/&/g, '');
-      ''.replace(re35, '');
-      '(..-{0})(\|(\d+)|)'.replace(re63, '');
-      s98[i].replace(re18, '');
-      '//vzt.jro.qr/vij/FC/${cngu}/${anzr}/${inyhr}?gf=${abj}'.replace(re56, '');
-      '//vzt.jro.qr/vij/FC/tzk_uc/${anzr}/${inyhr}?gf=${abj}'.replace(/(\$\{anzr\})|(\$anzr\b)/g, '');
-      '<fcna pynff="urnq"><o>Jvaqbjf Yvir Ubgznvy</o></fcna><fcna pynff="zft">{1}</fcna>'.replace(re69, '');
-      '<fcna pynff="urnq"><o>{0}</o></fcna><fcna pynff="zft">{1}</fcna>'.replace(re63, '');
-      '<fcna pynff="fvtahc"><n uers=uggc://jjj.ubgznvy.pbz><o>{1}</o></n></fcna>'.replace(re69, '');
-      '<fcna pynff="fvtahc"><n uers={0}><o>{1}</o></n></fcna>'.replace(re63, '');
-      'Vzntrf'.replace(re15, '');
-      'ZFA'.replace(re15, '');
-      'Zncf'.replace(re15, '');
-      'Zbq-Vasb-Vasb-WninFpevcgUvag'.replace(re39, '');
-      'Arjf'.replace(re15, '');
-      s99[i].split(re32);
-      s100[i].split(re32);
-      'Ivqrb'.replace(re15, '');
-      'Jro'.replace(re15, '');
-      'n'.replace(re39, '');
-      'nwnkFgneg'.split(re70);
-      'nwnkFgbc'.split(re70);
-      'ovaq'.replace(re14, '');
-      'ovaq'.replace(re15, '');
-      'oevatf lbh zber. Zber fcnpr (5TO), zber frphevgl, fgvyy serr.'.replace(re63, '');
-      'puvyq p1 svefg qrpx'.replace(re14, '');
-      'puvyq p1 svefg qrpx'.replace(re15, '');
-      'puvyq p1 svefg qbhoyr2'.replace(re14, '');
-      'puvyq p1 svefg qbhoyr2'.replace(re15, '');
-      'puvyq p2 ynfg'.replace(re14, '');
-      'puvyq p2 ynfg'.replace(re15, '');
-      'puvyq p2'.replace(re14, '');
-      'puvyq p2'.replace(re15, '');
-      'puvyq p3'.replace(re14, '');
-      'puvyq p3'.replace(re15, '');
-      'puvyq p4 ynfg'.replace(re14, '');
-      'puvyq p4 ynfg'.replace(re15, '');
-      'pbclevtug'.replace(re14, '');
-      'pbclevtug'.replace(re15, '');
-      'qZFAZR_1'.replace(re14, '');
-      'qZFAZR_1'.replace(re15, '');
-      'qbhoyr2 ps'.replace(re14, '');
-      'qbhoyr2 ps'.replace(re15, '');
-      'qbhoyr2'.replace(re14, '');
-      'qbhoyr2'.replace(re15, '');
-      'uqy_arj'.replace(re14, '');
-      'uqy_arj'.replace(re15, '');
-      'uc_fubccvatobk'.replace(re30, '');
-      'ugzy%2Rvq'.replace(re29, '');
-      'ugzy%2Rvq'.replace(re30, '');
-      s101[i].replace(re33, '');
-      'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/cebgbglcr.wf${4}${5}'.replace(re71, '');
-      'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/cebgbglcr.wf${5}'.replace(re72, '');
-      s102[i].replace(re73, '');
-      'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55332979829981?[NDO]&{1}&{2}&[NDR]'.replace(re69, '');
-      'vztZFSG'.replace(re14, '');
-      'vztZFSG'.replace(re15, '');
-      'zfasbbg1 ps'.replace(re14, '');
-      'zfasbbg1 ps'.replace(re15, '');
-      s103[i].replace(re14, '');
-      s103[i].replace(re15, '');
-      'cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq'.replace(re14, '');
-      'cnerag puebzr6 fvatyr1 gno fryrpgrq ovaq'.replace(re15, '');
-      'cevznel'.replace(re14, '');
-      'cevznel'.replace(re15, '');
-      'erpgnatyr'.replace(re30, '');
-      'frpbaqnel'.replace(re14, '');
-      'frpbaqnel'.replace(re15, '');
-      'haybnq'.split(re70);
-      '{0}{1}1'.replace(re63, '');
-      '|{1}1'.replace(re69, '');
-      /(..-HF)(\|(\d+)|)/i.exec('xb-xe,ra-va,gu-gu');
-      re4.exec('/ZlFcnprNccf/NccPnainf,45000012');
-      re8.exec('144631658.0.10.1231367708');
-      re8.exec('144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re8.exec('144631658.2770915348920628700.1231367708.1231367708.1231367708.1');
-      re8.exec('4413235p3660');
-      re8.exec('441327q73660');
-      re8.exec('9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473');
-      re8.exec('SbeprqRkcvengvba=633669350559478880');
-      re8.exec(str54);
-      re8.exec(str55);
-      re8.exec('AFP_zp_dfctwzs-aowb_80=441327q73660');
-      re8.exec('AFP_zp_kkk-aowb_80=4413235p3660');
-      re8.exec('FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473');
-      re8.exec('__hgzn=144631658.2770915348920628700.1231367708.1231367708.1231367708.1');
-      re8.exec('__hgzo=144631658.0.10.1231367708');
-      re8.exec('__hgzm=144631658.1231367708.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re34.exec(s99[i]);
-      re34.exec(s100[i]);
-      /ZFVR\s+5[.]01/.exec(s15[i]);
-      /HF(?=;)/i.exec(str56);
-      re74.exec(s97[i]);
-      re28.exec('svefg npgvir svefgNpgvir');
-      re28.exec('ynfg');
-      /\bp:(..)/i.exec('m:94043|yn:37.4154|yb:-122.0585|p:HF');
-      re75.exec(str57);
-      re75.exec(str58);
-      re76.exec(str57);
-      re76.exec(str58);
-      re77.exec(str57);
-      re77.exec(str58);
-      /\bhfucce\s*=\s*([^;]*)/i.exec(str59);
-      re78.exec(str57);
-      re78.exec(str58);
-      /\bjci\s*=\s*([^;]*)/i.exec(str59);
-      re79.exec(str58);
-      re79.exec(str60);
-      re79.exec(str59);
-      /\|p:([a-z]{2})/i.exec('m:94043|yn:37.4154|yb:-122.0585|p:HF|ue:1');
-      re80.exec(s97[i]);
-      re61.exec('cebgbglcr.wf');
-      re68.exec(s97[i]);
-      re81.exec(s97[i]);
-      re82.exec(s97[i]);
-      /^Fubpxjnir Synfu (\d)/.exec(s21[i]);
-      /^Fubpxjnir Synfu (\d+)/.exec(s21[i]);
-      re83.exec('[bowrpg tybony]');
-      re62.exec(s97[i]);
-      re84.exec(str61);
-      re84.exec(str62);
-      /jroxvg/.exec(str63);
-    }
-  }
-  var re85 = /eaq_zbqobkva/;
-  var str64 = '1231365729213';
-  var str65 = '74.125.75.3-1057165600.29978900';
-  var str66 = '74.125.75.3-1057165600.29978900.1231365730214';
-  var str67 = 'Frnepu%20Zvpebfbsg.pbz';
-  var str68 = 'FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn; ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669340386893867&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
-  var str69 = 'FrffvbaQQS2=8sqq78r9n442851q565599o401385sp3s04r92rnn7o19ssn; __hgzm=144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1877536177953918500.1231365779.1231365779.1231365779.1; __hgzo=144631658.0.10.1231365779; __hgzp=144631658; ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669340386893867&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str70 = 'I=3%26THVQ=757q3ss871q44o7o805n8113n5p72q52';
-  var str71 = 'I=3&THVQ=757q3ss871q44o7o805n8113n5p72q52';
-  var str72 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231365765292&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231365765292&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Sohyyrgvaf.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1579793869.1231365768&tn_fvq=1231365768&tn_uvq=2056210897&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
-  var str73 = 'frnepu.zvpebfbsg.pbz';
-  var str74 = 'frnepu.zvpebfbsg.pbz/';
-  var str75 = 'ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669340386893867&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str76 = 'ZFPhygher=VC=74.125.75.17&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669340386893867&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
-  function runBlock10() {
-    for (var i = 0; i < 3; i++) {
-      '%3Szxg=ra-HF'.replace(re39, '');
-      '-8'.replace(re40, '');
-      '-8'.replace(re10, '');
-      '-8'.replace(re51, '');
-      '-8'.replace(re52, '');
-      '-8'.replace(re53, '');
-      '-8'.replace(re39, '');
-      '-8'.replace(re54, '');
-      '1.5'.replace(re40, '');
-      '1.5'.replace(re10, '');
-      '1.5'.replace(re51, '');
-      '1.5'.replace(re52, '');
-      '1.5'.replace(re53, '');
-      '1.5'.replace(re39, '');
-      '1.5'.replace(re54, '');
-      '1024k768'.replace(re40, '');
-      '1024k768'.replace(re10, '');
-      '1024k768'.replace(re51, '');
-      '1024k768'.replace(re52, '');
-      '1024k768'.replace(re53, '');
-      '1024k768'.replace(re39, '');
-      '1024k768'.replace(re54, '');
-      str64.replace(re40, '');
-      str64.replace(re10, '');
-      str64.replace(re51, '');
-      str64.replace(re52, '');
-      str64.replace(re53, '');
-      str64.replace(re39, '');
-      str64.replace(re54, '');
-      '14'.replace(re40, '');
-      '14'.replace(re10, '');
-      '14'.replace(re51, '');
-      '14'.replace(re52, '');
-      '14'.replace(re53, '');
-      '14'.replace(re39, '');
-      '14'.replace(re54, '');
-      '24'.replace(re40, '');
-      '24'.replace(re10, '');
-      '24'.replace(re51, '');
-      '24'.replace(re52, '');
-      '24'.replace(re53, '');
-      '24'.replace(re39, '');
-      '24'.replace(re54, '');
-      str65.replace(re40, '');
-      str65.replace(re10, '');
-      str65.replace(re51, '');
-      str65.replace(re52, '');
-      str65.replace(re53, '');
-      str65.replace(re39, '');
-      str65.replace(re54, '');
-      str66.replace(re40, '');
-      str66.replace(re10, '');
-      str66.replace(re51, '');
-      str66.replace(re52, '');
-      str66.replace(re53, '');
-      str66.replace(re39, '');
-      str66.replace(re54, '');
-      '9.0'.replace(re40, '');
-      '9.0'.replace(re10, '');
-      '9.0'.replace(re51, '');
-      '9.0'.replace(re52, '');
-      '9.0'.replace(re53, '');
-      '9.0'.replace(re39, '');
-      '9.0'.replace(re54, '');
-      '994k634'.replace(re40, '');
-      '994k634'.replace(re10, '');
-      '994k634'.replace(re51, '');
-      '994k634'.replace(re52, '');
-      '994k634'.replace(re53, '');
-      '994k634'.replace(re39, '');
-      '994k634'.replace(re54, '');
-      '?zxg=ra-HF'.replace(re40, '');
-      '?zxg=ra-HF'.replace(re10, '');
-      '?zxg=ra-HF'.replace(re51, '');
-      '?zxg=ra-HF'.replace(re52, '');
-      '?zxg=ra-HF'.replace(re53, '');
-      '?zxg=ra-HF'.replace(re54, '');
-      'PAA.pbz'.replace(re25, '');
-      'PAA.pbz'.replace(re12, '');
-      'PAA.pbz'.replace(re39, '');
-      'Qngr & Gvzr'.replace(re25, '');
-      'Qngr & Gvzr'.replace(re12, '');
-      'Qngr & Gvzr'.replace(re39, '');
-      'Frnepu Zvpebfbsg.pbz'.replace(re40, '');
-      'Frnepu Zvpebfbsg.pbz'.replace(re54, '');
-      str67.replace(re10, '');
-      str67.replace(re51, '');
-      str67.replace(re52, '');
-      str67.replace(re53, '');
-      str67.replace(re39, '');
-      str68.split(re32);
-      str69.split(re32);
-      str70.replace(re52, '');
-      str70.replace(re53, '');
-      str70.replace(re39, '');
-      str71.replace(re40, '');
-      str71.replace(re10, '');
-      str71.replace(re51, '');
-      str71.replace(re54, '');
-      'Jrngure'.replace(re25, '');
-      'Jrngure'.replace(re12, '');
-      'Jrngure'.replace(re39, '');
-      'LbhGhor'.replace(re25, '');
-      'LbhGhor'.replace(re12, '');
-      'LbhGhor'.replace(re39, '');
-      str72.replace(re33, '');
-      'erzbgr_vsenzr_1'.replace(/^erzbgr_vsenzr_/, '');
-      str73.replace(re40, '');
-      str73.replace(re10, '');
-      str73.replace(re51, '');
-      str73.replace(re52, '');
-      str73.replace(re53, '');
-      str73.replace(re39, '');
-      str73.replace(re54, '');
-      str74.replace(re40, '');
-      str74.replace(re10, '');
-      str74.replace(re51, '');
-      str74.replace(re52, '');
-      str74.replace(re53, '');
-      str74.replace(re39, '');
-      str74.replace(re54, '');
-      'lhv-h'.replace(/\-/g, '');
-      re9.exec('p');
-      re9.exec('qz p');
-      re9.exec('zbqynory');
-      re9.exec('lhv-h svefg');
-      re8.exec('144631658.0.10.1231365779');
-      re8.exec('144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re8.exec('144631658.1877536177953918500.1231365779.1231365779.1231365779.1');
-      re8.exec(str75);
-      re8.exec(str76);
-      re8.exec('__hgzn=144631658.1877536177953918500.1231365779.1231365779.1231365779.1');
-      re8.exec('__hgzo=144631658.0.10.1231365779');
-      re8.exec('__hgzm=144631658.1231365779.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re34.exec(str68);
-      re34.exec(str69);
-      /^$/.exec('');
-      re31.exec('qr');
-      /^znk\d+$/.exec('');
-      /^zva\d+$/.exec('');
-      /^erfgber$/.exec('');
-      re85.exec('zbqobkva zbqobk_abcnqqvat ');
-      re85.exec('zbqgvgyr');
-      re85.exec('eaq_zbqobkva ');
-      re85.exec('eaq_zbqgvgyr ');
-      /frpgvba\d+_pbagragf/.exec('obggbz_ani');
-    }
-  }
-  var re86 = /;\s*/;
-  var re87 = /(\$\{inyhr\})|(\$inyhr\b)/g;
-  var re88 = /(\$\{abj\})|(\$abj\b)/g;
-  var re89 = /\s+$/;
-  var re90 = /^\s+/;
-  var re91 = /(\\\"|\x00-|\x1f|\x7f-|\x9f|\u00ad|\u0600-|\u0604|\u070f|\u17b4|\u17b5|\u200c-|\u200f|\u2028-|\u202f|\u2060-|\u206f|\ufeff|\ufff0-|\uffff)/g;
-  var re92 = /^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/;
-  var re93 = /^([:.#]*)((?:[\w\u0128-\uffff*_-]|\\.)+)/;
-  var re94 = /^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/;
-  var str77 = '#fubhgobk .pybfr';
-  var str78 = 'FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669341278771470&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzssrwh-aowb_80=441326q33660';
-  var str79 = 'FrffvbaQQS2=102n9o0o9pq60132qn0337rr867p75953502q2s27s2s5r98; AFP_zp_dfctwzssrwh-aowb_80=441326q33660; __hgzm=144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1670816052019209000.1231365869.1231365869.1231365869.1; __hgzo=144631658.0.10.1231365869; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669341278771470&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str80 = 'FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669350559478880&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=; AFP_zp_dfctwzs-aowb_80=441327q73660';
-  var str81 = 'FrffvbaQQS2=9995p6rp12rrnr893334ro7nq70o7p64p69rqn844prs1473; AFP_zp_dfctwzs-aowb_80=441327q73660; __hgzm=144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar); __hgzn=144631658.1796080716621419500.1231367054.1231367054.1231367054.1; __hgzo=144631658.0.10.1231367054; __hgzp=144631658; ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669350559478880&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str82 = '[glcr=fhozvg]';
-  var str83 = 'n.svryqOga,n.svryqOgaPnapry';
-  var str84 = 'n.svryqOgaPnapry';
-  var str85 = 'oyvpxchaxg';
-  var str86 = 'qvi.bow-nppbeqvba qg';
-  var str87 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_nccf_wf&qg=1231367052227&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231367052227&punaary=svz_zlfcnpr_nccf-pnainf%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyr.zlfcnpr.pbz%2SZbqhyrf%2SNccyvpngvbaf%2SCntrf%2SPnainf.nfck&nq_glcr=grkg&rvq=6083027&rn=0&sez=1&tn_ivq=716357910.1231367056&tn_fvq=1231367056&tn_uvq=1387206491&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
-  var str88 = 'uggc://tbbtyrnqf.t.qbhoyrpyvpx.arg/cntrnq/nqf?pyvrag=pn-svz_zlfcnpr_zlfcnpr-ubzrcntr_wf&qg=1231365851658&uy=ra&nqfnsr=uvtu&br=hgs8&ahz_nqf=4&bhgchg=wf&nqgrfg=bss&pbeeryngbe=1231365851658&punaary=svz_zlfcnpr_ubzrcntr_abgybttrqva%2Psvz_zlfcnpr_aba_HTP%2Psvz_zlfcnpr_havgrq-fgngrf&hey=uggc%3N%2S%2Scebsvyrrqvg.zlfcnpr.pbz%2Svaqrk.psz&nq_glcr=grkg&rvq=6083027&rn=0&sez=0&tn_ivq=1979828129.1231365855&tn_fvq=1231365855&tn_uvq=2085229649&synfu=9.0.115&h_u=768&h_j=1024&h_nu=738&h_nj=1024&h_pq=24&h_gm=-480&h_uvf=2&h_wnin=gehr&h_acyht=7&h_azvzr=22';
-  var str89 = 'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55023338617756?[NDO]&aqu=1&g=7%2S0%2S2009%2014%3N12%3N47%203%20480&af=zfacbegny&cntrAnzr=HF%20UCZFSGJ&t=uggc%3N%2S%2Sjjj.zfa.pbz%2S&f=0k0&p=43835816&x=A&oj=994&ou=634&uc=A&{2}&[NDR]';
-  var str90 = 'zrgn[anzr=nwnkHey]';
-  var str91 = 'anpuevpugra';
-  var str92 = 'b oS={\'oT\':1.1};x $8n(B){z(B!=o9)};x $S(B){O(!$8n(B))z A;O(B.4L)z\'T\';b S=7t B;O(S==\'2P\'&&B.p4){23(B.7f){12 1:z\'T\';12 3:z/\S/.2g(B.8M)?\'ox\':\'oh\'}}O(S==\'2P\'||S==\'x\'){23(B.nE){12 2V:z\'1O\';12 7I:z\'5a\';12 18:z\'4B\'}O(7t B.I==\'4F\'){O(B.3u)z\'pG\';O(B.8e)z\'1p\'}}z S};x $2p(){b 4E={};Z(b v=0;v<1p.I;v++){Z(b X 1o 1p[v]){b nc=1p[v][X];b 6E=4E[X];O(6E&&$S(nc)==\'2P\'&&$S(6E)==\'2P\')4E[X]=$2p(6E,nc);17 4E[X]=nc}}z 4E};b $E=7p.E=x(){b 1d=1p;O(!1d[1])1d=[p,1d[0]];Z(b X 1o 1d[1])1d[0][X]=1d[1][X];z 1d[0]};b $4D=7p.pJ=x(){Z(b v=0,y=1p.I;v<y;v++){1p[v].E=x(1J){Z(b 1I 1o 1J){O(!p.1Y[1I])p.1Y[1I]=1J[1I];O(!p[1I])p[1I]=$4D.6C(1I)}}}};$4D.6C=x(1I){z x(L){z p.1Y[1I].3H(L,2V.1Y.nV.1F(1p,1))}};$4D(7F,2V,6J,nb);b 3l=x(B){B=B||{};B.E=$E;z B};b pK=Y 3l(H);b pZ=Y 3l(C);C.6f=C.35(\'6f\')[0];x $2O(B){z!!(B||B===0)};x $5S(B,n8){z $8n(B)?B:n8};x $7K(3c,1m){z 1q.na(1q.7K()*(1m-3c+1)+3c)};x $3N(){z Y 97().os()};x $4M(1U){pv(1U);pa(1U);z 1S};H.43=!!(C.5Z);O(H.nB)H.31=H[H.7q?\'py\':\'nL\']=1r;17 O(C.9N&&!C.om&&!oy.oZ)H.pF=H.4Z=H[H.43?\'pt\':\'65\']=1r;17 O(C.po!=1S)H.7J=1r;O(7t 5B==\'o9\'){b 5B=x(){};O(H.4Z)C.nd("pW");5B.1Y=(H.4Z)?H["[[oN.1Y]]"]:{}}5B.1Y.4L=1r;O(H.nL)5s{C.oX("pp",A,1r)}4K(r){};b 18=x(1X){b 63=x(){z(1p[0]!==1S&&p.1w&&$S(p.1w)==\'x\')?p.1w.3H(p,1p):p};$E(63,p);63.1Y=1X;63.nE=18;z 63};18.1z=x(){};18.1Y={E:x(1X){b 7x=Y p(1S);Z(b X 1o 1X){b nC=7x[X];7x[X]=18.nY(nC,1X[X])}z Y 18(7x)},3d:x(){Z(b v=0,y=1p.I;v<y;v++)$E(p.1Y,1p[v])}};18.nY=x(2b,2n){O(2b&&2b!=2n){b S=$S(2n);O(S!=$S(2b))z 2n;23(S){12\'x\':b 7R=x(){p.1e=1p.8e.1e;z 2n.3H(p,1p)};7R.1e=2b;z 7R;12\'2P\':z $2p(2b,2n)}}z 2n};b 8o=Y 18({oQ:x(J){p.4w=p.4w||[];p.4w.1x(J);z p},7g:x(){O(p.4w&&p.4w.I)p.4w.9J().2x(10,p)},oP:x(){p.4w=[]}});b 2d=Y 18({1V:x(S,J){O(J!=18.1z){p.$19=p.$19||{};p.$19[S]=p.$19[S]||[];p.$19[S].5j(J)}z p},1v:x(S,1d,2x){O(p.$19&&p.$19[S]){p.$19[S].1b(x(J){J.3n({\'L\':p,\'2x\':2x,\'1p\':1d})()},p)}z p},3M:x(S,J){O(p.$19&&p.$19[S])p.$19[S].2U(J);z p}});b 4v=Y 18({2H:x(){p.P=$2p.3H(1S,[p.P].E(1p));O(!p.1V)z p;Z(b 3O 1o p.P){O($S(p.P[3O]==\'x\')&&3O.2g(/^5P[N-M]/))p.1V(3O,p.P[3O])}z p}});2V.E({7y:x(J,L){Z(b v=0,w=p.I;v<w;v++)J.1F(L,p[v],v,p)},3s:x(J,L){b 54=[];Z(b v=0,w=p.I;v<w;v++){O(J.1F(L,p[v],v,p))54.1x(p[v])}z 54},2X:x(J,L){b 54=[];Z(b v=0,w=p.I;v<w;v++)54[v]=J.1F(L,p[v],v,p);z 54},4i:x(J,L){Z(b v=0,w=p.I;v<w;v++){O(!J.1F(L,p[v],v,p))z A}z 1r},ob:x(J,L){Z(b v=0,w=p.I;v<w;v++){O(J.1F(L,p[v],v,p))z 1r}z A},3F:x(3u,15){b 3A=p.I;Z(b v=(15<0)?1q.1m(0,3A+15):15||0;v<3A;v++){O(p[v]===3u)z v}z-1},8z:x(1u,I){1u=1u||0;O(1u<0)1u=p.I+1u;I=I||(p.I-1u);b 89=[];Z(b v=0;v<I;v++)89[v]=p[1u++];z 89},2U:x(3u){b v=0;b 3A=p.I;6L(v<3A){O(p[v]===3u){p.6l(v,1);3A--}17{v++}}z p},1y:x(3u,15){z p.3F(3u,15)!=-1},oz:x(1C){b B={},I=1q.3c(p.I,1C.I);Z(b v=0;v<I;v++)B[1C[v]]=p[v];z B},E:x(1O){Z(b v=0,w=1O.I;v<w;v++)p.1x(1O[v]);z p},2p:x(1O){Z(b v=0,y=1O.I;v<y;v++)p.5j(1O[v]);z p},5j:x(3u){O(!p.1y(3u))p.1x(3u);z p},oc:x(){z p[$7K(0,p.I-1)]||A},7L:x(){z p[p.I-1]||A}});2V.1Y.1b=2V.1Y.7y;2V.1Y.2g=2V.1Y.1y;x $N(1O){z 2V.8z(1O)};x $1b(3J,J,L){O(3J&&7t 3J.I==\'4F\'&&$S(3J)!=\'2P\')2V.7y(3J,J,L);17 Z(b 1j 1o 3J)J.1F(L||3J,3J[1j],1j)};6J.E({2g:x(6b,2F){z(($S(6b)==\'2R\')?Y 7I(6b,2F):6b).2g(p)},3p:x(){z 5K(p,10)},o4:x(){z 69(p)},7A:x(){z p.3y(/-\D/t,x(2G){z 2G.7G(1).nW()})},9b:x(){z p.3y(/\w[N-M]/t,x(2G){z(2G.7G(0)+\'-\'+2G.7G(1).5O())})},8V:x(){z p.3y(/\b[n-m]/t,x(2G){z 2G.nW()})},5L:x(){z p.3y(/^\s+|\s+$/t,\'\')},7j:x(){z p.3y(/\s{2,}/t,\' \').5L()},5V:x(1O){b 1i=p.2G(/\d{1,3}/t);z(1i)?1i.5V(1O):A},5U:x(1O){b 3P=p.2G(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);z(3P)?3P.nV(1).5U(1O):A},1y:x(2R,f){z(f)?(f+p+f).3F(f+2R+f)>-1:p.3F(2R)>-1},nX:x(){z p.3y(/([.*+?^${}()|[\]\/\\])/t,\'\\$1\')}});2V.E({5V:x(1O){O(p.I<3)z A;O(p.I==4&&p[3]==0&&!1O)z\'p5\';b 3P=[];Z(b v=0;v<3;v++){b 52=(p[v]-0).4h(16);3P.1x((52.I==1)?\'0\'+52:52)}z 1O?3P:\'#\'+3P.2u(\'\')},5U:x(1O){O(p.I!=3)z A;b 1i=[];Z(b v=0;v<3;v++){1i.1x(5K((p[v].I==1)?p[v]+p[v]:p[v],16))}z 1O?1i:\'1i(\'+1i.2u(\',\')+\')\'}});7F.E({3n:x(P){b J=p;P=$2p({\'L\':J,\'V\':A,\'1p\':1S,\'2x\':A,\'4s\':A,\'6W\':A},P);O($2O(P.1p)&&$S(P.1p)!=\'1O\')P.1p=[P.1p];z x(V){b 1d;O(P.V){V=V||H.V;1d=[(P.V===1r)?V:Y P.V(V)];O(P.1p)1d.E(P.1p)}17 1d=P.1p||1p;b 3C=x(){z J.3H($5S(P';
-  var str93 = 'hagreunyghat';
-  var str94 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669341278771470&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str95 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&Pbhagel=IIZ%3Q&SbeprqRkcvengvba=633669350559478880&gvzrMbar=-8&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R%3Q';
-  var str96 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669341278771470&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
-  var str97 = 'ZFPhygher=VC=74.125.75.1&VCPhygher=ra-HF&CersreerqPhygher=ra-HF&CersreerqPhygherCraqvat=&Pbhagel=IIZ=&SbeprqRkcvengvba=633669350559478880&gvzrMbar=0&HFEYBP=DKWyLHAiMTH9AwHjWxAcqUx9GJ91oaEunJ4tIzyyqlMQo3IhqUW5D29xMG1IHlMQo3IhqUW5GzSgMG1Iozy0MJDtH3EuqTImWxEgLHAiMTH9BQN3WxkuqTy0qJEyCGZ3YwDkBGVzGT9hM2y0qJEyCF0kZwVhZQH3APMDo3A0LJkQo2EyCGx0ZQDmWyWyM2yiox5uoJH9D0R=';
-  var str98 = 'shapgvba (){Cuk.Nccyvpngvba.Frghc.Pber();Cuk.Nccyvpngvba.Frghc.Nwnk();Cuk.Nccyvpngvba.Frghc.Synfu();Cuk.Nccyvpngvba.Frghc.Zbqhyrf()}';
-  function runBlock11() {
-    for (var i = 0; i < 2; i++) {
-      ' .pybfr'.replace(re18, '');
-      ' n.svryqOgaPnapry'.replace(re18, '');
-      ' qg'.replace(re18, '');
-      str77.replace(re68, '');
-      str77.replace(re18, '');
-      ''.replace(re39, '');
-      ''.replace(/^/, '');
-      ''.split(re86);
-      '*'.replace(re39, '');
-      '*'.replace(re68, '');
-      '*'.replace(re18, '');
-      '.pybfr'.replace(re68, '');
-      '.pybfr'.replace(re18, '');
-      '//vzt.jro.qr/vij/FC/tzk_uc/fperra/${inyhr}?gf=${abj}'.replace(re87, '');
-      '//vzt.jro.qr/vij/FC/tzk_uc/fperra/1024?gf=${abj}'.replace(re88, '');
-      '//vzt.jro.qr/vij/FC/tzk_uc/jvafvmr/${inyhr}?gf=${abj}'.replace(re87, '');
-      '//vzt.jro.qr/vij/FC/tzk_uc/jvafvmr/992/608?gf=${abj}'.replace(re88, '');
-      '300k120'.replace(re30, '');
-      '300k250'.replace(re30, '');
-      '310k120'.replace(re30, '');
-      '310k170'.replace(re30, '');
-      '310k250'.replace(re30, '');
-      '9.0  e115'.replace(/^.*\.(.*)\s.*$/, '');
-      'Nppbeqvba'.replace(re2, '');
-      'Nxghryy\x0a'.replace(re89, '');
-      'Nxghryy\x0a'.replace(re90, '');
-      'Nccyvpngvba'.replace(re2, '');
-      'Oyvpxchaxg\x0a'.replace(re89, '');
-      'Oyvpxchaxg\x0a'.replace(re90, '');
-      'Svanamra\x0a'.replace(re89, '');
-      'Svanamra\x0a'.replace(re90, '');
-      'Tnzrf\x0a'.replace(re89, '');
-      'Tnzrf\x0a'.replace(re90, '');
-      'Ubebfxbc\x0a'.replace(re89, '');
-      'Ubebfxbc\x0a'.replace(re90, '');
-      'Xvab\x0a'.replace(re89, '');
-      'Xvab\x0a'.replace(re90, '');
-      'Zbqhyrf'.replace(re2, '');
-      'Zhfvx\x0a'.replace(re89, '');
-      'Zhfvx\x0a'.replace(re90, '');
-      'Anpuevpugra\x0a'.replace(re89, '');
-      'Anpuevpugra\x0a'.replace(re90, '');
-      'Cuk'.replace(re2, '');
-      'ErdhrfgSvavfu'.split(re70);
-      'ErdhrfgSvavfu.NWNK.Cuk'.split(re70);
-      'Ebhgr\x0a'.replace(re89, '');
-      'Ebhgr\x0a'.replace(re90, '');
-      str78.split(re32);
-      str79.split(re32);
-      str80.split(re32);
-      str81.split(re32);
-      'Fcbeg\x0a'.replace(re89, '');
-      'Fcbeg\x0a'.replace(re90, '');
-      'GI-Fcbg\x0a'.replace(re89, '');
-      'GI-Fcbg\x0a'.replace(re90, '');
-      'Gbhe\x0a'.replace(re89, '');
-      'Gbhe\x0a'.replace(re90, '');
-      'Hagreunyghat\x0a'.replace(re89, '');
-      'Hagreunyghat\x0a'.replace(re90, '');
-      'Ivqrb\x0a'.replace(re89, '');
-      'Ivqrb\x0a'.replace(re90, '');
-      'Jrggre\x0a'.replace(re89, '');
-      'Jrggre\x0a'.replace(re90, '');
-      str82.replace(re68, '');
-      str82.replace(re18, '');
-      str83.replace(re68, '');
-      str83.replace(re18, '');
-      str84.replace(re68, '');
-      str84.replace(re18, '');
-      'nqiFreivprObk'.replace(re30, '');
-      'nqiFubccvatObk'.replace(re30, '');
-      'nwnk'.replace(re39, '');
-      'nxghryy'.replace(re40, '');
-      'nxghryy'.replace(re41, '');
-      'nxghryy'.replace(re42, '');
-      'nxghryy'.replace(re43, '');
-      'nxghryy'.replace(re44, '');
-      'nxghryy'.replace(re45, '');
-      'nxghryy'.replace(re46, '');
-      'nxghryy'.replace(re47, '');
-      'nxghryy'.replace(re48, '');
-      str85.replace(re40, '');
-      str85.replace(re41, '');
-      str85.replace(re42, '');
-      str85.replace(re43, '');
-      str85.replace(re44, '');
-      str85.replace(re45, '');
-      str85.replace(re46, '');
-      str85.replace(re47, '');
-      str85.replace(re48, '');
-      'pngrtbel'.replace(re29, '');
-      'pngrtbel'.replace(re30, '');
-      'pybfr'.replace(re39, '');
-      'qvi'.replace(re39, '');
-      str86.replace(re68, '');
-      str86.replace(re18, '');
-      'qg'.replace(re39, '');
-      'qg'.replace(re68, '');
-      'qg'.replace(re18, '');
-      'rzorq'.replace(re39, '');
-      'rzorq'.replace(re68, '');
-      'rzorq'.replace(re18, '');
-      'svryqOga'.replace(re39, '');
-      'svryqOgaPnapry'.replace(re39, '');
-      'svz_zlfcnpr_nccf-pnainf,svz_zlfcnpr_havgrq-fgngrf'.split(re20);
-      'svanamra'.replace(re40, '');
-      'svanamra'.replace(re41, '');
-      'svanamra'.replace(re42, '');
-      'svanamra'.replace(re43, '');
-      'svanamra'.replace(re44, '');
-      'svanamra'.replace(re45, '');
-      'svanamra'.replace(re46, '');
-      'svanamra'.replace(re47, '');
-      'svanamra'.replace(re48, '');
-      'sbphf'.split(re70);
-      'sbphf.gno sbphfva.gno'.split(re70);
-      'sbphfva'.split(re70);
-      'sbez'.replace(re39, '');
-      'sbez.nwnk'.replace(re68, '');
-      'sbez.nwnk'.replace(re18, '');
-      'tnzrf'.replace(re40, '');
-      'tnzrf'.replace(re41, '');
-      'tnzrf'.replace(re42, '');
-      'tnzrf'.replace(re43, '');
-      'tnzrf'.replace(re44, '');
-      'tnzrf'.replace(re45, '');
-      'tnzrf'.replace(re46, '');
-      'tnzrf'.replace(re47, '');
-      'tnzrf'.replace(re48, '');
-      'ubzrcntr'.replace(re30, '');
-      'ubebfxbc'.replace(re40, '');
-      'ubebfxbc'.replace(re41, '');
-      'ubebfxbc'.replace(re42, '');
-      'ubebfxbc'.replace(re43, '');
-      'ubebfxbc'.replace(re44, '');
-      'ubebfxbc'.replace(re45, '');
-      'ubebfxbc'.replace(re46, '');
-      'ubebfxbc'.replace(re47, '');
-      'ubebfxbc'.replace(re48, '');
-      'uc_cebzbobk_ugzy%2Puc_cebzbobk_vzt'.replace(re30, '');
-      'uc_erpgnatyr'.replace(re30, '');
-      str87.replace(re33, '');
-      str88.replace(re33, '');
-      'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf${4}${5}'.replace(re71, '');
-      'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf${5}'.replace(re72, '');
-      'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/qlaYvo.wf${4}${5}'.replace(re71, '');
-      'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/qlaYvo.wf${5}'.replace(re72, '');
-      'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/rssrpgYvo.wf${4}${5}'.replace(re71, '');
-      'uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/rssrpgYvo.wf${5}'.replace(re72, '');
-      str89.replace(re73, '');
-      'uggc://zfacbegny.112.2b7.arg/o/ff/zfacbegnyubzr/1/U.7-cqi-2/f55023338617756?[NDO]&{1}&{2}&[NDR]'.replace(re69, '');
-      str6.replace(re23, '');
-      'xvab'.replace(re40, '');
-      'xvab'.replace(re41, '');
-      'xvab'.replace(re42, '');
-      'xvab'.replace(re43, '');
-      'xvab'.replace(re44, '');
-      'xvab'.replace(re45, '');
-      'xvab'.replace(re46, '');
-      'xvab'.replace(re47, '');
-      'xvab'.replace(re48, '');
-      'ybnq'.split(re70);
-      'zrqvnzbqgno lhv-anifrg lhv-anifrg-gbc'.replace(re18, '');
-      'zrgn'.replace(re39, '');
-      str90.replace(re68, '');
-      str90.replace(re18, '');
-      'zbhfrzbir'.split(re70);
-      'zbhfrzbir.gno'.split(re70);
-      str63.replace(/^.*jroxvg\/(\d+(\.\d+)?).*$/, '');
-      'zhfvx'.replace(re40, '');
-      'zhfvx'.replace(re41, '');
-      'zhfvx'.replace(re42, '');
-      'zhfvx'.replace(re43, '');
-      'zhfvx'.replace(re44, '');
-      'zhfvx'.replace(re45, '');
-      'zhfvx'.replace(re46, '');
-      'zhfvx'.replace(re47, '');
-      'zhfvx'.replace(re48, '');
-      'zlfcnpr_nccf_pnainf'.replace(re52, '');
-      str91.replace(re40, '');
-      str91.replace(re41, '');
-      str91.replace(re42, '');
-      str91.replace(re43, '');
-      str91.replace(re44, '');
-      str91.replace(re45, '');
-      str91.replace(re46, '');
-      str91.replace(re47, '');
-      str91.replace(re48, '');
-      'anzr'.replace(re39, '');
-      str92.replace(/\b\w+\b/g, '');
-      'bow-nppbeqvba'.replace(re39, '');
-      'bowrpg'.replace(re39, '');
-      'bowrpg'.replace(re68, '');
-      'bowrpg'.replace(re18, '');
-      'cnenzf%2Rfglyrf'.replace(re29, '');
-      'cnenzf%2Rfglyrf'.replace(re30, '');
-      'cbchc'.replace(re30, '');
-      'ebhgr'.replace(re40, '');
-      'ebhgr'.replace(re41, '');
-      'ebhgr'.replace(re42, '');
-      'ebhgr'.replace(re43, '');
-      'ebhgr'.replace(re44, '');
-      'ebhgr'.replace(re45, '');
-      'ebhgr'.replace(re46, '');
-      'ebhgr'.replace(re47, '');
-      'ebhgr'.replace(re48, '');
-      'freivprobk_uc'.replace(re30, '');
-      'fubccvatobk_uc'.replace(re30, '');
-      'fubhgobk'.replace(re39, '');
-      'fcbeg'.replace(re40, '');
-      'fcbeg'.replace(re41, '');
-      'fcbeg'.replace(re42, '');
-      'fcbeg'.replace(re43, '');
-      'fcbeg'.replace(re44, '');
-      'fcbeg'.replace(re45, '');
-      'fcbeg'.replace(re46, '');
-      'fcbeg'.replace(re47, '');
-      'fcbeg'.replace(re48, '');
-      'gbhe'.replace(re40, '');
-      'gbhe'.replace(re41, '');
-      'gbhe'.replace(re42, '');
-      'gbhe'.replace(re43, '');
-      'gbhe'.replace(re44, '');
-      'gbhe'.replace(re45, '');
-      'gbhe'.replace(re46, '');
-      'gbhe'.replace(re47, '');
-      'gbhe'.replace(re48, '');
-      'gi-fcbg'.replace(re40, '');
-      'gi-fcbg'.replace(re41, '');
-      'gi-fcbg'.replace(re42, '');
-      'gi-fcbg'.replace(re43, '');
-      'gi-fcbg'.replace(re44, '');
-      'gi-fcbg'.replace(re45, '');
-      'gi-fcbg'.replace(re46, '');
-      'gi-fcbg'.replace(re47, '');
-      'gi-fcbg'.replace(re48, '');
-      'glcr'.replace(re39, '');
-      'haqrsvarq'.replace(/\//g, '');
-      str93.replace(re40, '');
-      str93.replace(re41, '');
-      str93.replace(re42, '');
-      str93.replace(re43, '');
-      str93.replace(re44, '');
-      str93.replace(re45, '');
-      str93.replace(re46, '');
-      str93.replace(re47, '');
-      str93.replace(re48, '');
-      'ivqrb'.replace(re40, '');
-      'ivqrb'.replace(re41, '');
-      'ivqrb'.replace(re42, '');
-      'ivqrb'.replace(re43, '');
-      'ivqrb'.replace(re44, '');
-      'ivqrb'.replace(re45, '');
-      'ivqrb'.replace(re46, '');
-      'ivqrb'.replace(re47, '');
-      'ivqrb'.replace(re48, '');
-      'ivfvgf=1'.split(re86);
-      'jrggre'.replace(re40, '');
-      'jrggre'.replace(re41, '');
-      'jrggre'.replace(re42, '');
-      'jrggre'.replace(re43, '');
-      'jrggre'.replace(re44, '');
-      'jrggre'.replace(re45, '');
-      'jrggre'.replace(re46, '');
-      'jrggre'.replace(re47, '');
-      'jrggre'.replace(re48, '');
-      /#[a-z0-9]+$/i.exec('uggc://jjj.fpuhryreim.arg/Qrsnhyg');
-      re66.exec('fryrpgrq');
-      /(?:^|\s+)lhv-ani(?:\s+|$)/.exec('sff lhv-ani');
-      /(?:^|\s+)lhv-anifrg(?:\s+|$)/.exec('zrqvnzbqgno lhv-anifrg');
-      /(?:^|\s+)lhv-anifrg-gbc(?:\s+|$)/.exec('zrqvnzbqgno lhv-anifrg');
-      re91.exec('GnoThvq');
-      re91.exec('thvq');
-      /(pbzcngvoyr|jroxvg)/.exec(str63);
-      /.+(?:ei|vg|en|vr)[\/: ]([\d.]+)/.exec(str63);
-      re8.exec('144631658.0.10.1231365869');
-      re8.exec('144631658.0.10.1231367054');
-      re8.exec('144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re8.exec('144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re8.exec('144631658.1670816052019209000.1231365869.1231365869.1231365869.1');
-      re8.exec('144631658.1796080716621419500.1231367054.1231367054.1231367054.1');
-      re8.exec(str94);
-      re8.exec(str95);
-      re8.exec(str96);
-      re8.exec(str97);
-      re8.exec('__hgzn=144631658.1670816052019209000.1231365869.1231365869.1231365869.1');
-      re8.exec('__hgzn=144631658.1796080716621419500.1231367054.1231367054.1231367054.1');
-      re8.exec('__hgzo=144631658.0.10.1231365869');
-      re8.exec('__hgzo=144631658.0.10.1231367054');
-      re8.exec('__hgzm=144631658.1231365869.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re8.exec('__hgzm=144631658.1231367054.1.1.hgzpfe=(qverpg)|hgzppa=(qverpg)|hgzpzq=(abar)');
-      re34.exec(str78);
-      re34.exec(str79);
-      re34.exec(str81);
-      re74.exec(str77);
-      re74.exec('*');
-      re74.exec(str82);
-      re74.exec(str83);
-      re74.exec(str86);
-      re74.exec('rzorq');
-      re74.exec('sbez.nwnk');
-      re74.exec(str90);
-      re74.exec('bowrpg');
-      /\/onfr.wf(\?.+)?$/.exec('/uggc://wf.hv-cbegny.qr/tzk/ubzr/wf/20080602/onfr.wf');
-      re28.exec('uvag ynfgUvag ynfg');
-      re75.exec('');
-      re76.exec('');
-      re77.exec('');
-      re78.exec('');
-      re80.exec(str77);
-      re80.exec('*');
-      re80.exec('.pybfr');
-      re80.exec(str82);
-      re80.exec(str83);
-      re80.exec(str84);
-      re80.exec(str86);
-      re80.exec('qg');
-      re80.exec('rzorq');
-      re80.exec('sbez.nwnk');
-      re80.exec(str90);
-      re80.exec('bowrpg');
-      re61.exec('qlaYvo.wf');
-      re61.exec('rssrpgYvo.wf');
-      re61.exec('uggc://jjj.tzk.arg/qr/?fgnghf=uvajrvf');
-      re92.exec(' .pybfr');
-      re92.exec(' n.svryqOgaPnapry');
-      re92.exec(' qg');
-      re92.exec(str48);
-      re92.exec('.nwnk');
-      re92.exec('.svryqOga,n.svryqOgaPnapry');
-      re92.exec('.svryqOgaPnapry');
-      re92.exec('.bow-nppbeqvba qg');
-      re68.exec(str77);
-      re68.exec('*');
-      re68.exec('.pybfr');
-      re68.exec(str82);
-      re68.exec(str83);
-      re68.exec(str84);
-      re68.exec(str86);
-      re68.exec('qg');
-      re68.exec('rzorq');
-      re68.exec('sbez.nwnk');
-      re68.exec(str90);
-      re68.exec('bowrpg');
-      re93.exec(' .pybfr');
-      re93.exec(' n.svryqOgaPnapry');
-      re93.exec(' qg');
-      re93.exec(str48);
-      re93.exec('.nwnk');
-      re93.exec('.svryqOga,n.svryqOgaPnapry');
-      re93.exec('.svryqOgaPnapry');
-      re93.exec('.bow-nppbeqvba qg');
-      re81.exec(str77);
-      re81.exec('*');
-      re81.exec(str48);
-      re81.exec('.pybfr');
-      re81.exec(str82);
-      re81.exec(str83);
-      re81.exec(str84);
-      re81.exec(str86);
-      re81.exec('qg');
-      re81.exec('rzorq');
-      re81.exec('sbez.nwnk');
-      re81.exec(str90);
-      re81.exec('bowrpg');
-      re94.exec(' .pybfr');
-      re94.exec(' n.svryqOgaPnapry');
-      re94.exec(' qg');
-      re94.exec(str48);
-      re94.exec('.nwnk');
-      re94.exec('.svryqOga,n.svryqOgaPnapry');
-      re94.exec('.svryqOgaPnapry');
-      re94.exec('.bow-nppbeqvba qg');
-      re94.exec('[anzr=nwnkHey]');
-      re94.exec(str82);
-      re31.exec('rf');
-      re31.exec('wn');
-      re82.exec(str77);
-      re82.exec('*');
-      re82.exec(str48);
-      re82.exec('.pybfr');
-      re82.exec(str82);
-      re82.exec(str83);
-      re82.exec(str84);
-      re82.exec(str86);
-      re82.exec('qg');
-      re82.exec('rzorq');
-      re82.exec('sbez.nwnk');
-      re82.exec(str90);
-      re82.exec('bowrpg');
-      re83.exec(str98);
-      re83.exec('shapgvba sbphf() { [angvir pbqr] }');
-      re62.exec('#Ybtva');
-      re62.exec('#Ybtva_cnffjbeq');
-      re62.exec(str77);
-      re62.exec('#fubhgobkWf');
-      re62.exec('#fubhgobkWfReebe');
-      re62.exec('#fubhgobkWfFhpprff');
-      re62.exec('*');
-      re62.exec(str82);
-      re62.exec(str83);
-      re62.exec(str86);
-      re62.exec('rzorq');
-      re62.exec('sbez.nwnk');
-      re62.exec(str90);
-      re62.exec('bowrpg');
-      re49.exec('pbagrag');
-      re24.exec(str6);
-      /xbadhrebe/.exec(str63);
-      /znp/.exec('jva32');
-      /zbmvyyn/.exec(str63);
-      /zfvr/.exec(str63);
-      /ag\s5\.1/.exec(str63);
-      /bcren/.exec(str63);
-      /fnsnev/.exec(str63);
-      /jva/.exec('jva32');
-      /jvaqbjf/.exec(str63);
-    }
-  }
-
-  function run() {
-    for (var i = 0; i < 5; i++) {
-      runBlock0();
-      runBlock1();
-      runBlock2();
-      runBlock3();
-      runBlock4();
-      runBlock5();
-      runBlock6();
-      runBlock7();
-      runBlock8();
-      runBlock9();
-      runBlock10();
-      runBlock11();
-    }
-  }
-
-  this.run = run;
-}
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/richards.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/richards.js
deleted file mode 100644
index 054928d..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/richards.js
+++ /dev/null
@@ -1,539 +0,0 @@
-// Copyright 2006-2008 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.
-
-
-// This is a JavaScript implementation of the Richards
-// benchmark from:
-//
-//    http://www.cl.cam.ac.uk/~mr10/Bench.html
-//
-// The benchmark was originally implemented in BCPL by
-// Martin Richards.
-
-
-var Richards = new BenchmarkSuite('Richards', 35302, [
-  new Benchmark("Richards", runRichards)
-]);
-
-
-/**
- * The Richards benchmark simulates the task dispatcher of an
- * operating system.
- **/
-function runRichards() {
-  var scheduler = new Scheduler();
-  scheduler.addIdleTask(ID_IDLE, 0, null, COUNT);
-
-  var queue = new Packet(null, ID_WORKER, KIND_WORK);
-  queue = new Packet(queue,  ID_WORKER, KIND_WORK);
-  scheduler.addWorkerTask(ID_WORKER, 1000, queue);
-
-  queue = new Packet(null, ID_DEVICE_A, KIND_DEVICE);
-  queue = new Packet(queue,  ID_DEVICE_A, KIND_DEVICE);
-  queue = new Packet(queue,  ID_DEVICE_A, KIND_DEVICE);
-  scheduler.addHandlerTask(ID_HANDLER_A, 2000, queue);
-
-  queue = new Packet(null, ID_DEVICE_B, KIND_DEVICE);
-  queue = new Packet(queue,  ID_DEVICE_B, KIND_DEVICE);
-  queue = new Packet(queue,  ID_DEVICE_B, KIND_DEVICE);
-  scheduler.addHandlerTask(ID_HANDLER_B, 3000, queue);
-
-  scheduler.addDeviceTask(ID_DEVICE_A, 4000, null);
-
-  scheduler.addDeviceTask(ID_DEVICE_B, 5000, null);
-
-  scheduler.schedule();
-
-  if (scheduler.queueCount != EXPECTED_QUEUE_COUNT ||
-      scheduler.holdCount != EXPECTED_HOLD_COUNT) {
-    var msg =
-        "Error during execution: queueCount = " + scheduler.queueCount +
-        ", holdCount = " + scheduler.holdCount + ".";
-    throw new Error(msg);
-  }
-}
-
-var COUNT = 1000;
-
-/**
- * These two constants specify how many times a packet is queued and
- * how many times a task is put on hold in a correct run of richards.
- * They don't have any meaning a such but are characteristic of a
- * correct run so if the actual queue or hold count is different from
- * the expected there must be a bug in the implementation.
- **/
-var EXPECTED_QUEUE_COUNT = 2322;
-var EXPECTED_HOLD_COUNT = 928;
-
-
-/**
- * A scheduler can be used to schedule a set of tasks based on their relative
- * priorities.  Scheduling is done by maintaining a list of task control blocks
- * which holds tasks and the data queue they are processing.
- * @constructor
- */
-function Scheduler() {
-  this.queueCount = 0;
-  this.holdCount = 0;
-  this.blocks = new Array(NUMBER_OF_IDS);
-  this.list = null;
-  this.currentTcb = null;
-  this.currentId = null;
-}
-
-var ID_IDLE       = 0;
-var ID_WORKER     = 1;
-var ID_HANDLER_A  = 2;
-var ID_HANDLER_B  = 3;
-var ID_DEVICE_A   = 4;
-var ID_DEVICE_B   = 5;
-var NUMBER_OF_IDS = 6;
-
-var KIND_DEVICE   = 0;
-var KIND_WORK     = 1;
-
-/**
- * Add an idle task to this scheduler.
- * @param {int} id the identity of the task
- * @param {int} priority the task's priority
- * @param {Packet} queue the queue of work to be processed by the task
- * @param {int} count the number of times to schedule the task
- */
-Scheduler.prototype.addIdleTask = function (id, priority, queue, count) {
-  this.addRunningTask(id, priority, queue, new IdleTask(this, 1, count));
-};
-
-/**
- * Add a work task to this scheduler.
- * @param {int} id the identity of the task
- * @param {int} priority the task's priority
- * @param {Packet} queue the queue of work to be processed by the task
- */
-Scheduler.prototype.addWorkerTask = function (id, priority, queue) {
-  this.addTask(id, priority, queue, new WorkerTask(this, ID_HANDLER_A, 0));
-};
-
-/**
- * Add a handler task to this scheduler.
- * @param {int} id the identity of the task
- * @param {int} priority the task's priority
- * @param {Packet} queue the queue of work to be processed by the task
- */
-Scheduler.prototype.addHandlerTask = function (id, priority, queue) {
-  this.addTask(id, priority, queue, new HandlerTask(this));
-};
-
-/**
- * Add a handler task to this scheduler.
- * @param {int} id the identity of the task
- * @param {int} priority the task's priority
- * @param {Packet} queue the queue of work to be processed by the task
- */
-Scheduler.prototype.addDeviceTask = function (id, priority, queue) {
-  this.addTask(id, priority, queue, new DeviceTask(this))
-};
-
-/**
- * Add the specified task and mark it as running.
- * @param {int} id the identity of the task
- * @param {int} priority the task's priority
- * @param {Packet} queue the queue of work to be processed by the task
- * @param {Task} task the task to add
- */
-Scheduler.prototype.addRunningTask = function (id, priority, queue, task) {
-  this.addTask(id, priority, queue, task);
-  this.currentTcb.setRunning();
-};
-
-/**
- * Add the specified task to this scheduler.
- * @param {int} id the identity of the task
- * @param {int} priority the task's priority
- * @param {Packet} queue the queue of work to be processed by the task
- * @param {Task} task the task to add
- */
-Scheduler.prototype.addTask = function (id, priority, queue, task) {
-  this.currentTcb = new TaskControlBlock(this.list, id, priority, queue, task);
-  this.list = this.currentTcb;
-  this.blocks[id] = this.currentTcb;
-};
-
-/**
- * Execute the tasks managed by this scheduler.
- */
-Scheduler.prototype.schedule = function () {
-  this.currentTcb = this.list;
-  while (this.currentTcb != null) {
-    if (this.currentTcb.isHeldOrSuspended()) {
-      this.currentTcb = this.currentTcb.link;
-    } else {
-      this.currentId = this.currentTcb.id;
-      this.currentTcb = this.currentTcb.run();
-    }
-  }
-};
-
-/**
- * Release a task that is currently blocked and return the next block to run.
- * @param {int} id the id of the task to suspend
- */
-Scheduler.prototype.release = function (id) {
-  var tcb = this.blocks[id];
-  if (tcb == null) return tcb;
-  tcb.markAsNotHeld();
-  if (tcb.priority > this.currentTcb.priority) {
-    return tcb;
-  } else {
-    return this.currentTcb;
-  }
-};
-
-/**
- * Block the currently executing task and return the next task control block
- * to run.  The blocked task will not be made runnable until it is explicitly
- * released, even if new work is added to it.
- */
-Scheduler.prototype.holdCurrent = function () {
-  this.holdCount++;
-  this.currentTcb.markAsHeld();
-  return this.currentTcb.link;
-};
-
-/**
- * Suspend the currently executing task and return the next task control block
- * to run.  If new work is added to the suspended task it will be made runnable.
- */
-Scheduler.prototype.suspendCurrent = function () {
-  this.currentTcb.markAsSuspended();
-  return this.currentTcb;
-};
-
-/**
- * Add the specified packet to the end of the worklist used by the task
- * associated with the packet and make the task runnable if it is currently
- * suspended.
- * @param {Packet} packet the packet to add
- */
-Scheduler.prototype.queue = function (packet) {
-  var t = this.blocks[packet.id];
-  if (t == null) return t;
-  this.queueCount++;
-  packet.link = null;
-  packet.id = this.currentId;
-  return t.checkPriorityAdd(this.currentTcb, packet);
-};
-
-/**
- * A task control block manages a task and the queue of work packages associated
- * with it.
- * @param {TaskControlBlock} link the preceding block in the linked block list
- * @param {int} id the id of this block
- * @param {int} priority the priority of this block
- * @param {Packet} queue the queue of packages to be processed by the task
- * @param {Task} task the task
- * @constructor
- */
-function TaskControlBlock(link, id, priority, queue, task) {
-  this.link = link;
-  this.id = id;
-  this.priority = priority;
-  this.queue = queue;
-  this.task = task;
-  if (queue == null) {
-    this.state = STATE_SUSPENDED;
-  } else {
-    this.state = STATE_SUSPENDED_RUNNABLE;
-  }
-}
-
-/**
- * The task is running and is currently scheduled.
- */
-var STATE_RUNNING = 0;
-
-/**
- * The task has packets left to process.
- */
-var STATE_RUNNABLE = 1;
-
-/**
- * The task is not currently running.  The task is not blocked as such and may
-* be started by the scheduler.
- */
-var STATE_SUSPENDED = 2;
-
-/**
- * The task is blocked and cannot be run until it is explicitly released.
- */
-var STATE_HELD = 4;
-
-var STATE_SUSPENDED_RUNNABLE = STATE_SUSPENDED | STATE_RUNNABLE;
-var STATE_NOT_HELD = ~STATE_HELD;
-
-TaskControlBlock.prototype.setRunning = function () {
-  this.state = STATE_RUNNING;
-};
-
-TaskControlBlock.prototype.markAsNotHeld = function () {
-  this.state = this.state & STATE_NOT_HELD;
-};
-
-TaskControlBlock.prototype.markAsHeld = function () {
-  this.state = this.state | STATE_HELD;
-};
-
-TaskControlBlock.prototype.isHeldOrSuspended = function () {
-  return (this.state & STATE_HELD) != 0 || (this.state == STATE_SUSPENDED);
-};
-
-TaskControlBlock.prototype.markAsSuspended = function () {
-  this.state = this.state | STATE_SUSPENDED;
-};
-
-TaskControlBlock.prototype.markAsRunnable = function () {
-  this.state = this.state | STATE_RUNNABLE;
-};
-
-/**
- * Runs this task, if it is ready to be run, and returns the next task to run.
- */
-TaskControlBlock.prototype.run = function () {
-  var packet;
-  if (this.state == STATE_SUSPENDED_RUNNABLE) {
-    packet = this.queue;
-    this.queue = packet.link;
-    if (this.queue == null) {
-      this.state = STATE_RUNNING;
-    } else {
-      this.state = STATE_RUNNABLE;
-    }
-  } else {
-    packet = null;
-  }
-  return this.task.run(packet);
-};
-
-/**
- * Adds a packet to the worklist of this block's task, marks this as runnable if
- * necessary, and returns the next runnable object to run (the one
- * with the highest priority).
- */
-TaskControlBlock.prototype.checkPriorityAdd = function (task, packet) {
-  if (this.queue == null) {
-    this.queue = packet;
-    this.markAsRunnable();
-    if (this.priority > task.priority) return this;
-  } else {
-    this.queue = packet.addTo(this.queue);
-  }
-  return task;
-};
-
-TaskControlBlock.prototype.toString = function () {
-  return "tcb { " + this.task + "@" + this.state + " }";
-};
-
-/**
- * An idle task doesn't do any work itself but cycles control between the two
- * device tasks.
- * @param {Scheduler} scheduler the scheduler that manages this task
- * @param {int} v1 a seed value that controls how the device tasks are scheduled
- * @param {int} count the number of times this task should be scheduled
- * @constructor
- */
-function IdleTask(scheduler, v1, count) {
-  this.scheduler = scheduler;
-  this.v1 = v1;
-  this.count = count;
-}
-
-IdleTask.prototype.run = function (packet) {
-  this.count--;
-  if (this.count == 0) return this.scheduler.holdCurrent();
-  if ((this.v1 & 1) == 0) {
-    this.v1 = this.v1 >> 1;
-    return this.scheduler.release(ID_DEVICE_A);
-  } else {
-    this.v1 = (this.v1 >> 1) ^ 0xD008;
-    return this.scheduler.release(ID_DEVICE_B);
-  }
-};
-
-IdleTask.prototype.toString = function () {
-  return "IdleTask"
-};
-
-/**
- * A task that suspends itself after each time it has been run to simulate
- * waiting for data from an external device.
- * @param {Scheduler} scheduler the scheduler that manages this task
- * @constructor
- */
-function DeviceTask(scheduler) {
-  this.scheduler = scheduler;
-  this.v1 = null;
-}
-
-DeviceTask.prototype.run = function (packet) {
-  if (packet == null) {
-    if (this.v1 == null) return this.scheduler.suspendCurrent();
-    var v = this.v1;
-    this.v1 = null;
-    return this.scheduler.queue(v);
-  } else {
-    this.v1 = packet;
-    return this.scheduler.holdCurrent();
-  }
-};
-
-DeviceTask.prototype.toString = function () {
-  return "DeviceTask";
-};
-
-/**
- * A task that manipulates work packets.
- * @param {Scheduler} scheduler the scheduler that manages this task
- * @param {int} v1 a seed used to specify how work packets are manipulated
- * @param {int} v2 another seed used to specify how work packets are manipulated
- * @constructor
- */
-function WorkerTask(scheduler, v1, v2) {
-  this.scheduler = scheduler;
-  this.v1 = v1;
-  this.v2 = v2;
-}
-
-WorkerTask.prototype.run = function (packet) {
-  if (packet == null) {
-    return this.scheduler.suspendCurrent();
-  } else {
-    if (this.v1 == ID_HANDLER_A) {
-      this.v1 = ID_HANDLER_B;
-    } else {
-      this.v1 = ID_HANDLER_A;
-    }
-    packet.id = this.v1;
-    packet.a1 = 0;
-    for (var i = 0; i < DATA_SIZE; i++) {
-      this.v2++;
-      if (this.v2 > 26) this.v2 = 1;
-      packet.a2[i] = this.v2;
-    }
-    return this.scheduler.queue(packet);
-  }
-};
-
-WorkerTask.prototype.toString = function () {
-  return "WorkerTask";
-};
-
-/**
- * A task that manipulates work packets and then suspends itself.
- * @param {Scheduler} scheduler the scheduler that manages this task
- * @constructor
- */
-function HandlerTask(scheduler) {
-  this.scheduler = scheduler;
-  this.v1 = null;
-  this.v2 = null;
-}
-
-HandlerTask.prototype.run = function (packet) {
-  if (packet != null) {
-    if (packet.kind == KIND_WORK) {
-      this.v1 = packet.addTo(this.v1);
-    } else {
-      this.v2 = packet.addTo(this.v2);
-    }
-  }
-  if (this.v1 != null) {
-    var count = this.v1.a1;
-    var v;
-    if (count < DATA_SIZE) {
-      if (this.v2 != null) {
-        v = this.v2;
-        this.v2 = this.v2.link;
-        v.a1 = this.v1.a2[count];
-        this.v1.a1 = count + 1;
-        return this.scheduler.queue(v);
-      }
-    } else {
-      v = this.v1;
-      this.v1 = this.v1.link;
-      return this.scheduler.queue(v);
-    }
-  }
-  return this.scheduler.suspendCurrent();
-};
-
-HandlerTask.prototype.toString = function () {
-  return "HandlerTask";
-};
-
-/* --- *
- * P a c k e t
- * --- */
-
-var DATA_SIZE = 4;
-
-/**
- * A simple package of data that is manipulated by the tasks.  The exact layout
- * of the payload data carried by a packet is not importaint, and neither is the
- * nature of the work performed on packets by the tasks.
- *
- * Besides carrying data, packets form linked lists and are hence used both as
- * data and worklists.
- * @param {Packet} link the tail of the linked list of packets
- * @param {int} id an ID for this packet
- * @param {int} kind the type of this packet
- * @constructor
- */
-function Packet(link, id, kind) {
-  this.link = link;
-  this.id = id;
-  this.kind = kind;
-  this.a1 = 0;
-  this.a2 = new Array(DATA_SIZE);
-}
-
-/**
- * Add this packet to the end of a worklist, and return the worklist.
- * @param {Packet} queue the worklist to add this packet to
- */
-Packet.prototype.addTo = function (queue) {
-  this.link = null;
-  if (queue == null) return this;
-  var peek, next = queue;
-  while ((peek = next.link) != null)
-    next = peek;
-  next.link = this;
-  return queue;
-};
-
-Packet.prototype.toString = function () {
-  return "Packet";
-};
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/run.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/run.js
deleted file mode 100644
index e778130..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/run.js
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright 2008 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.
-
-
-load('base.js');
-load('richards.js');
-load('deltablue.js');
-load('crypto.js');
-load('raytrace.js');
-load('earley-boyer.js');
-load('regexp.js');
-load('splay.js');
-load('navier-stokes.js');
-load('pdfjs.js');
-load('mandreel.js');
-load('gbemu.js');
-load('code-load.js');
-load('box2d.js');
-
-var success = true;
-
-function PrintResult(name, result) {
-  print(name + ': ' + result);
-}
-
-
-function PrintError(name, error) {
-  PrintResult(name, error);
-  success = false;
-}
-
-
-function PrintScore(score) {
-  if (success) {
-    print('----');
-    print('Score (version ' + BenchmarkSuite.version + '): ' + score);
-  }
-}
-
-
-BenchmarkSuite.RunSuites({ NotifyResult: PrintResult,
-                           NotifyError: PrintError,
-                           NotifyScore: PrintScore });
diff --git a/suite/pts/hostTests/browser/browserlauncher/assets/octane/splay.js b/suite/pts/hostTests/browser/browserlauncher/assets/octane/splay.js
deleted file mode 100644
index 6b4f56d..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/assets/octane/splay.js
+++ /dev/null
@@ -1,394 +0,0 @@
-// Copyright 2009 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.
-
-// This benchmark is based on a JavaScript log processing module used
-// by the V8 profiler to generate execution time profiles for runs of
-// JavaScript applications, and it effectively measures how fast the
-// JavaScript engine is at allocating nodes and reclaiming the memory
-// used for old nodes. Because of the way splay trees work, the engine
-// also has to deal with a lot of changes to the large tree object
-// graph.
-
-var Splay = new BenchmarkSuite('Splay', 81491, [
-  new Benchmark("Splay", SplayRun, SplaySetup, SplayTearDown)
-]);
-
-
-// Configuration.
-var kSplayTreeSize = 8000;
-var kSplayTreeModifications = 80;
-var kSplayTreePayloadDepth = 5;
-
-var splayTree = null;
-
-
-function GeneratePayloadTree(depth, tag) {
-  if (depth == 0) {
-    return {
-      array  : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ],
-      string : 'String for key ' + tag + ' in leaf node'
-    };
-  } else {
-    return {
-      left:  GeneratePayloadTree(depth - 1, tag),
-      right: GeneratePayloadTree(depth - 1, tag)
-    };
-  }
-}
-
-
-function GenerateKey() {
-  // The benchmark framework guarantees that Math.random is
-  // deterministic; see base.js.
-  return Math.random();
-}
-
-
-function InsertNewNode() {
-  // Insert new node with a unique key.
-  var key;
-  do {
-    key = GenerateKey();
-  } while (splayTree.find(key) != null);
-  var payload = GeneratePayloadTree(kSplayTreePayloadDepth, String(key));
-  splayTree.insert(key, payload);
-  return key;
-}
-
-
-
-function SplaySetup() {
-  splayTree = new SplayTree();
-  for (var i = 0; i < kSplayTreeSize; i++) InsertNewNode();
-}
-
-
-function SplayTearDown() {
-  // Allow the garbage collector to reclaim the memory
-  // used by the splay tree no matter how we exit the
-  // tear down function.
-  var keys = splayTree.exportKeys();
-  splayTree = null;
-
-  // Verify that the splay tree has the right size.
-  var length = keys.length;
-  if (length != kSplayTreeSize) {
-    throw new Error("Splay tree has wrong size");
-  }
-
-  // Verify that the splay tree has sorted, unique keys.
-  for (var i = 0; i < length - 1; i++) {
-    if (keys[i] >= keys[i + 1]) {
-      throw new Error("Splay tree not sorted");
-    }
-  }
-}
-
-
-function SplayRun() {
-  // Replace a few nodes in the splay tree.
-  for (var i = 0; i < kSplayTreeModifications; i++) {
-    var key = InsertNewNode();
-    var greatest = splayTree.findGreatestLessThan(key);
-    if (greatest == null) splayTree.remove(key);
-    else splayTree.remove(greatest.key);
-  }
-}
-
-
-/**
- * Constructs a Splay tree.  A splay tree is a self-balancing binary
- * search tree with the additional property that recently accessed
- * elements are quick to access again. It performs basic operations
- * such as insertion, look-up and removal in O(log(n)) amortized time.
- *
- * @constructor
- */
-function SplayTree() {
-};
-
-
-/**
- * Pointer to the root node of the tree.
- *
- * @type {SplayTree.Node}
- * @private
- */
-SplayTree.prototype.root_ = null;
-
-
-/**
- * @return {boolean} Whether the tree is empty.
- */
-SplayTree.prototype.isEmpty = function() {
-  return !this.root_;
-};
-
-
-/**
- * Inserts a node into the tree with the specified key and value if
- * the tree does not already contain a node with the specified key. If
- * the value is inserted, it becomes the root of the tree.
- *
- * @param {number} key Key to insert into the tree.
- * @param {*} value Value to insert into the tree.
- */
-SplayTree.prototype.insert = function(key, value) {
-  if (this.isEmpty()) {
-    this.root_ = new SplayTree.Node(key, value);
-    return;
-  }
-  // Splay on the key to move the last node on the search path for
-  // the key to the root of the tree.
-  this.splay_(key);
-  if (this.root_.key == key) {
-    return;
-  }
-  var node = new SplayTree.Node(key, value);
-  if (key > this.root_.key) {
-    node.left = this.root_;
-    node.right = this.root_.right;
-    this.root_.right = null;
-  } else {
-    node.right = this.root_;
-    node.left = this.root_.left;
-    this.root_.left = null;
-  }
-  this.root_ = node;
-};
-
-
-/**
- * Removes a node with the specified key from the tree if the tree
- * contains a node with this key. The removed node is returned. If the
- * key is not found, an exception is thrown.
- *
- * @param {number} key Key to find and remove from the tree.
- * @return {SplayTree.Node} The removed node.
- */
-SplayTree.prototype.remove = function(key) {
-  if (this.isEmpty()) {
-    throw Error('Key not found: ' + key);
-  }
-  this.splay_(key);
-  if (this.root_.key != key) {
-    throw Error('Key not found: ' + key);
-  }
-  var removed = this.root_;
-  if (!this.root_.left) {
-    this.root_ = this.root_.right;
-  } else {
-    var right = this.root_.right;
-    this.root_ = this.root_.left;
-    // Splay to make sure that the new root has an empty right child.
-    this.splay_(key);
-    // Insert the original right child as the right child of the new
-    // root.
-    this.root_.right = right;
-  }
-  return removed;
-};
-
-
-/**
- * Returns the node having the specified key or null if the tree doesn't contain
- * a node with the specified key.
- *
- * @param {number} key Key to find in the tree.
- * @return {SplayTree.Node} Node having the specified key.
- */
-SplayTree.prototype.find = function(key) {
-  if (this.isEmpty()) {
-    return null;
-  }
-  this.splay_(key);
-  return this.root_.key == key ? this.root_ : null;
-};
-
-
-/**
- * @return {SplayTree.Node} Node having the maximum key value.
- */
-SplayTree.prototype.findMax = function(opt_startNode) {
-  if (this.isEmpty()) {
-    return null;
-  }
-  var current = opt_startNode || this.root_;
-  while (current.right) {
-    current = current.right;
-  }
-  return current;
-};
-
-
-/**
- * @return {SplayTree.Node} Node having the maximum key value that
- *     is less than the specified key value.
- */
-SplayTree.prototype.findGreatestLessThan = function(key) {
-  if (this.isEmpty()) {
-    return null;
-  }
-  // Splay on the key to move the node with the given key or the last
-  // node on the search path to the top of the tree.
-  this.splay_(key);
-  // Now the result is either the root node or the greatest node in
-  // the left subtree.
-  if (this.root_.key < key) {
-    return this.root_;
-  } else if (this.root_.left) {
-    return this.findMax(this.root_.left);
-  } else {
-    return null;
-  }
-};
-
-
-/**
- * @return {Array<*>} An array containing all the keys of tree's nodes.
- */
-SplayTree.prototype.exportKeys = function() {
-  var result = [];
-  if (!this.isEmpty()) {
-    this.root_.traverse_(function(node) { result.push(node.key); });
-  }
-  return result;
-};
-
-
-/**
- * Perform the splay operation for the given key. Moves the node with
- * the given key to the top of the tree.  If no node has the given
- * key, the last node on the search path is moved to the top of the
- * tree. This is the simplified top-down splaying algorithm from:
- * "Self-adjusting Binary Search Trees" by Sleator and Tarjan
- *
- * @param {number} key Key to splay the tree on.
- * @private
- */
-SplayTree.prototype.splay_ = function(key) {
-  if (this.isEmpty()) {
-    return;
-  }
-  // Create a dummy node.  The use of the dummy node is a bit
-  // counter-intuitive: The right child of the dummy node will hold
-  // the L tree of the algorithm.  The left child of the dummy node
-  // will hold the R tree of the algorithm.  Using a dummy node, left
-  // and right will always be nodes and we avoid special cases.
-  var dummy, left, right;
-  dummy = left = right = new SplayTree.Node(null, null);
-  var current = this.root_;
-  while (true) {
-    if (key < current.key) {
-      if (!current.left) {
-        break;
-      }
-      if (key < current.left.key) {
-        // Rotate right.
-        var tmp = current.left;
-        current.left = tmp.right;
-        tmp.right = current;
-        current = tmp;
-        if (!current.left) {
-          break;
-        }
-      }
-      // Link right.
-      right.left = current;
-      right = current;
-      current = current.left;
-    } else if (key > current.key) {
-      if (!current.right) {
-        break;
-      }
-      if (key > current.right.key) {
-        // Rotate left.
-        var tmp = current.right;
-        current.right = tmp.left;
-        tmp.left = current;
-        current = tmp;
-        if (!current.right) {
-          break;
-        }
-      }
-      // Link left.
-      left.right = current;
-      left = current;
-      current = current.right;
-    } else {
-      break;
-    }
-  }
-  // Assemble.
-  left.right = current.left;
-  right.left = current.right;
-  current.left = dummy.right;
-  current.right = dummy.left;
-  this.root_ = current;
-};
-
-
-/**
- * Constructs a Splay tree node.
- *
- * @param {number} key Key.
- * @param {*} value Value.
- */
-SplayTree.Node = function(key, value) {
-  this.key = key;
-  this.value = value;
-};
-
-
-/**
- * @type {SplayTree.Node}
- */
-SplayTree.Node.prototype.left = null;
-
-
-/**
- * @type {SplayTree.Node}
- */
-SplayTree.Node.prototype.right = null;
-
-
-/**
- * Performs an ordered traversal of the subtree starting at
- * this SplayTree.Node.
- *
- * @param {function(SplayTree.Node)} f Visitor function.
- * @private
- */
-SplayTree.Node.prototype.traverse_ = function(f) {
-  var current = this;
-  while (current) {
-    var left = current.left;
-    if (left) left.traverse_(f);
-    f(current);
-    current = current.right;
-  }
-};
diff --git a/suite/pts/hostTests/browser/browserlauncher/src/com/android/pts/browser/LaunchBrowserTest.java b/suite/pts/hostTests/browser/browserlauncher/src/com/android/pts/browser/LaunchBrowserTest.java
deleted file mode 100644
index a9e48f3..0000000
--- a/suite/pts/hostTests/browser/browserlauncher/src/com/android/pts/browser/LaunchBrowserTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.browser;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.net.Uri;
-import android.webkit.cts.CtsTestServer;
-import com.android.pts.util.PtsAndroidTestCase;
-
-import java.util.concurrent.Semaphore;
-import java.util.concurrent.TimeUnit;
-
-/**
- * Device side code to run browser benchmarking.
- * It launches an activity with URL and wait for broadcast sent from host.
- * It is host's responsibility to send broadcast after parsing browser's result.
- */
-public class LaunchBrowserTest extends PtsAndroidTestCase {
-
-    private static final String OCTANE_START_FILE = "octane/index.html";
-    private static final String HOST_COMPLETION_BROADCAST = "com.android.pts.browser.completion";
-    private static long BROWSER_COMPLETION_TIMEOUT = 10 * 60;
-    private CtsTestServer mWebServer;
-    private HostBroadcastReceiver mReceiver;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mWebServer = new CtsTestServer(getContext());
-        mReceiver = new HostBroadcastReceiver();
-        mReceiver.register(getContext(), HOST_COMPLETION_BROADCAST);
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        mReceiver.unregister(getContext());
-        mWebServer.shutdown();
-        mWebServer = null;
-        super.tearDown();
-    }
-
-    public void testOctane() throws InterruptedException {
-        String url = mWebServer.getAssetUrl(OCTANE_START_FILE) + "?auto=1";
-        Uri uri = Uri.parse(url);
-        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
-        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        getContext().startActivity(intent);
-        mReceiver.waitForBroadcast(BROWSER_COMPLETION_TIMEOUT);
-    }
-
-    class HostBroadcastReceiver extends BroadcastReceiver {
-        private final Semaphore mSemaphore = new Semaphore(0);
-
-        public void register(Context context, String actionName) {
-            IntentFilter filter = new IntentFilter();
-            filter.addAction(actionName);
-            context.registerReceiver(this, filter);
-        }
-
-        public void unregister(Context context) {
-            context.unregisterReceiver(this);
-        }
-
-        public boolean waitForBroadcast(long timeoutInSec) throws InterruptedException {
-            return mSemaphore.tryAcquire(timeoutInSec, TimeUnit.SECONDS);
-        }
-
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            mSemaphore.release();
-        }
-    }
-}
diff --git a/suite/pts/hostTests/browser/src/com/android/pts/browser/BrowserTest.java b/suite/pts/hostTests/browser/src/com/android/pts/browser/BrowserTest.java
deleted file mode 100644
index b5400ab..0000000
--- a/suite/pts/hostTests/browser/src/com/android/pts/browser/BrowserTest.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.browser;
-
-import android.cts.util.TimeoutReq;
-
-import com.android.cts.tradefed.build.CtsBuildHelper;
-import com.android.ddmlib.Log;
-import com.android.ddmlib.testrunner.RemoteAndroidTestRunner;
-import com.android.pts.ptsutil.LogcatLineReceiver;
-import com.android.pts.util.ReportLog;
-import com.android.pts.util.Stat;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.result.CollectingTestListener;
-import com.android.tradefed.result.TestRunResult;
-import com.android.tradefed.testtype.DeviceTestCase;
-import com.android.tradefed.testtype.IBuildReceiver;
-
-import java.io.File;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * Run browser benchmarking.
- * Benchmarking result is printed via logcat (JavaScript console.log method).
- * Corresponding device side test should be running to make browser benchmarking working,
- * And the device test expects HOST_COMPLETION_BROADCAST broadcast from host as device
- * test cannot detect the completion from browser side.
- */
-public class BrowserTest extends DeviceTestCase implements IBuildReceiver {
-    private static final String BROADCAST_CMD = "am broadcast -a com.android.pts.browser.completion";
-    private static final String TAG = "BrowserTest";
-    private static final String CTS_RUNNER = "android.test.InstrumentationCtsTestRunner";
-    private static final String PACKAGE = "com.android.pts.browser";
-    private static final String APK = "PtsDeviceBrowserLauncher.apk";
-    private static final long LOGCAT_TIMEOUT_IN_SEC = 10 * 60L;
-    private static final String LOGCAT_FILTER = " browser:D chromium:D *:S";
-    private static final long REBOOT_WAIT_TIME_IN_MS = 2 * 60 * 1000L;
-
-    private CtsBuildHelper mBuild;
-    private ITestDevice mDevice;
-    private LogcatLineReceiver mReceiver;
-    private ReportLog mReport;
-
-    private volatile boolean mIgnoreLine = true;
-    private double mResult;
-
-    @Override
-    public void setBuild(IBuildInfo buildInfo) {
-        mBuild = CtsBuildHelper.createBuildHelper(buildInfo);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mReport = new ReportLog();
-        mDevice = getDevice();
-        mDevice.uninstallPackage(PACKAGE);
-        File app = mBuild.getTestApp(APK);
-        mDevice.installPackage(app, false);
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
-        mDevice.uninstallPackage(PACKAGE);
-        mReport.throwReportToHost();
-    }
-
-    @TimeoutReq(minutes = 40)
-    public void testOctane() throws Exception {
-        String resultPattern = "([A-Z][\\d\\w]+): ([\\d]+)";
-        String summaryPattern = "(Octane Score.*): ([\\d]+)";
-        int numberRepeat = 5;
-        double[] results = new double[numberRepeat];
-        for (int i = 0; i < numberRepeat; i++) {
-            Log.i(TAG, i + "-th round");
-            // browser will not refresh if the page is already loaded.
-            mDevice.reboot();
-            Thread.sleep(REBOOT_WAIT_TIME_IN_MS);
-            results[i] = runBenchmarking("testOctane", resultPattern, summaryPattern);
-        }
-        mReport.printArray("scores", results, true);
-        Stat.StatResult stat = Stat.getStat(results);
-        mReport.printSummary("Score", stat.mAverage, stat.mStddev);
-    }
-
-    private double runBenchmarking(String testMethodName, String resultPattern,
-            String summaryPattern) throws DeviceNotAvailableException, InterruptedException {
-        RemoteAndroidTestRunner testRunner = new RemoteAndroidTestRunner(PACKAGE, CTS_RUNNER,
-                mDevice.getIDevice());
-        testRunner.setMethodName("com.android.pts.browser.LaunchBrowserTest", testMethodName);
-        CollectingTestListener listener = new CollectingTestListener();
-        mIgnoreLine = true;
-        startLogMonitoring(resultPattern, summaryPattern);
-        // hack to ignore already captured logcat as the monitor will get it again.
-        // Checking time and skipping may be a better logic, but simply throwing away also works.
-        Thread.sleep(5000);
-        mIgnoreLine = false;
-        Log.i(TAG, "start to run test in device");
-        mDevice.runInstrumentationTests(testRunner, listener);
-        TestRunResult result = listener.getCurrentRunResults();
-        if (result.isRunFailure()) {
-            fail(result.getRunFailureMessage());
-        }
-        if (result.getNumPassedTests() == 0) {
-            fail("maybe timeout");
-        }
-        stopLogMonitoring();
-        return mResult;
-    }
-
-    void startLogMonitoring(String resultPattern, String summaryPattern)
-            throws InterruptedException, DeviceNotAvailableException {
-        final Pattern result = Pattern.compile(resultPattern);
-        final Pattern summary = Pattern.compile(summaryPattern);
-        mReceiver = new LogcatLineReceiver(mDevice, LOGCAT_FILTER, LOGCAT_TIMEOUT_IN_SEC) {
-            @Override
-            public void processALine(String line) throws DeviceNotAvailableException {
-                Log.i(TAG, "processALine " + line + " ignore " + mIgnoreLine);
-                if (mIgnoreLine) {
-                    return;
-                }
-                Matcher matchResult = result.matcher(line);
-                if (matchResult.find()) {
-                    mReport.printValue(matchResult.group(1),
-                            Double.parseDouble(matchResult.group(2)));
-                }
-                Matcher matchSummary = summary.matcher(line);
-                if (matchSummary.find()) {
-                    mResult = Double.parseDouble(matchSummary.group(2));
-                    mReport.printValue(matchSummary.group(1), mResult);
-                    mDevice.executeShellCommand(BROADCAST_CMD);
-                }
-            }
-        };
-        mReceiver.start();
-    }
-
-    void stopLogMonitoring() {
-        mReceiver.stop();
-    }
-}
diff --git a/suite/pts/hostTests/ptshostutil/src/com/android/pts/ptsutil/LogcatLineReceiver.java b/suite/pts/hostTests/ptshostutil/src/com/android/pts/ptsutil/LogcatLineReceiver.java
deleted file mode 100644
index cb4980c..0000000
--- a/suite/pts/hostTests/ptshostutil/src/com/android/pts/ptsutil/LogcatLineReceiver.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.ptsutil;
-
-import com.android.tradefed.device.ITestDevice;
-
-/**
- * class to handle logcat log per each line.
- * processALine is supposed to be overridden.
- */
-public class LogcatLineReceiver extends LogcatMonitor {
-    public LogcatLineReceiver(ITestDevice device, String logcatFilter, long timeoutInSec) {
-        super(device, logcatFilter, timeoutInSec);
-    }
-
-    /**
-     * empty default implementation. Will be called whenever a line of log is received
-     * @param line
-     * @throws Exception
-     */
-    public void processALine(String line) throws Exception {
-
-    }
-
-    @Override
-    public void addOutput(byte[] data, int offset, int length) {
-        String lines = new String(data, offset, length);
-        try {
-            for (String line : lines.split("\n")) {
-                processALine(line);
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-}
diff --git a/suite/pts/hostTests/ptshostutil/src/com/android/pts/ptsutil/LogcatMonitor.java b/suite/pts/hostTests/ptshostutil/src/com/android/pts/ptsutil/LogcatMonitor.java
deleted file mode 100644
index adc1340..0000000
--- a/suite/pts/hostTests/ptshostutil/src/com/android/pts/ptsutil/LogcatMonitor.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.ptsutil;
-
-import com.android.ddmlib.IShellOutputReceiver;
-import com.android.tradefed.device.BackgroundDeviceAction;
-import com.android.tradefed.device.ITestDevice;
-
-import java.io.IOException;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.TimeUnit;
-
-/**
- * class to monitor adb logcat asynchronously.
- * Unlike tradefed's LogcatReceiver, log is accumulated to a buffer, and the log is removed after
- * reading once.
- */
-public class LogcatMonitor implements IShellOutputReceiver {
-    private static final String TAG = "LogcatMonitor";
-    private LinkedBlockingQueue<String> mQ = new LinkedBlockingQueue<String>();
-    private boolean mRunning = false;
-    private long mTimeoutInSec;
-    private BackgroundDeviceAction mDeviceAction;
-    // sentinel to detect EOS
-    private static final String EOS = "LOGCAT_MONITOR_EOS";
-    private static final String LOGCAT_CMD = "logcat -v threadtime ";
-
-    public LogcatMonitor(ITestDevice device, String logcatFilter, long timeoutInSec) {
-        mTimeoutInSec = timeoutInSec;
-        int logStartDelay = 0;
-        mDeviceAction = new BackgroundDeviceAction(LOGCAT_CMD + logcatFilter, TAG, device,
-                this, logStartDelay);
-    }
-
-    /** start monitoring log */
-    public void start() {
-        if (mRunning) {
-            return;
-        }
-        clear();
-        mDeviceAction.start();
-        mRunning = true;
-    }
-
-    /** stop monitoring */
-    public void stop() {
-        mDeviceAction.cancel();
-        mRunning = false;
-    }
-
-    /** clear all stored logs */
-    public void clear() {
-        mQ.clear();
-    }
-
-    /**
-     * read a line of log. If there is no data stored, it can wait until
-     *   the timeout specified in the constructor.
-     * @return null for time-out. Otherwise, a line of log is returned.
-     * @throws IOException for EOS (logcat terminated for whatever reason)
-     * @throws InterruptedException
-     */
-    public String getALine() throws IOException, InterruptedException {
-        String line = mQ.poll(mTimeoutInSec, TimeUnit.SECONDS);
-        if (line == EOS) {
-            throw new IOException();
-        }
-        return line;
-    }
-
-    public boolean dataAvailable() {
-        return !mQ.isEmpty();
-    }
-
-    @Override
-    public void addOutput(byte[] data, int offset, int length) {
-        String lines = new String(data, offset, length);
-        for (String line : lines.split("\n")) {
-            mQ.add(line);
-        }
-    }
-
-    @Override
-    public void flush() {
-        mQ.add(EOS);
-        mRunning = false;
-    }
-
-    @Override
-    public boolean isCancelled() {
-        return !mRunning;
-    }
-}
diff --git a/suite/pts/hostTests/uihost/Android.mk b/suite/pts/hostTests/uihost/Android.mk
deleted file mode 100644
index 77673a2..0000000
--- a/suite/pts/hostTests/uihost/Android.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (C) 2012 The Android Open Source Project
-#
-# 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.
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_MODULE := PtsHostUi
-
-LOCAL_JAVA_LIBRARIES := cts-tradefed tradefed-prebuilt ddmlib-prebuilt junit ptscommonutilhost
-
-LOCAL_PTS_TEST_PACKAGE := com.android.pts.uihost
-
-include $(BUILD_PTS_HOST_JAVA_LIBRARY)
-
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/suite/pts/hostTests/uihost/appA/Android.mk b/suite/pts/hostTests/uihost/appA/Android.mk
deleted file mode 100644
index 7dce44c..0000000
--- a/suite/pts/hostTests/uihost/appA/Android.mk
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (C) 2012 The Android Open Source Project
-#
-# 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.
-
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-# don't include this package in any target
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-
-LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := PtsDeviceTaskswitchingAppA
-
-LOCAL_SDK_VERSION := 16
-
-include $(BUILD_PTS_PACKAGE)
-
-
diff --git a/suite/pts/hostTests/uihost/appA/AndroidManifest.xml b/suite/pts/hostTests/uihost/appA/AndroidManifest.xml
deleted file mode 100644
index 1115ee6..0000000
--- a/suite/pts/hostTests/uihost/appA/AndroidManifest.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.android.pts.taskswitching.appa">
-
-    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
-
-    <application>
-        <activity
-                android:name=".AppAActivity"
-                android:screenOrientation="portrait"
-                android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER"/>
-            </intent-filter>
-        </activity>
-    </application>
-</manifest>
diff --git a/suite/pts/hostTests/uihost/appA/src/com/android/pts/taskswitching/appa/AppAActivity.java b/suite/pts/hostTests/uihost/appA/src/com/android/pts/taskswitching/appa/AppAActivity.java
deleted file mode 100644
index bb0c158..0000000
--- a/suite/pts/hostTests/uihost/appA/src/com/android/pts/taskswitching/appa/AppAActivity.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.taskswitching.appa;
-
-
-import android.app.ListActivity;
-import android.content.Intent;
-
-import android.os.Bundle;
-import android.os.Handler;
-import android.view.WindowManager;
-import android.widget.AbsListView;
-import android.widget.AbsListView.OnScrollListener;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-
-/**
- * Simple activity to notify completion via broadcast after onResume.
- * This is for measuring taskswitching time between two apps.
- */
-public class AppAActivity extends ListActivity {
-    static final String TAG = "AppAActivity";
-    private static final int NUMBER_ELEMENTS = 1000;
-    private static final String TASKSWITCHING_INTENT = "com.android.pts.taskswitching.appa";
-    private Handler mHandler;
-
-    private String[] mItems = new String[NUMBER_ELEMENTS];
-
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
-        for (int i = 0; i < NUMBER_ELEMENTS; i++) {
-            mItems[i] = "A" + Integer.toString(i);
-        }
-        setListAdapter(new ArrayAdapter<String>(this,
-                android.R.layout.simple_list_item_1, mItems));
-        ListView view = getListView();
-        mHandler = new Handler();
-    }
-
-    public void onResume() {
-        super.onResume();
-        mHandler.post(new Runnable() {
-
-            @Override
-            public void run() {
-                Intent intent = new Intent(TASKSWITCHING_INTENT);
-                sendBroadcast(intent);
-            }
-        });
-    }
-}
diff --git a/suite/pts/hostTests/uihost/appB/Android.mk b/suite/pts/hostTests/uihost/appB/Android.mk
deleted file mode 100644
index caa1090..0000000
--- a/suite/pts/hostTests/uihost/appB/Android.mk
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (C) 2012 The Android Open Source Project
-#
-# 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.
-
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-# don't include this package in any target
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-
-LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := PtsDeviceTaskswitchingAppB
-
-LOCAL_SDK_VERSION := 16
-
-include $(BUILD_PTS_PACKAGE)
-
-
diff --git a/suite/pts/hostTests/uihost/appB/AndroidManifest.xml b/suite/pts/hostTests/uihost/appB/AndroidManifest.xml
deleted file mode 100644
index d0ec4d7..0000000
--- a/suite/pts/hostTests/uihost/appB/AndroidManifest.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.android.pts.taskswitching.appb">
-
-    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
-
-    <application>
-        <activity
-                android:name=".AppBActivity"
-                android:screenOrientation="portrait"
-                android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER"/>
-            </intent-filter>
-        </activity>
-    </application>
-</manifest>
diff --git a/suite/pts/hostTests/uihost/appB/src/com/android/pts/taskswitching/appb/AppBActivity.java b/suite/pts/hostTests/uihost/appB/src/com/android/pts/taskswitching/appb/AppBActivity.java
deleted file mode 100644
index 22ebdac..0000000
--- a/suite/pts/hostTests/uihost/appB/src/com/android/pts/taskswitching/appb/AppBActivity.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.taskswitching.appb;
-
-import android.app.ListActivity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Handler;
-import android.view.WindowManager;
-import android.widget.AbsListView;
-import android.widget.AbsListView.OnScrollListener;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-
-/**
- * Simple activity to notify completion via broadcast after onResume.
- * This is for measuring taskswitching time between two apps.
- */
-public class AppBActivity extends ListActivity {
-    static final String TAG = "AppBActivity";
-    private static final int NUMBER_ELEMENTS = 1000;
-    private static final String TASKSWITCHING_INTENT = "com.android.pts.taskswitching.appb";
-    private Handler mHandler;
-
-    private String[] mItems = new String[NUMBER_ELEMENTS];
-
-    public void onCreate(Bundle icicle)
-    {
-        super.onCreate(icicle);
-        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
-        for (int i = 0; i < NUMBER_ELEMENTS; i++) {
-            mItems[i] = "B" + Integer.toString(i);
-        }
-        setListAdapter(new ArrayAdapter<String>(this,
-                android.R.layout.simple_list_item_1, mItems));
-        ListView view = getListView();
-        mHandler = new Handler();
-    }
-
-    public void onResume()
-    {
-        super.onResume();
-        mHandler.post(new Runnable() {
-
-            @Override
-            public void run() {
-                Intent intent = new Intent(TASKSWITCHING_INTENT);
-                sendBroadcast(intent);
-            }
-        });
-    }
-}
diff --git a/suite/pts/hostTests/uihost/control/AndroidManifest.xml b/suite/pts/hostTests/uihost/control/AndroidManifest.xml
deleted file mode 100644
index a7ab928..0000000
--- a/suite/pts/hostTests/uihost/control/AndroidManifest.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.android.pts.taskswitching.control">
-
-    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
-
-    <application>
-        <uses-library android:name="android.test.runner" />
-    </application>
-    <instrumentation
-        android:targetPackage="com.android.pts.taskswitching.control"
-        android:name="android.test.InstrumentationCtsTestRunner" />
-</manifest>
diff --git a/suite/pts/hostTests/uihost/control/src/com/android/pts/taskswitching/control/TaskswitchingDeviceTest.java b/suite/pts/hostTests/uihost/control/src/com/android/pts/taskswitching/control/TaskswitchingDeviceTest.java
deleted file mode 100644
index fc5bc04..0000000
--- a/suite/pts/hostTests/uihost/control/src/com/android/pts/taskswitching/control/TaskswitchingDeviceTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.taskswitching.control;
-
-import java.util.concurrent.Semaphore;
-import java.util.concurrent.TimeUnit;
-
-import android.content.BroadcastReceiver;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-
-import com.android.pts.util.MeasureRun;
-import com.android.pts.util.MeasureTime;
-import com.android.pts.util.PtsAndroidTestCase;
-import com.android.pts.util.Stat;
-
-
-/**
- * Device test which actually launches two apps sequentially and
- * measure time for switching.
- * Completion of launch is notified via broadcast.
- */
-public class TaskswitchingDeviceTest extends PtsAndroidTestCase {
-    private static final String PKG_A = "com.android.pts.taskswitching.appa";
-    private static final String PKG_B = "com.android.pts.taskswitching.appb";
-    private static final String ACTIVITY_A = "AppAActivity";
-    private static final String ACTIVITY_B = "AppBActivity";
-    private static final long TASK_SWITCHING_WAIT_TIME = 5;
-    private final AppBroadcastReceiver mReceiverA = new AppBroadcastReceiver();
-    private final AppBroadcastReceiver mReceiverB = new AppBroadcastReceiver();
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        startActivity(PKG_A, ACTIVITY_A);
-        startActivity(PKG_B, ACTIVITY_B);
-        IntentFilter filterA = new IntentFilter();
-        filterA.addAction(PKG_A);
-        IntentFilter filterB = new IntentFilter();
-        filterB.addAction(PKG_B);
-        getContext().registerReceiver(mReceiverA, filterA);
-        getContext().registerReceiver(mReceiverB, filterB);
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        getContext().unregisterReceiver(mReceiverA);
-        getContext().unregisterReceiver(mReceiverB);
-        super.tearDown();
-    }
-
-    public void testMeasureTaskSwitching() throws Exception {
-        final int NUMBER_REPEAT = 10;
-        final int SWITCHING_PER_ONE_TRY = 10;
-
-        double[] results = MeasureTime.measure(NUMBER_REPEAT, new MeasureRun() {
-
-            @Override
-            public void run(int i) throws Exception {
-                for (int j = 0; j < SWITCHING_PER_ONE_TRY; j++) {
-                    startActivity(PKG_A, ACTIVITY_A);
-                    assertTrue(mReceiverA.waitForBroadcast(TASK_SWITCHING_WAIT_TIME));
-                    startActivity(PKG_B, ACTIVITY_B);
-                    assertTrue(mReceiverB.waitForBroadcast(TASK_SWITCHING_WAIT_TIME));
-                }
-            }
-        });
-        getReportLog().printArray("ms", results, false);
-        Stat.StatResult stat = Stat.getStat(results);
-        getReportLog().printSummary("Time ms", stat.mAverage, stat.mStddev);
-    }
-
-    private void startActivity(String packageName, String activityName) {
-        Context context = getContext();
-        Intent intent = new Intent();
-        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        intent.addCategory(Intent.CATEGORY_LAUNCHER);
-        intent.setComponent(new ComponentName(packageName, packageName + "." + activityName));
-        context.startActivity(intent);
-    }
-
-    class AppBroadcastReceiver extends BroadcastReceiver {
-        private final Semaphore mSemaphore = new Semaphore(0);
-
-        public boolean waitForBroadcast(long timeoutInSec) throws InterruptedException {
-            return mSemaphore.tryAcquire(timeoutInSec, TimeUnit.SECONDS);
-        }
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            mSemaphore.release();
-        }
-    }
-}
diff --git a/suite/pts/hostTests/uihost/src/com/android/pts/uihost/InstallTimeTest.java b/suite/pts/hostTests/uihost/src/com/android/pts/uihost/InstallTimeTest.java
deleted file mode 100644
index 4bfcde1..0000000
--- a/suite/pts/hostTests/uihost/src/com/android/pts/uihost/InstallTimeTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.uihost;
-
-import android.cts.util.TimeoutReq;
-
-import com.android.cts.tradefed.build.CtsBuildHelper;
-import com.android.ddmlib.Log;
-import com.android.ddmlib.testrunner.RemoteAndroidTestRunner;
-import com.android.ddmlib.testrunner.TestIdentifier;
-import com.android.pts.util.MeasureRun;
-import com.android.pts.util.MeasureTime;
-import com.android.pts.util.PtsException;
-import com.android.pts.util.ReportLog;
-import com.android.pts.util.Stat;
-import com.android.pts.util.Stat.StatResult;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.device.TestDeviceOptions;
-import com.android.tradefed.result.CollectingTestListener;
-import com.android.tradefed.result.TestResult;
-import com.android.tradefed.result.TestRunResult;
-import com.android.tradefed.testtype.DeviceTestCase;
-import com.android.tradefed.testtype.IBuildReceiver;
-
-import java.io.File;
-import java.util.Map;
-
-/**
- * Test to measure installation time of a APK.
- */
-public class InstallTimeTest extends DeviceTestCase implements IBuildReceiver {
-    private static final String TAG = "InstallTimeTest";
-    private final static String CTS_RUNNER = "android.test.InstrumentationCtsTestRunner";
-    private CtsBuildHelper mBuild;
-    private ITestDevice mDevice;
-    private ReportLog mReport = null;
-
-    static final String PACKAGE = "com.replica.replicaisland";
-    static final String APK = "com.replica.replicaisland.apk";
-
-    @Override
-    public void setBuild(IBuildInfo buildInfo) {
-        mBuild = CtsBuildHelper.createBuildHelper(buildInfo);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mReport = new ReportLog();
-        mDevice = getDevice();
-    }
-
-
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
-        mDevice.uninstallPackage(PACKAGE);
-        mReport.throwReportToHost();
-    }
-
-    public void testInstallTime() throws Exception {
-        final int NUMBER_REPEAT = 10;
-        final CtsBuildHelper build = mBuild;
-        final ITestDevice device = mDevice;
-        double[] result = MeasureTime.measure(NUMBER_REPEAT, new MeasureRun() {
-            @Override
-            public void prepare(int i) throws Exception {
-                device.uninstallPackage(PACKAGE);
-            }
-            @Override
-            public void run(int i) throws Exception {
-                File app = build.getTestApp(APK);
-                device.installPackage(app, false);
-            }
-        });
-        mReport.printArray("time in ms", result, false);
-        StatResult stat = Stat.getStat(result);
-        mReport.printSummary("time in ms", stat.mAverage, stat.mStddev);
-    }
-
-}
diff --git a/suite/pts/hostTests/uihost/src/com/android/pts/uihost/TaskSwitchingTest.java b/suite/pts/hostTests/uihost/src/com/android/pts/uihost/TaskSwitchingTest.java
deleted file mode 100644
index 49d14a3..0000000
--- a/suite/pts/hostTests/uihost/src/com/android/pts/uihost/TaskSwitchingTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.uihost;
-
-import android.cts.util.TimeoutReq;
-
-import com.android.cts.tradefed.build.CtsBuildHelper;
-import com.android.ddmlib.Log;
-import com.android.ddmlib.testrunner.RemoteAndroidTestRunner;
-import com.android.ddmlib.testrunner.TestIdentifier;
-import com.android.pts.util.MeasureRun;
-import com.android.pts.util.MeasureTime;
-import com.android.pts.util.PtsException;
-import com.android.pts.util.Stat;
-import com.android.pts.util.Stat.StatResult;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.device.TestDeviceOptions;
-import com.android.tradefed.result.CollectingTestListener;
-import com.android.tradefed.result.TestResult;
-import com.android.tradefed.result.TestRunResult;
-import com.android.tradefed.testtype.DeviceTestCase;
-import com.android.tradefed.testtype.IBuildReceiver;
-
-import java.io.File;
-import java.util.Map;
-
-/**
- * Measure time to taskswitching between two Apps: A & B
- * Actual test is done in device, but this host side code installs all necessary APKs
- * and starts device test which is in PtsDeviceTaskswitchingControl.
- */
-public class TaskSwitchingTest extends DeviceTestCase implements IBuildReceiver {
-    private static final String TAG = "TaskSwitchingTest";
-    private final static String CTS_RUNNER = "android.test.InstrumentationCtsTestRunner";
-    private CtsBuildHelper mBuild;
-    private ITestDevice mDevice;
-
-    static final String[] PACKAGES = {
-        "com.android.pts.taskswitching.control",
-        "com.android.pts.taskswitching.appa",
-        "com.android.pts.taskswitching.appb"
-    };
-    static final String[] APKS = {
-        "PtsDeviceTaskswitchingControl.apk",
-        "PtsDeviceTaskswitchingAppA.apk",
-        "PtsDeviceTaskswitchingAppB.apk"
-    };
-
-    @Override
-    public void setBuild(IBuildInfo buildInfo) {
-        mBuild = CtsBuildHelper.createBuildHelper(buildInfo);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mDevice = getDevice();
-        for (int i = 0; i < PACKAGES.length; i++) {
-            mDevice.uninstallPackage(PACKAGES[i]);
-            File app = mBuild.getTestApp(APKS[i]);
-            mDevice.installPackage(app, false);
-        }
-    }
-
-
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
-        for (int i = 0; i < PACKAGES.length; i++) {
-            mDevice.uninstallPackage(PACKAGES[i]);
-        }
-    }
-
-    @TimeoutReq(minutes = 30)
-    public void testTaskswitching() throws Exception {
-        RemoteAndroidTestRunner testRunner = new RemoteAndroidTestRunner(PACKAGES[0], CTS_RUNNER,
-                mDevice.getIDevice());
-        CollectingTestListener listener = new CollectingTestListener();
-        mDevice.runInstrumentationTests(testRunner, listener);
-        TestRunResult result = listener.getCurrentRunResults();
-        if (result.isRunFailure()) {
-            fail(result.getRunFailureMessage());
-        }
-        Map<TestIdentifier, TestResult> details = result.getTestResults();
-        final String expectedException = "com.android.pts.util.PtsException";
-        for (Map.Entry<TestIdentifier, TestResult> entry : details.entrySet()) {
-            TestResult res = entry.getValue();
-            String stackTrace = res.getStackTrace();
-            if (stackTrace != null) {
-                if (stackTrace.startsWith(expectedException)) {
-                    String[] lines = stackTrace.split("[\r\n]+");
-                    String msg = lines[0].substring(expectedException.length() + 1).trim();
-                    throw new PtsException(msg);
-                }
-            }
-        }
-        fail("no performance data");
-    }
-
-}
diff --git a/suite/pts/lib/Android.mk b/suite/pts/lib/Android.mk
deleted file mode 100644
index c141484..0000000
--- a/suite/pts/lib/Android.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Copyright (C) 2012 The Android Open Source Project
-#
-# 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.
-#
-
-include $(call all-subdir-makefiles)
diff --git a/suite/pts/lib/commonutil/Android.mk b/suite/pts/lib/commonutil/Android.mk
deleted file mode 100644
index 27e0ba7..0000000
--- a/suite/pts/lib/commonutil/Android.mk
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright (C) 2012 The Android Open Source Project
-#
-# 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.
-
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_MODULE := ptscommonutil
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-################################################################
-
-include $(CLEAR_VARS)
-
-# only TmeoutReq annotation used from the libs/util, so add it here
-LOCAL_SRC_FILES := \
-    $(call all-java-files-under, src) \
-    ../../../../libs/util/src/android/cts/util/TimeoutReq.java
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_MODULE := ptscommonutilhost
-
-include $(BUILD_HOST_JAVA_LIBRARY)
\ No newline at end of file
diff --git a/suite/pts/lib/commonutil/src/com/android/pts/util/MeasureRun.java b/suite/pts/lib/commonutil/src/com/android/pts/util/MeasureRun.java
deleted file mode 100644
index 3add474..0000000
--- a/suite/pts/lib/commonutil/src/com/android/pts/util/MeasureRun.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.util;
-
-/**
- * interface for measuring time for each run.
- */
-public abstract class MeasureRun {
-    /**
-     *  called before each run. not included to time measurement.
-     */
-    public void prepare(int i) throws Exception {
-        // default empty implementation
-    };
-
-    abstract public void run(int i) throws Exception;
-}
diff --git a/suite/pts/lib/commonutil/src/com/android/pts/util/MeasureTime.java b/suite/pts/lib/commonutil/src/com/android/pts/util/MeasureTime.java
deleted file mode 100644
index 595e6a5..0000000
--- a/suite/pts/lib/commonutil/src/com/android/pts/util/MeasureTime.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.util;
-
-
-public class MeasureTime {
-    /**
-     * measure time taken for each run for given count
-     * @param count
-     * @param run
-     * @return array of time taken in each run in msec.
-     * @throws IOException
-     */
-    public static double[] measure(int count, MeasureRun run)  throws Exception {
-        double[] result = new double[count];
-
-        for (int i = 0; i < count; i++) {
-            run.prepare(i);
-            long start = System.currentTimeMillis();
-            run.run(i);
-            long end =  System.currentTimeMillis();
-            result[i] = end - start;
-        }
-        return result;
-    }
-}
diff --git a/suite/pts/lib/commonutil/src/com/android/pts/util/ReportLog.java b/suite/pts/lib/commonutil/src/com/android/pts/util/ReportLog.java
deleted file mode 100644
index 0d69c2f..0000000
--- a/suite/pts/lib/commonutil/src/com/android/pts/util/ReportLog.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.util;
-
-import java.util.LinkedList;
-import java.util.List;
-
-
-/**
- * Utility class to print performance measurement result back to host.
- * For now, throws know exception with message.
- *
- * Format:
- * LOG_SEPARATOR : separates each log
- * Message = log [LOG_SEPARATOR log]*
- * log for single value = classMethodName:line_number|header|d|value
- * log for array = classMethodName:line_number|header|da|values|
- *                     average average_value min|max value stddev value
- */
-public class ReportLog {
-    private static final String LOG_SEPARATOR = "+++";
-    private static final String SUMMARY_SEPARATOR = "++++";
-    private static final String LOG_ELEM_SEPARATOR = "|";
-
-    private List<String> mMessages = new LinkedList<String> ();
-    private String mSummary = null;
-    protected static int mDepth = 3;
-    /**
-     * print given value to the report
-     * @param header string to explain the contents. It can be unit for the value.
-     * @param val
-     */
-    public void printValue(String header, double val) {
-        String message = getClassMethodNames(mDepth, true) + LOG_ELEM_SEPARATOR + header +
-                LOG_ELEM_SEPARATOR + "d" + LOG_ELEM_SEPARATOR + val;
-        mMessages.add(message);
-        printLog(message);
-    }
-
-    /**
-     * array version of printValue
-     * @param header
-     * @param val
-     * @param addMin add minimum to the result. If false, add maximum to the result
-     */
-    public void printArray(String header, double[] val, boolean addMin) {
-        StringBuilder builder = new StringBuilder();
-        builder.append(getClassMethodNames(mDepth, true) + LOG_ELEM_SEPARATOR + header +
-                LOG_ELEM_SEPARATOR + "da" + LOG_ELEM_SEPARATOR);
-        for (double v : val) {
-            builder.append(v);
-            builder.append(" ");
-        }
-        Stat.StatResult stat = Stat.getStat(val);
-        builder.append(LOG_ELEM_SEPARATOR + "average " + stat.mAverage +
-                (addMin ? (" min " + stat.mMin) : (" max " + stat.mMax)) + " stddev " + stat.mStddev);
-        mMessages.add(builder.toString());
-        printLog(builder.toString());
-    }
-
-    public void printSummary(String header, double average, double stddev) {
-        mSummary = header + LOG_ELEM_SEPARATOR + "average " + average + LOG_ELEM_SEPARATOR +
-                "stddev " + stddev;
-    }
-
-    public void throwReportToHost() throws PtsException {
-        if ((mSummary == null) && mMessages.isEmpty()) {
-            return;
-        }
-        StringBuilder builder = new StringBuilder();
-        builder.append(mSummary);
-        builder.append(SUMMARY_SEPARATOR);
-        for (String entry : mMessages) {
-            builder.append(entry);
-            builder.append(LOG_SEPARATOR);
-        }
-        // delete the last separator
-        if (builder.length() >= LOG_SEPARATOR.length()) {
-            builder.delete(builder.length() - LOG_SEPARATOR.length(), builder.length());
-        }
-        mSummary = null;
-        mMessages.clear();
-        throw new PtsException(builder.toString());
-    }
-
-    /**
-     * calculate rate per sec for given change happened during given timeInMSec.
-     * timeInSec with 0 value will be changed to small value to prevent divide by zero.
-     * @param change total change of quality for the given duration timeInMSec.
-     * @param timeInMSec
-     * @return
-     */
-    public static double calcRatePerSec(double change, double timeInMSec) {
-        if (timeInMSec == 0) {
-            return change * 1000.0 / 0.001; // do not allow zero
-        } else {
-            return change * 1000.0 / timeInMSec;
-        }
-    }
-
-    /**
-     * array version of calcRatePerSecArray
-     * @param change
-     * @param timeInMSec
-     * @return
-     */
-    public static double[] calcRatePerSecArray(double change, double[] timeInMSec) {
-        double[] result = new double[timeInMSec.length];
-        change *= 1000.0;
-        for (int i = 0; i < timeInMSec.length; i++) {
-            if (timeInMSec[i] == 0) {
-                result[i] = change / 0.001;
-            } else {
-                result[i] = change / timeInMSec[i];
-            }
-        }
-        return result;
-    }
-
-    /**
-     * copy array from src to dst with given offset in dst.
-     * dst should be big enough to hold src
-     * @param src
-     * @param dst
-     * @param dstOffset
-     */
-    public static void copyArray(double[] src, double[] dst, int dstOffset) {
-        for (int i = 0; i < src.length; i++) {
-            dst[dstOffset + i] = src[i];
-        }
-    }
-
-    /**
-     * get classname.methodname from call stack of the current thread
-     *
-     * @return
-     */
-    public static String getClassMethodNames() {
-        return getClassMethodNames(mDepth, false);
-    }
-
-    private static String getClassMethodNames(int depth, boolean addLineNumber) {
-        StackTraceElement[] elements = Thread.currentThread().getStackTrace();
-        String names = elements[depth].getClassName() + "." + elements[depth].getMethodName() +
-                (addLineNumber ? ":" + elements[depth].getLineNumber() : "");
-        return names;
-    }
-
-    /**
-     * to be overridden by child to print message to be passed
-     * @param msg
-     */
-    protected void printLog(String msg) {
-
-    }
-}
diff --git a/suite/pts/lib/commonutil/src/com/android/pts/util/Stat.java b/suite/pts/lib/commonutil/src/com/android/pts/util/Stat.java
deleted file mode 100644
index aae51ec..0000000
--- a/suite/pts/lib/commonutil/src/com/android/pts/util/Stat.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.pts.util;
-
-/**
- * Utilities for doing statistics
- *
- */
-public class Stat {
-
-    public static class StatResult {
-        public double mAverage;
-        public double mMin;
-        public double mMax;
-        public double mStddev;
-        public StatResult(double average, double min, double max, double stddev) {
-            mAverage = average;
-            mMin = min;
-            mMax = max;
-            mStddev = stddev;
-        }
-    }
-
-    public static StatResult getStat(double[] data) {
-        double average = data[0];
-        double min = data[0];
-        double max = data[0];
-        double eX2 = data[0] * data[0]; // will become E[X^2]
-        for (int i = 1; i < data.length; i++) {
-            average += data[i];
-            eX2 += data[i] * data[i];
-            if (data[i] > max) {
-                max = data[i];
-            }
-            if (data[i] < min) {
-                min = data[i];
-            }
-        }
-        average /= data.length;
-        eX2 /= data.length;
-        // stddev = sqrt(E[X^2] - (E[X])^2)
-        double stddev = Math.sqrt(eX2 - average * average);
-        return new StatResult(average, min, max, stddev);
-    }
-
-    public static double getMin(double[] data) {
-        double min = data[0];
-        for (int i = 1; i < data.length; i++) {
-            if (data[i] < min) {
-                min = data[i];
-            }
-        }
-        return min;
-    }
-
-    public static double getMax(double[] data) {
-        double max = data[0];
-        for (int i = 1; i < data.length; i++) {
-            if (data[i] > max) {
-                max = data[i];
-            }
-        }
-        return max;
-    }
-}
diff --git a/suite/pts/tools/Android.mk b/suite/pts/tools/Android.mk
deleted file mode 100644
index c141484..0000000
--- a/suite/pts/tools/Android.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Copyright (C) 2012 The Android Open Source Project
-#
-# 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.
-#
-
-include $(call all-subdir-makefiles)
diff --git a/suite/pts/tools/tradefed/Android.mk b/suite/pts/tools/tradefed/Android.mk
deleted file mode 100644
index 09e49b1..0000000
--- a/suite/pts/tools/tradefed/Android.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright (C) 2011 The Android Open Source Project
-#
-# 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.
-
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_PREBUILT_EXECUTABLES := pts-tradefed
-include $(BUILD_HOST_PREBUILT)
-
diff --git a/suite/pts/tools/tradefed/pts-tradefed b/suite/pts/tools/tradefed/pts-tradefed
deleted file mode 100755
index 901ad8c..0000000
--- a/suite/pts/tools/tradefed/pts-tradefed
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/bin/bash
-
-# Copyright (C) 2011 The Android Open Source Project
-#
-# 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.
-
-# launcher script for cts-tradefed harness for PTS
-# can be used from an Android build environment, or a standalone pts zip
-
-checkFile() {
-    if [ ! -f "$1" ]; then
-        echo "Unable to locate $1"
-        exit
-    fi;
-}
-
-checkPath() {
-    if ! type -P $1 &> /dev/null; then
-        echo "Unable to find $1 in path."
-        exit
-    fi;
-}
-
-checkPath adb
-checkPath java
-
-# check java version
-JAVA_VERSION=$(java -version 2>&1 | head -n 1 | grep '[ "]1\.6[\. "$$]')
-if [ "${JAVA_VERSION}" == "" ]; then
-    echo "Wrong java version. 1.6 is required."
-    exit
-fi
-
-# check debug flag and set up remote debugging
-if [ -n "${TF_DEBUG}" ]; then
-  if [ -z "${TF_DEBUG_PORT}" ]; then
-    TF_DEBUG_PORT=10088
-  fi
-  RDBG_FLAG=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=${TF_DEBUG_PORT}
-fi
-
-
-# check if in Android build env
-if [ ! -z ${ANDROID_BUILD_TOP} ]; then
-    HOST=`uname`
-    if [ "$HOST" == "Linux" ]; then
-        OS="linux-x86"
-    elif [ "$HOST" == "Darwin" ]; then
-        OS="darwin-x86"
-    else
-        echo "Unrecognized OS"
-        exit
-    fi;
-    PTS_ROOT=${ANDROID_BUILD_TOP}/out/host/${OS}/pts
-    if [ ! -d ${PTS_ROOT} ]; then
-        echo "Could not find $PTS_ROOT in Android build environment. Try 'make pts'"
-        exit
-    fi;
-fi;
-
-if [ -z ${PTS_ROOT} ]; then
-    # assume we're in an extracted pts install
-    PTS_ROOT="$(dirname $0)/../.."
-fi;
-
-JAR_DIR=${PTS_ROOT}/android-pts/tools
-JARS="ddmlib-prebuilt.jar tradefed-prebuilt.jar hosttestlib.jar cts-tradefed.jar ptscommonutilhost.jar ptshostutil.jar"
-
-for JAR in $JARS; do
-    checkFile ${JAR_DIR}/${JAR}
-    JAR_PATH=${JAR_PATH}:${JAR_DIR}/${JAR}
-done
-
-java $RDBG_FLAG \
-  -cp ${JAR_PATH} -DCTS_ROOT=${PTS_ROOT} -DPTS=1 com.android.cts.tradefed.command.CtsConsole "$@"
-
diff --git a/suite/pts/utils/get_csv_report.py b/suite/pts/utils/get_csv_report.py
deleted file mode 100755
index fe3dd74..0000000
--- a/suite/pts/utils/get_csv_report.py
+++ /dev/null
@@ -1,194 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2012 The Android Open Source Project
-#
-# 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.
-#
-import csv
-import os
-import re
-import subprocess
-import sys
-from xml.dom import Node
-from xml.dom import minidom
-
-
-def getChildrenWithTag(parent, tagName):
-    children = []
-    for child in  parent.childNodes:
-        if (child.nodeType == Node.ELEMENT_NODE) and (child.tagName == tagName):
-            #print "parent " + parent.getAttribute("name") + " " + tagName +\
-            #    " " + child.getAttribute("name")
-            children.append(child)
-    return children
-
-class TestCase(object):
-    def __init__(self, name, average, stddev, passFail):
-        self.name = name
-        self.average = average
-        self.stddev = stddev
-        self.passFail = passFail
-
-    def getName(self):
-        return self.name
-
-    def getStddev(self):
-        return self.stddev
-
-    def getAverage(self):
-        return self.average
-
-    def getPassFail(self):
-        return self.passFail
-
-def parseSuite(suite, parentName):
-    if parentName != "":
-        parentName += '.'
-    cases = {}
-    childSuites = getChildrenWithTag(suite, "TestSuite")
-    for child in childSuites:
-        cases.update(parseSuite(child, parentName + child.getAttribute("name")))
-    childTestCases = getChildrenWithTag(suite, "TestCase")
-    for child in childTestCases:
-        className = parentName + child.getAttribute("name")
-        for test in getChildrenWithTag(child, "Test"):
-            methodName = test.getAttribute("name")
-            # do not include this
-            if methodName == "testAndroidTestCaseSetupProperly":
-                continue
-            caseName = className + "#" + methodName
-            passFail = test.getAttribute("result")
-            average = ""
-            stddev = ""
-            failedScene = getChildrenWithTag(test, "FailedScene")
-            if len(failedScene) > 0:
-                message = failedScene[0].getAttribute("message")
-                #print message
-                messages = message.split('|')
-                if len(messages) > 2:
-                    average = messages[1].split()[1]
-                    stddev = messages[2].split()[1]
-            testCase = TestCase(caseName, average, stddev, passFail)
-            cases[caseName] = testCase
-    return cases
-
-
-class Result(object):
-    def __init__(self, reportXml):
-        self.results = {}
-        self.infoKeys = []
-        self.infoValues = []
-        doc = minidom.parse(reportXml)
-        testResult = doc.getElementsByTagName("TestResult")[0]
-        buildInfo = testResult.getElementsByTagName("BuildInfo")[0]
-        buildId = buildInfo.getAttribute("buildID")
-        deviceId = buildInfo.getAttribute("deviceID")
-        deviceName = buildInfo.getAttribute("build_device")
-        boardName = buildInfo.getAttribute("build_board")
-        partitions = buildInfo.getAttribute("partitions")
-        m = re.search(r'.*;/data\s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+);', partitions)
-        dataPartitionSize = m.group(1)
-        self.addKV("device", deviceName)
-        self.addKV("board", boardName)
-        self.addKV("serial", deviceId)
-        self.addKV("build", buildId)
-        self.addKV("data size", dataPartitionSize)
-        packages = getChildrenWithTag(testResult, "TestPackage")
-        for package in packages:
-            casesFromChild = parseSuite(package, "")
-            self.results.update(casesFromChild)
-        #print self.results.keys()
-
-    def addKV(self, key, value):
-        self.infoKeys.append(key)
-        self.infoValues.append(value)
-
-    def getResults(self):
-        return self.results
-
-    def getKeys(self):
-        return self.infoKeys
-
-    def getValues(self):
-        return self.infoValues
-
-def executeWithResult(command):
-    p = subprocess.Popen(command.split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-    out, err = p.communicate()
-    return out
-
-def main(argv):
-    if len(argv) < 3:
-        print "get_csv_report.py pts_report_dir output_file"
-        sys.exit(1)
-    reportPath = os.path.abspath(argv[1])
-    outputCsv = os.path.abspath(argv[2])
-
-    deviceResults = []
-    xmls = executeWithResult("find " + reportPath + " -name testResult.xml -print")
-    print "xml files found :"
-    print xmls
-    for xml in xmls.splitlines():
-        result = Result(xml)
-        deviceResults.append(result)
-    reportInfo = []
-    keys = deviceResults[0].getKeys()
-    noDevices = len(deviceResults)
-    for i in xrange(len(keys)):
-        reportInfo.append([])
-        reportInfo[i].append(keys[i])
-        # for worst/average
-        reportInfo[i].append("")
-        for j in xrange(noDevices):
-            reportInfo[i].append(deviceResults[j].getValues()[i])
-    #print reportInfo
-
-    tests = []
-    for deviceResult in deviceResults:
-        for key in deviceResult.getResults().keys():
-            if not key in tests:
-                tests.append(key)
-    tests.sort()
-    #print tests
-
-    reportTests = []
-    for i in xrange(len(tests)):
-        reportTests.append([])
-        reportTests.append([])
-        reportTests[2 * i].append(tests[i])
-        reportTests[2 * i + 1].append(tests[i])
-        reportTests[2 * i].append("average")
-        reportTests[2 * i + 1].append("stddev")
-        for j in xrange(noDevices):
-            if deviceResults[j].getResults().has_key(tests[i]):
-                result = deviceResults[j].getResults()[tests[i]]
-                if result.getPassFail() == "pass":
-                    reportTests[2 * i].append(result.getAverage())
-                    reportTests[2 * i + 1].append(result.getStddev())
-                else:
-                    reportTests[2 * i].append("fail")
-                    reportTests[2 * i + 1].append("fail")
-            else:
-                reportTests[2 * i].append("")
-                reportTests[2 * i + 1].append("")
-
-    #print reportTests
-
-    with open(outputCsv, 'wb') as f:
-        writer = csv.writer(f)
-        writer.writerows(reportInfo)
-        writer.writerows(reportTests)
-
-
-if __name__ == '__main__':
-    main(sys.argv)
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index 3ca39b2..6851d94 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -28,14 +28,14 @@
         <meta-data android:name="android.app.cts.float" android:value="100.1" />
         <meta-data android:name="android.app.cts.reference" android:resource="@xml/metadata" />
     </permission>
-    
+
     <uses-permission android:name="android.permission.GET_TASKS" />
     <uses-permission android:name="android.permission.SET_WALLPAPER" />
     <uses-permission android:name="android.permission.SET_TIME_ZONE" />
     <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
-    <uses-permission android:name="android.permission.WRITE_CONTACTS" />        
+    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
     <uses-permission android:name="android.permission.WRITE_SOCIAL_STREAM" />
-    <uses-permission android:name="android.permission.READ_CALL_LOG" />    
+    <uses-permission android:name="android.permission.READ_CALL_LOG" />
     <uses-permission android:name="android.permission.READ_CONTACTS" />
     <uses-permission android:name="android.permission.READ_SOCIAL_STREAM" />
     <uses-permission android:name="android.permission.WRITE_CALENDAR" />
@@ -251,6 +251,14 @@
             </intent-filter>
         </activity>
 
+        <activity android:name="android.widget.cts.GridLayoutStubActivity"
+            android:label="GridLayoutStubActivity">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
+            </intent-filter>
+        </activity>
+
         <activity android:name="android.widget.cts.LayoutDirectionStubActivity"
             android:label="LayoutDirectionStubActivity">
             <intent-filter>
@@ -338,6 +346,7 @@
         </activity>
 
         <activity android:name="android.widget.cts.VideoViewStubActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize">
             android:label="VideoViewStubActivity">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -426,6 +435,14 @@
             </intent-filter>
         </activity>
 
+        <activity android:name="android.text.cts.EmojiStubActivity"
+            android:label="AvailableIntentsActivity">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
+            </intent-filter>
+        </activity>
+
         <activity android:name="android.widget.cts.TableStubActivity"
             android:label="TableStubActivity">
             <intent-filter>
@@ -467,7 +484,8 @@
         </activity>
 
         <activity android:name="android.webkit.cts.CookieSyncManagerStubActivity"
-            android:label="CookieSyncManagerStubActivity">
+            android:label="CookieSyncManagerStubActivity"
+            android:screenOrientation="nosensor">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
@@ -558,7 +576,8 @@
 
         <activity android:name="android.hardware.cts.CameraStubActivity"
             android:label="CameraStubActivity"
-            android:screenOrientation="landscape">
+            android:screenOrientation="landscape"
+            android:configChanges="keyboardHidden|orientation|screenSize">
         </activity>
 
         <activity android:name="android.view.inputmethod.cts.InputMethodStubActivity"
@@ -618,7 +637,7 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="android.widget.cts.ZoomButtonStubActivity" 
+        <activity android:name="android.widget.cts.ZoomButtonStubActivity"
             android:label="ZoomButtonStubActivity">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN"/>
@@ -657,7 +676,8 @@
         </activity>
 
         <activity android:name="android.webkit.cts.WebViewStubActivity"
-            android:label="WebViewStubActivity">
+            android:label="WebViewStubActivity"
+            android:screenOrientation="nosensor">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
@@ -804,7 +824,7 @@
         <provider android:name="android.content.cts.MockRemoteContentProvider"
             android:authorities="remotectstest"
             android:process=":remoteprovider" android:multiprocess="false" />
-        
+
         <activity android:name="android.app.cts.ChildTabActivity" android:label="ChildTabActivity" />
 
         <activity android:name="android.app.cts.LauncherActivityStub"
@@ -919,7 +939,7 @@
         </service>
         <service android:name="android.app.cts.IntentServiceStub"/>
 
-        <activity android:name="android.app.cts.LaunchpadActivity" 
+        <activity android:name="android.app.cts.LaunchpadActivity"
                   android:configChanges="keyboardHidden|orientation|screenSize"
                   android:multiprocess="true">
         </activity>
@@ -948,7 +968,8 @@
 
         <activity android:name="android.opengl.cts.OpenGlEsVersionStubActivity"/>
 
-        <activity android:name="android.opengl.cts.EglConfigStubActivity"/>
+        <activity android:name="android.opengl.cts.EglConfigStubActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize|uiMode" />
 
         <activity android:name="android.opengl.cts.CompressedTextureStubActivity"
             android:label="CompressedTextureStubActivity"
@@ -960,10 +981,10 @@
         </activity>
 
         <activity android:name="android.preference.cts.PreferenceStubActivity">
-            <meta-data android:name="android.preference" 
+            <meta-data android:name="android.preference"
                     android:resource="@xml/preferences_from_intent" />
         </activity>
-                
+
         <activity android:name="android.content.cts.ClipboardManagerListenerActivity"/>
 
         <activity android:name="android.app.cts.ActivityManagerMemoryClassLaunchActivity" />
@@ -978,7 +999,7 @@
             </intent-filter>
         </service>
 
-        <activity android:name="android.renderscript.cts.RenderscriptGLStubActivity"
+        <activity android:name="android.renderscriptgraphics.cts.RenderscriptGLStubActivity"
                   android:label="RenderscriptGLStub"/>
 
         <service android:name="android.security.cts.activity.SecureRandomService"
diff --git a/tests/SignatureTest/Android.mk b/tests/SignatureTest/Android.mk
index cc0d53c..0b51f25 100644
--- a/tests/SignatureTest/Android.mk
+++ b/tests/SignatureTest/Android.mk
@@ -33,7 +33,11 @@
 # To be passed in on command line
 CTS_API_VERSION ?= current
 
+ifeq (current,$(CTS_API_VERSION))
+android_api_description := frameworks/base/api/$(CTS_API_VERSION).txt
+else
 android_api_description := $(SRC_API_DIR)/$(CTS_API_VERSION).txt
+endif
 
 # Can't call local-intermediates-dir directly here because we have to
 # include BUILD_PACAKGE first.  Can't include BUILD_PACKAGE first
@@ -41,75 +45,50 @@
 # hack.
 intermediates.COMMON := $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME),,COMMON)
 signature_res_dir := $(intermediates.COMMON)/genres
-LOCAL_RESOURCE_DIR := $(signature_res_dir)
-
-# These shell commands allow us to get around the package.mk check for
-# empty/non-existent resouce dirs (which ours would be).  If it finds
-# an empty/non-existent resource dir, R_file_stamp doesn't contain a
-# target and our stuff never gets copied.
-# TODO: fix package.mk so we can avoid this hack
-fake_resource_check := $(signature_res_dir)/raw/fake_resource_check
-
-$(shell \
- if [ ! -f $(fake_resource_check) ]; then \
-   mkdir -p $(dir $(fake_resource_check)); \
-   touch $(fake_resource_check); \
- fi \
- )
+LOCAL_RESOURCE_DIR := $(signature_res_dir) $(LOCAL_PATH)/res
 
 include $(BUILD_PACKAGE)
 
-copied_res_stamp := $(intermediates.COMMON)/copyres.stamp
 generated_res_stamp := $(intermediates.COMMON)/genres.stamp
-api_ver_path := $(intermediates.COMMON)
-api_ver_file := $(api_ver_path)/api_ver_is_$(CTS_API_VERSION)
+api_ver_file := $(intermediates.COMMON)/api_ver_is_$(CTS_API_VERSION)
 
 # The api_ver_file keeps track of which api version was last built.
 # By only ever having one of these magic files in existance and making
 # sure the generated resources rule depend on it, we can ensure that
 # the proper version of the api resource gets generated.
 $(api_ver_file):
-	$(hide) rm -f $(api_ver_path)/api_ver_is_*
-	$(hide) touch $@
+	$(hide) rm -f $(dir $@)/api_ver_is_* \
+		&& mkdir -p $(dir $@) && touch $@
 
 android_api_xml_description := $(intermediates.COMMON)/api.xml
-$(android_api_xml_description): PRIVATE_INPUT_FILE := $(android_api_description)
-$(android_api_xml_description): $(android_api_description) $(APICHECK)
-	$(hide) echo "Convert api file to xml: $@"
-	$(hide) $(APICHECK_COMMAND) -convert2xml $(PRIVATE_INPUT_FILE) $@
-
-static_res_deps := $(call find-subdir-assets,$(LOCAL_PATH)/res)
-$(copied_res_stamp): PRIVATE_PATH := $(LOCAL_PATH)
-$(copied_res_stamp): PRIVATE_MODULE := $(LOCAL_MODULE)
-$(copied_res_stamp): PRIVATE_RES_DIR := $(signature_res_dir)
-$(copied_res_stamp): FAKE_RESOURCE_DIR := $(dir $(fake_resource_check))
-$(copied_res_stamp): FAKE_RESOURCE_CHECK := $(fake_resource_check)
-$(copied_res_stamp): $(foreach res,$(static_res_deps),$(LOCAL_PATH)/res/${res}) | $(ACP)
-	$(hide) echo "Copy resources: $(PRIVATE_MODULE)"
-	$(hide) rm -f $@
-	$(hide) rm -rf $(PRIVATE_RES_DIR)
-	$(hide) mkdir -p $(PRIVATE_RES_DIR)
-	$(hide) if [ ! -f $(FAKE_RESOURCE_CHECK) ]; \
-	  then mkdir -p $(FAKE_RESOURCE_DIR); \
-	  touch $(FAKE_RESOURCE_CHECK); \
-	fi
-	$(hide) $(ACP) -rd $(PRIVATE_PATH)/res/* $(PRIVATE_RES_DIR)/
-	$(hide) touch $@
+$(android_api_xml_description): $(android_api_description) | $(APICHECK)
+	@ echo "Convert api file to xml: $@"
+	@ mkdir -p $(dir $@)
+	$(hide) $(APICHECK_COMMAND) -convert2xml $< $@
 
 # Split up config/api/1.xml by "package" and save the files as the
 # resource files of SignatureTest.
 $(generated_res_stamp): PRIVATE_PATH := $(LOCAL_PATH)
 $(generated_res_stamp): PRIVATE_MODULE := $(LOCAL_MODULE)
 $(generated_res_stamp): PRIVATE_RES_DIR := $(signature_res_dir)
+$(generated_res_stamp): PRIVATE_API_XML_DESC := $(android_api_xml_description)
 $(generated_res_stamp): $(api_ver_file)
-$(generated_res_stamp): $(copied_res_stamp) $(android_api_xml_description)
-	$(hide) echo "Copy generated resources: $(PRIVATE_MODULE)"
-	$(hide) rm -f $@
+$(generated_res_stamp): $(android_api_xml_description)
+	@ echo "Copy generated resources: $(PRIVATE_MODULE)"
 	$(hide) python cts/tools/utils/android_api_description_splitter.py \
-		$(android_api_xml_description) $(PRIVATE_RES_DIR) package
+		$(PRIVATE_API_XML_DESC) $(PRIVATE_RES_DIR) package
 	$(hide) touch $@
 
-$(R_file_stamp): $(generated_res_stamp) $(copied_res_stamp)
+$(R_file_stamp): $(generated_res_stamp)
+
+# clean up temp vars
+android_api_xml_description :=
+api_ver_file :=
+generated_res_stamp :=
+signature_res_dir :=
+android_api_description :=
+CTS_API_VERSION :=
+
 
 # Use the folloing include to make our test apk.
 include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/tests/accessibility/AndroidManifest.xml b/tests/accessibility/AndroidManifest.xml
index dde1de8..0d18cef 100644
--- a/tests/accessibility/AndroidManifest.xml
+++ b/tests/accessibility/AndroidManifest.xml
@@ -19,6 +19,8 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           package="android.view.accessibility.services">
 
+  <uses-permission android:name="android.permission.CAN_REQUEST_TOUCH_EXPLORATION_MODE"/>
+
   <application>
 
     <service android:name=".SpeakingAccessibilityService"
diff --git a/tests/accessibility/res/values/strings.xml b/tests/accessibility/res/values/strings.xml
index fdeac0c..47ba12c 100644
--- a/tests/accessibility/res/values/strings.xml
+++ b/tests/accessibility/res/values/strings.xml
@@ -23,4 +23,7 @@
     <!-- String title for the vibrating accessibility service -->
     <string name="title_vibrating_accessibility_service">Vibrating Accessibility Service</string>
 
+    <!-- Description of the speaking accessibility service -->
+    <string name="some_description">Some description</string>
+
 </resources>
diff --git a/tests/accessibility/res/xml/speaking_accessibilityservice.xml b/tests/accessibility/res/xml/speaking_accessibilityservice.xml
index 630940b..c60fb54 100644
--- a/tests/accessibility/res/xml/speaking_accessibilityservice.xml
+++ b/tests/accessibility/res/xml/speaking_accessibilityservice.xml
@@ -16,5 +16,10 @@
 <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
     android:accessibilityEventTypes="typeAllMask"
     android:accessibilityFeedbackType="feedbackSpoken"
-    android:accessibilityFlags="flagDefault"
-    android:canRetrieveWindowContent="true" />
+    android:accessibilityFlags="flagDefault|flagIncludeNotImportantViews|flagRequestTouchExplorationMode|flagRequestEnhancedWebAccessibility|flagReportViewIds|flagRequestFilterKeyEvents"
+    android:canRetrieveWindowContent="true"
+    android:canRequestTouchExplorationMode="true"
+    android:canRequestFilterKeyEvents="true"
+    android:canRequestEnhancedWebAccessibility="true"
+    android:settingsActivity="foo.bar.Activity"
+    android:description="@string/some_description" />
diff --git a/tests/accessibility/res/xml/vibrating_accessibilityservice.xml b/tests/accessibility/res/xml/vibrating_accessibilityservice.xml
index 4ccec76..2219ee7 100644
--- a/tests/accessibility/res/xml/vibrating_accessibilityservice.xml
+++ b/tests/accessibility/res/xml/vibrating_accessibilityservice.xml
@@ -14,7 +14,8 @@
      limitations under the License.
 -->
 <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
-    android:accessibilityEventTypes="typeAllMask"
+    android:accessibilityEventTypes="typeAllMask|"
     android:accessibilityFeedbackType="feedbackHaptic"
-    android:accessibilityFlags="flagDefault"
-    android:canRetrieveWindowContent="true" />
+    android:accessibilityFlags="flagDefault|flagRequestTouchExplorationMode"
+    android:canRetrieveWindowContent="true"
+    android:canRequestTouchExplorationMode="true" />
diff --git a/tests/accessibilityservice/AndroidManifest.xml b/tests/accessibilityservice/AndroidManifest.xml
deleted file mode 100644
index 805f697..0000000
--- a/tests/accessibilityservice/AndroidManifest.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
- * Copyright (C) 2010 The Android Open Source Project
- *
- * 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.
- -->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          package="android.accessibilityservice.delegate">
-
-  <application>
-
-    <uses-library android:name="android.test.runner"/>
-
-    <service android:name=".DelegatingAccessibilityService"
-             android:label="@string/title_delegating_accessibility_service"
-             android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
-      <intent-filter>
-        <action android:name="android.accessibilityservice.AccessibilityService"/>
-      </intent-filter>
-      <meta-data android:name="android.accessibilityservice"
-                android:resource="@xml/accessibilityservice" />
-    </service>
-
-    <service android:name=".DelegatingAccessibilityService$DelegatingConnectionService"
-             android:exported="true"/>
-
-  </application>
-
-</manifest>
diff --git a/tests/accessibilityservice/res/values/strings.xml b/tests/accessibilityservice/res/values/strings.xml
deleted file mode 100644
index 3730f85..0000000
--- a/tests/accessibilityservice/res/values/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     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.
--->
-
-<resources>
-
-    <!-- String title of the mock accessibility service -->
-    <string name="title_delegating_accessibility_service">Delegating Accessibility Service</string>
-
-</resources>
diff --git a/tests/accessibilityservice/res/xml/accessibilityservice.xml b/tests/accessibilityservice/res/xml/accessibilityservice.xml
deleted file mode 100644
index 395d022..0000000
--- a/tests/accessibilityservice/res/xml/accessibilityservice.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     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.
--->
-<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
-    android:accessibilityEventTypes="typeAllMask"
-    android:accessibilityFeedbackType="feedbackGeneric"
-    android:accessibilityFlags="flagDefault"
-    android:canRetrieveWindowContent="true"
-    android:notificationTimeout="50"
-    android:settingsActivity="android.accessibilityservice.delegate.SomeActivity"
-    android:description="@string/title_delegating_accessibility_service" />
diff --git a/tests/accessibilityservice/src/android/accessibilityservice/IAccessibilityServiceDelegate.aidl b/tests/accessibilityservice/src/android/accessibilityservice/IAccessibilityServiceDelegate.aidl
deleted file mode 100644
index 868bd72..0000000
--- a/tests/accessibilityservice/src/android/accessibilityservice/IAccessibilityServiceDelegate.aidl
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * 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.
- */
-package android.accessibilityservice;
-
-import android.view.accessibility.AccessibilityEvent;
-
-/**
- * Interface for interacting with the accessibility service mock.
- */
-oneway interface IAccessibilityServiceDelegate {
-
-    /**
-     * Delegate an {@link android.view.accessibility.AccessibilityEvent}.
-     */
-    void onAccessibilityEvent(in AccessibilityEvent event);
-
-    /**
-     * Delegate an interrupt request.
-     */
-    void onInterrupt();
-}
diff --git a/tests/accessibilityservice/src/android/accessibilityservice/IAccessibilityServiceDelegateConnection.aidl b/tests/accessibilityservice/src/android/accessibilityservice/IAccessibilityServiceDelegateConnection.aidl
deleted file mode 100644
index 253a082..0000000
--- a/tests/accessibilityservice/src/android/accessibilityservice/IAccessibilityServiceDelegateConnection.aidl
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * 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.
- */
-package android.accessibilityservice;
-
-import android.os.Bundle;
-import android.os.IBinder;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityNodeInfo;
-
-import java.util.List;
-
-/**
- * Interface for registering an accessibility service delegate
- * and asking it to perform some querying of the window for us.
- */
-interface IAccessibilityServiceDelegateConnection {
-
-    void setAccessibilityServiceDelegate(in IBinder binder);
-
-    List<AccessibilityNodeInfo> findAccessibilityNodeInfosByText(in AccessibilityNodeInfo root,
-        String text);
-
-    AccessibilityNodeInfo getParent(in AccessibilityNodeInfo child);
-
-    AccessibilityNodeInfo getChild(in AccessibilityNodeInfo parent, int index);
-
-    AccessibilityNodeInfo findFocus(in AccessibilityNodeInfo root, int focusType);
-
-    AccessibilityNodeInfo focusSearch(in AccessibilityNodeInfo current, int direction);
-
-    boolean performAccessibilityAction(in AccessibilityNodeInfo target, int action,
-           in Bundle arguments);
-
-    AccessibilityNodeInfo getSource(in AccessibilityEvent event);
-
-    void setFetchViewsNotExposedForAccessibility(boolean fetch);
-
-    boolean performGlobalAction(int action);
-
-    AccessibilityNodeInfo getRootInActiveWindow();
-}
diff --git a/tests/accessibilityservice/src/android/accessibilityservice/delegate/DelegatingAccessibilityService.java b/tests/accessibilityservice/src/android/accessibilityservice/delegate/DelegatingAccessibilityService.java
deleted file mode 100644
index 4e9aed1..0000000
--- a/tests/accessibilityservice/src/android/accessibilityservice/delegate/DelegatingAccessibilityService.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * 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.
- */
-
-package android.accessibilityservice.delegate;
-
-import android.accessibilityservice.AccessibilityService;
-import android.accessibilityservice.AccessibilityServiceInfo;
-import android.accessibilityservice.IAccessibilityServiceDelegate;
-import android.accessibilityservice.IAccessibilityServiceDelegateConnection;
-import android.app.Service;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.util.Log;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityNodeInfo;
-
-import java.util.List;
-
-/**
- * This class is an accessibility service mock to which the system is bound and
- * exposes a mock interface to the CTS accessibility tests.
- * </p>
- * Note: The end-to-end test is composed of two APKs, one with a mock accessibility
- * service, another with the instrumented activity and test cases. The
- * motivation for two APKs design is that CTS tests cannot access the secure
- * settings which is required for enabling accessibility and accessibility
- * services. Therefore, manual installation of this package is required. Once
- * the package has been installed accessibility must be enabled (Settings ->
- * Accessibility), the mock service must be enabled (Settings -> Accessibility
- * -> Mock Accessibility Service), and then the CTS tests in this package
- * <strong>CtsAccessibilityServiceTestCases.apk</strong> located in
- * <strong>cts/tests/tests/accessibility</strong> can be successfully run.
- * Further, the mock and tests run in separate processes since the
- * instrumentation restarts the process in which it is running and this breaks
- * the binding between the mock accessibility service and the system.
- */
-public class DelegatingAccessibilityService extends AccessibilityService {
-
-    /**
-     * Tag used for logging.
-     */
-    private static final String LOG_TAG = "AccessibilityServiceDelegate";
-
-    /**
-     * Handle to the instance used by the accessibility service connection.
-     */
-    static DelegatingAccessibilityService sServiceDelegate;
-
-    /**
-     * Interface for delegating events and interrupt requests.
-     */
-    private IAccessibilityServiceDelegate mDelegateInterface;
-
-    @Override
-    protected void onServiceConnected() {
-        // the service is ready to be used only
-        // after the system has bound to it
-        sServiceDelegate = this;
-    }
-
-    @Override
-    public void onAccessibilityEvent(AccessibilityEvent event) {
-        if (mDelegateInterface == null) {
-            return;
-        }
-
-        try {
-            mDelegateInterface.onAccessibilityEvent(event);
-        } catch (RemoteException re) {
-            Log.i(LOG_TAG, "Dead: " + mDelegateInterface.toString() + " cleaning up.");
-            mDelegateInterface = null;
-        }
-    }
-
-    @Override
-    public void onInterrupt() {
-        if (mDelegateInterface == null) {
-            return;
-        }
-
-        try {
-            mDelegateInterface.onInterrupt();
-        } catch (RemoteException re) {
-            Log.i(LOG_TAG, "Dead: " + mDelegateInterface.toString() + " cleaning up.");
-            mDelegateInterface = null;
-        }
-    }
-
-    /**
-     * Sets the interface to which to delegate.
-     *
-     * @param delegateInterface The delegate interface.
-     */
-    private void setDelegateInterface(IAccessibilityServiceDelegate delegateInterface) {
-        mDelegateInterface = delegateInterface;
-    }
-
-    /**
-     * This is a service to which the end-to-end CTS test connects to pass a
-     * delegate interface to which the {@link DelegatingAccessibilityService}
-     * to delegate.
-     */
-    public static class DelegatingConnectionService extends Service {
-
-        @Override
-        public IBinder onBind(Intent intent) {
-            if (sServiceDelegate == null) {
-                return null;
-            }
-            return new AccessibilityServiceDelegateConnection();
-        }
-
-        /**
-         * This class is the connection wrapper passed to the end-to-end CTS
-         * test, so the latter can pass a delegating interface.
-         */
-        private class AccessibilityServiceDelegateConnection extends
-                IAccessibilityServiceDelegateConnection.Stub {
-
-            @Override
-            public void setAccessibilityServiceDelegate(IBinder binder) {
-                sServiceDelegate.setDelegateInterface(IAccessibilityServiceDelegate.Stub
-                        .asInterface(binder));
-            }
-
-            @Override
-            public List<AccessibilityNodeInfo> findAccessibilityNodeInfosByText(
-                    AccessibilityNodeInfo root, String text) {
-                return root.findAccessibilityNodeInfosByText(text);
-            }
-
-            @Override
-            public AccessibilityNodeInfo getChild(AccessibilityNodeInfo parent, int index) {
-                return parent.getChild(index);
-            }
-
-            @Override
-            public AccessibilityNodeInfo getParent(AccessibilityNodeInfo child) {
-                return child.getParent();
-            }
-
-            @Override
-            public AccessibilityNodeInfo findFocus(AccessibilityNodeInfo root, int focusType) {
-                return root.findFocus(focusType);
-            }
-
-            @Override
-            public AccessibilityNodeInfo focusSearch(AccessibilityNodeInfo current, int direction) {
-                return current.focusSearch(direction);
-            }
-
-            @Override
-            public AccessibilityNodeInfo getSource(AccessibilityEvent event) {
-                return event.getSource();
-            }
-
-            @Override
-            public boolean performAccessibilityAction(AccessibilityNodeInfo target, int action,
-                    Bundle arguments) {
-                return target.performAction(action, arguments);
-            }
-
-            @Override
-            public void setFetchViewsNotExposedForAccessibility(boolean fetch) {
-                AccessibilityServiceInfo info = sServiceDelegate.getServiceInfo();
-                if (fetch) {
-                    info.flags |= AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
-                } else {
-                    info.flags &= ~AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
-                }
-                sServiceDelegate.setServiceInfo(info);
-            }
-
-            @Override
-            public boolean performGlobalAction(int action) {
-                return sServiceDelegate.performGlobalAction(action);
-            }
-
-            @Override
-            public AccessibilityNodeInfo getRootInActiveWindow() {
-                return sServiceDelegate.getRootInActiveWindow();
-            }
-        }
-    }
-}
diff --git a/tests/assets/webkit/jswindow.html b/tests/assets/webkit/jswindow.html
index 534a683..7075d6e 100644
--- a/tests/assets/webkit/jswindow.html
+++ b/tests/assets/webkit/jswindow.html
@@ -23,7 +23,6 @@
             childWindow = window.open();
             childWindow.document.title = "javascript child window";
             childWindow.document.write("javascript child window");
-            childWindow.focus();
             setTimeout(function(){childWindow.close();}, 2000);
         }
     </script>
diff --git a/tests/assets/webkit/network_state.html b/tests/assets/webkit/network_state.html
index 20358f4..4712b83 100644
--- a/tests/assets/webkit/network_state.html
+++ b/tests/assets/webkit/network_state.html
@@ -26,6 +26,6 @@
             }
         </script>
     </head>
-    <body onload="getNetworkState()">
+    <body onload="getNetworkState()" ononline="getNetworkState()" onoffline="getNetworkState()">
     </body>
 </html>
diff --git a/tests/assets/webkit/test_databaseaccess.html b/tests/assets/webkit/test_databaseaccess.html
new file mode 100644
index 0000000..dcf7b098
--- /dev/null
+++ b/tests/assets/webkit/test_databaseaccess.html
@@ -0,0 +1,27 @@
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+     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.
+-->
+
+<html>
+    <head><title>None</title><script>
+        function checkDatabase() {
+            if ('openDatabase' in window) {
+                var db = window.openDatabase('test', '1.0', 'results', 1*1024*1024);
+            }
+            document.title = db ? "Has database" : "No database";
+        }
+    </script></head>
+    <body onload='checkDatabase()'>
+    </body>
+</html>
diff --git a/tests/assets/webkit/test_firstPage.html b/tests/assets/webkit/test_firstPage.html
index 4a2f9b0..18a5548 100644
--- a/tests/assets/webkit/test_firstPage.html
+++ b/tests/assets/webkit/test_firstPage.html
@@ -17,6 +17,6 @@
     <title>First page</title>
     <body>
         <h1>First page</h1>
-        <a herf="webView_goBackAndForward_test_secondPage.html">Go to second page</a>
+        <a href="webView_goBackAndForward_test_secondPage.html">Go to second page</a>
     </body>
 </html>
diff --git a/tests/assets/webkit/test_secondPage.html b/tests/assets/webkit/test_secondPage.html
index 952d43f..ea8e2a1 100644
--- a/tests/assets/webkit/test_secondPage.html
+++ b/tests/assets/webkit/test_secondPage.html
@@ -17,6 +17,6 @@
     <title>Second page</title>
     <body>
         <h1>Second page</h1>
-        <a herf="webView_goBackAndForward_test_thirdPage.html">Go to third page</a>
+        <a href="webView_goBackAndForward_test_thirdPage.html">Go to third page</a>
     </body>
 </html>
diff --git a/tests/tests/openglperf/res/values/strings.xml b/tests/assets/webkit/test_stop_loading.html
similarity index 70%
copy from tests/tests/openglperf/res/values/strings.xml
copy to tests/assets/webkit/test_stop_loading.html
index 2cdba7f..1f0fc72 100644
--- a/tests/tests/openglperf/res/values/strings.xml
+++ b/tests/assets/webkit/test_stop_loading.html
@@ -1,5 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
+<!-- Copyright (C) 2013 The Android Open Source Project
 
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
@@ -13,6 +12,12 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources>
-    <string name="app_name">OpenGlPerfTest</string>
-</resources>
\ No newline at end of file
+
+<html>
+    <head>
+        <title>Stop Loading test</title>
+    </head>
+    <body onload="window.javabridge.pageLoaded()">
+        <h3>hello world!</h3><br>
+    </body>
+</html>
diff --git a/tests/core/ctscore.mk b/tests/core/ctscore.mk
index 27ff881..1e4e017 100644
--- a/tests/core/ctscore.mk
+++ b/tests/core/ctscore.mk
@@ -22,4 +22,7 @@
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
 # Don't delete META-INF from the core-tests jar
 LOCAL_DONT_DELETE_JAR_META_INF := true
+
+LOCAL_JNI_SHARED_LIBRARIES := libjavacoretests
+
 include $(BUILD_PACKAGE)
diff --git a/tests/jni/Android.mk b/tests/jni/Android.mk
index 39aafa1..0f7511e 100644
--- a/tests/jni/Android.mk
+++ b/tests/jni/Android.mk
@@ -23,6 +23,7 @@
 
 LOCAL_SRC_FILES := \
 		CtsJniOnLoad.cpp \
+		android_os_cts_OSFeatures.cpp \
 		android_os_cts_FileUtils.cpp \
 		android_net_cts_NetlinkSocket.cpp
 
diff --git a/tests/jni/CtsJniOnLoad.cpp b/tests/jni/CtsJniOnLoad.cpp
index d029b2d..99ea37e 100644
--- a/tests/jni/CtsJniOnLoad.cpp
+++ b/tests/jni/CtsJniOnLoad.cpp
@@ -20,6 +20,8 @@
 
 extern int register_android_os_cts_CpuFeatures(JNIEnv*);
 
+extern int register_android_os_cts_OSFeatures(JNIEnv*);
+
 extern int register_android_os_cts_FileUtils(JNIEnv*);
 
 jint JNI_OnLoad(JavaVM *vm, void *reserved) {
@@ -33,6 +35,10 @@
         return JNI_ERR;
     }
 
+    if (register_android_os_cts_OSFeatures(env)) {
+        return JNI_ERR;
+    }
+
     if (register_android_os_cts_FileUtils(env)) {
       return JNI_ERR;
     }
diff --git a/tests/jni/android_os_cts_CpuFeatures.cpp b/tests/jni/android_os_cts_CpuFeatures.cpp
index 95a0d2f..053b44e 100644
--- a/tests/jni/android_os_cts_CpuFeatures.cpp
+++ b/tests/jni/android_os_cts_CpuFeatures.cpp
@@ -30,11 +30,27 @@
     return (cpuFeatures & ANDROID_CPU_ARM_FEATURE_ARMv7) == ANDROID_CPU_ARM_FEATURE_ARMv7;
 }
 
+jboolean android_os_cts_CpuFeatures_isMipsCpu(JNIEnv* env, jobject thiz)
+{
+    AndroidCpuFamily cpuFamily = android_getCpuFamily();
+    return cpuFamily == ANDROID_CPU_FAMILY_MIPS;
+}
+
+jboolean android_os_cts_CpuFeatures_isX86Cpu(JNIEnv* env, jobject thiz)
+{
+    AndroidCpuFamily cpuFamily = android_getCpuFamily();
+    return cpuFamily == ANDROID_CPU_FAMILY_X86;
+}
+
 static JNINativeMethod gMethods[] = {
     {  "isArmCpu", "()Z",
             (void *) android_os_cts_CpuFeatures_isArmCpu  },
     {  "isArm7Compatible", "()Z",
             (void *) android_os_cts_CpuFeatures_isArm7Compatible  },
+    {  "isMipsCpu", "()Z",
+            (void *) android_os_cts_CpuFeatures_isMipsCpu  },
+    {  "isX86Cpu", "()Z",
+            (void *) android_os_cts_CpuFeatures_isX86Cpu  },
 };
 
 int register_android_os_cts_CpuFeatures(JNIEnv* env)
diff --git a/tests/jni/android_os_cts_OSFeatures.cpp b/tests/jni/android_os_cts_OSFeatures.cpp
new file mode 100644
index 0000000..4ee8454
--- /dev/null
+++ b/tests/jni/android_os_cts_OSFeatures.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ *
+ */
+#include <jni.h>
+#include <sys/prctl.h>
+
+jint android_os_cts_OSFeatures_getNoNewPrivs(JNIEnv* env, jobject thiz)
+{
+    return prctl(PR_GET_NO_NEW_PRIVS, 0, 0, 0, 0);
+}
+
+jint android_os_cts_OSFeatures_prctlCapBsetRead(JNIEnv* env, jobject thiz, jint i)
+{
+    return prctl(PR_CAPBSET_READ, i, 0, 0, 0);
+}
+
+static JNINativeMethod gMethods[] = {
+    {  "getNoNewPrivs", "()I",
+            (void *) android_os_cts_OSFeatures_getNoNewPrivs  },
+    {  "prctlCapBsetRead", "(I)I",
+            (void *) android_os_cts_OSFeatures_prctlCapBsetRead },
+};
+
+int register_android_os_cts_OSFeatures(JNIEnv* env)
+{
+    jclass clazz = env->FindClass("android/os/cts/OSFeatures");
+
+    return env->RegisterNatives(clazz, gMethods,
+            sizeof(gMethods) / sizeof(JNINativeMethod));
+}
diff --git a/tests/plans/CTS-flaky.xml b/tests/plans/CTS-flaky.xml
new file mode 100644
index 0000000..1c2c30d
--- /dev/null
+++ b/tests/plans/CTS-flaky.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<TestPlan version="1.0">
+  <Entry uri="android.app" exclude="android.app.backup.cts.BackupAgentHelperTest#testAndroidtestCaseSetupProperly;android.app.backup.cts.BackupAgentHelperTest#testBackupAGentHelper;android.app.backup.cts.BackupAgentTest#testAndroidTestCaseSetupProperly;android.app.backup.cts.BackupAgentTest#testBackupAgent;android.app.backup.cts.BackupManagerTest#testAndroidTestCaseSetupProperly;android.app.backup.cts.BackupManagerTest#testBackupManager;android.app.backup"/>
+  <Entry uri="android.hardware"/>
+  <Entry uri="android.media"/>
+  <Entry uri="android.net"/>
+  <Entry uri="android.provider"/>
+</TestPlan>
diff --git a/tests/plans/CTS-stable.xml b/tests/plans/CTS-stable.xml
new file mode 100644
index 0000000..984d709
--- /dev/null
+++ b/tests/plans/CTS-stable.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<TestPlan version="1.0">
+  <Entry uri="android.aadb"/>
+  <Entry uri="android.acceleration"/>
+  <Entry uri="android.accessibility"/>
+  <Entry uri="android.accessibilityservice"/>
+  <Entry uri="android.accounts"/>
+  <Entry uri="android.admin"/>
+  <Entry uri="android.animation"/>
+  <Entry uri="android.app" exclude="android.app.cts.AlertDialogTest#testAlertDialogCancelable;android.app.cts.AlertDialogTest#testCallback"/>
+  <Entry uri="android.bluetooth"/>
+  <Entry uri="android.calendarcommon"/>
+  <Entry uri="android.content"/>
+  <Entry uri="android.core.tests.libcore.package.com"/>
+  <Entry uri="android.core.tests.libcore.package.dalvik"/>
+  <Entry uri="android.core.tests.libcore.package.libcore"/>
+  <Entry uri="android.core.tests.libcore.package.org"/>
+  <Entry uri="android.core.tests.libcore.package.sun"/>
+  <Entry uri="android.core.tests.libcore.package.tests"/>
+  <Entry uri="android.core.vm-tests-tf"/>
+  <Entry uri="android.database"/>
+  <Entry uri="android.display"/>
+  <Entry uri="android.dpi"/>
+  <Entry uri="android.dpi2"/>
+  <Entry uri="android.dreams"/>
+  <Entry uri="android.drm"/>
+  <Entry uri="android.effect"/>
+  <Entry uri="android.example"/>
+  <Entry uri="android.gesture"/>
+  <Entry uri="android.graphics"/>
+  <Entry uri="android.graphics2"/>
+  <Entry uri="android.hardware" exclude="android.hardware.cts.CameraTest#testCancelAutofocus"/>
+  <Entry uri="android.holo"/>
+  <Entry uri="android.jni"/>
+  <Entry uri="android.keystore"/>
+  <Entry uri="android.location"/>
+  <Entry uri="android.media" exclude="android.media.cts.DecodeEditEncodeTest#testVideoEditQCIF"/>
+  <Entry uri="android.mediastress"/>
+  <Entry uri="android.nativemedia.sl"/>
+  <Entry uri="android.nativemedia.xa"/>
+  <Entry uri="android.nativeopengl"/>
+  <Entry uri="android.ndef"/>
+  <Entry uri="android.net" exclude="android.net.cts.SSLCertificateSocketFactoryTest#testCreateSocket;android.net.cts.trafficStatsTest#testTrafficStatsForLocalhost;android.net.wifi.cts.ScanResultTest#testScanResultTimeStamp"/>
+  <Entry uri="android.opengl"/>
+  <Entry uri="android.openglperf"/>
+  <Entry uri="android.os"/>
+  <Entry uri="android.permission"/>
+  <Entry uri="android.permission2"/>
+  <Entry uri="android.preference"/>
+  <Entry uri="android.preference2"/>
+  <Entry uri="android.provider" exclude="android.provider.cts.MediaStore_Images_MediaTest#testInsertImageWithBitmap;android.provider.cts.MediaStore_Images_MediaTes#testInsertImageWithImagePath;android.provider.cts.MediaStore_Images_ThumbnailsTest#testQueryExternalMiniThumbnails"/>
+  <Entry uri="android.renderscript"/>
+  <Entry uri="android.sax"/>
+  <Entry uri="android.security"/>
+  <Entry uri="android.speech"/>
+  <Entry uri="android.telephony"/>
+  <Entry uri="android.tests.appsecurity"/>
+  <Entry uri="android.tests.sigtest"/>
+  <Entry uri="android.text"/>
+  <Entry uri="android.textureview"/>
+  <Entry uri="android.theme"/>
+  <Entry uri="android.uiautomator"/>
+  <Entry uri="android.util"/>
+  <Entry uri="android.view"/>
+  <Entry uri="android.webkit"/>
+  <Entry uri="android.widget"/>
+  <Entry uri="zzz.android.monkey"/>
+</TestPlan>
diff --git a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DeviceReportLog.java b/tests/res/layout/gridlayout_layout.xml
similarity index 60%
copy from suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DeviceReportLog.java
copy to tests/res/layout/gridlayout_layout.xml
index 9747ca5..54b3b2c 100644
--- a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DeviceReportLog.java
+++ b/tests/res/layout/gridlayout_layout.xml
@@ -1,5 +1,6 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (C) 2012 The Android Open Source Project.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -12,21 +13,11 @@
  * 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.
- */
-
-package com.android.pts.util;
-
-import android.util.Log;
-
-public class DeviceReportLog extends ReportLog {
-    private static final String TAG = "PtsReport";
-
-    DeviceReportLog() {
-        mDepth = 4;
-    }
-
-    @Override
-    protected void printLog(String msg) {
-        Log.i(TAG, msg);
-    }
-}
+ -->
+<GridLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    >
+</GridLayout>
diff --git a/tests/res/layout/textview_layout.xml b/tests/res/layout/textview_layout.xml
index 5aea538..108e3f0 100644
--- a/tests/res/layout/textview_layout.xml
+++ b/tests/res/layout/textview_layout.xml
@@ -92,6 +92,10 @@
 
     </ScrollView>
 
+    <TextView android:id="@+id/textview_ltr"
+              android:layout_height="wrap_content"
+              android:layout_width="wrap_content"/>
+
     <TextView android:id="@+id/textview_rtl"
               android:layout_height="wrap_content"
               android:layout_width="wrap_content"/>
diff --git a/tests/res/layout/viewtreeobserver_layout.xml b/tests/res/layout/viewtreeobserver_layout.xml
index 461a4bc..66e98b2 100644
--- a/tests/res/layout/viewtreeobserver_layout.xml
+++ b/tests/res/layout/viewtreeobserver_layout.xml
@@ -20,17 +20,19 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content">
 
-    <ListView android:id="@+id/listview1"
+    <View android:id="@+id/view1"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"/>
+        android:layout_height="10dip"
+        android:focusable="true"/>
 
-    <ListView android:id="@+id/listview2"
+    <View android:id="@+id/view2"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"/>
+        android:layout_height="10dip"
+        android:focusable="true"/>
 
     <Button android:id="@+id/button1"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content" />
+        android:layout_width="wrap_content"
+        android:layout_height="10dip" />
 
 </LinearLayout>
 
diff --git a/tests/res/raw/set_target_api_11.bc b/tests/res/raw/set_target_api_11.bc
index babbd9e..fa04be6 100644
--- a/tests/res/raw/set_target_api_11.bc
+++ b/tests/res/raw/set_target_api_11.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_12.bc b/tests/res/raw/set_target_api_12.bc
index 92ee8de..abe314f 100644
--- a/tests/res/raw/set_target_api_12.bc
+++ b/tests/res/raw/set_target_api_12.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_13.bc b/tests/res/raw/set_target_api_13.bc
index c842b98..4fa5b75 100644
--- a/tests/res/raw/set_target_api_13.bc
+++ b/tests/res/raw/set_target_api_13.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_14.bc b/tests/res/raw/set_target_api_14.bc
index 24d2481..876b37c 100644
--- a/tests/res/raw/set_target_api_14.bc
+++ b/tests/res/raw/set_target_api_14.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_15.bc b/tests/res/raw/set_target_api_15.bc
index a6e86d4..d2de6d9 100644
--- a/tests/res/raw/set_target_api_15.bc
+++ b/tests/res/raw/set_target_api_15.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_16.bc b/tests/res/raw/set_target_api_16.bc
index 5ded6fd..ca9aa65 100644
--- a/tests/res/raw/set_target_api_16.bc
+++ b/tests/res/raw/set_target_api_16.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_17.bc b/tests/res/raw/set_target_api_17.bc
new file mode 100644
index 0000000..b08b389
--- /dev/null
+++ b/tests/res/raw/set_target_api_17.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_too_high.bc b/tests/res/raw/set_target_api_too_high.bc
new file mode 100644
index 0000000..95b2026
--- /dev/null
+++ b/tests/res/raw/set_target_api_too_high.bc
Binary files differ
diff --git a/tests/res/values-v18/strings.xml b/tests/res/values-v18/strings.xml
index 0b84d5e..d03c5cb 100644
--- a/tests/res/values-v18/strings.xml
+++ b/tests/res/values-v18/strings.xml
@@ -16,5 +16,4 @@
 
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="version_cur">v18cur</string>
-   <string name="version_old">v18old</string>
 </resources>
diff --git a/tests/tests/openglperf/res/values/strings.xml b/tests/res/values-v19/strings.xml
similarity index 78%
copy from tests/tests/openglperf/res/values/strings.xml
copy to tests/res/values-v19/strings.xml
index 2cdba7f..833ca08 100644
--- a/tests/tests/openglperf/res/values/strings.xml
+++ b/tests/res/values-v19/strings.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
+<!-- Copyright (C) 2008 The Android Open Source Project
 
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
@@ -13,6 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources>
-    <string name="app_name">OpenGlPerfTest</string>
-</resources>
\ No newline at end of file
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+   <string name="version_cur">v19cur</string>
+</resources>
diff --git a/tests/tests/openglperf/res/values/strings.xml b/tests/res/values-v20/strings.xml
similarity index 78%
copy from tests/tests/openglperf/res/values/strings.xml
copy to tests/res/values-v20/strings.xml
index 2cdba7f..f47207a 100644
--- a/tests/tests/openglperf/res/values/strings.xml
+++ b/tests/res/values-v20/strings.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
+<!-- Copyright (C) 2008 The Android Open Source Project
 
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
@@ -13,6 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources>
-    <string name="app_name">OpenGlPerfTest</string>
-</resources>
\ No newline at end of file
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+   <string name="version_cur">v20cur</string>
+</resources>
diff --git a/tests/tests/openglperf/res/values/strings.xml b/tests/res/values-v21/strings.xml
similarity index 78%
copy from tests/tests/openglperf/res/values/strings.xml
copy to tests/res/values-v21/strings.xml
index 2cdba7f..ac8f8a7 100644
--- a/tests/tests/openglperf/res/values/strings.xml
+++ b/tests/res/values-v21/strings.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
+<!-- Copyright (C) 2008 The Android Open Source Project
 
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
@@ -13,6 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources>
-    <string name="app_name">OpenGlPerfTest</string>
-</resources>
\ No newline at end of file
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+   <string name="version_cur">v21cur</string>
+</resources>
diff --git a/tests/tests/openglperf/res/values/strings.xml b/tests/res/values-v22/strings.xml
similarity index 78%
rename from tests/tests/openglperf/res/values/strings.xml
rename to tests/res/values-v22/strings.xml
index 2cdba7f..6b51a01 100644
--- a/tests/tests/openglperf/res/values/strings.xml
+++ b/tests/res/values-v22/strings.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
+<!-- Copyright (C) 2008 The Android Open Source Project
 
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
@@ -13,6 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources>
-    <string name="app_name">OpenGlPerfTest</string>
-</resources>
\ No newline at end of file
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+   <string name="version_cur">v22cur</string>
+</resources>
diff --git a/tests/src/android/opengl/cts/CompressedTextureSurfaceView.java b/tests/src/android/opengl/cts/CompressedTextureSurfaceView.java
index 15ce524..d0c8ed4 100644
--- a/tests/src/android/opengl/cts/CompressedTextureSurfaceView.java
+++ b/tests/src/android/opengl/cts/CompressedTextureSurfaceView.java
@@ -180,7 +180,7 @@
             checkGlError("glEnableVertexAttribArray maPositionHandle");
 
             mTriangleVertices.position(TRIANGLE_VERTICES_DATA_UV_OFFSET);
-            GLES20.glVertexAttribPointer(maTextureHandle, 3, GLES20.GL_FLOAT, false,
+            GLES20.glVertexAttribPointer(maTextureHandle, 2, GLES20.GL_FLOAT, false,
                 TRIANGLE_VERTICES_DATA_STRIDE_BYTES, mTriangleVertices);
             checkGlError("glVertexAttribPointer maTextureHandle");
             GLES20.glEnableVertexAttribArray(maTextureHandle);
diff --git a/tests/src/android/os/cts/CpuFeatures.java b/tests/src/android/os/cts/CpuFeatures.java
index f87db6a..5009474 100644
--- a/tests/src/android/os/cts/CpuFeatures.java
+++ b/tests/src/android/os/cts/CpuFeatures.java
@@ -22,6 +22,10 @@
 
     public static final String ARMEABI = "armeabi";
 
+    public static final String MIPSABI = "mips";
+
+    public static final  String X86ABI = "x86";
+
     static {
         System.loadLibrary("cts_jni");
     }
@@ -29,4 +33,8 @@
     public static native boolean isArmCpu();
 
     public static native boolean isArm7Compatible();
+
+    public static native boolean isMipsCpu();
+
+    public static native boolean isX86Cpu();
 }
diff --git a/tests/src/android/os/cts/FileUtils.java b/tests/src/android/os/cts/FileUtils.java
index 6b71b86..ea31c54 100644
--- a/tests/src/android/os/cts/FileUtils.java
+++ b/tests/src/android/os/cts/FileUtils.java
@@ -25,6 +25,7 @@
 /** Bits and pieces copied from hidden API of android.os.FileUtils. */
 public class FileUtils {
 
+    public static final int S_IFMT  = 0170000;
     public static final int S_IFSOCK = 0140000;
     public static final int S_IFLNK = 0120000;
     public static final int S_IFREG = 0100000;
@@ -73,8 +74,18 @@
         public long ctime;
 
         public boolean hasModeFlag(int flag) {
+            if (((S_IRWXU | S_IRWXG | S_IRWXO) & flag) != flag) {
+                throw new IllegalArgumentException("Inappropriate flag " + flag);
+            }
             return (mode & flag) == flag;
         }
+
+        public boolean isOfType(int type) {
+            if ((type & S_IFMT) != type) {
+                throw new IllegalArgumentException("Unknown type " + type);
+            }
+            return (mode & S_IFMT) == type;
+        }
     }
 
     /**
diff --git a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DeviceReportLog.java b/tests/src/android/os/cts/OSFeatures.java
similarity index 62%
copy from suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DeviceReportLog.java
copy to tests/src/android/os/cts/OSFeatures.java
index 9747ca5..fd30f58 100644
--- a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DeviceReportLog.java
+++ b/tests/src/android/os/cts/OSFeatures.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2013 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,19 +14,13 @@
  * limitations under the License.
  */
 
-package com.android.pts.util;
+package android.os.cts;
 
-import android.util.Log;
-
-public class DeviceReportLog extends ReportLog {
-    private static final String TAG = "PtsReport";
-
-    DeviceReportLog() {
-        mDepth = 4;
+public class OSFeatures {
+    static {
+        System.loadLibrary("cts_jni");
     }
 
-    @Override
-    protected void printLog(String msg) {
-        Log.i(TAG, msg);
-    }
+    public static native int getNoNewPrivs();
+    public static native int prctlCapBsetRead(int i);
 }
diff --git a/tests/src/android/renderscript/cts/foreach.rs b/tests/src/android/renderscript/cts/foreach.rs
index ac527b5..8747961 100644
--- a/tests/src/android/renderscript/cts/foreach.rs
+++ b/tests/src/android/renderscript/cts/foreach.rs
@@ -1,6 +1,7 @@
 #include "shared.rsh"
 
 int *a;
+rs_allocation aRaw;
 int dimX;
 int dimY;
 static bool failed = false;
@@ -21,7 +22,8 @@
 
     for (j = 0; j < dimY; j++) {
         for (i = 0; i < dimX; i++) {
-            _RS_ASSERT(a[i + j * dimX] == (i + j * dimX));
+            int v = rsGetElementAt_int(aRaw, i, j);
+            _RS_ASSERT(v == (i + j * dimX));
         }
     }
 
@@ -41,7 +43,8 @@
 
     for (j = 0; j < dimY; j++) {
         for (i = 0; i < dimX; i++) {
-            _RS_ASSERT(a[i + j * dimX] == (99 + i + j * dimX));
+            int v = rsGetElementAt_int(aRaw, i, j);
+            _RS_ASSERT(v == (99 + i + j * dimX));
         }
     }
 
diff --git a/tests/src/android/renderscript/cts/global_sync.rs b/tests/src/android/renderscript/cts/global_sync.rs
new file mode 100644
index 0000000..e384143
--- /dev/null
+++ b/tests/src/android/renderscript/cts/global_sync.rs
@@ -0,0 +1,53 @@
+#pragma version(1)
+#pragma rs java_package_name(android.renderscript.cts)
+
+int gInt;
+static int sInt;
+
+rs_allocation aFailed;
+
+void test_read_global(int expected) {
+    if (gInt != expected) {
+        rsSetElementAt_uchar(aFailed, 1, 0);
+    }
+}
+
+void test_read_static_global(int expected) {
+    if (sInt != expected) {
+        rsSetElementAt_uchar(aFailed, 1, 0);
+    }
+}
+
+void test_write_global(int i) {
+    gInt = i;
+}
+
+void test_write_static_global(int i) {
+    sInt = i;
+}
+
+void __attribute__((kernel)) write_global(int ain, uint32_t x) {
+    if (x == 0) {
+        gInt = ain;
+    }
+}
+
+void __attribute__((kernel)) write_static_global(int ain, uint32_t x) {
+    if (x == 0) {
+        sInt = ain;
+    }
+}
+
+int __attribute__((kernel)) read_global(int ain, uint32_t x) {
+    if (gInt != ain) {
+        return 1;
+    }
+    return 0;
+}
+
+int __attribute__((kernel)) read_static_global(int ain, uint32_t x) {
+    if (sInt != ain) {
+        return 1;
+    }
+    return 0;
+}
diff --git a/tests/src/android/renderscript/cts/instance.rs b/tests/src/android/renderscript/cts/instance.rs
new file mode 100644
index 0000000..097098a
--- /dev/null
+++ b/tests/src/android/renderscript/cts/instance.rs
@@ -0,0 +1,10 @@
+#include "shared.rsh"
+
+int i;
+rs_allocation ai;
+
+void instance_test() {
+    // Set our allocation based on the global input value.
+    rsSetElementAt(ai, &i, 0);
+}
+
diff --git a/tests/src/android/renderscript/cts/large_global.rs b/tests/src/android/renderscript/cts/large_global.rs
new file mode 100644
index 0000000..3f2da69
--- /dev/null
+++ b/tests/src/android/renderscript/cts/large_global.rs
@@ -0,0 +1,24 @@
+// Copyright (C) 2013 The Android Open Source Project
+//
+// 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.
+
+#pragma version(1)
+#pragma rs java_package_name(android.renderscript.cts)
+
+char buf[2*1024*1024];
+
+// Never called, just present to ensure that buf does not get optimized away.
+void __attribute__((kernel)) root(char c) {
+    buf[0] = c;
+}
+
diff --git a/tests/src/android/renderscript/cts/noroot.rs b/tests/src/android/renderscript/cts/noroot.rs
index 33944aa..f69effc 100644
--- a/tests/src/android/renderscript/cts/noroot.rs
+++ b/tests/src/android/renderscript/cts/noroot.rs
@@ -1,6 +1,7 @@
 #include "shared.rsh"
 
 int *a;
+rs_allocation aRaw;
 int dimX;
 int dimY;
 static bool failed = false;
@@ -15,7 +16,8 @@
 
     for (j = 0; j < dimY; j++) {
         for (i = 0; i < dimX; i++) {
-            _RS_ASSERT(a[i + j * dimX] == (99 + i + j * dimX));
+            int v = rsGetElementAt_int(aRaw, i, j);
+            _RS_ASSERT(v == (99 + i + j * dimX));
         }
     }
 
diff --git a/tests/src/android/renderscript/cts/oob.rs b/tests/src/android/renderscript/cts/oob.rs
new file mode 100644
index 0000000..b191c69
--- /dev/null
+++ b/tests/src/android/renderscript/cts/oob.rs
@@ -0,0 +1,12 @@
+#pragma version(1)
+#pragma rs java_package_name(android.renderscript.cts)
+
+rs_allocation aInt;
+
+void write_i(int value, uint32_t x) {
+    rsSetElementAt_int(aInt, value, x);
+}
+
+void __attribute__((kernel)) write_k(int unused) {
+    rsSetElementAt_int(aInt, 1, 1);
+}
diff --git a/tests/src/android/renderscript/cts/sample.rs b/tests/src/android/renderscript/cts/sample.rs
index 3fecf3c..7a8d5bb 100644
--- a/tests/src/android/renderscript/cts/sample.rs
+++ b/tests/src/android/renderscript/cts/sample.rs
@@ -73,7 +73,7 @@
 
     result = rsSample(alloc1D, gMipLinear, location, lod);
     _RS_ASSERT(compare(expected3, result));
-    return failed;
+    return !failed;
 }
 
 static bool sub_test_RGBA_2D(rs_allocation alloc2D, float2 location, float lod,
@@ -90,17 +90,17 @@
 
     result = rsSample(alloc2D, gMipLinear, location, lod);
     _RS_ASSERT(compare(expected3, result));
-    return failed;
+    return !failed;
 }
 
 void test_RGBA(rs_allocation alloc1D, rs_allocation alloc2D) {
     bool failed = false;
     float4 result;
 
-    float4 fLOD0 = convert_float4(lod0Color);
-    float4 fLOD1 = convert_float4(lod1Color);
-    float4 fLOD2 = convert_float4(lod2Color);
-    float4 fLOD3 = convert_float4(lod3Color);
+    float4 fLOD0 = rsUnpackColor8888(lod0Color);
+    float4 fLOD1 = rsUnpackColor8888(lod1Color);
+    float4 fLOD2 = rsUnpackColor8888(lod2Color);
+    float4 fLOD3 = rsUnpackColor8888(lod3Color);
 
     float4 fLOD04 = fLOD0*0.6f + fLOD1*0.4f;
     float4 fLOD06 = fLOD0*0.4f + fLOD1*0.6f;
diff --git a/tests/src/android/renderscript/cts/setelementat.rs b/tests/src/android/renderscript/cts/setelementat.rs
new file mode 100644
index 0000000..75e96f5
--- /dev/null
+++ b/tests/src/android/renderscript/cts/setelementat.rs
@@ -0,0 +1,51 @@
+#pragma version(1)
+#pragma rs java_package_name(android.renderscript.cts)
+
+#include "shared.rsh"
+
+int memset_toValue = 0;
+
+int compare_value = 0;
+int compare_failure = 2;
+int failure_value = 0;
+
+uint32_t dimX = 0;
+uint32_t dimY = 0;
+rs_allocation array;
+
+void memset(int *aout) {
+    *aout = memset_toValue;
+    return;
+}
+
+void compare(const int *ain) {
+    if (*ain != compare_value) {
+        rsAtomicCas(&compare_failure, 2, -1);
+        failure_value = *ain;
+    }
+    return;
+}
+
+void getCompareResult(int* aout) {
+    *aout = compare_failure;
+}
+
+void setLargeArray(const int *ain, uint32_t x) {
+    int source = 10;
+    if (x == 0) {
+        for (uint32_t i = 0; i < dimX; i++) {
+            rsSetElementAt(array, &source, i);
+        }
+    }
+}
+
+void setLargeArray2D(const int *ain, uint32_t x) {
+    int source = 10;
+    if (x == 0) {
+        for (uint32_t y = 0; y < dimY; y++) {
+            for (uint32_t xtemp = 0; xtemp < dimX; xtemp++) {
+                rsSetElementAt(array, &source, xtemp, y);
+            }
+        }
+    }
+}
diff --git a/tests/src/android/renderscript/cts/graphics_runner.rs b/tests/src/android/rsg/cts/graphics_runner.rs
similarity index 100%
rename from tests/src/android/renderscript/cts/graphics_runner.rs
rename to tests/src/android/rsg/cts/graphics_runner.rs
diff --git a/tests/src/android/rsg/cts/shared.rsh b/tests/src/android/rsg/cts/shared.rsh
new file mode 100644
index 0000000..f33b708
--- /dev/null
+++ b/tests/src/android/rsg/cts/shared.rsh
@@ -0,0 +1,27 @@
+#pragma version(1)
+#pragma rs java_package_name(android.renderscriptgraphics.cts)
+
+static int64_t g_time;
+
+static void start(void) {
+    g_time = rsUptimeMillis();
+}
+
+static float end(void) {
+    int64_t t = rsUptimeMillis() - g_time;
+    return ((float)t) / 1000.f;
+}
+
+#define _RS_ASSERT(b) \
+do { \
+    if (!(b)) { \
+        failed = true; \
+        rsDebug(#b " FAILED", 0); \
+    } \
+\
+} while (0)
+
+/* These constants must match those in UnitTest.java */
+static const int RS_MSG_TEST_PASSED = 100;
+static const int RS_MSG_TEST_FAILED = 101;
+
diff --git a/tests/src/android/rsg/cts/structs.rsh b/tests/src/android/rsg/cts/structs.rsh
new file mode 100755
index 0000000..e7d2efd
--- /dev/null
+++ b/tests/src/android/rsg/cts/structs.rsh
@@ -0,0 +1,56 @@
+// Copyright (C) 2011 The Android Open Source Project
+//
+// 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.
+
+typedef struct ConstMatrix {
+    rs_matrix4x4 MATRIX;
+} ConstMatrix_s;
+ConstMatrix_s *c1;
+
+typedef struct ConstComplex {
+    rs_matrix4x4 MATRIX;
+    rs_matrix4x4 EXTRA;
+    float extra1;
+    float2 extra2;
+    float3 extra3;
+    float4 extra4;
+} ConstComplex_s;
+ConstComplex_s *c2;
+
+typedef struct ConstExtra {
+    rs_matrix4x4 EXTRA;
+    float extra1;
+    float2 extra2;
+    float3 extra3;
+    float4 extra4;
+} ConstExtra_s;
+ConstExtra_s *c3;
+
+typedef struct AllVectorTypes {
+    char2 b2;
+    char3 b3;
+    char4 b4;
+
+    short2 s2;
+    short3 s3;
+    short4 s4;
+
+    int2 i2;
+    int3 i3;
+    int4 i4;
+
+    float2 f2;
+    float3 f3;
+    float4 f4;
+} AllVectorTypes_s;
+AllVectorTypes_s *avt;
diff --git a/tests/src/android/renderscript/cts/stub_activity.rs b/tests/src/android/rsg/cts/stub_activity.rs
similarity index 94%
rename from tests/src/android/renderscript/cts/stub_activity.rs
rename to tests/src/android/rsg/cts/stub_activity.rs
index 7e149f7..f5efce6 100644
--- a/tests/src/android/renderscript/cts/stub_activity.rs
+++ b/tests/src/android/rsg/cts/stub_activity.rs
@@ -15,7 +15,7 @@
 #pragma version(1)
 
 // Tell which java package name the reflected files should belong to
-#pragma rs java_package_name(android.renderscript.cts)
+#pragma rs java_package_name(android.renderscriptgraphics.cts)
 
 // Built-in header with graphics API's
 #include "rs_graphics.rsh"
diff --git a/tests/src/android/text/EmojiStubActivity.java b/tests/src/android/text/EmojiStubActivity.java
new file mode 100755
index 0000000..1587c94
--- /dev/null
+++ b/tests/src/android/text/EmojiStubActivity.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.text.cts;
+
+import com.android.cts.stub.R;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.webkit.WebView;
+
+public class EmojiStubActivity extends Activity {
+    private WebView mWebView;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.webview_layout);
+        mWebView = (WebView) findViewById(R.id.web_page);
+    }
+
+    public WebView getWebView() {
+        return mWebView;
+    }
+
+    @Override
+    public void onDestroy() {
+        mWebView.destroy();
+        super.onDestroy();
+    }
+}
diff --git a/tests/src/android/webkit/cts/WebViewOnUiThread.java b/tests/src/android/webkit/cts/WebViewOnUiThread.java
index bb07d08..5133653 100644
--- a/tests/src/android/webkit/cts/WebViewOnUiThread.java
+++ b/tests/src/android/webkit/cts/WebViewOnUiThread.java
@@ -182,6 +182,15 @@
         });
     }
 
+    public void setNetworkAvailable(final boolean available) {
+        runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                mWebView.setNetworkAvailable(available);
+            }
+        });
+    }
+
     public void setDownloadListener(final DownloadListener listener) {
         runOnUiThread(new Runnable() {
             @Override
@@ -341,6 +350,24 @@
         });
     }
 
+    public void loadUrl(final String url) {
+        runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                mWebView.loadUrl(url);
+            }
+        });
+    }
+
+    public void stopLoading() {
+        runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                mWebView.stopLoading();
+            }
+        });
+    }
+
     public void loadDataAndWaitForCompletion(final String data,
             final String mimeType, final String encoding) {
         callAndWait(new Runnable() {
@@ -591,6 +618,15 @@
         });
     }
 
+    public Picture capturePicture() {
+        return getValue(new ValueGetter<Picture>() {
+            @Override
+            public Picture capture() {
+                return mWebView.capturePicture();
+            }
+        });
+    }
+
     /**
      * Helper for running code on the UI thread where an exception is
      * a test failure. If this is already the UI thread then it runs
diff --git a/tests/src/android/webkit/cts/WebViewStubActivity.java b/tests/src/android/webkit/cts/WebViewStubActivity.java
index fcf260f..6a51bbe 100644
--- a/tests/src/android/webkit/cts/WebViewStubActivity.java
+++ b/tests/src/android/webkit/cts/WebViewStubActivity.java
@@ -20,6 +20,8 @@
 
 import android.app.Activity;
 import android.os.Bundle;
+import android.view.ViewGroup;
+import android.view.ViewParent;
 import android.webkit.WebView;
 
 public class WebViewStubActivity extends Activity {
@@ -38,6 +40,10 @@
 
     @Override
     public void onDestroy() {
+        ViewParent parent =  mWebView.getParent();
+        if (parent instanceof ViewGroup) {
+            ((ViewGroup) parent).removeView(mWebView);
+        }
         mWebView.destroy();
         super.onDestroy();
     }
diff --git a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DeviceReportLog.java b/tests/src/android/widget/cts/GridLayoutStubActivity.java
similarity index 61%
copy from suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DeviceReportLog.java
copy to tests/src/android/widget/cts/GridLayoutStubActivity.java
index 9747ca5..3fa0f28 100644
--- a/suite/pts/deviceTests/ptsutil/src/com/android/pts/util/DeviceReportLog.java
+++ b/tests/src/android/widget/cts/GridLayoutStubActivity.java
@@ -14,19 +14,19 @@
  * limitations under the License.
  */
 
-package com.android.pts.util;
+package android.widget.cts;
 
-import android.util.Log;
+import android.app.Activity;
+import android.os.Bundle;
+import com.android.cts.stub.R;
 
-public class DeviceReportLog extends ReportLog {
-    private static final String TAG = "PtsReport";
-
-    DeviceReportLog() {
-        mDepth = 4;
-    }
-
+/**
+ * A minimal application for {@link android.widget.GridLayout} test.
+ */
+public class GridLayoutStubActivity extends Activity {
     @Override
-    protected void printLog(String msg) {
-        Log.i(TAG, msg);
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.gridlayout_layout);
     }
 }
diff --git a/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityEventTest.java b/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityEventTest.java
index 9b46a9b..58b32d6 100644
--- a/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityEventTest.java
+++ b/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityEventTest.java
@@ -31,7 +31,7 @@
 public class AccessibilityEventTest extends TestCase {
 
     /** The number of properties of the {@link AccessibilityEvent} class. */
-    private static final int NON_STATIC_FIELD_COUNT = 30;
+    private static final int NON_STATIC_FIELD_COUNT = 28;
 
     /**
      * Test that no new fields have been added without updating the
@@ -253,7 +253,6 @@
                 ((Message) expectedEvent.getParcelableData()).what,
                 ((Message) receivedEvent.getParcelableData()).what);
 
-        AccessibilityRecord expectedRecord = expectedEvent.getRecord(0);
         AccessibilityRecord receivedRecord = receivedEvent.getRecord(0);
         AccessibilityRecordTest.assertEqualAccessibilityRecord(expectedEvent, receivedRecord);
     }
diff --git a/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityManagerTest.java b/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityManagerTest.java
index 28e26eb..7ac0572 100644
--- a/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityManagerTest.java
+++ b/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityManagerTest.java
@@ -52,10 +52,6 @@
         assertEquals("Accessibility should have been enabled by the test runner.",
                 1, Settings.Secure.getInt(mContext.getContentResolver(),
                         Settings.Secure.ACCESSIBILITY_ENABLED));
-
-        assertEquals("Touch exploration should have been enabled by the test runner.",
-                1, Settings.Secure.getInt(mContext.getContentResolver(),
-                        Settings.Secure.TOUCH_EXPLORATION_ENABLED));
     }
 
     public void testAddAndRemoveAccessibilityStateChangeListener() throws Exception {
diff --git a/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityNodeInfoTest.java b/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityNodeInfoTest.java
index e0ffaf7..70a25b2 100644
--- a/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityNodeInfoTest.java
+++ b/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityNodeInfoTest.java
@@ -30,7 +30,7 @@
 public class AccessibilityNodeInfoTest extends AndroidTestCase {
 
     /** The number of properties of the {@link AccessibilityNodeInfo} class. */
-    private static final int NON_STATIC_FIELD_COUNT = 19;
+    private static final int NON_STATIC_FIELD_COUNT = 20;
 
     @SmallTest
     public void testMarshaling() throws Exception {
@@ -124,6 +124,7 @@
         info.setMovementGranularities(AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
         info.setLabeledBy(new View(getContext()));
         info.setLabelFor(new View(getContext()));
+        info.setViewIdResourceName("foo.bar:id/baz");
     }
 
     /**
@@ -180,6 +181,8 @@
         assertSame("movementGranularities has incorrect value",
                 expectedInfo.getMovementGranularities(),
                 receivedInfo.getMovementGranularities());
+        assertEquals("viewId has incorrect value", expectedInfo.getViewIdResourceName(),
+                receivedInfo.getViewIdResourceName());
     }
 
     /**
@@ -211,5 +214,6 @@
         assertFalse("accessibilityFocused not properly recycled", info.isAccessibilityFocused());
         assertSame("movementGranularities not properly recycled", 0,
                 info.getMovementGranularities());
+        assertNull("viewId not properly recycled", info.getViewIdResourceName());
     }
 }
diff --git a/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityServiceInfoTest.java b/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityServiceInfoTest.java
new file mode 100644
index 0000000..f0d831e
--- /dev/null
+++ b/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityServiceInfoTest.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.view.accessibility.cts;
+
+import android.accessibilityservice.AccessibilityServiceInfo;
+import android.app.Service;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.view.accessibility.AccessibilityEvent;
+import android.view.accessibility.AccessibilityManager;
+
+import java.util.List;
+
+/**
+ * Tests whether accessibility service infos are properly reported. Logically,
+ * this test belongs to cts/test/test/accessibilityservice but the tests there
+ * are using the new UiAutomation API which disables all currently active
+ * accessibility service and the fake service used for implementing the UI
+ * automation is not reported through the APIs.
+ */
+public class AccessibilityServiceInfoTest  extends AndroidTestCase {
+
+    /**
+     * Tests whether a service can that requested it can retrieve
+     * window content.
+     */
+    @MediumTest
+    @SuppressWarnings("deprecation")
+    public void testAccessibilityServiceInfoForEnabledService() {
+        AccessibilityManager accessibilityManager = (AccessibilityManager)
+            getContext().getSystemService(Service.ACCESSIBILITY_SERVICE);
+        List<AccessibilityServiceInfo> enabledServices =
+            accessibilityManager.getEnabledAccessibilityServiceList(
+                    AccessibilityServiceInfo.FEEDBACK_SPOKEN);
+        assertSame("There should be one speaking service.", 1, enabledServices.size());
+        AccessibilityServiceInfo speakingService = enabledServices.get(0);
+        assertSame(AccessibilityEvent.TYPES_ALL_MASK, speakingService.eventTypes);
+        assertSame(AccessibilityServiceInfo.FEEDBACK_SPOKEN, speakingService.feedbackType);
+        assertSame(AccessibilityServiceInfo.DEFAULT
+                | AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS
+                | AccessibilityServiceInfo.FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY
+                | AccessibilityServiceInfo.FLAG_REQUEST_TOUCH_EXPLORATION_MODE
+                | AccessibilityServiceInfo.FLAG_REQUEST_FILTER_KEY_EVENTS
+                | AccessibilityServiceInfo.FLAG_REPORT_VIEW_IDS,
+                speakingService.flags);
+        assertSame(0l, speakingService.notificationTimeout);
+        assertEquals("Some description", speakingService.getDescription());
+        assertNull(speakingService.packageNames /*all packages*/);
+        assertNotNull(speakingService.getId());
+        assertSame(speakingService.getCapabilities(),
+                AccessibilityServiceInfo.CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY
+                | AccessibilityServiceInfo.CAPABILITY_CAN_REQUEST_FILTER_KEY_EVENTS
+                | AccessibilityServiceInfo.CAPABILITY_CAN_REQUEST_TOUCH_EXPLORATION
+                | AccessibilityServiceInfo.CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT);
+        assertEquals("foo.bar.Activity", speakingService.getSettingsActivityName());
+        assertEquals("Some description", speakingService.loadDescription(
+                getContext().getPackageManager()));
+        assertNotNull(speakingService.getResolveInfo());
+    }
+}
diff --git a/tests/tests/accessibilityservice/Android.mk b/tests/tests/accessibilityservice/Android.mk
index 029602a..73cd288 100644
--- a/tests/tests/accessibilityservice/Android.mk
+++ b/tests/tests/accessibilityservice/Android.mk
@@ -22,13 +22,8 @@
 
 LOCAL_STATIC_JAVA_LIBRARIES := ctstestrunner
 
-LOCAL_SRC_FILES := $(call all-java-files-under, src) \
-  src/android/accessibilityservice/IAccessibilityServiceDelegate.aidl \
-  src/android/accessibilityservice/IAccessibilityServiceDelegateConnection.aidl
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
 LOCAL_PACKAGE_NAME := CtsAccessibilityServiceTestCases
 
-# This test runner sets up/cleans up the device before/after running the tests.
-LOCAL_CTS_TEST_RUNNER := com.android.cts.tradefed.testtype.AccessibilityServiceTestRunner
-
 include $(BUILD_CTS_PACKAGE)
diff --git a/tests/tests/accessibilityservice/AndroidManifest.xml b/tests/tests/accessibilityservice/AndroidManifest.xml
index c000460..ac75553 100644
--- a/tests/tests/accessibilityservice/AndroidManifest.xml
+++ b/tests/tests/accessibilityservice/AndroidManifest.xml
@@ -19,6 +19,9 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.android.cts.accessibilityservice">
 
+  <uses-sdk android:minSdkVersion="18"
+          android:targetSdkVersion="18" />
+
   <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
 
   <application android:theme="@android:style/Theme.Holo.NoActionBar" >
diff --git a/tests/tests/accessibilityservice/res/layout/accessibility_text_traversal_test.xml b/tests/tests/accessibilityservice/res/layout/accessibility_text_traversal_test.xml
index 5b3d2e6..f86f00f 100644
--- a/tests/tests/accessibilityservice/res/layout/accessibility_text_traversal_test.xml
+++ b/tests/tests/accessibilityservice/res/layout/accessibility_text_traversal_test.xml
@@ -32,6 +32,10 @@
        android:id="@+id/text"
        android:layout_width="200dip"
        android:layout_height="200dip"
+       android:includeFontPadding="false"
+       android:textSize="14dip"
+       android:textStyle="normal"
+       android:fontFamily="sans-serif"
        />
 
    <EditText
@@ -41,6 +45,10 @@
        android:maxLines="1000"
        android:scrollbars="vertical"
        android:focusable="false"
+       android:includeFontPadding="false"
+       android:textSize="18dip"
+       android:textStyle="normal"
+       android:fontFamily="sans-serif"
        />
 
 </LinearLayout>
diff --git a/tests/tests/accessibilityservice/src/android/accessibilityservice/IAccessibilityServiceDelegate.aidl b/tests/tests/accessibilityservice/src/android/accessibilityservice/IAccessibilityServiceDelegate.aidl
deleted file mode 100644
index 868bd72..0000000
--- a/tests/tests/accessibilityservice/src/android/accessibilityservice/IAccessibilityServiceDelegate.aidl
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * 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.
- */
-package android.accessibilityservice;
-
-import android.view.accessibility.AccessibilityEvent;
-
-/**
- * Interface for interacting with the accessibility service mock.
- */
-oneway interface IAccessibilityServiceDelegate {
-
-    /**
-     * Delegate an {@link android.view.accessibility.AccessibilityEvent}.
-     */
-    void onAccessibilityEvent(in AccessibilityEvent event);
-
-    /**
-     * Delegate an interrupt request.
-     */
-    void onInterrupt();
-}
diff --git a/tests/tests/accessibilityservice/src/android/accessibilityservice/IAccessibilityServiceDelegateConnection.aidl b/tests/tests/accessibilityservice/src/android/accessibilityservice/IAccessibilityServiceDelegateConnection.aidl
deleted file mode 100644
index 253a082..0000000
--- a/tests/tests/accessibilityservice/src/android/accessibilityservice/IAccessibilityServiceDelegateConnection.aidl
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * 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.
- */
-package android.accessibilityservice;
-
-import android.os.Bundle;
-import android.os.IBinder;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityNodeInfo;
-
-import java.util.List;
-
-/**
- * Interface for registering an accessibility service delegate
- * and asking it to perform some querying of the window for us.
- */
-interface IAccessibilityServiceDelegateConnection {
-
-    void setAccessibilityServiceDelegate(in IBinder binder);
-
-    List<AccessibilityNodeInfo> findAccessibilityNodeInfosByText(in AccessibilityNodeInfo root,
-        String text);
-
-    AccessibilityNodeInfo getParent(in AccessibilityNodeInfo child);
-
-    AccessibilityNodeInfo getChild(in AccessibilityNodeInfo parent, int index);
-
-    AccessibilityNodeInfo findFocus(in AccessibilityNodeInfo root, int focusType);
-
-    AccessibilityNodeInfo focusSearch(in AccessibilityNodeInfo current, int direction);
-
-    boolean performAccessibilityAction(in AccessibilityNodeInfo target, int action,
-           in Bundle arguments);
-
-    AccessibilityNodeInfo getSource(in AccessibilityEvent event);
-
-    void setFetchViewsNotExposedForAccessibility(boolean fetch);
-
-    boolean performGlobalAction(int action);
-
-    AccessibilityNodeInfo getRootInActiveWindow();
-}
diff --git a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityActivityTestCase.java b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityActivityTestCase.java
index a5d92ee..c7e4f4c 100644
--- a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityActivityTestCase.java
+++ b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityActivityTestCase.java
@@ -17,31 +17,10 @@
 package android.accessibilityservice.cts;
 
 import android.accessibilityservice.AccessibilityServiceInfo;
-import android.accessibilityservice.IAccessibilityServiceDelegate;
-import android.accessibilityservice.IAccessibilityServiceDelegateConnection;
 import android.app.Activity;
-import android.app.Service;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.ServiceConnection;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.pm.ServiceInfo;
-import android.os.Bundle;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.os.SystemClock;
+import android.app.UiAutomation;
 import android.test.ActivityInstrumentationTestCase2;
-import android.util.Log;
 import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityManager;
-import android.view.accessibility.AccessibilityNodeInfo;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.TimeoutException;
 
 /**
  * Base text case for testing accessibility APIs by instrumenting an Activity.
@@ -49,14 +28,6 @@
 public abstract class AccessibilityActivityTestCase<T extends Activity>
         extends ActivityInstrumentationTestCase2<T> {
 
-    public interface AccessibilityEventFilter {
-        public boolean accept(AccessibilityEvent event);
-    }
-
-    private static final boolean DEBUG = false;
-
-    private static final String LOG_TAG = AccessibilityActivityTestCase.class.getSimpleName();
-
     /**
      * Timeout required for pending Binder calls or event processing to
      * complete.
@@ -64,17 +35,9 @@
     public static final long TIMEOUT_ASYNC_PROCESSING = 5000;
 
     /**
-     * The timeout after the last accessibility event to consider the device idle.
+     * The timeout since the last accessibility event to consider the device idle.
      */
-    public static final long TIMEOUT_ACCESSIBILITY_STATE_IDLE = 100;
-
-    /**
-     * Instance for detecting the next accessibility event.
-     */
-    private static final NextAccessibilityEventWatcher sNextEventWatcher =
-            new NextAccessibilityEventWatcher();
-
-    private static AccessibilityInteractionBridge sInteractionBridge;
+    public static final long TIMEOUT_ACCESSIBILITY_STATE_IDLE = 200;
 
     /**
      * @param activityClass
@@ -86,22 +49,17 @@
     @Override
     public void setUp() throws Exception {
         super.setUp();
-        waitForAccessibilityStateIdle();
-        startActivityAndWaitForFirstEvent();
-    }
 
-    /**
-     * Gets the bridge for interacting with the view hierarchy via
-     * the accessibility APIs.
-     *
-     * @return The bridge.
-     */
-    public AccessibilityInteractionBridge getInteractionBridge() {
-        if (sInteractionBridge == null) {
-            sInteractionBridge = new AccessibilityInteractionBridge(
-                    getInstrumentation().getContext());
-        }
-        return sInteractionBridge;
+        AccessibilityServiceInfo info = getInstrumentation().getUiAutomation().getServiceInfo();
+        info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_TOUCH_EXPLORATION_MODE;
+        info.flags &= ~AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
+        getInstrumentation().getUiAutomation().setServiceInfo(info);
+
+        getInstrumentation().getUiAutomation().waitForIdle(
+                TIMEOUT_ACCESSIBILITY_STATE_IDLE,
+                TIMEOUT_ASYNC_PROCESSING);
+
+        startActivityAndWaitForFirstEvent();
     }
 
     /**
@@ -117,7 +75,7 @@
      */
     private void startActivityAndWaitForFirstEvent() throws Exception {
         AccessibilityEvent awaitedEvent =
-            getInteractionBridge().executeCommandAndWaitForAccessibilityEvent(
+            getInstrumentation().getUiAutomation().executeAndWaitForEvent(
                 new Runnable() {
             @Override
             public void run() {
@@ -125,436 +83,19 @@
                 getInstrumentation().waitForIdleSync();
             }
         },
-                new AccessibilityEventFilter() {
+                new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 final int eventType = event.getEventType();
-                CharSequence packageName = event.getPackageName();
-                Context targetContext = getInstrumentation().getTargetContext();
-                return (eventType == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED
-                        && targetContext.getPackageName().equals(packageName));
+                // Do not check the package name since an event of this type may
+                // come concurrently from the app and from the IME (since input
+                // focus goes to the first focusable) but we dispatch one event
+                // of each type within a timeout. Hence, sometimes the window
+                // change event from the IME may override the one from the app.
+                return (eventType == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
             }
         },
         TIMEOUT_ASYNC_PROCESSING);
         assertNotNull(awaitedEvent);
     }
-
-    /**
-     * Waits for idle accessibility state.
-     */
-    private void waitForAccessibilityStateIdle() throws Exception {
-        AccessibilityEvent awaitedEvent = null;
-        try {
-            do {
-                awaitedEvent = getInteractionBridge().executeCommandAndWaitForAccessibilityEvent(
-                        sNextEventWatcher, sNextEventWatcher, TIMEOUT_ACCESSIBILITY_STATE_IDLE);
-            } while (awaitedEvent != null);
-        } catch (TimeoutException te) {
-            /* success - no event within the timeout - do nothing */
-        }
-    }
-
-    /**
-     * Dummy implementation that matches every event and does nothing.
-     */
-    private static class NextAccessibilityEventWatcher implements Runnable,
-            AccessibilityEventFilter {
-        @Override
-        public boolean accept(AccessibilityEvent event) {
-            if (DEBUG) {
-                Log.i(LOG_TAG, "Watcher event: " + event);
-            }
-            return true;
-        }
-        @Override
-        public void run() {
-            /* do nothing */
-        }
-    }
-
-    /**
-     * This class serves as a bridge for querying the screen content.
-     * The bride is connected of a delegating accessibility service.
-     */
-    static class AccessibilityInteractionBridge implements ServiceConnection {
-
-        /**
-         * The package of the accessibility service mock interface.
-         */
-        private static final String DELEGATING_SERVICE_PACKAGE =
-            "android.accessibilityservice.delegate";
-
-        /**
-         * The package of the delegating accessibility service interface.
-         */
-        private static final String DELEGATING_SERVICE_CLASS_NAME =
-            "android.accessibilityservice.delegate.DelegatingAccessibilityService";
-
-        /**
-         * The package of the delegating accessibility service connection interface.
-         */
-        private static final String DELEGATING_SERVICE_CONNECTION_CLASS_NAME =
-            "android.accessibilityservice.delegate."
-                + "DelegatingAccessibilityService$DelegatingConnectionService";
-
-        /**
-         * Lock for synchronization.
-         */
-        private final Object mLock = new Object();
-
-        /**
-         * Whether this delegate is initialized.
-         */
-        private boolean mInitialized;
-
-        /**
-         * Query connection to the delegating accessibility service.
-         */
-        private IAccessibilityServiceDelegateConnection mQueryConnection;
-
-        /**
-         * Flag whether we are waiting for a specific event.
-         */
-        private boolean mWaitingForEventDelivery;
-
-        /**
-         * Queue with received events.
-         */
-        private final ArrayList<AccessibilityEvent> mEventQueue =
-            new ArrayList<AccessibilityEvent>(10);
-
-        public AccessibilityInteractionBridge(Context context) {
-            bindToDelegatingAccessibilityService(context);
-        }
-
-        public void onAccessibilityEvent(AccessibilityEvent event) {
-            synchronized (mLock) {
-                mLock.notifyAll();
-                if (mWaitingForEventDelivery) {
-                    mEventQueue.add(AccessibilityEvent.obtain(event));
-                }
-            }
-        }
-
-        /**
-         * Ensures the required setup for the test performed and that it is bound to the
-         * DelegatingAccessibilityService which runs in another process. The setup is
-         * enabling accessibility and installing and enabling the delegating accessibility
-         * service this test binds to.
-         * </p>
-         * Note: Please look at the class description for information why such an
-         *       approach is taken.
-         */
-        public void bindToDelegatingAccessibilityService(Context context) {
-            // check if accessibility is enabled
-            AccessibilityManager accessibilityManager = (AccessibilityManager) context
-                    .getSystemService(Service.ACCESSIBILITY_SERVICE);
-
-            if (!accessibilityManager.isEnabled()) {
-                throw new IllegalStateException("Delegating service not enabled.");
-            }
-
-            // check if the delegating service is running
-            List<AccessibilityServiceInfo> enabledServices =
-                accessibilityManager.getEnabledAccessibilityServiceList(
-                        AccessibilityServiceInfo.FEEDBACK_ALL_MASK);
-            boolean delegatingServiceRunning = false;
-            for (AccessibilityServiceInfo enabledService : enabledServices) {
-                ServiceInfo serviceInfo = enabledService.getResolveInfo().serviceInfo;
-                if (DELEGATING_SERVICE_PACKAGE.equals(serviceInfo.packageName)
-                        && DELEGATING_SERVICE_CLASS_NAME.equals(serviceInfo.name)) {
-                    delegatingServiceRunning = true;
-                    break;
-                }
-            }
-
-            if (!delegatingServiceRunning) {
-                // delegating service not running, so check if it is installed at all
-                try {
-                    PackageManager packageManager = context.getPackageManager();
-                    packageManager.getServiceInfo(new ComponentName(DELEGATING_SERVICE_PACKAGE,
-                            DELEGATING_SERVICE_CLASS_NAME), 0);
-                } catch (NameNotFoundException nnfe) {
-                    throw new IllegalStateException("CtsDelegatingAccessibilityService.apk" +
-                            " not installed.");
-                }
-
-                throw new IllegalStateException("Delegating Accessibility Service not running.");
-            }
-
-            Intent intent = new Intent().setClassName(DELEGATING_SERVICE_PACKAGE,
-                    DELEGATING_SERVICE_CONNECTION_CLASS_NAME);
-            context.bindService(intent, this, Context.BIND_AUTO_CREATE);
-
-            final long beginTime = SystemClock.uptimeMillis();
-            synchronized (mLock) {
-                while (true) {
-                    if (mInitialized) {
-                        return;
-                    }
-                    final long elapsedTime = (SystemClock.uptimeMillis() - beginTime);
-                    final long remainingTime = TIMEOUT_ASYNC_PROCESSING - elapsedTime;
-                    if (remainingTime <= 0) {
-                        if (!mInitialized) {
-                            throw new IllegalStateException("Cound not connect to the delegating"
-                                    + " accessibility service");
-                        }
-                        return;
-                    }
-                    try {
-                        mLock.wait(remainingTime);
-                    } catch (InterruptedException ie) {
-                        /* ignore */
-                    }
-                }
-            }
-        }
-
-        /**
-         * {@inheritDoc ServiceConnection#onServiceConnected(ComponentName,IBinder)}
-         */
-        public void onServiceConnected(ComponentName name, IBinder service) {
-            mQueryConnection = IAccessibilityServiceDelegateConnection.Stub.asInterface(service);
-            try {
-                mQueryConnection.setAccessibilityServiceDelegate(
-                        new IAccessibilityServiceDelegate.Stub() {
-                    @Override
-                    public void onAccessibilityEvent(AccessibilityEvent event) {
-                        AccessibilityInteractionBridge.this.onAccessibilityEvent(event);
-                    }
-                    @Override
-                    public void onInterrupt() {
-                        /* do nothing */
-                    }
-                });
-                synchronized (mLock) {
-                    mInitialized = true;
-                    mLock.notifyAll();
-                }
-            } catch (RemoteException re) {
-                fail("Could not set delegate to the delegating service.");
-            }
-        }
-
-        /**
-         * {@inheritDoc ServiceConnection#onServiceDisconnected(ComponentName)}
-         */
-        public void onServiceDisconnected(ComponentName name) {
-            synchronized (mLock) {
-                mInitialized = false;
-            }
-        }
-
-        /**
-         * Gets the query connection to the delegating accessibility service.
-         *
-         * @return The connection.
-         */
-        public IAccessibilityServiceDelegateConnection getQueryConnection() {
-            return mQueryConnection;
-        }
-
-        /**
-         * Finds the first accessibility info that contains text. The search starts
-         * from the given <code>root</code>
-         *
-         * @param text The searched text.
-         * @return The node with this text or null.
-         */
-        public AccessibilityNodeInfo findAccessibilityNodeInfoByTextFromRoot(String text) {
-            List<AccessibilityNodeInfo> nodes = findAccessibilityNodeInfosByText(text);
-            if (nodes != null && !nodes.isEmpty()) {
-                return nodes.get(0);
-            }
-            return null;
-        }
-
-        public List<AccessibilityNodeInfo> findAccessibilityNodeInfosByText(String text) {
-            AccessibilityNodeInfo root = getRootInActiveWindow();
-            if (root != null) {
-                // Sending a node info across processes recycles
-                // it so use a clone to avoid losing state
-                AccessibilityNodeInfo rootClone = AccessibilityNodeInfo.obtain(root);
-                try {
-                     return getQueryConnection().findAccessibilityNodeInfosByText(rootClone, text);
-                } catch (RemoteException re) {
-                    /* ignore */
-                }
-            }
-            return Collections.emptyList();
-        }
-
-        public AccessibilityNodeInfo getParent(AccessibilityNodeInfo child) {
-            try {
-                // Sending a node info across processes recycles
-                // it so use a clone to avoid losing state
-                AccessibilityNodeInfo childClone = AccessibilityNodeInfo.obtain(child);
-                return getQueryConnection().getParent(childClone);
-            } catch (RemoteException re) {
-                /* ignore */
-            }
-            return null;
-        }
-
-        public AccessibilityNodeInfo getChild(AccessibilityNodeInfo parent, int index) {
-            try {
-                // Sending a node info across processes recycles
-                // it so use a clone to avoid losing state
-                AccessibilityNodeInfo parentClone = AccessibilityNodeInfo.obtain(parent);
-                return getQueryConnection().getChild(parentClone, index);
-            } catch (RemoteException re) {
-                /* ignore */
-            }
-            return null;
-        }
-
-        public boolean performAction(AccessibilityNodeInfo target, int action) {
-            return performAction(target, action, null);
-        }
-
-        public boolean performAction(AccessibilityNodeInfo target, int action, Bundle arguments) {
-            try {
-                // Sending a node info across processes recycles
-                // it so use a clone to avoid losing state
-                AccessibilityNodeInfo targetClone = AccessibilityNodeInfo.obtain(target);
-                return getQueryConnection().performAccessibilityAction(targetClone, action,
-                        arguments);
-            } catch (RemoteException re) {
-                /* ignore */
-            }
-            return false;
-        }
-
-        public boolean performGlobalAction(int action) {
-            try {
-                return getQueryConnection().performGlobalAction(action);
-            } catch (RemoteException re) {
-                /* ignore */
-            }
-            return false;
-        }
-
-        public AccessibilityNodeInfo getSource(AccessibilityEvent event) {
-            try {
-                return getQueryConnection().getSource(event);
-            } catch (RemoteException re) {
-                /* ignore */
-            }
-            return null;
-        }
-
-        public AccessibilityNodeInfo findAccessibilityFocus(AccessibilityNodeInfo root) {
-            try {
-                return getQueryConnection().findFocus(root,
-                        AccessibilityNodeInfo.FOCUS_ACCESSIBILITY);
-            } catch (RemoteException re) {
-                /* ignore */
-            }
-            return null;
-        }
-
-        public AccessibilityNodeInfo findInputFocus(AccessibilityNodeInfo root) {
-            try {
-                return getQueryConnection().findFocus(root, AccessibilityNodeInfo.FOCUS_INPUT);
-            } catch (RemoteException re) {
-                /* ignore */
-            }
-            return null;
-        }
-
-        public AccessibilityNodeInfo accessibilityFocusSearch(AccessibilityNodeInfo current,
-                int direction) {
-            try {
-                // Sending a node info across processes recycles
-                // it so use a clone to avoid losing state
-                AccessibilityNodeInfo currentClone = AccessibilityNodeInfo.obtain(current);
-                return getQueryConnection().focusSearch(currentClone, direction);
-            } catch (RemoteException re) {
-                /* ignore */
-            }
-            return null;
-        }
-
-        public AccessibilityNodeInfo inputFocusSearch(AccessibilityNodeInfo current,
-                int direction) {
-            try {
-                // Sending a node info across processes recycles
-                // it so use a clone to avoid losing state
-                AccessibilityNodeInfo currentClone = AccessibilityNodeInfo.obtain(current);
-                return getQueryConnection().focusSearch(currentClone, direction);
-            } catch (RemoteException re) {
-                /* ignore */
-            }
-            return null;
-        }
-
-        public void setRegardViewsNotImportantForAccessibility(boolean fetch) {
-            try {
-                getQueryConnection().setFetchViewsNotExposedForAccessibility(fetch);
-            } catch (RemoteException re) {
-                /* ignore */
-            }
-        }
-
-        public AccessibilityNodeInfo getRootInActiveWindow() {
-            try {
-                return getQueryConnection().getRootInActiveWindow();
-            } catch (RemoteException re) {
-                /* ignore */
-            }
-            return null;
-        }
-
-        /**
-         * Executes a command and waits for a specific accessibility event type up
-         * to a given timeout.
-         *
-         * @param command The command to execute before starting to wait for the event.
-         * @param filter Filter that recognizes the expected event.
-         * @param timeoutMillis The max wait time in milliseconds.
-         */
-        public AccessibilityEvent executeCommandAndWaitForAccessibilityEvent(Runnable command,
-                AccessibilityEventFilter filter, long timeoutMillis)
-                throws TimeoutException, Exception {
-            synchronized (mLock) {
-                mEventQueue.clear();
-                // Prepare to wait for an event.
-                mWaitingForEventDelivery = true;
-                // Execute the command.
-                command.run();
-                try {
-                    // Wait for the event.
-                    final long startTimeMillis = SystemClock.uptimeMillis();
-                    while (true) {
-                        // Drain the event queue
-                        while (!mEventQueue.isEmpty()) {
-                            AccessibilityEvent event = mEventQueue.remove(0);
-                            if (filter.accept(event)) {
-                                return event;
-                            } else {
-                                event.recycle();
-                            }
-                        }
-                        // Check if timed out and if not wait.
-                        final long elapsedTimeMillis = SystemClock.uptimeMillis() - startTimeMillis;
-                        final long remainingTimeMillis = timeoutMillis - elapsedTimeMillis;
-                        if (remainingTimeMillis <= 0) {
-                            throw new TimeoutException("Expected event not received within: "
-                                    + timeoutMillis + " ms.");
-                        }
-                        mLock.notifyAll();
-                        try {
-                            mLock.wait(remainingTimeMillis);
-                        } catch (InterruptedException ie) {
-                            /* ignore */
-                        }
-                    }
-                } finally {
-                    mWaitingForEventDelivery = false;
-                    mEventQueue.clear();
-                    mLock.notifyAll();
-                }
-            }
-        }
-    }
 }
diff --git a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityEndToEndTest.java b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityEndToEndTest.java
index eedc25f..7e05e32 100644
--- a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityEndToEndTest.java
+++ b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityEndToEndTest.java
@@ -22,6 +22,7 @@
 import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.app.Service;
+import android.app.UiAutomation;
 import android.content.Intent;
 import android.test.suitebuilder.annotation.MediumTest;
 import android.text.TextUtils;
@@ -39,17 +40,6 @@
  * This class performs end-to-end testing of the accessibility feature by
  * creating an {@link Activity} and poking around so {@link AccessibilityEvent}s
  * are generated and their correct dispatch verified.
- * <p>
- * Note: The accessibility CTS tests are composed of two APKs, one with delegating
- * accessibility service and another with the instrumented activity and test cases.
- * The delegating service is installed and enabled during test execution. It serves
- * as a proxy to the system used by the tests. This indirection is needed since the
- * test runner stops the package before running the tests. Hence, if the accessibility
- * service is in the test package running the tests would break the binding between
- * the service and the system.  The delegating service is in
- * <strong>CtsDelegatingAccessibilityService.apk</strong> whose source is located at
- * <strong>cts/tests/accessibilityservice</strong>.
- * </p>
  */
 public class AccessibilityEndToEndTest extends
         AccessibilityActivityTestCase<AccessibilityEndToEndActivity> {
@@ -81,7 +71,7 @@
         final ListView listView = (ListView) getActivity().findViewById(R.id.listview);
 
         AccessibilityEvent awaitedEvent =
-            getInteractionBridge().executeCommandAndWaitForAccessibilityEvent(
+            getInstrumentation().getUiAutomation().executeAndWaitForEvent(
                 new Runnable() {
             @Override
             public void run() {
@@ -93,7 +83,7 @@
                     }
                 });
             }},
-            new AccessibilityEventFilter() {
+            new UiAutomation.AccessibilityEventFilter() {
                 // check the received event
                 @Override
                 public boolean accept(AccessibilityEvent event) {
@@ -117,7 +107,7 @@
         final Button button = (Button) getActivity().findViewById(R.id.button);
 
         AccessibilityEvent awaitedEvent =
-            getInteractionBridge().executeCommandAndWaitForAccessibilityEvent(
+            getInstrumentation().getUiAutomation().executeAndWaitForEvent(
                 new Runnable() {
             @Override
             public void run() {
@@ -129,7 +119,7 @@
                     }
                 });
             }},
-            new AccessibilityEventFilter() {
+            new UiAutomation.AccessibilityEventFilter() {
                 // check the received event
                 @Override
                 public boolean accept(AccessibilityEvent event) {
@@ -153,7 +143,7 @@
         final Button button = (Button) getActivity().findViewById(R.id.button);
 
         AccessibilityEvent awaitedEvent =
-            getInteractionBridge().executeCommandAndWaitForAccessibilityEvent(
+            getInstrumentation().getUiAutomation().executeAndWaitForEvent(
                 new Runnable() {
             @Override
             public void run() {
@@ -165,7 +155,7 @@
                     }
                 });
             }},
-            new AccessibilityEventFilter() {
+            new UiAutomation.AccessibilityEventFilter() {
                 // check the received event
                 @Override
                 public boolean accept(AccessibilityEvent event) {
@@ -191,7 +181,7 @@
         final Button button = (Button) getActivity().findViewById(R.id.button);
 
         AccessibilityEvent awaitedEvent =
-            getInteractionBridge().executeCommandAndWaitForAccessibilityEvent(
+            getInstrumentation().getUiAutomation().executeAndWaitForEvent(
                 new Runnable() {
             @Override
             public void run() {
@@ -203,7 +193,7 @@
                     }
                 });
             }},
-            new AccessibilityEventFilter() {
+            new UiAutomation.AccessibilityEventFilter() {
                 // check the received event
                 @Override
                 public boolean accept(AccessibilityEvent event) {
@@ -220,7 +210,7 @@
         final EditText editText = (EditText) getActivity().findViewById(R.id.edittext);
 
         AccessibilityEvent awaitedFocusEvent =
-            getInteractionBridge().executeCommandAndWaitForAccessibilityEvent(
+            getInstrumentation().getUiAutomation().executeAndWaitForEvent(
                 new Runnable() {
             @Override
             public void run() {
@@ -232,7 +222,7 @@
                     }
                 });
             }},
-            new AccessibilityEventFilter() {
+            new UiAutomation.AccessibilityEventFilter() {
                 // check the received event
                 @Override
                 public boolean accept(AccessibilityEvent event) {
@@ -259,7 +249,7 @@
         expected.setEnabled(true);
 
         AccessibilityEvent awaitedTextChangeEvent =
-            getInteractionBridge().executeCommandAndWaitForAccessibilityEvent(
+            getInstrumentation().getUiAutomation().executeAndWaitForEvent(
                 new Runnable() {
             @Override
             public void run() {
@@ -271,7 +261,7 @@
                     }
                 });
             }},
-            new AccessibilityEventFilter() {
+            new UiAutomation.AccessibilityEventFilter() {
                 // check the received event
                 @Override
                 public boolean accept(AccessibilityEvent event) {
@@ -293,10 +283,8 @@
         expected.getText().add(getActivity().getString(R.string.alert_message));
         expected.setEnabled(true);
 
-        final EditText editText = (EditText) getActivity().findViewById(R.id.edittext);
-
         AccessibilityEvent awaitedEvent =
-            getInteractionBridge().executeCommandAndWaitForAccessibilityEvent(
+            getInstrumentation().getUiAutomation().executeAndWaitForEvent(
                 new Runnable() {
             @Override
             public void run() {
@@ -309,7 +297,7 @@
                     }
                 });
             }},
-            new AccessibilityEventFilter() {
+            new UiAutomation.AccessibilityEventFilter() {
                 // check the received event
                 @Override
                 public boolean accept(AccessibilityEvent event) {
@@ -343,7 +331,7 @@
         expected.setParcelableData(notification);
 
         AccessibilityEvent awaitedEvent =
-            getInteractionBridge().executeCommandAndWaitForAccessibilityEvent(
+            getInstrumentation().getUiAutomation().executeAndWaitForEvent(
                 new Runnable() {
             @Override
             public void run() {
@@ -359,7 +347,7 @@
                     }
                 });
             }},
-            new AccessibilityEventFilter() {
+            new UiAutomation.AccessibilityEventFilter() {
                 // check the received event
                 @Override
                 public boolean accept(AccessibilityEvent event) {
@@ -403,7 +391,6 @@
      */
     private boolean equalsNotificationAsParcelableData(AccessibilityEvent first,
             AccessibilityEvent second) {
-        String message = "parcelableData has incorrect value";
         Notification firstNotification = (Notification) first.getParcelableData();
         Notification secondNotification = (Notification) second.getParcelableData();
         if (firstNotification == null) {
diff --git a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityFocusAndInputFocusSyncTest.java b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityFocusAndInputFocusSyncTest.java
index 7ae62b3..93b026c 100644
--- a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityFocusAndInputFocusSyncTest.java
+++ b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityFocusAndInputFocusSyncTest.java
@@ -17,8 +17,9 @@
 import static android.view.accessibility.AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS;
 import static android.view.accessibility.AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS;
 
-import android.os.SystemClock;
+import android.app.UiAutomation;
 import android.test.suitebuilder.annotation.MediumTest;
+import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityNodeInfo;
 
 import com.android.cts.accessibilityservice.R;
@@ -31,17 +32,6 @@
  * services. These APIs allow moving accessibility focus in the view tree from
  * an AccessiiblityService. Specifically, this activity is for verifying the the
  * sync between accessibility and input focus.
- * <p>
- * Note: The accessibility CTS tests are composed of two APKs, one with delegating
- * accessibility service and another with the instrumented activity and test cases.
- * The delegating service is installed and enabled during test execution. It serves
- * as a proxy to the system used by the tests. This indirection is needed since the
- * test runner stops the package before running the tests. Hence, if the accessibility
- * service is in the test package running the tests would break the binding between
- * the service and the system.  The delegating service is in
- * <strong>CtsDelegatingAccessibilityService.apk</strong> whose source is located at
- * <strong>cts/tests/accessibilityservice</strong>.
- * </p>
  */
 public class AccessibilityFocusAndInputFocusSyncTest
         extends AccessibilityActivityTestCase<AccessibilityFocusAndInputFocusSyncActivity>{
@@ -53,18 +43,29 @@
     @MediumTest
     public void testFindAccessibilityFocus() throws Exception {
         // Get the view that has input and accessibility focus.
-        AccessibilityNodeInfo expected = getInteractionBridge()
-                .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.firstEditText));
+        final AccessibilityNodeInfo expected = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.firstEditText)).get(0);
         assertNotNull(expected);
         assertFalse(expected.isAccessibilityFocused());
         assertTrue(expected.isFocused());
 
-        // Perform a focus action and check for success.
-        assertTrue(getInteractionBridge().performAction(expected, ACTION_ACCESSIBILITY_FOCUS));
+        getInstrumentation().getUiAutomation().executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                // Perform a focus action and check for success.
+                assertTrue(expected.performAction(ACTION_ACCESSIBILITY_FOCUS));
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return event.getEventType() == AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED;
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
 
         // Get the second expected node info.
-        AccessibilityNodeInfo received = getInteractionBridge().findAccessibilityFocus(
-                getInteractionBridge().getRootInActiveWindow());
+        AccessibilityNodeInfo received = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findFocus(AccessibilityNodeInfo.FOCUS_ACCESSIBILITY);
         assertNotNull(received);
         assertTrue(received.isAccessibilityFocused());
 
@@ -75,27 +76,35 @@
     @MediumTest
     public void testInitialStateNoAccessibilityFocus() throws Exception {
         // Get the root which is only accessibility focused.
-        AccessibilityNodeInfo focused = getInteractionBridge().findAccessibilityFocus(
-                getInteractionBridge().getRootInActiveWindow());
+        AccessibilityNodeInfo focused = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findFocus(AccessibilityNodeInfo.FOCUS_ACCESSIBILITY);
         assertNull(focused);
     }
 
     @MediumTest
     public void testActionAccessibilityFocus() throws Exception {
         // Get the root linear layout info.
-        AccessibilityNodeInfo rootLinearLayout = getInteractionBridge()
-                .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.rootLinearLayout));
+        final AccessibilityNodeInfo rootLinearLayout = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.rootLinearLayout)).get(0);
         assertNotNull(rootLinearLayout);
         assertFalse(rootLinearLayout.isAccessibilityFocused());
 
-        // Perform a focus action and check for success.
-        assertTrue(getInteractionBridge().performAction(rootLinearLayout,
-                ACTION_ACCESSIBILITY_FOCUS));
+        getInstrumentation().getUiAutomation().executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                // Perform a focus action and check for success.
+                assertTrue(rootLinearLayout.performAction(ACTION_ACCESSIBILITY_FOCUS));
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return event.getEventType() == AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED;
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
 
         // Get the node info again.
-        rootLinearLayout = getInteractionBridge()
-               .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.rootLinearLayout));
-        assertNotNull(rootLinearLayout);
+        rootLinearLayout.refresh();
 
         // Check if the node info is focused.
         assertTrue(rootLinearLayout.isAccessibilityFocused());
@@ -104,29 +113,46 @@
     @MediumTest
     public void testActionClearAccessibilityFocus() throws Exception {
         // Get the root linear layout info.
-        AccessibilityNodeInfo rootLinearLayout = getInteractionBridge()
-                .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.rootLinearLayout));
+        final AccessibilityNodeInfo rootLinearLayout = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.rootLinearLayout)).get(0);
         assertNotNull(rootLinearLayout);
 
-        // Perform a focus action and check for success.
-        assertTrue(getInteractionBridge().performAction(rootLinearLayout,
-                ACTION_ACCESSIBILITY_FOCUS));
+        getInstrumentation().getUiAutomation().executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                // Perform a focus action and check for success.
+                assertTrue(rootLinearLayout.performAction(ACTION_ACCESSIBILITY_FOCUS));
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return event.getEventType() == AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED;
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
 
-        // Get the node info again.
-        rootLinearLayout = getInteractionBridge()
-               .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.rootLinearLayout));
-        assertNotNull(rootLinearLayout);
+        // Refresh the node info.
+        rootLinearLayout.refresh();
 
         // Check if the node info is focused.
         assertTrue(rootLinearLayout.isAccessibilityFocused());
 
-        // Perform a clear focus action and check for success.
-        assertTrue(getInteractionBridge().performAction(rootLinearLayout,
-                ACTION_CLEAR_ACCESSIBILITY_FOCUS));
+        getInstrumentation().getUiAutomation().executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                // Perform a clear focus action and check for success.
+                assertTrue(rootLinearLayout.performAction(ACTION_CLEAR_ACCESSIBILITY_FOCUS));
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return event.getEventType()
+                        == AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED;
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
 
-        // Get the node info again.
-        rootLinearLayout = getInteractionBridge()
-                .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.rootLinearLayout));
+        // Refresh the node info.
+        rootLinearLayout.refresh();
 
         // Check if the node info is not focused.
         assertFalse(rootLinearLayout.isAccessibilityFocused());
@@ -135,41 +161,55 @@
     @MediumTest
     public void testOnlyOneNodeHasAccessibilityFocus() throws Exception {
         // Get the first not focused edit text.
-        AccessibilityNodeInfo firstEditText = getInteractionBridge()
-            .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.firstEditText));
+        final AccessibilityNodeInfo firstEditText = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.firstEditText)).get(0);
         assertNotNull(firstEditText);
         assertTrue(firstEditText.isFocusable());
         assertTrue(firstEditText.isFocused());
         assertFalse(firstEditText.isAccessibilityFocused());
 
-        // Perform a set focus action and check for success.
-        assertTrue(getInteractionBridge().performAction(firstEditText,
-                ACTION_ACCESSIBILITY_FOCUS));
-
-        // Wait for generated events to propagate and clear the cache.
-        SystemClock.sleep(TIMEOUT_ASYNC_PROCESSING);
+        getInstrumentation().getUiAutomation().executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                // Perform a set focus action and check for success.
+                assertTrue(firstEditText.performAction(ACTION_ACCESSIBILITY_FOCUS));
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return event.getEventType() == AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED;
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
 
         // Get the second not focused edit text.
-        AccessibilityNodeInfo secondEditText = getInteractionBridge()
-            .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.secondEditText));
+        final AccessibilityNodeInfo secondEditText = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.secondEditText)).get(0);
         assertNotNull(secondEditText);
         assertTrue(secondEditText.isFocusable());
         assertFalse(secondEditText.isFocused());
         assertFalse(secondEditText.isAccessibilityFocused());
 
-        // Perform a set focus action and check for success.
-        assertTrue(getInteractionBridge().performAction(secondEditText,
-                ACTION_ACCESSIBILITY_FOCUS));
-
-        // Wait for generated events to propagate and clear the cache.
-        SystemClock.sleep(TIMEOUT_ASYNC_PROCESSING);
+        getInstrumentation().getUiAutomation().executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                // Perform a set focus action and check for success.
+                assertTrue(secondEditText.performAction(ACTION_ACCESSIBILITY_FOCUS));
+                
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return event.getEventType() == AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED;
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
 
         // Get the node info again.
-        secondEditText = getInteractionBridge()
-                .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.secondEditText));
+        secondEditText.refresh();
 
         // Make sure no other node has accessibility focus.
-        AccessibilityNodeInfo root = getInteractionBridge().getRootInActiveWindow();
+        AccessibilityNodeInfo root = getInstrumentation().getUiAutomation().getRootInActiveWindow();
         Queue<AccessibilityNodeInfo> workQueue = new LinkedList<AccessibilityNodeInfo>();
         workQueue.add(root);
         while (!workQueue.isEmpty()) {
@@ -179,8 +219,10 @@
             }
             final int childCount = current.getChildCount();
             for (int i = 0; i < childCount; i++) {
-                AccessibilityNodeInfo child = getInteractionBridge().getChild(current, i);
-                workQueue.offer(child);
+                AccessibilityNodeInfo child = current.getChild(i);
+                if (child != null) {
+                    workQueue.offer(child);
+                }
             }
         }
     }
diff --git a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityServiceInfoTest.java b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityServiceInfoTest.java
index 0f687d0..a933099 100644
--- a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityServiceInfoTest.java
+++ b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityServiceInfoTest.java
@@ -17,14 +17,10 @@
 package android.accessibilityservice.cts;
 
 import android.accessibilityservice.AccessibilityServiceInfo;
-import android.app.Service;
 import android.os.Parcel;
 import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.MediumTest;
 import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityManager;
-
-import java.util.List;
 
 /**
  * Class for testing {@link AccessibilityServiceInfo}.
@@ -92,38 +88,17 @@
     public void testFlagToString() {
         assertEquals("DEFAULT", AccessibilityServiceInfo.flagToString(
                 AccessibilityServiceInfo.DEFAULT));
-    }
-
-    /**
-     * Tests whether a service can that requested it can retrieve
-     * window content.
-     */
-    @MediumTest
-    @SuppressWarnings("deprecation")
-    public void testAccessibilityServiceInfoForEnabledService() {
-        AccessibilityManager accessibilityManager = (AccessibilityManager)
-            getContext().getSystemService(Service.ACCESSIBILITY_SERVICE);
-        List<AccessibilityServiceInfo> enabledServices =
-            accessibilityManager.getEnabledAccessibilityServiceList(
-                    AccessibilityServiceInfo.FEEDBACK_GENERIC);
-        assertSame("There should be one generic service.", 1, enabledServices.size());
-        AccessibilityServiceInfo speakingService = enabledServices.get(0);
-        assertSame(AccessibilityEvent.TYPES_ALL_MASK, speakingService.eventTypes);
-        assertSame(AccessibilityServiceInfo.FEEDBACK_GENERIC, speakingService.feedbackType);
-        assertSame(AccessibilityServiceInfo.DEFAULT, speakingService.flags);
-        assertSame(50l, speakingService.notificationTimeout);
-        assertEquals("Delegating Accessibility Service", speakingService.getDescription());
-        assertNull(speakingService.packageNames /*all packages*/);
-        assertNotNull(speakingService.getId());
-        assertTrue(speakingService.getCanRetrieveWindowContent());
-        assertEquals("android.accessibilityservice.delegate.SomeActivity",
-                speakingService.getSettingsActivityName());
-        assertEquals("Delegating Accessibility Service",
-                speakingService.loadDescription(getContext().getPackageManager()));
-        assertEquals("android.accessibilityservice.delegate",
-                speakingService.getResolveInfo().serviceInfo.packageName);
-        assertEquals("android.accessibilityservice.delegate.DelegatingAccessibilityService",
-                speakingService.getResolveInfo().serviceInfo.name);
+        assertEquals("FLAG_INCLUDE_NOT_IMPORTANT_VIEWS", AccessibilityServiceInfo.flagToString(
+                AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS));
+        assertEquals("FLAG_REPORT_VIEW_IDS", AccessibilityServiceInfo.flagToString(
+                AccessibilityServiceInfo.FLAG_REPORT_VIEW_IDS));
+        assertEquals("FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY", AccessibilityServiceInfo
+                .flagToString(AccessibilityServiceInfo.FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY));
+        assertEquals("FLAG_REQUEST_FILTER_KEY_EVENTS", AccessibilityServiceInfo.flagToString(
+                AccessibilityServiceInfo.FLAG_REQUEST_FILTER_KEY_EVENTS));
+        assertEquals("FLAG_REQUEST_TOUCH_EXPLORATION_MODE", AccessibilityServiceInfo.flagToString(
+                AccessibilityServiceInfo.FLAG_REQUEST_TOUCH_EXPLORATION_MODE));
+        
     }
 
     /**
diff --git a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityTextTraversalTest.java b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityTextTraversalTest.java
index 517b71a..cbaf5d2 100644
--- a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityTextTraversalTest.java
+++ b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityTextTraversalTest.java
@@ -14,9 +14,11 @@
 
 package android.accessibilityservice.cts;
 
+import android.app.UiAutomation;
 import android.os.Bundle;
 import android.test.suitebuilder.annotation.MediumTest;
 import android.text.Selection;
+import android.text.TextUtils;
 import android.view.View;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityNodeInfo;
@@ -28,17 +30,6 @@
 /**
  * Test cases for testing the accessibility APIs for traversing the text content of
  * a View at several granularities.
- * <p>
- * Note: The accessibility CTS tests are composed of two APKs, one with delegating
- * accessibility service and another with the instrumented activity and test cases.
- * The delegating service is installed and enabled during test execution. It serves
- * as a proxy to the system used by the tests. This indirection is needed since the
- * test runner stops the package before running the tests. Hence, if the accessibility
- * service is in the test package running the tests would break the binding between
- * the service and the system.  The delegating service is in
- * <strong>CtsDelegatingAccessibilityService.apk</strong> whose source is located at
- * <strong>cts/tests/accessibilityservice</strong>.
- * </p>
  */
 public class AccessibilityTextTraversalTest
         extends AccessibilityActivityTestCase<AccessibilityTextTraversalActivity>{
@@ -59,8 +50,9 @@
             }
         });
 
-        final AccessibilityNodeInfo text = getInteractionBridge()
-               .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.a_b));
+        final AccessibilityNodeInfo text = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.a_b)).get(0);
 
         final int granularities = text.getMovementGranularities();
         assertEquals(granularities, AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER
@@ -72,21 +64,21 @@
                 AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
 
         // Move to the next character and wait for an event.
-        AccessibilityEvent firstExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent firstExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
-                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+                text.performAction(AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY,
+                        arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(View.class.getName())
                         && event.getContentDescription().toString().equals(
@@ -94,7 +86,7 @@
                         && event.getFromIndex() == 0
                         && event.getToIndex() == 1
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -102,21 +94,21 @@
         assertNotNull(firstExpected);
 
         // Move to the next character and wait for an event.
-        AccessibilityEvent secondExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent secondExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
-                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+                text.performAction(AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY,
+                        arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(View.class.getName())
                         && event.getContentDescription().toString().equals(
@@ -124,7 +116,7 @@
                         && event.getFromIndex() == 1
                         && event.getToIndex() == 2
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -132,21 +124,21 @@
         assertNotNull(secondExpected);
 
         // Move to the next character and wait for an event.
-        AccessibilityEvent thirdExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent thirdExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
-                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+                text.performAction(AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY,
+                        arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(View.class.getName())
                         && event.getContentDescription().toString().equals(
@@ -154,7 +146,7 @@
                         && event.getFromIndex() == 2
                         && event.getToIndex() == 3
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+                                 AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -162,25 +154,55 @@
         assertNotNull(thirdExpected);
 
         // Make sure there is no next.
-        assertFalse(getInteractionBridge().performAction(text,
-                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments));
+        assertFalse(text.performAction(AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY,
+                arguments));
 
-        // Move to the next character and wait for an event.
-        AccessibilityEvent fifthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        // Move to the previous character and wait for an event.
+        AccessibilityEvent fourthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
-                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+                text.performAction(AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY,
+                        arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(View.class.getName())
+                        && event.getContentDescription().toString().equals(
+                                getString(R.string.a_b))
+                        && event.getFromIndex() == 2
+                        && event.getToIndex() == 3
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(fourthExpected);
+
+        // Move to the previous character and wait for an event.
+        AccessibilityEvent fifthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY,
+                        arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(View.class.getName())
                         && event.getContentDescription().toString().equals(
@@ -188,7 +210,7 @@
                         && event.getFromIndex() == 1
                         && event.getToIndex() == 2
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -196,21 +218,21 @@
         assertNotNull(fifthExpected);
 
         // Move to the next character and wait for an event.
-        AccessibilityEvent sixthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent sixthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
-                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+                text.performAction(AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY,
+                        arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(View.class.getName())
                         && event.getContentDescription().toString().equals(
@@ -218,7 +240,7 @@
                         && event.getFromIndex() == 0
                         && event.getToIndex() == 1
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -226,7 +248,7 @@
         assertNotNull(sixthExpected);
 
         // Make sure there is no previous.
-        assertFalse(getInteractionBridge().performAction(text,
+        assertFalse(text.performAction(
                 AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
     }
 
@@ -242,8 +264,9 @@
             }
         });
 
-        final AccessibilityNodeInfo text = getInteractionBridge()
-               .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.foo_bar_baz));
+        final AccessibilityNodeInfo text = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.foo_bar_baz)).get(0);
 
         final int granularities = text.getMovementGranularities();
         assertEquals(granularities, AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER
@@ -255,21 +278,21 @@
                 AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
 
         // Move to the next character and wait for an event.
-        AccessibilityEvent firstExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent firstExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(View.class.getName())
                         && event.getContentDescription().toString().equals(
@@ -277,7 +300,7 @@
                         && event.getFromIndex() == 0
                         && event.getToIndex() == 3
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -285,21 +308,21 @@
         assertNotNull(firstExpected);
 
         // Move to the next character and wait for an event.
-        AccessibilityEvent secondExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent secondExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(View.class.getName())
                         && event.getContentDescription().toString().equals(
@@ -307,7 +330,7 @@
                         && event.getFromIndex() == 4
                         && event.getToIndex() == 7
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -315,21 +338,21 @@
         assertNotNull(secondExpected);
 
         // Move to the next character and wait for an event.
-        AccessibilityEvent thirdExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent thirdExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(View.class.getName())
                         && event.getContentDescription().toString().equals(
@@ -337,7 +360,7 @@
                         && event.getFromIndex() == 8
                         && event.getToIndex() == 11
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+                               AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -345,25 +368,25 @@
         assertNotNull(thirdExpected);
 
         // Make sure there is no next.
-        assertFalse(getInteractionBridge().performAction(text,
+        assertFalse(text.performAction(
                 AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments));
 
         // Move to the next character and wait for an event.
-        AccessibilityEvent fourthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent fourthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(View.class.getName())
                         && event.getContentDescription().toString().equals(
@@ -371,7 +394,7 @@
                         && event.getFromIndex() == 8
                         && event.getToIndex() == 11
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -379,21 +402,21 @@
         assertNotNull(fourthExpected);
 
         // Move to the next character and wait for an event.
-        AccessibilityEvent fifthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent fifthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(View.class.getName())
                         && event.getContentDescription().toString().equals(
@@ -401,7 +424,7 @@
                         && event.getFromIndex() == 4
                         && event.getToIndex() == 7
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -409,21 +432,21 @@
         assertNotNull(fifthExpected);
 
         // Move to the next character and wait for an event.
-        AccessibilityEvent sixthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent sixthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(View.class.getName())
                         && event.getContentDescription().toString().equals(
@@ -431,7 +454,7 @@
                         && event.getFromIndex() == 0
                         && event.getToIndex() == 3
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -439,7 +462,7 @@
         assertNotNull(sixthExpected);
 
         // Make sure there is no previous.
-        assertFalse(getInteractionBridge().performAction(text,
+        assertFalse(text.performAction(
                 AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
     }
 
@@ -455,8 +478,9 @@
             }
         });
 
-        final AccessibilityNodeInfo text = getInteractionBridge()
-               .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.a_b));
+        final AccessibilityNodeInfo text = getInstrumentation().getUiAutomation()
+               .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                       getString(R.string.a_b)).get(0);
 
         final int granularities = text.getMovementGranularities();
         assertEquals(granularities, AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER
@@ -470,21 +494,21 @@
                 AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
 
         // Move to the next character and wait for an event.
-        AccessibilityEvent firstExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent firstExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
@@ -492,7 +516,7 @@
                         && event.getFromIndex() == 0
                         && event.getToIndex() == 1
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -504,21 +528,21 @@
         assertEquals(1, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the next character and wait for an event.
-        AccessibilityEvent secondExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent secondExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
@@ -526,7 +550,7 @@
                         && event.getFromIndex() == 1
                         && event.getToIndex() == 2
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -538,21 +562,21 @@
         assertEquals(2, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the next character and wait for an event.
-        AccessibilityEvent thirdExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent thirdExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
@@ -560,7 +584,7 @@
                         && event.getFromIndex() == 2
                         && event.getToIndex() == 3
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -572,37 +596,37 @@
         assertEquals(3, Selection.getSelectionEnd(textView.getText()));
 
         // Make sure there is no next.
-        assertFalse(getInteractionBridge().performAction(text,
+        assertFalse(text.performAction(
                 AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments));
 
         // Verify the selection position.
         assertEquals(3, Selection.getSelectionStart(textView.getText()));
         assertEquals(3, Selection.getSelectionEnd(textView.getText()));
 
-        // Move to the next character and wait for an event.
-        AccessibilityEvent fifthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        // Move to the previous character and wait for an event.
+        AccessibilityEvent fifthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
                         && event.getText().get(0).toString().equals(getString(R.string.a_b))
-                        && event.getFromIndex() == 1
-                        && event.getToIndex() == 2
+                        && event.getFromIndex() == 2
+                        && event.getToIndex() == 3
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -613,30 +637,30 @@
         assertEquals(2, Selection.getSelectionStart(textView.getText()));
         assertEquals(2, Selection.getSelectionEnd(textView.getText()));
 
-        // Move to the next character and wait for an event.
-        AccessibilityEvent sixthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        // Move to the previous character and wait for an event.
+        AccessibilityEvent sixthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
                         && event.getText().get(0).toString().equals(getString(R.string.a_b))
-                        && event.getFromIndex() == 0
-                        && event.getToIndex() == 1
+                        && event.getFromIndex() == 1
+                        && event.getToIndex() == 2
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -647,8 +671,42 @@
         assertEquals(1, Selection.getSelectionStart(textView.getText()));
         assertEquals(1, Selection.getSelectionEnd(textView.getText()));
 
+        // Move to the previous character and wait for an event.
+        AccessibilityEvent seventhExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(TextView.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.a_b))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 1
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(seventhExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(textView.getText()));
+        assertEquals(0, Selection.getSelectionEnd(textView.getText()));
+
         // Make sure there is no previous.
-        assertFalse(getInteractionBridge().performAction(text,
+        assertFalse(text.performAction(
                 AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
 
         // Verify the selection position.
@@ -657,6 +715,505 @@
     }
 
     @MediumTest
+    public void testActionNextAndPreviousAtGranularityCharacterOverTextExtend()
+            throws Exception {
+        final EditText editText = (EditText) getActivity().findViewById(R.id.edit);
+
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.setText(getString(R.string.a_b));
+                Selection.removeSelection(editText.getText());
+            }
+        });
+
+        final AccessibilityNodeInfo text = getInstrumentation().getUiAutomation()
+               .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                       getString(R.string.a_b)).get(0);
+
+        final int granularities = text.getMovementGranularities();
+        assertEquals(granularities, AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+
+        final Bundle arguments = new Bundle();
+        arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
+                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+        arguments.putBoolean(AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN, true);
+
+        // Move to the next character and wait for an event.
+        AccessibilityEvent firstExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.a_b))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 1
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(firstExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(1, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next character and wait for an event.
+        AccessibilityEvent secondExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.a_b))
+                        && event.getFromIndex() == 1
+                        && event.getToIndex() == 2
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(secondExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(2, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next character and wait for an event.
+        AccessibilityEvent thirdExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.a_b))
+                        && event.getFromIndex() == 2
+                        && event.getToIndex() == 3
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(thirdExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(3, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no next.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(3, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous character and wait for an event.
+        AccessibilityEvent fourthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.a_b))
+                        && event.getFromIndex() == 2
+                        && event.getToIndex() == 3
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(fourthExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(2, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous character and wait for an event.
+        AccessibilityEvent fifthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.a_b))
+                        && event.getFromIndex() == 1
+                        && event.getToIndex() == 2
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(fifthExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(1, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous character and wait for an event.
+        AccessibilityEvent sixthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.a_b))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 1
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(sixthExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(0, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no previous.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(0, Selection.getSelectionEnd(editText.getText()));
+
+        // Focus the view so we can change selection.
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.setFocusable(true);
+                editText.requestFocus();
+            }
+        });
+
+        // Put selection at the end of the text.
+        Bundle setSelectionArgs = new Bundle();
+        setSelectionArgs.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 3);
+        setSelectionArgs.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT, 3);
+        assertTrue(text.performAction(
+                AccessibilityNodeInfo.ACTION_SET_SELECTION, setSelectionArgs));
+
+        // Verify the selection position.
+        assertEquals(3, Selection.getSelectionStart(editText.getText()));
+        assertEquals(3, Selection.getSelectionEnd(editText.getText()));
+
+        // Unfocus the view so we can get rid of the soft-keyboard.
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.clearFocus();
+                editText.setFocusable(false);
+            }
+        });
+
+        // Move to the previous character and wait for an event.
+        AccessibilityEvent seventhExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.a_b))
+                        && event.getFromIndex() == 2
+                        && event.getToIndex() == 3
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(seventhExpected);
+
+        // Verify the selection position.
+        assertEquals(3, Selection.getSelectionStart(editText.getText()));
+        assertEquals(2, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous character and wait for an event.
+        AccessibilityEvent eightExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.a_b))
+                        && event.getFromIndex() == 1
+                        && event.getToIndex() == 2
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(eightExpected);
+
+        // Verify the selection position.
+        assertEquals(3, Selection.getSelectionStart(editText.getText()));
+        assertEquals(1, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous character and wait for an event.
+        AccessibilityEvent ninethExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.a_b))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 1
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(ninethExpected);
+
+        // Verify the selection position.
+        assertEquals(3, Selection.getSelectionStart(editText.getText()));
+        assertEquals(0, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no previous.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(3, Selection.getSelectionStart(editText.getText()));
+        assertEquals(0, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next character and wait for an event.
+        AccessibilityEvent tenthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.a_b))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 1
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(tenthExpected);
+
+        // Verify the selection position.
+        assertEquals(3, Selection.getSelectionStart(editText.getText()));
+        assertEquals(1, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next character and wait for an event.
+        AccessibilityEvent eleventhExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.a_b))
+                        && event.getFromIndex() == 1
+                        && event.getToIndex() == 2
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(eleventhExpected);
+
+        // Verify the selection position.
+        assertEquals(3, Selection.getSelectionStart(editText.getText()));
+        assertEquals(2, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next character and wait for an event.
+        AccessibilityEvent twelvethExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.a_b))
+                        && event.getFromIndex() == 2
+                        && event.getToIndex() == 3
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(twelvethExpected);
+
+        // Verify the selection position.
+        assertEquals(3, Selection.getSelectionStart(editText.getText()));
+        assertEquals(3, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no next.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(3, Selection.getSelectionStart(editText.getText()));
+        assertEquals(3, Selection.getSelectionEnd(editText.getText()));
+    }
+
+    @MediumTest
     public void testActionNextAndPreviousAtGranularityWordOverText() throws Exception {
         final TextView textView = (TextView) getActivity().findViewById(R.id.text);
 
@@ -667,8 +1224,9 @@
             }
         });
 
-        final AccessibilityNodeInfo text = getInteractionBridge()
-               .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.foo_bar_baz));
+        final AccessibilityNodeInfo text = getInstrumentation().getUiAutomation()
+               .getRootInActiveWindow().findAccessibilityNodeInfosByText(getString(
+                       R.string.foo_bar_baz)).get(0);
 
         final int granularities = text.getMovementGranularities();
         assertEquals(granularities, AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER
@@ -682,21 +1240,21 @@
                 AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
 
         // Move to the next word and wait for an event.
-        AccessibilityEvent firstExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent firstExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
@@ -704,7 +1262,7 @@
                         && event.getFromIndex() == 0
                         && event.getToIndex() == 3
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -716,21 +1274,21 @@
         assertEquals(3, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the next word and wait for an event.
-        AccessibilityEvent secondExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent secondExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
@@ -738,7 +1296,7 @@
                         && event.getFromIndex() == 4
                         && event.getToIndex() == 7
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -750,21 +1308,21 @@
         assertEquals(7, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the next word and wait for an event.
-        AccessibilityEvent thirdExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent thirdExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
@@ -772,7 +1330,7 @@
                         && event.getFromIndex() == 8
                         && event.getToIndex() == 11
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+                                 AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -784,7 +1342,7 @@
         assertEquals(11, Selection.getSelectionEnd(textView.getText()));
 
         // Make sure there is no next.
-        assertFalse(getInteractionBridge().performAction(text,
+        assertFalse(text.performAction(
                 AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments));
 
         // Verify the selection position.
@@ -792,21 +1350,21 @@
         assertEquals(11, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the next word and wait for an event.
-        AccessibilityEvent fourthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent fourthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
@@ -814,7 +1372,7 @@
                         && event.getFromIndex() == 8
                         && event.getToIndex() == 11
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -826,21 +1384,21 @@
         assertEquals(8, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the next word and wait for an event.
-        AccessibilityEvent fifthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent fifthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
@@ -848,7 +1406,7 @@
                         && event.getFromIndex() == 4
                         && event.getToIndex() == 7
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -860,21 +1418,21 @@
         assertEquals(4, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the next character and wait for an event.
-        AccessibilityEvent sixthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent sixthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
@@ -882,7 +1440,7 @@
                         && event.getFromIndex() == 0
                         && event.getToIndex() == 3
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -894,7 +1452,7 @@
         assertEquals(0, Selection.getSelectionEnd(textView.getText()));
 
         // Make sure there is no previous.
-        assertFalse(getInteractionBridge().performAction(text,
+        assertFalse(text.performAction(
                 AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
 
         // Verify the selection position.
@@ -903,6 +1461,756 @@
     }
 
     @MediumTest
+    public void testActionNextAndPreviousAtGranularityWordOverEditTextWithContentDescription()
+            throws Exception {
+
+        final EditText editText = (EditText) getActivity().findViewById(R.id.edit);
+
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.setText(getString(R.string.foo_bar_baz));
+                editText.setContentDescription(getString(R.string.android_wiki));
+            }
+        });
+
+        final AccessibilityNodeInfo text = getInstrumentation().getUiAutomation()
+               .getRootInActiveWindow().findAccessibilityNodeInfosByText(getString(
+                       R.string.foo_bar_baz)).get(0);
+
+        final int granularities = text.getMovementGranularities();
+        assertEquals(granularities, AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+
+        final Bundle arguments = new Bundle();
+        arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
+                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+
+        // Move to the next word and wait for an event.
+        AccessibilityEvent firstExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getContentDescription().equals(getString(R.string.android_wiki))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 3
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(firstExpected);
+
+        // Verify the selection position.
+        assertEquals(3, editText.getSelectionStart());
+        assertEquals(3, editText.getSelectionEnd());
+
+        // Move to the next word and wait for an event.
+        AccessibilityEvent secondExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getContentDescription().equals(getString(R.string.android_wiki))
+                        && event.getFromIndex() == 4
+                        && event.getToIndex() == 7
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(secondExpected);
+
+        // Verify the selection position.
+        assertEquals(7, editText.getSelectionStart());
+        assertEquals(7, editText.getSelectionEnd());
+
+        // Move to the next word and wait for an event.
+        AccessibilityEvent thirdExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getContentDescription().equals(getString(R.string.android_wiki))
+                        && event.getFromIndex() == 8
+                        && event.getToIndex() == 11
+                        && event.getMovementGranularity() ==
+                                 AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(thirdExpected);
+
+        // Verify the selection position.
+        assertEquals(11, editText.getSelectionStart());
+        assertEquals(11, editText.getSelectionEnd());
+
+        // Make sure there is no next.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(11, editText.getSelectionStart());
+        assertEquals(11, editText.getSelectionEnd());
+
+        // Move to the next word and wait for an event.
+        AccessibilityEvent fourthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getContentDescription().equals(getString(R.string.android_wiki))
+                        && event.getFromIndex() == 8
+                        && event.getToIndex() == 11
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(fourthExpected);
+
+        // Verify the selection position.
+        assertEquals(8, editText.getSelectionStart());
+        assertEquals(8, editText.getSelectionEnd());
+
+        // Move to the next word and wait for an event.
+        AccessibilityEvent fifthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getContentDescription().equals(getString(R.string.android_wiki))
+                        && event.getFromIndex() == 4
+                        && event.getToIndex() == 7
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(fifthExpected);
+
+        // Verify the selection position.
+        assertEquals(4, editText.getSelectionStart());
+        assertEquals(4, editText.getSelectionEnd());
+
+        // Move to the next character and wait for an event.
+        AccessibilityEvent sixthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getContentDescription().equals(getString(R.string.android_wiki))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 3
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(sixthExpected);
+
+        // Verify the selection position.
+        assertEquals(0, editText.getSelectionStart());
+        assertEquals(0, editText.getSelectionEnd());
+
+        // Make sure there is no previous.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(0, editText.getSelectionStart());
+        assertEquals(0, editText.getSelectionEnd());
+    }
+
+    @MediumTest
+    public void testActionNextAndPreviousAtGranularityWordOverTextExtend() throws Exception {
+        final EditText editText = (EditText) getActivity().findViewById(R.id.edit);
+
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.setText(getString(R.string.foo_bar_baz));
+                Selection.removeSelection(editText.getText());
+            }
+        });
+
+        final AccessibilityNodeInfo text = getInstrumentation().getUiAutomation()
+               .getRootInActiveWindow().findAccessibilityNodeInfosByText(getString(
+                       R.string.foo_bar_baz)).get(0);
+
+        final int granularities = text.getMovementGranularities();
+        assertEquals(granularities, AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+
+        final Bundle arguments = new Bundle();
+        arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
+                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+        arguments.putBoolean(AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN, true);
+
+        // Move to the next word and wait for an event.
+        AccessibilityEvent firstExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 3
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(firstExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(3, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next word and wait for an event.
+        AccessibilityEvent secondExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getFromIndex() == 4
+                        && event.getToIndex() == 7
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(secondExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(7, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next word and wait for an event.
+        AccessibilityEvent thirdExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getFromIndex() == 8
+                        && event.getToIndex() == 11
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(thirdExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(11, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no next.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Move to the previous word and wait for an event.
+        AccessibilityEvent fourthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getFromIndex() == 8
+                        && event.getToIndex() == 11
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(fourthExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(8, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous word and wait for an event.
+        AccessibilityEvent fifthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getFromIndex() == 4
+                        && event.getToIndex() == 7
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(fifthExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(4, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous character and wait for an event.
+        AccessibilityEvent sixthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 3
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(sixthExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(0, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no previous.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(0, Selection.getSelectionEnd(editText.getText()));
+
+        // Focus the view so we can change selection.
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.setFocusable(true);
+                editText.requestFocus();
+            }
+        });
+
+        // Put selection at the end of the text.
+        Bundle setSelectionArgs = new Bundle();
+        setSelectionArgs.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 11);
+        setSelectionArgs.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT, 11);
+        assertTrue(text.performAction(
+                AccessibilityNodeInfo.ACTION_SET_SELECTION, setSelectionArgs));
+
+        // Verify the selection position.
+        assertEquals(11, Selection.getSelectionStart(editText.getText()));
+        assertEquals(11, Selection.getSelectionEnd(editText.getText()));
+
+        // Unfocus the view so we can get rid of the soft-keyboard.
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.clearFocus();
+                editText.setFocusable(false);
+            }
+        });
+
+        // Move to the previous word and wait for an event.
+        AccessibilityEvent seventhExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getFromIndex() == 8
+                        && event.getToIndex() == 11
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(seventhExpected);
+
+        // Verify the selection position.
+        assertEquals(11, Selection.getSelectionStart(editText.getText()));
+        assertEquals(8, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous word and wait for an event.
+        AccessibilityEvent eightExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getFromIndex() == 4
+                        && event.getToIndex() == 7
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(eightExpected);
+
+        // Verify the selection position.
+        assertEquals(11, Selection.getSelectionStart(editText.getText()));
+        assertEquals(4, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous character and wait for an event.
+        AccessibilityEvent ninethExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 3
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(ninethExpected);
+
+        // Verify the selection position.
+        assertEquals(11, Selection.getSelectionStart(editText.getText()));
+        assertEquals(0, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no previous.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(11, Selection.getSelectionStart(editText.getText()));
+        assertEquals(0, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next word and wait for an event.
+        AccessibilityEvent tenthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 3
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(tenthExpected);
+
+        // Verify the selection position.
+        assertEquals(11, Selection.getSelectionStart(editText.getText()));
+        assertEquals(3, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next word and wait for an event.
+        AccessibilityEvent eleventhExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getFromIndex() == 4
+                        && event.getToIndex() == 7
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(eleventhExpected);
+
+        // Verify the selection position.
+        assertEquals(11, Selection.getSelectionStart(editText.getText()));
+        assertEquals(7, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next word and wait for an event.
+        AccessibilityEvent twelvthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(R.string.foo_bar_baz))
+                        && event.getFromIndex() == 8
+                        && event.getToIndex() == 11
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(twelvthExpected);
+
+        // Verify the selection position.
+        assertEquals(11, Selection.getSelectionStart(editText.getText()));
+        assertEquals(11, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no next.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(11, Selection.getSelectionStart(editText.getText()));
+        assertEquals(11, Selection.getSelectionEnd(editText.getText()));
+    }
+
+    @MediumTest
     public void testActionNextAndPreviousAtGranularityLineOverText() throws Exception {
         final TextView textView = (TextView) getActivity().findViewById(R.id.text);
 
@@ -913,8 +2221,9 @@
             }
         });
 
-        final AccessibilityNodeInfo text = getInteractionBridge()
-               .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.android_wiki_short));
+        final AccessibilityNodeInfo text = getInstrumentation().getUiAutomation()
+               .getRootInActiveWindow().findAccessibilityNodeInfosByText(getString(
+                       R.string.android_wiki_short)).get(0);
 
         final int granularities = text.getMovementGranularities();
         assertEquals(granularities, AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER
@@ -928,21 +2237,21 @@
                 AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
 
         // Move to the next line and wait for an event.
-        AccessibilityEvent firstExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent firstExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
@@ -951,7 +2260,7 @@
                         && event.getFromIndex() == 0
                         && event.getToIndex() == 25
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -963,21 +2272,21 @@
         assertEquals(25, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the next line and wait for an event.
-        AccessibilityEvent secondExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent secondExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
@@ -986,7 +2295,7 @@
                         && event.getFromIndex() == 25
                         && event.getToIndex() == 53
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+                                 AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -998,21 +2307,21 @@
         assertEquals(53, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the next line and wait for an event.
-        AccessibilityEvent thirdExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent thirdExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
@@ -1021,7 +2330,7 @@
                         && event.getFromIndex() == 53
                         && event.getToIndex() == 60
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -1033,7 +2342,7 @@
         assertEquals(60, Selection.getSelectionEnd(textView.getText()));
 
         // Make sure there is no next.
-        assertFalse(getInteractionBridge().performAction(text,
+        assertFalse(text.performAction(
                 AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments));
 
         // Verify the selection position.
@@ -1041,21 +2350,21 @@
         assertEquals(60, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the previous line and wait for an event.
-        AccessibilityEvent fourthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent fourthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
@@ -1064,7 +2373,7 @@
                         && event.getFromIndex() == 53
                         && event.getToIndex() == 60
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -1076,21 +2385,21 @@
         assertEquals(53, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the previous line and wait for an event.
-        AccessibilityEvent fifthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent fifthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
@@ -1099,7 +2408,7 @@
                         && event.getFromIndex() == 25
                         && event.getToIndex() == 53
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -1111,21 +2420,21 @@
         assertEquals(25, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the previous line and wait for an event.
-        AccessibilityEvent sixthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent sixthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(TextView.class.getName())
                         && event.getText().size() > 0
@@ -1134,7 +2443,7 @@
                         && event.getFromIndex() == 0
                         && event.getToIndex() == 25
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -1146,7 +2455,7 @@
         assertEquals(0, Selection.getSelectionEnd(textView.getText()));
 
         // Make sure there is no previous.
-        assertFalse(getInteractionBridge().performAction(text,
+        assertFalse(text.performAction(
                 AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
 
         // Verify the selection position.
@@ -1155,6 +2464,500 @@
     }
 
     @MediumTest
+    public void testActionNextAndPreviousAtGranularityLineOverTextExtend() throws Exception {
+        final EditText editText = (EditText) getActivity().findViewById(R.id.edit);
+
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.setText(getString(R.string.android_wiki_short));
+                Selection.removeSelection(editText.getText());
+            }
+        });
+
+        final AccessibilityNodeInfo text = getInstrumentation().getUiAutomation()
+               .getRootInActiveWindow().findAccessibilityNodeInfosByText(getString(
+                       R.string.android_wiki_short)).get(0);
+
+        final int granularities = text.getMovementGranularities();
+        assertEquals(granularities, AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+
+        final Bundle arguments = new Bundle();
+        arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
+                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+        arguments.putBoolean(AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN, true);
+
+        // Move to the next line and wait for an event.
+        AccessibilityEvent firstExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_short))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 19
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(firstExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(19, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next line and wait for an event.
+        AccessibilityEvent secondExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_short))
+                        && event.getFromIndex() == 19
+                        && event.getToIndex() == 35
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(secondExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(35, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next line and wait for an event.
+        AccessibilityEvent thirdExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_short))
+                        && event.getFromIndex() == 35
+                        && event.getToIndex() == 53
+                        && event.getMovementGranularity() ==
+                                 AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(thirdExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(53, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous line and wait for an event.
+        AccessibilityEvent fourthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_short))
+                        && event.getFromIndex() == 35
+                        && event.getToIndex() == 53
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(fourthExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(35, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous line and wait for an event.
+        AccessibilityEvent fifthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_short))
+                        && event.getFromIndex() == 19
+                        && event.getToIndex() == 35
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(fifthExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(19, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous line and wait for an event.
+        AccessibilityEvent sixthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                               AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_short))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 19
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(sixthExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(0, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no previous.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(0, Selection.getSelectionEnd(editText.getText()));
+
+        // Focus the view so we can change selection.
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.setFocusable(true);
+                editText.requestFocus();
+            }
+        });
+
+        // Put selection at the end of the text.
+        Bundle setSelectionArgs = new Bundle();
+        setSelectionArgs.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 53);
+        setSelectionArgs.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT, 53);
+        assertTrue(text.performAction(
+                AccessibilityNodeInfo.ACTION_SET_SELECTION, setSelectionArgs));
+
+        // Verify the selection position.
+        assertEquals(53, Selection.getSelectionStart(editText.getText()));
+        assertEquals(53, Selection.getSelectionEnd(editText.getText()));
+
+        // Unocus the view so we can hide the keyboard.
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.clearFocus();
+                editText.setFocusable(false);
+            }
+        });
+
+        // Move to the previous line and wait for an event.
+        AccessibilityEvent seventhExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_short))
+                        && event.getFromIndex() == 35
+                        && event.getToIndex() == 53
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(seventhExpected);
+
+        // Verify the selection position.
+        assertEquals(53, Selection.getSelectionStart(editText.getText()));
+        assertEquals(35, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous line and wait for an event.
+        AccessibilityEvent eightExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_short))
+                        && event.getFromIndex() == 19
+                        && event.getToIndex() == 35
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(eightExpected);
+
+        // Verify the selection position.
+        assertEquals(53, Selection.getSelectionStart(editText.getText()));
+        assertEquals(19, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous line and wait for an event.
+        AccessibilityEvent ninethExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                               AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_short))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 19
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(ninethExpected);
+
+        // Verify the selection position.
+        assertEquals(53, Selection.getSelectionStart(editText.getText()));
+        assertEquals(0, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no previous.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(53, Selection.getSelectionStart(editText.getText()));
+        assertEquals(0, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next line and wait for an event.
+        AccessibilityEvent tenthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_short))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 19
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(tenthExpected);
+
+        // Verify the selection position.
+        assertEquals(53, Selection.getSelectionStart(editText.getText()));
+        assertEquals(19, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next line and wait for an event.
+        AccessibilityEvent eleventhExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_short))
+                        && event.getFromIndex() == 19
+                        && event.getToIndex() == 35
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(eleventhExpected);
+
+        // Verify the selection position.
+        assertEquals(53, Selection.getSelectionStart(editText.getText()));
+        assertEquals(35, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next line and wait for an event.
+        AccessibilityEvent twelvethExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_short))
+                        && event.getFromIndex() == 35
+                        && event.getToIndex() == 53
+                        && event.getMovementGranularity() ==
+                                 AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(twelvethExpected);
+
+        // Verify the selection position.
+        assertEquals(53, Selection.getSelectionStart(editText.getText()));
+        assertEquals(53, Selection.getSelectionEnd(editText.getText()));
+    }
+
+    @MediumTest
     public void testActionNextAndPreviousAtGranularityPageOverText() throws Exception {
         final EditText editText = (EditText) getActivity().findViewById(R.id.edit);
 
@@ -1166,8 +2969,9 @@
             }
         });
 
-        final AccessibilityNodeInfo text = getInteractionBridge()
-               .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.android_wiki));
+        final AccessibilityNodeInfo text = getInstrumentation().getUiAutomation()
+               .getRootInActiveWindow().findAccessibilityNodeInfosByText(getString(
+                       R.string.android_wiki)).get(0);
 
         final int granularities = text.getMovementGranularities();
         assertEquals(granularities, AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER
@@ -1181,21 +2985,21 @@
                 AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
 
         // Move to the next page and wait for an event.
-        AccessibilityEvent firstExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent firstExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(EditText.class.getName())
                         && event.getText().size() > 0
@@ -1204,7 +3008,7 @@
                         && event.getFromIndex() == 0
                         && event.getToIndex() == 139
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -1216,21 +3020,21 @@
         assertEquals(139, Selection.getSelectionEnd(editText.getText()));
 
         // Move to the next page and wait for an event.
-        AccessibilityEvent secondExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent secondExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(EditText.class.getName())
                         && event.getText().size() > 0
@@ -1239,7 +3043,7 @@
                         && event.getFromIndex() == 139
                         && event.getToIndex() == 285
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -1251,21 +3055,21 @@
         assertEquals(285, Selection.getSelectionEnd(editText.getText()));
 
         // Move to the next page and wait for an event.
-        AccessibilityEvent thirdExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent thirdExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(EditText.class.getName())
                         && event.getText().size() > 0
@@ -1274,7 +3078,7 @@
                         && event.getFromIndex() == 285
                         && event.getToIndex() == 436
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -1286,7 +3090,7 @@
         assertEquals(436, Selection.getSelectionEnd(editText.getText()));
 
         // Make sure there is no next.
-        assertFalse(getInteractionBridge().performAction(text,
+        assertFalse(text.performAction(
                 AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments));
 
         // Verify the selection position.
@@ -1294,21 +3098,21 @@
         assertEquals(436, Selection.getSelectionEnd(editText.getText()));
 
         // Move to the previous page and wait for an event.
-        AccessibilityEvent fourthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent fourthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(EditText.class.getName())
                         && event.getText().size() > 0
@@ -1317,7 +3121,7 @@
                         && event.getFromIndex() == 285
                         && event.getToIndex() == 436
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -1329,21 +3133,21 @@
         assertEquals(285, Selection.getSelectionEnd(editText.getText()));
 
         // Move to the previous page and wait for an event.
-        AccessibilityEvent fifthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent fifthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(EditText.class.getName())
                         && event.getText().size() > 0
@@ -1352,7 +3156,7 @@
                         && event.getFromIndex() == 139
                         && event.getToIndex() == 285
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -1364,21 +3168,21 @@
         assertEquals(139, Selection.getSelectionEnd(editText.getText()));
 
         // Move to the previous page and wait for an event.
-        AccessibilityEvent sixthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent sixthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(EditText.class.getName())
                         && event.getText().size() > 0
@@ -1387,7 +3191,7 @@
                         && event.getFromIndex() == 0
                         && event.getToIndex() == 139
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -1399,7 +3203,7 @@
         assertEquals(0, Selection.getSelectionEnd(editText.getText()));
 
         // Make sure there is no previous.
-        assertFalse(getInteractionBridge().performAction(text,
+        assertFalse(text.performAction(
                 AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
 
         // Verify the selection position.
@@ -1408,6 +3212,504 @@
     }
 
     @MediumTest
+    public void testActionNextAndPreviousAtGranularityPageOverTextExtend() throws Exception {
+        final EditText editText = (EditText) getActivity().findViewById(R.id.edit);
+
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.setText(getString(R.string.android_wiki));
+                Selection.removeSelection(editText.getText());
+            }
+        });
+
+        final AccessibilityNodeInfo text = getInstrumentation().getUiAutomation()
+               .getRootInActiveWindow().findAccessibilityNodeInfosByText(getString(
+                       R.string.android_wiki)).get(0);
+
+        final int granularities = text.getMovementGranularities();
+        assertEquals(granularities, AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+
+        final Bundle arguments = new Bundle();
+        arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
+                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+        arguments.putBoolean(AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN, true);
+
+        // Move to the next page and wait for an event.
+        AccessibilityEvent firstExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 139
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(firstExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(139, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next page and wait for an event.
+        AccessibilityEvent secondExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki))
+                        && event.getFromIndex() == 139
+                        && event.getToIndex() == 285
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(secondExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(285, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next page and wait for an event.
+        AccessibilityEvent thirdExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki))
+                        && event.getFromIndex() == 285
+                        && event.getToIndex() == 436
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(thirdExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(436, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no next.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Move to the previous page and wait for an event.
+        AccessibilityEvent fourthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                 AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki))
+                        && event.getFromIndex() == 285
+                        && event.getToIndex() == 436
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(fourthExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(285, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous page and wait for an event.
+        AccessibilityEvent fifthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki))
+                        && event.getFromIndex() == 139
+                        && event.getToIndex() == 285
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(fifthExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(139, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous page and wait for an event.
+        AccessibilityEvent sixthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 139
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(sixthExpected);
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(0, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no previous.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(0, Selection.getSelectionStart(editText.getText()));
+        assertEquals(0, Selection.getSelectionEnd(editText.getText()));
+
+        // Focus the view so we can change selection.
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.setFocusable(true);
+                editText.requestFocus();
+            }
+        });
+
+        // Put selection at the end of the text.
+        Bundle setSelectionArgs = new Bundle();
+        setSelectionArgs.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 436);
+        setSelectionArgs.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT, 436);
+        assertTrue(text.performAction(
+                AccessibilityNodeInfo.ACTION_SET_SELECTION, setSelectionArgs));
+
+        // Verify the selection position.
+        assertEquals(436, Selection.getSelectionStart(editText.getText()));
+        assertEquals(436, Selection.getSelectionEnd(editText.getText()));
+
+        // Unfocus the view so we can hide the soft-keyboard.
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.clearFocus();
+                editText.setFocusable(false);
+            }
+        });
+
+        // Move to the previous page and wait for an event.
+        AccessibilityEvent seventhExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                 AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki))
+                        && event.getFromIndex() == 285
+                        && event.getToIndex() == 436
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(seventhExpected);
+
+        // Verify the selection position.
+        assertEquals(436, Selection.getSelectionStart(editText.getText()));
+        assertEquals(285, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous page and wait for an event.
+        AccessibilityEvent eightExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki))
+                        && event.getFromIndex() == 139
+                        && event.getToIndex() == 285
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(eightExpected);
+
+        // Verify the selection position.
+        assertEquals(436, Selection.getSelectionStart(editText.getText()));
+        assertEquals(139, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous page and wait for an event.
+        AccessibilityEvent ninethExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 139
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(ninethExpected);
+
+        // Verify the selection position.
+        assertEquals(436, Selection.getSelectionStart(editText.getText()));
+        assertEquals(0, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no previous.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(436, Selection.getSelectionStart(editText.getText()));
+        assertEquals(0, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next page and wait for an event.
+        AccessibilityEvent tenthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki))
+                        && event.getFromIndex() == 0
+                        && event.getToIndex() == 139
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(tenthExpected);
+
+        // Verify the selection position.
+        assertEquals(436, Selection.getSelectionStart(editText.getText()));
+        assertEquals(139, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next page and wait for an event.
+        AccessibilityEvent eleventhExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki))
+                        && event.getFromIndex() == 139
+                        && event.getToIndex() == 285
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(eleventhExpected);
+
+        // Verify the selection position.
+        assertEquals(436, Selection.getSelectionStart(editText.getText()));
+        assertEquals(285, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next page and wait for an event.
+        AccessibilityEvent twelvethExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki))
+                        && event.getFromIndex() == 285
+                        && event.getToIndex() == 436
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(twelvethExpected);
+
+        // Verify the selection position.
+        assertEquals(436, Selection.getSelectionStart(editText.getText()));
+        assertEquals(436, Selection.getSelectionEnd(editText.getText()));
+    }
+
+    @MediumTest
     public void testActionNextAndPreviousAtGranularityParagraphOverText() throws Exception {
         final TextView textView = (TextView) getActivity().findViewById(R.id.edit);
 
@@ -1418,8 +3720,9 @@
             }
         });
 
-        final AccessibilityNodeInfo text = getInteractionBridge()
-               .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.android_wiki_short));
+        final AccessibilityNodeInfo text = getInstrumentation().getUiAutomation()
+               .getRootInActiveWindow().findAccessibilityNodeInfosByText(getString(
+                       R.string.android_wiki_short)).get(0);
 
         final int granularities = text.getMovementGranularities();
         assertEquals(granularities, AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER
@@ -1433,21 +3736,21 @@
                 AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
 
         // Move to the next paragraph and wait for an event.
-        AccessibilityEvent firstExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent firstExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(EditText.class.getName())
                         && event.getText().size() > 0
@@ -1455,8 +3758,8 @@
                                 R.string.android_wiki_paragraphs))
                         && event.getFromIndex() == 2
                         && event.getToIndex() == 104
-                        && event.getMovementGranularity()
-                            == AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+                        && event.getMovementGranularity() ==
+                                 AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -1468,21 +3771,21 @@
         assertEquals(104, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the next paragraph and wait for an event.
-        AccessibilityEvent secondExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent secondExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                 AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(EditText.class.getName())
                         && event.getText().size() > 0
@@ -1491,7 +3794,7 @@
                         && event.getFromIndex() == 106
                         && event.getToIndex() == 267
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -1503,21 +3806,21 @@
         assertEquals(267, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the next paragraph and wait for an event.
-        AccessibilityEvent thirdExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent thirdExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(EditText.class.getName())
                         && event.getText().size() > 0
@@ -1526,7 +3829,7 @@
                         && event.getFromIndex() == 268
                         && event.getToIndex() == 582
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -1538,7 +3841,7 @@
         assertEquals(582, Selection.getSelectionEnd(textView.getText()));
 
         // Make sure there is no next.
-        assertFalse(getInteractionBridge().performAction(text,
+        assertFalse(text.performAction(
                 AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments));
 
         // Verify the selection position.
@@ -1546,21 +3849,21 @@
         assertEquals(582, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the previous paragraph and wait for an event.
-        AccessibilityEvent fourthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent fourthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(EditText.class.getName())
                         && event.getText().size() > 0
@@ -1569,7 +3872,7 @@
                         && event.getFromIndex() == 268
                         && event.getToIndex() == 582
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+                                 AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -1581,21 +3884,21 @@
         assertEquals(268, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the previous paragraph and wait for an event.
-        AccessibilityEvent fifthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent fifthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(EditText.class.getName())
                         && event.getText().size() > 0
@@ -1604,7 +3907,7 @@
                         && event.getFromIndex() == 106
                         && event.getToIndex() == 267
                         && event.getMovementGranularity() ==
-                            AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -1616,21 +3919,21 @@
         assertEquals(106, Selection.getSelectionEnd(textView.getText()));
 
         // Move to the previous paragraph and wait for an event.
-        AccessibilityEvent sixthExpected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent sixthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(text,
+                text.performAction(
                         AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return
                 (event.getEventType() ==
                     AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
                         && event.getAction() ==
-                            AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
                         && event.getPackageName().equals(getActivity().getPackageName())
                         && event.getClassName().equals(EditText.class.getName())
                         && event.getText().size() > 0
@@ -1638,8 +3941,8 @@
                                 R.string.android_wiki_paragraphs))
                         && event.getFromIndex() == 2
                         && event.getToIndex() == 104
-                        && event.getMovementGranularity()
-                                == AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
             }
         }, TIMEOUT_ASYNC_PROCESSING);
 
@@ -1651,11 +3954,672 @@
         assertEquals(2, Selection.getSelectionEnd(textView.getText()));
 
         // Make sure there is no previous.
-        assertFalse(getInteractionBridge().performAction(text,
+        assertFalse(text.performAction(
                 AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
 
         // Verify the selection position.
         assertEquals(2, Selection.getSelectionStart(textView.getText()));
         assertEquals(2, Selection.getSelectionEnd(textView.getText()));
     }
+
+    @MediumTest
+    public void testActionNextAndPreviousAtGranularityParagraphOverTextExtend() throws Exception {
+        final EditText editText = (EditText) getActivity().findViewById(R.id.edit);
+
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.setText(getString(R.string.android_wiki_paragraphs));
+                Selection.removeSelection(editText.getText());
+            }
+        });
+
+        final AccessibilityNodeInfo text = getInstrumentation().getUiAutomation()
+               .getRootInActiveWindow().findAccessibilityNodeInfosByText(getString(
+                       R.string.android_wiki_short)).get(0);
+
+        final int granularities = text.getMovementGranularities();
+        assertEquals(granularities, AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH
+                | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE);
+
+        final Bundle arguments = new Bundle();
+        arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
+                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+        arguments.putBoolean(AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN, true);
+
+        // Move to the next paragraph and wait for an event.
+        AccessibilityEvent firstExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_paragraphs))
+                        && event.getFromIndex() == 2
+                        && event.getToIndex() == 104
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(firstExpected);
+
+        // Verify the selection position.
+        assertEquals(2, Selection.getSelectionStart(editText.getText()));
+        assertEquals(104, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next paragraph and wait for an event.
+        AccessibilityEvent secondExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_paragraphs))
+                        && event.getFromIndex() == 106
+                        && event.getToIndex() == 267
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(secondExpected);
+
+        // Verify the selection position.
+        assertEquals(2, Selection.getSelectionStart(editText.getText()));
+        assertEquals(267, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next paragraph and wait for an event.
+        AccessibilityEvent thirdExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_paragraphs))
+                        && event.getFromIndex() == 268
+                        && event.getToIndex() == 582
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(thirdExpected);
+
+        // Verify the selection position.
+        assertEquals(2, Selection.getSelectionStart(editText.getText()));
+        assertEquals(582, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no next.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(2, Selection.getSelectionStart(editText.getText()));
+        assertEquals(582, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous paragraph and wait for an event.
+        AccessibilityEvent fourthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_paragraphs))
+                        && event.getFromIndex() == 268
+                        && event.getToIndex() == 582
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(fourthExpected);
+
+        // Verify the selection position.
+        assertEquals(2, Selection.getSelectionStart(editText.getText()));
+        assertEquals(268, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous paragraph and wait for an event.
+        AccessibilityEvent fifthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_paragraphs))
+                        && event.getFromIndex() == 106
+                        && event.getToIndex() == 267
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(fifthExpected);
+
+        // Verify the selection position.
+        assertEquals(2, Selection.getSelectionStart(editText.getText()));
+        assertEquals(106, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous paragraph and wait for an event.
+        AccessibilityEvent sixthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_paragraphs))
+                        && event.getFromIndex() == 2
+                        && event.getToIndex() == 104
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(sixthExpected);
+
+        // Verify the selection position.
+        assertEquals(2, Selection.getSelectionStart(editText.getText()));
+        assertEquals(2, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no previous.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(2, Selection.getSelectionStart(editText.getText()));
+        assertEquals(2, Selection.getSelectionEnd(editText.getText()));
+
+        // Focus the view so we can change selection.
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.setFocusable(true);
+                editText.requestFocus();
+            }
+        });
+
+        // Put selection at the end of the text.
+        Bundle setSelectionArgs = new Bundle();
+        setSelectionArgs.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 582);
+        setSelectionArgs.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT, 582);
+        assertTrue(text.performAction(
+                AccessibilityNodeInfo.ACTION_SET_SELECTION, setSelectionArgs));
+
+        // Verify the selection position.
+        assertEquals(582, Selection.getSelectionStart(editText.getText()));
+        assertEquals(582, Selection.getSelectionEnd(editText.getText()));
+
+        // Unfocus the view so we can get rid of the soft-keyboard.
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.clearFocus();
+                editText.setFocusable(false);
+            }
+        });
+
+        // Move to the previous paragraph and wait for an event.
+        AccessibilityEvent seventhExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_paragraphs))
+                        && event.getFromIndex() == 268
+                        && event.getToIndex() == 582
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(seventhExpected);
+
+        // Verify the selection position.
+        assertEquals(582, Selection.getSelectionStart(editText.getText()));
+        assertEquals(268, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous paragraph and wait for an event.
+        AccessibilityEvent eightExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_paragraphs))
+                        && event.getFromIndex() == 106
+                        && event.getToIndex() == 267
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(eightExpected);
+
+        // Verify the selection position.
+        assertEquals(582, Selection.getSelectionStart(editText.getText()));
+        assertEquals(106, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the previous paragraph and wait for an event.
+        AccessibilityEvent ninethExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_paragraphs))
+                        && event.getFromIndex() == 2
+                        && event.getToIndex() == 104
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(ninethExpected);
+
+        // Verify the selection position.
+        assertEquals(582, Selection.getSelectionStart(editText.getText()));
+        assertEquals(2, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no previous.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(582, Selection.getSelectionStart(editText.getText()));
+        assertEquals(2, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next paragraph and wait for an event.
+        AccessibilityEvent tenthExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_paragraphs))
+                        && event.getFromIndex() == 2
+                        && event.getToIndex() == 104
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(tenthExpected);
+
+        // Verify the selection position.
+        assertEquals(582, Selection.getSelectionStart(editText.getText()));
+        assertEquals(104, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next paragraph and wait for an event.
+        AccessibilityEvent eleventhExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_paragraphs))
+                        && event.getFromIndex() == 106
+                        && event.getToIndex() == 267
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(eleventhExpected);
+
+        // Verify the selection position.
+        assertEquals(582, Selection.getSelectionStart(editText.getText()));
+        assertEquals(267, Selection.getSelectionEnd(editText.getText()));
+
+        // Move to the next paragraph and wait for an event.
+        AccessibilityEvent twlevethExpected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                text.performAction(
+                        AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return
+                (event.getEventType() ==
+                    AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY
+                        && event.getAction() ==
+                                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
+                        && event.getPackageName().equals(getActivity().getPackageName())
+                        && event.getClassName().equals(EditText.class.getName())
+                        && event.getText().size() > 0
+                        && event.getText().get(0).toString().equals(getString(
+                                R.string.android_wiki_paragraphs))
+                        && event.getFromIndex() == 268
+                        && event.getToIndex() == 582
+                        && event.getMovementGranularity() ==
+                                AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Make sure we got the expected event.
+        assertNotNull(twlevethExpected);
+
+        // Verify the selection position.
+        assertEquals(582, Selection.getSelectionStart(editText.getText()));
+        assertEquals(582, Selection.getSelectionEnd(editText.getText()));
+
+        // Make sure there is no next.
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments));
+
+        // Verify the selection position.
+        assertEquals(582, Selection.getSelectionStart(editText.getText()));
+        assertEquals(582, Selection.getSelectionEnd(editText.getText()));
+    }
+
+    @MediumTest
+    public void testTextEditingActions() throws Exception {
+        final EditText editText = (EditText) getActivity().findViewById(R.id.edit);
+        final String textContent = getString(R.string.foo_bar_baz);
+
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                editText.setFocusable(true);
+                editText.requestFocus();
+                editText.setText(getString(R.string.foo_bar_baz));
+                Selection.removeSelection(editText.getText());
+            }
+        });
+
+        final AccessibilityNodeInfo text = getInstrumentation().getUiAutomation()
+               .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                       getString(R.string.foo_bar_baz)).get(0);
+
+        // Select all text.
+        Bundle arguments = new Bundle();
+        arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 0);
+        arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT,
+                editText.getText().length());
+        assertTrue(text.performAction(
+                AccessibilityNodeInfo.ACTION_SET_SELECTION, arguments));
+
+        // Copy the selected text.
+        text.performAction( AccessibilityNodeInfo.ACTION_COPY);
+
+        // Set selection at the end.
+        final int textLength = editText.getText().length();
+        // Verify the selection position.
+        assertEquals(textLength, Selection.getSelectionStart(editText.getText()));
+        assertEquals(textLength, Selection.getSelectionEnd(editText.getText()));
+
+        // Paste the selected text.
+        assertTrue(text.performAction(
+                AccessibilityNodeInfo.ACTION_PASTE));
+
+        // Verify the content.
+        assertEquals(editText.getText().toString(), textContent + " " + textContent);
+
+        // Select all text.
+        arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 0);
+        arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT,
+                editText.getText().length());
+        assertTrue(text.performAction(
+                AccessibilityNodeInfo.ACTION_SET_SELECTION, arguments));
+
+        // Cut the selected text.
+        assertTrue(text.performAction(
+                AccessibilityNodeInfo.ACTION_CUT));
+
+        // Verify the content.
+        assertTrue(TextUtils.isEmpty(editText.getText()));
+    }
+
+    public void testSetSelectionInContentDescription() throws Exception {
+        final View view = getActivity().findViewById(R.id.view);
+
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                view.setContentDescription(getString(R.string.foo_bar_baz));
+            }
+        });
+
+        AccessibilityNodeInfo text = getInstrumentation().getUiAutomation()
+               .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                       getString(R.string.foo_bar_baz)).get(0);
+
+        // Set the cursor position.
+        Bundle arguments = new Bundle();
+        arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 4);
+        arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT, 4);
+        assertTrue(text.performAction(
+                AccessibilityNodeInfo.ACTION_SET_SELECTION, arguments));
+
+        // Try and fail to set the selection longer than zero.
+        arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 4);
+        arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT, 5);
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_SET_SELECTION, arguments));
+    }
+
+    public void testSelectionPositionForNonEditableView() throws Exception {
+        final View view = getActivity().findViewById(R.id.view);
+
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                view.setContentDescription(getString(R.string.foo_bar_baz));
+            }
+        });
+
+        final AccessibilityNodeInfo text = getInstrumentation().getUiAutomation()
+               .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                       getString(R.string.foo_bar_baz)).get(0);
+
+        // Check the initial node properties.
+        assertFalse(text.isEditable());
+        assertSame(text.getTextSelectionStart(), -1);
+        assertSame(text.getTextSelectionEnd(), -1);
+
+        // Set the cursor position.
+        getInstrumentation().getUiAutomation().executeAndWaitForEvent(new Runnable() {
+            @Override
+            public void run() {
+                Bundle arguments = new Bundle();
+                arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 4);
+                arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT, 4);
+                assertTrue(text.performAction(
+                        AccessibilityNodeInfo.ACTION_SET_SELECTION, arguments));
+            }
+        }, new UiAutomation.AccessibilityEventFilter() {
+            @Override
+            public boolean accept(AccessibilityEvent event) {
+                return (event.getEventType()
+                        == AccessibilityEvent.TYPE_VIEW_TEXT_SELECTION_CHANGED);
+            }
+        }, TIMEOUT_ASYNC_PROCESSING);
+
+        // Refresh the node.
+        AccessibilityNodeInfo refreshedText = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.foo_bar_baz)).get(0);
+
+        // Check the related node properties.
+        assertFalse(refreshedText.isEditable());
+        assertSame(refreshedText.getTextSelectionStart(), 4);
+        assertSame(refreshedText.getTextSelectionEnd(), 4);
+
+        // Try to set to an invalid cursor position.
+        Bundle arguments = new Bundle();
+        arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 4);
+        arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT, 5);
+        assertFalse(text.performAction(
+                AccessibilityNodeInfo.ACTION_SET_SELECTION, arguments));
+
+        // Refresh the node.
+        refreshedText = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.foo_bar_baz)).get(0);
+
+        // Check the related node properties.
+        assertFalse(refreshedText.isEditable());
+        assertSame(refreshedText.getTextSelectionStart(), 4);
+        assertSame(refreshedText.getTextSelectionEnd(), 4);
+    }
 }
diff --git a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityViewTreeReportingTest.java b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityViewTreeReportingTest.java
index 7f3a03c..9785ab4 100644
--- a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityViewTreeReportingTest.java
+++ b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityViewTreeReportingTest.java
@@ -23,17 +23,6 @@
  * Test cases for testing the accessibility focus APIs exposed to accessibility
  * services. This test checks how the view hierarchy is reported to accessibility
  * services.
- * <p>
- * Note: The accessibility CTS tests are composed of two APKs, one with delegating
- * accessibility service and another with the instrumented activity and test cases.
- * The delegating service is installed and enabled during test execution. It serves
- * as a proxy to the system used by the tests. This indirection is needed since the
- * test runner stops the package before running the tests. Hence, if the accessibility
- * service is in the test package running the tests would break the binding between
- * the service and the system.  The delegating service is in
- * <strong>CtsDelegatingAccessibilityService.apk</strong> whose source is located at
- * <strong>cts/tests/accessibilityservice</strong>.
- * </p>
  */
 public class AccessibilityViewTreeReportingTest
         extends AccessibilityActivityTestCase<AccessibilityViewTreeReportingActivity>{
@@ -44,75 +33,88 @@
 
     @MediumTest
     public void testDescendantsOfNotImportantViewReportedInOrder1() throws Exception {
-        AccessibilityNodeInfo firstFrameLayout = getInteractionBridge()
-            .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.firstFrameLayout));
+        AccessibilityNodeInfo firstFrameLayout = getInstrumentation().getUiAutomation()
+            .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                    getString(R.string.firstFrameLayout)).get(0);
         assertNotNull(firstFrameLayout);
         assertSame(3, firstFrameLayout.getChildCount());
 
         // Check if the first child is the right one.
-        AccessibilityNodeInfo firstTextView = getInteractionBridge()
-            .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.firstTextView));
-        assertEquals(firstTextView, getInteractionBridge().getChild(firstFrameLayout, 0));
+        AccessibilityNodeInfo firstTextView = getInstrumentation().getUiAutomation()
+            .getRootInActiveWindow().findAccessibilityNodeInfosByText(getString(
+                    R.string.firstTextView)).get(0);
+        assertEquals(firstTextView, firstFrameLayout.getChild(0));
 
         // Check if the second child is the right one.
-        AccessibilityNodeInfo firstEditText = getInteractionBridge()
-            .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.firstEditText));
-        assertEquals(firstEditText, getInteractionBridge().getChild(firstFrameLayout, 1));
+        AccessibilityNodeInfo firstEditText = getInstrumentation().getUiAutomation()
+            .getRootInActiveWindow().findAccessibilityNodeInfosByText(getString(
+                    R.string.firstEditText)).get(0);
+        assertEquals(firstEditText, firstFrameLayout.getChild(1));
 
         // Check if the third child is the right one.
-        AccessibilityNodeInfo firstButton = getInteractionBridge()
-            .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.firstButton));
-        assertEquals(firstButton, getInteractionBridge().getChild(firstFrameLayout, 2));
+        AccessibilityNodeInfo firstButton = getInstrumentation().getUiAutomation()
+            .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                    getString(R.string.firstButton)).get(0);
+        assertEquals(firstButton, firstFrameLayout.getChild(2));
     }
 
     @MediumTest
     public void testDescendantsOfNotImportantViewReportedInOrder2() throws Exception {
-        AccessibilityNodeInfo secondFrameLayout = getInteractionBridge()
-            .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.secondFrameLayout));
+        AccessibilityNodeInfo secondFrameLayout = getInstrumentation().getUiAutomation()
+            .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                    getString(R.string.secondFrameLayout)).get(0);
         assertNotNull(secondFrameLayout);
         assertSame(3, secondFrameLayout.getChildCount());
 
         // Check if the first child is the right one.
-        AccessibilityNodeInfo secondTextView = getInteractionBridge()
-            .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.secondTextView));
-        assertEquals(secondTextView, getInteractionBridge().getChild(secondFrameLayout, 0));
+        AccessibilityNodeInfo secondTextView = getInstrumentation().getUiAutomation()
+            .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                    getString(R.string.secondTextView)).get(0);
+        assertEquals(secondTextView, secondFrameLayout.getChild(0));
 
         // Check if the second child is the right one.
-        AccessibilityNodeInfo secondEditText = getInteractionBridge()
-            .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.secondEditText));
-        assertEquals(secondEditText, getInteractionBridge().getChild(secondFrameLayout, 1));
+        AccessibilityNodeInfo secondEditText = getInstrumentation().getUiAutomation()
+            .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                    getString(R.string.secondEditText)).get(0);
+        assertEquals(secondEditText, secondFrameLayout.getChild(1));
 
         // Check if the third child is the right one.
-        AccessibilityNodeInfo secondButton = getInteractionBridge()
-            .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.secondButton));
-        assertEquals(secondButton, getInteractionBridge().getChild(secondFrameLayout, 2));
+        AccessibilityNodeInfo secondButton = getInstrumentation().getUiAutomation()
+            .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                    getString(R.string.secondButton)).get(0);
+        assertEquals(secondButton, secondFrameLayout.getChild(2));
     }
 
     @MediumTest
     public void testDescendantsOfNotImportantViewReportedInOrder3() throws Exception {
-        AccessibilityNodeInfo rootLinearLayout = getInteractionBridge()
-            .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.rootLinearLayout));
+        AccessibilityNodeInfo rootLinearLayout = getInstrumentation().getUiAutomation()
+            .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                    getString(R.string.rootLinearLayout)).get(0);
         assertNotNull(rootLinearLayout);
         assertSame(4, rootLinearLayout.getChildCount());
 
         // Check if the first child is the right one.
-        AccessibilityNodeInfo firstFrameLayout = getInteractionBridge()
-            .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.firstFrameLayout));
-        assertEquals(firstFrameLayout, getInteractionBridge().getChild(rootLinearLayout, 0));
+        AccessibilityNodeInfo firstFrameLayout = getInstrumentation().getUiAutomation()
+            .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                    getString(R.string.firstFrameLayout)).get(0);
+        assertEquals(firstFrameLayout, rootLinearLayout.getChild(0));
 
         // Check if the second child is the right one.
-        AccessibilityNodeInfo secondTextView = getInteractionBridge()
-            .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.secondTextView));
-        assertEquals(secondTextView, getInteractionBridge().getChild(rootLinearLayout, 1));
+        AccessibilityNodeInfo secondTextView = getInstrumentation().getUiAutomation()
+            .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                    getString(R.string.secondTextView)).get(0);
+        assertEquals(secondTextView, rootLinearLayout.getChild(1));
 
         // Check if the third child is the right one.
-        AccessibilityNodeInfo secondEditText = getInteractionBridge()
-            .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.secondEditText));
-        assertEquals(secondEditText, getInteractionBridge().getChild(rootLinearLayout, 2));
+        AccessibilityNodeInfo secondEditText = getInstrumentation().getUiAutomation()
+            .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                    getString(R.string.secondEditText)).get(0);
+        assertEquals(secondEditText, rootLinearLayout.getChild(2));
 
         // Check if the fourth child is the right one.
-        AccessibilityNodeInfo secondButton = getInteractionBridge()
-            .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.secondButton));
-        assertEquals(secondButton, getInteractionBridge().getChild(rootLinearLayout, 3));
+        AccessibilityNodeInfo secondButton = getInstrumentation().getUiAutomation()
+            .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                    getString(R.string.secondButton)).get(0);
+        assertEquals(secondButton, rootLinearLayout.getChild(3));
     }
 }
diff --git a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityWindowQueryTest.java b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityWindowQueryTest.java
index 2b6dab4..0ea9a7f 100644
--- a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityWindowQueryTest.java
+++ b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityWindowQueryTest.java
@@ -24,6 +24,8 @@
 import static android.view.accessibility.AccessibilityNodeInfo.ACTION_SELECT;
 
 import android.accessibilityservice.AccessibilityService;
+import android.accessibilityservice.AccessibilityServiceInfo;
+import android.app.UiAutomation;
 import android.graphics.Rect;
 import android.os.SystemClock;
 import android.test.suitebuilder.annotation.MediumTest;
@@ -41,17 +43,6 @@
  * Test cases for testing the accessibility APIs for querying of the screen content.
  * These APIs allow exploring the screen and requesting an action to be performed
  * on a given view from an AccessiiblityService.
- * <p>
- * Note: The accessibility CTS tests are composed of two APKs, one with delegating
- * accessibility service and another with the instrumented activity and test cases.
- * The delegating service is installed and enabled during test execution. It serves
- * as a proxy to the system used by the tests. This indirection is needed since the
- * test runner stops the package before running the tests. Hence, if the accessibility
- * service is in the test package running the tests would break the binding between
- * the service and the system.  The delegating service is in
- * <strong>CtsDelegatingAccessibilityService.apk</strong> whose source is located at
- * <strong>cts/tests/accessibilityservice</strong>.
- * </p>
  */
 public class AccessibilityWindowQueryTest
         extends AccessibilityActivityTestCase<AccessibilityWindowQueryActivity> {
@@ -63,23 +54,26 @@
     @MediumTest
     public void testFindByText() throws Exception {
         // find a view by text
-        List<AccessibilityNodeInfo> buttons =
-            getInteractionBridge().findAccessibilityNodeInfosByText("butto");
+        List<AccessibilityNodeInfo> buttons = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText("butto");
         assertEquals(9, buttons.size());
     }
 
     @MediumTest
     public void testFindByContentDescription() throws Exception {
         // find a view by text
-        AccessibilityNodeInfo button = getInteractionBridge()
-                .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.contentDescription));
+        AccessibilityNodeInfo button = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.contentDescription)).get(0);
         assertNotNull(button);
     }
 
     @MediumTest
     public void testTraverseWindow() throws Exception {
         try {
-            getInteractionBridge().setRegardViewsNotImportantForAccessibility(true);
+            AccessibilityServiceInfo info = getInstrumentation().getUiAutomation().getServiceInfo();
+            info.flags |= AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
+            getInstrumentation().getUiAutomation().setServiceInfo(info);
 
             // make list of expected nodes
             List<String> classNameAndTextList = new ArrayList<String>();
@@ -101,7 +95,7 @@
             classNameAndTextList.add("android.widget.ButtonButton9");
 
             Queue<AccessibilityNodeInfo> fringe = new LinkedList<AccessibilityNodeInfo>();
-            fringe.add(getInteractionBridge().getRootInActiveWindow());
+            fringe.add(getInstrumentation().getUiAutomation().getRootInActiveWindow());
 
             // do a BFS traversal and check nodes
             while (!fringe.isEmpty()) {
@@ -117,111 +111,118 @@
 
                 final int childCount = current.getChildCount();
                 for (int i = 0; i < childCount; i++) {
-                    AccessibilityNodeInfo child = getInteractionBridge().getChild(current, i);
+                    AccessibilityNodeInfo child = current.getChild(i);
                     fringe.add(child);
                 }
             }
         } finally {
-            getInteractionBridge().setRegardViewsNotImportantForAccessibility(false);
+            AccessibilityServiceInfo info = getInstrumentation().getUiAutomation().getServiceInfo();
+            info.flags &= ~AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
+            getInstrumentation().getUiAutomation().setServiceInfo(info);
         }
     }
 
     @MediumTest
     public void testPerformActionFocus() throws Exception {
         // find a view and make sure it is not focused
-        AccessibilityNodeInfo button = getInteractionBridge()
-                .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.button5));
+        AccessibilityNodeInfo button = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.button5)).get(0);
         assertFalse(button.isFocused());
 
         // focus the view
-        assertTrue(getInteractionBridge().performAction(button, ACTION_FOCUS));
+        assertTrue(button.performAction(ACTION_FOCUS));
 
         // find the view again and make sure it is focused
-        button = getInteractionBridge().findAccessibilityNodeInfoByTextFromRoot(
-                getString(R.string.button5));
+        button = getInstrumentation().getUiAutomation().getRootInActiveWindow()
+                .findAccessibilityNodeInfosByText(getString(R.string.button5)).get(0);
         assertTrue(button.isFocused());
     }
 
     @MediumTest
     public void testPerformActionClearFocus() throws Exception {
         // find a view and make sure it is not focused
-        AccessibilityNodeInfo button = getInteractionBridge()
-                .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.button5));
+        AccessibilityNodeInfo button = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.button5)).get(0);
         assertFalse(button.isFocused());
 
         // focus the view
-        assertTrue(getInteractionBridge().performAction(button, ACTION_FOCUS));
+        assertTrue(button.performAction(ACTION_FOCUS));
 
         // find the view again and make sure it is focused
-        button = getInteractionBridge().findAccessibilityNodeInfoByTextFromRoot(
-                getString(R.string.button5));
+        button = getInstrumentation().getUiAutomation().getRootInActiveWindow()
+                .findAccessibilityNodeInfosByText(getString(R.string.button5)).get(0);
         assertTrue(button.isFocused());
 
         // unfocus the view
-        assertTrue(getInteractionBridge().performAction(button, ACTION_CLEAR_FOCUS));
+        assertTrue(button.performAction(ACTION_CLEAR_FOCUS));
 
         // find the view again and make sure it is not focused
-        button = getInteractionBridge().findAccessibilityNodeInfoByTextFromRoot(getString(
-                R.string.button5));
+        button = getInstrumentation().getUiAutomation().getRootInActiveWindow()
+                .findAccessibilityNodeInfosByText(getString(R.string.button5)).get(0);
         assertFalse(button.isFocused());
     }
 
     @MediumTest
     public void testPerformActionSelect() throws Exception {
         // find a view and make sure it is not selected
-        AccessibilityNodeInfo button = getInteractionBridge()
-                .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.button5));
+        AccessibilityNodeInfo button = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.button5)).get(0);
         assertFalse(button.isSelected());
 
         // select the view
-        assertTrue(getInteractionBridge().performAction(button, ACTION_SELECT));
+        assertTrue(button.performAction(ACTION_SELECT));
 
         // find the view again and make sure it is selected
-        button = getInteractionBridge().findAccessibilityNodeInfoByTextFromRoot(
-                getString(R.string.button5));
+        button = getInstrumentation().getUiAutomation().getRootInActiveWindow()
+                .findAccessibilityNodeInfosByText(getString(R.string.button5)).get(0);
         assertTrue(button.isSelected());
     }
 
     @MediumTest
     public void testPerformActionClearSelection() throws Exception {
         // find a view and make sure it is not selected
-        AccessibilityNodeInfo button = getInteractionBridge()
-                .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.button5));
+        AccessibilityNodeInfo button = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.button5)).get(0);
         assertFalse(button.isSelected());
 
         // select the view
-        assertTrue(getInteractionBridge().performAction(button, ACTION_SELECT));
+        assertTrue(button.performAction(ACTION_SELECT));
 
         // find the view again and make sure it is selected
-        button = getInteractionBridge().findAccessibilityNodeInfoByTextFromRoot(
-                getString(R.string.button5));
+        button = getInstrumentation().getUiAutomation().getRootInActiveWindow()
+                .findAccessibilityNodeInfosByText(getString(R.string.button5)).get(0);
 
         assertTrue(button.isSelected());
 
         // unselect the view
-        assertTrue(getInteractionBridge().performAction(button, ACTION_CLEAR_SELECTION));
+        assertTrue(button.performAction(ACTION_CLEAR_SELECTION));
 
         // find the view again and make sure it is not selected
-        button = getInteractionBridge().findAccessibilityNodeInfoByTextFromRoot(
-                getString(R.string.button5));
+        button = getInstrumentation().getUiAutomation().getRootInActiveWindow()
+                .findAccessibilityNodeInfosByText(getString(R.string.button5)).get(0);
         assertFalse(button.isSelected());
     }
 
     @MediumTest
     public void testPerformActionClick() throws Exception {
         // find a view and make sure it is not selected
-        final AccessibilityNodeInfo button = getInteractionBridge()
-                .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.button5));
+        final AccessibilityNodeInfo button = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.button5)).get(0);
         assertFalse(button.isSelected());
 
         // Make an action and wait for an event.
-        AccessibilityEvent expected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent expected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(button, ACTION_CLICK);
+                button.performAction(ACTION_CLICK);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return (event.getEventType() == AccessibilityEvent.TYPE_VIEW_CLICKED);
@@ -236,18 +237,19 @@
     @MediumTest
     public void testPerformActionLongClick() throws Exception {
         // find a view and make sure it is not selected
-        final AccessibilityNodeInfo button = getInteractionBridge()
-                .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.button5));
+        final AccessibilityNodeInfo button = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.button5)).get(0);
         assertFalse(button.isSelected());
 
         // Make an action and wait for an event.
-        AccessibilityEvent expected = getInteractionBridge()
-                .executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+        AccessibilityEvent expected = getInstrumentation().getUiAutomation()
+                .executeAndWaitForEvent(new Runnable() {
             @Override
             public void run() {
-                getInteractionBridge().performAction(button, ACTION_LONG_CLICK);
+                button.performAction(ACTION_LONG_CLICK);
             }
-        }, new AccessibilityEventFilter() {
+        }, new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return (event.getEventType() == AccessibilityEvent.TYPE_VIEW_LONG_CLICKED);
@@ -262,21 +264,21 @@
     @MediumTest
     public void testGetEventSource() throws Exception {
         // find a view and make sure it is not focused
-        final AccessibilityNodeInfo button =
-            getInteractionBridge().findAccessibilityNodeInfoByTextFromRoot(
-                    getString(R.string.button5));
+        final AccessibilityNodeInfo button = getInstrumentation().getUiAutomation()
+                .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                        getString(R.string.button5)).get(0);
         assertFalse(button.isSelected());
 
         // focus and wait for the event
-        AccessibilityEvent awaitedEvent =
-            getInteractionBridge().executeCommandAndWaitForAccessibilityEvent(
+        AccessibilityEvent awaitedEvent = getInstrumentation().getUiAutomation()
+            .executeAndWaitForEvent(
                 new Runnable() {
             @Override
             public void run() {
-                assertTrue(getInteractionBridge().performAction(button, ACTION_FOCUS));
+                assertTrue(button.performAction(ACTION_FOCUS));
             }
         },
-                new AccessibilityEventFilter() {
+                new UiAutomation.AccessibilityEventFilter() {
             @Override
             public boolean accept(AccessibilityEvent event) {
                 return (event.getEventType() == AccessibilityEvent.TYPE_VIEW_FOCUSED);
@@ -287,7 +289,7 @@
         assertNotNull(awaitedEvent);
 
         // check that last event source
-        AccessibilityNodeInfo source = getInteractionBridge().getSource(awaitedEvent);
+        AccessibilityNodeInfo source = awaitedEvent.getSource();
         assertNotNull(source);
 
         // bounds
@@ -304,7 +306,7 @@
         // char sequence attributes
         assertEquals(button.getPackageName(), source.getPackageName());
         assertEquals(button.getClassName(), source.getClassName());
-        assertEquals(button.getText(), source.getText());
+        assertEquals(button.getText().toString(), source.getText().toString());
         assertSame(button.getContentDescription(), source.getContentDescription());
 
         // boolean attributes
@@ -321,7 +323,7 @@
 
     @MediumTest
     public void testPerformGlobalActionBack() throws Exception {
-        assertTrue(getInteractionBridge().performGlobalAction(
+        assertTrue(getInstrumentation().getUiAutomation().performGlobalAction(
                 AccessibilityService.GLOBAL_ACTION_BACK));
 
         // Sleep a bit so the UI is settles.
@@ -330,7 +332,7 @@
 
     @MediumTest
     public void testPerformGlobalActionHome() throws Exception {
-        assertTrue(getInteractionBridge().performGlobalAction(
+        assertTrue(getInstrumentation().getUiAutomation().performGlobalAction(
                 AccessibilityService.GLOBAL_ACTION_HOME));
 
         // Sleep a bit so the UI is settles.
@@ -340,14 +342,14 @@
     @MediumTest
     public void testPerformGlobalActionRecents() throws Exception {
         // Check whether the action succeeded.
-        assertTrue(getInteractionBridge().performGlobalAction(
+        assertTrue(getInstrumentation().getUiAutomation().performGlobalAction(
                 AccessibilityService.GLOBAL_ACTION_RECENTS));
 
         // Sleep a bit so the UI is settles.
         SystemClock.sleep(3000);
 
         // Clean up.
-        getInteractionBridge().performGlobalAction(
+        getInstrumentation().getUiAutomation().performGlobalAction(
                 AccessibilityService.GLOBAL_ACTION_BACK);
 
         // Sleep a bit so the UI is settles.
@@ -357,14 +359,14 @@
     @MediumTest
     public void testPerformGlobalActionNotifications() throws Exception {
         // Perform the action under test
-        assertTrue(getInteractionBridge().performGlobalAction(
+        assertTrue(getInstrumentation().getUiAutomation().performGlobalAction(
                 AccessibilityService.GLOBAL_ACTION_NOTIFICATIONS));
 
         // Sleep a bit so the UI is settles.
         SystemClock.sleep(3000);
 
         // Clean up.
-        assertTrue(getInteractionBridge().performGlobalAction(
+        assertTrue(getInstrumentation().getUiAutomation().performGlobalAction(
                 AccessibilityService.GLOBAL_ACTION_BACK));
 
         // Sleep a bit so the UI is settles.
@@ -374,14 +376,14 @@
     @MediumTest
     public void testPerformGlobalActionQuickSettings() throws Exception {
         // Check whether the action succeeded.
-        assertTrue(getInteractionBridge().performGlobalAction(
+        assertTrue(getInstrumentation().getUiAutomation().performGlobalAction(
                 AccessibilityService.GLOBAL_ACTION_QUICK_SETTINGS));
 
         // Sleep a bit so the UI is settles.
         SystemClock.sleep(3000);
 
         // Clean up.
-        getInteractionBridge().performGlobalAction(
+        getInstrumentation().getUiAutomation().performGlobalAction(
                 AccessibilityService.GLOBAL_ACTION_BACK);
 
         // Sleep a bit so the UI is settles.
@@ -391,14 +393,18 @@
     @MediumTest
     public void testObjectContract() throws Exception {
         try {
-            getInteractionBridge().setRegardViewsNotImportantForAccessibility(true);
+            AccessibilityServiceInfo info = getInstrumentation().getUiAutomation().getServiceInfo();
+            info.flags |= AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
+            getInstrumentation().getUiAutomation().setServiceInfo(info);
+
             // find a view and make sure it is not focused
-            AccessibilityNodeInfo button = getInteractionBridge()
-                    .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.button5));
-            AccessibilityNodeInfo parent = getInteractionBridge().getParent(button);
+            AccessibilityNodeInfo button = getInstrumentation().getUiAutomation()
+                    .getRootInActiveWindow().findAccessibilityNodeInfosByText(
+                            getString(R.string.button5)).get(0);
+            AccessibilityNodeInfo parent = button.getParent();
             final int childCount = parent.getChildCount();
             for (int i = 0; i < childCount; i++) {
-                AccessibilityNodeInfo child = getInteractionBridge().getChild(parent, i);
+                AccessibilityNodeInfo child = parent.getChild(i);
                 assertNotNull(child);
                 if (child.equals(button)) {
                     assertEquals("Equal objects must have same hasCode.", button.hashCode(),
@@ -408,7 +414,9 @@
             }
             fail("Parent's children do not have the info whose parent is the parent.");
         } finally {
-            getInteractionBridge().setRegardViewsNotImportantForAccessibility(false);
+            AccessibilityServiceInfo info = getInstrumentation().getUiAutomation().getServiceInfo();
+            info.flags &= ~AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
+            getInstrumentation().getUiAutomation().setServiceInfo(info);
         }
     }
 
diff --git a/tests/tests/app/Android.mk b/tests/tests/app/Android.mk
index 8d5877d..d4387b4 100644
--- a/tests/tests/app/Android.mk
+++ b/tests/tests/app/Android.mk
@@ -21,7 +21,7 @@
 # and when built explicitly put it in the data partition
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
 
-LOCAL_JAVA_LIBRARIES := android.test.runner telephony-common
+LOCAL_JAVA_LIBRARIES := android.test.runner telephony-common voip-common
 
 LOCAL_STATIC_JAVA_LIBRARIES := ctstestrunner
 
diff --git a/tests/tests/app/src/android/app/cts/AlertDialogTest.java b/tests/tests/app/src/android/app/cts/AlertDialogTest.java
index d2edbeb..aefcf01 100644
--- a/tests/tests/app/src/android/app/cts/AlertDialogTest.java
+++ b/tests/tests/app/src/android/app/cts/AlertDialogTest.java
@@ -23,6 +23,7 @@
 import android.content.DialogInterface;
 import android.content.DialogInterface.OnCancelListener;
 import android.content.DialogInterface.OnClickListener;
+import android.cts.util.PollingCheck;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.os.Message;
@@ -55,6 +56,12 @@
 
     protected void startDialogActivity(int dialogNumber) {
         mActivity = DialogStubActivity.startDialogActivity(this, dialogNumber);
+        new PollingCheck() {
+            @Override
+            protected boolean check() {
+                return mActivity.getDialog().isShowing();
+            }
+        }.run();
     }
 
     public void testAlertDialog() throws Throwable {
diff --git a/tests/tests/app/src/android/app/cts/AlertDialog_BuilderTest.java b/tests/tests/app/src/android/app/cts/AlertDialog_BuilderTest.java
index 4c40a62..74f85bb 100644
--- a/tests/tests/app/src/android/app/cts/AlertDialog_BuilderTest.java
+++ b/tests/tests/app/src/android/app/cts/AlertDialog_BuilderTest.java
@@ -18,6 +18,7 @@
 
 import java.util.ArrayList;
 
+import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Instrumentation;
 import android.app.AlertDialog.Builder;
@@ -29,6 +30,7 @@
 import android.content.DialogInterface.OnClickListener;
 import android.content.DialogInterface.OnKeyListener;
 import android.content.DialogInterface.OnMultiChoiceClickListener;
+import android.cts.util.PollingCheck;
 import android.database.Cursor;
 import android.database.CursorWrapper;
 import android.graphics.drawable.Drawable;
@@ -108,6 +110,13 @@
         mBuilder = null;
         mInstrumentation = getInstrumentation();
         mContext = getActivity();
+        final Activity activity = getActivity();
+        new PollingCheck() {
+            @Override
+            protected boolean check() {
+                return activity.hasWindowFocus();
+            }
+        }.run();
         mButton = null;
         mView = null;
         mListView = null;
diff --git a/tests/tests/content/src/android/content/cts/ContentProviderTest.java b/tests/tests/content/src/android/content/cts/ContentProviderTest.java
index 2baa904..34b1e8c 100644
--- a/tests/tests/content/src/android/content/cts/ContentProviderTest.java
+++ b/tests/tests/content/src/android/content/cts/ContentProviderTest.java
@@ -249,12 +249,12 @@
 
         IContentProvider iContentProvider = new IContentProvider() {
             @Override
-            public int bulkInsert(Uri url, ContentValues[] initialValues) {
+            public int bulkInsert(String callingPkg, Uri url, ContentValues[] initialValues) {
                 return 0;
             }
 
             @Override
-            public int delete(Uri url, String selection, String[] selectionArgs) {
+            public int delete(String callingPkg, Uri url, String selection, String[] selectionArgs) {
                 return 0;
             }
 
@@ -264,36 +264,36 @@
             }
 
             @Override
-            public Uri insert(Uri url, ContentValues initialValues) {
+            public Uri insert(String callingPkg, Uri url, ContentValues initialValues) {
                 return null;
             }
 
             @Override
-            public ParcelFileDescriptor openFile(Uri url, String mode) {
+            public ParcelFileDescriptor openFile(String callingPkg, Uri url, String mode) {
                 return null;
             }
 
             @Override
-            public AssetFileDescriptor openAssetFile(Uri url, String mode) {
+            public AssetFileDescriptor openAssetFile(String callingPkg, Uri url, String mode) {
                 return null;
             }
 
             @Override
-            public ContentProviderResult[] applyBatch(
+            public ContentProviderResult[] applyBatch(String callingPkg,
                     ArrayList<ContentProviderOperation> operations)
                     throws RemoteException, OperationApplicationException {
                 return null;
             }
 
             @Override
-            public Cursor query(Uri url, String[] projection, String selection,
+            public Cursor query(String callingPkg, Uri url, String[] projection, String selection,
                     String[] selectionArgs, String sortOrder,
                     ICancellationSignal cancellationSignal) {
                 return null;
             }
 
             @Override
-            public int update(Uri url, ContentValues values, String selection,
+            public int update(String callingPkg, Uri url, ContentValues values, String selection,
                     String[] selectionArgs) {
                 return 0;
             }
@@ -304,7 +304,7 @@
             }
 
             @Override
-            public Bundle call(String method, String request, Bundle args) {
+            public Bundle call(String callingPkg, String method, String request, Bundle args) {
                 return null;
             }
 
@@ -314,7 +314,8 @@
             }
 
             @Override
-            public AssetFileDescriptor openTypedAssetFile(Uri url, String mimeType, Bundle opts)
+            public AssetFileDescriptor openTypedAssetFile(String callingPkg, Uri url,
+                    String mimeType, Bundle opts)
                     throws RemoteException, FileNotFoundException {
                 return null;
             }
diff --git a/suite/pts/hostTests/uihost/control/Android.mk b/tests/tests/display/Android.mk
similarity index 70%
copy from suite/pts/hostTests/uihost/control/Android.mk
copy to tests/tests/display/Android.mk
index 86ceb7c..ec5b40d 100644
--- a/suite/pts/hostTests/uihost/control/Android.mk
+++ b/tests/tests/display/Android.mk
@@ -13,21 +13,25 @@
 # limitations under the License.
 
 LOCAL_PATH:= $(call my-dir)
+
 include $(CLEAR_VARS)
 
 # don't include this package in any target
 LOCAL_MODULE_TAGS := optional
-
+# and when built explicitly put it in the data partition
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
 
 LOCAL_JAVA_LIBRARIES := android.test.runner
 
-LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
+LOCAL_STATIC_JAVA_LIBRARIES := ctstestrunner
 
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
-LOCAL_PACKAGE_NAME := PtsDeviceTaskswitchingControl
+LOCAL_PACKAGE_NAME := CtsDisplayTestCases
 
-LOCAL_SDK_VERSION := 16
+LOCAL_SDK_VERSION := current
 
-include $(BUILD_PTS_PACKAGE)
+# This test runner sets up/cleans up the device before/after running the tests.
+LOCAL_CTS_TEST_RUNNER := com.android.cts.tradefed.testtype.DisplayTestRunner
+
+include $(BUILD_CTS_PACKAGE)
diff --git a/tests/tests/display/AndroidManifest.xml b/tests/tests/display/AndroidManifest.xml
new file mode 100644
index 0000000..1ddce5a
--- /dev/null
+++ b/tests/tests/display/AndroidManifest.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * 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.
+ -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.cts.display">
+
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+    <application>
+        <uses-library android:name="android.test.runner" />
+    </application>
+
+    <instrumentation android:name="android.test.InstrumentationCtsTestRunner"
+                     android:targetPackage="com.android.cts.display"
+                     android:label="CTS tests of android.view.display"/>
+
+</manifest>
+
diff --git a/tests/tests/display/src/android/display/cts/DisplayTest.java b/tests/tests/display/src/android/display/cts/DisplayTest.java
new file mode 100644
index 0000000..595f7148
--- /dev/null
+++ b/tests/tests/display/src/android/display/cts/DisplayTest.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.display.cts;
+
+import android.content.Context;
+import android.graphics.PixelFormat;
+import android.graphics.Point;
+import android.hardware.display.DisplayManager;
+import android.test.AndroidTestCase;
+import android.util.DisplayMetrics;
+import android.view.Display;
+import android.view.WindowManager;
+
+public class DisplayTest extends AndroidTestCase {
+    // This test is called from DisplayTestRunner which brings up an overlay display on the target
+    // device. The overlay display parameters must match the ones defined there which are
+    // 1281x721/214 (wxh/dpi).
+
+    private static final int SECONDARY_DISPLAY_WIDTH = 1281;
+    private static final int SECONDARY_DISPLAY_HEIGHT = 721;
+    private static final int SECONDARY_DISPLAY_DPI = 214;
+    private static final float SCALE_DENSITY_LOWER_BOUND =
+            (float)(SECONDARY_DISPLAY_DPI - 1) / DisplayMetrics.DENSITY_DEFAULT;
+    private static final float SCALE_DENSITY_UPPER_BOUND =
+            (float)(SECONDARY_DISPLAY_DPI + 1) / DisplayMetrics.DENSITY_DEFAULT;
+    // Matches com.android.internal.R.string.display_manager_overlay_display_name.
+    private static final String OVERLAY_DISPLAY_NAME_PREFIX = "Overlay #";
+
+    private DisplayManager mDisplayManager;
+    private WindowManager mWindowManager;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mDisplayManager = (DisplayManager)mContext.getSystemService(Context.DISPLAY_SERVICE);
+        mWindowManager = (WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE);
+    }
+
+    private boolean isSecondarySize(Display display) {
+        final Point p = new Point();
+        display.getSize(p);
+        return p.x == SECONDARY_DISPLAY_WIDTH && p.y == SECONDARY_DISPLAY_HEIGHT;
+    }
+
+    private Display getSecondaryDisplay(Display[] displays) {
+        for (Display display : displays) {
+            if (isSecondarySize(display)) {
+                return display;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Verify that the getDisplays method returns both a default and an overlay display.
+     */
+    public void testGetDisplays() {
+        Display[] displays = mDisplayManager.getDisplays();
+        assertNotNull(displays);
+        assertTrue(2 <= displays.length);
+        boolean hasDefaultDisplay = false;
+        boolean hasSecondaryDisplay = false;
+        for (Display display : displays) {
+            if (display.getDisplayId() == Display.DEFAULT_DISPLAY) {
+                hasDefaultDisplay = true;
+            }
+            if (isSecondarySize(display)) {
+                hasSecondaryDisplay = true;
+            }
+        }
+        assertTrue(hasDefaultDisplay);
+        assertTrue(hasSecondaryDisplay);
+    }
+
+    /**
+     * Verify that the WindowManager returns the default display.
+     */
+    public void testDefaultDisplay() {
+        assertEquals(Display.DEFAULT_DISPLAY, mWindowManager.getDefaultDisplay().getDisplayId());
+    }
+
+    /**
+     * Verify that there is a secondary display.
+     */
+    public void testSecondaryDisplay() {
+        Display display = getSecondaryDisplay(mDisplayManager.getDisplays());
+        assertNotNull(display);
+        assertTrue(Display.DEFAULT_DISPLAY != display.getDisplayId());
+    }
+
+    /**
+     * Test the properties of the secondary Display.
+     */
+    public void testGetDisplayAttrs() {
+        Display display = getSecondaryDisplay(mDisplayManager.getDisplays());
+
+        assertEquals(SECONDARY_DISPLAY_WIDTH, display.getWidth());
+        assertEquals(SECONDARY_DISPLAY_HEIGHT, display.getHeight());
+
+        Point outSize = new Point();
+        display.getSize(outSize);
+        assertEquals(SECONDARY_DISPLAY_WIDTH, outSize.x);
+        assertEquals(SECONDARY_DISPLAY_HEIGHT, outSize.y);
+
+        assertEquals(0, display.getOrientation());
+
+        assertEquals(PixelFormat.RGBA_8888, display.getPixelFormat());
+
+        assertTrue(0 < display.getRefreshRate());
+
+        assertTrue(display.getName().contains(OVERLAY_DISPLAY_NAME_PREFIX));
+    }
+
+    /**
+     * Test that the getMetrics method fills in correct values.
+     */
+    public void testGetMetrics() {
+        Display display = getSecondaryDisplay(mDisplayManager.getDisplays());
+
+        Point outSize = new Point();
+        display.getSize(outSize);
+
+        DisplayMetrics outMetrics = new DisplayMetrics();
+        outMetrics.setToDefaults();
+        display.getMetrics(outMetrics);
+
+        assertEquals(SECONDARY_DISPLAY_WIDTH, outMetrics.widthPixels);
+        assertEquals(SECONDARY_DISPLAY_HEIGHT, outMetrics.heightPixels);
+
+        // The scale is in [0.1, 3], and density is the scale factor.
+        assertTrue(SCALE_DENSITY_LOWER_BOUND <= outMetrics.density
+                && outMetrics.density <= SCALE_DENSITY_UPPER_BOUND);
+        assertTrue(SCALE_DENSITY_LOWER_BOUND <= outMetrics.scaledDensity
+                && outMetrics.scaledDensity <= SCALE_DENSITY_UPPER_BOUND);
+
+        assertEquals(SECONDARY_DISPLAY_DPI, outMetrics.densityDpi);
+        assertEquals((float)SECONDARY_DISPLAY_DPI, outMetrics.xdpi);
+        assertEquals((float)SECONDARY_DISPLAY_DPI, outMetrics.ydpi);
+    }
+
+    /**
+     * Test that the getCurrentSizeRange method returns correct values.
+     */
+    public void testGetCurrentSizeRange() {
+        Display display = getSecondaryDisplay(mDisplayManager.getDisplays());
+
+        Point smallest = new Point();
+        Point largest = new Point();
+        display.getCurrentSizeRange(smallest, largest);
+
+        assertEquals(SECONDARY_DISPLAY_WIDTH, smallest.x);
+        assertEquals(SECONDARY_DISPLAY_HEIGHT, smallest.y);
+        assertEquals(SECONDARY_DISPLAY_WIDTH, largest.x);
+        assertEquals(SECONDARY_DISPLAY_HEIGHT, largest.y);
+    }
+
+    /**
+     * Test that the getFlags method returns no flag bits set for the overlay display.
+     */
+    public void testFlags() {
+        Display display = getSecondaryDisplay(mDisplayManager.getDisplays());
+
+        assertEquals(0, display.getFlags());
+    }
+}
diff --git a/suite/pts/hostTests/uihost/control/Android.mk b/tests/tests/dreams/Android.mk
similarity index 71%
rename from suite/pts/hostTests/uihost/control/Android.mk
rename to tests/tests/dreams/Android.mk
index 86ceb7c..c630d8a 100644
--- a/suite/pts/hostTests/uihost/control/Android.mk
+++ b/tests/tests/dreams/Android.mk
@@ -13,21 +13,25 @@
 # limitations under the License.
 
 LOCAL_PATH:= $(call my-dir)
+
 include $(CLEAR_VARS)
 
-# don't include this package in any target
+LOCAL_PACKAGE_NAME := CtsDreamsTestCases
+
+# Don't include this package in any target.
 LOCAL_MODULE_TAGS := optional
 
+# When built, explicitly put it in the data partition.
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
 
+# All tests should include android.test.runner.
 LOCAL_JAVA_LIBRARIES := android.test.runner
 
-LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
+LOCAL_STATIC_JAVA_LIBRARIES := ctstestrunner
 
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
-LOCAL_PACKAGE_NAME := PtsDeviceTaskswitchingControl
+# Need access to ServiceManager
+#LOCAL_SDK_VERSION := current
 
-LOCAL_SDK_VERSION := 16
-
-include $(BUILD_PTS_PACKAGE)
+include $(BUILD_CTS_PACKAGE)
diff --git a/suite/pts/hostTests/browser/browserlauncher/AndroidManifest.xml b/tests/tests/dreams/AndroidManifest.xml
similarity index 79%
rename from suite/pts/hostTests/browser/browserlauncher/AndroidManifest.xml
rename to tests/tests/dreams/AndroidManifest.xml
index 1950c84..fb3e564 100644
--- a/suite/pts/hostTests/browser/browserlauncher/AndroidManifest.xml
+++ b/tests/tests/dreams/AndroidManifest.xml
@@ -13,17 +13,18 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.android.pts.browser">
+    package="com.android.cts.dreams">
 
     <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-
     <application>
         <uses-library android:name="android.test.runner" />
     </application>
+
+    <!-- This is a self-instrumenting test package. -->
     <instrumentation android:name="android.test.InstrumentationCtsTestRunner"
-            android:targetPackage="com.android.pts.browser" />
+                     android:targetPackage="com.android.cts.dreams"
+                     android:label="CTS tests for the android.service.dreams package"/>
+
 </manifest>
+
diff --git a/tests/tests/dreams/src/android/service/dreams/cts/DreamsFeatureTest.java b/tests/tests/dreams/src/android/service/dreams/cts/DreamsFeatureTest.java
new file mode 100644
index 0000000..358a7bf
--- /dev/null
+++ b/tests/tests/dreams/src/android/service/dreams/cts/DreamsFeatureTest.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.service.dreams.cts;
+
+import android.os.ServiceManager;
+import android.service.dreams.DreamService;
+import android.service.dreams.IDreamManager;
+
+import junit.framework.TestCase;
+
+public class DreamsFeatureTest extends TestCase {
+
+    public void testDreamManagerExists() {
+        IDreamManager service = IDreamManager.Stub.asInterface(
+                            ServiceManager.getService(DreamService.DREAM_SERVICE));
+        assertTrue("Dream manager service missing", service != null);
+    }
+
+}
diff --git a/tests/tests/graphics/src/android/graphics/cts/AvoidXfermodeTest.java b/tests/tests/graphics/src/android/graphics/cts/AvoidXfermodeTest.java
index d58336d..beb3621 100644
--- a/tests/tests/graphics/src/android/graphics/cts/AvoidXfermodeTest.java
+++ b/tests/tests/graphics/src/android/graphics/cts/AvoidXfermodeTest.java
@@ -62,7 +62,7 @@
 
         assertEquals(Color.GREEN, b.getPixel(BASE_SIZE / 2, BASE_SIZE / 2));
         assertEquals(Color.RED, b.getPixel(BASE_SIZE + BASE_SIZE / 2, BASE_SIZE / 2));
-        assertEquals(Color.CYAN, b.getPixel(BASE_SIZE / 2, BASE_SIZE + BASE_SIZE / 2));
+        assertEquals(Color.BLUE, b.getPixel(BASE_SIZE / 2, BASE_SIZE + BASE_SIZE / 2));
         assertEquals(Color.BLACK, b.getPixel(BASE_SIZE + BASE_SIZE / 2, BASE_SIZE + BASE_SIZE / 2));
     }
 }
diff --git a/tests/tests/graphics/src/android/graphics/cts/MatrixTest.java b/tests/tests/graphics/src/android/graphics/cts/MatrixTest.java
index ebe20a2..29e4f5f 100644
--- a/tests/tests/graphics/src/android/graphics/cts/MatrixTest.java
+++ b/tests/tests/graphics/src/android/graphics/cts/MatrixTest.java
@@ -302,7 +302,7 @@
         values[0] = 1000f;
         matrix.setValues(values);
         assertTrue(mMatrix.invert(matrix));
-        String expect = "[1.0, -0.0, 0.0][-0.0, 1.0, 0.0][0.0, 0.0, 1.0]";
+        String expect = "[1.0, 0.0, 0.0][0.0, 1.0, 0.0][0.0, 0.0, 1.0]";
         assertEquals(expect, matrix.toShortString());
         expect = "[1.0, 0.0, 0.0][0.0, 1.0, 0.0][0.0, 0.0, 1.0]";
         assertEquals(expect, mMatrix.toShortString());
diff --git a/tests/tests/graphics/src/android/opengl/cts/OpenGlEsVersionTest.java b/tests/tests/graphics/src/android/opengl/cts/OpenGlEsVersionTest.java
index 3ebc567..30a1f67 100644
--- a/tests/tests/graphics/src/android/opengl/cts/OpenGlEsVersionTest.java
+++ b/tests/tests/graphics/src/android/opengl/cts/OpenGlEsVersionTest.java
@@ -40,7 +40,10 @@
 
     private static final String TAG = OpenGlEsVersionTest.class.getSimpleName();
 
+    // TODO: switch to android.opengl.EGL14/EGLExt and use the constants from there
+    private static final int EGL_OPENGL_ES_BIT = 0x0001;
     private static final int EGL_OPENGL_ES2_BIT = 0x0004;
+    private static final int EGL_OPENGL_ES3_BIT_KHR = 0x0040;
 
     private OpenGlEsVersionStubActivity mActivity;
 
@@ -71,12 +74,27 @@
         }
     }
 
-    /** @return OpenGL ES major version 1 or 2 or some negative number for error */
-    private static int getDetectedVersion() {
+    private static boolean hasExtension(String extensions, String name) {
+        int start = extensions.indexOf(name);
+        while (start >= 0) {
+            // check that we didn't find a prefix of a longer extension name
+            int end = start + name.length();
+            if (end == extensions.length() || extensions.charAt(end) == ' ') {
+                return true;
+            }
+            start = extensions.indexOf(name, end);
+        }
+        return false;
+    }
 
+    /** @return OpenGL ES major version 1, 2, or 3 or some non-positive number for error */
+    private static int getDetectedVersion() {
         /*
-         * Get all the device configurations and check if any of the attributes specify the
-         * the EGL_OPENGL_ES2_BIT to determine whether the device supports 2.0.
+         * Get all the device configurations and check the EGL_RENDERABLE_TYPE attribute
+         * to determine the highest ES version supported by any config. The
+         * EGL_KHR_create_context extension is required to check for ES3 support; if the
+         * extension is not present this test will fail to detect ES3 support. This
+         * effectively makes the extension mandatory for ES3-capable devices.
          */
 
         EGL10 egl = (EGL10) EGLContext.getEGL();
@@ -85,15 +103,23 @@
 
         if (egl.eglInitialize(display, null)) {
             try {
+                boolean checkES3 = hasExtension(egl.eglQueryString(display, EGL10.EGL_EXTENSIONS),
+                        "EGL_KHR_create_context");
                 if (egl.eglGetConfigs(display, null, 0, numConfigs)) {
                     EGLConfig[] configs = new EGLConfig[numConfigs[0]];
                     if (egl.eglGetConfigs(display, configs, numConfigs[0], numConfigs)) {
+                        int highestEsVersion = 0;
                         int[] value = new int[1];
                         for (int i = 0; i < numConfigs[0]; i++) {
                             if (egl.eglGetConfigAttrib(display, configs[i],
                                     EGL10.EGL_RENDERABLE_TYPE, value)) {
-                                if ((value[0] & EGL_OPENGL_ES2_BIT) == EGL_OPENGL_ES2_BIT) {
-                                    return 2;
+                                if (checkES3 && ((value[0] & EGL_OPENGL_ES3_BIT_KHR) ==
+                                        EGL_OPENGL_ES3_BIT_KHR)) {
+                                    if (highestEsVersion < 3) highestEsVersion = 3;
+                                } else if ((value[0] & EGL_OPENGL_ES2_BIT) == EGL_OPENGL_ES2_BIT) {
+                                    if (highestEsVersion < 2) highestEsVersion = 2;
+                                } else if ((value[0] & EGL_OPENGL_ES_BIT) == EGL_OPENGL_ES_BIT) {
+                                    if (highestEsVersion < 1) highestEsVersion = 1;
                                 }
                             } else {
                                 Log.w(TAG, "Getting config attribute with "
@@ -102,7 +128,7 @@
                                         + egl.eglGetError());
                             }
                         }
-                        return 1;
+                        return highestEsVersion;
                     } else {
                         Log.e(TAG, "Getting configs with EGL10#eglGetConfigs failed: "
                                 + egl.eglGetError());
@@ -161,9 +187,13 @@
      * version and Y must be some digit.
      */
     private void assertGlVersionString(int majorVersion) throws InterruptedException {
+        String versionString = "" + majorVersion;
         String message = "OpenGL version string '" + mActivity.getVersionString()
                 + "' is not " + majorVersion + ".0+.";
-        assertTrue(message, Pattern.matches(".*OpenGL.*ES.*" + majorVersion + "\\.\\d.*",
+        if (majorVersion == 2) {
+             versionString = "(2|3)";
+        }
+        assertTrue(message, Pattern.matches(".*OpenGL.*ES.*" + versionString + "\\.\\d.*",
                 mActivity.getVersionString()));
     }
 
diff --git a/tests/tests/graphics2/src/android/graphics2/cts/TextureViewCameraActivity.java b/tests/tests/graphics2/src/android/graphics2/cts/TextureViewCameraActivity.java
index 88d529c..01776e5 100644
--- a/tests/tests/graphics2/src/android/graphics2/cts/TextureViewCameraActivity.java
+++ b/tests/tests/graphics2/src/android/graphics2/cts/TextureViewCameraActivity.java
@@ -92,9 +92,6 @@
     public void onSurfaceTextureUpdated(SurfaceTexture surface) {
         mUpdateCounter++;
         if (mUpdateCounter % CAPTURE_SCREEN_INTERVAL == 0) {
-            Canvas canvas = mTextureView.lockCanvas();
-            canvas.drawColor(0xffff0000);
-            mTextureView.unlockCanvasAndPost(canvas);
             Bitmap bitmap = mTextureView.getBitmap();
             Assert.assertEquals(mHeight, bitmap.getHeight());
             Assert.assertEquals(mWidth, bitmap.getWidth());
diff --git a/tests/tests/hardware/src/android/hardware/cts/CameraGLTest.java b/tests/tests/hardware/src/android/hardware/cts/CameraGLTest.java
index dd84675..9d7dacb 100644
--- a/tests/tests/hardware/src/android/hardware/cts/CameraGLTest.java
+++ b/tests/tests/hardware/src/android/hardware/cts/CameraGLTest.java
@@ -685,7 +685,7 @@
             checkGlError("glEnableVertexAttribArray maPositionHandle");
 
             mTriangleVertices.position(TRIANGLE_VERTICES_DATA_UV_OFFSET);
-            GLES20.glVertexAttribPointer(maTextureHandle, 3, GLES20.GL_FLOAT, false,
+            GLES20.glVertexAttribPointer(maTextureHandle, 2, GLES20.GL_FLOAT, false,
                                          TRIANGLE_VERTICES_DATA_STRIDE_BYTES, mTriangleVertices);
             checkGlError("glVertexAttribPointer maTextureHandle");
             GLES20.glEnableVertexAttribArray(maTextureHandle);
diff --git a/tests/tests/hardware/src/android/hardware/cts/CameraTest.java b/tests/tests/hardware/src/android/hardware/cts/CameraTest.java
index bbb5643..31a72cf 100755
--- a/tests/tests/hardware/src/android/hardware/cts/CameraTest.java
+++ b/tests/tests/hardware/src/android/hardware/cts/CameraTest.java
@@ -53,6 +53,8 @@
 import java.util.Iterator;
 import java.util.List;
 
+import junit.framework.AssertionFailedError;
+
 /**
  * This test case must run with hardware. It can't be tested in emulator
  */
@@ -1713,6 +1715,9 @@
                 // ignore
             }
             mCamera.stopPreview();
+            // See if any frame duration violations occurred during preview run
+            AssertionFailedError e = callback.getDurationException();
+            if (e != null) throw(e);
         }
 
         // Test the invalid fps cases.
@@ -1741,6 +1746,7 @@
         // An array storing the arrival time of the frames in the last second.
         private ArrayList<Long> mFrames = new ArrayList<Long>();
         private long firstFrameArrivalTime;
+        private AssertionFailedError mDurationException = null;
 
         public void reset(double minFps, double maxFps) {
             this.mMinFps = minFps;
@@ -1752,6 +1758,7 @@
                     + ". Max frame interval=" + mMaxFrameInterval);
             mFrames.clear();
             firstFrameArrivalTime = 0;
+            mDurationException = null;
         }
 
         // This method tests if the actual fps is between minimum and maximum.
@@ -1783,34 +1790,50 @@
                 // variance is averaged out.
 
                 // Check if the frame interval is too large or too small.
-                // x100 = percent, intervalMargin should be bigger than fpsMargin considering that
-                // fps will be in the order of 10.
+                // x100 = percent, intervalMargin should be bigger than
+                // fpsMargin considering that fps will be in the order of 10.
                 double intervalMargin = 0.9;
                 long lastArrivalTime = mFrames.get(mFrames.size() - 1);
                 double interval = arrivalTime - lastArrivalTime;
                 if (LOGV) Log.v(TAG, "Frame interval=" + interval);
-                assertTrue("Frame interval (" + interval + "ms) is too large." +
-                        " mMaxFrameInterval=" + mMaxFrameInterval + "ms",
-                        interval < mMaxFrameInterval * (1.0 + intervalMargin));
-                assertTrue("Frame interval (" + interval + "ms) is too small." +
-                        " mMinFrameInterval=" + mMinFrameInterval + "ms",
-                        interval > mMinFrameInterval * (1.0 - intervalMargin));
+                try {
+                    assertTrue("Frame interval (" + interval + "ms) is too " +
+                            "large. mMaxFrameInterval=" +
+                             mMaxFrameInterval + "ms",
+                            interval < mMaxFrameInterval *
+                            (1.0 + intervalMargin));
+                    assertTrue("Frame interval (" + interval + "ms) is too " +
+                            "small. mMinFrameInterval=" +
+                            mMinFrameInterval + "ms",
+                            interval > mMinFrameInterval *
+                            (1.0 - intervalMargin));
 
-                // Check if the fps is within range.
-                double fpsMargin = 0.5; // x100 = percent
-                double avgInterval = (double)(arrivalTime - mFrames.get(0))
-                        / mFrames.size();
-                double fps = 1000.0 / avgInterval;
-                assertTrue("Actual fps (" + fps + ") should be larger than " +
-                           "min fps (" + mMinFps + ")",
-                           fps >= mMinFps * (1.0 - fpsMargin));
-                assertTrue("Actual fps (" + fps + ") should be smaller than " +
-                           "max fps (" + mMaxFps + ")",
-                           fps <= mMaxFps * (1.0 + fpsMargin));
+                    // Check if the fps is within range.
+                    double fpsMargin = 0.5; // x100 = percent
+                    double avgInterval = (double)(arrivalTime - mFrames.get(0))
+                            / mFrames.size();
+                    double fps = 1000.0 / avgInterval;
+                    assertTrue("Actual fps (" + fps + ") should be larger " +
+                            "than min fps (" + mMinFps + ")",
+                            fps >= mMinFps * (1.0 - fpsMargin));
+                    assertTrue("Actual fps (" + fps + ") should be smaller" +
+                            "than max fps (" + mMaxFps + ")",
+                            fps <= mMaxFps * (1.0 + fpsMargin));
+                } catch (AssertionFailedError e) {
+                    // Need to throw this only in the test body, instead of in
+                    // the callback
+                    if (mDurationException == null) {
+                        mDurationException = e;
+                    }
+                }
             }
             // Add the arrival time of this frame to the list.
             mFrames.add(arrivalTime);
         }
+
+        public AssertionFailedError getDurationException() {
+            return mDurationException;
+        }
     }
 
     private void assertEquals(Size expected, Size actual) {
diff --git a/tests/tests/hardware/src/android/hardware/cts/SensorTest.java b/tests/tests/hardware/src/android/hardware/cts/SensorTest.java
index 574e9e9..c865140 100644
--- a/tests/tests/hardware/src/android/hardware/cts/SensorTest.java
+++ b/tests/tests/hardware/src/android/hardware/cts/SensorTest.java
@@ -16,21 +16,36 @@
 
 package android.hardware.cts;
 
+import java.lang.IllegalArgumentException;
+import java.lang.Override;
 import java.util.List;
 
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
 import android.hardware.SensorManager;
+import android.hardware.TriggerEvent;
+import android.hardware.TriggerEventListener;
 import android.test.AndroidTestCase;
 
 public class SensorTest extends AndroidTestCase {
+    private SensorManager mSensorManager;
+    private TriggerListener mTriggerListener;
+    private SensorListener mSensorListener;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mSensorManager = (SensorManager) getContext().getSystemService(Context.SENSOR_SERVICE);
+        mTriggerListener = new TriggerListener();
+        mSensorListener = new SensorListener();
+    }
 
     public void testSensorOperations() {
         // Because we can't know every sensors unit details, so we can't assert
         // get values with specified values.
-        final SensorManager mSensorManager =
-            (SensorManager) getContext().getSystemService(Context.SENSOR_SERVICE);
         List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
         assertNotNull(sensors);
         Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
@@ -70,7 +85,48 @@
         }
     }
 
-    private void assertSensorValues(Sensor sensor) {
+    public void testRequestTriggerWithNonTriggerSensor() {
+        Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
+        boolean result;
+        if (sensor != null) {
+            result = mSensorManager.requestTriggerSensor(mTriggerListener, sensor);
+            assertFalse(result);
+        }
+    }
+
+    public void testCancelTriggerWithNonTriggerSensor() {
+        Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
+        boolean result;
+        if (sensor != null) {
+            result = mSensorManager.cancelTriggerSensor(mTriggerListener, sensor);
+            assertFalse(result);
+        }
+    }
+
+    public void testRegisterWithTriggerSensor() {
+        Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION);
+        boolean result;
+        if (sensor != null) {
+            result = mSensorManager.registerListener(mSensorListener, sensor,
+                    SensorManager.SENSOR_DELAY_NORMAL);
+            assertFalse(result);
+        }
+    }
+
+    public void testRegisterTwiceWithSameSensor() {
+        Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
+        boolean result;
+        if (sensor != null) {
+            result = mSensorManager.registerListener(mSensorListener, sensor,
+                    SensorManager.SENSOR_DELAY_NORMAL);
+            assertTrue(result);
+            result = mSensorManager.registerListener(mSensorListener, sensor,
+                    SensorManager.SENSOR_DELAY_NORMAL);
+            assertFalse(result);
+        }
+    }
+
+        private void assertSensorValues(Sensor sensor) {
         assertTrue(sensor.getMaximumRange() >= 0);
         assertTrue(sensor.getPower() >= 0);
         assertTrue(sensor.getResolution() >= 0);
@@ -96,4 +152,20 @@
         }
         assertEquals(sensors, mSensorManager.getSensors());
     }
+
+    class TriggerListener extends TriggerEventListener {
+        @Override
+        public void onTrigger(TriggerEvent event) {
+        }
+    }
+
+    class SensorListener implements SensorEventListener {
+        @Override
+        public void onSensorChanged(SensorEvent event) {
+        }
+
+        @Override
+        public void onAccuracyChanged(Sensor sensor, int accuracy) {
+        }
+    }
 }
diff --git a/suite/pts/deviceTests/filesystemperf/Android.mk b/tests/tests/keystore/Android.mk
similarity index 74%
rename from suite/pts/deviceTests/filesystemperf/Android.mk
rename to tests/tests/keystore/Android.mk
index b42d48e..62c3301 100644
--- a/suite/pts/deviceTests/filesystemperf/Android.mk
+++ b/tests/tests/keystore/Android.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2012 The Android Open Source Project
+# Copyright 2013 The Android Open Source Project
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -13,20 +13,21 @@
 # limitations under the License.
 
 LOCAL_PATH:= $(call my-dir)
+
 include $(CLEAR_VARS)
 
-# don't include this package in any target
 LOCAL_MODULE_TAGS := optional
 
 LOCAL_JAVA_LIBRARIES := android.test.runner
 
-LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
+LOCAL_STATIC_JAVA_LIBRARIES := ctstestrunner
 
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
-LOCAL_PACKAGE_NAME := PtsDeviceFilePerf
+LOCAL_PACKAGE_NAME := CtsKeystoreTestCases
 
-LOCAL_SDK_VERSION := 16
+LOCAL_SDK_VERSION := current
 
-include $(BUILD_PTS_PACKAGE)
+include $(BUILD_CTS_PACKAGE)
 
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/tests/tests/keystore/AndroidManifest.xml b/tests/tests/keystore/AndroidManifest.xml
new file mode 100644
index 0000000..a19c983
--- /dev/null
+++ b/tests/tests/keystore/AndroidManifest.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright 2013 The Android Open Source Project
+ *
+ * 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.
+ -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.cts.keystore">
+
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+    <application>
+        <uses-library android:name="android.test.runner" />
+    </application>
+
+    <instrumentation android:name="android.test.InstrumentationCtsTestRunner"
+                     android:targetPackage="com.android.cts.keystore"
+                     android:label="CTS tests of com.android.cts.keystore"/>
+
+</manifest>
+
diff --git a/tests/tests/keystore/src/android/keystore/cts/AndroidKeyPairGeneratorTest.java b/tests/tests/keystore/src/android/keystore/cts/AndroidKeyPairGeneratorTest.java
new file mode 100644
index 0000000..ecc06c6
--- /dev/null
+++ b/tests/tests/keystore/src/android/keystore/cts/AndroidKeyPairGeneratorTest.java
@@ -0,0 +1,234 @@
+/*
+ * Copyright 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.keystore.cts;
+
+import android.security.KeyPairGeneratorSpec;
+import android.test.AndroidTestCase;
+
+import java.math.BigInteger;
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.KeyStore;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.SecureRandom;
+import java.security.cert.Certificate;
+import java.security.cert.X509Certificate;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import javax.security.auth.x500.X500Principal;
+
+public class AndroidKeyPairGeneratorTest extends AndroidTestCase {
+    private KeyPairGenerator mGenerator;
+
+    private KeyStore mKeyStore;
+
+    private static final String TEST_ALIAS_1 = "test1";
+
+    private static final String TEST_ALIAS_2 = "test2";
+
+    private static final X500Principal TEST_DN_1 = new X500Principal("CN=test1");
+
+    private static final X500Principal TEST_DN_2 = new X500Principal("CN=test2");
+
+    private static final BigInteger TEST_SERIAL_1 = BigInteger.ONE;
+
+    private static final BigInteger TEST_SERIAL_2 = BigInteger.valueOf(2L);
+
+    private static final long NOW_MILLIS = System.currentTimeMillis();
+
+    /* We have to round this off because X509v3 doesn't store milliseconds. */
+    private static final Date NOW = new Date(NOW_MILLIS - (NOW_MILLIS % 1000L));
+
+    @SuppressWarnings("deprecation")
+    private static final Date NOW_PLUS_10_YEARS = new Date(NOW.getYear() + 10, 0, 1);
+
+    @Override
+    protected void setUp() throws Exception {
+        mKeyStore = KeyStore.getInstance("AndroidKeyStore");
+        mKeyStore.load(null, null);
+
+        mGenerator = KeyPairGenerator.getInstance("RSA", "AndroidKeyStore");
+    }
+
+    public void testKeyPairGenerator_Initialize_Params_Unencrypted_Success() throws Exception {
+        mGenerator.initialize(new KeyPairGeneratorSpec.Builder(getContext())
+                .setAlias(TEST_ALIAS_1)
+                .setSubject(TEST_DN_1)
+                .setSerialNumber(TEST_SERIAL_1)
+                .setStartDate(NOW)
+                .setEndDate(NOW_PLUS_10_YEARS)
+                .build());
+    }
+
+    public void testKeyPairGenerator_Initialize_KeySize_Unencrypted_Failure() throws Exception {
+        try {
+            mGenerator.initialize(1024);
+            fail("KeyPairGenerator should not support setting the key size");
+        } catch (IllegalArgumentException success) {
+        }
+    }
+
+    public void testKeyPairGenerator_Initialize_KeySizeAndSecureRandom_Unencrypted_Failure()
+            throws Exception {
+        try {
+            mGenerator.initialize(1024, new SecureRandom());
+            fail("KeyPairGenerator should not support setting the key size");
+        } catch (IllegalArgumentException success) {
+        }
+    }
+
+    public void testKeyPairGenerator_Initialize_ParamsAndSecureRandom_Unencrypted_Failure()
+            throws Exception {
+        mGenerator.initialize(
+                new KeyPairGeneratorSpec.Builder(getContext())
+                        .setAlias(TEST_ALIAS_1)
+                        .setSubject(TEST_DN_1)
+                        .setSerialNumber(TEST_SERIAL_1)
+                        .setStartDate(NOW)
+                        .setEndDate(NOW_PLUS_10_YEARS)
+                        .build(),
+                new SecureRandom());
+    }
+
+    public void testKeyPairGenerator_GenerateKeyPair_Unencrypted_Success() throws Exception {
+        mGenerator.initialize(new KeyPairGeneratorSpec.Builder(getContext())
+                .setAlias(TEST_ALIAS_1)
+                .setSubject(TEST_DN_1)
+                .setSerialNumber(TEST_SERIAL_1)
+                .setStartDate(NOW)
+                .setEndDate(NOW_PLUS_10_YEARS)
+                .build());
+
+        final KeyPair pair = mGenerator.generateKeyPair();
+        assertNotNull("The KeyPair returned should not be null", pair);
+
+        assertKeyPairCorrect(pair, TEST_ALIAS_1, TEST_DN_1, TEST_SERIAL_1, NOW, NOW_PLUS_10_YEARS);
+    }
+
+    public void testKeyPairGenerator_GenerateKeyPair_Replaced_Unencrypted_Success()
+            throws Exception {
+        // Generate the first key
+        {
+            mGenerator.initialize(new KeyPairGeneratorSpec.Builder(getContext())
+                    .setAlias(TEST_ALIAS_1).setSubject(TEST_DN_1).setSerialNumber(TEST_SERIAL_1)
+                    .setStartDate(NOW).setEndDate(NOW_PLUS_10_YEARS).build());
+            final KeyPair pair1 = mGenerator.generateKeyPair();
+            assertNotNull("The KeyPair returned should not be null", pair1);
+            assertKeyPairCorrect(pair1, TEST_ALIAS_1, TEST_DN_1, TEST_SERIAL_1, NOW,
+                    NOW_PLUS_10_YEARS);
+        }
+
+        // Replace the original key
+        {
+            mGenerator.initialize(new KeyPairGeneratorSpec.Builder(getContext())
+                    .setAlias(TEST_ALIAS_1).setSubject(TEST_DN_2).setSerialNumber(TEST_SERIAL_2)
+                    .setStartDate(NOW).setEndDate(NOW_PLUS_10_YEARS).build());
+            final KeyPair pair2 = mGenerator.generateKeyPair();
+            assertNotNull("The KeyPair returned should not be null", pair2);
+            assertKeyPairCorrect(pair2, TEST_ALIAS_1, TEST_DN_2, TEST_SERIAL_2, NOW,
+                    NOW_PLUS_10_YEARS);
+        }
+    }
+
+    public void testKeyPairGenerator_GenerateKeyPair_No_Collision_Unencrypted_Success()
+            throws Exception {
+        // Generate the first key
+        mGenerator.initialize(new KeyPairGeneratorSpec.Builder(getContext())
+                .setAlias(TEST_ALIAS_1)
+                .setSubject(TEST_DN_1)
+                .setSerialNumber(TEST_SERIAL_1)
+                .setStartDate(NOW)
+                .setEndDate(NOW_PLUS_10_YEARS)
+                .build());
+        final KeyPair pair1 = mGenerator.generateKeyPair();
+        assertNotNull("The KeyPair returned should not be null", pair1);
+        assertKeyPairCorrect(pair1, TEST_ALIAS_1, TEST_DN_1, TEST_SERIAL_1, NOW,
+                NOW_PLUS_10_YEARS);
+
+        // Generate the second key
+        mGenerator.initialize(new KeyPairGeneratorSpec.Builder(getContext())
+                .setAlias(TEST_ALIAS_2)
+                .setSubject(TEST_DN_2)
+                .setSerialNumber(TEST_SERIAL_2)
+                .setStartDate(NOW)
+                .setEndDate(NOW_PLUS_10_YEARS)
+                .build());
+        final KeyPair pair2 = mGenerator.generateKeyPair();
+        assertNotNull("The KeyPair returned should not be null", pair2);
+        assertKeyPairCorrect(pair2, TEST_ALIAS_2, TEST_DN_2, TEST_SERIAL_2, NOW,
+                NOW_PLUS_10_YEARS);
+
+        // Check the first key again
+        assertKeyPairCorrect(pair1, TEST_ALIAS_1, TEST_DN_1, TEST_SERIAL_1, NOW,
+                NOW_PLUS_10_YEARS);
+    }
+
+    private void assertKeyPairCorrect(KeyPair pair, String alias, X500Principal dn,
+            BigInteger serial, Date start, Date end) throws Exception {
+        final PublicKey pubKey = pair.getPublic();
+        assertNotNull("The PublicKey for the KeyPair should be not null", pubKey);
+
+        final PrivateKey privKey = pair.getPrivate();
+        assertNotNull("The PrivateKey for the KeyPair should be not null", privKey);
+
+        KeyStore.Entry entry = mKeyStore.getEntry(alias, null);
+        assertNotNull("Entry should exist", entry);
+
+        assertTrue("Entry should be a PrivateKeyEntry", entry instanceof KeyStore.PrivateKeyEntry);
+        KeyStore.PrivateKeyEntry privEntry = (KeyStore.PrivateKeyEntry) entry;
+
+        Certificate userCert = privEntry.getCertificate();
+        assertTrue("Certificate should be in X.509 format", userCert instanceof X509Certificate);
+
+        final X509Certificate x509userCert = (X509Certificate) userCert;
+
+        assertEquals("PublicKey used to sign certificate should match one returned in KeyPair",
+                pubKey, x509userCert.getPublicKey());
+
+        assertEquals("The Subject DN should be the one passed into the params", dn,
+                x509userCert.getSubjectDN());
+
+        assertEquals("The Issuer DN should be the same as the Subject DN", dn,
+                x509userCert.getIssuerDN());
+
+        assertEquals("The Serial should be the one passed into the params", serial,
+                x509userCert.getSerialNumber());
+
+        assertDateEquals("The notBefore date should be the one passed into the params", start,
+                x509userCert.getNotBefore());
+
+        assertDateEquals("The notAfter date should be the one passed into the params", end,
+                x509userCert.getNotAfter());
+
+        x509userCert.verify(pubKey);
+
+        Certificate[] chain = privEntry.getCertificateChain();
+        assertEquals("A list of CA certificates should not exist for the generated entry", 1,
+                chain.length);
+    }
+
+    private static void assertDateEquals(String message, Date date1, Date date2) throws Exception {
+        SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy HH:mm:ss");
+
+        String result1 = formatter.format(date1);
+        String result2 = formatter.format(date2);
+
+        assertEquals(message, result1, result2);
+    }
+}
diff --git a/tests/tests/keystore/src/android/keystore/cts/AndroidKeyStoreTest.java b/tests/tests/keystore/src/android/keystore/cts/AndroidKeyStoreTest.java
new file mode 100644
index 0000000..32f03ff
--- /dev/null
+++ b/tests/tests/keystore/src/android/keystore/cts/AndroidKeyStoreTest.java
@@ -0,0 +1,1528 @@
+/*
+ * Copyright 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.keystore.cts;
+
+import android.security.KeyStoreParameter;
+import android.test.AndroidTestCase;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.OutputStream;
+import java.security.Key;
+import java.security.KeyFactory;
+import java.security.KeyStore;
+import java.security.KeyStore.Entry;
+import java.security.KeyStore.PrivateKeyEntry;
+import java.security.KeyStore.TrustedCertificateEntry;
+import java.security.KeyStoreException;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateFactory;
+import java.security.interfaces.RSAPrivateKey;
+import java.security.spec.PKCS8EncodedKeySpec;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
+import javax.crypto.Cipher;
+import javax.crypto.SecretKey;
+import javax.crypto.spec.SecretKeySpec;
+
+public class AndroidKeyStoreTest extends AndroidTestCase {
+    private KeyStore mKeyStore;
+
+    private static final String TEST_ALIAS_1 = "test1";
+
+    private static final String TEST_ALIAS_2 = "test2";
+
+    private static final String TEST_ALIAS_3 = "test3";
+
+    /*
+     * The keys and certificates below are generated with:
+     *
+     * openssl req -new -x509 -days 3650 -extensions v3_ca -keyout cakey.pem -out cacert.pem
+     * openssl req -newkey rsa:1024 -keyout userkey.pem -nodes -days 3650 -out userkey.req
+     * mkdir -p demoCA/newcerts
+     * touch demoCA/index.txt
+     * echo "01" > demoCA/serial
+     * openssl ca -out usercert.pem -in userkey.req -cert cacert.pem -keyfile cakey.pem -days 3650
+     */
+
+    /**
+     * Generated from above and converted with:
+     *
+     * openssl x509 -outform d -in cacert.pem | xxd -i | sed 's/0x/(byte) 0x/g'
+     */
+    private static final byte[] FAKE_CA_1 = {
+            (byte) 0x30, (byte) 0x82, (byte) 0x02, (byte) 0xce, (byte) 0x30, (byte) 0x82,
+            (byte) 0x02, (byte) 0x37, (byte) 0xa0, (byte) 0x03, (byte) 0x02, (byte) 0x01,
+            (byte) 0x02, (byte) 0x02, (byte) 0x09, (byte) 0x00, (byte) 0xe1, (byte) 0x6a,
+            (byte) 0xa2, (byte) 0xf4, (byte) 0x2e, (byte) 0x55, (byte) 0x48, (byte) 0x0a,
+            (byte) 0x30, (byte) 0x0d, (byte) 0x06, (byte) 0x09, (byte) 0x2a, (byte) 0x86,
+            (byte) 0x48, (byte) 0x86, (byte) 0xf7, (byte) 0x0d, (byte) 0x01, (byte) 0x01,
+            (byte) 0x05, (byte) 0x05, (byte) 0x00, (byte) 0x30, (byte) 0x4f, (byte) 0x31,
+            (byte) 0x0b, (byte) 0x30, (byte) 0x09, (byte) 0x06, (byte) 0x03, (byte) 0x55,
+            (byte) 0x04, (byte) 0x06, (byte) 0x13, (byte) 0x02, (byte) 0x55, (byte) 0x53,
+            (byte) 0x31, (byte) 0x0b, (byte) 0x30, (byte) 0x09, (byte) 0x06, (byte) 0x03,
+            (byte) 0x55, (byte) 0x04, (byte) 0x08, (byte) 0x13, (byte) 0x02, (byte) 0x43,
+            (byte) 0x41, (byte) 0x31, (byte) 0x16, (byte) 0x30, (byte) 0x14, (byte) 0x06,
+            (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x07, (byte) 0x13, (byte) 0x0d,
+            (byte) 0x4d, (byte) 0x6f, (byte) 0x75, (byte) 0x6e, (byte) 0x74, (byte) 0x61,
+            (byte) 0x69, (byte) 0x6e, (byte) 0x20, (byte) 0x56, (byte) 0x69, (byte) 0x65,
+            (byte) 0x77, (byte) 0x31, (byte) 0x1b, (byte) 0x30, (byte) 0x19, (byte) 0x06,
+            (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x0a, (byte) 0x13, (byte) 0x12,
+            (byte) 0x41, (byte) 0x6e, (byte) 0x64, (byte) 0x72, (byte) 0x6f, (byte) 0x69,
+            (byte) 0x64, (byte) 0x20, (byte) 0x54, (byte) 0x65, (byte) 0x73, (byte) 0x74,
+            (byte) 0x20, (byte) 0x43, (byte) 0x61, (byte) 0x73, (byte) 0x65, (byte) 0x73,
+            (byte) 0x30, (byte) 0x1e, (byte) 0x17, (byte) 0x0d, (byte) 0x31, (byte) 0x32,
+            (byte) 0x30, (byte) 0x38, (byte) 0x31, (byte) 0x34, (byte) 0x31, (byte) 0x36,
+            (byte) 0x35, (byte) 0x35, (byte) 0x34, (byte) 0x34, (byte) 0x5a, (byte) 0x17,
+            (byte) 0x0d, (byte) 0x32, (byte) 0x32, (byte) 0x30, (byte) 0x38, (byte) 0x31,
+            (byte) 0x32, (byte) 0x31, (byte) 0x36, (byte) 0x35, (byte) 0x35, (byte) 0x34,
+            (byte) 0x34, (byte) 0x5a, (byte) 0x30, (byte) 0x4f, (byte) 0x31, (byte) 0x0b,
+            (byte) 0x30, (byte) 0x09, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04,
+            (byte) 0x06, (byte) 0x13, (byte) 0x02, (byte) 0x55, (byte) 0x53, (byte) 0x31,
+            (byte) 0x0b, (byte) 0x30, (byte) 0x09, (byte) 0x06, (byte) 0x03, (byte) 0x55,
+            (byte) 0x04, (byte) 0x08, (byte) 0x13, (byte) 0x02, (byte) 0x43, (byte) 0x41,
+            (byte) 0x31, (byte) 0x16, (byte) 0x30, (byte) 0x14, (byte) 0x06, (byte) 0x03,
+            (byte) 0x55, (byte) 0x04, (byte) 0x07, (byte) 0x13, (byte) 0x0d, (byte) 0x4d,
+            (byte) 0x6f, (byte) 0x75, (byte) 0x6e, (byte) 0x74, (byte) 0x61, (byte) 0x69,
+            (byte) 0x6e, (byte) 0x20, (byte) 0x56, (byte) 0x69, (byte) 0x65, (byte) 0x77,
+            (byte) 0x31, (byte) 0x1b, (byte) 0x30, (byte) 0x19, (byte) 0x06, (byte) 0x03,
+            (byte) 0x55, (byte) 0x04, (byte) 0x0a, (byte) 0x13, (byte) 0x12, (byte) 0x41,
+            (byte) 0x6e, (byte) 0x64, (byte) 0x72, (byte) 0x6f, (byte) 0x69, (byte) 0x64,
+            (byte) 0x20, (byte) 0x54, (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x20,
+            (byte) 0x43, (byte) 0x61, (byte) 0x73, (byte) 0x65, (byte) 0x73, (byte) 0x30,
+            (byte) 0x81, (byte) 0x9f, (byte) 0x30, (byte) 0x0d, (byte) 0x06, (byte) 0x09,
+            (byte) 0x2a, (byte) 0x86, (byte) 0x48, (byte) 0x86, (byte) 0xf7, (byte) 0x0d,
+            (byte) 0x01, (byte) 0x01, (byte) 0x01, (byte) 0x05, (byte) 0x00, (byte) 0x03,
+            (byte) 0x81, (byte) 0x8d, (byte) 0x00, (byte) 0x30, (byte) 0x81, (byte) 0x89,
+            (byte) 0x02, (byte) 0x81, (byte) 0x81, (byte) 0x00, (byte) 0xa3, (byte) 0x72,
+            (byte) 0xab, (byte) 0xd0, (byte) 0xe4, (byte) 0xad, (byte) 0x2f, (byte) 0xe7,
+            (byte) 0xe2, (byte) 0x79, (byte) 0x07, (byte) 0x36, (byte) 0x3d, (byte) 0x0c,
+            (byte) 0x8d, (byte) 0x42, (byte) 0x9a, (byte) 0x0a, (byte) 0x33, (byte) 0x64,
+            (byte) 0xb3, (byte) 0xcd, (byte) 0xb2, (byte) 0xd7, (byte) 0x3a, (byte) 0x42,
+            (byte) 0x06, (byte) 0x77, (byte) 0x45, (byte) 0x29, (byte) 0xe9, (byte) 0xcb,
+            (byte) 0xb7, (byte) 0x4a, (byte) 0xd6, (byte) 0xee, (byte) 0xad, (byte) 0x01,
+            (byte) 0x91, (byte) 0x9b, (byte) 0x0c, (byte) 0x59, (byte) 0xa1, (byte) 0x03,
+            (byte) 0xfa, (byte) 0xf0, (byte) 0x5a, (byte) 0x7c, (byte) 0x4f, (byte) 0xf7,
+            (byte) 0x8d, (byte) 0x36, (byte) 0x0f, (byte) 0x1f, (byte) 0x45, (byte) 0x7d,
+            (byte) 0x1b, (byte) 0x31, (byte) 0xa1, (byte) 0x35, (byte) 0x0b, (byte) 0x00,
+            (byte) 0xed, (byte) 0x7a, (byte) 0xb6, (byte) 0xc8, (byte) 0x4e, (byte) 0xa9,
+            (byte) 0x86, (byte) 0x4c, (byte) 0x7b, (byte) 0x99, (byte) 0x57, (byte) 0x41,
+            (byte) 0x12, (byte) 0xef, (byte) 0x6b, (byte) 0xbc, (byte) 0x3d, (byte) 0x60,
+            (byte) 0xf2, (byte) 0x99, (byte) 0x1a, (byte) 0xcd, (byte) 0xed, (byte) 0x56,
+            (byte) 0xa4, (byte) 0xe5, (byte) 0x36, (byte) 0x9f, (byte) 0x24, (byte) 0x1f,
+            (byte) 0xdc, (byte) 0x89, (byte) 0x40, (byte) 0xc8, (byte) 0x99, (byte) 0x92,
+            (byte) 0xab, (byte) 0x4a, (byte) 0xb5, (byte) 0x61, (byte) 0x45, (byte) 0x62,
+            (byte) 0xff, (byte) 0xa3, (byte) 0x45, (byte) 0x65, (byte) 0xaf, (byte) 0xf6,
+            (byte) 0x27, (byte) 0x30, (byte) 0x51, (byte) 0x0e, (byte) 0x0e, (byte) 0xeb,
+            (byte) 0x79, (byte) 0x0c, (byte) 0xbe, (byte) 0xb3, (byte) 0x0a, (byte) 0x6f,
+            (byte) 0x29, (byte) 0x06, (byte) 0xdc, (byte) 0x2f, (byte) 0x6b, (byte) 0x51,
+            (byte) 0x02, (byte) 0x03, (byte) 0x01, (byte) 0x00, (byte) 0x01, (byte) 0xa3,
+            (byte) 0x81, (byte) 0xb1, (byte) 0x30, (byte) 0x81, (byte) 0xae, (byte) 0x30,
+            (byte) 0x1d, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x1d, (byte) 0x0e,
+            (byte) 0x04, (byte) 0x16, (byte) 0x04, (byte) 0x14, (byte) 0x33, (byte) 0x05,
+            (byte) 0xee, (byte) 0xfe, (byte) 0x6f, (byte) 0x60, (byte) 0xc7, (byte) 0xf9,
+            (byte) 0xa9, (byte) 0xd2, (byte) 0x73, (byte) 0x5c, (byte) 0x8f, (byte) 0x6d,
+            (byte) 0xa2, (byte) 0x2f, (byte) 0x97, (byte) 0x8e, (byte) 0x5d, (byte) 0x51,
+            (byte) 0x30, (byte) 0x7f, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x1d,
+            (byte) 0x23, (byte) 0x04, (byte) 0x78, (byte) 0x30, (byte) 0x76, (byte) 0x80,
+            (byte) 0x14, (byte) 0x33, (byte) 0x05, (byte) 0xee, (byte) 0xfe, (byte) 0x6f,
+            (byte) 0x60, (byte) 0xc7, (byte) 0xf9, (byte) 0xa9, (byte) 0xd2, (byte) 0x73,
+            (byte) 0x5c, (byte) 0x8f, (byte) 0x6d, (byte) 0xa2, (byte) 0x2f, (byte) 0x97,
+            (byte) 0x8e, (byte) 0x5d, (byte) 0x51, (byte) 0xa1, (byte) 0x53, (byte) 0xa4,
+            (byte) 0x51, (byte) 0x30, (byte) 0x4f, (byte) 0x31, (byte) 0x0b, (byte) 0x30,
+            (byte) 0x09, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x06,
+            (byte) 0x13, (byte) 0x02, (byte) 0x55, (byte) 0x53, (byte) 0x31, (byte) 0x0b,
+            (byte) 0x30, (byte) 0x09, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04,
+            (byte) 0x08, (byte) 0x13, (byte) 0x02, (byte) 0x43, (byte) 0x41, (byte) 0x31,
+            (byte) 0x16, (byte) 0x30, (byte) 0x14, (byte) 0x06, (byte) 0x03, (byte) 0x55,
+            (byte) 0x04, (byte) 0x07, (byte) 0x13, (byte) 0x0d, (byte) 0x4d, (byte) 0x6f,
+            (byte) 0x75, (byte) 0x6e, (byte) 0x74, (byte) 0x61, (byte) 0x69, (byte) 0x6e,
+            (byte) 0x20, (byte) 0x56, (byte) 0x69, (byte) 0x65, (byte) 0x77, (byte) 0x31,
+            (byte) 0x1b, (byte) 0x30, (byte) 0x19, (byte) 0x06, (byte) 0x03, (byte) 0x55,
+            (byte) 0x04, (byte) 0x0a, (byte) 0x13, (byte) 0x12, (byte) 0x41, (byte) 0x6e,
+            (byte) 0x64, (byte) 0x72, (byte) 0x6f, (byte) 0x69, (byte) 0x64, (byte) 0x20,
+            (byte) 0x54, (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x20, (byte) 0x43,
+            (byte) 0x61, (byte) 0x73, (byte) 0x65, (byte) 0x73, (byte) 0x82, (byte) 0x09,
+            (byte) 0x00, (byte) 0xe1, (byte) 0x6a, (byte) 0xa2, (byte) 0xf4, (byte) 0x2e,
+            (byte) 0x55, (byte) 0x48, (byte) 0x0a, (byte) 0x30, (byte) 0x0c, (byte) 0x06,
+            (byte) 0x03, (byte) 0x55, (byte) 0x1d, (byte) 0x13, (byte) 0x04, (byte) 0x05,
+            (byte) 0x30, (byte) 0x03, (byte) 0x01, (byte) 0x01, (byte) 0xff, (byte) 0x30,
+            (byte) 0x0d, (byte) 0x06, (byte) 0x09, (byte) 0x2a, (byte) 0x86, (byte) 0x48,
+            (byte) 0x86, (byte) 0xf7, (byte) 0x0d, (byte) 0x01, (byte) 0x01, (byte) 0x05,
+            (byte) 0x05, (byte) 0x00, (byte) 0x03, (byte) 0x81, (byte) 0x81, (byte) 0x00,
+            (byte) 0x8c, (byte) 0x30, (byte) 0x42, (byte) 0xfa, (byte) 0xeb, (byte) 0x1a,
+            (byte) 0x26, (byte) 0xeb, (byte) 0xda, (byte) 0x56, (byte) 0x32, (byte) 0xf2,
+            (byte) 0x9d, (byte) 0xa5, (byte) 0x24, (byte) 0xd8, (byte) 0x3a, (byte) 0xda,
+            (byte) 0x30, (byte) 0xa6, (byte) 0x8b, (byte) 0x46, (byte) 0xfe, (byte) 0xfe,
+            (byte) 0xdb, (byte) 0xf1, (byte) 0xe6, (byte) 0xe1, (byte) 0x7c, (byte) 0x1b,
+            (byte) 0xe7, (byte) 0x77, (byte) 0x00, (byte) 0xa1, (byte) 0x1c, (byte) 0x19,
+            (byte) 0x17, (byte) 0x73, (byte) 0xb0, (byte) 0xf0, (byte) 0x9d, (byte) 0xf3,
+            (byte) 0x4f, (byte) 0xb6, (byte) 0xbc, (byte) 0xc7, (byte) 0x47, (byte) 0x85,
+            (byte) 0x2a, (byte) 0x4a, (byte) 0xa1, (byte) 0xa5, (byte) 0x58, (byte) 0xf5,
+            (byte) 0xc5, (byte) 0x1a, (byte) 0x51, (byte) 0xb1, (byte) 0x04, (byte) 0x80,
+            (byte) 0xee, (byte) 0x3a, (byte) 0xec, (byte) 0x2f, (byte) 0xe1, (byte) 0xfd,
+            (byte) 0x58, (byte) 0xeb, (byte) 0xed, (byte) 0x82, (byte) 0x9e, (byte) 0x38,
+            (byte) 0xa3, (byte) 0x24, (byte) 0x75, (byte) 0xf7, (byte) 0x3e, (byte) 0xc2,
+            (byte) 0xc5, (byte) 0x27, (byte) 0xeb, (byte) 0x6f, (byte) 0x7b, (byte) 0x50,
+            (byte) 0xda, (byte) 0x43, (byte) 0xdc, (byte) 0x3b, (byte) 0x0b, (byte) 0x6f,
+            (byte) 0x78, (byte) 0x8f, (byte) 0xb0, (byte) 0x66, (byte) 0xe1, (byte) 0x12,
+            (byte) 0x87, (byte) 0x5f, (byte) 0x97, (byte) 0x7b, (byte) 0xca, (byte) 0x14,
+            (byte) 0x79, (byte) 0xf7, (byte) 0xe8, (byte) 0x6c, (byte) 0x72, (byte) 0xdb,
+            (byte) 0x91, (byte) 0x65, (byte) 0x17, (byte) 0x54, (byte) 0xe0, (byte) 0x74,
+            (byte) 0x1d, (byte) 0xac, (byte) 0x47, (byte) 0x04, (byte) 0x12, (byte) 0xe0,
+            (byte) 0xc3, (byte) 0x66, (byte) 0x19, (byte) 0x05, (byte) 0x2e, (byte) 0x7e,
+            (byte) 0xf1, (byte) 0x61
+    };
+
+    /**
+     * Generated from above and converted with:
+     *
+     * openssl pkcs8 -topk8 -outform d -in userkey.pem -nocrypt | xxd -i | sed 's/0x/(byte) 0x/g'
+     */
+    private static final byte[] FAKE_KEY_1 = new byte[] {
+            (byte) 0x30, (byte) 0x82, (byte) 0x02, (byte) 0x78, (byte) 0x02, (byte) 0x01,
+            (byte) 0x00, (byte) 0x30, (byte) 0x0d, (byte) 0x06, (byte) 0x09, (byte) 0x2a,
+            (byte) 0x86, (byte) 0x48, (byte) 0x86, (byte) 0xf7, (byte) 0x0d, (byte) 0x01,
+            (byte) 0x01, (byte) 0x01, (byte) 0x05, (byte) 0x00, (byte) 0x04, (byte) 0x82,
+            (byte) 0x02, (byte) 0x62, (byte) 0x30, (byte) 0x82, (byte) 0x02, (byte) 0x5e,
+            (byte) 0x02, (byte) 0x01, (byte) 0x00, (byte) 0x02, (byte) 0x81, (byte) 0x81,
+            (byte) 0x00, (byte) 0xce, (byte) 0x29, (byte) 0xeb, (byte) 0xf6, (byte) 0x5b,
+            (byte) 0x25, (byte) 0xdc, (byte) 0xa1, (byte) 0xa6, (byte) 0x2c, (byte) 0x66,
+            (byte) 0xcb, (byte) 0x20, (byte) 0x90, (byte) 0x27, (byte) 0x86, (byte) 0x8a,
+            (byte) 0x44, (byte) 0x71, (byte) 0x50, (byte) 0xda, (byte) 0xd3, (byte) 0x02,
+            (byte) 0x77, (byte) 0x55, (byte) 0xe9, (byte) 0xe8, (byte) 0x08, (byte) 0xf3,
+            (byte) 0x36, (byte) 0x9a, (byte) 0xae, (byte) 0xab, (byte) 0x04, (byte) 0x6d,
+            (byte) 0x00, (byte) 0x99, (byte) 0xbf, (byte) 0x7d, (byte) 0x0f, (byte) 0x67,
+            (byte) 0x8b, (byte) 0x1d, (byte) 0xd4, (byte) 0x2b, (byte) 0x7c, (byte) 0xcb,
+            (byte) 0xcd, (byte) 0x33, (byte) 0xc7, (byte) 0x84, (byte) 0x30, (byte) 0xe2,
+            (byte) 0x45, (byte) 0x21, (byte) 0xb3, (byte) 0x75, (byte) 0xf5, (byte) 0x79,
+            (byte) 0x02, (byte) 0xda, (byte) 0x50, (byte) 0xa3, (byte) 0x8b, (byte) 0xce,
+            (byte) 0xc3, (byte) 0x8e, (byte) 0x0f, (byte) 0x25, (byte) 0xeb, (byte) 0x08,
+            (byte) 0x2c, (byte) 0xdd, (byte) 0x1c, (byte) 0xcf, (byte) 0xff, (byte) 0x3b,
+            (byte) 0xde, (byte) 0xb6, (byte) 0xaa, (byte) 0x2a, (byte) 0xa9, (byte) 0xc4,
+            (byte) 0x8a, (byte) 0x24, (byte) 0x24, (byte) 0xe6, (byte) 0x29, (byte) 0x0d,
+            (byte) 0x98, (byte) 0x4c, (byte) 0x32, (byte) 0xa1, (byte) 0x7b, (byte) 0x23,
+            (byte) 0x2b, (byte) 0x42, (byte) 0x30, (byte) 0xee, (byte) 0x78, (byte) 0x08,
+            (byte) 0x47, (byte) 0xad, (byte) 0xf2, (byte) 0x96, (byte) 0xd5, (byte) 0xf1,
+            (byte) 0x62, (byte) 0x42, (byte) 0x2d, (byte) 0x35, (byte) 0x19, (byte) 0xb4,
+            (byte) 0x3c, (byte) 0xc9, (byte) 0xc3, (byte) 0x5f, (byte) 0x03, (byte) 0x16,
+            (byte) 0x3a, (byte) 0x23, (byte) 0xac, (byte) 0xcb, (byte) 0xce, (byte) 0x9e,
+            (byte) 0x51, (byte) 0x2e, (byte) 0x6d, (byte) 0x02, (byte) 0x03, (byte) 0x01,
+            (byte) 0x00, (byte) 0x01, (byte) 0x02, (byte) 0x81, (byte) 0x80, (byte) 0x16,
+            (byte) 0x59, (byte) 0xc3, (byte) 0x24, (byte) 0x1d, (byte) 0x33, (byte) 0x98,
+            (byte) 0x9c, (byte) 0xc9, (byte) 0xc8, (byte) 0x2c, (byte) 0x88, (byte) 0xbf,
+            (byte) 0x0a, (byte) 0x01, (byte) 0xce, (byte) 0xfb, (byte) 0x34, (byte) 0x7a,
+            (byte) 0x58, (byte) 0x7a, (byte) 0xb0, (byte) 0xbf, (byte) 0xa6, (byte) 0xb2,
+            (byte) 0x60, (byte) 0xbe, (byte) 0x70, (byte) 0x21, (byte) 0xf5, (byte) 0xfc,
+            (byte) 0x85, (byte) 0x0d, (byte) 0x33, (byte) 0x58, (byte) 0xa1, (byte) 0xe5,
+            (byte) 0x09, (byte) 0x36, (byte) 0x84, (byte) 0xb2, (byte) 0x04, (byte) 0x0a,
+            (byte) 0x02, (byte) 0xd3, (byte) 0x88, (byte) 0x1f, (byte) 0x0c, (byte) 0x2b,
+            (byte) 0x1d, (byte) 0xe9, (byte) 0x3d, (byte) 0xe7, (byte) 0x79, (byte) 0xf9,
+            (byte) 0x32, (byte) 0x5c, (byte) 0x8a, (byte) 0x75, (byte) 0x49, (byte) 0x12,
+            (byte) 0xe4, (byte) 0x05, (byte) 0x26, (byte) 0xd4, (byte) 0x2e, (byte) 0x9e,
+            (byte) 0x1f, (byte) 0xcc, (byte) 0x54, (byte) 0xad, (byte) 0x33, (byte) 0x8d,
+            (byte) 0x99, (byte) 0x00, (byte) 0xdc, (byte) 0xf5, (byte) 0xb4, (byte) 0xa2,
+            (byte) 0x2f, (byte) 0xba, (byte) 0xe5, (byte) 0x62, (byte) 0x30, (byte) 0x6d,
+            (byte) 0xe6, (byte) 0x3d, (byte) 0xeb, (byte) 0x24, (byte) 0xc2, (byte) 0xdc,
+            (byte) 0x5f, (byte) 0xb7, (byte) 0x16, (byte) 0x35, (byte) 0xa3, (byte) 0x98,
+            (byte) 0x98, (byte) 0xa8, (byte) 0xef, (byte) 0xe8, (byte) 0xc4, (byte) 0x96,
+            (byte) 0x6d, (byte) 0x38, (byte) 0xab, (byte) 0x26, (byte) 0x6d, (byte) 0x30,
+            (byte) 0xc2, (byte) 0xa0, (byte) 0x44, (byte) 0xe4, (byte) 0xff, (byte) 0x7e,
+            (byte) 0xbe, (byte) 0x7c, (byte) 0x33, (byte) 0xa5, (byte) 0x10, (byte) 0xad,
+            (byte) 0xd7, (byte) 0x1e, (byte) 0x13, (byte) 0x20, (byte) 0xb3, (byte) 0x1f,
+            (byte) 0x41, (byte) 0x02, (byte) 0x41, (byte) 0x00, (byte) 0xf1, (byte) 0x89,
+            (byte) 0x07, (byte) 0x0f, (byte) 0xe8, (byte) 0xcf, (byte) 0xab, (byte) 0x13,
+            (byte) 0x2a, (byte) 0x8f, (byte) 0x88, (byte) 0x80, (byte) 0x11, (byte) 0x9a,
+            (byte) 0x79, (byte) 0xb6, (byte) 0x59, (byte) 0x3a, (byte) 0x50, (byte) 0x6e,
+            (byte) 0x57, (byte) 0x37, (byte) 0xab, (byte) 0x2a, (byte) 0xd2, (byte) 0xaa,
+            (byte) 0xd9, (byte) 0x72, (byte) 0x73, (byte) 0xff, (byte) 0x8b, (byte) 0x47,
+            (byte) 0x76, (byte) 0xdd, (byte) 0xdc, (byte) 0xf5, (byte) 0x97, (byte) 0x44,
+            (byte) 0x3a, (byte) 0x78, (byte) 0xbe, (byte) 0x17, (byte) 0xb4, (byte) 0x22,
+            (byte) 0x6f, (byte) 0xe5, (byte) 0x23, (byte) 0x70, (byte) 0x1d, (byte) 0x10,
+            (byte) 0x5d, (byte) 0xba, (byte) 0x16, (byte) 0x81, (byte) 0xf1, (byte) 0x45,
+            (byte) 0xce, (byte) 0x30, (byte) 0xb4, (byte) 0xab, (byte) 0x80, (byte) 0xe4,
+            (byte) 0x98, (byte) 0x31, (byte) 0x02, (byte) 0x41, (byte) 0x00, (byte) 0xda,
+            (byte) 0x82, (byte) 0x9d, (byte) 0x3f, (byte) 0xca, (byte) 0x2f, (byte) 0xe1,
+            (byte) 0xd4, (byte) 0x86, (byte) 0x77, (byte) 0x48, (byte) 0xa6, (byte) 0xab,
+            (byte) 0xab, (byte) 0x1c, (byte) 0x42, (byte) 0x5c, (byte) 0xd5, (byte) 0xc7,
+            (byte) 0x46, (byte) 0x59, (byte) 0x91, (byte) 0x3f, (byte) 0xfc, (byte) 0xcc,
+            (byte) 0xec, (byte) 0xc2, (byte) 0x40, (byte) 0x12, (byte) 0x2c, (byte) 0x8d,
+            (byte) 0x1f, (byte) 0xa2, (byte) 0x18, (byte) 0x88, (byte) 0xee, (byte) 0x82,
+            (byte) 0x4a, (byte) 0x5a, (byte) 0x5e, (byte) 0x88, (byte) 0x20, (byte) 0xe3,
+            (byte) 0x7b, (byte) 0xe0, (byte) 0xd8, (byte) 0x3a, (byte) 0x52, (byte) 0x9a,
+            (byte) 0x26, (byte) 0x6a, (byte) 0x04, (byte) 0xec, (byte) 0xe8, (byte) 0xb9,
+            (byte) 0x48, (byte) 0x40, (byte) 0xe1, (byte) 0xe1, (byte) 0x83, (byte) 0xa6,
+            (byte) 0x67, (byte) 0xa6, (byte) 0xfd, (byte) 0x02, (byte) 0x41, (byte) 0x00,
+            (byte) 0x89, (byte) 0x72, (byte) 0x3e, (byte) 0xb0, (byte) 0x90, (byte) 0xfd,
+            (byte) 0x4c, (byte) 0x0e, (byte) 0xd6, (byte) 0x13, (byte) 0x63, (byte) 0xcb,
+            (byte) 0xed, (byte) 0x38, (byte) 0x88, (byte) 0xb6, (byte) 0x79, (byte) 0xc4,
+            (byte) 0x33, (byte) 0x6c, (byte) 0xf6, (byte) 0xf8, (byte) 0xd8, (byte) 0xd0,
+            (byte) 0xbf, (byte) 0x9d, (byte) 0x35, (byte) 0xac, (byte) 0x69, (byte) 0xd2,
+            (byte) 0x2b, (byte) 0xc1, (byte) 0xf9, (byte) 0x24, (byte) 0x7b, (byte) 0xce,
+            (byte) 0xcd, (byte) 0xcb, (byte) 0xa7, (byte) 0xb2, (byte) 0x7a, (byte) 0x0a,
+            (byte) 0x27, (byte) 0x19, (byte) 0xc9, (byte) 0xaf, (byte) 0x0d, (byte) 0x21,
+            (byte) 0x89, (byte) 0x88, (byte) 0x7c, (byte) 0xad, (byte) 0x9e, (byte) 0x8d,
+            (byte) 0x47, (byte) 0x6d, (byte) 0x3f, (byte) 0xce, (byte) 0x7b, (byte) 0xa1,
+            (byte) 0x74, (byte) 0xf1, (byte) 0xa0, (byte) 0xa1, (byte) 0x02, (byte) 0x41,
+            (byte) 0x00, (byte) 0xd9, (byte) 0xa8, (byte) 0xf5, (byte) 0xfe, (byte) 0xce,
+            (byte) 0xe6, (byte) 0x77, (byte) 0x6b, (byte) 0xfe, (byte) 0x2d, (byte) 0xe0,
+            (byte) 0x1e, (byte) 0xb6, (byte) 0x2e, (byte) 0x12, (byte) 0x4e, (byte) 0x40,
+            (byte) 0xaf, (byte) 0x6a, (byte) 0x7b, (byte) 0x37, (byte) 0x49, (byte) 0x2a,
+            (byte) 0x96, (byte) 0x25, (byte) 0x83, (byte) 0x49, (byte) 0xd4, (byte) 0x0c,
+            (byte) 0xc6, (byte) 0x78, (byte) 0x25, (byte) 0x24, (byte) 0x90, (byte) 0x90,
+            (byte) 0x06, (byte) 0x15, (byte) 0x9e, (byte) 0xfe, (byte) 0xf9, (byte) 0xdf,
+            (byte) 0x5b, (byte) 0xf3, (byte) 0x7e, (byte) 0x38, (byte) 0x70, (byte) 0xeb,
+            (byte) 0x57, (byte) 0xd0, (byte) 0xd9, (byte) 0xa7, (byte) 0x0e, (byte) 0x14,
+            (byte) 0xf7, (byte) 0x95, (byte) 0x68, (byte) 0xd5, (byte) 0xc8, (byte) 0xab,
+            (byte) 0x9d, (byte) 0x3a, (byte) 0x2b, (byte) 0x51, (byte) 0xf9, (byte) 0x02,
+            (byte) 0x41, (byte) 0x00, (byte) 0x96, (byte) 0xdf, (byte) 0xe9, (byte) 0x67,
+            (byte) 0x6c, (byte) 0xdc, (byte) 0x90, (byte) 0x14, (byte) 0xb4, (byte) 0x1d,
+            (byte) 0x22, (byte) 0x33, (byte) 0x4a, (byte) 0x31, (byte) 0xc1, (byte) 0x9d,
+            (byte) 0x2e, (byte) 0xff, (byte) 0x9a, (byte) 0x2a, (byte) 0x95, (byte) 0x4b,
+            (byte) 0x27, (byte) 0x74, (byte) 0xcb, (byte) 0x21, (byte) 0xc3, (byte) 0xd2,
+            (byte) 0x0b, (byte) 0xb2, (byte) 0x46, (byte) 0x87, (byte) 0xf8, (byte) 0x28,
+            (byte) 0x01, (byte) 0x8b, (byte) 0xd8, (byte) 0xb9, (byte) 0x4b, (byte) 0xcd,
+            (byte) 0x9a, (byte) 0x96, (byte) 0x41, (byte) 0x0e, (byte) 0x36, (byte) 0x6d,
+            (byte) 0x40, (byte) 0x42, (byte) 0xbc, (byte) 0xd9, (byte) 0xd3, (byte) 0x7b,
+            (byte) 0xbc, (byte) 0xa7, (byte) 0x92, (byte) 0x90, (byte) 0xdd, (byte) 0xa1,
+            (byte) 0x9c, (byte) 0xce, (byte) 0xa1, (byte) 0x87, (byte) 0x11, (byte) 0x51
+    };
+
+    /**
+     * Generated from above and converted with:
+     *
+     * openssl x509 -outform d -in usercert.pem | xxd -i | sed 's/0x/(byte) 0x/g'
+     */
+    private static final byte[] FAKE_USER_1 = new byte[] {
+            (byte) 0x30, (byte) 0x82, (byte) 0x02, (byte) 0x95, (byte) 0x30, (byte) 0x82,
+            (byte) 0x01, (byte) 0xfe, (byte) 0xa0, (byte) 0x03, (byte) 0x02, (byte) 0x01,
+            (byte) 0x02, (byte) 0x02, (byte) 0x01, (byte) 0x01, (byte) 0x30, (byte) 0x0d,
+            (byte) 0x06, (byte) 0x09, (byte) 0x2a, (byte) 0x86, (byte) 0x48, (byte) 0x86,
+            (byte) 0xf7, (byte) 0x0d, (byte) 0x01, (byte) 0x01, (byte) 0x05, (byte) 0x05,
+            (byte) 0x00, (byte) 0x30, (byte) 0x4f, (byte) 0x31, (byte) 0x0b, (byte) 0x30,
+            (byte) 0x09, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x06,
+            (byte) 0x13, (byte) 0x02, (byte) 0x55, (byte) 0x53, (byte) 0x31, (byte) 0x0b,
+            (byte) 0x30, (byte) 0x09, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04,
+            (byte) 0x08, (byte) 0x13, (byte) 0x02, (byte) 0x43, (byte) 0x41, (byte) 0x31,
+            (byte) 0x16, (byte) 0x30, (byte) 0x14, (byte) 0x06, (byte) 0x03, (byte) 0x55,
+            (byte) 0x04, (byte) 0x07, (byte) 0x13, (byte) 0x0d, (byte) 0x4d, (byte) 0x6f,
+            (byte) 0x75, (byte) 0x6e, (byte) 0x74, (byte) 0x61, (byte) 0x69, (byte) 0x6e,
+            (byte) 0x20, (byte) 0x56, (byte) 0x69, (byte) 0x65, (byte) 0x77, (byte) 0x31,
+            (byte) 0x1b, (byte) 0x30, (byte) 0x19, (byte) 0x06, (byte) 0x03, (byte) 0x55,
+            (byte) 0x04, (byte) 0x0a, (byte) 0x13, (byte) 0x12, (byte) 0x41, (byte) 0x6e,
+            (byte) 0x64, (byte) 0x72, (byte) 0x6f, (byte) 0x69, (byte) 0x64, (byte) 0x20,
+            (byte) 0x54, (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x20, (byte) 0x43,
+            (byte) 0x61, (byte) 0x73, (byte) 0x65, (byte) 0x73, (byte) 0x30, (byte) 0x1e,
+            (byte) 0x17, (byte) 0x0d, (byte) 0x31, (byte) 0x32, (byte) 0x30, (byte) 0x38,
+            (byte) 0x31, (byte) 0x34, (byte) 0x32, (byte) 0x33, (byte) 0x32, (byte) 0x35,
+            (byte) 0x34, (byte) 0x38, (byte) 0x5a, (byte) 0x17, (byte) 0x0d, (byte) 0x32,
+            (byte) 0x32, (byte) 0x30, (byte) 0x38, (byte) 0x31, (byte) 0x32, (byte) 0x32,
+            (byte) 0x33, (byte) 0x32, (byte) 0x35, (byte) 0x34, (byte) 0x38, (byte) 0x5a,
+            (byte) 0x30, (byte) 0x55, (byte) 0x31, (byte) 0x0b, (byte) 0x30, (byte) 0x09,
+            (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x06, (byte) 0x13,
+            (byte) 0x02, (byte) 0x55, (byte) 0x53, (byte) 0x31, (byte) 0x0b, (byte) 0x30,
+            (byte) 0x09, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x08,
+            (byte) 0x13, (byte) 0x02, (byte) 0x43, (byte) 0x41, (byte) 0x31, (byte) 0x1b,
+            (byte) 0x30, (byte) 0x19, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04,
+            (byte) 0x0a, (byte) 0x13, (byte) 0x12, (byte) 0x41, (byte) 0x6e, (byte) 0x64,
+            (byte) 0x72, (byte) 0x6f, (byte) 0x69, (byte) 0x64, (byte) 0x20, (byte) 0x54,
+            (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x20, (byte) 0x43, (byte) 0x61,
+            (byte) 0x73, (byte) 0x65, (byte) 0x73, (byte) 0x31, (byte) 0x1c, (byte) 0x30,
+            (byte) 0x1a, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x04, (byte) 0x03,
+            (byte) 0x13, (byte) 0x13, (byte) 0x73, (byte) 0x65, (byte) 0x72, (byte) 0x76,
+            (byte) 0x65, (byte) 0x72, (byte) 0x31, (byte) 0x2e, (byte) 0x65, (byte) 0x78,
+            (byte) 0x61, (byte) 0x6d, (byte) 0x70, (byte) 0x6c, (byte) 0x65, (byte) 0x2e,
+            (byte) 0x63, (byte) 0x6f, (byte) 0x6d, (byte) 0x30, (byte) 0x81, (byte) 0x9f,
+            (byte) 0x30, (byte) 0x0d, (byte) 0x06, (byte) 0x09, (byte) 0x2a, (byte) 0x86,
+            (byte) 0x48, (byte) 0x86, (byte) 0xf7, (byte) 0x0d, (byte) 0x01, (byte) 0x01,
+            (byte) 0x01, (byte) 0x05, (byte) 0x00, (byte) 0x03, (byte) 0x81, (byte) 0x8d,
+            (byte) 0x00, (byte) 0x30, (byte) 0x81, (byte) 0x89, (byte) 0x02, (byte) 0x81,
+            (byte) 0x81, (byte) 0x00, (byte) 0xce, (byte) 0x29, (byte) 0xeb, (byte) 0xf6,
+            (byte) 0x5b, (byte) 0x25, (byte) 0xdc, (byte) 0xa1, (byte) 0xa6, (byte) 0x2c,
+            (byte) 0x66, (byte) 0xcb, (byte) 0x20, (byte) 0x90, (byte) 0x27, (byte) 0x86,
+            (byte) 0x8a, (byte) 0x44, (byte) 0x71, (byte) 0x50, (byte) 0xda, (byte) 0xd3,
+            (byte) 0x02, (byte) 0x77, (byte) 0x55, (byte) 0xe9, (byte) 0xe8, (byte) 0x08,
+            (byte) 0xf3, (byte) 0x36, (byte) 0x9a, (byte) 0xae, (byte) 0xab, (byte) 0x04,
+            (byte) 0x6d, (byte) 0x00, (byte) 0x99, (byte) 0xbf, (byte) 0x7d, (byte) 0x0f,
+            (byte) 0x67, (byte) 0x8b, (byte) 0x1d, (byte) 0xd4, (byte) 0x2b, (byte) 0x7c,
+            (byte) 0xcb, (byte) 0xcd, (byte) 0x33, (byte) 0xc7, (byte) 0x84, (byte) 0x30,
+            (byte) 0xe2, (byte) 0x45, (byte) 0x21, (byte) 0xb3, (byte) 0x75, (byte) 0xf5,
+            (byte) 0x79, (byte) 0x02, (byte) 0xda, (byte) 0x50, (byte) 0xa3, (byte) 0x8b,
+            (byte) 0xce, (byte) 0xc3, (byte) 0x8e, (byte) 0x0f, (byte) 0x25, (byte) 0xeb,
+            (byte) 0x08, (byte) 0x2c, (byte) 0xdd, (byte) 0x1c, (byte) 0xcf, (byte) 0xff,
+            (byte) 0x3b, (byte) 0xde, (byte) 0xb6, (byte) 0xaa, (byte) 0x2a, (byte) 0xa9,
+            (byte) 0xc4, (byte) 0x8a, (byte) 0x24, (byte) 0x24, (byte) 0xe6, (byte) 0x29,
+            (byte) 0x0d, (byte) 0x98, (byte) 0x4c, (byte) 0x32, (byte) 0xa1, (byte) 0x7b,
+            (byte) 0x23, (byte) 0x2b, (byte) 0x42, (byte) 0x30, (byte) 0xee, (byte) 0x78,
+            (byte) 0x08, (byte) 0x47, (byte) 0xad, (byte) 0xf2, (byte) 0x96, (byte) 0xd5,
+            (byte) 0xf1, (byte) 0x62, (byte) 0x42, (byte) 0x2d, (byte) 0x35, (byte) 0x19,
+            (byte) 0xb4, (byte) 0x3c, (byte) 0xc9, (byte) 0xc3, (byte) 0x5f, (byte) 0x03,
+            (byte) 0x16, (byte) 0x3a, (byte) 0x23, (byte) 0xac, (byte) 0xcb, (byte) 0xce,
+            (byte) 0x9e, (byte) 0x51, (byte) 0x2e, (byte) 0x6d, (byte) 0x02, (byte) 0x03,
+            (byte) 0x01, (byte) 0x00, (byte) 0x01, (byte) 0xa3, (byte) 0x7b, (byte) 0x30,
+            (byte) 0x79, (byte) 0x30, (byte) 0x09, (byte) 0x06, (byte) 0x03, (byte) 0x55,
+            (byte) 0x1d, (byte) 0x13, (byte) 0x04, (byte) 0x02, (byte) 0x30, (byte) 0x00,
+            (byte) 0x30, (byte) 0x2c, (byte) 0x06, (byte) 0x09, (byte) 0x60, (byte) 0x86,
+            (byte) 0x48, (byte) 0x01, (byte) 0x86, (byte) 0xf8, (byte) 0x42, (byte) 0x01,
+            (byte) 0x0d, (byte) 0x04, (byte) 0x1f, (byte) 0x16, (byte) 0x1d, (byte) 0x4f,
+            (byte) 0x70, (byte) 0x65, (byte) 0x6e, (byte) 0x53, (byte) 0x53, (byte) 0x4c,
+            (byte) 0x20, (byte) 0x47, (byte) 0x65, (byte) 0x6e, (byte) 0x65, (byte) 0x72,
+            (byte) 0x61, (byte) 0x74, (byte) 0x65, (byte) 0x64, (byte) 0x20, (byte) 0x43,
+            (byte) 0x65, (byte) 0x72, (byte) 0x74, (byte) 0x69, (byte) 0x66, (byte) 0x69,
+            (byte) 0x63, (byte) 0x61, (byte) 0x74, (byte) 0x65, (byte) 0x30, (byte) 0x1d,
+            (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x1d, (byte) 0x0e, (byte) 0x04,
+            (byte) 0x16, (byte) 0x04, (byte) 0x14, (byte) 0x32, (byte) 0xa1, (byte) 0x1e,
+            (byte) 0x6b, (byte) 0x69, (byte) 0x04, (byte) 0xfe, (byte) 0xb3, (byte) 0xcd,
+            (byte) 0xf8, (byte) 0xbb, (byte) 0x14, (byte) 0xcd, (byte) 0xff, (byte) 0xd4,
+            (byte) 0x16, (byte) 0xc3, (byte) 0xab, (byte) 0x44, (byte) 0x2f, (byte) 0x30,
+            (byte) 0x1f, (byte) 0x06, (byte) 0x03, (byte) 0x55, (byte) 0x1d, (byte) 0x23,
+            (byte) 0x04, (byte) 0x18, (byte) 0x30, (byte) 0x16, (byte) 0x80, (byte) 0x14,
+            (byte) 0x33, (byte) 0x05, (byte) 0xee, (byte) 0xfe, (byte) 0x6f, (byte) 0x60,
+            (byte) 0xc7, (byte) 0xf9, (byte) 0xa9, (byte) 0xd2, (byte) 0x73, (byte) 0x5c,
+            (byte) 0x8f, (byte) 0x6d, (byte) 0xa2, (byte) 0x2f, (byte) 0x97, (byte) 0x8e,
+            (byte) 0x5d, (byte) 0x51, (byte) 0x30, (byte) 0x0d, (byte) 0x06, (byte) 0x09,
+            (byte) 0x2a, (byte) 0x86, (byte) 0x48, (byte) 0x86, (byte) 0xf7, (byte) 0x0d,
+            (byte) 0x01, (byte) 0x01, (byte) 0x05, (byte) 0x05, (byte) 0x00, (byte) 0x03,
+            (byte) 0x81, (byte) 0x81, (byte) 0x00, (byte) 0x46, (byte) 0x42, (byte) 0xef,
+            (byte) 0x56, (byte) 0x89, (byte) 0x78, (byte) 0x90, (byte) 0x38, (byte) 0x24,
+            (byte) 0x9f, (byte) 0x8c, (byte) 0x7a, (byte) 0xce, (byte) 0x7a, (byte) 0xa5,
+            (byte) 0xb5, (byte) 0x1e, (byte) 0x74, (byte) 0x96, (byte) 0x34, (byte) 0x49,
+            (byte) 0x8b, (byte) 0xed, (byte) 0x44, (byte) 0xb3, (byte) 0xc9, (byte) 0x05,
+            (byte) 0xd7, (byte) 0x48, (byte) 0x55, (byte) 0x52, (byte) 0x59, (byte) 0x15,
+            (byte) 0x0b, (byte) 0xaa, (byte) 0x16, (byte) 0x86, (byte) 0xd2, (byte) 0x8e,
+            (byte) 0x16, (byte) 0x99, (byte) 0xe8, (byte) 0x5f, (byte) 0x11, (byte) 0x71,
+            (byte) 0x42, (byte) 0x55, (byte) 0xd1, (byte) 0xc4, (byte) 0x6f, (byte) 0x2e,
+            (byte) 0xa9, (byte) 0x64, (byte) 0x6f, (byte) 0xd8, (byte) 0xfd, (byte) 0x43,
+            (byte) 0x13, (byte) 0x24, (byte) 0xaa, (byte) 0x67, (byte) 0xe6, (byte) 0xf5,
+            (byte) 0xca, (byte) 0x80, (byte) 0x5e, (byte) 0x3a, (byte) 0x3e, (byte) 0xcc,
+            (byte) 0x4f, (byte) 0xba, (byte) 0x87, (byte) 0xe6, (byte) 0xae, (byte) 0xbf,
+            (byte) 0x8f, (byte) 0xd5, (byte) 0x28, (byte) 0x38, (byte) 0x58, (byte) 0x30,
+            (byte) 0x24, (byte) 0xf6, (byte) 0x53, (byte) 0x5b, (byte) 0x41, (byte) 0x53,
+            (byte) 0xe6, (byte) 0x45, (byte) 0xbc, (byte) 0xbe, (byte) 0xe6, (byte) 0xbb,
+            (byte) 0x5d, (byte) 0xd8, (byte) 0xa7, (byte) 0xf9, (byte) 0x64, (byte) 0x99,
+            (byte) 0x04, (byte) 0x43, (byte) 0x75, (byte) 0xd7, (byte) 0x2d, (byte) 0x32,
+            (byte) 0x0a, (byte) 0x94, (byte) 0xaf, (byte) 0x06, (byte) 0x34, (byte) 0xae,
+            (byte) 0x46, (byte) 0xbd, (byte) 0xda, (byte) 0x00, (byte) 0x0e, (byte) 0x25,
+            (byte) 0xc2, (byte) 0xf7, (byte) 0xc9, (byte) 0xc3, (byte) 0x65, (byte) 0xd2,
+            (byte) 0x08, (byte) 0x41, (byte) 0x0a, (byte) 0xf3, (byte) 0x72
+    };
+
+    /**
+     * The amount of time to allow before and after expected time for variance
+     * in timing tests.
+     */
+    private static final long SLOP_TIME_MILLIS = 15000L;
+
+    @Override
+    protected void setUp() throws Exception {
+        // Wipe any existing entries in the KeyStore
+        KeyStore ksTemp = KeyStore.getInstance("AndroidKeyStore");
+        ksTemp.load(null, null);
+        Enumeration<String> aliases = ksTemp.aliases();
+        while (aliases.hasMoreElements()) {
+            String alias = aliases.nextElement();
+            ksTemp.deleteEntry(alias);
+        }
+
+        // Get a new instance because some tests need it uninitialized
+        mKeyStore = KeyStore.getInstance("AndroidKeyStore");
+    }
+
+    private PrivateKey generatePrivateKey(byte[] fakeKey1) throws Exception {
+        KeyFactory kf = KeyFactory.getInstance("RSA");
+        return kf.generatePrivate(new PKCS8EncodedKeySpec(fakeKey1));
+    }
+
+    private Certificate generateCertificate(byte[] fakeUser1) throws Exception {
+        CertificateFactory cf = CertificateFactory.getInstance("X.509");
+        return cf.generateCertificate(new ByteArrayInputStream(fakeUser1));
+    }
+
+    private PrivateKeyEntry makeUserKey1() throws Exception {
+        return new KeyStore.PrivateKeyEntry(generatePrivateKey(FAKE_KEY_1), new Certificate[] {
+                generateCertificate(FAKE_USER_1), generateCertificate(FAKE_CA_1)
+        });
+    }
+
+    private Entry makeCa1() throws Exception {
+        return new KeyStore.TrustedCertificateEntry(generateCertificate(FAKE_CA_1));
+    }
+
+    private void assertAliases(final String[] expectedAliases) throws KeyStoreException {
+        final Enumeration<String> aliases = mKeyStore.aliases();
+        int count = 0;
+
+        final Set<String> expectedSet = new HashSet<String>();
+        expectedSet.addAll(Arrays.asList(expectedAliases));
+
+        while (aliases.hasMoreElements()) {
+            count++;
+            final String alias = aliases.nextElement();
+            assertTrue("The alias should be in the expected set", expectedSet.contains(alias));
+            expectedSet.remove(alias);
+        }
+        assertTrue("The expected set and actual set should be exactly equal", expectedSet.isEmpty());
+        assertEquals("There should be the correct number of keystore entries",
+                expectedAliases.length, count);
+    }
+
+    public void testKeyStore_Aliases_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        assertAliases(new String[] {});
+
+        mKeyStore.setEntry(TEST_ALIAS_1, makeUserKey1(), null);
+
+        assertAliases(new String[] { TEST_ALIAS_1 });
+
+        mKeyStore.setEntry(TEST_ALIAS_2, makeCa1(), null);
+
+        assertAliases(new String[] { TEST_ALIAS_1, TEST_ALIAS_2 });
+    }
+
+    public void testKeyStore_Aliases_NotInitialized_Unencrypted_Failure() throws Exception {
+        try {
+            mKeyStore.aliases();
+            fail("KeyStore should throw exception when not initialized");
+        } catch (KeyStoreException success) {
+        }
+    }
+
+    public void testKeyStore_ContainsAliases_PrivateAndCA_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        assertAliases(new String[] {});
+
+        mKeyStore.setEntry(TEST_ALIAS_1, makeUserKey1(), null);
+
+        assertTrue("Should contain generated private key", mKeyStore.containsAlias(TEST_ALIAS_1));
+
+        mKeyStore.setEntry(TEST_ALIAS_2, makeCa1(), null);
+
+        assertTrue("Should contain added CA certificate", mKeyStore.containsAlias(TEST_ALIAS_2));
+
+        assertFalse("Should not contain unadded certificate alias",
+                mKeyStore.containsAlias(TEST_ALIAS_3));
+    }
+
+    public void testKeyStore_ContainsAliases_CAOnly_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        mKeyStore.setEntry(TEST_ALIAS_2, makeCa1(), null);
+
+        assertTrue("Should contain added CA certificate", mKeyStore.containsAlias(TEST_ALIAS_2));
+    }
+
+    public void testKeyStore_ContainsAliases_NonExistent_Unencrypted_Failure() throws Exception {
+        mKeyStore.load(null, null);
+
+        assertFalse("Should contain added CA certificate", mKeyStore.containsAlias(TEST_ALIAS_1));
+    }
+
+    public void testKeyStore_DeleteEntry_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        // TEST_ALIAS_1
+        mKeyStore.setEntry(TEST_ALIAS_1, makeUserKey1(), null);
+
+        // TEST_ALIAS_2
+        mKeyStore.setCertificateEntry(TEST_ALIAS_2, generateCertificate(FAKE_CA_1));
+
+        // TEST_ALIAS_3
+        mKeyStore.setCertificateEntry(TEST_ALIAS_3, generateCertificate(FAKE_CA_1));
+
+        assertAliases(new String[] { TEST_ALIAS_1, TEST_ALIAS_2, TEST_ALIAS_3 });
+
+        mKeyStore.deleteEntry(TEST_ALIAS_1);
+
+        assertAliases(new String[] { TEST_ALIAS_2, TEST_ALIAS_3 });
+
+        mKeyStore.deleteEntry(TEST_ALIAS_3);
+
+        assertAliases(new String[] { TEST_ALIAS_2 });
+
+        mKeyStore.deleteEntry(TEST_ALIAS_2);
+
+        assertAliases(new String[] { });
+    }
+
+    public void testKeyStore_DeleteEntry_EmptyStore_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        // Should not throw when a non-existent entry is requested for delete.
+        mKeyStore.deleteEntry(TEST_ALIAS_1);
+    }
+
+    public void testKeyStore_DeleteEntry_NonExistent_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        // TEST_ALIAS_1
+        mKeyStore.setEntry(TEST_ALIAS_1, makeUserKey1(), null);
+
+        // Should not throw when a non-existent entry is requested for delete.
+        mKeyStore.deleteEntry(TEST_ALIAS_2);
+    }
+
+    public void testKeyStore_GetCertificate_Single_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        mKeyStore.setCertificateEntry(TEST_ALIAS_1, generateCertificate(FAKE_CA_1));
+
+        assertAliases(new String[] { TEST_ALIAS_1 });
+
+        assertNull("Certificate should not exist in keystore",
+                mKeyStore.getCertificate(TEST_ALIAS_2));
+
+        Certificate retrieved = mKeyStore.getCertificate(TEST_ALIAS_1);
+
+        assertNotNull("Retrieved certificate should not be null", retrieved);
+
+        CertificateFactory f = CertificateFactory.getInstance("X.509");
+        Certificate actual = f.generateCertificate(new ByteArrayInputStream(FAKE_CA_1));
+
+        assertEquals("Actual and retrieved certificates should be the same", actual, retrieved);
+    }
+
+    public void testKeyStore_GetCertificate_NonExist_Unencrypted_Failure() throws Exception {
+        mKeyStore.load(null, null);
+
+        assertNull("Certificate should not exist in keystore",
+                mKeyStore.getCertificate(TEST_ALIAS_1));
+    }
+
+    public void testKeyStore_GetCertificateAlias_CAEntry_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        Certificate cert = generateCertificate(FAKE_CA_1);
+        mKeyStore.setCertificateEntry(TEST_ALIAS_1, cert);
+
+        assertEquals("Stored certificate alias should be found", TEST_ALIAS_1,
+                mKeyStore.getCertificateAlias(cert));
+    }
+
+    public void testKeyStore_GetCertificateAlias_PrivateKeyEntry_Unencrypted_Success()
+            throws Exception {
+        mKeyStore.load(null, null);
+
+        mKeyStore.setEntry(TEST_ALIAS_1, makeUserKey1(), null);
+
+        CertificateFactory f = CertificateFactory.getInstance("X.509");
+        Certificate actual = f.generateCertificate(new ByteArrayInputStream(FAKE_USER_1));
+
+        assertEquals("Stored certificate alias should be found", TEST_ALIAS_1,
+                mKeyStore.getCertificateAlias(actual));
+    }
+
+    public void testKeyStore_GetCertificateAlias_CAEntry_WithPrivateKeyUsingCA_Unencrypted_Success()
+            throws Exception {
+        mKeyStore.load(null, null);
+
+        Certificate actual = generateCertificate(FAKE_CA_1);
+
+        // Insert TrustedCertificateEntry with CA name
+        mKeyStore.setCertificateEntry(TEST_ALIAS_2, actual);
+
+        // Insert PrivateKeyEntry that uses the same CA
+        mKeyStore.setEntry(TEST_ALIAS_1, makeUserKey1(), null);
+
+        assertEquals("Stored certificate alias should be found", TEST_ALIAS_2,
+                mKeyStore.getCertificateAlias(actual));
+    }
+
+    public void testKeyStore_GetCertificateAlias_NonExist_Empty_Unencrypted_Failure()
+            throws Exception {
+        mKeyStore.load(null, null);
+
+        CertificateFactory f = CertificateFactory.getInstance("X.509");
+        Certificate actual = f.generateCertificate(new ByteArrayInputStream(FAKE_CA_1));
+
+        assertNull("Stored certificate alias should not be found",
+                mKeyStore.getCertificateAlias(actual));
+    }
+
+    public void testKeyStore_GetCertificateAlias_NonExist_Unencrypted_Failure() throws Exception {
+        mKeyStore.load(null, null);
+
+        Certificate ca = generateCertificate(FAKE_CA_1);
+
+        // Insert TrustedCertificateEntry with CA name
+        mKeyStore.setCertificateEntry(TEST_ALIAS_1, ca);
+
+        Certificate userCert = generateCertificate(FAKE_USER_1);
+
+        assertNull("Stored certificate alias should be found",
+                mKeyStore.getCertificateAlias(userCert));
+    }
+
+    public void testKeyStore_GetCertificateChain_SingleLength_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        // TEST_ALIAS_1
+        mKeyStore.setEntry(TEST_ALIAS_1, makeUserKey1(), null);
+
+        Certificate[] expected = new Certificate[2];
+        expected[0] = generateCertificate(FAKE_USER_1);
+        expected[1] = generateCertificate(FAKE_CA_1);
+
+        Certificate[] actual = mKeyStore.getCertificateChain(TEST_ALIAS_1);
+
+        assertNotNull("Returned certificate chain should not be null", actual);
+        assertEquals("Returned certificate chain should be correct size", expected.length,
+                actual.length);
+        assertEquals("First certificate should be user certificate", expected[0], actual[0]);
+        assertEquals("Second certificate should be CA certificate", expected[1], actual[1]);
+
+        // Negative test when keystore is populated.
+        assertNull("Stored certificate alias should not be found",
+                mKeyStore.getCertificateChain(TEST_ALIAS_2));
+    }
+
+    public void testKeyStore_GetCertificateChain_NonExist_Unencrypted_Failure() throws Exception {
+        mKeyStore.load(null, null);
+
+        assertNull("Stored certificate alias should not be found",
+                mKeyStore.getCertificateChain(TEST_ALIAS_1));
+    }
+
+    public void testKeyStore_GetCreationDate_PrivateKeyEntry_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        // TEST_ALIAS_1
+        mKeyStore.setEntry(TEST_ALIAS_1, makeUserKey1(), null);
+
+        Date now = new Date();
+        Date actual = mKeyStore.getCreationDate(TEST_ALIAS_1);
+
+        Date expectedAfter = new Date(now.getTime() - SLOP_TIME_MILLIS);
+        Date expectedBefore = new Date(now.getTime() + SLOP_TIME_MILLIS);
+
+        assertTrue("Time should be close to current time", actual.before(expectedBefore));
+        assertTrue("Time should be close to current time", actual.after(expectedAfter));
+    }
+
+    public void testKeyStore_GetCreationDate_CAEntry_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        // Insert TrustedCertificateEntry with CA name
+        mKeyStore.setCertificateEntry(TEST_ALIAS_1, generateCertificate(FAKE_CA_1));
+
+        Date now = new Date();
+        Date actual = mKeyStore.getCreationDate(TEST_ALIAS_1);
+        assertNotNull("Certificate should be found", actual);
+
+        Date expectedAfter = new Date(now.getTime() - SLOP_TIME_MILLIS);
+        Date expectedBefore = new Date(now.getTime() + SLOP_TIME_MILLIS);
+
+        assertTrue("Time should be close to current time", actual.before(expectedBefore));
+        assertTrue("Time should be close to current time", actual.after(expectedAfter));
+    }
+
+    public void testKeyStore_GetEntry_NullParams_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        // TEST_ALIAS_1
+        mKeyStore.setEntry(TEST_ALIAS_1, makeUserKey1(), null);
+
+        Entry entry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+        assertNotNull("Entry should exist", entry);
+
+        assertTrue("Should be a PrivateKeyEntry", entry instanceof PrivateKeyEntry);
+
+        PrivateKeyEntry keyEntry = (PrivateKeyEntry) entry;
+
+        assertPrivateKeyEntryEquals(keyEntry, FAKE_KEY_1, FAKE_USER_1, FAKE_CA_1);
+    }
+
+    @SuppressWarnings("unchecked")
+    private void assertPrivateKeyEntryEquals(PrivateKeyEntry keyEntry, byte[] key, byte[] cert,
+            byte[] ca) throws Exception {
+        KeyFactory keyFact = KeyFactory.getInstance("RSA");
+        PrivateKey expectedKey = keyFact.generatePrivate(new PKCS8EncodedKeySpec(key));
+
+        CertificateFactory certFact = CertificateFactory.getInstance("X.509");
+        Certificate expectedCert = certFact.generateCertificate(new ByteArrayInputStream(cert));
+
+        final Collection<Certificate> expectedChain;
+        if (ca != null) {
+            expectedChain = (Collection<Certificate>) certFact
+                    .generateCertificates(new ByteArrayInputStream(ca));
+        } else {
+            expectedChain = null;
+        }
+
+        assertPrivateKeyEntryEquals(keyEntry, expectedKey, expectedCert, expectedChain);
+    }
+
+    private void assertPrivateKeyEntryEquals(PrivateKeyEntry keyEntry, PrivateKey expectedKey,
+            Certificate expectedCert, Collection<Certificate> expectedChain) throws Exception {
+        assertEquals("Returned PrivateKey should be what we inserted",
+                ((RSAPrivateKey) expectedKey).getModulus(),
+                ((RSAPrivateKey) keyEntry.getPrivateKey()).getModulus());
+
+        assertEquals("Returned Certificate should be what we inserted", expectedCert,
+                keyEntry.getCertificate());
+
+        Certificate[] actualChain = keyEntry.getCertificateChain();
+
+        assertEquals("First certificate in chain should be user cert", expectedCert, actualChain[0]);
+
+        if (expectedChain == null) {
+            assertEquals("Certificate chain should not include CAs", 1, actualChain.length);
+        } else {
+            assertEquals("Chains should be the same size", expectedChain.size() + 1,
+                    actualChain.length);
+            int i = 1;
+            final Iterator<Certificate> it = expectedChain.iterator();
+            while (it.hasNext() && i < actualChain.length) {
+                assertEquals("CA chain certificate should equal what we put in", it.next(),
+                        actualChain[i++]);
+            }
+        }
+    }
+
+    public void testKeyStore_GetEntry_Nonexistent_NullParams_Unencrypted_Failure() throws Exception {
+        mKeyStore.load(null, null);
+
+        assertNull("A non-existent entry should return null",
+                mKeyStore.getEntry(TEST_ALIAS_1, null));
+    }
+
+    public void testKeyStore_GetKey_NoPassword_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        // TEST_ALIAS_1
+        mKeyStore.setEntry(TEST_ALIAS_1, makeUserKey1(), null);
+
+        Key key = mKeyStore.getKey(TEST_ALIAS_1, null);
+        assertNotNull("Key should exist", key);
+
+        assertTrue("Should be a RSAPrivateKey", key instanceof RSAPrivateKey);
+
+        RSAPrivateKey actualKey = (RSAPrivateKey) key;
+
+        KeyFactory keyFact = KeyFactory.getInstance("RSA");
+        PrivateKey expectedKey = keyFact.generatePrivate(new PKCS8EncodedKeySpec(FAKE_KEY_1));
+
+        assertEquals("Inserted key should be same as retrieved key",
+                ((RSAPrivateKey) expectedKey).getModulus(), actualKey.getModulus());
+    }
+
+    public void testKeyStore_GetKey_Certificate_Unencrypted_Failure() throws Exception {
+        mKeyStore.load(null, null);
+
+        // Insert TrustedCertificateEntry with CA name
+        mKeyStore.setCertificateEntry(TEST_ALIAS_1, generateCertificate(FAKE_CA_1));
+
+        assertNull("Certificate entries should return null", mKeyStore.getKey(TEST_ALIAS_1, null));
+    }
+
+    public void testKeyStore_GetKey_NonExistent_Unencrypted_Failure() throws Exception {
+        mKeyStore.load(null, null);
+
+        assertNull("A non-existent entry should return null", mKeyStore.getKey(TEST_ALIAS_1, null));
+    }
+
+    public void testKeyStore_GetProvider_Unencrypted_Success() throws Exception {
+        assertEquals("AndroidKeyStore", mKeyStore.getProvider().getName());
+    }
+
+    public void testKeyStore_GetType_Unencrypted_Success() throws Exception {
+        assertEquals("AndroidKeyStore", mKeyStore.getType());
+    }
+
+    public void testKeyStore_IsCertificateEntry_CA_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        // Insert TrustedCertificateEntry with CA name
+        mKeyStore.setCertificateEntry(TEST_ALIAS_1, generateCertificate(FAKE_CA_1));
+
+        assertTrue("Should return true for CA certificate",
+                mKeyStore.isCertificateEntry(TEST_ALIAS_1));
+    }
+
+    public void testKeyStore_IsCertificateEntry_PrivateKey_Unencrypted_Failure() throws Exception {
+        mKeyStore.load(null, null);
+
+        // TEST_ALIAS_1
+        mKeyStore.setEntry(TEST_ALIAS_1, makeUserKey1(), null);
+
+        assertFalse("Should return false for PrivateKeyEntry",
+                mKeyStore.isCertificateEntry(TEST_ALIAS_1));
+    }
+
+    public void testKeyStore_IsCertificateEntry_NonExist_Unencrypted_Failure() throws Exception {
+        mKeyStore.load(null, null);
+
+        assertFalse("Should return false for non-existent entry",
+                mKeyStore.isCertificateEntry(TEST_ALIAS_1));
+    }
+
+    public void testKeyStore_IsKeyEntry_PrivateKey_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        // TEST_ALIAS_1
+        mKeyStore.setEntry(TEST_ALIAS_1, makeUserKey1(), null);
+
+        assertTrue("Should return true for PrivateKeyEntry", mKeyStore.isKeyEntry(TEST_ALIAS_1));
+    }
+
+    public void testKeyStore_IsKeyEntry_CA_Unencrypted_Failure() throws Exception {
+        mKeyStore.load(null, null);
+
+        mKeyStore.setCertificateEntry(TEST_ALIAS_1, generateCertificate(FAKE_CA_1));
+
+        assertFalse("Should return false for CA certificate", mKeyStore.isKeyEntry(TEST_ALIAS_1));
+    }
+
+    public void testKeyStore_IsKeyEntry_NonExist_Unencrypted_Failure() throws Exception {
+        mKeyStore.load(null, null);
+
+        assertFalse("Should return false for non-existent entry",
+                mKeyStore.isKeyEntry(TEST_ALIAS_1));
+    }
+
+    public void testKeyStore_SetCertificate_CA_Unencrypted_Success() throws Exception {
+        final Certificate actual = generateCertificate(FAKE_CA_1);
+
+        mKeyStore.load(null, null);
+
+        mKeyStore.setCertificateEntry(TEST_ALIAS_1, actual);
+        assertAliases(new String[] { TEST_ALIAS_1 });
+
+        Certificate retrieved = mKeyStore.getCertificate(TEST_ALIAS_1);
+
+        assertEquals("Retrieved certificate should be the same as the one inserted", actual,
+                retrieved);
+    }
+
+    public void testKeyStore_SetCertificate_CAExists_Overwrite_Unencrypted_Success()
+            throws Exception {
+        mKeyStore.load(null, null);
+
+        mKeyStore.setCertificateEntry(TEST_ALIAS_1, generateCertificate(FAKE_CA_1));
+
+        assertAliases(new String[] { TEST_ALIAS_1 });
+
+        final Certificate cert = generateCertificate(FAKE_CA_1);
+
+        // TODO have separate FAKE_CA for second test
+        mKeyStore.setCertificateEntry(TEST_ALIAS_1, cert);
+
+        assertAliases(new String[] { TEST_ALIAS_1 });
+    }
+
+    public void testKeyStore_SetCertificate_PrivateKeyExists_Unencrypted_Failure() throws Exception {
+        mKeyStore.load(null, null);
+
+        mKeyStore.setEntry(TEST_ALIAS_1, makeUserKey1(), null);
+
+        assertAliases(new String[] { TEST_ALIAS_1 });
+
+        final Certificate cert = generateCertificate(FAKE_CA_1);
+
+        try {
+            mKeyStore.setCertificateEntry(TEST_ALIAS_1, cert);
+            fail("Should throw when trying to overwrite a PrivateKey entry with a Certificate");
+        } catch (KeyStoreException success) {
+        }
+    }
+
+    public void testKeyStore_SetEntry_PrivateKeyEntry_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        KeyFactory keyFact = KeyFactory.getInstance("RSA");
+        PrivateKey expectedKey = keyFact.generatePrivate(new PKCS8EncodedKeySpec(FAKE_KEY_1));
+
+        final CertificateFactory f = CertificateFactory.getInstance("X.509");
+
+        final Certificate[] expectedChain = new Certificate[2];
+        expectedChain[0] = f.generateCertificate(new ByteArrayInputStream(FAKE_USER_1));
+        expectedChain[1] = f.generateCertificate(new ByteArrayInputStream(FAKE_CA_1));
+
+        PrivateKeyEntry expected = new PrivateKeyEntry(expectedKey, expectedChain);
+
+        mKeyStore.setEntry(TEST_ALIAS_1, expected, null);
+
+        Entry actualEntry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+        assertNotNull("Retrieved entry should exist", actualEntry);
+
+        assertTrue("Retrieved entry should be of type PrivateKeyEntry",
+                actualEntry instanceof PrivateKeyEntry);
+
+        PrivateKeyEntry actual = (PrivateKeyEntry) actualEntry;
+
+        assertPrivateKeyEntryEquals(actual, FAKE_KEY_1, FAKE_USER_1, FAKE_CA_1);
+    }
+
+    public void testKeyStore_SetEntry_PrivateKeyEntry_Params_Unencrypted_Failure() throws Exception {
+        mKeyStore.load(null, null);
+
+        KeyFactory keyFact = KeyFactory.getInstance("RSA");
+        PrivateKey expectedKey = keyFact.generatePrivate(new PKCS8EncodedKeySpec(FAKE_KEY_1));
+
+        final CertificateFactory f = CertificateFactory.getInstance("X.509");
+
+        final Certificate[] expectedChain = new Certificate[2];
+        expectedChain[0] = f.generateCertificate(new ByteArrayInputStream(FAKE_USER_1));
+        expectedChain[1] = f.generateCertificate(new ByteArrayInputStream(FAKE_CA_1));
+
+        PrivateKeyEntry entry = new PrivateKeyEntry(expectedKey, expectedChain);
+
+        try {
+            mKeyStore.setEntry(TEST_ALIAS_1, entry,
+                    new KeyStoreParameter.Builder(getContext())
+                    .setEncryptionRequired(true)
+                    .build());
+            fail("Shouldn't be able to insert encrypted entry when KeyStore uninitialized");
+        } catch (KeyStoreException expected) {
+        }
+
+        assertNull(mKeyStore.getEntry(TEST_ALIAS_1, null));
+    }
+
+    public void testKeyStore_SetEntry_PrivateKeyEntry_Overwrites_PrivateKeyEntry_Unencrypted_Success()
+            throws Exception {
+        mKeyStore.load(null, null);
+
+        final KeyFactory keyFact = KeyFactory.getInstance("RSA");
+        final CertificateFactory f = CertificateFactory.getInstance("X.509");
+
+        // Start with PrivateKeyEntry
+        {
+            PrivateKey expectedKey = keyFact.generatePrivate(new PKCS8EncodedKeySpec(FAKE_KEY_1));
+
+            final Certificate[] expectedChain = new Certificate[2];
+            expectedChain[0] = f.generateCertificate(new ByteArrayInputStream(FAKE_USER_1));
+            expectedChain[1] = f.generateCertificate(new ByteArrayInputStream(FAKE_CA_1));
+
+            PrivateKeyEntry expected = new PrivateKeyEntry(expectedKey, expectedChain);
+
+            mKeyStore.setEntry(TEST_ALIAS_1, expected, null);
+
+            Entry actualEntry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+            assertNotNull("Retrieved entry should exist", actualEntry);
+
+            assertTrue("Retrieved entry should be of type PrivateKeyEntry",
+                    actualEntry instanceof PrivateKeyEntry);
+
+            PrivateKeyEntry actual = (PrivateKeyEntry) actualEntry;
+
+            assertPrivateKeyEntryEquals(actual, FAKE_KEY_1, FAKE_USER_1, FAKE_CA_1);
+        }
+
+        // TODO make entirely new test vector for the overwrite
+        // Replace with PrivateKeyEntry
+        {
+            PrivateKey expectedKey = keyFact.generatePrivate(new PKCS8EncodedKeySpec(FAKE_KEY_1));
+
+            final Certificate[] expectedChain = new Certificate[2];
+            expectedChain[0] = f.generateCertificate(new ByteArrayInputStream(FAKE_USER_1));
+            expectedChain[1] = f.generateCertificate(new ByteArrayInputStream(FAKE_CA_1));
+
+            PrivateKeyEntry expected = new PrivateKeyEntry(expectedKey, expectedChain);
+
+            mKeyStore.setEntry(TEST_ALIAS_1, expected, null);
+
+            Entry actualEntry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+            assertNotNull("Retrieved entry should exist", actualEntry);
+
+            assertTrue("Retrieved entry should be of type PrivateKeyEntry",
+                    actualEntry instanceof PrivateKeyEntry);
+
+            PrivateKeyEntry actual = (PrivateKeyEntry) actualEntry;
+
+            assertPrivateKeyEntryEquals(actual, FAKE_KEY_1, FAKE_USER_1, FAKE_CA_1);
+        }
+    }
+
+    public void testKeyStore_SetEntry_CAEntry_Overwrites_PrivateKeyEntry_Unencrypted_Success()
+            throws Exception {
+        mKeyStore.load(null, null);
+
+        final CertificateFactory f = CertificateFactory.getInstance("X.509");
+
+        // Start with TrustedCertificateEntry
+        {
+            final Certificate caCert = f.generateCertificate(new ByteArrayInputStream(FAKE_CA_1));
+
+            TrustedCertificateEntry expectedCertEntry = new TrustedCertificateEntry(caCert);
+            mKeyStore.setEntry(TEST_ALIAS_1, expectedCertEntry, null);
+
+            Entry actualEntry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+            assertNotNull("Retrieved entry should exist", actualEntry);
+            assertTrue("Retrieved entry should be of type TrustedCertificateEntry",
+                    actualEntry instanceof TrustedCertificateEntry);
+            TrustedCertificateEntry actualCertEntry = (TrustedCertificateEntry) actualEntry;
+            assertEquals("Stored and retrieved certificates should be the same",
+                    expectedCertEntry.getTrustedCertificate(),
+                    actualCertEntry.getTrustedCertificate());
+        }
+
+        // Replace with PrivateKeyEntry
+        {
+            KeyFactory keyFact = KeyFactory.getInstance("RSA");
+            PrivateKey expectedKey = keyFact.generatePrivate(new PKCS8EncodedKeySpec(FAKE_KEY_1));
+            final Certificate[] expectedChain = new Certificate[2];
+            expectedChain[0] = f.generateCertificate(new ByteArrayInputStream(FAKE_USER_1));
+            expectedChain[1] = f.generateCertificate(new ByteArrayInputStream(FAKE_CA_1));
+
+            PrivateKeyEntry expectedPrivEntry = new PrivateKeyEntry(expectedKey, expectedChain);
+
+            mKeyStore.setEntry(TEST_ALIAS_1, expectedPrivEntry, null);
+
+            Entry actualEntry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+            assertNotNull("Retrieved entry should exist", actualEntry);
+            assertTrue("Retrieved entry should be of type PrivateKeyEntry",
+                    actualEntry instanceof PrivateKeyEntry);
+
+            PrivateKeyEntry actualPrivEntry = (PrivateKeyEntry) actualEntry;
+            assertPrivateKeyEntryEquals(actualPrivEntry, FAKE_KEY_1, FAKE_USER_1, FAKE_CA_1);
+        }
+    }
+
+    public void testKeyStore_SetEntry_PrivateKeyEntry_Overwrites_CAEntry_Unencrypted_Success()
+            throws Exception {
+        mKeyStore.load(null, null);
+
+        final CertificateFactory f = CertificateFactory.getInstance("X.509");
+
+        final Certificate caCert = f.generateCertificate(new ByteArrayInputStream(FAKE_CA_1));
+
+        // Start with PrivateKeyEntry
+        {
+            KeyFactory keyFact = KeyFactory.getInstance("RSA");
+            PrivateKey expectedKey = keyFact.generatePrivate(new PKCS8EncodedKeySpec(FAKE_KEY_1));
+            final Certificate[] expectedChain = new Certificate[2];
+            expectedChain[0] = f.generateCertificate(new ByteArrayInputStream(FAKE_USER_1));
+            expectedChain[1] = caCert;
+
+            PrivateKeyEntry expectedPrivEntry = new PrivateKeyEntry(expectedKey, expectedChain);
+
+            mKeyStore.setEntry(TEST_ALIAS_1, expectedPrivEntry, null);
+
+            Entry actualEntry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+            assertNotNull("Retrieved entry should exist", actualEntry);
+            assertTrue("Retrieved entry should be of type PrivateKeyEntry",
+                    actualEntry instanceof PrivateKeyEntry);
+
+            PrivateKeyEntry actualPrivEntry = (PrivateKeyEntry) actualEntry;
+            assertPrivateKeyEntryEquals(actualPrivEntry, FAKE_KEY_1, FAKE_USER_1, FAKE_CA_1);
+        }
+
+        // Replace with TrustedCertificateEntry
+        {
+            TrustedCertificateEntry expectedCertEntry = new TrustedCertificateEntry(caCert);
+            mKeyStore.setEntry(TEST_ALIAS_1, expectedCertEntry, null);
+
+            Entry actualEntry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+            assertNotNull("Retrieved entry should exist", actualEntry);
+            assertTrue("Retrieved entry should be of type TrustedCertificateEntry",
+                    actualEntry instanceof TrustedCertificateEntry);
+            TrustedCertificateEntry actualCertEntry = (TrustedCertificateEntry) actualEntry;
+            assertEquals("Stored and retrieved certificates should be the same",
+                    expectedCertEntry.getTrustedCertificate(),
+                    actualCertEntry.getTrustedCertificate());
+        }
+    }
+
+    public void testKeyStore_SetEntry_PrivateKeyEntry_Overwrites_ShortPrivateKeyEntry_Unencrypted_Success()
+            throws Exception {
+        mKeyStore.load(null, null);
+
+        final CertificateFactory f = CertificateFactory.getInstance("X.509");
+
+        final Certificate caCert = f.generateCertificate(new ByteArrayInputStream(FAKE_CA_1));
+
+        // Start with PrivateKeyEntry
+        {
+            KeyFactory keyFact = KeyFactory.getInstance("RSA");
+            PrivateKey expectedKey = keyFact.generatePrivate(new PKCS8EncodedKeySpec(FAKE_KEY_1));
+            final Certificate[] expectedChain = new Certificate[2];
+            expectedChain[0] = f.generateCertificate(new ByteArrayInputStream(FAKE_USER_1));
+            expectedChain[1] = caCert;
+
+            PrivateKeyEntry expectedPrivEntry = new PrivateKeyEntry(expectedKey, expectedChain);
+
+            mKeyStore.setEntry(TEST_ALIAS_1, expectedPrivEntry, null);
+
+            Entry actualEntry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+            assertNotNull("Retrieved entry should exist", actualEntry);
+            assertTrue("Retrieved entry should be of type PrivateKeyEntry",
+                    actualEntry instanceof PrivateKeyEntry);
+
+            PrivateKeyEntry actualPrivEntry = (PrivateKeyEntry) actualEntry;
+            assertPrivateKeyEntryEquals(actualPrivEntry, FAKE_KEY_1, FAKE_USER_1, FAKE_CA_1);
+        }
+
+        // Replace with PrivateKeyEntry that has no chain
+        {
+            KeyFactory keyFact = KeyFactory.getInstance("RSA");
+            PrivateKey expectedKey = keyFact.generatePrivate(new PKCS8EncodedKeySpec(FAKE_KEY_1));
+            final Certificate[] expectedChain = new Certificate[1];
+            expectedChain[0] = f.generateCertificate(new ByteArrayInputStream(FAKE_USER_1));
+
+            PrivateKeyEntry expectedPrivEntry = new PrivateKeyEntry(expectedKey, expectedChain);
+
+            mKeyStore.setEntry(TEST_ALIAS_1, expectedPrivEntry, null);
+
+            Entry actualEntry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+            assertNotNull("Retrieved entry should exist", actualEntry);
+            assertTrue("Retrieved entry should be of type PrivateKeyEntry",
+                    actualEntry instanceof PrivateKeyEntry);
+
+            PrivateKeyEntry actualPrivEntry = (PrivateKeyEntry) actualEntry;
+            assertPrivateKeyEntryEquals(actualPrivEntry, FAKE_KEY_1, FAKE_USER_1, null);
+        }
+    }
+
+    public void testKeyStore_SetEntry_CAEntry_Overwrites_CAEntry_Unencrypted_Success()
+            throws Exception {
+        mKeyStore.load(null, null);
+
+        final CertificateFactory f = CertificateFactory.getInstance("X.509");
+
+        // Insert TrustedCertificateEntry
+        {
+            final Certificate caCert = f.generateCertificate(new ByteArrayInputStream(FAKE_CA_1));
+
+            TrustedCertificateEntry expectedCertEntry = new TrustedCertificateEntry(caCert);
+            mKeyStore.setEntry(TEST_ALIAS_1, expectedCertEntry, null);
+
+            Entry actualEntry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+            assertNotNull("Retrieved entry should exist", actualEntry);
+            assertTrue("Retrieved entry should be of type TrustedCertificateEntry",
+                    actualEntry instanceof TrustedCertificateEntry);
+            TrustedCertificateEntry actualCertEntry = (TrustedCertificateEntry) actualEntry;
+            assertEquals("Stored and retrieved certificates should be the same",
+                    expectedCertEntry.getTrustedCertificate(),
+                    actualCertEntry.getTrustedCertificate());
+        }
+
+        // Replace with TrustedCertificateEntry of USER
+        {
+            final Certificate userCert = f
+                    .generateCertificate(new ByteArrayInputStream(FAKE_USER_1));
+
+            TrustedCertificateEntry expectedUserEntry = new TrustedCertificateEntry(userCert);
+            mKeyStore.setEntry(TEST_ALIAS_1, expectedUserEntry, null);
+
+            Entry actualEntry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+            assertNotNull("Retrieved entry should exist", actualEntry);
+            assertTrue("Retrieved entry should be of type TrustedCertificateEntry",
+                    actualEntry instanceof TrustedCertificateEntry);
+            TrustedCertificateEntry actualUserEntry = (TrustedCertificateEntry) actualEntry;
+            assertEquals("Stored and retrieved certificates should be the same",
+                    expectedUserEntry.getTrustedCertificate(),
+                    actualUserEntry.getTrustedCertificate());
+        }
+    }
+
+    public void testKeyStore_SetKeyEntry_ProtectedKey_Unencrypted_Failure() throws Exception {
+        mKeyStore.load(null, null);
+
+        final CertificateFactory f = CertificateFactory.getInstance("X.509");
+
+        final Certificate caCert = f.generateCertificate(new ByteArrayInputStream(FAKE_CA_1));
+
+        KeyFactory keyFact = KeyFactory.getInstance("RSA");
+        PrivateKey privKey = keyFact.generatePrivate(new PKCS8EncodedKeySpec(FAKE_KEY_1));
+        final Certificate[] chain = new Certificate[2];
+        chain[0] = f.generateCertificate(new ByteArrayInputStream(FAKE_USER_1));
+        chain[1] = caCert;
+
+        try {
+            mKeyStore.setKeyEntry(TEST_ALIAS_1, privKey, "foo".toCharArray(), chain);
+            fail("Should fail when a password is specified");
+        } catch (KeyStoreException success) {
+        }
+    }
+
+    public void testKeyStore_SetKeyEntry_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        final CertificateFactory f = CertificateFactory.getInstance("X.509");
+
+        final Certificate caCert = f.generateCertificate(new ByteArrayInputStream(FAKE_CA_1));
+
+        KeyFactory keyFact = KeyFactory.getInstance("RSA");
+        PrivateKey privKey = keyFact.generatePrivate(new PKCS8EncodedKeySpec(FAKE_KEY_1));
+        final Certificate[] chain = new Certificate[2];
+        chain[0] = f.generateCertificate(new ByteArrayInputStream(FAKE_USER_1));
+        chain[1] = caCert;
+
+        mKeyStore.setKeyEntry(TEST_ALIAS_1, privKey, null, chain);
+
+        Entry actualEntry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+        assertNotNull("Retrieved entry should exist", actualEntry);
+
+        assertTrue("Retrieved entry should be of type PrivateKeyEntry",
+                actualEntry instanceof PrivateKeyEntry);
+
+        PrivateKeyEntry actual = (PrivateKeyEntry) actualEntry;
+
+        assertPrivateKeyEntryEquals(actual, FAKE_KEY_1, FAKE_USER_1, FAKE_CA_1);
+    }
+
+    public void testKeyStore_SetKeyEntry_Replaced_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        final CertificateFactory f = CertificateFactory.getInstance("X.509");
+
+        final Certificate caCert = f.generateCertificate(new ByteArrayInputStream(FAKE_CA_1));
+
+        // Insert initial key
+        {
+            KeyFactory keyFact = KeyFactory.getInstance("RSA");
+            PrivateKey privKey = keyFact.generatePrivate(new PKCS8EncodedKeySpec(FAKE_KEY_1));
+            final Certificate[] chain = new Certificate[2];
+            chain[0] = f.generateCertificate(new ByteArrayInputStream(FAKE_USER_1));
+            chain[1] = caCert;
+
+            mKeyStore.setKeyEntry(TEST_ALIAS_1, privKey, null, chain);
+
+            Entry actualEntry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+            assertNotNull("Retrieved entry should exist", actualEntry);
+
+            assertTrue("Retrieved entry should be of type PrivateKeyEntry",
+                    actualEntry instanceof PrivateKeyEntry);
+
+            PrivateKeyEntry actual = (PrivateKeyEntry) actualEntry;
+
+            assertPrivateKeyEntryEquals(actual, FAKE_KEY_1, FAKE_USER_1, FAKE_CA_1);
+        }
+
+        // TODO make a separate key
+        // Replace key
+        {
+            KeyFactory keyFact = KeyFactory.getInstance("RSA");
+            PrivateKey privKey = keyFact.generatePrivate(new PKCS8EncodedKeySpec(FAKE_KEY_1));
+            final Certificate[] chain = new Certificate[2];
+            chain[0] = f.generateCertificate(new ByteArrayInputStream(FAKE_USER_1));
+            chain[1] = caCert;
+
+            mKeyStore.setKeyEntry(TEST_ALIAS_1, privKey, null, chain);
+
+            Entry actualEntry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+            assertNotNull("Retrieved entry should exist", actualEntry);
+
+            assertTrue("Retrieved entry should be of type PrivateKeyEntry",
+                    actualEntry instanceof PrivateKeyEntry);
+
+            PrivateKeyEntry actual = (PrivateKeyEntry) actualEntry;
+
+            assertPrivateKeyEntryEquals(actual, FAKE_KEY_1, FAKE_USER_1, FAKE_CA_1);
+        }
+    }
+
+    public void testKeyStore_SetKeyEntry_ReplacedChain_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        // Create key #1
+        {
+            KeyStore.PrivateKeyEntry privEntry = makeUserKey1();
+            mKeyStore.setEntry(TEST_ALIAS_1, privEntry, null);
+
+            Entry entry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+
+            assertTrue(entry instanceof PrivateKeyEntry);
+
+            PrivateKeyEntry keyEntry = (PrivateKeyEntry) entry;
+
+            ArrayList<Certificate> chain = new ArrayList<Certificate>();
+            chain.add(generateCertificate(FAKE_CA_1));
+            assertPrivateKeyEntryEquals(keyEntry, privEntry.getPrivateKey(),
+                    privEntry.getCertificate(), chain);
+        }
+
+        // Replace key #1 with new chain
+        {
+            Key key = mKeyStore.getKey(TEST_ALIAS_1, null);
+
+            assertTrue(key instanceof PrivateKey);
+
+            PrivateKey expectedKey = (PrivateKey) key;
+
+            Certificate expectedCert = generateCertificate(FAKE_USER_1);
+
+            mKeyStore.setKeyEntry(TEST_ALIAS_1, expectedKey, null,
+                    new Certificate[] { expectedCert });
+
+            Entry entry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+
+            assertTrue(entry instanceof PrivateKeyEntry);
+
+            PrivateKeyEntry keyEntry = (PrivateKeyEntry) entry;
+
+            assertPrivateKeyEntryEquals(keyEntry, expectedKey, expectedCert, null);
+        }
+    }
+
+    public void testKeyStore_SetKeyEntry_ReplacedChain_DifferentPrivateKey_Unencrypted_Failure()
+            throws Exception {
+        mKeyStore.load(null, null);
+
+        // Create key #1
+        mKeyStore.setEntry(TEST_ALIAS_1, makeUserKey1(), null);
+
+        // Create key #2
+        mKeyStore.setEntry(TEST_ALIAS_2, makeUserKey1(), null);
+
+
+        // Replace key #1 with key #2
+        {
+            Key key1 = mKeyStore.getKey(TEST_ALIAS_2, null);
+
+            Certificate cert = generateCertificate(FAKE_USER_1);
+
+            try {
+                mKeyStore.setKeyEntry(TEST_ALIAS_1, key1, null, new Certificate[] { cert });
+                fail("Should not allow setting of KeyEntry with wrong PrivaetKey");
+            } catch (KeyStoreException success) {
+            }
+        }
+    }
+
+    public void testKeyStore_SetKeyEntry_ReplacedWithSame_UnencryptedToUnencrypted_Failure()
+            throws Exception {
+        mKeyStore.load(null, null);
+
+        // Create key #1
+        mKeyStore.setEntry(TEST_ALIAS_1, makeUserKey1(), null);
+
+        // Replace with same
+        Entry entry = mKeyStore.getEntry(TEST_ALIAS_1, null);
+        mKeyStore.setEntry(TEST_ALIAS_1, entry, null);
+    }
+
+    public void testKeyStore_Size_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        mKeyStore.setCertificateEntry(TEST_ALIAS_1, generateCertificate(FAKE_CA_1));
+
+        assertEquals("The keystore size should match expected", 1, mKeyStore.size());
+        assertAliases(new String[] { TEST_ALIAS_1 });
+
+        mKeyStore.setCertificateEntry(TEST_ALIAS_2, generateCertificate(FAKE_CA_1));
+
+        assertEquals("The keystore size should match expected", 2, mKeyStore.size());
+        assertAliases(new String[] { TEST_ALIAS_1, TEST_ALIAS_2 });
+
+        mKeyStore.setEntry(TEST_ALIAS_3, makeUserKey1(), null);
+
+        assertEquals("The keystore size should match expected", 3, mKeyStore.size());
+        assertAliases(new String[] { TEST_ALIAS_1, TEST_ALIAS_2, TEST_ALIAS_3 });
+
+        mKeyStore.deleteEntry(TEST_ALIAS_1);
+
+        assertEquals("The keystore size should match expected", 2, mKeyStore.size());
+        assertAliases(new String[] { TEST_ALIAS_2, TEST_ALIAS_3 });
+
+        mKeyStore.deleteEntry(TEST_ALIAS_3);
+
+        assertEquals("The keystore size should match expected", 1, mKeyStore.size());
+        assertAliases(new String[] { TEST_ALIAS_2 });
+    }
+
+    public void testKeyStore_Store_LoadStoreParam_Unencrypted_Failure() throws Exception {
+        mKeyStore.load(null, null);
+
+        try {
+            mKeyStore.store(null);
+            fail("Should throw UnsupportedOperationException when trying to store");
+        } catch (UnsupportedOperationException success) {
+        }
+    }
+
+    public void testKeyStore_Load_InputStreamSupplied_Unencrypted_Failure() throws Exception {
+        byte[] buf = "FAKE KEYSTORE".getBytes();
+        ByteArrayInputStream is = new ByteArrayInputStream(buf);
+
+        try {
+            mKeyStore.load(is, null);
+            fail("Should throw IllegalArgumentException when InputStream is supplied");
+        } catch (IllegalArgumentException success) {
+        }
+    }
+
+    public void testKeyStore_Load_PasswordSupplied_Unencrypted_Failure() throws Exception {
+        try {
+            mKeyStore.load(null, "password".toCharArray());
+            fail("Should throw IllegalArgumentException when password is supplied");
+        } catch (IllegalArgumentException success) {
+        }
+    }
+
+    public void testKeyStore_Store_OutputStream_Unencrypted_Failure() throws Exception {
+        mKeyStore.load(null, null);
+
+        OutputStream sink = new ByteArrayOutputStream();
+        try {
+            mKeyStore.store(sink, null);
+            fail("Should throw UnsupportedOperationException when trying to store");
+        } catch (UnsupportedOperationException success) {
+        }
+
+        try {
+            mKeyStore.store(sink, "blah".toCharArray());
+            fail("Should throw UnsupportedOperationException when trying to store");
+        } catch (UnsupportedOperationException success) {
+        }
+    }
+
+    public void testKeyStore_KeyOperations_Wrap_Unencrypted_Success() throws Exception {
+        mKeyStore.load(null, null);
+
+        mKeyStore.setEntry(TEST_ALIAS_1, makeUserKey1(), null);
+
+        // Test key usage
+        Entry e = mKeyStore.getEntry(TEST_ALIAS_1, null);
+        assertNotNull(e);
+        assertTrue(e instanceof PrivateKeyEntry);
+
+        PrivateKeyEntry privEntry = (PrivateKeyEntry) e;
+        PrivateKey privKey = privEntry.getPrivateKey();
+        assertNotNull(privKey);
+
+        PublicKey pubKey = privEntry.getCertificate().getPublicKey();
+
+        Cipher c = Cipher.getInstance("RSA/ECB/PKCS1Padding");
+        c.init(Cipher.WRAP_MODE, pubKey);
+
+        byte[] expectedKey = new byte[] {
+                0x00, 0x05, (byte) 0xAA, (byte) 0x0A5, (byte) 0xFF, 0x55, 0x0A
+        };
+
+        SecretKey expectedSecret = new SecretKeySpec(expectedKey, "AES");
+
+        byte[] wrappedExpected = c.wrap(expectedSecret);
+
+        c.init(Cipher.UNWRAP_MODE, privKey);
+        SecretKey actualSecret = (SecretKey) c.unwrap(wrappedExpected, "AES", Cipher.SECRET_KEY);
+
+        assertEquals(Arrays.toString(expectedSecret.getEncoded()),
+                Arrays.toString(actualSecret.getEncoded()));
+    }
+}
diff --git a/tests/tests/keystore/src/android/keystore/cts/KeyPairGeneratorSpecTest.java b/tests/tests/keystore/src/android/keystore/cts/KeyPairGeneratorSpecTest.java
new file mode 100644
index 0000000..33c8955
--- /dev/null
+++ b/tests/tests/keystore/src/android/keystore/cts/KeyPairGeneratorSpecTest.java
@@ -0,0 +1,173 @@
+/*
+ * Copyright 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.keystore.cts;
+
+import android.security.KeyPairGeneratorSpec;
+import android.test.AndroidTestCase;
+
+import java.math.BigInteger;
+import java.util.Date;
+
+import javax.security.auth.x500.X500Principal;
+
+public class KeyPairGeneratorSpecTest extends AndroidTestCase {
+    private static final String TEST_ALIAS_1 = "test1";
+
+    private static final X500Principal TEST_DN_1 = new X500Principal("CN=test1");
+
+    private static final long NOW_MILLIS = System.currentTimeMillis();
+
+    private static final BigInteger SERIAL_1 = BigInteger.ONE;
+
+    /* We have to round this off because X509v3 doesn't store milliseconds. */
+    private static final Date NOW = new Date(NOW_MILLIS - (NOW_MILLIS % 1000L));
+
+    @SuppressWarnings("deprecation")
+    private static final Date NOW_PLUS_10_YEARS = new Date(NOW.getYear() + 10, 0, 1);
+
+    public void testBuilder_Unencrypted_Success() throws Exception {
+        KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(getContext())
+                .setAlias(TEST_ALIAS_1)
+                .setSubject(TEST_DN_1)
+                .setSerialNumber(SERIAL_1)
+                .setStartDate(NOW)
+                .setEndDate(NOW_PLUS_10_YEARS)
+                .build();
+
+        assertEquals("Context should be the one specified", getContext(), spec.getContext());
+
+        assertEquals("Alias should be the one specified", TEST_ALIAS_1, spec.getKeystoreAlias());
+
+        assertEquals("subjectDN should be the one specified", TEST_DN_1, spec.getSubjectDN());
+
+        assertEquals("startDate should be the one specified", NOW, spec.getStartDate());
+
+        assertEquals("endDate should be the one specified", NOW_PLUS_10_YEARS, spec.getEndDate());
+
+        assertFalse("encryption flag should not be on", spec.isEncryptionRequired());
+    }
+
+    public void testBuilder_Encrypted_Success() throws Exception {
+        KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(getContext())
+                .setAlias(TEST_ALIAS_1)
+                .setSubject(TEST_DN_1)
+                .setSerialNumber(SERIAL_1)
+                .setStartDate(NOW)
+                .setEndDate(NOW_PLUS_10_YEARS)
+                .setEncryptionRequired()
+                .build();
+
+        assertEquals("Context should be the one specified", getContext(), spec.getContext());
+
+        assertEquals("Alias should be the one specified", TEST_ALIAS_1, spec.getKeystoreAlias());
+
+        assertEquals("subjectDN should be the one specified", TEST_DN_1, spec.getSubjectDN());
+
+        assertEquals("startDate should be the one specified", NOW, spec.getStartDate());
+
+        assertEquals("endDate should be the one specified", NOW_PLUS_10_YEARS, spec.getEndDate());
+
+        assertTrue("encryption flag should be on", spec.isEncryptionRequired());
+    }
+
+    public void testBuilder_NullContext_Failure() throws Exception {
+        try {
+            new KeyPairGeneratorSpec.Builder(null);
+            fail("Should throw NullPointerException when context is null");
+        } catch (NullPointerException expected) {
+        }
+    }
+
+    public void testBuilder_MissingAlias_Failure() throws Exception {
+        try {
+            new KeyPairGeneratorSpec.Builder(getContext())
+                    .setSubject(TEST_DN_1)
+                    .setSerialNumber(SERIAL_1)
+                    .setStartDate(NOW)
+                    .setEndDate(NOW_PLUS_10_YEARS)
+                    .build();
+            fail("Should throw IllegalArgumentException when alias is missing");
+        } catch (IllegalArgumentException expected) {
+        }
+    }
+
+    public void testBuilder_MissingSubjectDN_Failure() throws Exception {
+        try {
+            new KeyPairGeneratorSpec.Builder(getContext())
+                    .setAlias(TEST_ALIAS_1)
+                    .setSerialNumber(SERIAL_1)
+                    .setStartDate(NOW)
+                    .setEndDate(NOW_PLUS_10_YEARS)
+                    .build();
+            fail("Should throw IllegalArgumentException when subject is missing");
+        } catch (IllegalArgumentException expected) {
+        }
+    }
+
+    public void testBuilder_MissingSerialNumber_Failure() throws Exception {
+        try {
+            new KeyPairGeneratorSpec.Builder(getContext())
+                    .setAlias(TEST_ALIAS_1)
+                    .setSubject(TEST_DN_1)
+                    .setStartDate(NOW)
+                    .setEndDate(NOW_PLUS_10_YEARS)
+                    .build();
+            fail("Should throw IllegalArgumentException when serialNumber is missing");
+        } catch (IllegalArgumentException expected) {
+        }
+    }
+
+    public void testBuilder_MissingStartDate_Failure() throws Exception {
+        try {
+            new KeyPairGeneratorSpec.Builder(getContext())
+                    .setAlias(TEST_ALIAS_1)
+                    .setSubject(TEST_DN_1)
+                    .setSerialNumber(SERIAL_1)
+                    .setEndDate(NOW_PLUS_10_YEARS)
+                    .build();
+            fail("Should throw IllegalArgumentException when startDate is missing");
+        } catch (IllegalArgumentException expected) {
+        }
+    }
+
+    public void testBuilder_MissingEndDate_Failure() throws Exception {
+        try {
+            new KeyPairGeneratorSpec.Builder(getContext())
+                    .setAlias(TEST_ALIAS_1)
+                    .setSubject(TEST_DN_1)
+                    .setSerialNumber(SERIAL_1)
+                    .setStartDate(NOW)
+                    .build();
+            fail("Should throw IllegalArgumentException when endDate is missing");
+        } catch (IllegalArgumentException expected) {
+        }
+    }
+
+    public void testBuilder_EndBeforeStart_Failure() throws Exception {
+        try {
+            new KeyPairGeneratorSpec.Builder(getContext())
+                    .setAlias(TEST_ALIAS_1)
+                    .setSubject(TEST_DN_1)
+                    .setSerialNumber(SERIAL_1)
+                    .setStartDate(NOW_PLUS_10_YEARS)
+                    .setEndDate(NOW)
+                    .build();
+            fail("Should throw IllegalArgumentException when end is before start");
+        } catch (IllegalArgumentException expected) {
+        }
+    }
+}
diff --git a/tests/tests/location/src/android/location/cts/LocationManagerTest.java b/tests/tests/location/src/android/location/cts/LocationManagerTest.java
index edfda5a..2a2274c 100755
--- a/tests/tests/location/src/android/location/cts/LocationManagerTest.java
+++ b/tests/tests/location/src/android/location/cts/LocationManagerTest.java
@@ -291,7 +291,7 @@
     }
 
     /**
-     * Helper method to test a location update with given provider
+     * Helper method to test a location update with given mock location provider
      *
      * @param providerName name of provider to test. Must already exist.
      * @throws InterruptedException
@@ -322,6 +322,7 @@
         assertEquals(providerName, location.getProvider());
         assertEquals(latitude1, location.getLatitude());
         assertEquals(longitude1, location.getLongitude());
+        assertEquals(true, location.isFromMockProvider());
 
         // update location without notifying listener
         listener.reset();
@@ -373,6 +374,7 @@
         assertEquals(TEST_MOCK_PROVIDER_NAME, location.getProvider());
         assertEquals(latitude1, location.getLatitude());
         assertEquals(longitude1, location.getLongitude());
+        assertEquals(true, location.isFromMockProvider());
 
         // update location without notifying listener
         mManager.removeUpdates(listener);
@@ -420,6 +422,7 @@
         assertEquals(TEST_MOCK_PROVIDER_NAME, location.getProvider());
         assertEquals(latitude1, location.getLatitude());
         assertEquals(longitude1, location.getLongitude());
+        assertEquals(true, location.isFromMockProvider());
 
         // update location without receiving broadcast.
         mManager.removeUpdates(mPendingIntent);
@@ -509,6 +512,7 @@
         assertEquals(TEST_MOCK_PROVIDER_NAME, location.getProvider());
         assertEquals(latitude1, location.getLatitude());
         assertEquals(longitude1, location.getLongitude());
+        assertEquals(true, location.isFromMockProvider());
 
         mIntentReceiver.clearReceivedIntents();
         updateLocation(latitude2, longitude2);
@@ -519,6 +523,7 @@
         assertEquals(TEST_MOCK_PROVIDER_NAME, location.getProvider());
         assertEquals(latitude2, location.getLatitude());
         assertEquals(longitude2, location.getLongitude());
+        assertEquals(true, location.isFromMockProvider());
 
         try {
             mManager.getLastKnownLocation(null);
@@ -655,6 +660,13 @@
         // update location to outside proximity range
         updateLocationAndWait(FUSED_PROVIDER_NAME, 30, 30);
         registerProximityListener(0, 0, 1000, expiration);
+
+        // Adding geofences is asynchronous, the return of LocationManager.addProximityAlert
+        // doesn't mean that geofences are already being monitored. Wait for a few milliseconds
+        // so that GeofenceManager is actively monitoring locations before we send the mock
+        // location to avoid flaky tests.
+        Thread.sleep(500);
+
         updateLocationAndWait(FUSED_PROVIDER_NAME, 0, 0);
         waitForReceiveBroadcast();
         assertProximityType(true);
@@ -678,6 +690,7 @@
         assertEquals(providerName, location.getProvider());
         assertEquals(latitude, location.getLatitude());
         assertEquals(longitude, location.getLongitude());
+        assertEquals(true, location.isFromMockProvider());
 
         // Remove the listener.
         mManager.removeUpdates(listener);
diff --git a/tests/tests/media/res/raw/loudsoftaac.aac b/tests/tests/media/res/raw/loudsoftaac.aac
new file mode 100644
index 0000000..1534ef2
--- /dev/null
+++ b/tests/tests/media/res/raw/loudsoftaac.aac
Binary files differ
diff --git a/tests/tests/media/res/raw/loudsoftfaac.m4a b/tests/tests/media/res/raw/loudsoftfaac.m4a
new file mode 100644
index 0000000..b4895b5
--- /dev/null
+++ b/tests/tests/media/res/raw/loudsoftfaac.m4a
Binary files differ
diff --git a/tests/tests/media/res/raw/loudsoftitunes.m4a b/tests/tests/media/res/raw/loudsoftitunes.m4a
new file mode 100644
index 0000000..b01b36b
--- /dev/null
+++ b/tests/tests/media/res/raw/loudsoftitunes.m4a
Binary files differ
diff --git a/tests/tests/media/res/raw/loudsoftmp3.mp3 b/tests/tests/media/res/raw/loudsoftmp3.mp3
new file mode 100644
index 0000000..b32c8bd
--- /dev/null
+++ b/tests/tests/media/res/raw/loudsoftmp3.mp3
Binary files differ
diff --git a/tests/tests/media/res/raw/loudsoftogg.ogg b/tests/tests/media/res/raw/loudsoftogg.ogg
new file mode 100644
index 0000000..dc122d9
--- /dev/null
+++ b/tests/tests/media/res/raw/loudsoftogg.ogg
Binary files differ
diff --git a/tests/tests/media/res/raw/loudsoftwav.wav b/tests/tests/media/res/raw/loudsoftwav.wav
new file mode 100644
index 0000000..9930dcb
--- /dev/null
+++ b/tests/tests/media/res/raw/loudsoftwav.wav
Binary files differ
diff --git a/tests/tests/media/res/raw/video_176x144_yv12.raw b/tests/tests/media/res/raw/video_176x144_yv12.raw
new file mode 100644
index 0000000..23af164
--- /dev/null
+++ b/tests/tests/media/res/raw/video_176x144_yv12.raw
Binary files differ
diff --git a/tests/tests/media/res/raw/video_only_176x144_3gp_h263_25fps.mp4 b/tests/tests/media/res/raw/video_only_176x144_3gp_h263_25fps.mp4
new file mode 100644
index 0000000..944a56d
--- /dev/null
+++ b/tests/tests/media/res/raw/video_only_176x144_3gp_h263_25fps.mp4
Binary files differ
diff --git a/tests/tests/media/src/android/media/cts/AudioManagerTest.java b/tests/tests/media/src/android/media/cts/AudioManagerTest.java
index 9500606..4a74b47 100644
--- a/tests/tests/media/src/android/media/cts/AudioManagerTest.java
+++ b/tests/tests/media/src/android/media/cts/AudioManagerTest.java
@@ -54,6 +54,7 @@
     private final static long TIME_TO_PLAY = 2000;
     private AudioManager mAudioManager;
     private boolean mHasVibrator;
+    private boolean mUseFixedVolume;
 
     @Override
     protected void setUp() throws Exception {
@@ -61,6 +62,8 @@
         mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
         Vibrator vibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
         mHasVibrator = (vibrator != null) && vibrator.hasVibrator();
+        mUseFixedVolume = mContext.getResources().getBoolean(
+                                            com.android.internal.R.bool.config_useFixedVolume);
     }
 
     public void testMicrophoneMute() throws Exception {
@@ -168,6 +171,9 @@
     }
 
     public void testVibrateNotification() throws Exception {
+        if (mUseFixedVolume) {
+            return;
+        }
         // VIBRATE_SETTING_ON
         mAudioManager.setVibrateSetting(VIBRATE_TYPE_NOTIFICATION, VIBRATE_SETTING_ON);
         assertEquals(mHasVibrator ? VIBRATE_SETTING_ON : VIBRATE_SETTING_OFF,
@@ -226,6 +232,9 @@
     }
 
     public void testVibrateRinger() throws Exception {
+        if (mUseFixedVolume) {
+            return;
+        }
         // VIBRATE_TYPE_RINGER
         mAudioManager.setVibrateSetting(VIBRATE_TYPE_RINGER, VIBRATE_SETTING_ON);
         assertEquals(mHasVibrator ? VIBRATE_SETTING_ON : VIBRATE_SETTING_OFF,
@@ -289,11 +298,19 @@
         assertEquals(RINGER_MODE_NORMAL, mAudioManager.getRingerMode());
 
         mAudioManager.setRingerMode(RINGER_MODE_SILENT);
-        assertEquals(RINGER_MODE_SILENT, mAudioManager.getRingerMode());
+        if (mUseFixedVolume) {
+            assertEquals(RINGER_MODE_NORMAL, mAudioManager.getRingerMode());
+        } else {
+            assertEquals(RINGER_MODE_SILENT, mAudioManager.getRingerMode());
+        }
 
         mAudioManager.setRingerMode(RINGER_MODE_VIBRATE);
-        assertEquals(mHasVibrator ? RINGER_MODE_VIBRATE : RINGER_MODE_SILENT,
-                mAudioManager.getRingerMode());
+        if (mUseFixedVolume) {
+            assertEquals(RINGER_MODE_NORMAL, mAudioManager.getRingerMode());
+        } else {
+            assertEquals(mHasVibrator ? RINGER_MODE_VIBRATE : RINGER_MODE_SILENT,
+                    mAudioManager.getRingerMode());
+        }
     }
 
     public void testVolume() throws Exception {
@@ -314,6 +331,10 @@
             int maxVolume = mAudioManager.getStreamMaxVolume(streams[i]);
 
             mAudioManager.setStreamVolume(streams[i], 1, 0);
+            if (mUseFixedVolume) {
+                assertEquals(maxVolume, mAudioManager.getStreamVolume(streams[i]));
+                continue;
+            }
             assertEquals(1, mAudioManager.getStreamVolume(streams[i]));
 
             if (streams[i] == AudioManager.STREAM_MUSIC && mAudioManager.isWiredHeadsetOn()) {
@@ -363,6 +384,10 @@
             mAudioManager.setStreamVolume(streams[i], maxVolume, 0);
         }
 
+        if (mUseFixedVolume) {
+            return;
+        }
+
         // adjust volume
         mAudioManager.adjustVolume(ADJUST_RAISE, 0);
 
diff --git a/tests/tests/media/src/android/media/cts/AudioTrackTest.java b/tests/tests/media/src/android/media/cts/AudioTrackTest.java
index 2ba7c63..ac8379a 100644
--- a/tests/tests/media/src/android/media/cts/AudioTrackTest.java
+++ b/tests/tests/media/src/android/media/cts/AudioTrackTest.java
@@ -592,9 +592,9 @@
         AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT,
                 minBuffSize, TEST_MODE);
         // -------- test --------------
-        assertTrue(TEST_NAME, track.getState() == AudioTrack.STATE_NO_STATIC_DATA);
-        assertTrue(TEST_NAME,
-                track.setPlaybackRate(TEST_SR / 2) == AudioTrack.ERROR_INVALID_OPERATION);
+        assertEquals(TEST_NAME, AudioTrack.STATE_NO_STATIC_DATA, track.getState());
+        assertEquals(TEST_NAME, AudioTrack.ERROR_INVALID_OPERATION,
+                track.setPlaybackRate(TEST_SR / 2));
         // -------- tear down --------------
         track.release();
     }
@@ -636,7 +636,7 @@
         final int TEST_SR = 22050;
         final int TEST_CONF = AudioFormat.CHANNEL_CONFIGURATION_MONO;
         final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT;
-        final int TEST_MODE = AudioTrack.MODE_STREAM;
+        final int TEST_MODE = AudioTrack.MODE_STATIC;
         final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC;
 
         // -------- initialization --------------
@@ -645,13 +645,14 @@
                 2 * minBuffSize, TEST_MODE);
         byte data[] = new byte[minBuffSize];
         // -------- test --------------
-        assertTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED);
+        assertEquals(TEST_NAME, AudioTrack.STATE_NO_STATIC_DATA, track.getState());
         track.write(data, OFFSET_DEFAULT, data.length);
         track.write(data, OFFSET_DEFAULT, data.length);
+        assertEquals(TEST_NAME, AudioTrack.STATE_INITIALIZED, track.getState());
         track.play();
         track.stop();
-        assertTrue(TEST_NAME, track.getPlayState() == AudioTrack.PLAYSTATE_STOPPED);
-        assertTrue(TEST_NAME, track.setPlaybackHeadPosition(10) == AudioTrack.SUCCESS);
+        assertEquals(TEST_NAME, AudioTrack.PLAYSTATE_STOPPED, track.getPlayState());
+        assertEquals(TEST_NAME, AudioTrack.SUCCESS, track.setPlaybackHeadPosition(10));
         // -------- tear down --------------
         track.release();
     }
@@ -663,7 +664,7 @@
         final int TEST_SR = 22050;
         final int TEST_CONF = AudioFormat.CHANNEL_CONFIGURATION_MONO;
         final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT;
-        final int TEST_MODE = AudioTrack.MODE_STREAM;
+        final int TEST_MODE = AudioTrack.MODE_STATIC;
         final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC;
 
         // -------- initialization --------------
@@ -672,13 +673,14 @@
                 2 * minBuffSize, TEST_MODE);
         byte data[] = new byte[minBuffSize];
         // -------- test --------------
-        assertTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED);
+        assertEquals(TEST_NAME, AudioTrack.STATE_NO_STATIC_DATA, track.getState());
         track.write(data, OFFSET_DEFAULT, data.length);
         track.write(data, OFFSET_DEFAULT, data.length);
+        assertEquals(TEST_NAME, AudioTrack.STATE_INITIALIZED, track.getState());
         track.play();
         track.pause();
-        assertTrue(TEST_NAME, track.getPlayState() == AudioTrack.PLAYSTATE_PAUSED);
-        assertTrue(TEST_NAME, track.setPlaybackHeadPosition(10) == AudioTrack.SUCCESS);
+        assertEquals(TEST_NAME, AudioTrack.PLAYSTATE_PAUSED, track.getPlayState());
+        assertEquals(TEST_NAME, AudioTrack.SUCCESS, track.setPlaybackHeadPosition(10));
         // -------- tear down --------------
         track.release();
     }
@@ -690,7 +692,7 @@
         final int TEST_SR = 22050;
         final int TEST_CONF = AudioFormat.CHANNEL_CONFIGURATION_MONO;
         final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT;
-        final int TEST_MODE = AudioTrack.MODE_STREAM;
+        final int TEST_MODE = AudioTrack.MODE_STATIC;
         final int TEST_STREAM_TYPE = AudioManager.STREAM_MUSIC;
 
         // -------- initialization --------------
@@ -703,14 +705,15 @@
         // count (given the audio track properties), and add 77.
         int frameIndexTooFar = (2 * minBuffSize / 2) + 77;
         // -------- test --------------
-        assertTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED);
+        assertEquals(TEST_NAME, AudioTrack.STATE_NO_STATIC_DATA, track.getState());
         track.write(data, OFFSET_DEFAULT, data.length);
         track.write(data, OFFSET_DEFAULT, data.length);
+        assertEquals(TEST_NAME, AudioTrack.STATE_INITIALIZED, track.getState());
         track.play();
         track.stop();
-        assertTrue(TEST_NAME, track.getPlayState() == AudioTrack.PLAYSTATE_STOPPED);
-        assertTrue(TEST_NAME,
-                track.setPlaybackHeadPosition(frameIndexTooFar) == AudioTrack.ERROR_BAD_VALUE);
+        assertEquals(TEST_NAME, AudioTrack.PLAYSTATE_STOPPED, track.getPlayState());
+        assertEquals(TEST_NAME, AudioTrack.ERROR_BAD_VALUE,
+                track.setPlaybackHeadPosition(frameIndexTooFar));
         // -------- tear down --------------
         track.release();
     }
@@ -1125,7 +1128,7 @@
         byte data[] = new byte[minBuffSize];
         // -------- test --------------
         assertTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED);
-        assertTrue(TEST_NAME, track.write(data, OFFSET_DEFAULT, data.length) == data.length);
+        assertEquals(TEST_NAME, data.length, track.write(data, OFFSET_DEFAULT, data.length));
         // -------- tear down --------------
         track.release();
     }
@@ -1148,7 +1151,7 @@
         short data[] = new short[minBuffSize / 2];
         // -------- test --------------
         assertTrue(TEST_NAME, track.getState() == AudioTrack.STATE_INITIALIZED);
-        assertTrue(TEST_NAME, track.write(data, OFFSET_DEFAULT, data.length) == data.length);
+        assertEquals(TEST_NAME, data.length, track.write(data, OFFSET_DEFAULT, data.length));
         // -------- tear down --------------
         track.release();
     }
diff --git a/tests/tests/media/src/android/media/cts/DecodeEditEncodeTest.java b/tests/tests/media/src/android/media/cts/DecodeEditEncodeTest.java
new file mode 100644
index 0000000..be2dc54
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/DecodeEditEncodeTest.java
@@ -0,0 +1,921 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.media.cts;
+
+import android.media.MediaCodec;
+import android.media.MediaCodecInfo;
+import android.media.MediaCodecList;
+import android.media.MediaFormat;
+import android.opengl.GLES20;
+import android.test.AndroidTestCase;
+import android.util.Log;
+
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+
+import javax.microedition.khronos.opengles.GL10;
+
+
+/**
+ * This test has three steps:
+ * <ol>
+ *   <li>Generate a video test stream.
+ *   <li>Decode the video from the stream, rendering frames into a SurfaceTexture.
+ *       Render the texture onto a Surface that feeds a video encoder, modifying
+ *       the output with a fragment shader.
+ *   <li>Decode the second video and compare it to the expected result.
+ * </ol><p>
+ * The second step is a typical scenario for video editing.  We could do all this in one
+ * step, feeding data through multiple stages of MediaCodec, but at some point we're
+ * no longer exercising the code in the way we expect it to be used (and the code
+ * gets a bit unwieldy).
+ */
+public class DecodeEditEncodeTest extends AndroidTestCase {
+    private static final String TAG = "DecodeEditEncode";
+    private static final boolean WORK_AROUND_BUGS = false;  // avoid fatal codec bugs
+    private static final boolean VERBOSE = false;           // lots of logging
+    private static final boolean DEBUG_SAVE_FILE = false;   // save copy of encoded movie
+    private static final String DEBUG_FILE_NAME_BASE = "/sdcard/test.";
+
+    // parameters for the encoder
+    private static final String MIME_TYPE = "video/avc";    // H.264 Advanced Video Coding
+    private static final int FRAME_RATE = 15;               // 15fps
+    private static final int IFRAME_INTERVAL = 10;          // 10 seconds between I-frames
+
+    // movie length, in frames
+    private static final int NUM_FRAMES = 30;               // two seconds of video
+
+    private static final int TEST_R0 = 0;                   // dull green background
+    private static final int TEST_G0 = 136;
+    private static final int TEST_B0 = 0;
+    private static final int TEST_R1 = 236;                 // pink; BT.601 YUV {120,160,200}
+    private static final int TEST_G1 = 50;
+    private static final int TEST_B1 = 186;
+
+    // Replaces TextureRender.FRAGMENT_SHADER during edit; swaps green and blue channels.
+    private static final String FRAGMENT_SHADER =
+            "#extension GL_OES_EGL_image_external : require\n" +
+            "precision mediump float;\n" +
+            "varying vec2 vTextureCoord;\n" +
+            "uniform samplerExternalOES sTexture;\n" +
+            "void main() {\n" +
+            "  gl_FragColor = texture2D(sTexture, vTextureCoord).rbga;\n" +
+            "}\n";
+
+    // size of a frame, in pixels
+    private int mWidth = -1;
+    private int mHeight = -1;
+    // bit rate, in bits per second
+    private int mBitRate = -1;
+
+    // largest color component delta seen (i.e. actual vs. expected)
+    private int mLargestColorDelta;
+
+
+    public void testVideoEditQCIF() throws Throwable {
+        setParameters(176, 144, 1000000);
+        VideoEditWrapper.runTest(this);
+    }
+    public void testVideoEditQVGA() throws Throwable {
+        setParameters(320, 240, 2000000);
+        VideoEditWrapper.runTest(this);
+    }
+    public void testVideoEdit720p() throws Throwable {
+        setParameters(1280, 720, 6000000);
+        VideoEditWrapper.runTest(this);
+    }
+
+    /**
+     * Wraps testEditVideo, running it in a new thread.  Required because of the way
+     * SurfaceTexture.OnFrameAvailableListener works when the current thread has a Looper
+     * configured.
+     */
+    private static class VideoEditWrapper implements Runnable {
+        private Throwable mThrowable;
+        private DecodeEditEncodeTest mTest;
+
+        private VideoEditWrapper(DecodeEditEncodeTest test) {
+            mTest = test;
+        }
+
+        @Override
+        public void run() {
+            try {
+                mTest.videoEditTest();
+            } catch (Throwable th) {
+                mThrowable = th;
+            }
+        }
+
+        /** Entry point. */
+        public static void runTest(DecodeEditEncodeTest obj) throws Throwable {
+            VideoEditWrapper wrapper = new VideoEditWrapper(obj);
+            Thread th = new Thread(wrapper, "codec test");
+            th.start();
+            th.join();
+            if (wrapper.mThrowable != null) {
+                throw wrapper.mThrowable;
+            }
+        }
+    }
+
+    /**
+     * Sets the desired frame size and bit rate.
+     */
+    private void setParameters(int width, int height, int bitRate) {
+        if ((width % 16) != 0 || (height % 16) != 0) {
+            Log.w(TAG, "WARNING: width or height not multiple of 16");
+        }
+        mWidth = width;
+        mHeight = height;
+        mBitRate = bitRate;
+    }
+
+    /**
+     * Tests editing of a video file with GL.
+     */
+    private void videoEditTest() {
+        VideoChunks sourceChunks = new VideoChunks();
+
+        if (!generateVideoFile(sourceChunks)) {
+            // No AVC codec?  Fail silently.
+            return;
+        }
+
+        if (DEBUG_SAVE_FILE) {
+            // Save a copy to a file.  We call it ".mp4", but it's actually just an elementary
+            // stream, so not all video players will know what to do with it.
+            String dirName = getContext().getFilesDir().getAbsolutePath();
+            String fileName = "vedit1_" + mWidth + "x" + mHeight + ".mp4";
+            sourceChunks.saveToFile(new File(dirName, fileName));
+        }
+
+        VideoChunks destChunks = editVideoFile(sourceChunks);
+
+        if (DEBUG_SAVE_FILE) {
+            String dirName = getContext().getFilesDir().getAbsolutePath();
+            String fileName = "vedit2_" + mWidth + "x" + mHeight + ".mp4";
+            destChunks.saveToFile(new File(dirName, fileName));
+        }
+
+        checkVideoFile(destChunks);
+    }
+
+    /**
+     * Generates a test video file, saving it as VideoChunks.  We generate frames with GL to
+     * avoid having to deal with multiple YUV formats.
+     *
+     * @return true on success, false on "soft" failure
+     */
+    private boolean generateVideoFile(VideoChunks output) {
+        if (VERBOSE) Log.d(TAG, "generateVideoFile " + mWidth + "x" + mHeight);
+        MediaCodec encoder = null;
+        InputSurface inputSurface = null;
+
+        try {
+            MediaCodecInfo codecInfo = selectCodec(MIME_TYPE);
+            if (codecInfo == null) {
+                // Don't fail CTS if they don't have an AVC codec (not here, anyway).
+                Log.e(TAG, "Unable to find an appropriate codec for " + MIME_TYPE);
+                return false;
+            }
+            if (VERBOSE) Log.d(TAG, "found codec: " + codecInfo.getName());
+
+            // We avoid the device-specific limitations on width and height by using values that
+            // are multiples of 16, which all tested devices seem to be able to handle.
+            MediaFormat format = MediaFormat.createVideoFormat(MIME_TYPE, mWidth, mHeight);
+
+            // Set some properties.  Failing to specify some of these can cause the MediaCodec
+            // configure() call to throw an unhelpful exception.
+            format.setInteger(MediaFormat.KEY_COLOR_FORMAT,
+                    MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface);
+            format.setInteger(MediaFormat.KEY_BIT_RATE, mBitRate);
+            format.setInteger(MediaFormat.KEY_FRAME_RATE, FRAME_RATE);
+            format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, IFRAME_INTERVAL);
+            if (VERBOSE) Log.d(TAG, "format: " + format);
+            output.setMediaFormat(format);
+
+            // Create a MediaCodec for the desired codec, then configure it as an encoder with
+            // our desired properties.
+            encoder = MediaCodec.createByCodecName(codecInfo.getName());
+            encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
+            inputSurface = new InputSurface(encoder.createInputSurface());
+            inputSurface.makeCurrent();
+            encoder.start();
+
+            generateVideoData(encoder, inputSurface, output);
+        } finally {
+            if (encoder != null) {
+                if (VERBOSE) Log.d(TAG, "releasing encoder");
+                encoder.stop();
+                encoder.release();
+                if (VERBOSE) Log.d(TAG, "released encoder");
+            }
+            if (inputSurface != null) {
+                inputSurface.release();
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Returns the first codec capable of encoding the specified MIME type, or null if no
+     * match was found.
+     */
+    private static MediaCodecInfo selectCodec(String mimeType) {
+        int numCodecs = MediaCodecList.getCodecCount();
+        for (int i = 0; i < numCodecs; i++) {
+            MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i);
+
+            if (!codecInfo.isEncoder()) {
+                continue;
+            }
+
+            String[] types = codecInfo.getSupportedTypes();
+            for (int j = 0; j < types.length; j++) {
+                if (types[j].equalsIgnoreCase(mimeType)) {
+                    return codecInfo;
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Generates video frames, feeds them into the encoder, and writes the output to the
+     * VideoChunks instance.
+     */
+    private void generateVideoData(MediaCodec encoder, InputSurface inputSurface,
+            VideoChunks output) {
+        final int TIMEOUT_USEC = 10000;
+        ByteBuffer[] encoderOutputBuffers = encoder.getOutputBuffers();
+        MediaCodec.BufferInfo info = new MediaCodec.BufferInfo();
+        int generateIndex = 0;
+        int outputCount = 0;
+
+        // Loop until the output side is done.
+        boolean inputDone = false;
+        boolean outputDone = false;
+        while (!outputDone) {
+            if (VERBOSE) Log.d(TAG, "gen loop");
+
+            // If we're not done submitting frames, generate a new one and submit it.  The
+            // eglSwapBuffers call will block if the input is full.
+            if (!inputDone) {
+                if (generateIndex == NUM_FRAMES) {
+                    // Send an empty frame with the end-of-stream flag set.
+                    if (VERBOSE) Log.d(TAG, "signaling input EOS");
+                    if (WORK_AROUND_BUGS) {
+                        // Might drop a frame, but at least we won't crash mediaserver.
+                        try { Thread.sleep(500); } catch (InterruptedException ie) {}
+                        outputDone = true;
+                    } else {
+                        encoder.signalEndOfInputStream();
+                    }
+                    inputDone = true;
+                } else {
+                    generateSurfaceFrame(generateIndex);
+                    inputSurface.setPresentationTime(computePresentationTime(generateIndex) * 1000);
+                    if (VERBOSE) Log.d(TAG, "inputSurface swapBuffers");
+                    inputSurface.swapBuffers();
+                }
+                generateIndex++;
+            }
+
+            // Check for output from the encoder.  If there's no output yet, we either need to
+            // provide more input, or we need to wait for the encoder to work its magic.  We
+            // can't actually tell which is the case, so if we can't get an output buffer right
+            // away we loop around and see if it wants more input.
+            //
+            // If we do find output, drain it all before supplying more input.
+            while (true) {
+                int encoderStatus = encoder.dequeueOutputBuffer(info, TIMEOUT_USEC);
+                if (encoderStatus == MediaCodec.INFO_TRY_AGAIN_LATER) {
+                    // no output available yet
+                    if (VERBOSE) Log.d(TAG, "no output from encoder available");
+                    break;      // out of while
+                } else if (encoderStatus == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                    // not expected for an encoder
+                    encoderOutputBuffers = encoder.getOutputBuffers();
+                    if (VERBOSE) Log.d(TAG, "encoder output buffers changed");
+                } else if (encoderStatus == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                    // not expected for an encoder
+                    MediaFormat newFormat = encoder.getOutputFormat();
+                    if (VERBOSE) Log.d(TAG, "encoder output format changed: " + newFormat);
+                } else if (encoderStatus < 0) {
+                    fail("unexpected result from encoder.dequeueOutputBuffer: " + encoderStatus);
+                } else { // encoderStatus >= 0
+                    ByteBuffer encodedData = encoderOutputBuffers[encoderStatus];
+                    if (encodedData == null) {
+                        fail("encoderOutputBuffer " + encoderStatus + " was null");
+                    }
+
+                    // Codec config flag must be set iff this is the first chunk of output.  This
+                    // may not hold for all codecs, but it appears to be the case for video/avc.
+                    assertTrue((info.flags & MediaCodec.BUFFER_FLAG_CODEC_CONFIG) != 0 ||
+                            outputCount != 0);
+
+                    if (info.size != 0) {
+                        // Adjust the ByteBuffer values to match BufferInfo.
+                        encodedData.position(info.offset);
+                        encodedData.limit(info.offset + info.size);
+
+                        output.addChunk(encodedData, info.flags, info.presentationTimeUs);
+                        outputCount++;
+                    }
+
+                    encoder.releaseOutputBuffer(encoderStatus, false);
+                    if ((info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
+                        outputDone = true;
+                        break;      // out of while
+                    }
+                }
+            }
+        }
+
+        // One chunk per frame, plus one for the config data.
+        assertEquals("Frame count", NUM_FRAMES + 1, outputCount);
+    }
+
+    /**
+     * Generates a frame of data using GL commands.
+     * <p>
+     * We have an 8-frame animation sequence that wraps around.  It looks like this:
+     * <pre>
+     *   0 1 2 3
+     *   7 6 5 4
+     * </pre>
+     * We draw one of the eight rectangles and leave the rest set to the zero-fill color.     */
+    private void generateSurfaceFrame(int frameIndex) {
+        frameIndex %= 8;
+
+        int startX, startY;
+        if (frameIndex < 4) {
+            // (0,0) is bottom-left in GL
+            startX = frameIndex * (mWidth / 4);
+            startY = mHeight / 2;
+        } else {
+            startX = (7 - frameIndex) * (mWidth / 4);
+            startY = 0;
+        }
+
+        GLES20.glDisable(GLES20.GL_SCISSOR_TEST);
+        GLES20.glClearColor(TEST_R0 / 255.0f, TEST_G0 / 255.0f, TEST_B0 / 255.0f, 1.0f);
+        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
+        GLES20.glEnable(GLES20.GL_SCISSOR_TEST);
+        GLES20.glScissor(startX, startY, mWidth / 4, mHeight / 2);
+        GLES20.glClearColor(TEST_R1 / 255.0f, TEST_G1 / 255.0f, TEST_B1 / 255.0f, 1.0f);
+        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
+    }
+
+    /**
+     * Edits a video file, saving the contents to a new file.  This involves decoding and
+     * re-encoding, not to mention conversions between YUV and RGB, and so may be lossy.
+     * <p>
+     * If we recognize the decoded format we can do this in Java code using the ByteBuffer[]
+     * output, but it's not practical to support all OEM formats.  By using a SurfaceTexture
+     * for output and a Surface for input, we can avoid issues with obscure formats and can
+     * use a fragment shader to do transformations.
+     */
+    private VideoChunks editVideoFile(VideoChunks inputData) {
+        if (VERBOSE) Log.d(TAG, "editVideoFile " + mWidth + "x" + mHeight);
+        VideoChunks outputData = new VideoChunks();
+        MediaCodec decoder = null;
+        MediaCodec encoder = null;
+        InputSurface inputSurface = null;
+        OutputSurface outputSurface = null;
+
+        try {
+            MediaFormat inputFormat = inputData.getMediaFormat();
+
+            // Create an encoder format that matches the input format.  (Might be able to just
+            // re-use the format used to generate the video, since we want it to be the same.)
+            MediaFormat outputFormat = MediaFormat.createVideoFormat(MIME_TYPE, mWidth, mHeight);
+            outputFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT,
+                    MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface);
+            outputFormat.setInteger(MediaFormat.KEY_BIT_RATE,
+                    inputFormat.getInteger(MediaFormat.KEY_BIT_RATE));
+            outputFormat.setInteger(MediaFormat.KEY_FRAME_RATE,
+                    inputFormat.getInteger(MediaFormat.KEY_FRAME_RATE));
+            outputFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL,
+                    inputFormat.getInteger(MediaFormat.KEY_I_FRAME_INTERVAL));
+
+            outputData.setMediaFormat(outputFormat);
+
+            encoder = MediaCodec.createEncoderByType(MIME_TYPE);
+            encoder.configure(outputFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
+            inputSurface = new InputSurface(encoder.createInputSurface());
+            inputSurface.makeCurrent();
+            encoder.start();
+
+            // OutputSurface uses the EGL context created by InputSurface.
+            decoder = MediaCodec.createDecoderByType(MIME_TYPE);
+            outputSurface = new OutputSurface();
+            outputSurface.changeFragmentShader(FRAGMENT_SHADER);
+            decoder.configure(inputFormat, outputSurface.getSurface(), null, 0);
+            decoder.start();
+
+            editVideoData(inputData, decoder, outputSurface, inputSurface, encoder, outputData);
+        } finally {
+            if (VERBOSE) Log.d(TAG, "shutting down encoder, decoder");
+            if (outputSurface != null) {
+                outputSurface.release();
+            }
+            if (inputSurface != null) {
+                inputSurface.release();
+            }
+            if (encoder != null) {
+                encoder.stop();
+                encoder.release();
+            }
+            if (decoder != null) {
+                decoder.stop();
+                decoder.release();
+            }
+        }
+
+        return outputData;
+    }
+
+    /**
+     * Edits a stream of video data.
+     */
+    private void editVideoData(VideoChunks inputData, MediaCodec decoder,
+            OutputSurface outputSurface, InputSurface inputSurface, MediaCodec encoder,
+            VideoChunks outputData) {
+        final int TIMEOUT_USEC = 10000;
+        ByteBuffer[] decoderInputBuffers = decoder.getInputBuffers();
+        ByteBuffer[] encoderOutputBuffers = encoder.getOutputBuffers();
+        MediaCodec.BufferInfo info = new MediaCodec.BufferInfo();
+        int inputChunk = 0;
+        int outputCount = 0;
+
+        boolean outputDone = false;
+        boolean inputDone = false;
+        boolean decoderDone = false;
+        while (!outputDone) {
+            if (VERBOSE) Log.d(TAG, "edit loop");
+
+            // Feed more data to the decoder.
+            if (!inputDone) {
+                int inputBufIndex = decoder.dequeueInputBuffer(TIMEOUT_USEC);
+                if (inputBufIndex >= 0) {
+                    if (inputChunk == inputData.getNumChunks()) {
+                        // End of stream -- send empty frame with EOS flag set.
+                        decoder.queueInputBuffer(inputBufIndex, 0, 0, 0L,
+                                MediaCodec.BUFFER_FLAG_END_OF_STREAM);
+                        inputDone = true;
+                        if (VERBOSE) Log.d(TAG, "sent input EOS (with zero-length frame)");
+                    } else {
+                        // Copy a chunk of input to the decoder.  The first chunk should have
+                        // the BUFFER_FLAG_CODEC_CONFIG flag set.
+                        ByteBuffer inputBuf = decoderInputBuffers[inputBufIndex];
+                        inputBuf.clear();
+                        inputData.getChunkData(inputChunk, inputBuf);
+                        int flags = inputData.getChunkFlags(inputChunk);
+                        long time = inputData.getChunkTime(inputChunk);
+                        decoder.queueInputBuffer(inputBufIndex, 0, inputBuf.position(),
+                                time, flags);
+                        if (VERBOSE) {
+                            Log.d(TAG, "submitted frame " + inputChunk + " to dec, size=" +
+                                    inputBuf.position() + " flags=" + flags);
+                        }
+                        inputChunk++;
+                    }
+                } else {
+                    if (VERBOSE) Log.d(TAG, "input buffer not available");
+                }
+            }
+
+            // Assume output is available.  Loop until both assumptions are false.
+            boolean decoderOutputAvailable = !decoderDone;
+            boolean encoderOutputAvailable = true;
+            while (decoderOutputAvailable || encoderOutputAvailable) {
+                // Start by draining any pending output from the encoder.  It's important to
+                // do this before we try to stuff any more data in.
+                int encoderStatus = encoder.dequeueOutputBuffer(info, TIMEOUT_USEC);
+                if (encoderStatus == MediaCodec.INFO_TRY_AGAIN_LATER) {
+                    // no output available yet
+                    if (VERBOSE) Log.d(TAG, "no output from encoder available");
+                    encoderOutputAvailable = false;
+                } else if (encoderStatus == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                    encoderOutputBuffers = encoder.getOutputBuffers();
+                    if (VERBOSE) Log.d(TAG, "encoder output buffers changed");
+                } else if (encoderStatus == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                    MediaFormat newFormat = encoder.getOutputFormat();
+                    if (VERBOSE) Log.d(TAG, "encoder output format changed: " + newFormat);
+                } else if (encoderStatus < 0) {
+                    fail("unexpected result from encoder.dequeueOutputBuffer: " + encoderStatus);
+                } else { // encoderStatus >= 0
+                    ByteBuffer encodedData = encoderOutputBuffers[encoderStatus];
+                    if (encodedData == null) {
+                        fail("encoderOutputBuffer " + encoderStatus + " was null");
+                    }
+
+                    // Write the data to the output "file".
+                    if (info.size != 0) {
+                        encodedData.position(info.offset);
+                        encodedData.limit(info.offset + info.size);
+
+                        outputData.addChunk(encodedData, info.flags, info.presentationTimeUs);
+                        outputCount++;
+
+                        if (VERBOSE) Log.d(TAG, "encoder output " + info.size + " bytes");
+                    }
+                    outputDone = (info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0;
+                    encoder.releaseOutputBuffer(encoderStatus, false);
+                }
+                if (encoderStatus != MediaCodec.INFO_TRY_AGAIN_LATER) {
+                    // Continue attempts to drain output.
+                    continue;
+                }
+
+                // Encoder is drained, check to see if we've got a new frame of output from
+                // the decoder.  (The output is going to a Surface, rather than a ByteBuffer,
+                // but we still get information through BufferInfo.)
+                if (!decoderDone) {
+                    int decoderStatus = decoder.dequeueOutputBuffer(info, TIMEOUT_USEC);
+                    if (decoderStatus == MediaCodec.INFO_TRY_AGAIN_LATER) {
+                        // no output available yet
+                        if (VERBOSE) Log.d(TAG, "no output from decoder available");
+                        decoderOutputAvailable = false;
+                    } else if (decoderStatus == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                        //decoderOutputBuffers = decoder.getOutputBuffers();
+                        if (VERBOSE) Log.d(TAG, "decoder output buffers changed (we don't care)");
+                    } else if (decoderStatus == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                        // expected before first buffer of data
+                        MediaFormat newFormat = decoder.getOutputFormat();
+                        if (VERBOSE) Log.d(TAG, "decoder output format changed: " + newFormat);
+                    } else if (decoderStatus < 0) {
+                        fail("unexpected result from decoder.dequeueOutputBuffer: "+decoderStatus);
+                    } else { // decoderStatus >= 0
+                        if (VERBOSE) Log.d(TAG, "surface decoder given buffer "
+                                + decoderStatus + " (size=" + info.size + ")");
+                        // The ByteBuffers are null references, but we still get a nonzero
+                        // size for the decoded data.
+                        boolean doRender = (info.size != 0);
+
+                        // As soon as we call releaseOutputBuffer, the buffer will be forwarded
+                        // to SurfaceTexture to convert to a texture.  The API doesn't
+                        // guarantee that the texture will be available before the call
+                        // returns, so we need to wait for the onFrameAvailable callback to
+                        // fire.  If we don't wait, we risk rendering from the previous frame.
+                        decoder.releaseOutputBuffer(decoderStatus, doRender);
+                        if (doRender) {
+                            // This waits for the image and renders it after it arrives.
+                            if (VERBOSE) Log.d(TAG, "awaiting frame");
+                            outputSurface.awaitNewImage();
+                            outputSurface.drawImage();
+
+                            // Send it to the encoder.
+                            inputSurface.setPresentationTime(info.presentationTimeUs * 1000);
+                            if (VERBOSE) Log.d(TAG, "swapBuffers");
+                            inputSurface.swapBuffers();
+                        }
+                        if ((info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
+                            // forward decoder EOS to encoder
+                            if (VERBOSE) Log.d(TAG, "signaling input EOS");
+                            if (WORK_AROUND_BUGS) {
+                                // Bail early, possibly dropping a frame.
+                                return;
+                            } else {
+                                encoder.signalEndOfInputStream();
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        if (inputChunk != outputCount) {
+            throw new RuntimeException("frame lost: " + inputChunk + " in, " +
+                    outputCount + " out");
+        }
+    }
+
+    /**
+     * Checks the video file to see if the contents match our expectations.  We decode the
+     * video to a Surface and check the pixels with GL.
+     */
+    private void checkVideoFile(VideoChunks inputData) {
+        OutputSurface surface = null;
+        MediaCodec decoder = null;
+
+        mLargestColorDelta = -1;
+
+        if (VERBOSE) Log.d(TAG, "checkVideoFile");
+
+        try {
+            surface = new OutputSurface(mWidth, mHeight);
+
+            MediaFormat format = inputData.getMediaFormat();
+            decoder = MediaCodec.createDecoderByType(MIME_TYPE);
+            decoder.configure(format, surface.getSurface(), null, 0);
+            decoder.start();
+
+            int badFrames = checkVideoData(inputData, decoder, surface);
+            if (badFrames != 0) {
+                fail("Found " + badFrames + " bad frames");
+            }
+        } finally {
+            if (surface != null) {
+                surface.release();
+            }
+            if (decoder != null) {
+                decoder.stop();
+                decoder.release();
+            }
+
+            Log.i(TAG, "Largest color delta: " + mLargestColorDelta);
+        }
+    }
+
+    /**
+     * Checks the video data.
+     *
+     * @return the number of bad frames
+     */
+    private int checkVideoData(VideoChunks inputData, MediaCodec decoder, OutputSurface surface) {
+        final int TIMEOUT_USEC = 1000;
+        ByteBuffer[] decoderInputBuffers = decoder.getInputBuffers();
+        ByteBuffer[] decoderOutputBuffers = decoder.getOutputBuffers();
+        MediaCodec.BufferInfo info = new MediaCodec.BufferInfo();
+        int inputChunk = 0;
+        int checkIndex = 0;
+        int badFrames = 0;
+
+        boolean outputDone = false;
+        boolean inputDone = false;
+        while (!outputDone) {
+            if (VERBOSE) Log.d(TAG, "check loop");
+
+            // Feed more data to the decoder.
+            if (!inputDone) {
+                int inputBufIndex = decoder.dequeueInputBuffer(TIMEOUT_USEC);
+                if (inputBufIndex >= 0) {
+                    if (inputChunk == inputData.getNumChunks()) {
+                        // End of stream -- send empty frame with EOS flag set.
+                        decoder.queueInputBuffer(inputBufIndex, 0, 0, 0L,
+                                MediaCodec.BUFFER_FLAG_END_OF_STREAM);
+                        inputDone = true;
+                        if (VERBOSE) Log.d(TAG, "sent input EOS");
+                    } else {
+                        // Copy a chunk of input to the decoder.  The first chunk should have
+                        // the BUFFER_FLAG_CODEC_CONFIG flag set.
+                        ByteBuffer inputBuf = decoderInputBuffers[inputBufIndex];
+                        inputBuf.clear();
+                        inputData.getChunkData(inputChunk, inputBuf);
+                        int flags = inputData.getChunkFlags(inputChunk);
+                        long time = inputData.getChunkTime(inputChunk);
+                        decoder.queueInputBuffer(inputBufIndex, 0, inputBuf.position(),
+                                time, flags);
+                        if (VERBOSE) {
+                            Log.d(TAG, "submitted frame " + inputChunk + " to dec, size=" +
+                                    inputBuf.position() + " flags=" + flags);
+                        }
+                        inputChunk++;
+                    }
+                } else {
+                    if (VERBOSE) Log.d(TAG, "input buffer not available");
+                }
+            }
+
+            if (!outputDone) {
+                int decoderStatus = decoder.dequeueOutputBuffer(info, TIMEOUT_USEC);
+                if (decoderStatus == MediaCodec.INFO_TRY_AGAIN_LATER) {
+                    // no output available yet
+                    if (VERBOSE) Log.d(TAG, "no output from decoder available");
+                } else if (decoderStatus == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                    decoderOutputBuffers = decoder.getOutputBuffers();
+                    if (VERBOSE) Log.d(TAG, "decoder output buffers changed");
+                } else if (decoderStatus == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                    MediaFormat newFormat = decoder.getOutputFormat();
+                    if (VERBOSE) Log.d(TAG, "decoder output format changed: " + newFormat);
+                } else if (decoderStatus < 0) {
+                    fail("unexpected result from decoder.dequeueOutputBuffer: " + decoderStatus);
+                } else { // decoderStatus >= 0
+                    ByteBuffer decodedData = decoderOutputBuffers[decoderStatus];
+
+                    if (VERBOSE) Log.d(TAG, "surface decoder given buffer " + decoderStatus +
+                            " (size=" + info.size + ")");
+                    if ((info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
+                        if (VERBOSE) Log.d(TAG, "output EOS");
+                        outputDone = true;
+                    }
+
+                    boolean doRender = (info.size != 0);
+
+                    // As soon as we call releaseOutputBuffer, the buffer will be forwarded
+                    // to SurfaceTexture to convert to a texture.  The API doesn't guarantee
+                    // that the texture will be available before the call returns, so we
+                    // need to wait for the onFrameAvailable callback to fire.
+                    decoder.releaseOutputBuffer(decoderStatus, doRender);
+                    if (doRender) {
+                        if (VERBOSE) Log.d(TAG, "awaiting frame " + checkIndex);
+                        assertEquals("Wrong time stamp", computePresentationTime(checkIndex),
+                                info.presentationTimeUs);
+                        surface.awaitNewImage();
+                        surface.drawImage();
+                        if (!checkSurfaceFrame(checkIndex++)) {
+                            badFrames++;
+                        }
+                    }
+                }
+            }
+        }
+
+        return badFrames;
+    }
+
+    /**
+     * Checks the frame for correctness, using GL to check RGB values.
+     *
+     * @return true if the frame looks good
+     */
+    private boolean checkSurfaceFrame(int frameIndex) {
+        ByteBuffer pixelBuf = ByteBuffer.allocateDirect(4); // TODO - reuse this
+        boolean frameFailed = false;
+
+        for (int i = 0; i < 8; i++) {
+            // Note the coordinates are inverted on the Y-axis in GL.
+            int x, y;
+            if (i < 4) {
+                x = i * (mWidth / 4) + (mWidth / 8);
+                y = (mHeight * 3) / 4;
+            } else {
+                x = (7 - i) * (mWidth / 4) + (mWidth / 8);
+                y = mHeight / 4;
+            }
+
+            GLES20.glReadPixels(x, y, 1, 1, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, pixelBuf);
+            int r = pixelBuf.get(0) & 0xff;
+            int g = pixelBuf.get(1) & 0xff;
+            int b = pixelBuf.get(2) & 0xff;
+            //Log.d(TAG, "GOT(" + frameIndex + "/" + i + "): r=" + r + " g=" + g + " b=" + b);
+
+            int expR, expG, expB;
+            if (i == frameIndex % 8) {
+                // colored rect (green/blue swapped)
+                expR = TEST_R1;
+                expG = TEST_B1;
+                expB = TEST_G1;
+            } else {
+                // zero background color (green/blue swapped)
+                expR = TEST_R0;
+                expG = TEST_B0;
+                expB = TEST_G0;
+            }
+            if (!isColorClose(r, expR) ||
+                    !isColorClose(g, expG) ||
+                    !isColorClose(b, expB)) {
+                Log.w(TAG, "Bad frame " + frameIndex + " (rect=" + i + ": rgb=" + r +
+                        "," + g + "," + b + " vs. expected " + expR + "," + expG +
+                        "," + expB + ")");
+                frameFailed = true;
+            }
+        }
+
+        return !frameFailed;
+    }
+
+    /**
+     * Returns true if the actual color value is close to the expected color value.  Updates
+     * mLargestColorDelta.
+     */
+    boolean isColorClose(int actual, int expected) {
+        final int MAX_DELTA = 8;
+        int delta = Math.abs(actual - expected);
+        if (delta > mLargestColorDelta) {
+            mLargestColorDelta = delta;
+        }
+        return (delta <= MAX_DELTA);
+    }
+
+    /**
+     * Generates the presentation time for frame N, in microseconds.
+     */
+    private static long computePresentationTime(int frameIndex) {
+        return 123 + frameIndex * 1000000 / FRAME_RATE;
+    }
+
+
+    /**
+     * The elementary stream coming out of the "video/avc" encoder needs to be fed back into
+     * the decoder one chunk at a time.  If we just wrote the data to a file, we would lose
+     * the information about chunk boundaries.  This class stores the encoded data in memory,
+     * retaining the chunk organization.
+     */
+    private static class VideoChunks {
+        private MediaFormat mMediaFormat;
+        private ArrayList<byte[]> mChunks = new ArrayList<byte[]>();
+        private ArrayList<Integer> mFlags = new ArrayList<Integer>();
+        private ArrayList<Long> mTimes = new ArrayList<Long>();
+
+        /**
+         * Sets the MediaFormat, for the benefit of a future decoder.
+         */
+        public void setMediaFormat(MediaFormat format) {
+            mMediaFormat = format;
+        }
+
+        /**
+         * Gets the MediaFormat that was used by the encoder.
+         */
+        public MediaFormat getMediaFormat() {
+            return mMediaFormat;
+        }
+
+        /**
+         * Adds a new chunk.  Advances buf.position to buf.limit.
+         */
+        public void addChunk(ByteBuffer buf, int flags, long time) {
+            byte[] data = new byte[buf.remaining()];
+            buf.get(data);
+            mChunks.add(data);
+            mFlags.add(flags);
+            mTimes.add(time);
+        }
+
+        /**
+         * Returns the number of chunks currently held.
+         */
+        public int getNumChunks() {
+            return mChunks.size();
+        }
+
+        /**
+         * Copies the data from chunk N into "dest".  Advances dest.position.
+         */
+        public void getChunkData(int chunk, ByteBuffer dest) {
+            byte[] data = mChunks.get(chunk);
+            dest.put(data);
+        }
+
+        /**
+         * Returns the flags associated with chunk N.
+         */
+        public int getChunkFlags(int chunk) {
+            return mFlags.get(chunk);
+        }
+
+        /**
+         * Returns the timestamp associated with chunk N.
+         */
+        public long getChunkTime(int chunk) {
+            return mTimes.get(chunk);
+        }
+
+        /**
+         * Writes the chunks to a file as a contiguous stream.  Useful for debugging.
+         */
+        public void saveToFile(File file) {
+            Log.d(TAG, "saving chunk data to file " + file);
+            FileOutputStream fos = null;
+            BufferedOutputStream bos = null;
+
+            try {
+                fos = new FileOutputStream(file);
+                bos = new BufferedOutputStream(fos);
+                fos = null;     // closing bos will also close fos
+
+                int numChunks = getNumChunks();
+                for (int i = 0; i < numChunks; i++) {
+                    byte[] chunk = mChunks.get(i);
+                    bos.write(chunk);
+                }
+            } catch (IOException ioe) {
+                throw new RuntimeException(ioe);
+            } finally {
+                try {
+                    if (bos != null) {
+                        bos.close();
+                    }
+                    if (fos != null) {
+                        fos.close();
+                    }
+                } catch (IOException ioe) {
+                    throw new RuntimeException(ioe);
+                }
+            }
+        }
+    }
+}
diff --git a/tests/tests/media/src/android/media/cts/DecoderTest.java b/tests/tests/media/src/android/media/cts/DecoderTest.java
index 76103f5..1e91c09 100644
--- a/tests/tests/media/src/android/media/cts/DecoderTest.java
+++ b/tests/tests/media/src/android/media/cts/DecoderTest.java
@@ -18,30 +18,50 @@
 
 import com.android.cts.media.R;
 
-import android.content.Context;
 import android.content.res.AssetFileDescriptor;
 import android.content.res.Resources;
 import android.media.MediaCodec;
 import android.media.MediaExtractor;
 import android.media.MediaFormat;
-import android.test.AndroidTestCase;
 import android.util.Log;
+import android.view.Surface;
 
 import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.ByteBuffer;
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.zip.CRC32;
 
-public class DecoderTest extends AndroidTestCase {
+public class DecoderTest extends MediaPlayerTestBase {
     private static final String TAG = "DecoderTest";
 
     private Resources mResources;
+    short[] mMasterBuffer;
 
     @Override
-    public void setContext(Context context) {
-        super.setContext(context);
+    protected void setUp() throws Exception {
+        super.setUp();
         mResources = mContext.getResources();
+
+        // read master file into memory
+        AssetFileDescriptor masterFd = mResources.openRawResourceFd(R.raw.sinesweepraw);
+        long masterLength = masterFd.getLength();
+        mMasterBuffer = new short[(int) (masterLength / 2)];
+        InputStream is = masterFd.createInputStream();
+        BufferedInputStream bis = new BufferedInputStream(is);
+        for (int i = 0; i < mMasterBuffer.length; i++) {
+            int lo = bis.read();
+            int hi = bis.read();
+            if (hi >= 128) {
+                hi -= 256;
+            }
+            int sample = hi * 256 + lo;
+            mMasterBuffer[i] = (short) sample;
+        }
+        bis.close();
+        masterFd.close();
     }
 
     // The allowed errors in the following tests are the actual maximum measured
@@ -49,158 +69,22 @@
     // This should allow for some variation in decoders, while still detecting
     // phase and delay errors, channel swap, etc.
     public void testDecodeMp3Lame() throws Exception {
-        decode(R.raw.sinesweepmp3lame, R.raw.sinesweepraw, 804.f);
+        decode(R.raw.sinesweepmp3lame, 804.f, true);
     }
     public void testDecodeMp3Smpb() throws Exception {
-        decode(R.raw.sinesweepmp3smpb, R.raw.sinesweepraw, 413.f);
+        decode(R.raw.sinesweepmp3smpb, 413.f, true);
     }
     public void testDecodeM4a() throws Exception {
-        decode(R.raw.sinesweepm4a, R.raw.sinesweepraw, 124.f);
+        decode(R.raw.sinesweepm4a, 124.f, true);
     }
     public void testDecodeOgg() throws Exception {
-        decode(R.raw.sinesweepogg, R.raw.sinesweepraw, 168.f);
+        decode(R.raw.sinesweepogg, 168.f, false);
     }
     public void testDecodeWav() throws Exception {
-        decode(R.raw.sinesweepwav, R.raw.sinesweepraw, 0.0f);
+        decode(R.raw.sinesweepwav, 0.0f, true);
     }
     public void testDecodeFlac() throws Exception {
-        decode(R.raw.sinesweepflac, R.raw.sinesweepraw, 0.0f);
-    }
-
-    /**
-     * @param testinput the file to decode
-     * @param master the "golden master" to compared against
-     * @param maxerror the maximum allowed root mean squared error
-     * @throws IOException
-     */
-    private void decode(int testinput, int master, float maxerror) throws IOException {
-
-        // read master file into memory
-        AssetFileDescriptor masterFd = mResources.openRawResourceFd(master);
-        long masterLength = masterFd.getLength();
-        short[] masterBuffer = new short[(int) (masterLength / 2)];
-        InputStream is = masterFd.createInputStream();
-        BufferedInputStream bis = new BufferedInputStream(is);
-        for (int i = 0; i < masterBuffer.length; i++) {
-            int lo = bis.read();
-            int hi = bis.read();
-            if (hi >= 128) {
-                hi -= 256;
-            }
-            int sample = hi * 256 + lo;
-            masterBuffer[i] = (short) sample;
-        }
-        bis.close();
-
-        AssetFileDescriptor testFd = mResources.openRawResourceFd(testinput);
-
-        MediaExtractor extractor;
-        MediaCodec codec;
-        ByteBuffer[] codecInputBuffers;
-        ByteBuffer[] codecOutputBuffers;
-
-        extractor = new MediaExtractor();
-        extractor.setDataSource(testFd.getFileDescriptor(), testFd.getStartOffset(),
-                testFd.getLength());
-
-        assertEquals("wrong number of tracks", 1, extractor.getTrackCount());
-        MediaFormat format = extractor.getTrackFormat(0);
-        String mime = format.getString(MediaFormat.KEY_MIME);
-        assertTrue("not an audio file", mime.startsWith("audio/"));
-
-        codec = MediaCodec.createDecoderByType(mime);
-        codec.configure(format, null /* surface */, null /* crypto */, 0 /* flags */);
-        codec.start();
-        codecInputBuffers = codec.getInputBuffers();
-        codecOutputBuffers = codec.getOutputBuffers();
-
-        extractor.selectTrack(0);
-
-        // start decoding
-        int numBytesDecoded = 0;
-        int maxdelta = 0;
-        long totalErrorSquared = 0;
-        final long kTimeOutUs = 5000;
-        MediaCodec.BufferInfo info = new MediaCodec.BufferInfo();
-        boolean sawInputEOS = false;
-        boolean sawOutputEOS = false;
-        while (!sawOutputEOS) {
-            if (!sawInputEOS) {
-                int inputBufIndex = codec.dequeueInputBuffer(kTimeOutUs);
-
-                if (inputBufIndex >= 0) {
-                    ByteBuffer dstBuf = codecInputBuffers[inputBufIndex];
-
-                    int sampleSize =
-                        extractor.readSampleData(dstBuf, 0 /* offset */);
-
-                    long presentationTimeUs = 0;
-
-                    if (sampleSize < 0) {
-                        Log.d(TAG, "saw input EOS.");
-                        sawInputEOS = true;
-                        sampleSize = 0;
-                    } else {
-                        presentationTimeUs = extractor.getSampleTime();
-                    }
-
-                    codec.queueInputBuffer(
-                            inputBufIndex,
-                            0 /* offset */,
-                            sampleSize,
-                            presentationTimeUs,
-                            sawInputEOS ? MediaCodec.BUFFER_FLAG_END_OF_STREAM : 0);
-
-                    if (!sawInputEOS) {
-                        extractor.advance();
-                    }
-                }
-            }
-
-            int res = codec.dequeueOutputBuffer(info, kTimeOutUs);
-
-            if (res >= 0) {
-                int outputBufIndex = res;
-                ByteBuffer buf = codecOutputBuffers[outputBufIndex];
-
-                // check the waveform matches within the specified max error
-                for (int i = 0; i < info.size; i += 2) {
-                    short sample = buf.getShort(i);
-                    int idx = (numBytesDecoded + i) / 2;
-                    assertTrue("decoder returned too much data", idx < masterBuffer.length);
-                    short mastersample = masterBuffer[idx];
-                    int d = sample - mastersample;
-                    totalErrorSquared += d * d;
-                }
-
-                numBytesDecoded += info.size;
-
-                codec.releaseOutputBuffer(outputBufIndex, false /* render */);
-
-                if ((info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
-                    Log.d(TAG, "saw output EOS.");
-                    sawOutputEOS = true;
-                }
-            } else if (res == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
-                codecOutputBuffers = codec.getOutputBuffers();
-
-                Log.d(TAG, "output buffers have changed.");
-            } else if (res == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
-                MediaFormat oformat = codec.getOutputFormat();
-
-                Log.d(TAG, "output format has changed to " + oformat);
-            }
-        }
-
-        codec.stop();
-        codec.release();
-        testFd.close();
-        masterFd.close();
-
-        assertEquals("wrong data size", masterLength, numBytesDecoded);
-        long avgErrorSquared = (totalErrorSquared / (numBytesDecoded / 2));
-        double rmse = Math.sqrt(avgErrorSquared); 
-        assertTrue("decoding error too big: " + rmse, rmse <= maxerror);
+        decode(R.raw.sinesweepflac, 0.0f, true);
     }
 
     public void testDecodeMonoMp3() throws Exception {
@@ -216,10 +100,9 @@
     }
 
     private void monoTest(int res) throws Exception {
-        short [] mono = decodeToMemory(res);
+        short [] mono = decodeToMemory(res, false);
         if (mono.length == 44100) {
             // expected
-            return;
         } else if (mono.length == 88200) {
             // the decoder output 2 channels instead of 1, check that the left and right channel
             // are identical
@@ -229,9 +112,47 @@
         } else {
             fail("wrong number of samples: " + mono.length);
         }
+
+        // we should get the same data when reconfiguring the codec
+        short [] mono2 = decodeToMemory(res, true);
+        assertTrue(Arrays.equals(mono, mono2));
     }
 
-    private short[] decodeToMemory(int testinput) throws IOException {
+    /**
+     * @param testinput the file to decode
+     * @param maxerror the maximum allowed root mean squared error
+     * @param testReconfigure whether to also test reconfiguring the codec
+     * @throws IOException
+     */
+    private void decode(int testinput, float maxerror, boolean reconfigure) throws IOException {
+
+        short [] decoded = decodeToMemory(testinput, false);
+
+        assertEquals("wrong data size", mMasterBuffer.length, decoded.length);
+
+        long totalErrorSquared = 0;
+
+        for (int i = 0; i < decoded.length; i++) {
+            short sample = decoded[i];
+            short mastersample = mMasterBuffer[i];
+            int d = sample - mastersample;
+            totalErrorSquared += d * d;
+        }
+
+        long avgErrorSquared = (totalErrorSquared / decoded.length);
+        double rmse = Math.sqrt(avgErrorSquared);
+        assertTrue("decoding error too big: " + rmse, rmse <= maxerror);
+
+        if (reconfigure) {
+            short [] decoded2 = decodeToMemory(testinput, true);
+            assertEquals("count different with reconfigure", decoded.length, decoded2.length);
+            for (int i = 0; i < decoded.length; i++) {
+                assertEquals("samples don't match", decoded[i], decoded2[i]);
+            }
+        }
+    }
+
+    private short[] decodeToMemory(int testinput, boolean reconfigure) throws IOException {
 
         short [] decoded = new short[0];
         int decodedIdx = 0;
@@ -252,7 +173,6 @@
         MediaFormat format = extractor.getTrackFormat(0);
         String mime = format.getString(MediaFormat.KEY_MIME);
         assertTrue("not an audio file", mime.startsWith("audio/"));
-        Log.i("@@@@", "extractor format: " + format);
 
         codec = MediaCodec.createDecoderByType(mime);
         codec.configure(format, null /* surface */, null /* crypto */, 0 /* flags */);
@@ -260,6 +180,14 @@
         codecInputBuffers = codec.getInputBuffers();
         codecOutputBuffers = codec.getOutputBuffers();
 
+        if (reconfigure) {
+            codec.stop();
+            codec.configure(format, null /* surface */, null /* crypto */, 0 /* flags */);
+            codec.start();
+            codecInputBuffers = codec.getInputBuffers();
+            codecOutputBuffers = codec.getOutputBuffers();
+        }
+
         extractor.selectTrack(0);
 
         // start decoding
@@ -310,6 +238,18 @@
                 if (info.size > 0) {
                     noOutputCounter = 0;
                 }
+                if (info.size > 0 && reconfigure) {
+                    // once we've gotten some data out of the decoder, reconfigure it again
+                    reconfigure = false;
+                    extractor.seekTo(0, MediaExtractor.SEEK_TO_NEXT_SYNC);
+                    sawInputEOS = false;
+                    codec.stop();
+                    codec.configure(format, null /* surface */, null /* crypto */, 0 /* flags */);
+                    codec.start();
+                    codecInputBuffers = codec.getInputBuffers();
+                    codecOutputBuffers = codec.getOutputBuffers();
+                    continue;
+                }
 
                 int outputBufIndex = res;
                 ByteBuffer buf = codecOutputBuffers[outputBufIndex];
@@ -341,13 +281,629 @@
             }
         }
 
-        if (noOutputCounter >= 50) {
-            fail("failed to get output for 50 iterations");
+        codec.stop();
+        codec.release();
+        return decoded;
+    }
+
+    public void testCodecBasicH264() throws Exception {
+        Surface s = getActivity().getSurfaceHolder().getSurface();
+        int frames1 = countFrames(
+                R.raw.video_480x360_mp4_h264_1000kbps_25fps_aac_stereo_128kbps_44100hz,
+                false, -1, s);
+        assertEquals("wrong number of frames decoded", 240, frames1);
+
+        int frames2 = countFrames(
+                R.raw.video_480x360_mp4_h264_1000kbps_25fps_aac_stereo_128kbps_44100hz,
+                false, -1, null);
+        assertEquals("different number of frames when using Surface", frames1, frames2);
+    }
+
+    public void testCodecBasicH263() throws Exception {
+        Surface s = getActivity().getSurfaceHolder().getSurface();
+        int frames1 = countFrames(
+                R.raw.video_176x144_3gp_h263_300kbps_12fps_aac_stereo_128kbps_22050hz,
+                false /* reconfigure */, -1 /* eosframe */, s);
+        assertEquals("wrong number of frames decoded", 122, frames1);
+
+        int frames2 = countFrames(
+                R.raw.video_176x144_3gp_h263_300kbps_12fps_aac_stereo_128kbps_22050hz,
+                false /* reconfigure */, -1 /* eosframe */, null);
+        assertEquals("different number of frames when using Surface", frames1, frames2);
+    }
+
+    public void testCodecEarlyEOSH263() throws Exception {
+        Surface s = getActivity().getSurfaceHolder().getSurface();
+        int frames1 = countFrames(
+                R.raw.video_176x144_3gp_h263_300kbps_12fps_aac_stereo_128kbps_22050hz,
+                false, 64, s);
+        assertEquals("wrong number of frames decoded", 64, frames1);
+    }
+
+    public void testCodecEarlyEOSH264() throws Exception {
+        Surface s = getActivity().getSurfaceHolder().getSurface();
+        int frames1 = countFrames(
+                R.raw.video_480x360_mp4_h264_1000kbps_25fps_aac_stereo_128kbps_44100hz,
+                false, 120, s);
+        assertEquals("wrong number of frames decoded", 120, frames1);
+    }
+
+    public void testCodecReconfigH264WithoutSurface() throws Exception {
+        testCodecReconfig(
+                R.raw.video_480x360_mp4_h264_1000kbps_25fps_aac_stereo_128kbps_44100hz, null);
+    }
+
+    public void testCodecReconfigH264WithSurface() throws Exception {
+        Surface s = getActivity().getSurfaceHolder().getSurface();
+        testCodecReconfig(
+                R.raw.video_480x360_mp4_h264_1000kbps_25fps_aac_stereo_128kbps_44100hz, s);
+    }
+
+    public void testCodecReconfigH263WithoutSurface() throws Exception {
+        testCodecReconfig(
+                R.raw.video_176x144_3gp_h263_300kbps_12fps_aac_stereo_128kbps_22050hz, null);
+    }
+
+    public void testCodecReconfigH263WithSurface() throws Exception {
+        Surface s = getActivity().getSurfaceHolder().getSurface();
+        testCodecReconfig(
+                R.raw.video_176x144_3gp_h263_300kbps_12fps_aac_stereo_128kbps_22050hz, s);
+    }
+
+//    public void testCodecReconfigOgg() throws Exception {
+//        testCodecReconfig(R.raw.sinesweepogg, null);
+//    }
+//
+    public void testCodecReconfigMp3() throws Exception {
+        testCodecReconfig(R.raw.sinesweepmp3lame, null);
+    }
+
+    public void testCodecReconfigM4a() throws Exception {
+        testCodecReconfig(R.raw.sinesweepm4a, null);
+    }
+
+    private void testCodecReconfig(int video, Surface s) throws Exception {
+        int frames1 = countFrames(video, false /* reconfigure */, -1 /* eosframe */, s);
+        int frames2 = countFrames(video, true /* reconfigure */, -1 /* eosframe */, s);
+        assertEquals("different number of frames when reusing codec", frames1, frames2);
+    }
+
+    private int countFrames(int video, boolean reconfigure, int eosframe, Surface s) throws Exception {
+        int numframes = 0;
+
+        AssetFileDescriptor testFd = mResources.openRawResourceFd(video);
+
+        MediaExtractor extractor;
+        MediaCodec codec = null;
+        ByteBuffer[] codecInputBuffers;
+        ByteBuffer[] codecOutputBuffers;
+
+        extractor = new MediaExtractor();
+        extractor.setDataSource(testFd.getFileDescriptor(), testFd.getStartOffset(),
+                testFd.getLength());
+
+        MediaFormat format = extractor.getTrackFormat(0);
+        String mime = format.getString(MediaFormat.KEY_MIME);
+        boolean isAudio = mime.startsWith("audio/");
+
+        codec = MediaCodec.createDecoderByType(mime);
+//        if (mime.contains("avc")) {
+//            codec = MediaCodec.createByCodecName("OMX.google.h264.decoder");
+//        } else if (mime.contains("3gpp")) {
+//            codec = MediaCodec.createByCodecName("OMX.google.h263.decoder");
+//        }
+        assertNotNull("couldn't find codec", codec);
+        Log.i("@@@@", "using codec: " + codec.getName());
+        codec.configure(format, s /* surface */, null /* crypto */, 0 /* flags */);
+        codec.start();
+        codecInputBuffers = codec.getInputBuffers();
+        codecOutputBuffers = codec.getOutputBuffers();
+
+        if (reconfigure) {
+            codec.stop();
+            codec.configure(format, s /* surface */, null /* crypto */, 0 /* flags */);
+            codec.start();
+            codecInputBuffers = codec.getInputBuffers();
+            codecOutputBuffers = codec.getOutputBuffers();
+        }
+        Log.i("@@@@", "format: " + format);
+
+        extractor.selectTrack(0);
+
+        // start decoding
+        final long kTimeOutUs = 5000;
+        MediaCodec.BufferInfo info = new MediaCodec.BufferInfo();
+        boolean sawInputEOS = false;
+        boolean sawOutputEOS = false;
+        int deadDecoderCounter = 0;
+        int samplecounter = 0;
+        ArrayList<Long> timestamps = new ArrayList<Long>();
+        while (!sawOutputEOS && deadDecoderCounter < 100) {
+            if (!sawInputEOS) {
+                int inputBufIndex = codec.dequeueInputBuffer(kTimeOutUs);
+
+                if (inputBufIndex >= 0) {
+                    ByteBuffer dstBuf = codecInputBuffers[inputBufIndex];
+
+                    int sampleSize =
+                        extractor.readSampleData(dstBuf, 0 /* offset */);
+
+                    long presentationTimeUs = 0;
+
+                    if (sampleSize < 0) {
+                        Log.d(TAG, "saw input EOS.");
+                        sawInputEOS = true;
+                        sampleSize = 0;
+                    } else {
+                        presentationTimeUs = extractor.getSampleTime();
+                        samplecounter++;
+                        if (samplecounter == eosframe) {
+                            sawInputEOS = true;
+                        }
+                    }
+
+                    timestamps.add(presentationTimeUs);
+
+                    int flags = extractor.getSampleFlags();
+
+                    codec.queueInputBuffer(
+                            inputBufIndex,
+                            0 /* offset */,
+                            sampleSize,
+                            presentationTimeUs,
+                            sawInputEOS ? MediaCodec.BUFFER_FLAG_END_OF_STREAM : 0);
+
+                    if (!sawInputEOS) {
+                        extractor.advance();
+                    }
+                }
+            }
+
+            int res = codec.dequeueOutputBuffer(info, kTimeOutUs);
+
+            deadDecoderCounter++;
+            if (res >= 0) {
+                //Log.d(TAG, "got frame, size " + info.size + "/" + info.presentationTimeUs);
+
+                // Some decoders output a 0-sized buffer at the end. Disregard those.
+                if (info.size > 0) {
+                    deadDecoderCounter = 0;
+                    if (reconfigure) {
+                        // once we've gotten some data out of the decoder, reconfigure it again
+                        reconfigure = false;
+                        numframes = 0;
+                        extractor.seekTo(0, MediaExtractor.SEEK_TO_NEXT_SYNC);
+                        sawInputEOS = false;
+                        timestamps.clear();
+                        codec.stop();
+                        codec.configure(format, s /* surface */, null /* crypto */, 0 /* flags */);
+                        codec.start();
+                        codecInputBuffers = codec.getInputBuffers();
+                        codecOutputBuffers = codec.getOutputBuffers();
+                        continue;
+                    }
+
+                    if (isAudio) {
+                        // for audio, count the number of bytes that were decoded, not the number
+                        // of access units
+                        numframes += info.size;
+                    } else {
+                        // for video, count the number of video frames and check the timestamp
+                        numframes++;
+                        assertTrue("invalid timestamp", timestamps.remove(info.presentationTimeUs));
+                    }
+                }
+                int outputBufIndex = res;
+                codec.releaseOutputBuffer(outputBufIndex, true /* render */);
+
+                if ((info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
+                    Log.d(TAG, "saw output EOS.");
+                    sawOutputEOS = true;
+                }
+            } else if (res == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                codecOutputBuffers = codec.getOutputBuffers();
+
+                Log.d(TAG, "output buffers have changed.");
+            } else if (res == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                MediaFormat oformat = codec.getOutputFormat();
+
+                Log.d(TAG, "output format has changed to " + oformat);
+            } else {
+                Log.d(TAG, "no output");
+            }
         }
 
         codec.stop();
         codec.release();
-        return decoded;
+        testFd.close();
+        return numframes;
+    }
+
+    public void testEOSBehaviorH264() throws Exception {
+        // this video has an I frame at 44
+        testEOSBehavior(R.raw.video_480x360_mp4_h264_1000kbps_25fps_aac_stereo_128kbps_44100hz, 44);
+        testEOSBehavior(R.raw.video_480x360_mp4_h264_1000kbps_25fps_aac_stereo_128kbps_44100hz, 45);
+        testEOSBehavior(R.raw.video_480x360_mp4_h264_1000kbps_25fps_aac_stereo_128kbps_44100hz, 55);
+    }
+
+    public void testEOSBehaviorH263() throws Exception {
+        // this video has an I frame every 12 frames.
+        testEOSBehavior(R.raw.video_176x144_3gp_h263_300kbps_12fps_aac_stereo_128kbps_22050hz, 24);
+        testEOSBehavior(R.raw.video_176x144_3gp_h263_300kbps_12fps_aac_stereo_128kbps_22050hz, 25);
+        testEOSBehavior(R.raw.video_176x144_3gp_h263_300kbps_12fps_aac_stereo_128kbps_22050hz, 48);
+        testEOSBehavior(R.raw.video_176x144_3gp_h263_300kbps_12fps_aac_stereo_128kbps_22050hz, 50);
+    }
+
+    private void testEOSBehavior(int movie, int stopatsample) throws Exception {
+
+        int numframes = 0;
+
+        long [] checksums = new long[stopatsample];
+
+        AssetFileDescriptor testFd = mResources.openRawResourceFd(movie);
+
+        MediaExtractor extractor;
+        MediaCodec codec = null;
+        ByteBuffer[] codecInputBuffers;
+        ByteBuffer[] codecOutputBuffers;
+
+        extractor = new MediaExtractor();
+        extractor.setDataSource(testFd.getFileDescriptor(), testFd.getStartOffset(),
+                testFd.getLength());
+
+        MediaFormat format = extractor.getTrackFormat(0);
+        String mime = format.getString(MediaFormat.KEY_MIME);
+        boolean isAudio = mime.startsWith("audio/");
+
+        codec = MediaCodec.createDecoderByType(mime);
+//        if (mime.contains("avc")) {
+//            codec = MediaCodec.createByCodecName("OMX.google.h264.decoder");
+//        } else if (mime.contains("3gpp")) {
+//            codec = MediaCodec.createByCodecName("OMX.google.h263.decoder");
+//        }
+        assertNotNull("couldn't find codec", codec);
+        Log.i("@@@@", "using codec: " + codec.getName());
+        codec.configure(format, null /* surface */, null /* crypto */, 0 /* flags */);
+        codec.start();
+        codecInputBuffers = codec.getInputBuffers();
+        codecOutputBuffers = codec.getOutputBuffers();
+
+        extractor.selectTrack(0);
+
+        // start decoding
+        final long kTimeOutUs = 5000;
+        MediaCodec.BufferInfo info = new MediaCodec.BufferInfo();
+        boolean sawInputEOS = false;
+        boolean sawOutputEOS = false;
+        int deadDecoderCounter = 0;
+        int samplenum = 0;
+        while (!sawOutputEOS && deadDecoderCounter < 100) {
+            if (!sawInputEOS) {
+                int inputBufIndex = codec.dequeueInputBuffer(kTimeOutUs);
+
+                if (inputBufIndex >= 0) {
+                    ByteBuffer dstBuf = codecInputBuffers[inputBufIndex];
+
+                    int sampleSize =
+                        extractor.readSampleData(dstBuf, 0 /* offset */);
+//                    Log.i("@@@@", "read sample " + samplenum + ":" + extractor.getSampleFlags()
+//                            + " @ " + extractor.getSampleTime() + " size " + sampleSize);
+                    samplenum++;
+
+                    long presentationTimeUs = 0;
+
+                    if (sampleSize < 0 || samplenum >= (stopatsample + 100)) {
+                        Log.d(TAG, "saw input EOS.");
+                        sawInputEOS = true;
+                        sampleSize = 0;
+                    } else {
+                        presentationTimeUs = extractor.getSampleTime();
+                    }
+
+                    int flags = extractor.getSampleFlags();
+
+                    codec.queueInputBuffer(
+                            inputBufIndex,
+                            0 /* offset */,
+                            sampleSize,
+                            presentationTimeUs,
+                            sawInputEOS ? MediaCodec.BUFFER_FLAG_END_OF_STREAM : 0);
+
+                    if (!sawInputEOS) {
+                        extractor.advance();
+                    }
+                }
+            }
+
+            int res = codec.dequeueOutputBuffer(info, kTimeOutUs);
+
+            deadDecoderCounter++;
+            if (res >= 0) {
+
+                // Some decoders output a 0-sized buffer at the end. Disregard those.
+                if (info.size > 0) {
+                    deadDecoderCounter = 0;
+
+                    if (isAudio) {
+                        // for audio, count the number of bytes that were decoded, not the number
+                        // of access units
+                        numframes += info.size;
+                    } else {
+                        // for video, count the number of video frames
+                        long sum = checksum(codecOutputBuffers[res], info.size);
+                        if (numframes < checksums.length) {
+                            checksums[numframes] = sum;
+                        }
+                        numframes++;
+                    }
+                }
+//                Log.d(TAG, "got frame, size " + info.size + "/" + info.presentationTimeUs +
+//                        "/" + numframes + "/" + info.flags);
+
+                int outputBufIndex = res;
+                codec.releaseOutputBuffer(outputBufIndex, true /* render */);
+
+                if ((info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
+                    Log.d(TAG, "saw output EOS.");
+                    sawOutputEOS = true;
+                }
+            } else if (res == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                codecOutputBuffers = codec.getOutputBuffers();
+
+                Log.d(TAG, "output buffers have changed.");
+            } else if (res == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                MediaFormat oformat = codec.getOutputFormat();
+
+                Log.d(TAG, "output format has changed to " + oformat);
+            } else {
+                Log.d(TAG, "no output");
+            }
+        }
+
+        codec.stop();
+        codec.release();
+        extractor.release();
+
+
+        // We now have checksums for every frame.
+        // Now decode again, but signal EOS right before an index frame, and ensure the frames
+        // prior to that are the same.
+
+        extractor = new MediaExtractor();
+        extractor.setDataSource(testFd.getFileDescriptor(), testFd.getStartOffset(),
+                testFd.getLength());
+
+        codec = MediaCodec.createDecoderByType(mime);
+//        if (mime.contains("avc")) {
+//            codec = MediaCodec.createByCodecName("OMX.google.h264.decoder");
+//        } else if (mime.contains("3gpp")) {
+//            codec = MediaCodec.createByCodecName("OMX.google.h263.decoder");
+//        }
+        codec.configure(format, null /* surface */, null /* crypto */, 0 /* flags */);
+        codec.start();
+        codecInputBuffers = codec.getInputBuffers();
+        codecOutputBuffers = codec.getOutputBuffers();
+
+        extractor.selectTrack(0);
+
+        // start decoding
+        info = new MediaCodec.BufferInfo();
+        sawInputEOS = false;
+        sawOutputEOS = false;
+        deadDecoderCounter = 0;
+        samplenum = 0;
+        numframes = 0;
+        while (!sawOutputEOS && deadDecoderCounter < 100) {
+            if (!sawInputEOS) {
+                int inputBufIndex = codec.dequeueInputBuffer(kTimeOutUs);
+
+                if (inputBufIndex >= 0) {
+                    ByteBuffer dstBuf = codecInputBuffers[inputBufIndex];
+
+                    int sampleSize =
+                        extractor.readSampleData(dstBuf, 0 /* offset */);
+//                    Log.i("@@@@", "read sample " + samplenum + ":" + extractor.getSampleFlags()
+//                            + " @ " + extractor.getSampleTime() + " size " + sampleSize);
+                    samplenum++;
+
+                    long presentationTimeUs = extractor.getSampleTime();
+
+                    if (sampleSize < 0 || samplenum >= stopatsample) {
+                        Log.d(TAG, "saw input EOS.");
+                        sawInputEOS = true;
+                        if (sampleSize < 0) {
+                            sampleSize = 0;
+                        }
+                    }
+
+                    int flags = extractor.getSampleFlags();
+
+                    codec.queueInputBuffer(
+                            inputBufIndex,
+                            0 /* offset */,
+                            sampleSize,
+                            presentationTimeUs,
+                            sawInputEOS ? MediaCodec.BUFFER_FLAG_END_OF_STREAM : 0);
+
+                    if (!sawInputEOS) {
+                        extractor.advance();
+                    }
+                }
+            }
+
+            int res = codec.dequeueOutputBuffer(info, kTimeOutUs);
+
+            deadDecoderCounter++;
+            if (res >= 0) {
+
+                // Some decoders output a 0-sized buffer at the end. Disregard those.
+                if (info.size > 0) {
+                    deadDecoderCounter = 0;
+
+                    if (isAudio) {
+                        // for audio, count the number of bytes that were decoded, not the number
+                        // of access units
+                        numframes += info.size;
+                    } else {
+                        // for video, count the number of video frames
+                        long sum = checksum(codecOutputBuffers[res], info.size);
+                        if (numframes < checksums.length) {
+                            assertEquals("frame data mismatch at frame " + numframes,
+                                    checksums[numframes], sum);
+                        }
+                        numframes++;
+                    }
+                }
+//                Log.d(TAG, "got frame, size " + info.size + "/" + info.presentationTimeUs +
+//                        "/" + numframes + "/" + info.flags);
+
+                int outputBufIndex = res;
+                codec.releaseOutputBuffer(outputBufIndex, true /* render */);
+
+                if ((info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
+                    Log.d(TAG, "saw output EOS.");
+                    sawOutputEOS = true;
+                }
+            } else if (res == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                codecOutputBuffers = codec.getOutputBuffers();
+
+                Log.d(TAG, "output buffers have changed.");
+            } else if (res == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                MediaFormat oformat = codec.getOutputFormat();
+
+                Log.d(TAG, "output format has changed to " + oformat);
+            } else {
+                Log.d(TAG, "no output");
+            }
+        }
+
+        codec.stop();
+        codec.release();
+        extractor.release();
+
+        assertEquals("I!=O", samplenum, numframes);
+        assertTrue("last frame didn't have EOS", sawOutputEOS);
+        assertEquals(stopatsample, numframes);
+
+        testFd.close();
+    }
+
+    private long checksum(ByteBuffer buf, int size) {
+        assertTrue(size != 0);
+        assertTrue(size <= buf.capacity());
+        CRC32 crc = new CRC32();
+        int pos = buf.position();
+        buf.rewind();
+        for (int i = 0; i < buf.capacity(); i++) {
+            crc.update(buf.get());
+        }
+        buf.position(pos);
+        return crc.getValue();
+    }
+
+    public void testFlush() throws Exception {
+        testFlush(R.raw.loudsoftwav);
+        testFlush(R.raw.loudsoftogg);
+        testFlush(R.raw.loudsoftmp3);
+        testFlush(R.raw.loudsoftaac);
+        testFlush(R.raw.loudsoftfaac);
+        testFlush(R.raw.loudsoftitunes);
+    }
+
+    private void testFlush(int resource) throws Exception {
+
+        AssetFileDescriptor testFd = mResources.openRawResourceFd(resource);
+
+        MediaExtractor extractor;
+        MediaCodec codec;
+        ByteBuffer[] codecInputBuffers;
+        ByteBuffer[] codecOutputBuffers;
+
+        extractor = new MediaExtractor();
+        extractor.setDataSource(testFd.getFileDescriptor(), testFd.getStartOffset(),
+                testFd.getLength());
+        testFd.close();
+
+        assertEquals("wrong number of tracks", 1, extractor.getTrackCount());
+        MediaFormat format = extractor.getTrackFormat(0);
+        String mime = format.getString(MediaFormat.KEY_MIME);
+        assertTrue("not an audio file", mime.startsWith("audio/"));
+
+        codec = MediaCodec.createDecoderByType(mime);
+        codec.configure(format, null /* surface */, null /* crypto */, 0 /* flags */);
+        codec.start();
+        codecInputBuffers = codec.getInputBuffers();
+        codecOutputBuffers = codec.getOutputBuffers();
+
+        extractor.selectTrack(0);
+
+        // decode a bit of the first part of the file, and verify the amplitude
+        short maxvalue1 = getAmplitude(extractor, codec);
+
+        // flush the codec and seek the extractor a different position, then decode a bit more
+        // and check the amplitude
+        extractor.seekTo(8000000, 0);
+        codec.flush();
+        short maxvalue2 = getAmplitude(extractor, codec);
+
+        assertTrue("first section amplitude too low", maxvalue1 > 20000);
+        assertTrue("second section amplitude too high", maxvalue2 < 5000);
+        codec.stop();
+        codec.release();
+
+    }
+    
+    private short getAmplitude(MediaExtractor extractor, MediaCodec codec) {
+        short maxvalue = 0;
+        int numBytesDecoded = 0;
+        final long kTimeOutUs = 5000;
+        ByteBuffer[] codecInputBuffers = codec.getInputBuffers();
+        ByteBuffer[] codecOutputBuffers = codec.getOutputBuffers();
+        MediaCodec.BufferInfo info = new MediaCodec.BufferInfo();
+
+        while(numBytesDecoded < 44100 * 2) {
+            int inputBufIndex = codec.dequeueInputBuffer(kTimeOutUs);
+
+            if (inputBufIndex >= 0) {
+                ByteBuffer dstBuf = codecInputBuffers[inputBufIndex];
+
+                int sampleSize = extractor.readSampleData(dstBuf, 0 /* offset */);
+                long presentationTimeUs = extractor.getSampleTime();
+
+                codec.queueInputBuffer(
+                        inputBufIndex,
+                        0 /* offset */,
+                        sampleSize,
+                        presentationTimeUs,
+                        0 /* flags */);
+
+                extractor.advance();
+            }
+            int res = codec.dequeueOutputBuffer(info, kTimeOutUs);
+
+            if (res >= 0) {
+
+                int outputBufIndex = res;
+                ByteBuffer buf = codecOutputBuffers[outputBufIndex];
+
+                for (int i = 0; i < info.size; i += 2) {
+                    short sample = buf.getShort(i);
+                    if (maxvalue < sample) {
+                        maxvalue = sample;
+                    }
+                    int idx = (numBytesDecoded + i) / 2;
+                }
+
+                numBytesDecoded += info.size;
+
+                codec.releaseOutputBuffer(outputBufIndex, false /* render */);
+            } else if (res == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                codecOutputBuffers = codec.getOutputBuffers();
+            } else if (res == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                MediaFormat oformat = codec.getOutputFormat();
+            }
+        }
+        return maxvalue; 
     }
 
 }
diff --git a/tests/tests/media/src/android/media/cts/EncodeDecodeTest.java b/tests/tests/media/src/android/media/cts/EncodeDecodeTest.java
new file mode 100644
index 0000000..d788102
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/EncodeDecodeTest.java
@@ -0,0 +1,1134 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.media.cts;
+
+import android.media.MediaCodec;
+import android.media.MediaCodecInfo;
+import android.media.MediaCodecList;
+import android.media.MediaFormat;
+import android.opengl.GLES20;
+import android.test.AndroidTestCase;
+import android.util.Log;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+
+import javax.microedition.khronos.opengles.GL10;
+
+
+/**
+ * Generates a series of video frames, encodes them, decodes them, and tests for significant
+ * divergence from the original.
+ * <p>
+ * We copy the data from the encoder's output buffers to the decoder's input buffers, running
+ * them in parallel.  The first buffer output for video/avc contains codec configuration data,
+ * which we must carefully forward to the decoder.
+ * <p>
+ * An alternative approach would be to save the output of the decoder as an mpeg4 video
+ * file, and read it back in from disk.  The data we're generating is just an elementary
+ * stream, so we'd need to perform additional steps to make that happen.
+ */
+public class EncodeDecodeTest extends AndroidTestCase {
+    private static final String TAG = "EncodeDecodeTest";
+    private static final boolean VERBOSE = false;           // lots of logging
+    private static final boolean DEBUG_SAVE_FILE = false;   // save copy of encoded movie
+    private static final String DEBUG_FILE_NAME_BASE = "/sdcard/test.";
+
+    // parameters for the encoder
+    private static final String MIME_TYPE = "video/avc";    // H.264 Advanced Video Coding
+    private static final int FRAME_RATE = 15;               // 15fps
+    private static final int IFRAME_INTERVAL = 10;          // 10 seconds between I-frames
+
+    // movie length, in frames
+    private static final int NUM_FRAMES = 30;               // two seconds of video
+
+    private static final int TEST_Y = 120;                  // YUV values for colored rect
+    private static final int TEST_U = 160;
+    private static final int TEST_V = 200;
+    private static final int TEST_R0 = 0;                   // RGB equivalent of {0,0,0}
+    private static final int TEST_G0 = 136;
+    private static final int TEST_B0 = 0;
+    private static final int TEST_R1 = 236;                 // RGB equivalent of {120,160,200}
+    private static final int TEST_G1 = 50;
+    private static final int TEST_B1 = 186;
+
+    // size of a frame, in pixels
+    private int mWidth = -1;
+    private int mHeight = -1;
+    // bit rate, in bits per second
+    private int mBitRate = -1;
+
+    // largest color component delta seen (i.e. actual vs. expected)
+    private int mLargestColorDelta;
+
+
+    /**
+     * Tests streaming of AVC video through the encoder and decoder.  Data is encoded from
+     * a series of byte[] buffers and decoded into ByteBuffers.  The output is checked for
+     * validity.
+     */
+    public void testEncodeDecodeVideoFromBufferToBufferQCIF() throws Exception {
+        setParameters(176, 144, 1000000);
+        encodeDecodeVideoFromBuffer(false);
+    }
+    public void testEncodeDecodeVideoFromBufferToBufferQVGA() throws Exception {
+        setParameters(320, 240, 2000000);
+        encodeDecodeVideoFromBuffer(false);
+    }
+    public void testEncodeDecodeVideoFromBufferToBuffer720p() throws Exception {
+        setParameters(1280, 720, 6000000);
+        encodeDecodeVideoFromBuffer(false);
+    }
+
+    /**
+     * Tests streaming of AVC video through the encoder and decoder.  Data is encoded from
+     * a series of byte[] buffers and decoded into Surfaces.  The output is checked for
+     * validity.
+     * <p>
+     * Because of the way SurfaceTexture.OnFrameAvailableListener works, we need to run this
+     * test on a thread that doesn't have a Looper configured.  If we don't, the test will
+     * pass, but we won't actually test the output because we'll never receive the "frame
+     * available" notifications".  The CTS test framework seems to be configuring a Looper on
+     * the test thread, so we have to hand control off to a new thread for the duration of
+     * the test.
+     */
+    public void testEncodeDecodeVideoFromBufferToSurfaceQCIF() throws Throwable {
+        setParameters(176, 144, 1000000);
+        BufferToSurfaceWrapper.runTest(this);
+    }
+    public void testEncodeDecodeVideoFromBufferToSurfaceQVGA() throws Throwable {
+        setParameters(320, 240, 2000000);
+        BufferToSurfaceWrapper.runTest(this);
+    }
+    public void testEncodeDecodeVideoFromBufferToSurface720p() throws Throwable {
+        setParameters(1280, 720, 6000000);
+        BufferToSurfaceWrapper.runTest(this);
+    }
+
+    /** Wraps testEncodeDecodeVideoFromBuffer(true) */
+    private static class BufferToSurfaceWrapper implements Runnable {
+        private Throwable mThrowable;
+        private EncodeDecodeTest mTest;
+
+        private BufferToSurfaceWrapper(EncodeDecodeTest test) {
+            mTest = test;
+        }
+
+        @Override
+        public void run() {
+            try {
+                mTest.encodeDecodeVideoFromBuffer(true);
+            } catch (Throwable th) {
+                mThrowable = th;
+            }
+        }
+
+        /**
+         * Entry point.
+         */
+        public static void runTest(EncodeDecodeTest obj) throws Throwable {
+            BufferToSurfaceWrapper wrapper = new BufferToSurfaceWrapper(obj);
+            Thread th = new Thread(wrapper, "codec test");
+            th.start();
+            th.join();
+            if (wrapper.mThrowable != null) {
+                throw wrapper.mThrowable;
+            }
+        }
+    }
+
+    /**
+     * Tests streaming of AVC video through the encoder and decoder.  Data is provided through
+     * a Surface and decoded onto a Surface.  The output is checked for validity.
+     */
+    public void testEncodeDecodeVideoFromSurfaceToSurfaceQCIF() throws Throwable {
+        setParameters(176, 144, 1000000);
+        SurfaceToSurfaceWrapper.runTest(this);
+    }
+    public void testEncodeDecodeVideoFromSurfaceToSurfaceQVGA() throws Throwable {
+        setParameters(320, 240, 2000000);
+        SurfaceToSurfaceWrapper.runTest(this);
+    }
+    public void testEncodeDecodeVideoFromSurfaceToSurface720p() throws Throwable {
+        setParameters(1280, 720, 6000000);
+        SurfaceToSurfaceWrapper.runTest(this);
+    }
+
+    /** Wraps testEncodeDecodeVideoFromSurfaceToSurface() */
+    private static class SurfaceToSurfaceWrapper implements Runnable {
+        private Throwable mThrowable;
+        private EncodeDecodeTest mTest;
+
+        private SurfaceToSurfaceWrapper(EncodeDecodeTest test) {
+            mTest = test;
+        }
+
+        @Override
+        public void run() {
+            try {
+                mTest.encodeDecodeVideoFromSurfaceToSurface();
+            } catch (Throwable th) {
+                mThrowable = th;
+            }
+        }
+
+        /**
+         * Entry point.
+         */
+        public static void runTest(EncodeDecodeTest obj) throws Throwable {
+            SurfaceToSurfaceWrapper wrapper = new SurfaceToSurfaceWrapper(obj);
+            Thread th = new Thread(wrapper, "codec test");
+            th.start();
+            th.join();
+            if (wrapper.mThrowable != null) {
+                throw wrapper.mThrowable;
+            }
+        }
+    }
+
+    /**
+     * Sets the desired frame size and bit rate.
+     */
+    private void setParameters(int width, int height, int bitRate) {
+        if ((width % 16) != 0 || (height % 16) != 0) {
+            Log.w(TAG, "WARNING: width or height not multiple of 16");
+        }
+        mWidth = width;
+        mHeight = height;
+        mBitRate = bitRate;
+    }
+
+    /**
+     * Tests encoding and subsequently decoding video from frames generated into a buffer.
+     * <p>
+     * We encode several frames of a video test pattern using MediaCodec, then decode the
+     * output with MediaCodec and do some simple checks.
+     * <p>
+     * See http://b.android.com/37769 for a discussion of input format pitfalls.
+     */
+    private void encodeDecodeVideoFromBuffer(boolean toSurface) throws Exception {
+        MediaCodec encoder = null;
+        MediaCodec decoder = null;
+
+        mLargestColorDelta = -1;
+
+        try {
+            MediaCodecInfo codecInfo = selectCodec(MIME_TYPE);
+            if (codecInfo == null) {
+                // Don't fail CTS if they don't have an AVC codec (not here, anyway).
+                Log.e(TAG, "Unable to find an appropriate codec for " + MIME_TYPE);
+                return;
+            }
+            if (VERBOSE) Log.d(TAG, "found codec: " + codecInfo.getName());
+
+            int colorFormat = selectColorFormat(codecInfo, MIME_TYPE);
+            if (VERBOSE) Log.d(TAG, "found colorFormat: " + colorFormat);
+
+            // We avoid the device-specific limitations on width and height by using values that
+            // are multiples of 16, which all tested devices seem to be able to handle.
+            MediaFormat format = MediaFormat.createVideoFormat(MIME_TYPE, mWidth, mHeight);
+
+            // Set some properties.  Failing to specify some of these can cause the MediaCodec
+            // configure() call to throw an unhelpful exception.
+            format.setInteger(MediaFormat.KEY_COLOR_FORMAT, colorFormat);
+            format.setInteger(MediaFormat.KEY_BIT_RATE, mBitRate);
+            format.setInteger(MediaFormat.KEY_FRAME_RATE, FRAME_RATE);
+            format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, IFRAME_INTERVAL);
+            if (VERBOSE) Log.d(TAG, "format: " + format);
+
+            // Create a MediaCodec for the desired codec, then configure it as an encoder with
+            // our desired properties.
+            encoder = MediaCodec.createByCodecName(codecInfo.getName());
+            encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
+            encoder.start();
+
+            // Create a MediaCodec for the decoder, just based on the MIME type.  The various
+            // format details will be passed through the csd-0 meta-data later on.
+            decoder = MediaCodec.createDecoderByType(MIME_TYPE);
+
+            doEncodeDecodeVideoFromBuffer(encoder, colorFormat, decoder, toSurface);
+        } finally {
+            if (VERBOSE) Log.d(TAG, "releasing codecs");
+            if (encoder != null) {
+                encoder.stop();
+                encoder.release();
+            }
+            if (decoder != null) {
+                decoder.stop();
+                decoder.release();
+            }
+
+            Log.i(TAG, "Largest color delta: " + mLargestColorDelta);
+        }
+    }
+
+    /**
+     * Tests encoding and subsequently decoding video from frames generated into a buffer.
+     * <p>
+     * We encode several frames of a video test pattern using MediaCodec, then decode the
+     * output with MediaCodec and do some simple checks.
+     */
+    private void encodeDecodeVideoFromSurfaceToSurface() throws Exception {
+        MediaCodec encoder = null;
+        MediaCodec decoder = null;
+        InputSurface inputSurface = null;
+        OutputSurface outputSurface = null;
+
+        mLargestColorDelta = -1;
+
+        try {
+            MediaCodecInfo codecInfo = selectCodec(MIME_TYPE);
+            if (codecInfo == null) {
+                // Don't fail CTS if they don't have an AVC codec (not here, anyway).
+                Log.e(TAG, "Unable to find an appropriate codec for " + MIME_TYPE);
+                return;
+            }
+            if (VERBOSE) Log.d(TAG, "found codec: " + codecInfo.getName());
+
+            int colorFormat = MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface;
+
+            // We avoid the device-specific limitations on width and height by using values that
+            // are multiples of 16, which all tested devices seem to be able to handle.
+            MediaFormat format = MediaFormat.createVideoFormat(MIME_TYPE, mWidth, mHeight);
+
+            // Set some properties.  Failing to specify some of these can cause the MediaCodec
+            // configure() call to throw an unhelpful exception.
+            format.setInteger(MediaFormat.KEY_COLOR_FORMAT, colorFormat);
+            format.setInteger(MediaFormat.KEY_BIT_RATE, mBitRate);
+            format.setInteger(MediaFormat.KEY_FRAME_RATE, FRAME_RATE);
+            format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, IFRAME_INTERVAL);
+            if (VERBOSE) Log.d(TAG, "format: " + format);
+
+            // Create the output surface.
+            outputSurface = new OutputSurface(mWidth, mHeight);
+
+            // Create a MediaCodec for the decoder, just based on the MIME type.  The various
+            // format details will be passed through the csd-0 meta-data later on.
+            decoder = MediaCodec.createDecoderByType(MIME_TYPE);
+            MediaFormat decoderFormat = MediaFormat.createVideoFormat(MIME_TYPE, mWidth, mHeight);
+            decoder.configure(format, outputSurface.getSurface(), null, 0);
+            decoder.start();
+
+            // Create a MediaCodec for the desired codec, then configure it as an encoder with
+            // our desired properties.  Request a Surface to use for input.
+            encoder = MediaCodec.createByCodecName(codecInfo.getName());
+            encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
+            inputSurface = new InputSurface(encoder.createInputSurface());
+            encoder.start();
+
+            doEncodeDecodeVideoFromSurfaceToSurface(encoder, inputSurface, colorFormat, decoder, outputSurface);
+        } finally {
+            if (VERBOSE) Log.d(TAG, "releasing codecs");
+            if (inputSurface != null) {
+                inputSurface.release();
+            }
+            if (outputSurface != null) {
+                outputSurface.release();
+            }
+            if (encoder != null) {
+                encoder.stop();
+                encoder.release();
+            }
+            if (decoder != null) {
+                decoder.stop();
+                decoder.release();
+            }
+
+            Log.i(TAG, "Largest color delta: " + mLargestColorDelta);
+        }
+    }
+
+    /**
+     * Returns the first codec capable of encoding the specified MIME type, or null if no
+     * match was found.
+     */
+    private static MediaCodecInfo selectCodec(String mimeType) {
+        int numCodecs = MediaCodecList.getCodecCount();
+        for (int i = 0; i < numCodecs; i++) {
+            MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i);
+
+            if (!codecInfo.isEncoder()) {
+                continue;
+            }
+
+            String[] types = codecInfo.getSupportedTypes();
+            for (int j = 0; j < types.length; j++) {
+                if (types[j].equalsIgnoreCase(mimeType)) {
+                    return codecInfo;
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Returns a color format that is supported by the codec and by this test code.  If no
+     * match is found, this throws a test failure -- the set of formats known to the test
+     * should be expanded for new platforms.
+     */
+    private static int selectColorFormat(MediaCodecInfo codecInfo, String mimeType) {
+        MediaCodecInfo.CodecCapabilities capabilities = codecInfo.getCapabilitiesForType(mimeType);
+        for (int i = 0; i < capabilities.colorFormats.length; i++) {
+            int colorFormat = capabilities.colorFormats[i];
+            if (isRecognizedFormat(colorFormat)) {
+                return colorFormat;
+            }
+        }
+        fail("couldn't find a good color format for " + codecInfo.getName() + " / " + mimeType);
+        return 0;   // not reached
+    }
+
+    /**
+     * Returns true if this is a color format that this test code understands (i.e. we know how
+     * to read and generate frames in this format).
+     */
+    private static boolean isRecognizedFormat(int colorFormat) {
+        switch (colorFormat) {
+            // these are the formats we know how to handle for this test
+            case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Planar:
+            case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420PackedPlanar:
+            case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420SemiPlanar:
+            case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420PackedSemiPlanar:
+            case MediaCodecInfo.CodecCapabilities.COLOR_TI_FormatYUV420PackedSemiPlanar:
+                return true;
+            default:
+                return false;
+        }
+    }
+
+    /**
+     * Returns true if the specified color format is semi-planar YUV.  Throws an exception
+     * if the color format is not recognized (e.g. not YUV).
+     */
+    private static boolean isSemiPlanarYUV(int colorFormat) {
+        switch (colorFormat) {
+            case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Planar:
+            case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420PackedPlanar:
+                return false;
+            case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420SemiPlanar:
+            case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420PackedSemiPlanar:
+            case MediaCodecInfo.CodecCapabilities.COLOR_TI_FormatYUV420PackedSemiPlanar:
+                return true;
+            default:
+                throw new RuntimeException("unknown format " + colorFormat);
+        }
+    }
+
+    /**
+     * Does the actual work for encoding frames from buffers of byte[].
+     */
+    private void doEncodeDecodeVideoFromBuffer(MediaCodec encoder, int encoderColorFormat,
+            MediaCodec decoder, boolean toSurface) {
+        final int TIMEOUT_USEC = 10000;
+        ByteBuffer[] encoderInputBuffers = encoder.getInputBuffers();
+        ByteBuffer[] encoderOutputBuffers = encoder.getOutputBuffers();
+        ByteBuffer[] decoderInputBuffers = null;
+        ByteBuffer[] decoderOutputBuffers = null;
+        MediaCodec.BufferInfo info = new MediaCodec.BufferInfo();
+        MediaFormat decoderOutputFormat = null;
+        int generateIndex = 0;
+        int checkIndex = 0;
+        int badFrames = 0;
+        boolean decoderConfigured = false;
+        OutputSurface outputSurface = null;
+
+        // The size of a frame of video data, in the formats we handle, is stride*sliceHeight
+        // for Y, and (stride/2)*(sliceHeight/2) for each of the Cb and Cr channels.  Application
+        // of algebra and assuming that stride==width and sliceHeight==height yields:
+        byte[] frameData = new byte[mWidth * mHeight * 3 / 2];
+
+        // Just out of curiosity.
+        long rawSize = 0;
+        long encodedSize = 0;
+
+        // Save a copy to disk.  Useful for debugging the test.  Note this is a raw elementary
+        // stream, not a .mp4 file, so not all players will know what to do with it.
+        FileOutputStream outputStream = null;
+        if (DEBUG_SAVE_FILE) {
+            String fileName = DEBUG_FILE_NAME_BASE + mWidth + "x" + mHeight + ".mp4";
+            try {
+                outputStream = new FileOutputStream(fileName);
+                Log.d(TAG, "encoded output will be saved as " + fileName);
+            } catch (IOException ioe) {
+                Log.w(TAG, "Unable to create debug output file " + fileName);
+                throw new RuntimeException(ioe);
+            }
+        }
+
+        if (toSurface) {
+            outputSurface = new OutputSurface(mWidth, mHeight);
+        }
+
+        // Loop until the output side is done.
+        boolean inputDone = false;
+        boolean encoderDone = false;
+        boolean outputDone = false;
+        while (!outputDone) {
+            if (VERBOSE) Log.d(TAG, "loop");
+
+            // If we're not done submitting frames, generate a new one and submit it.  By
+            // doing this on every loop we're working to ensure that the encoder always has
+            // work to do.
+            //
+            // We don't really want a timeout here, but sometimes there's a delay opening
+            // the encoder device, so a short timeout can keep us from spinning hard.
+            if (!inputDone) {
+                int inputBufIndex = encoder.dequeueInputBuffer(TIMEOUT_USEC);
+                if (VERBOSE) Log.d(TAG, "inputBufIndex=" + inputBufIndex);
+                if (inputBufIndex >= 0) {
+                    long ptsUsec = computePresentationTime(generateIndex);
+                    if (generateIndex == NUM_FRAMES) {
+                        // Send an empty frame with the end-of-stream flag set.  If we set EOS
+                        // on a frame with data, that frame data will be ignored, and the
+                        // output will be short one frame.
+                        encoder.queueInputBuffer(inputBufIndex, 0, 0, ptsUsec,
+                                MediaCodec.BUFFER_FLAG_END_OF_STREAM);
+                        inputDone = true;
+                        if (VERBOSE) Log.d(TAG, "sent input EOS (with zero-length frame)");
+                    } else {
+                        generateFrame(generateIndex, encoderColorFormat, frameData);
+
+                        ByteBuffer inputBuf = encoderInputBuffers[inputBufIndex];
+                        // the buffer should be sized to hold one full frame
+                        assertTrue(inputBuf.capacity() >= frameData.length);
+                        inputBuf.clear();
+                        inputBuf.put(frameData);
+
+                        encoder.queueInputBuffer(inputBufIndex, 0, frameData.length, ptsUsec, 0);
+                        if (VERBOSE) Log.d(TAG, "submitted frame " + generateIndex + " to enc");
+                    }
+                    generateIndex++;
+                } else {
+                    // either all in use, or we timed out during initial setup
+                    if (VERBOSE) Log.d(TAG, "input buffer not available");
+                }
+            }
+
+            // Check for output from the encoder.  If there's no output yet, we either need to
+            // provide more input, or we need to wait for the encoder to work its magic.  We
+            // can't actually tell which is the case, so if we can't get an output buffer right
+            // away we loop around and see if it wants more input.
+            //
+            // Once we get EOS from the encoder, we don't need to do this anymore.
+            if (!encoderDone) {
+                int encoderStatus = encoder.dequeueOutputBuffer(info, TIMEOUT_USEC);
+                if (encoderStatus == MediaCodec.INFO_TRY_AGAIN_LATER) {
+                    // no output available yet
+                    if (VERBOSE) Log.d(TAG, "no output from encoder available");
+                } else if (encoderStatus == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                    // not expected for an encoder
+                    encoderOutputBuffers = encoder.getOutputBuffers();
+                    if (VERBOSE) Log.d(TAG, "encoder output buffers changed");
+                } else if (encoderStatus == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                    // not expected for an encoder
+                    MediaFormat newFormat = encoder.getOutputFormat();
+                    if (VERBOSE) Log.d(TAG, "encoder output format changed: " + newFormat);
+                } else if (encoderStatus < 0) {
+                    fail("unexpected result from encoder.dequeueOutputBuffer: " + encoderStatus);
+                } else { // encoderStatus >= 0
+                    ByteBuffer encodedData = encoderOutputBuffers[encoderStatus];
+                    if (encodedData == null) {
+                        fail("encoderOutputBuffer " + encoderStatus + " was null");
+                    }
+
+                    // It's usually necessary to adjust the ByteBuffer values to match BufferInfo.
+                    encodedData.position(info.offset);
+                    encodedData.limit(info.offset + info.size);
+
+                    encodedSize += info.size;
+                    if (outputStream != null) {
+                        byte[] data = new byte[info.size];
+                        encodedData.get(data);
+                        encodedData.position(info.offset);
+                        try {
+                            outputStream.write(data);
+                        } catch (IOException ioe) {
+                            Log.w(TAG, "failed writing debug data to file");
+                            throw new RuntimeException(ioe);
+                        }
+                    }
+                    if ((info.flags & MediaCodec.BUFFER_FLAG_CODEC_CONFIG) != 0) {
+                        // Codec config info.  Only expected on first packet.  One way to
+                        // handle this is to manually stuff the data into the MediaFormat
+                        // and pass that to configure().  We do that here to exercise the API.
+                        assertFalse(decoderConfigured);
+                        MediaFormat format =
+                                MediaFormat.createVideoFormat(MIME_TYPE, mWidth, mHeight);
+                        format.setByteBuffer("csd-0", encodedData);
+                        decoder.configure(format, toSurface ? outputSurface.getSurface() : null,
+                                null, 0);
+                        decoder.start();
+                        decoderInputBuffers = decoder.getInputBuffers();
+                        decoderOutputBuffers = decoder.getOutputBuffers();
+                        decoderConfigured = true;
+                        if (VERBOSE) Log.d(TAG, "decoder configured (" + info.size + " bytes)");
+                    } else {
+                        // Get a decoder input buffer, blocking until it's available.
+                        assertTrue(decoderConfigured);
+                        int inputBufIndex = decoder.dequeueInputBuffer(-1);
+                        ByteBuffer inputBuf = decoderInputBuffers[inputBufIndex];
+                        inputBuf.clear();
+                        inputBuf.put(encodedData);
+                        decoder.queueInputBuffer(inputBufIndex, 0, info.size,
+                                info.presentationTimeUs, info.flags);
+
+                        encoderDone = (info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0;
+                        if (VERBOSE) Log.d(TAG, "passed " + info.size + " bytes to decoder"
+                                + (encoderDone ? " (EOS)" : ""));
+                    }
+
+                    encoder.releaseOutputBuffer(encoderStatus, false);
+                }
+            }
+
+            // Check for output from the decoder.  We want to do this on every loop to avoid
+            // the possibility of stalling the pipeline.  We use a short timeout to avoid
+            // burning CPU if the decoder is hard at work but the next frame isn't quite ready.
+            //
+            // If we're decoding to a Surface, we'll get notified here as usual but the
+            // ByteBuffer references will be null.  The data is sent to Surface instead.
+            if (decoderConfigured) {
+                int decoderStatus = decoder.dequeueOutputBuffer(info, TIMEOUT_USEC);
+                if (decoderStatus == MediaCodec.INFO_TRY_AGAIN_LATER) {
+                    // no output available yet
+                    if (VERBOSE) Log.d(TAG, "no output from decoder available");
+                } else if (decoderStatus == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                    // The storage associated with the direct ByteBuffer may already be unmapped,
+                    // so attempting to access data through the old output buffer array could
+                    // lead to a native crash.
+                    if (VERBOSE) Log.d(TAG, "decoder output buffers changed");
+                    decoderOutputBuffers = decoder.getOutputBuffers();
+                } else if (decoderStatus == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                    // this happens before the first frame is returned
+                    decoderOutputFormat = decoder.getOutputFormat();
+                    if (VERBOSE) Log.d(TAG, "decoder output format changed: " +
+                            decoderOutputFormat);
+                } else if (decoderStatus < 0) {
+                    fail("unexpected result from deocder.dequeueOutputBuffer: " + decoderStatus);
+                } else {  // decoderStatus >= 0
+                    if (!toSurface) {
+                        ByteBuffer outputFrame = decoderOutputBuffers[decoderStatus];
+
+                        outputFrame.position(info.offset);
+                        outputFrame.limit(info.offset + info.size);
+
+                        rawSize += info.size;
+                        if (info.size == 0) {
+                            if (VERBOSE) Log.d(TAG, "got empty frame");
+                        } else {
+                            if (VERBOSE) Log.d(TAG, "decoded, checking frame " + checkIndex);
+                            assertEquals("Wrong time stamp", computePresentationTime(checkIndex),
+                                    info.presentationTimeUs);
+                            if (!checkFrame(checkIndex++, decoderOutputFormat, outputFrame)) {
+                                badFrames++;
+                            }
+                        }
+
+                        if ((info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
+                            if (VERBOSE) Log.d(TAG, "output EOS");
+                            outputDone = true;
+                        }
+                        decoder.releaseOutputBuffer(decoderStatus, false /*render*/);
+                    } else {
+                        if (VERBOSE) Log.d(TAG, "surface decoder given buffer " + decoderStatus +
+                                " (size=" + info.size + ")");
+                        rawSize += info.size;
+                        if ((info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
+                            if (VERBOSE) Log.d(TAG, "output EOS");
+                            outputDone = true;
+                        }
+
+                        boolean doRender = (info.size != 0);
+
+                        // As soon as we call releaseOutputBuffer, the buffer will be forwarded
+                        // to SurfaceTexture to convert to a texture.  The API doesn't guarantee
+                        // that the texture will be available before the call returns, so we
+                        // need to wait for the onFrameAvailable callback to fire.
+                        decoder.releaseOutputBuffer(decoderStatus, doRender);
+                        if (doRender) {
+                            if (VERBOSE) Log.d(TAG, "awaiting frame " + checkIndex);
+                            assertEquals("Wrong time stamp", computePresentationTime(checkIndex),
+                                    info.presentationTimeUs);
+                            outputSurface.awaitNewImage();
+                            outputSurface.drawImage();
+                            if (!checkSurfaceFrame(checkIndex++)) {
+                                badFrames++;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        if (VERBOSE) Log.d(TAG, "decoded " + checkIndex + " frames at "
+                + mWidth + "x" + mHeight + ": raw=" + rawSize + ", enc=" + encodedSize);
+        if (outputStream != null) {
+            try {
+                outputStream.close();
+            } catch (IOException ioe) {
+                Log.w(TAG, "failed closing debug file");
+                throw new RuntimeException(ioe);
+            }
+        }
+
+        if (outputSurface != null) {
+            outputSurface.release();
+        }
+
+        if (checkIndex != NUM_FRAMES) {
+            fail("expected " + NUM_FRAMES + " frames, only decoded " + checkIndex);
+        }
+        if (badFrames != 0) {
+            fail("Found " + badFrames + " bad frames");
+        }
+    }
+
+    /**
+     * Does the actual work for encoding and decoding from Surface to Surface.
+     */
+    private void doEncodeDecodeVideoFromSurfaceToSurface(MediaCodec encoder,
+            InputSurface inputSurface, int encoderColorFormat, MediaCodec decoder,
+            OutputSurface outputSurface) {
+        final int TIMEOUT_USEC = 10000;
+        ByteBuffer[] encoderOutputBuffers = encoder.getOutputBuffers();
+        ByteBuffer[] decoderInputBuffers = decoder.getInputBuffers();
+        MediaCodec.BufferInfo info = new MediaCodec.BufferInfo();
+        int generateIndex = 0;
+        int checkIndex = 0;
+        int badFrames = 0;
+
+        // Save a copy to disk.  Useful for debugging the test.  Note this is a raw elementary
+        // stream, not a .mp4 file, so not all players will know what to do with it.
+        FileOutputStream outputStream = null;
+        if (DEBUG_SAVE_FILE) {
+            String fileName = DEBUG_FILE_NAME_BASE + mWidth + "x" + mHeight + ".mp4";
+            try {
+                outputStream = new FileOutputStream(fileName);
+                Log.d(TAG, "encoded output will be saved as " + fileName);
+            } catch (IOException ioe) {
+                Log.w(TAG, "Unable to create debug output file " + fileName);
+                throw new RuntimeException(ioe);
+            }
+        }
+
+        // Loop until the output side is done.
+        boolean inputDone = false;
+        boolean encoderDone = false;
+        boolean outputDone = false;
+        while (!outputDone) {
+            if (VERBOSE) Log.d(TAG, "loop");
+
+            // If we're not done submitting frames, generate a new one and submit it.  The
+            // eglSwapBuffers call will block if the input is full.
+            if (!inputDone) {
+                if (generateIndex == NUM_FRAMES) {
+                    // Send an empty frame with the end-of-stream flag set.
+                    if (VERBOSE) Log.d(TAG, "signaling input EOS");
+                    encoder.signalEndOfInputStream();
+                    inputDone = true;
+                } else {
+                    inputSurface.makeCurrent();
+                    generateSurfaceFrame(generateIndex);
+                    inputSurface.setPresentationTime(computePresentationTime(generateIndex) * 1000);
+                    if (VERBOSE) Log.d(TAG, "inputSurface swapBuffers");
+                    inputSurface.swapBuffers();
+                }
+                generateIndex++;
+            }
+
+            // Assume output is available.  Loop until both assumptions are false.
+            boolean decoderOutputAvailable = true;
+            boolean encoderOutputAvailable = !encoderDone;
+            while (decoderOutputAvailable || encoderOutputAvailable) {
+                // Start by draining any pending output from the decoder.  It's important to
+                // do this before we try to stuff any more data in.
+                int decoderStatus = decoder.dequeueOutputBuffer(info, TIMEOUT_USEC);
+                if (decoderStatus == MediaCodec.INFO_TRY_AGAIN_LATER) {
+                    // no output available yet
+                    if (VERBOSE) Log.d(TAG, "no output from decoder available");
+                    decoderOutputAvailable = false;
+                } else if (decoderStatus == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                    if (VERBOSE) Log.d(TAG, "decoder output buffers changed (but we don't care)");
+                } else if (decoderStatus == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                    // this happens before the first frame is returned
+                    MediaFormat decoderOutputFormat = decoder.getOutputFormat();
+                    if (VERBOSE) Log.d(TAG, "decoder output format changed: " +
+                            decoderOutputFormat);
+                } else if (decoderStatus < 0) {
+                    fail("unexpected result from deocder.dequeueOutputBuffer: " + decoderStatus);
+                } else {  // decoderStatus >= 0
+                    if (VERBOSE) Log.d(TAG, "surface decoder given buffer " + decoderStatus +
+                            " (size=" + info.size + ")");
+                    if ((info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
+                        if (VERBOSE) Log.d(TAG, "output EOS");
+                        outputDone = true;
+                    }
+
+                    // The ByteBuffers are null references, but we still get a nonzero size for
+                    // the decoded data.
+                    boolean doRender = (info.size != 0);
+
+                    // As soon as we call releaseOutputBuffer, the buffer will be forwarded
+                    // to SurfaceTexture to convert to a texture.  The API doesn't guarantee
+                    // that the texture will be available before the call returns, so we
+                    // need to wait for the onFrameAvailable callback to fire.  If we don't
+                    // wait, we risk dropping frames.
+                    outputSurface.makeCurrent();
+                    decoder.releaseOutputBuffer(decoderStatus, doRender);
+                    if (doRender) {
+                        assertEquals("Wrong time stamp", computePresentationTime(checkIndex),
+                                info.presentationTimeUs);
+                        if (VERBOSE) Log.d(TAG, "awaiting frame " + checkIndex);
+                        outputSurface.awaitNewImage();
+                        outputSurface.drawImage();
+                        if (!checkSurfaceFrame(checkIndex++)) {
+                            badFrames++;
+                        }
+                    }
+                }
+                if (decoderStatus != MediaCodec.INFO_TRY_AGAIN_LATER) {
+                    // Continue attempts to drain output.
+                    continue;
+                }
+
+                // Decoder is drained, check to see if we've got a new buffer of output from
+                // the encoder.
+                if (!encoderDone) {
+                    int encoderStatus = encoder.dequeueOutputBuffer(info, TIMEOUT_USEC);
+                    if (encoderStatus == MediaCodec.INFO_TRY_AGAIN_LATER) {
+                        // no output available yet
+                        if (VERBOSE) Log.d(TAG, "no output from encoder available");
+                        encoderOutputAvailable = false;
+                    } else if (encoderStatus == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                        // not expected for an encoder
+                        encoderOutputBuffers = encoder.getOutputBuffers();
+                        if (VERBOSE) Log.d(TAG, "encoder output buffers changed");
+                    } else if (encoderStatus == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                        // not expected for an encoder
+                        MediaFormat newFormat = encoder.getOutputFormat();
+                        if (VERBOSE) Log.d(TAG, "encoder output format changed: " + newFormat);
+                    } else if (encoderStatus < 0) {
+                        fail("unexpected result from encoder.dequeueOutputBuffer: " + encoderStatus);
+                    } else { // encoderStatus >= 0
+                        ByteBuffer encodedData = encoderOutputBuffers[encoderStatus];
+                        if (encodedData == null) {
+                            fail("encoderOutputBuffer " + encoderStatus + " was null");
+                        }
+
+                        // It's usually necessary to adjust the ByteBuffer values to match BufferInfo.
+                        encodedData.position(info.offset);
+                        encodedData.limit(info.offset + info.size);
+
+                        if (outputStream != null) {
+                            byte[] data = new byte[info.size];
+                            encodedData.get(data);
+                            encodedData.position(info.offset);
+                            try {
+                                outputStream.write(data);
+                            } catch (IOException ioe) {
+                                Log.w(TAG, "failed writing debug data to file");
+                                throw new RuntimeException(ioe);
+                            }
+                        }
+
+                        // Get a decoder input buffer, blocking until it's available.  We just
+                        // drained the decoder output, so we expect there to be a free input
+                        // buffer now or in the near future (i.e. this should never deadlock
+                        // if the codec is meeting requirements).
+                        //
+                        // The first buffer of data we get will have the BUFFER_FLAG_CODEC_CONFIG
+                        // flag set; the decoder will see this and finish configuring itself.
+                        int inputBufIndex = decoder.dequeueInputBuffer(-1);
+                        ByteBuffer inputBuf = decoderInputBuffers[inputBufIndex];
+                        inputBuf.clear();
+                        inputBuf.put(encodedData);
+                        decoder.queueInputBuffer(inputBufIndex, 0, info.size,
+                                info.presentationTimeUs, info.flags);
+
+                        // If everything from the encoder has been passed to the decoder, we
+                        // can stop polling the encoder output.  (This just an optimization.)
+                        if ((info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
+                            encoderDone = true;
+                            encoderOutputAvailable = false;
+                        }
+                        if (VERBOSE) Log.d(TAG, "passed " + info.size + " bytes to decoder"
+                                + (encoderDone ? " (EOS)" : ""));
+
+                        encoder.releaseOutputBuffer(encoderStatus, false);
+                    }
+                }
+            }
+        }
+
+        if (outputStream != null) {
+            try {
+                outputStream.close();
+            } catch (IOException ioe) {
+                Log.w(TAG, "failed closing debug file");
+                throw new RuntimeException(ioe);
+            }
+        }
+
+        if (checkIndex != NUM_FRAMES) {
+            fail("expected " + NUM_FRAMES + " frames, only decoded " + checkIndex);
+        }
+        if (badFrames != 0) {
+            fail("Found " + badFrames + " bad frames");
+        }
+    }
+
+
+    /**
+     * Generates data for frame N into the supplied buffer.  We have an 8-frame animation
+     * sequence that wraps around.  It looks like this:
+     * <pre>
+     *   0 1 2 3
+     *   7 6 5 4
+     * </pre>
+     * We draw one of the eight rectangles and leave the rest set to the zero-fill color.
+     */
+    private void generateFrame(int frameIndex, int colorFormat, byte[] frameData) {
+        final int HALF_WIDTH = mWidth / 2;
+        boolean semiPlanar = isSemiPlanarYUV(colorFormat);
+
+        // Set to zero.  In YUV this is a dull green.
+        Arrays.fill(frameData, (byte) 0);
+
+        int startX, startY, countX, countY;
+
+        frameIndex %= 8;
+        //frameIndex = (frameIndex / 8) % 8;    // use this instead for debug -- easier to see
+        if (frameIndex < 4) {
+            startX = frameIndex * (mWidth / 4);
+            startY = 0;
+        } else {
+            startX = (7 - frameIndex) * (mWidth / 4);
+            startY = mHeight / 2;
+        }
+
+        for (int y = startY + (mHeight/2) - 1; y >= startY; --y) {
+            for (int x = startX + (mWidth/4) - 1; x >= startX; --x) {
+                if (semiPlanar) {
+                    // full-size Y, followed by UV pairs at half resolution
+                    // e.g. Nexus 4 OMX.qcom.video.encoder.avc COLOR_FormatYUV420SemiPlanar
+                    // e.g. Galaxy Nexus OMX.TI.DUCATI1.VIDEO.H264E
+                    //        OMX_TI_COLOR_FormatYUV420PackedSemiPlanar
+                    frameData[y * mWidth + x] = (byte) TEST_Y;
+                    if ((x & 0x01) == 0 && (y & 0x01) == 0) {
+                        frameData[mWidth*mHeight + y * HALF_WIDTH + x] = (byte) TEST_U;
+                        frameData[mWidth*mHeight + y * HALF_WIDTH + x + 1] = (byte) TEST_V;
+                    }
+                } else {
+                    // full-size Y, followed by quarter-size U and quarter-size V
+                    // e.g. Nexus 10 OMX.Exynos.AVC.Encoder COLOR_FormatYUV420Planar
+                    // e.g. Nexus 7 OMX.Nvidia.h264.encoder COLOR_FormatYUV420Planar
+                    frameData[y * mWidth + x] = (byte) TEST_Y;
+                    if ((x & 0x01) == 0 && (y & 0x01) == 0) {
+                        frameData[mWidth*mHeight + (y/2) * HALF_WIDTH + (x/2)] = (byte) TEST_U;
+                        frameData[mWidth*mHeight + HALF_WIDTH * (mHeight / 2) +
+                                  (y/2) * HALF_WIDTH + (x/2)] = (byte) TEST_V;
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Performs a simple check to see if the frame is more or less right.
+     * <p>
+     * See {@link #generateFrame} for a description of the layout.  The idea is to sample
+     * one pixel from the middle of the 8 regions, and verify that the correct one has
+     * the non-background color.  We can't know exactly what the video encoder has done
+     * with our frames, so we just check to see if it looks like more or less the right thing.
+     *
+     * @return true if the frame looks good
+     */
+    private boolean checkFrame(int frameIndex, MediaFormat format, ByteBuffer frameData) {
+        // Check for color formats we don't understand.  There is no requirement for video
+        // decoders to use a "mundane" format, so we just give a pass on proprietary formats.
+        // e.g. Nexus 4 0x7FA30C03 OMX_QCOM_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka
+        int colorFormat = format.getInteger(MediaFormat.KEY_COLOR_FORMAT);
+        if (!isRecognizedFormat(colorFormat)) {
+            Log.d(TAG, "unable to check frame contents for colorFormat=" +
+                    Integer.toHexString(colorFormat));
+            return true;
+        }
+
+        boolean frameFailed = false;
+        boolean semiPlanar = isSemiPlanarYUV(colorFormat);
+        int width = format.getInteger(MediaFormat.KEY_WIDTH);
+        int height = format.getInteger(MediaFormat.KEY_HEIGHT);
+        int halfWidth = width / 2;
+        int cropLeft = format.getInteger("crop-left");
+        int cropRight = format.getInteger("crop-right");
+        int cropTop = format.getInteger("crop-top");
+        int cropBottom = format.getInteger("crop-bottom");
+        int cropWidth = cropRight - cropLeft + 1;
+        int cropHeight = cropBottom - cropTop + 1;
+
+        assertEquals(mWidth, cropWidth);
+        assertEquals(mHeight, cropHeight);
+
+        for (int i = 0; i < 8; i++) {
+            int x, y;
+            if (i < 4) {
+                x = i * (mWidth / 4) + (mWidth / 8);
+                y = mHeight / 4;
+            } else {
+                x = (7 - i) * (mWidth / 4) + (mWidth / 8);
+                y = (mHeight * 3) / 4;
+            }
+
+            y += cropTop;
+            x += cropLeft;
+
+            int testY, testU, testV;
+            if (semiPlanar) {
+                // Galaxy Nexus uses OMX_TI_COLOR_FormatYUV420PackedSemiPlanar
+                testY = frameData.get(y * width + x) & 0xff;
+                testU = frameData.get(width*height + 2*(y/2) * halfWidth + 2*(x/2)) & 0xff;
+                testV = frameData.get(width*height + 2*(y/2) * halfWidth + 2*(x/2) + 1) & 0xff;
+            } else {
+                // Nexus 10, Nexus 7 use COLOR_FormatYUV420Planar
+                testY = frameData.get(y * width + x) & 0xff;
+                testU = frameData.get(width*height + (y/2) * halfWidth + (x/2)) & 0xff;
+                testV = frameData.get(width*height + halfWidth * (height / 2) +
+                        (y/2) * halfWidth + (x/2)) & 0xff;
+            }
+
+            int expY, expU, expV;
+            if (i == frameIndex % 8) {
+                // colored rect
+                expY = TEST_Y;
+                expU = TEST_U;
+                expV = TEST_V;
+            } else {
+                // should be our zeroed-out buffer
+                expY = expU = expV = 0;
+            }
+            if (!isColorClose(testY, expY) ||
+                    !isColorClose(testU, expU) ||
+                    !isColorClose(testV, expV)) {
+                Log.w(TAG, "Bad frame " + frameIndex + " (rect=" + i + ": yuv=" + testY +
+                        "," + testU + "," + testV + " vs. expected " + expY + "," + expU +
+                        "," + expV + ")");
+                frameFailed = true;
+            }
+        }
+
+        return !frameFailed;
+    }
+
+    /**
+     * Generates a frame of data using GL commands.
+     */
+    private void generateSurfaceFrame(int frameIndex) {
+        frameIndex %= 8;
+
+        int startX, startY;
+        if (frameIndex < 4) {
+            // (0,0) is bottom-left in GL
+            startX = frameIndex * (mWidth / 4);
+            startY = mHeight / 2;
+        } else {
+            startX = (7 - frameIndex) * (mWidth / 4);
+            startY = 0;
+        }
+
+        GLES20.glDisable(GLES20.GL_SCISSOR_TEST);
+        GLES20.glClearColor(TEST_R0 / 255.0f, TEST_G0 / 255.0f, TEST_B0 / 255.0f, 1.0f);
+        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
+        GLES20.glEnable(GLES20.GL_SCISSOR_TEST);
+        GLES20.glScissor(startX, startY, mWidth / 4, mHeight / 2);
+        GLES20.glClearColor(TEST_R1 / 255.0f, TEST_G1 / 255.0f, TEST_B1 / 255.0f, 1.0f);
+        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
+    }
+
+    /**
+     * Checks the frame for correctness.  Similar to {@link #checkFrame}, but uses GL to
+     * read pixels from the current surface.
+     *
+     * @return true if the frame looks good
+     */
+    private boolean checkSurfaceFrame(int frameIndex) {
+        ByteBuffer pixelBuf = ByteBuffer.allocateDirect(4); // TODO - reuse this
+        boolean frameFailed = false;
+
+        for (int i = 0; i < 8; i++) {
+            // Note the coordinates are inverted on the Y-axis in GL.
+            int x, y;
+            if (i < 4) {
+                x = i * (mWidth / 4) + (mWidth / 8);
+                y = (mHeight * 3) / 4;
+            } else {
+                x = (7 - i) * (mWidth / 4) + (mWidth / 8);
+                y = mHeight / 4;
+            }
+
+            GLES20.glReadPixels(x, y, 1, 1, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, pixelBuf);
+            int r = pixelBuf.get(0) & 0xff;
+            int g = pixelBuf.get(1) & 0xff;
+            int b = pixelBuf.get(2) & 0xff;
+            //Log.d(TAG, "GOT(" + frameIndex + "/" + i + "): r=" + r + " g=" + g + " b=" + b);
+
+            int expR, expG, expB;
+            if (i == frameIndex % 8) {
+                // colored rect
+                expR = TEST_R1;
+                expG = TEST_G1;
+                expB = TEST_B1;
+            } else {
+                // zero background color
+                expR = TEST_R0;
+                expG = TEST_G0;
+                expB = TEST_B0;
+            }
+            if (!isColorClose(r, expR) ||
+                    !isColorClose(g, expG) ||
+                    !isColorClose(b, expB)) {
+                Log.w(TAG, "Bad frame " + frameIndex + " (rect=" + i + ": rgb=" + r +
+                        "," + g + "," + b + " vs. expected " + expR + "," + expG +
+                        "," + expB + ")");
+                frameFailed = true;
+            }
+        }
+
+        return !frameFailed;
+    }
+
+    /**
+     * Returns true if the actual color value is close to the expected color value.  Updates
+     * mLargestColorDelta.
+     */
+    boolean isColorClose(int actual, int expected) {
+        final int MAX_DELTA = 8;
+        int delta = Math.abs(actual - expected);
+        if (delta > mLargestColorDelta) {
+            mLargestColorDelta = delta;
+        }
+        return (delta <= MAX_DELTA);
+    }
+
+    /**
+     * Generates the presentation time for frame N, in microseconds.
+     */
+    private static long computePresentationTime(int frameIndex) {
+        return 132 + frameIndex * 1000000 / FRAME_RATE;
+    }
+}
diff --git a/tests/tests/media/src/android/media/cts/ExtractDecodeEditEncodeMuxTest.java b/tests/tests/media/src/android/media/cts/ExtractDecodeEditEncodeMuxTest.java
new file mode 100644
index 0000000..40b4949
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/ExtractDecodeEditEncodeMuxTest.java
@@ -0,0 +1,1149 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.media.cts;
+
+import android.annotation.TargetApi;
+import android.content.res.AssetFileDescriptor;
+import android.media.MediaCodec;
+import android.media.MediaCodecInfo;
+import android.media.MediaCodecList;
+import android.media.MediaExtractor;
+import android.media.MediaFormat;
+import android.media.MediaMuxer;
+import android.os.Environment;
+import android.test.AndroidTestCase;
+import android.util.Log;
+import android.view.Surface;
+
+import com.android.cts.media.R;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.concurrent.atomic.AtomicReference;
+
+/**
+ * Test for the integration of MediaMuxer and MediaCodec's encoder.
+ *
+ * <p>It uses MediaExtractor to get frames from a test stream, decodes them to a surface, uses a
+ * shader to edit them, encodes them from the resulting surface, and then uses MediaMuxer to write
+ * them into a file.
+ *
+ * <p>It does not currently check whether the result file is correct, but makes sure that nothing
+ * fails along the way.
+ *
+ * <p>It also tests the way the codec config buffers need to be passed from the MediaCodec to the
+ * MediaMuxer.
+ */
+@TargetApi(18)
+public class ExtractDecodeEditEncodeMuxTest extends AndroidTestCase {
+
+    private static final String TAG = ExtractDecodeEditEncodeMuxTest.class.getSimpleName();
+    private static final boolean VERBOSE = false; // lots of logging
+
+    /** How long to wait for the next buffer to become available. */
+    private static final int TIMEOUT_USEC = 10000;
+
+    /** Where to output the test files. */
+    private static final File OUTPUT_FILENAME_DIR = Environment.getExternalStorageDirectory();
+
+    // parameters for the video encoder
+    private static final String OUTPUT_VIDEO_MIME_TYPE = "video/avc"; // H.264 Advanced Video Coding
+    private static final int OUTPUT_VIDEO_BIT_RATE = 2000000; // 2Mbps
+    private static final int OUTPUT_VIDEO_FRAME_RATE = 15; // 15fps
+    private static final int OUTPUT_VIDEO_IFRAME_INTERVAL = 10; // 10 seconds between I-frames
+    private static final int OUTPUT_VIDEO_COLOR_FORMAT =
+            MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface;
+
+    // parameters for the audio encoder
+    private static final String OUTPUT_AUDIO_MIME_TYPE = "audio/mp4a-latm"; // Advanced Audio Coding
+    private static final int OUTPUT_AUDIO_CHANNEL_COUNT = 2; // Must match the input stream.
+    private static final int OUTPUT_AUDIO_BIT_RATE = 128 * 1024;
+    private static final int OUTPUT_AUDIO_AAC_PROFILE =
+            MediaCodecInfo.CodecProfileLevel.AACObjectHE;
+    private static final int OUTPUT_AUDIO_SAMPLE_RATE_HZ = 44100; // Must match the input stream.
+
+    /**
+     * Used for editing the frames.
+     *
+     * <p>Swaps green and blue channels by storing an RBGA color in an RGBA buffer.
+     */
+    private static final String FRAGMENT_SHADER =
+            "#extension GL_OES_EGL_image_external : require\n" +
+            "precision mediump float;\n" +
+            "varying vec2 vTextureCoord;\n" +
+            "uniform samplerExternalOES sTexture;\n" +
+            "void main() {\n" +
+            "  gl_FragColor = texture2D(sTexture, vTextureCoord).rbga;\n" +
+            "}\n";
+
+    /** Whether to copy the video from the test video. */
+    private boolean mCopyVideo;
+    /** Whether to copy the audio from the test video. */
+    private boolean mCopyAudio;
+    /** Whether to verify the audio format. */
+    private boolean mVerifyAudioFormat;
+    /** Width of the output frames. */
+    private int mWidth = -1;
+    /** Height of the output frames. */
+    private int mHeight = -1;
+
+    /** The raw resource used as the input file. */
+    private int mSourceResId;
+
+    /** The destination file for the encoded output. */
+    private String mOutputFile;
+
+    public void testExtractDecodeEditEncodeMuxQCIF() throws Throwable {
+        setSize(176, 144);
+        setSource(R.raw.video_480x360_mp4_h264_500kbps_30fps_aac_stereo_128kbps_44100hz);
+        setCopyVideo();
+        TestWrapper.runTest(this);
+    }
+
+    public void testExtractDecodeEditEncodeMuxQVGA() throws Throwable {
+        setSize(320, 240);
+        setSource(R.raw.video_480x360_mp4_h264_500kbps_30fps_aac_stereo_128kbps_44100hz);
+        setCopyVideo();
+        TestWrapper.runTest(this);
+    }
+
+    public void testExtractDecodeEditEncodeMux720p() throws Throwable {
+        setSize(1280, 720);
+        setSource(R.raw.video_480x360_mp4_h264_500kbps_30fps_aac_stereo_128kbps_44100hz);
+        setCopyVideo();
+        TestWrapper.runTest(this);
+    }
+
+    public void testExtractDecodeEditEncodeMuxAudio() throws Throwable {
+        setSize(1280, 720);
+        setSource(R.raw.video_480x360_mp4_h264_500kbps_30fps_aac_stereo_128kbps_44100hz);
+        setCopyAudio();
+        setVerifyAudioFormat();
+        TestWrapper.runTest(this);
+    }
+
+    public void testExtractDecodeEditEncodeMuxAudioVideo() throws Throwable {
+        setSize(1280, 720);
+        setSource(R.raw.video_480x360_mp4_h264_500kbps_30fps_aac_stereo_128kbps_44100hz);
+        setCopyAudio();
+        setCopyVideo();
+        setVerifyAudioFormat();
+        TestWrapper.runTest(this);
+    }
+
+    /** Wraps testExtractDecodeEditEncodeMux() */
+    private static class TestWrapper implements Runnable {
+        private Throwable mThrowable;
+        private ExtractDecodeEditEncodeMuxTest mTest;
+
+        private TestWrapper(ExtractDecodeEditEncodeMuxTest test) {
+            mTest = test;
+        }
+
+        @Override
+        public void run() {
+            try {
+                mTest.extractDecodeEditEncodeMux();
+            } catch (Throwable th) {
+                mThrowable = th;
+            }
+        }
+
+        /**
+         * Entry point.
+         */
+        public static void runTest(ExtractDecodeEditEncodeMuxTest test) throws Throwable {
+            test.setOutputFile();
+            TestWrapper wrapper = new TestWrapper(test);
+            Thread th = new Thread(wrapper, "codec test");
+            th.start();
+            th.join();
+            if (wrapper.mThrowable != null) {
+                throw wrapper.mThrowable;
+            }
+        }
+    }
+
+    /**
+     * Sets the test to copy the video stream.
+     */
+    private void setCopyVideo() {
+        mCopyVideo = true;
+    }
+
+    /**
+     * Sets the test to copy the video stream.
+     */
+    private void setCopyAudio() {
+        mCopyAudio = true;
+    }
+
+    /**
+     * Sets the test to verify the output audio format.
+     */
+    private void setVerifyAudioFormat() {
+        mVerifyAudioFormat = true;
+    }
+
+    /**
+     * Sets the desired frame size.
+     */
+    private void setSize(int width, int height) {
+        if ((width % 16) != 0 || (height % 16) != 0) {
+            Log.w(TAG, "WARNING: width or height not multiple of 16");
+        }
+        mWidth = width;
+        mHeight = height;
+    }
+
+    /**
+     * Sets the raw resource used as the source video.
+     */
+    private void setSource(int resId) {
+        mSourceResId = resId;
+    }
+
+    /**
+     * Sets the name of the output file based on the other parameters.
+     *
+     * <p>Must be called after {@link #setSize(int, int)} and {@link #setSource(int)}.
+     */
+    private void setOutputFile() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(OUTPUT_FILENAME_DIR.getAbsolutePath());
+        sb.append("/cts-media-");
+        sb.append(getClass().getSimpleName());
+        assertTrue("should have called setSource() first", mSourceResId != -1);
+        sb.append('-');
+        sb.append(mSourceResId);
+        if (mCopyVideo) {
+            assertTrue("should have called setSize() first", mWidth != -1);
+            assertTrue("should have called setSize() first", mHeight != -1);
+            sb.append('-');
+            sb.append("video");
+            sb.append('-');
+            sb.append(mWidth);
+            sb.append('x');
+            sb.append(mHeight);
+        }
+        if (mCopyAudio) {
+            sb.append('-');
+            sb.append("audio");
+        }
+        sb.append(".mp4");
+        mOutputFile = sb.toString();
+    }
+
+    /**
+     * Tests encoding and subsequently decoding video from frames generated into a buffer.
+     * <p>
+     * We encode several frames of a video test pattern using MediaCodec, then decode the output
+     * with MediaCodec and do some simple checks.
+     */
+    private void extractDecodeEditEncodeMux() throws Exception {
+        // Exception that may be thrown during release.
+        Exception exception = null;
+
+        MediaCodecInfo videoCodecInfo = selectCodec(OUTPUT_VIDEO_MIME_TYPE);
+        if (videoCodecInfo == null) {
+            // Don't fail CTS if they don't have an AVC codec (not here, anyway).
+            Log.e(TAG, "Unable to find an appropriate codec for " + OUTPUT_VIDEO_MIME_TYPE);
+            return;
+        }
+        if (VERBOSE) Log.d(TAG, "video found codec: " + videoCodecInfo.getName());
+
+        MediaCodecInfo audioCodecInfo = selectCodec(OUTPUT_AUDIO_MIME_TYPE);
+        if (audioCodecInfo == null) {
+            // Don't fail CTS if they don't have an AAC codec (not here, anyway).
+            Log.e(TAG, "Unable to find an appropriate codec for " + OUTPUT_AUDIO_MIME_TYPE);
+            return;
+        }
+        if (VERBOSE) Log.d(TAG, "audio found codec: " + audioCodecInfo.getName());
+
+        MediaExtractor videoExtractor = null;
+        MediaExtractor audioExtractor = null;
+        OutputSurface outputSurface = null;
+        MediaCodec videoDecoder = null;
+        MediaCodec audioDecoder = null;
+        MediaCodec videoEncoder = null;
+        MediaCodec audioEncoder = null;
+        MediaMuxer muxer = null;
+
+        InputSurface inputSurface = null;
+
+        try {
+            if (mCopyVideo) {
+                videoExtractor = createExtractor();
+                int videoInputTrack = getAndSelectVideoTrackIndex(videoExtractor);
+                assertTrue("missing video track in test video", videoInputTrack != -1);
+                MediaFormat inputFormat = videoExtractor.getTrackFormat(videoInputTrack);
+
+                // We avoid the device-specific limitations on width and height by using values
+                // that are multiples of 16, which all tested devices seem to be able to handle.
+                MediaFormat outputVideoFormat =
+                        MediaFormat.createVideoFormat(OUTPUT_VIDEO_MIME_TYPE, mWidth, mHeight);
+
+                // Set some properties. Failing to specify some of these can cause the MediaCodec
+                // configure() call to throw an unhelpful exception.
+                outputVideoFormat.setInteger(
+                        MediaFormat.KEY_COLOR_FORMAT, OUTPUT_VIDEO_COLOR_FORMAT);
+                outputVideoFormat.setInteger(MediaFormat.KEY_BIT_RATE, OUTPUT_VIDEO_BIT_RATE);
+                outputVideoFormat.setInteger(MediaFormat.KEY_FRAME_RATE, OUTPUT_VIDEO_FRAME_RATE);
+                outputVideoFormat.setInteger(
+                        MediaFormat.KEY_I_FRAME_INTERVAL, OUTPUT_VIDEO_IFRAME_INTERVAL);
+                if (VERBOSE) Log.d(TAG, "video format: " + outputVideoFormat);
+
+                // Create a MediaCodec for the desired codec, then configure it as an encoder with
+                // our desired properties. Request a Surface to use for input.
+                AtomicReference<Surface> inputSurfaceReference = new AtomicReference<Surface>();
+                videoEncoder = createVideoEncoder(
+                        videoCodecInfo, outputVideoFormat, inputSurfaceReference);
+                inputSurface = new InputSurface(inputSurfaceReference.get());
+                inputSurface.makeCurrent();
+                // Create a MediaCodec for the decoder, based on the extractor's format.
+                outputSurface = new OutputSurface();
+                outputSurface.changeFragmentShader(FRAGMENT_SHADER);
+                videoDecoder = createVideoDecoder(inputFormat, outputSurface.getSurface());
+            }
+
+            if (mCopyAudio) {
+                audioExtractor = createExtractor();
+                int audioInputTrack = getAndSelectAudioTrackIndex(audioExtractor);
+                assertTrue("missing audio track in test video", audioInputTrack != -1);
+                MediaFormat inputFormat = audioExtractor.getTrackFormat(audioInputTrack);
+
+                MediaFormat outputAudioFormat =
+                        MediaFormat.createAudioFormat(
+                                OUTPUT_AUDIO_MIME_TYPE, OUTPUT_AUDIO_SAMPLE_RATE_HZ,
+                                OUTPUT_AUDIO_CHANNEL_COUNT);
+                outputAudioFormat.setInteger(MediaFormat.KEY_BIT_RATE, OUTPUT_AUDIO_BIT_RATE);
+                outputAudioFormat.setInteger(MediaFormat.KEY_AAC_PROFILE, OUTPUT_AUDIO_AAC_PROFILE);
+
+                // Create a MediaCodec for the desired codec, then configure it as an encoder with
+                // our desired properties. Request a Surface to use for input.
+                audioEncoder = createAudioEncoder(audioCodecInfo, outputAudioFormat);
+                // Create a MediaCodec for the decoder, based on the extractor's format.
+                audioDecoder = createAudioDecoder(inputFormat);
+            }
+
+            // Creates a muxer but do not start or add tracks just yet.
+            muxer = createMuxer();
+
+            doExtractDecodeEditEncodeMux(
+                    videoExtractor,
+                    audioExtractor,
+                    videoDecoder,
+                    videoEncoder,
+                    audioDecoder,
+                    audioEncoder,
+                    muxer,
+                    inputSurface,
+                    outputSurface);
+        } finally {
+            if (VERBOSE) Log.d(TAG, "releasing extractor, decoder, encoder, and muxer");
+            // Try to release everything we acquired, even if one of the releases fails, in which
+            // case we save the first exception we got and re-throw at the end (unless something
+            // other exception has already been thrown). This guarantees the first exception thrown
+            // is reported as the cause of the error, everything is (attempted) to be released, and
+            // all other exceptions appear in the logs.
+            try {
+                if (videoExtractor != null) {
+                    videoExtractor.release();
+                }
+            } catch(Exception e) {
+                Log.e(TAG, "error while releasing videoExtractor", e);
+                if (exception == null) {
+                    exception = e;
+                }
+            }
+            try {
+                if (audioExtractor != null) {
+                    audioExtractor.release();
+                }
+            } catch(Exception e) {
+                Log.e(TAG, "error while releasing audioExtractor", e);
+                if (exception == null) {
+                    exception = e;
+                }
+            }
+            try {
+                if (videoDecoder != null) {
+                    videoDecoder.stop();
+                    videoDecoder.release();
+                }
+            } catch(Exception e) {
+                Log.e(TAG, "error while releasing videoDecoder", e);
+                if (exception == null) {
+                    exception = e;
+                }
+            }
+            try {
+                if (outputSurface != null) {
+                    outputSurface.release();
+                }
+            } catch(Exception e) {
+                Log.e(TAG, "error while releasing outputSurface", e);
+                if (exception == null) {
+                    exception = e;
+                }
+            }
+            try {
+                if (videoEncoder != null) {
+                    videoEncoder.stop();
+                    videoEncoder.release();
+                }
+            } catch(Exception e) {
+                Log.e(TAG, "error while releasing videoEncoder", e);
+                if (exception == null) {
+                    exception = e;
+                }
+            }
+            try {
+                if (audioDecoder != null) {
+                    audioDecoder.stop();
+                    audioDecoder.release();
+                }
+            } catch(Exception e) {
+                Log.e(TAG, "error while releasing audioDecoder", e);
+                if (exception == null) {
+                    exception = e;
+                }
+            }
+            try {
+                if (audioEncoder != null) {
+                    audioEncoder.stop();
+                    audioEncoder.release();
+                }
+            } catch(Exception e) {
+                Log.e(TAG, "error while releasing audioEncoder", e);
+                if (exception == null) {
+                    exception = e;
+                }
+            }
+            try {
+                if (muxer != null) {
+                    muxer.stop();
+                    muxer.release();
+                }
+            } catch(Exception e) {
+                Log.e(TAG, "error while releasing muxer", e);
+                if (exception == null) {
+                    exception = e;
+                }
+            }
+            try {
+                if (inputSurface != null) {
+                    inputSurface.release();
+                }
+            } catch(Exception e) {
+                Log.e(TAG, "error while releasing inputSurface", e);
+                if (exception == null) {
+                    exception = e;
+                }
+            }
+        }
+        if (exception != null) {
+            throw exception;
+        }
+
+        MediaExtractor mediaExtractor = null;
+        try {
+            mediaExtractor = new MediaExtractor();
+            mediaExtractor.setDataSource(mOutputFile);
+
+            assertEquals("incorrect number of tracks", (mCopyAudio ? 1 : 0) + (mCopyVideo ? 1 : 0),
+                    mediaExtractor.getTrackCount());
+            if (mVerifyAudioFormat) {
+                boolean foundAudio = false;
+                for (int i = 0; i < mediaExtractor.getTrackCount(); i++) {
+                    MediaFormat trackFormat = mediaExtractor.getTrackFormat(i);
+                    if (isAudioFormat(trackFormat)) {
+                        foundAudio = true;
+                        int expectedSampleRate = OUTPUT_AUDIO_SAMPLE_RATE_HZ;
+
+                        // SBR mode halves the sample rate in the format.
+                        if (OUTPUT_AUDIO_AAC_PROFILE ==
+                                MediaCodecInfo.CodecProfileLevel.AACObjectHE) {
+                            expectedSampleRate /= 2;
+                        }
+                        assertEquals("sample rates should match", expectedSampleRate,
+                                trackFormat.getInteger(MediaFormat.KEY_SAMPLE_RATE));
+                    }
+                }
+
+                assertTrue("output should have an audio track", foundAudio || !mCopyAudio);
+            }
+        } catch (IOException e) {
+            throw new IllegalStateException("exception verifying output file", e);
+        } finally {
+            if (mediaExtractor != null) {
+                mediaExtractor.release();
+            }
+        }
+
+        // TODO: Check the generated output file's video format and sample data.
+    }
+
+    /**
+     * Creates an extractor that reads its frames from {@link #mSourceResId}.
+     */
+    private MediaExtractor createExtractor() throws IOException {
+        MediaExtractor extractor;
+        AssetFileDescriptor srcFd = getContext().getResources().openRawResourceFd(mSourceResId);
+        extractor = new MediaExtractor();
+        extractor.setDataSource(srcFd.getFileDescriptor(), srcFd.getStartOffset(),
+                srcFd.getLength());
+        return extractor;
+    }
+
+    /**
+     * Creates a decoder for the given format, which outputs to the given surface.
+     *
+     * @param inputFormat the format of the stream to decode
+     * @param surface into which to decode the frames
+     */
+    private MediaCodec createVideoDecoder(MediaFormat inputFormat, Surface surface) {
+        MediaCodec decoder = MediaCodec.createDecoderByType(getMimeTypeFor(inputFormat));
+        decoder.configure(inputFormat, surface, null, 0);
+        decoder.start();
+        return decoder;
+    }
+
+    /**
+     * Creates an encoder for the given format using the specified codec, taking input from a
+     * surface.
+     *
+     * <p>The surface to use as input is stored in the given reference.
+     *
+     * @param codecInfo of the codec to use
+     * @param format of the stream to be produced
+     * @param surfaceReference to store the surface to use as input
+     */
+    private MediaCodec createVideoEncoder(
+            MediaCodecInfo codecInfo,
+            MediaFormat format,
+            AtomicReference<Surface> surfaceReference) {
+        MediaCodec encoder = MediaCodec.createByCodecName(codecInfo.getName());
+        encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
+        // Must be called before start() is.
+        surfaceReference.set(encoder.createInputSurface());
+        encoder.start();
+        return encoder;
+    }
+
+    /**
+     * Creates a decoder for the given format.
+     *
+     * @param inputFormat the format of the stream to decode
+     */
+    private MediaCodec createAudioDecoder(MediaFormat inputFormat) {
+        MediaCodec decoder = MediaCodec.createDecoderByType(getMimeTypeFor(inputFormat));
+        decoder.configure(inputFormat, null, null, 0);
+        decoder.start();
+        return decoder;
+    }
+
+    /**
+     * Creates an encoder for the given format using the specified codec.
+     *
+     * @param codecInfo of the codec to use
+     * @param format of the stream to be produced
+     */
+    private MediaCodec createAudioEncoder(MediaCodecInfo codecInfo, MediaFormat format) {
+        MediaCodec encoder = MediaCodec.createByCodecName(codecInfo.getName());
+        encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
+        encoder.start();
+        return encoder;
+    }
+
+    /**
+     * Creates a muxer to write the encoded frames.
+     *
+     * <p>The muxer is not started as it needs to be started only after all streams have been added.
+     */
+    private MediaMuxer createMuxer() throws IOException {
+        return new MediaMuxer(mOutputFile, MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4);
+    }
+
+    private int getAndSelectVideoTrackIndex(MediaExtractor extractor) {
+        for (int index = 0; index < extractor.getTrackCount(); ++index) {
+            if (VERBOSE) {
+                Log.d(TAG, "format for track " + index + " is "
+                        + getMimeTypeFor(extractor.getTrackFormat(index)));
+            }
+            if (isVideoFormat(extractor.getTrackFormat(index))) {
+                extractor.selectTrack(index);
+                return index;
+            }
+        }
+        return -1;
+    }
+
+    private int getAndSelectAudioTrackIndex(MediaExtractor extractor) {
+        for (int index = 0; index < extractor.getTrackCount(); ++index) {
+            if (VERBOSE) {
+                Log.d(TAG, "format for track " + index + " is "
+                        + getMimeTypeFor(extractor.getTrackFormat(index)));
+            }
+            if (isAudioFormat(extractor.getTrackFormat(index))) {
+                extractor.selectTrack(index);
+                return index;
+            }
+        }
+        return -1;
+    }
+
+    /**
+     * Does the actual work for extracting, decoding, encoding and muxing.
+     */
+    private void doExtractDecodeEditEncodeMux(
+            MediaExtractor videoExtractor,
+            MediaExtractor audioExtractor,
+            MediaCodec videoDecoder,
+            MediaCodec videoEncoder,
+            MediaCodec audioDecoder,
+            MediaCodec audioEncoder,
+            MediaMuxer muxer,
+            InputSurface inputSurface,
+            OutputSurface outputSurface) {
+        ByteBuffer[] videoDecoderInputBuffers = null;
+        ByteBuffer[] videoDecoderOutputBuffers = null;
+        ByteBuffer[] videoEncoderOutputBuffers = null;
+        MediaCodec.BufferInfo videoDecoderOutputBufferInfo = null;
+        MediaCodec.BufferInfo videoEncoderOutputBufferInfo = null;
+        if (mCopyVideo) {
+            videoDecoderInputBuffers = videoDecoder.getInputBuffers();
+            videoDecoderOutputBuffers = videoDecoder.getOutputBuffers();
+            videoEncoderOutputBuffers = videoEncoder.getOutputBuffers();
+            videoDecoderOutputBufferInfo = new MediaCodec.BufferInfo();
+            videoEncoderOutputBufferInfo = new MediaCodec.BufferInfo();
+        }
+        ByteBuffer[] audioDecoderInputBuffers = null;
+        ByteBuffer[] audioDecoderOutputBuffers = null;
+        ByteBuffer[] audioEncoderInputBuffers = null;
+        ByteBuffer[] audioEncoderOutputBuffers = null;
+        MediaCodec.BufferInfo audioDecoderOutputBufferInfo = null;
+        MediaCodec.BufferInfo audioEncoderOutputBufferInfo = null;
+        if (mCopyAudio) {
+            audioDecoderInputBuffers = audioDecoder.getInputBuffers();
+            audioDecoderOutputBuffers =  audioDecoder.getOutputBuffers();
+            audioEncoderInputBuffers = audioEncoder.getInputBuffers();
+            audioEncoderOutputBuffers = audioEncoder.getOutputBuffers();
+            audioDecoderOutputBufferInfo = new MediaCodec.BufferInfo();
+            audioEncoderOutputBufferInfo = new MediaCodec.BufferInfo();
+        }
+        // We will get these from the decoders when notified of a format change.
+        MediaFormat decoderOutputVideoFormat = null;
+        MediaFormat decoderOutputAudioFormat = null;
+        // We will get these from the encoders when notified of a format change.
+        MediaFormat encoderOutputVideoFormat = null;
+        MediaFormat encoderOutputAudioFormat = null;
+        // We will determine these once we have the output format.
+        int outputVideoTrack = -1;
+        int outputAudioTrack = -1;
+        // Whether things are done on the video side.
+        boolean videoExtractorDone = false;
+        boolean videoDecoderDone = false;
+        boolean videoEncoderDone = false;
+        // Whether things are done on the audio side.
+        boolean audioExtractorDone = false;
+        boolean audioDecoderDone = false;
+        boolean audioEncoderDone = false;
+        // The audio decoder output buffer to process, -1 if none.
+        int pendingAudioDecoderOutputBufferIndex = -1;
+
+        boolean muxing = false;
+
+        int videoExtractedFrameCount = 0;
+        int videoDecodedFrameCount = 0;
+        int videoEncodedFrameCount = 0;
+
+        int audioExtractedFrameCount = 0;
+        int audioDecodedFrameCount = 0;
+        int audioEncodedFrameCount = 0;
+
+        while ((mCopyVideo && !videoEncoderDone) || (mCopyAudio && !audioEncoderDone)) {
+            if (VERBOSE) {
+                Log.d(TAG, String.format(
+                        "loop: "
+
+                        + "V(%b){"
+                        + "extracted:%d(done:%b) "
+                        + "decoded:%d(done:%b) "
+                        + "encoded:%d(done:%b)} "
+
+                        + "A(%b){"
+                        + "extracted:%d(done:%b) "
+                        + "decoded:%d(done:%b) "
+                        + "encoded:%d(done:%b) "
+                        + "pending:%d} "
+
+                        + "muxing:%b(V:%d,A:%d)",
+
+                        mCopyVideo,
+                        videoExtractedFrameCount, videoExtractorDone,
+                        videoDecodedFrameCount, videoDecoderDone,
+                        videoEncodedFrameCount, videoEncoderDone,
+
+                        mCopyAudio,
+                        audioExtractedFrameCount, audioExtractorDone,
+                        audioDecodedFrameCount, audioDecoderDone,
+                        audioEncodedFrameCount, audioEncoderDone,
+                        pendingAudioDecoderOutputBufferIndex,
+
+                        muxing, outputVideoTrack, outputAudioTrack));
+            }
+
+            // Extract video from file and feed to decoder.
+            // Do not extract video if we have determined the output format but we are not yet
+            // ready to mux the frames.
+            while (mCopyVideo && !videoExtractorDone
+                    && (encoderOutputVideoFormat == null || muxing)) {
+                int decoderInputBufferIndex = videoDecoder.dequeueInputBuffer(TIMEOUT_USEC);
+                if (decoderInputBufferIndex == MediaCodec.INFO_TRY_AGAIN_LATER) {
+                    if (VERBOSE) Log.d(TAG, "no video decoder input buffer");
+                    break;
+                }
+                if (VERBOSE) {
+                    Log.d(TAG, "video decoder: returned input buffer: " + decoderInputBufferIndex);
+                }
+                ByteBuffer decoderInputBuffer = videoDecoderInputBuffers[decoderInputBufferIndex];
+                int size = videoExtractor.readSampleData(decoderInputBuffer, 0);
+                long presentationTime = videoExtractor.getSampleTime();
+                if (VERBOSE) {
+                    Log.d(TAG, "video extractor: returned buffer of size " + size);
+                    Log.d(TAG, "video extractor: returned buffer for time " + presentationTime);
+                }
+                if (size >= 0) {
+                    videoDecoder.queueInputBuffer(
+                            decoderInputBufferIndex,
+                            0,
+                            size,
+                            presentationTime,
+                            videoExtractor.getSampleFlags());
+                }
+                videoExtractorDone = !videoExtractor.advance();
+                if (videoExtractorDone) {
+                    if (VERBOSE) Log.d(TAG, "video extractor: EOS");
+                    videoDecoder.queueInputBuffer(
+                            decoderInputBufferIndex,
+                            0,
+                            0,
+                            0,
+                            MediaCodec.BUFFER_FLAG_END_OF_STREAM);
+                }
+                videoExtractedFrameCount++;
+                // We extracted a frame, let's try something else next.
+                break;
+            }
+
+            // Extract audio from file and feed to decoder.
+            // Do not extract audio if we have determined the output format but we are not yet
+            // ready to mux the frames.
+            while (mCopyAudio && !audioExtractorDone
+                    && (encoderOutputAudioFormat == null || muxing)) {
+                int decoderInputBufferIndex = audioDecoder.dequeueInputBuffer(TIMEOUT_USEC);
+                if (decoderInputBufferIndex == MediaCodec.INFO_TRY_AGAIN_LATER) {
+                    if (VERBOSE) Log.d(TAG, "no audio decoder input buffer");
+                    break;
+                }
+                if (VERBOSE) {
+                    Log.d(TAG, "audio decoder: returned input buffer: " + decoderInputBufferIndex);
+                }
+                ByteBuffer decoderInputBuffer = audioDecoderInputBuffers[decoderInputBufferIndex];
+                int size = audioExtractor.readSampleData(decoderInputBuffer, 0);
+                long presentationTime = audioExtractor.getSampleTime();
+                if (VERBOSE) {
+                    Log.d(TAG, "audio extractor: returned buffer of size " + size);
+                    Log.d(TAG, "audio extractor: returned buffer for time " + presentationTime);
+                }
+                if (size >= 0) {
+                    audioDecoder.queueInputBuffer(
+                            decoderInputBufferIndex,
+                            0,
+                            size,
+                            presentationTime,
+                            audioExtractor.getSampleFlags());
+                }
+                audioExtractorDone = !audioExtractor.advance();
+                if (audioExtractorDone) {
+                    if (VERBOSE) Log.d(TAG, "audio extractor: EOS");
+                    audioDecoder.queueInputBuffer(
+                            decoderInputBufferIndex,
+                            0,
+                            0,
+                            0,
+                            MediaCodec.BUFFER_FLAG_END_OF_STREAM);
+                }
+                audioExtractedFrameCount++;
+                // We extracted a frame, let's try something else next.
+                break;
+            }
+
+            // Poll output frames from the video decoder and feed the encoder.
+            while (mCopyVideo && !videoDecoderDone
+                    && (encoderOutputVideoFormat == null || muxing)) {
+                int decoderOutputBufferIndex =
+                        videoDecoder.dequeueOutputBuffer(
+                                videoDecoderOutputBufferInfo, TIMEOUT_USEC);
+                if (decoderOutputBufferIndex == MediaCodec.INFO_TRY_AGAIN_LATER) {
+                    if (VERBOSE) Log.d(TAG, "no video decoder output buffer");
+                    break;
+                }
+                if (decoderOutputBufferIndex == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                    if (VERBOSE) Log.d(TAG, "video decoder: output buffers changed");
+                    videoDecoderOutputBuffers = videoDecoder.getOutputBuffers();
+                    break;
+                }
+                if (decoderOutputBufferIndex == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                    decoderOutputVideoFormat = videoDecoder.getOutputFormat();
+                    if (VERBOSE) {
+                        Log.d(TAG, "video decoder: output format changed: "
+                                + decoderOutputVideoFormat);
+                    }
+                    break;
+                }
+                if (VERBOSE) {
+                    Log.d(TAG, "video decoder: returned output buffer: "
+                            + decoderOutputBufferIndex);
+                    Log.d(TAG, "video decoder: returned buffer of size "
+                            + videoDecoderOutputBufferInfo.size);
+                }
+                ByteBuffer decoderOutputBuffer =
+                        videoDecoderOutputBuffers[decoderOutputBufferIndex];
+                if ((videoDecoderOutputBufferInfo.flags & MediaCodec.BUFFER_FLAG_CODEC_CONFIG)
+                        != 0) {
+                    if (VERBOSE) Log.d(TAG, "video decoder: codec config buffer");
+                    videoDecoder.releaseOutputBuffer(decoderOutputBufferIndex, false);
+                    break;
+                }
+                if (VERBOSE) {
+                    Log.d(TAG, "video decoder: returned buffer for time "
+                            + videoDecoderOutputBufferInfo.presentationTimeUs);
+                }
+                boolean render = videoDecoderOutputBufferInfo.size != 0;
+                videoDecoder.releaseOutputBuffer(decoderOutputBufferIndex, render);
+                if (render) {
+                    if (VERBOSE) Log.d(TAG, "output surface: await new image");
+                    outputSurface.awaitNewImage();
+                    // Edit the frame and send it to the encoder.
+                    if (VERBOSE) Log.d(TAG, "output surface: draw image");
+                    outputSurface.drawImage();
+                    inputSurface.setPresentationTime(
+                            videoDecoderOutputBufferInfo.presentationTimeUs * 1000);
+                    if (VERBOSE) Log.d(TAG, "input surface: swap buffers");
+                    inputSurface.swapBuffers();
+                    if (VERBOSE) Log.d(TAG, "video encoder: notified of new frame");
+                }
+                if ((videoDecoderOutputBufferInfo.flags
+                        & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
+                    if (VERBOSE) Log.d(TAG, "video decoder: EOS");
+                    videoDecoderDone = true;
+                    videoEncoder.signalEndOfInputStream();
+                }
+                videoDecodedFrameCount++;
+                // We extracted a pending frame, let's try something else next.
+                break;
+            }
+
+            // Poll output frames from the audio decoder.
+            // Do not poll if we already have a pending buffer to feed to the encoder.
+            while (mCopyAudio && !audioDecoderDone && pendingAudioDecoderOutputBufferIndex == -1
+                    && (encoderOutputAudioFormat == null || muxing)) {
+                int decoderOutputBufferIndex =
+                        audioDecoder.dequeueOutputBuffer(
+                                audioDecoderOutputBufferInfo, TIMEOUT_USEC);
+                if (decoderOutputBufferIndex == MediaCodec.INFO_TRY_AGAIN_LATER) {
+                    if (VERBOSE) Log.d(TAG, "no audio decoder output buffer");
+                    break;
+                }
+                if (decoderOutputBufferIndex == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                    if (VERBOSE) Log.d(TAG, "audio decoder: output buffers changed");
+                    audioDecoderOutputBuffers = audioDecoder.getOutputBuffers();
+                    break;
+                }
+                if (decoderOutputBufferIndex == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                    decoderOutputAudioFormat = audioDecoder.getOutputFormat();
+                    if (VERBOSE) {
+                        Log.d(TAG, "audio decoder: output format changed: "
+                                + decoderOutputAudioFormat);
+                    }
+                    break;
+                }
+                if (VERBOSE) {
+                    Log.d(TAG, "audio decoder: returned output buffer: "
+                            + decoderOutputBufferIndex);
+                }
+                if (VERBOSE) {
+                    Log.d(TAG, "audio decoder: returned buffer of size "
+                            + audioDecoderOutputBufferInfo.size);
+                }
+                ByteBuffer decoderOutputBuffer =
+                        audioDecoderOutputBuffers[decoderOutputBufferIndex];
+                if ((audioDecoderOutputBufferInfo.flags & MediaCodec.BUFFER_FLAG_CODEC_CONFIG)
+                        != 0) {
+                    if (VERBOSE) Log.d(TAG, "audio decoder: codec config buffer");
+                    audioDecoder.releaseOutputBuffer(decoderOutputBufferIndex, false);
+                    break;
+                }
+                if (VERBOSE) {
+                    Log.d(TAG, "audio decoder: returned buffer for time "
+                            + audioDecoderOutputBufferInfo.presentationTimeUs);
+                }
+                if (VERBOSE) {
+                    Log.d(TAG, "audio decoder: output buffer is now pending: "
+                            + pendingAudioDecoderOutputBufferIndex);
+                }
+                pendingAudioDecoderOutputBufferIndex = decoderOutputBufferIndex;
+                audioDecodedFrameCount++;
+                // We extracted a pending frame, let's try something else next.
+                break;
+            }
+
+            // Feed the pending decoded audio buffer to the audio encoder.
+            while (mCopyAudio && pendingAudioDecoderOutputBufferIndex != -1) {
+                if (VERBOSE) {
+                    Log.d(TAG, "audio decoder: attempting to process pending buffer: "
+                            + pendingAudioDecoderOutputBufferIndex);
+                }
+                int encoderInputBufferIndex = audioEncoder.dequeueInputBuffer(TIMEOUT_USEC);
+                if (encoderInputBufferIndex == MediaCodec.INFO_TRY_AGAIN_LATER) {
+                    if (VERBOSE) Log.d(TAG, "no audio encoder input buffer");
+                    break;
+                }
+                if (VERBOSE) {
+                    Log.d(TAG, "audio encoder: returned input buffer: " + encoderInputBufferIndex);
+                }
+                ByteBuffer encoderInputBuffer = audioEncoderInputBuffers[encoderInputBufferIndex];
+                int size = audioDecoderOutputBufferInfo.size;
+                long presentationTime = audioDecoderOutputBufferInfo.presentationTimeUs;
+                if (VERBOSE) {
+                    Log.d(TAG, "audio decoder: processing pending buffer: "
+                            + pendingAudioDecoderOutputBufferIndex);
+                }
+                if (VERBOSE) {
+                    Log.d(TAG, "audio decoder: pending buffer of size " + size);
+                    Log.d(TAG, "audio decoder: pending buffer for time " + presentationTime);
+                }
+                if (size >= 0) {
+                    ByteBuffer decoderOutputBuffer =
+                            audioDecoderOutputBuffers[pendingAudioDecoderOutputBufferIndex]
+                                    .duplicate();
+                    decoderOutputBuffer.position(audioDecoderOutputBufferInfo.offset);
+                    decoderOutputBuffer.limit(audioDecoderOutputBufferInfo.offset + size);
+                    encoderInputBuffer.position(0);
+                    encoderInputBuffer.put(decoderOutputBuffer);
+
+                    audioEncoder.queueInputBuffer(
+                            encoderInputBufferIndex,
+                            0,
+                            size,
+                            presentationTime,
+                            audioDecoderOutputBufferInfo.flags);
+                }
+                audioDecoder.releaseOutputBuffer(pendingAudioDecoderOutputBufferIndex, false);
+                pendingAudioDecoderOutputBufferIndex = -1;
+                if ((audioDecoderOutputBufferInfo.flags
+                        & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
+                    if (VERBOSE) Log.d(TAG, "audio decoder: EOS");
+                    audioDecoderDone = true;
+                }
+                // We enqueued a pending frame, let's try something else next.
+                break;
+            }
+
+            // Poll frames from the video encoder and send them to the muxer.
+            while (mCopyVideo && !videoEncoderDone
+                    && (encoderOutputVideoFormat == null || muxing)) {
+                int encoderOutputBufferIndex = videoEncoder.dequeueOutputBuffer(
+                        videoEncoderOutputBufferInfo, TIMEOUT_USEC);
+                if (encoderOutputBufferIndex == MediaCodec.INFO_TRY_AGAIN_LATER) {
+                    if (VERBOSE) Log.d(TAG, "no video encoder output buffer");
+                    break;
+                }
+                if (encoderOutputBufferIndex == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                    if (VERBOSE) Log.d(TAG, "video encoder: output buffers changed");
+                    videoEncoderOutputBuffers = videoEncoder.getOutputBuffers();
+                    break;
+                }
+                if (encoderOutputBufferIndex == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                    if (VERBOSE) Log.d(TAG, "video encoder: output format changed");
+                    if (outputVideoTrack >= 0) {
+                        fail("video encoder changed its output format again?");
+                    }
+                    encoderOutputVideoFormat = videoEncoder.getOutputFormat();
+                    break;
+                }
+                assertTrue("should have added track before processing output", muxing);
+                if (VERBOSE) {
+                    Log.d(TAG, "video encoder: returned output buffer: "
+                            + encoderOutputBufferIndex);
+                    Log.d(TAG, "video encoder: returned buffer of size "
+                            + videoEncoderOutputBufferInfo.size);
+                }
+                ByteBuffer encoderOutputBuffer =
+                        videoEncoderOutputBuffers[encoderOutputBufferIndex];
+                if ((videoEncoderOutputBufferInfo.flags & MediaCodec.BUFFER_FLAG_CODEC_CONFIG)
+                        != 0) {
+                    if (VERBOSE) Log.d(TAG, "video encoder: codec config buffer");
+                    // Simply ignore codec config buffers.
+                    videoEncoder.releaseOutputBuffer(encoderOutputBufferIndex, false);
+                    break;
+                }
+                if (VERBOSE) {
+                    Log.d(TAG, "video encoder: returned buffer for time "
+                            + videoEncoderOutputBufferInfo.presentationTimeUs);
+                }
+                if (videoEncoderOutputBufferInfo.size != 0) {
+                    muxer.writeSampleData(
+                            outputVideoTrack, encoderOutputBuffer, videoEncoderOutputBufferInfo);
+                }
+                if ((videoEncoderOutputBufferInfo.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM)
+                        != 0) {
+                    if (VERBOSE) Log.d(TAG, "video encoder: EOS");
+                    videoEncoderDone = true;
+                }
+                videoEncoder.releaseOutputBuffer(encoderOutputBufferIndex, false);
+                videoEncodedFrameCount++;
+                // We enqueued an encoded frame, let's try something else next.
+                break;
+            }
+
+            // Poll frames from the audio encoder and send them to the muxer.
+            while (mCopyAudio && !audioEncoderDone
+                    && (encoderOutputAudioFormat == null || muxing)) {
+                int encoderOutputBufferIndex = audioEncoder.dequeueOutputBuffer(
+                        audioEncoderOutputBufferInfo, TIMEOUT_USEC);
+                if (encoderOutputBufferIndex == MediaCodec.INFO_TRY_AGAIN_LATER) {
+                    if (VERBOSE) Log.d(TAG, "no audio encoder output buffer");
+                    break;
+                }
+                if (encoderOutputBufferIndex == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                    if (VERBOSE) Log.d(TAG, "audio encoder: output buffers changed");
+                    audioEncoderOutputBuffers = audioEncoder.getOutputBuffers();
+                    break;
+                }
+                if (encoderOutputBufferIndex == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
+                    if (VERBOSE) Log.d(TAG, "audio encoder: output format changed");
+                    if (outputAudioTrack >= 0) {
+                        fail("audio encoder changed its output format again?");
+                    }
+
+                    encoderOutputAudioFormat = audioEncoder.getOutputFormat();
+                    break;
+                }
+                assertTrue("should have added track before processing output", muxing);
+                if (VERBOSE) {
+                    Log.d(TAG, "audio encoder: returned output buffer: "
+                            + encoderOutputBufferIndex);
+                    Log.d(TAG, "audio encoder: returned buffer of size "
+                            + audioEncoderOutputBufferInfo.size);
+                }
+                ByteBuffer encoderOutputBuffer =
+                        audioEncoderOutputBuffers[encoderOutputBufferIndex];
+                if ((audioEncoderOutputBufferInfo.flags & MediaCodec.BUFFER_FLAG_CODEC_CONFIG)
+                        != 0) {
+                    if (VERBOSE) Log.d(TAG, "audio encoder: codec config buffer");
+                    // Simply ignore codec config buffers.
+                    audioEncoder.releaseOutputBuffer(encoderOutputBufferIndex, false);
+                    break;
+                }
+                if (VERBOSE) {
+                    Log.d(TAG, "audio encoder: returned buffer for time "
+                            + audioEncoderOutputBufferInfo.presentationTimeUs);
+                }
+                if (audioEncoderOutputBufferInfo.size != 0) {
+                    muxer.writeSampleData(
+                            outputAudioTrack, encoderOutputBuffer, audioEncoderOutputBufferInfo);
+                }
+                if ((audioEncoderOutputBufferInfo.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM)
+                        != 0) {
+                    if (VERBOSE) Log.d(TAG, "audio encoder: EOS");
+                    audioEncoderDone = true;
+                }
+                audioEncoder.releaseOutputBuffer(encoderOutputBufferIndex, false);
+                audioEncodedFrameCount++;
+                // We enqueued an encoded frame, let's try something else next.
+                break;
+            }
+
+            if (!muxing
+                    && (!mCopyAudio || encoderOutputAudioFormat != null)
+                    && (!mCopyVideo || encoderOutputVideoFormat != null)) {
+                if (mCopyVideo) {
+                    Log.d(TAG, "muxer: adding video track.");
+                    outputVideoTrack = muxer.addTrack(encoderOutputVideoFormat);
+                }
+                if (mCopyAudio) {
+                    Log.d(TAG, "muxer: adding audio track.");
+                    outputAudioTrack = muxer.addTrack(encoderOutputAudioFormat);
+                }
+                Log.d(TAG, "muxer: starting");
+                muxer.start();
+                muxing = true;
+            }
+        }
+
+        // Basic sanity checks.
+        if (mCopyVideo) {
+            assertEquals("encoded and decoded video frame counts should match",
+                    videoDecodedFrameCount, videoEncodedFrameCount);
+            assertTrue("decoded frame count should be less than extracted frame count",
+                    videoDecodedFrameCount <= videoExtractedFrameCount);
+        }
+        if (mCopyAudio) {
+            assertEquals("no frame should be pending", -1, pendingAudioDecoderOutputBufferIndex);
+        }
+    }
+
+    private static boolean isVideoFormat(MediaFormat format) {
+        return getMimeTypeFor(format).startsWith("video/");
+    }
+
+    private static boolean isAudioFormat(MediaFormat format) {
+        return getMimeTypeFor(format).startsWith("audio/");
+    }
+
+    private static String getMimeTypeFor(MediaFormat format) {
+        return format.getString(MediaFormat.KEY_MIME);
+    }
+
+    /**
+     * Returns the first codec capable of encoding the specified MIME type, or null if no match was
+     * found.
+     */
+    private static MediaCodecInfo selectCodec(String mimeType) {
+        int numCodecs = MediaCodecList.getCodecCount();
+        for (int i = 0; i < numCodecs; i++) {
+            MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i);
+
+            if (!codecInfo.isEncoder()) {
+                continue;
+            }
+
+            String[] types = codecInfo.getSupportedTypes();
+            for (int j = 0; j < types.length; j++) {
+                if (types[j].equalsIgnoreCase(mimeType)) {
+                    return codecInfo;
+                }
+            }
+        }
+        return null;
+    }
+
+}
diff --git a/tests/tests/media/src/android/media/cts/InputSurface.java b/tests/tests/media/src/android/media/cts/InputSurface.java
new file mode 100644
index 0000000..8d5c133
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/InputSurface.java
@@ -0,0 +1,184 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.media.cts;
+
+import android.opengl.EGL14;
+import android.opengl.EGLExt;
+import android.opengl.EGLConfig;
+import android.opengl.EGLContext;
+import android.opengl.EGLDisplay;
+import android.opengl.EGLSurface;
+import android.util.Log;
+import android.view.Surface;
+
+
+/**
+ * Holds state associated with a Surface used for MediaCodec encoder input.
+ * <p>
+ * The constructor takes a Surface obtained from MediaCodec.createInputSurface(), and uses that
+ * to create an EGL window surface.  Calls to eglSwapBuffers() cause a frame of data to be sent
+ * to the video encoder.
+ */
+class InputSurface {
+    private static final String TAG = "InputSurface";
+    private static final boolean VERBOSE = false;
+
+    private static final int EGL_RECORDABLE_ANDROID = 0x3142;
+    private static final int EGL_OPENGL_ES2_BIT = 4;
+
+    private EGLDisplay mEGLDisplay;
+    private EGLContext mEGLContext;
+    private EGLSurface mEGLSurface;
+
+    private Surface mSurface;
+
+    /**
+     * Creates an InputSurface from a Surface.
+     */
+    public InputSurface(Surface surface) {
+        if (surface == null) {
+            throw new NullPointerException();
+        }
+        mSurface = surface;
+
+        eglSetup();
+    }
+
+    /**
+     * Prepares EGL.  We want a GLES 2.0 context and a surface that supports recording.
+     */
+    private void eglSetup() {
+        mEGLDisplay = EGL14.eglGetDisplay(EGL14.EGL_DEFAULT_DISPLAY);
+        if (mEGLDisplay == EGL14.EGL_NO_DISPLAY) {
+            throw new RuntimeException("unable to get EGL14 display");
+        }
+        int[] version = new int[2];
+        if (!EGL14.eglInitialize(mEGLDisplay, version, 0, version, 1)) {
+            mEGLDisplay = null;
+            throw new RuntimeException("unable to initialize EGL14");
+        }
+
+        // Configure EGL for pbuffer and OpenGL ES 2.0.  We want enough RGB bits
+        // to be able to tell if the frame is reasonable.
+        int[] attribList = {
+                EGL14.EGL_RED_SIZE, 8,
+                EGL14.EGL_GREEN_SIZE, 8,
+                EGL14.EGL_BLUE_SIZE, 8,
+                EGL14.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+                EGL_RECORDABLE_ANDROID, 1,
+                EGL14.EGL_NONE
+        };
+        EGLConfig[] configs = new EGLConfig[1];
+        int[] numConfigs = new int[1];
+        if (!EGL14.eglChooseConfig(mEGLDisplay, attribList, 0, configs, 0, configs.length,
+                numConfigs, 0)) {
+            throw new RuntimeException("unable to find RGB888+recordable ES2 EGL config");
+        }
+
+        // Configure context for OpenGL ES 2.0.
+        int[] attrib_list = {
+                EGL14.EGL_CONTEXT_CLIENT_VERSION, 2,
+                EGL14.EGL_NONE
+        };
+        mEGLContext = EGL14.eglCreateContext(mEGLDisplay, configs[0], EGL14.EGL_NO_CONTEXT,
+                attrib_list, 0);
+        checkEglError("eglCreateContext");
+        if (mEGLContext == null) {
+            throw new RuntimeException("null context");
+        }
+
+        // Create a window surface, and attach it to the Surface we received.
+        int[] surfaceAttribs = {
+                EGL14.EGL_NONE
+        };
+        mEGLSurface = EGL14.eglCreateWindowSurface(mEGLDisplay, configs[0], mSurface,
+                surfaceAttribs, 0);
+        checkEglError("eglCreateWindowSurface");
+        if (mEGLSurface == null) {
+            throw new RuntimeException("surface was null");
+        }
+    }
+
+    /**
+     * Discard all resources held by this class, notably the EGL context.  Also releases the
+     * Surface that was passed to our constructor.
+     */
+    public void release() {
+        if (EGL14.eglGetCurrentContext().equals(mEGLContext)) {
+            // Clear the current context and surface to ensure they are discarded immediately.
+            EGL14.eglMakeCurrent(mEGLDisplay, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_SURFACE,
+                    EGL14.EGL_NO_CONTEXT);
+        }
+        EGL14.eglDestroySurface(mEGLDisplay, mEGLSurface);
+        EGL14.eglDestroyContext(mEGLDisplay, mEGLContext);
+        //EGL14.eglTerminate(mEGLDisplay);
+
+        mSurface.release();
+
+        // null everything out so future attempts to use this object will cause an NPE
+        mEGLDisplay = null;
+        mEGLContext = null;
+        mEGLSurface = null;
+
+        mSurface = null;
+    }
+
+    /**
+     * Makes our EGL context and surface current.
+     */
+    public void makeCurrent() {
+        if (!EGL14.eglMakeCurrent(mEGLDisplay, mEGLSurface, mEGLSurface, mEGLContext)) {
+            throw new RuntimeException("eglMakeCurrent failed");
+        }
+    }
+
+    /**
+     * Calls eglSwapBuffers.  Use this to "publish" the current frame.
+     */
+    public boolean swapBuffers() {
+        return EGL14.eglSwapBuffers(mEGLDisplay, mEGLSurface);
+    }
+
+    /**
+     * Returns the Surface that the MediaCodec receives buffers from.
+     */
+    public Surface getSurface() {
+        return mSurface;
+    }
+
+    /**
+     * Sends the presentation time stamp to EGL.  Time is expressed in nanoseconds.
+     */
+    public void setPresentationTime(long nsecs) {
+        EGLExt.eglPresentationTimeANDROID(mEGLDisplay, mEGLSurface, nsecs);
+    }
+
+    /**
+     * Checks for EGL errors.
+     */
+    private void checkEglError(String msg) {
+        boolean failed = false;
+        int error;
+        while ((error = EGL14.eglGetError()) != EGL14.EGL_SUCCESS) {
+            Log.e(TAG, msg + ": EGL error: 0x" + Integer.toHexString(error));
+            failed = true;
+        }
+        if (failed) {
+            throw new RuntimeException("EGL error encountered (see log)");
+        }
+    }
+}
diff --git a/tests/tests/media/src/android/media/cts/IvfReader.java b/tests/tests/media/src/android/media/cts/IvfReader.java
new file mode 100644
index 0000000..508ae25
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/IvfReader.java
@@ -0,0 +1,193 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.media.cts;
+
+import java.io.IOException;
+import java.io.RandomAccessFile;
+
+/**
+ * A simple reader for an IVF file.
+ *
+ * IVF format is a simple container format for VP8 encoded frames.
+ * This reader is capable of getting frame count, width and height
+ * from the header, and access individual frames randomly by
+ * frame number.
+ */
+
+public class IvfReader {
+    private static final byte HEADER_END = 32;
+    private static final byte FOURCC_HEAD = 8;
+    private static final byte WIDTH_HEAD = 12;
+    private static final byte HEIGHT_HEAD = 14;
+    private static final byte FRAMECOUNT_HEAD = 24;
+    private static final byte FRAME_HEADER_SIZE = 12;
+
+    private RandomAccessFile mIvfFile;
+    private boolean mHeaderValid;
+    private int mWidth;
+    private int mHeight;
+    private int mFrameCount;
+    private int[] mFrameHeads;  // Head of frame header
+    private int[] mFrameSizes;  // Frame size excluding header
+
+
+    /**
+     * Initializes the IVF file reader.
+     *
+     * Only minimal verification is done to check if this
+     * is indeed a valid IVF file. (fourcc, signature)
+     *
+     * All frame headers are read in advance.
+     *
+     * @param filename   name of the IVF file
+     */
+    public IvfReader(String filename) throws IOException{
+        mIvfFile = new RandomAccessFile(filename, "r");
+
+        mHeaderValid = verifyHeader();
+        readHeaderData();
+        readFrameMetadata();
+    }
+
+    /**
+     * Tells if file header seems to be valid.
+     *
+     * Only minimal verification is done to check if this
+     * is indeed a valid IVF file. (fourcc, signature)
+     */
+    public boolean isHeaderValid(){
+        return mHeaderValid;
+    }
+
+    /**
+     * Returns frame width according to header information.
+     */
+    public int getWidth(){
+        return mWidth;
+    }
+
+    /**
+     * Returns frame height according to header information.
+     */
+    public int getHeight(){
+        return mHeight;
+    }
+
+    /**
+     * Returns frame count according to header information.
+     */
+    public int getFrameCount(){
+        return mFrameCount;
+    }
+
+    /**
+     * Returns frame data by index.
+     *
+     * @param frameIndex index of the frame to read, greater-equal
+     * than 0 and less than frameCount.
+     */
+    public byte[] readFrame(int frameIndex) throws IOException {
+        if (frameIndex > mFrameCount | frameIndex < 0){
+            return null;
+        }
+        int frameSize = mFrameSizes[frameIndex];
+        int frameHead = mFrameHeads[frameIndex];
+
+        byte[] frame = new byte[frameSize];
+        mIvfFile.seek(frameHead + FRAME_HEADER_SIZE);
+        mIvfFile.read(frame);
+
+        return frame;
+    }
+
+    /**
+     * Closes IVF file.
+     */
+    public void close() throws IOException{
+        mIvfFile.close();
+    }
+
+    private boolean verifyHeader() throws IOException{
+        mIvfFile.seek(0);
+
+        if (mIvfFile.length() < HEADER_END){
+            return false;
+        }
+
+        // DKIF signature
+        boolean signatureMatch = ((mIvfFile.readByte() == (byte)'D') &&
+                (mIvfFile.readByte() == (byte)'K') &&
+                (mIvfFile.readByte() == (byte)'I') &&
+                (mIvfFile.readByte() == (byte)'F'));
+
+        // Fourcc
+        mIvfFile.seek(FOURCC_HEAD);
+        boolean fourccMatch = ((mIvfFile.readByte() == (byte)'V') &&
+                (mIvfFile.readByte() == (byte)'P') &&
+                (mIvfFile.readByte() == (byte)'8') &&
+                (mIvfFile.readByte() == (byte)'0'));
+
+        return signatureMatch && fourccMatch;
+    }
+
+    private void readHeaderData() throws IOException{
+        // width
+        mIvfFile.seek(WIDTH_HEAD);
+        mWidth = (int) changeEndianness(mIvfFile.readShort());
+
+        // height
+        mIvfFile.seek(HEIGHT_HEAD);
+        mHeight = (int) changeEndianness(mIvfFile.readShort());
+
+        // frame count
+        mIvfFile.seek(FRAMECOUNT_HEAD);
+        mFrameCount = changeEndianness(mIvfFile.readInt());
+
+        // allocate frame metadata
+        mFrameHeads = new int[mFrameCount];
+        mFrameSizes = new int[mFrameCount];
+    }
+
+    private void readFrameMetadata() throws IOException{
+        int frameHead = HEADER_END;
+        for(int i = 0; i < mFrameCount; i++){
+            mIvfFile.seek(frameHead);
+            int frameSize = changeEndianness(mIvfFile.readInt());
+            mFrameHeads[i] = frameHead;
+            mFrameSizes[i] = frameSize;
+            // next frame
+            frameHead += FRAME_HEADER_SIZE + frameSize;
+        }
+    }
+
+    private static short changeEndianness(short value){
+        // Rationale for down-cast;
+        // Java Language specification 15.19:
+        //  "The type of the shift expression is the promoted type of the left-hand operand."
+        // Java Language specification 5.6:
+        //  "...if the operand is of compile-time type byte, short, or char,
+        //  unary numeric promotion promotes it to a value of type int by a widening conversion."
+        return (short) (((value << 8) & 0XFF00) | ((value >> 8) & 0X00FF));
+    }
+
+    private static int changeEndianness(int value){
+        return (((value << 24) & 0XFF000000) |
+                ((value << 8)  & 0X00FF0000) |
+                ((value >> 8)  & 0X0000FF00) |
+                ((value >> 24) & 0X000000FF));
+    }
+}
diff --git a/tests/tests/media/src/android/media/cts/IvfWriter.java b/tests/tests/media/src/android/media/cts/IvfWriter.java
new file mode 100644
index 0000000..ccc0ac5
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/IvfWriter.java
@@ -0,0 +1,187 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.media.cts;
+
+import java.io.IOException;
+import java.io.RandomAccessFile;
+
+/**
+ * Writes an IVF file.
+ *
+ * IVF format is a simple container format for VP8 encoded frames.
+ */
+
+public class IvfWriter {
+    private static final byte HEADER_END = 32;
+    private RandomAccessFile mOutputFile;
+    private int mWidth;
+    private int mHeight;
+    private int mScale;
+    private int mRate;
+    private int mFrameCount;
+
+    /**
+     * Initializes the IVF file writer.
+     *
+     * Timebase fraction is in format scale/rate, e.g. 1/1000
+     * Timestamp values supplied while writing frames should be in accordance
+     * with this timebase value.
+     *
+     * @param filename   name of the IVF file
+     * @param width      frame width
+     * @param height     frame height
+     * @param scale      timebase scale (or numerator of the timebase fraction)
+     * @param rate       timebase rate (or denominator of the timebase fraction)
+     */
+    public IvfWriter(String filename,
+                     int width, int height,
+                     int scale, int rate) throws IOException {
+        mOutputFile = new RandomAccessFile(filename, "rw");
+        mWidth = width;
+        mHeight = height;
+        mScale = scale;
+        mRate = rate;
+        mFrameCount = 0;
+        mOutputFile.seek(HEADER_END);  // Skip the header for now, as framecount is unknown
+    }
+
+    /**
+     * Initializes the IVF file writer with a microsecond timebase.
+     *
+     *
+     * Microsecond timebase is default for OMX thus stagefright.
+     *
+     * @param filename   name of the IVF file
+     * @param width      frame width
+     * @param height     frame height
+     */
+    public IvfWriter(String filename, int width, int height) throws IOException {
+        this(filename, width, height, 1, 1000000);
+    }
+
+    /**
+     * Finalizes the IVF header and closes the file.
+     */
+    public void close() throws IOException{
+        // Write header now
+        mOutputFile.seek(0);
+        mOutputFile.write(makeIvfHeader(mFrameCount, mWidth, mHeight, mScale, mRate));
+        mOutputFile.close();
+    }
+
+    /**
+     * Writes a single encoded VP8 frame with its frame header.
+     *
+     * @param frame     actual contents of the encoded frame data
+     * @param width     timestamp of the frame (in accordance to specified timebase)
+     */
+    public void writeFrame(byte[] frame, long timeStamp) throws IOException {
+        mOutputFile.write(makeIvfFrameHeader(frame.length, timeStamp));
+        mOutputFile.write(frame);
+        mFrameCount++;
+    }
+
+    /**
+     * Makes a 32 byte file header for IVF format.
+     *
+     * Timebase fraction is in format scale/rate, e.g. 1/1000
+     *
+     * @param frameCount total number of frames file contains
+     * @param width      frame width
+     * @param height     frame height
+     * @param scale      timebase scale (or numerator of the timebase fraction)
+     * @param rate       timebase rate (or denominator of the timebase fraction)
+     */
+    private static byte[] makeIvfHeader(int frameCount, int width, int height, int scale, int rate){
+        byte[] ivfHeader = new byte[32];
+        ivfHeader[0] = 'D';
+        ivfHeader[1] = 'K';
+        ivfHeader[2] = 'I';
+        ivfHeader[3] = 'F';
+        lay16Bits(ivfHeader, 4, 0);  // version
+        lay16Bits(ivfHeader, 6, 32);  // header size
+        ivfHeader[8] = 'V';  // fourcc
+        ivfHeader[9] = 'P';
+        ivfHeader[10] = '8';
+        ivfHeader[11] = '0';
+        lay16Bits(ivfHeader, 12, width);
+        lay16Bits(ivfHeader, 14, height);
+        lay32Bits(ivfHeader, 16, rate);  // scale/rate
+        lay32Bits(ivfHeader, 20, scale);
+        lay32Bits(ivfHeader, 24, frameCount);
+        lay32Bits(ivfHeader, 28, 0);  // unused
+        return ivfHeader;
+    }
+
+    /**
+     * Makes a 12 byte header for an encoded frame.
+     *
+     * @param size      frame size
+     * @param timestamp presentation timestamp of the frame
+     */
+    private static byte[] makeIvfFrameHeader(int size, long timestamp){
+        byte[] frameHeader = new byte[12];
+        lay32Bits(frameHeader, 0, size);
+        lay64bits(frameHeader, 4, timestamp);
+        return frameHeader;
+    }
+
+
+    /**
+     * Lays least significant 16 bits of an int into 2 items of a byte array.
+     *
+     * Note that ordering is little-endian.
+     *
+     * @param array     the array to be modified
+     * @param index     index of the array to start laying down
+     * @param value     the integer to use least significant 16 bits
+     */
+    private static void lay16Bits(byte[] array, int index, int value){
+        array[index] = (byte) (value);
+        array[index + 1] = (byte) (value >> 8);
+    }
+
+    /**
+     * Lays an int into 4 items of a byte array.
+     *
+     * Note that ordering is little-endian.
+     *
+     * @param array     the array to be modified
+     * @param index     index of the array to start laying down
+     * @param value     the integer to use
+     */
+    private static void lay32Bits(byte[] array, int index, int value){
+        for (int i = 0; i < 4; i++){
+            array[index + i] = (byte) (value >> (i * 8));
+        }
+    }
+
+    /**
+     * Lays a long int into 8 items of a byte array.
+     *
+     * Note that ordering is little-endian.
+     *
+     * @param array     the array to be modified
+     * @param index     index of the array to start laying down
+     * @param value     the integer to use
+     */
+    private static void lay64bits(byte[] array, int index, long value){
+        for (int i = 0; i < 8; i++){
+            array[index + i] = (byte) (value >> (i * 8));
+        }
+    }
+}
diff --git a/tests/tests/media/src/android/media/cts/MediaCodecListTest.java b/tests/tests/media/src/android/media/cts/MediaCodecListTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/media/src/android/media/cts/MediaCodecTest.java b/tests/tests/media/src/android/media/cts/MediaCodecTest.java
new file mode 100644
index 0000000..afa34e8
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/MediaCodecTest.java
@@ -0,0 +1,276 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.media.cts;
+
+import android.media.MediaCodec;
+import android.media.MediaCodecInfo;
+import android.media.MediaCodecList;
+import android.media.MediaFormat;
+import android.opengl.GLES20;
+import android.test.AndroidTestCase;
+import android.util.Log;
+import android.view.Surface;
+
+
+/**
+ * General MediaCodec tests.
+ *
+ * In particular, check various API edge cases.
+ */
+public class MediaCodecTest extends AndroidTestCase {
+    private static final String TAG = "MediaCodecTest";
+    private static final boolean VERBOSE = false;           // lots of logging
+
+    // parameters for the encoder
+    private static final String MIME_TYPE = "video/avc";    // H.264 Advanced Video Coding
+    private static final int BIT_RATE = 2000000;            // 2Mbps
+    private static final int FRAME_RATE = 15;               // 15fps
+    private static final int IFRAME_INTERVAL = 10;          // 10 seconds between I-frames
+    private static final int WIDTH = 1280;
+    private static final int HEIGHT = 720;
+
+    /**
+     * Tests:
+     * <br> calling createInputSurface() before configure() throws exception
+     * <br> calling createInputSurface() after start() throws exception
+     * <br> calling createInputSurface() with a non-Surface color format throws exception
+     */
+    public void testCreateInputSurfaceErrors() {
+        MediaFormat format = createMediaFormat();
+        MediaCodec encoder = null;
+        Surface surface = null;
+
+        // Replace color format with something that isn't COLOR_FormatSurface.
+        MediaCodecInfo codecInfo = selectCodec(MIME_TYPE);
+        int colorFormat = findNonSurfaceColorFormat(codecInfo, MIME_TYPE);
+        format.setInteger(MediaFormat.KEY_COLOR_FORMAT, colorFormat);
+
+        try {
+            encoder = MediaCodec.createByCodecName(codecInfo.getName());;
+            try {
+                surface = encoder.createInputSurface();
+                fail("createInputSurface should not work pre-configure");
+            } catch (IllegalStateException ise) {
+                // good
+            }
+            encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
+
+            try {
+                surface = encoder.createInputSurface();
+                fail("createInputSurface should require COLOR_FormatSurface");
+            } catch (IllegalStateException ise) {
+                // good
+            }
+
+            encoder.start();
+
+            try {
+                surface = encoder.createInputSurface();
+                fail("createInputSurface should not work post-start");
+            } catch (IllegalStateException ise) {
+                // good
+            }
+        } finally {
+            if (encoder != null) {
+                encoder.stop();
+                encoder.release();
+            }
+        }
+        assertNull(surface);
+    }
+
+
+    /**
+     * Tests:
+     * <br> signaling end-of-stream before any data is sent works
+     * <br> signaling EOS twice throws exception
+     * <br> submitting a frame after EOS throws exception [TODO]
+     */
+    public void testSignalSurfaceEOS() {
+        MediaFormat format = createMediaFormat();
+        MediaCodec encoder = null;
+        InputSurface inputSurface = null;
+
+        try {
+            encoder = MediaCodec.createEncoderByType(MIME_TYPE);
+            encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
+            inputSurface = new InputSurface(encoder.createInputSurface());
+            inputSurface.makeCurrent();
+            encoder.start();
+
+            // send an immediate EOS
+            encoder.signalEndOfInputStream();
+
+            try {
+                encoder.signalEndOfInputStream();
+                fail("should not be able to signal EOS twice");
+            } catch (IllegalStateException ise) {
+                // good
+            }
+
+            // submit a frame post-EOS
+            GLES20.glClearColor(0.0f, 0.5f, 0.0f, 1.0f);
+            GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
+            try {
+                inputSurface.swapBuffers();
+                if (false) {    // TODO
+                    fail("should not be able to submit frame after EOS");
+                }
+            } catch (Exception ex) {
+                // good
+            }
+        } finally {
+            if (encoder != null) {
+                encoder.stop();
+                encoder.release();
+            }
+            if (inputSurface != null) {
+                inputSurface.release();
+            }
+        }
+    }
+
+    /**
+     * Tests:
+     * <br> dequeueInputBuffer() fails when encoder configured with an input Surface
+     */
+    public void testDequeueSurface() {
+        MediaFormat format = createMediaFormat();
+        MediaCodec encoder = null;
+        Surface surface = null;
+
+        try {
+            encoder = MediaCodec.createEncoderByType(MIME_TYPE);
+            encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
+            surface = encoder.createInputSurface();
+            encoder.start();
+
+            try {
+                encoder.dequeueInputBuffer(-1);
+                fail("dequeueInputBuffer should fail on encoder with input surface");
+            } catch (IllegalStateException ise) {
+                // good
+            }
+
+        } finally {
+            if (encoder != null) {
+                encoder.stop();
+                encoder.release();
+            }
+            if (surface != null) {
+                surface.release();
+            }
+        }
+    }
+
+    /**
+     * Tests:
+     * <br> configure() encoder with Surface, re-configure() without Surface works
+     * <br> sending EOS with signalEndOfInputStream on non-Surface encoder fails
+     */
+    public void testReconfigureWithoutSurface() {
+        MediaFormat format = createMediaFormat();
+        MediaCodec encoder = null;
+        Surface surface = null;
+
+        try {
+            encoder = MediaCodec.createEncoderByType(MIME_TYPE);
+            encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
+            surface = encoder.createInputSurface();
+            encoder.start();
+
+            encoder.getOutputBuffers();
+
+            // re-configure, this time without an input surface
+            if (VERBOSE) Log.d(TAG, "reconfiguring");
+            encoder.stop();
+            encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
+            encoder.start();
+            if (VERBOSE) Log.d(TAG, "reconfigured");
+
+            encoder.getOutputBuffers();
+            encoder.dequeueInputBuffer(-1);
+
+            try {
+                encoder.signalEndOfInputStream();
+                fail("signalEndOfInputStream only works on surface input");
+            } catch (IllegalStateException ise) {
+                // good
+            }
+        } finally {
+            if (encoder != null) {
+                encoder.stop();
+                encoder.release();
+            }
+            if (surface != null) {
+                surface.release();
+            }
+        }
+    }
+
+    /**
+     * Creates a MediaFormat with the basic set of values.
+     */
+    private static MediaFormat createMediaFormat() {
+        MediaFormat format = MediaFormat.createVideoFormat(MIME_TYPE, WIDTH, HEIGHT);
+        format.setInteger(MediaFormat.KEY_COLOR_FORMAT,
+                MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface);
+        format.setInteger(MediaFormat.KEY_BIT_RATE, BIT_RATE);
+        format.setInteger(MediaFormat.KEY_FRAME_RATE, FRAME_RATE);
+        format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, IFRAME_INTERVAL);
+        return format;
+    }
+
+    /**
+     * Returns the first codec capable of encoding the specified MIME type, or null if no
+     * match was found.
+     */
+    private static MediaCodecInfo selectCodec(String mimeType) {
+        int numCodecs = MediaCodecList.getCodecCount();
+        for (int i = 0; i < numCodecs; i++) {
+            MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i);
+
+            if (!codecInfo.isEncoder()) {
+                continue;
+            }
+
+            String[] types = codecInfo.getSupportedTypes();
+            for (int j = 0; j < types.length; j++) {
+                if (types[j].equalsIgnoreCase(mimeType)) {
+                    return codecInfo;
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Returns a color format that is supported by the codec and isn't COLOR_FormatSurface.  Throws
+     * an exception if none found.
+     */
+    private static int findNonSurfaceColorFormat(MediaCodecInfo codecInfo, String mimeType) {
+        MediaCodecInfo.CodecCapabilities capabilities = codecInfo.getCapabilitiesForType(mimeType);
+        for (int i = 0; i < capabilities.colorFormats.length; i++) {
+            int colorFormat = capabilities.colorFormats[i];
+            if (colorFormat != MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface) {
+                return colorFormat;
+            }
+        }
+        fail("couldn't find a good color format for " + codecInfo.getName() + " / " + MIME_TYPE);
+        return 0;   // not reached
+    }
+}
diff --git a/tests/tests/media/src/android/media/cts/MediaDrmMockTest.java b/tests/tests/media/src/android/media/cts/MediaDrmMockTest.java
new file mode 100644
index 0000000..a8131bf
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/MediaDrmMockTest.java
@@ -0,0 +1,775 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.media.cts;
+
+import android.media.MediaDrm;
+import android.media.MediaDrm.ProvisionRequest;
+import android.media.MediaDrm.KeyRequest;
+import android.media.MediaDrm.CryptoSession;
+import android.media.MediaDrmException;
+import android.media.NotProvisionedException;
+import android.test.AndroidTestCase;
+import android.util.Log;
+import java.util.HashMap;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Iterator;
+import java.util.UUID;
+import java.lang.Thread;
+import java.lang.Object;
+import android.os.Looper;
+
+// This test works with the MediaDrm mock plugin
+public class MediaDrmMockTest extends AndroidTestCase {
+    private static final String TAG = "MediaDrmMockTest";
+
+    // The scheme supported by the mock drm plugin
+    static final UUID mockScheme = new UUID(0x0102030405060708L, 0x090a0b0c0d0e0f10L);
+    static final UUID badScheme = new UUID(0xffffffffffffffffL, 0xffffffffffffffffL);
+
+    private boolean isMockPluginInstalled() {
+        return MediaDrm.isCryptoSchemeSupported(mockScheme);
+    }
+
+    public void testIsCryptoSchemeNotSupported() throws Exception {
+        assertFalse(MediaDrm.isCryptoSchemeSupported(badScheme));
+    }
+
+    public void testMediaDrmConstructor() throws Exception {
+        if (isMockPluginInstalled()) {
+            MediaDrm md = new MediaDrm(mockScheme);
+        } else {
+            Log.w(TAG, "optional plugin libmockdrmcryptoplugin.so is not installed");
+            Log.w(TAG, "To verify the MediaDrm APIs, you should install this plugin");
+        }
+    }
+
+    public void testMediaDrmConstructorFails() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        boolean gotException = false;
+        try {
+            MediaDrm md = new MediaDrm(badScheme);
+        } catch (MediaDrmException e) {
+            gotException = true;
+        }
+        assertTrue(gotException);
+    }
+
+    public void testStringProperties() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        md.setPropertyString("test-string", "test-value");
+        assertTrue(md.getPropertyString("test-string").equals("test-value"));
+    }
+
+    public void testByteArrayProperties() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        byte testArray[] = {0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x10, 0x11, 0x12};
+        md.setPropertyByteArray("test-array", testArray);
+        assertTrue(Arrays.equals(md.getPropertyByteArray("test-array"), testArray));
+    }
+
+    public void testMissingPropertyString() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        boolean gotException = false;
+        try {
+            md.getPropertyString("missing-property");
+        } catch (IllegalArgumentException e) {
+            gotException = true;
+        }
+        assertTrue(gotException);
+    }
+
+    public void testNullPropertyString() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        boolean gotException = false;
+        try {
+            md.getPropertyString(null);
+        } catch (IllegalArgumentException e) {
+            gotException = true;
+        }
+        assertTrue(gotException);
+    }
+
+    public void testMissingPropertyByteArray() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        boolean gotException = false;
+        try {
+            md.getPropertyByteArray("missing-property");
+        } catch (IllegalArgumentException e) {
+            gotException = true;
+        }
+        assertTrue(gotException);
+    }
+
+    public void testNullPropertyByteArray() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        boolean gotException = false;
+        try {
+            md.getPropertyByteArray(null);
+        } catch (IllegalArgumentException e) {
+            gotException = true;
+        }
+        assertTrue(gotException);
+    }
+
+    public void testOpenCloseSession() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+        byte[] sessionId = openSession(md);
+        md.closeSession(sessionId);
+    }
+
+    public void testBadSession() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+        byte[] sessionId = {0x05, 0x6, 0x7, 0x8};
+        boolean gotException = false;
+        try {
+            md.closeSession(sessionId);
+        } catch (IllegalArgumentException e) {
+            gotException = true;
+        }
+        assertTrue(gotException);
+    }
+
+    public void testNullSession() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+        byte[] sessionId = null;
+        boolean gotException = false;
+        try {
+            md.closeSession(sessionId);
+        } catch (IllegalArgumentException e) {
+            gotException = true;
+        }
+        assertTrue(gotException);
+    }
+
+    public void testGetKeyRequest() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+        byte[] sessionId = openSession(md);
+
+        // Set up mock expected responses using properties
+        byte testRequest[] = {0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x10, 0x11, 0x12};
+        md.setPropertyByteArray("mock-request", testRequest);
+        String testDefaultUrl = "http://1.2.3.4:8080/blah";
+        md.setPropertyString("mock-defaultUrl", testDefaultUrl);
+
+        byte[] initData = {0x0a, 0x0b, 0x0c, 0x0d};
+        HashMap<String, String> optionalParameters = new HashMap<String, String>();
+        optionalParameters.put("param1", "value1");
+        optionalParameters.put("param2", "value2");
+
+        String mimeType = "video/iso.segment";
+        KeyRequest request = md.getKeyRequest(sessionId, initData, mimeType,
+                                                      MediaDrm.KEY_TYPE_STREAMING,
+                                                      optionalParameters);
+        assertTrue(Arrays.equals(request.getData(), testRequest));
+        assertTrue(request.getDefaultUrl().equals(testDefaultUrl));
+
+        assertTrue(Arrays.equals(initData, md.getPropertyByteArray("mock-initdata")));
+        assertTrue(mimeType.equals(md.getPropertyString("mock-mimetype")));
+        assertTrue(md.getPropertyString("mock-keytype").equals("1"));
+        assertTrue(md.getPropertyString("mock-optparams").equals("{param1,value1},{param2,value2}"));
+
+        md.closeSession(sessionId);
+    }
+
+    public void testGetKeyRequestNoOptionalParameters() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+        byte[] sessionId = openSession(md);
+
+        // Set up mock expected responses using properties
+        byte testRequest[] = {0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x10, 0x11, 0x12};
+        md.setPropertyByteArray("mock-request", testRequest);
+        String testDefaultUrl = "http://1.2.3.4:8080/blah";
+        md.setPropertyString("mock-defaultUrl", testDefaultUrl);
+
+        byte[] initData = {0x0a, 0x0b, 0x0c, 0x0d};
+
+        String mimeType = "video/iso.segment";
+        KeyRequest request = md.getKeyRequest(sessionId, initData, mimeType,
+                                                      MediaDrm.KEY_TYPE_STREAMING,
+                                                      null);
+        assertTrue(Arrays.equals(request.getData(), testRequest));
+        assertTrue(request.getDefaultUrl().equals(testDefaultUrl));
+
+        assertTrue(Arrays.equals(initData, md.getPropertyByteArray("mock-initdata")));
+        assertTrue(mimeType.equals(md.getPropertyString("mock-mimetype")));
+        assertTrue(md.getPropertyString("mock-keytype").equals("1"));
+
+        md.closeSession(sessionId);
+    }
+
+    public void testGetKeyRequestOffline() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+        byte[] sessionId = openSession(md);
+
+        // Set up mock expected responses using properties
+        byte testRequest[] = {0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x10, 0x11, 0x12};
+        md.setPropertyByteArray("mock-request", testRequest);
+        String testDefaultUrl = "http://1.2.3.4:8080/blah";
+        md.setPropertyString("mock-defaultUrl", testDefaultUrl);
+
+        byte[] initData = {0x0a, 0x0b, 0x0c, 0x0d};
+
+        String mimeType = "video/iso.segment";
+        KeyRequest request = md.getKeyRequest(sessionId, initData, mimeType,
+                                              MediaDrm.KEY_TYPE_OFFLINE,
+                                              null);
+        assertTrue(Arrays.equals(request.getData(), testRequest));
+        assertTrue(request.getDefaultUrl().equals(testDefaultUrl));
+
+        assertTrue(Arrays.equals(initData, md.getPropertyByteArray("mock-initdata")));
+        assertTrue(mimeType.equals(md.getPropertyString("mock-mimetype")));
+        assertTrue(md.getPropertyString("mock-keytype").equals("2"));
+
+        md.closeSession(sessionId);
+    }
+
+    public void testGetKeyRequestRelease() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+        byte[] sessionId = openSession(md);
+
+        // Set up mock expected responses using properties
+        byte testRequest[] = {0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x10, 0x11, 0x12};
+        md.setPropertyByteArray("mock-request", testRequest);
+        String testDefaultUrl = "http://1.2.3.4:8080/blah";
+        md.setPropertyString("mock-defaultUrl", testDefaultUrl);
+
+        String mimeType = "video/iso.segment";
+        KeyRequest request = md.getKeyRequest(sessionId, null, mimeType,
+                                              MediaDrm.KEY_TYPE_RELEASE,
+                                              null);
+        assertTrue(Arrays.equals(request.getData(), testRequest));
+        assertTrue(request.getDefaultUrl().equals(testDefaultUrl));
+
+        assertTrue(mimeType.equals(md.getPropertyString("mock-mimetype")));
+        assertTrue(md.getPropertyString("mock-keytype").equals("3"));
+
+        md.closeSession(sessionId);
+    }
+
+    public void testProvideKeyResponse() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+        byte[] sessionId = openSession(md);
+
+        // Set up mock expected responses using properties
+        byte testResponse[] = {0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20};
+
+        md.provideKeyResponse(sessionId, testResponse);
+
+        assertTrue(Arrays.equals(testResponse, md.getPropertyByteArray("mock-response")));
+        md.closeSession(sessionId);
+    }
+
+    public void testRemoveKeys() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+        byte[] sessionId = openSession(md);
+
+        byte testResponse[] = {0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20};
+        byte[] keySetId = md.provideKeyResponse(sessionId, testResponse);
+        md.closeSession(sessionId);
+
+        md.removeKeys(keySetId);
+    }
+
+    public void testRestoreKeys() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+        byte[] sessionId = openSession(md);
+
+        byte testResponse[] = {0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20};
+        byte[] keySetId = md.provideKeyResponse(sessionId, testResponse);
+        md.closeSession(sessionId);
+
+        sessionId = openSession(md);
+        md.restoreKeys(sessionId, keySetId);
+        md.closeSession(sessionId);
+    }
+
+    public void testQueryKeyStatus() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+        byte[] sessionId = openSession(md);
+        HashMap<String, String> infoMap = md.queryKeyStatus(sessionId);
+
+        // these are canned strings returned by the mock
+        assertTrue(infoMap.containsKey("purchaseDuration"));
+        assertTrue(infoMap.get("purchaseDuration").equals(("1000")));
+        assertTrue(infoMap.containsKey("licenseDuration"));
+        assertTrue(infoMap.get("licenseDuration").equals(("100")));
+
+        md.closeSession(sessionId);
+    }
+
+    public void testGetProvisionRequest() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        // Set up mock expected responses using properties
+        byte testRequest[] = {0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x60, 0x61, 0x62};
+        md.setPropertyByteArray("mock-request", testRequest);
+        String testDefaultUrl = "http://1.2.3.4:8080/bar";
+        md.setPropertyString("mock-defaultUrl", testDefaultUrl);
+
+        ProvisionRequest request = md.getProvisionRequest();
+        assertTrue(Arrays.equals(request.getData(), testRequest));
+        assertTrue(request.getDefaultUrl().equals(testDefaultUrl));
+    }
+
+    public void testProvideProvisionResponse() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        // Set up mock expected responses using properties
+        byte testResponse[] = {0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20};
+
+        md.provideProvisionResponse(testResponse);
+        assertTrue(Arrays.equals(testResponse, md.getPropertyByteArray("mock-response")));
+    }
+
+    public void testGetSecureStops() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        // Set up mock expected responses using properties
+        byte ss1[] = {0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20};
+        byte ss2[] = {0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30};
+
+        md.setPropertyByteArray("mock-secure-stop1", ss1);
+        md.setPropertyByteArray("mock-secure-stop2", ss2);
+
+        List<byte[]> secureStopList = md.getSecureStops();
+        assertTrue(secureStopList != null);
+
+        Iterator<byte[]> iter = secureStopList.iterator();
+        assertTrue(iter.hasNext());
+        assertTrue(Arrays.equals(iter.next(), ss1));
+        assertTrue(iter.hasNext());
+        assertTrue(Arrays.equals(iter.next(), ss2));
+        assertFalse(iter.hasNext());
+    }
+
+    public void testReleaseSecureStops() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        // Set up mock expected responses using properties
+        byte ssrelease[] = {0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40};
+
+        md.releaseSecureStops(ssrelease);
+        assertTrue(Arrays.equals(ssrelease, md.getPropertyByteArray("mock-ssrelease")));
+    }
+
+    public void testMultipleSessions() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        byte[] session1 = openSession(md);
+        byte[] session2 = openSession(md);
+        byte[] session3 = openSession(md);
+
+        assertFalse(Arrays.equals(session1, session2));
+        assertFalse(Arrays.equals(session2, session3));
+
+        md.closeSession(session1);
+        md.closeSession(session2);
+        md.closeSession(session3);
+    }
+
+    public void testCryptoSession() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        byte[] sessionId = openSession(md);
+        CryptoSession cs = md.getCryptoSession(sessionId, "AES/CBC/NoPadding", "HmacSHA256");
+        assertFalse(cs == null);
+    }
+
+    public void testBadCryptoSession() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        boolean gotException = false;
+        try {
+            byte[] sessionId = openSession(md);
+            CryptoSession cs = md.getCryptoSession(sessionId, "bad", "bad");
+        } catch (IllegalArgumentException e) {
+            gotException = true;
+        }
+        assertTrue(gotException);
+    }
+
+    public void testCryptoSessionEncrypt() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        byte[] sessionId = openSession(md);
+        CryptoSession cs = md.getCryptoSession(sessionId, "AES/CBC/NoPadding", "HmacSHA256");
+        assertFalse(cs == null);
+
+        byte[] keyId = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09};
+        byte[] input = {0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19};
+        byte[] iv = {0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29};
+        byte[] expected_output = {0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39};
+
+        md.setPropertyByteArray("mock-output", expected_output);
+
+        byte[] output = cs.encrypt(keyId, input, iv);
+
+        assertTrue(Arrays.equals(keyId, md.getPropertyByteArray("mock-keyid")));
+        assertTrue(Arrays.equals(input, md.getPropertyByteArray("mock-input")));
+        assertTrue(Arrays.equals(iv, md.getPropertyByteArray("mock-iv")));
+        assertTrue(Arrays.equals(output, expected_output));
+    }
+
+    public void testCryptoSessionDecrypt() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        byte[] sessionId = openSession(md);
+        CryptoSession cs = md.getCryptoSession(sessionId, "AES/CBC/NoPadding", "HmacSHA256");
+        assertFalse(cs == null);
+
+        byte[] keyId = {0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49};
+        byte[] input = {0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59};
+        byte[] iv = {0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69};
+        byte[] expected_output = {0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79};
+
+        md.setPropertyByteArray("mock-output", expected_output);
+
+        byte[] output = cs.decrypt(keyId, input, iv);
+
+        assertTrue(Arrays.equals(keyId, md.getPropertyByteArray("mock-keyid")));
+        assertTrue(Arrays.equals(input, md.getPropertyByteArray("mock-input")));
+        assertTrue(Arrays.equals(iv, md.getPropertyByteArray("mock-iv")));
+        assertTrue(Arrays.equals(output, expected_output));
+    }
+
+    public void testCryptoSessionSign() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        byte[] sessionId = openSession(md);
+        CryptoSession cs = md.getCryptoSession(sessionId, "AES/CBC/NoPadding", "HmacSHA256");
+        assertFalse(cs == null);
+
+        byte[] keyId = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09};
+        byte[] message = {0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29};
+        byte[] expected_signature = {0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39};
+
+        md.setPropertyByteArray("mock-signature", expected_signature);
+
+        byte[] signature = cs.sign(keyId, message);
+
+        assertTrue(Arrays.equals(keyId, md.getPropertyByteArray("mock-keyid")));
+        assertTrue(Arrays.equals(message, md.getPropertyByteArray("mock-message")));
+        assertTrue(Arrays.equals(signature, expected_signature));
+    }
+
+    public void testCryptoSessionVerify() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+        MediaDrm md = new MediaDrm(mockScheme);
+
+        byte[] sessionId = openSession(md);
+        CryptoSession cs = md.getCryptoSession(sessionId, "AES/CBC/NoPadding", "HmacSHA256");
+        assertFalse(cs == null);
+
+        byte[] keyId = {0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49};
+        byte[] message = {0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59};
+        byte[] signature = {0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69};
+
+        md.setPropertyString("mock-match", "1");
+        assertTrue(cs.verify(keyId, message, signature));
+
+        assertTrue(Arrays.equals(keyId, md.getPropertyByteArray("mock-keyid")));
+        assertTrue(Arrays.equals(message, md.getPropertyByteArray("mock-message")));
+        assertTrue(Arrays.equals(signature, md.getPropertyByteArray("mock-signature")));
+
+        md.setPropertyString("mock-match", "0");
+        assertFalse(cs.verify(keyId, message, signature));
+    }
+
+    private MediaDrm mMediaDrm = null;
+    private Looper mLooper = null;
+    private Object mLock = new Object();
+    private boolean mGotEvent = false;
+
+    public void testEventNoSessionNoData() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+
+        new Thread() {
+            @Override
+            public void run() {
+                // Set up a looper to be used by mMediaPlayer.
+                Looper.prepare();
+
+                // Save the looper so that we can terminate this thread
+                // after we are done with it.
+                mLooper = Looper.myLooper();
+
+                try {
+                    mMediaDrm = new MediaDrm(mockScheme);
+                } catch (MediaDrmException e) {
+                    e.printStackTrace();
+                    fail();
+                }
+
+                synchronized(mLock) {
+                    mLock.notify();
+                    mMediaDrm.setOnEventListener(new MediaDrm.OnEventListener() {
+                            @Override
+                            public void onEvent(MediaDrm md, byte[] sessionId, int event,
+                                                int extra, byte[] data) {
+                                synchronized(mLock) {
+                                    Log.d(TAG,"testEventNoSessionNoData.onEvent");
+                                    assertTrue(md == mMediaDrm);
+                                    assertTrue(event == 2);
+                                    assertTrue(extra == 456);
+                                    assertTrue(sessionId == null);
+                                    assertTrue(data == null);
+                                    mGotEvent = true;
+                                    mLock.notify();
+                                }
+                            }
+                        });
+                }
+
+                Looper.loop();  // Blocks forever until Looper.quit() is called.
+            }
+        }.start();
+
+        // wait for mMediaDrm to be created
+        synchronized(mLock) {
+            try {
+                mLock.wait(1000);
+            } catch (Exception e) {
+            }
+        }
+        assertTrue(mMediaDrm != null);
+
+        mGotEvent = false;
+        mMediaDrm.setPropertyString("mock-send-event", "2 456");
+
+        synchronized(mLock) {
+            try {
+                mLock.wait(1000);
+            } catch (Exception e) {
+            }
+        }
+
+        mLooper.quit();
+        assertTrue(mGotEvent);
+    }
+
+    public void testEventWithSessionAndData() throws Exception {
+        if (!isMockPluginInstalled()) {
+            return;
+        }
+
+
+        new Thread() {
+            @Override
+            public void run() {
+                // Set up a looper to be used by mMediaPlayer.
+                Looper.prepare();
+
+                // Save the looper so that we can terminate this thread
+                // after we are done with it.
+                mLooper = Looper.myLooper();
+
+                try {
+                    mMediaDrm = new MediaDrm(mockScheme);
+                } catch (MediaDrmException e) {
+                    e.printStackTrace();
+                    fail();
+                }
+
+
+                final byte[] expected_sessionId = openSession(mMediaDrm);
+                final byte[] expected_data = {0x10, 0x11, 0x12, 0x13, 0x14,
+                                              0x15, 0x16, 0x17, 0x18, 0x19};
+
+                mMediaDrm.setPropertyByteArray("mock-event-session-id", expected_sessionId);
+                mMediaDrm.setPropertyByteArray("mock-event-data", expected_data);
+
+                synchronized(mLock) {
+                    mLock.notify();
+
+                    mMediaDrm.setOnEventListener(new MediaDrm.OnEventListener() {
+                            @Override
+                            public void onEvent(MediaDrm md, byte[] sessionId, int event,
+                                                int extra, byte[] data) {
+                                synchronized(mLock) {
+                                    Log.d(TAG,"testEventWithSessoinAndData.onEvent");
+                                    assertTrue(md == mMediaDrm);
+                                    assertTrue(event == 1);
+                                    assertTrue(extra == 123);
+                                    assertTrue(Arrays.equals(sessionId, expected_sessionId));
+                                    assertTrue(Arrays.equals(data, expected_data));
+                                    mGotEvent = true;
+                                    mLock.notify();
+                                }
+                            }
+                        });
+                }
+                Looper.loop();  // Blocks forever until Looper.quit() is called.
+            }
+        }.start();
+
+        // wait for mMediaDrm to be created
+        synchronized(mLock) {
+            try {
+                mLock.wait(1000);
+            } catch (Exception e) {
+            }
+        }
+        assertTrue(mMediaDrm != null);
+
+        mGotEvent = false;
+        mMediaDrm.setPropertyString("mock-send-event", "1 123");
+
+        synchronized(mLock) {
+            try {
+                mLock.wait(1000);
+            } catch (Exception e) {
+            }
+        }
+
+        mLooper.quit();
+        assertTrue(mGotEvent);
+    }
+
+    private byte[] openSession(MediaDrm md) {
+        byte[] sessionId = null;
+        try {
+            sessionId = md.openSession();
+        } catch (NotProvisionedException e) {
+            // ignore, not thrown by mock
+        }
+        return sessionId;
+    }
+}
diff --git a/tests/tests/media/src/android/media/cts/MediaMuxerTest.java b/tests/tests/media/src/android/media/cts/MediaMuxerTest.java
new file mode 100644
index 0000000..42ae7a7
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/MediaMuxerTest.java
@@ -0,0 +1,341 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.media.cts;
+
+import android.content.Context;
+import android.content.res.AssetFileDescriptor;
+import android.content.res.Resources;
+import android.media.MediaCodec.BufferInfo;
+import android.media.MediaExtractor;
+import android.media.MediaFormat;
+import android.media.MediaMetadataRetriever;
+import android.media.MediaMuxer;
+import android.test.AndroidTestCase;
+import android.util.Log;
+
+import com.android.cts.media.R;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.HashMap;
+
+public class MediaMuxerTest extends AndroidTestCase {
+    private static final String TAG = "MediaMuxerTest";
+    private static final boolean VERBOSE = false;
+    private static final int MAX_SAMPLE_SIZE = 256 * 1024;
+    private Resources mResources;
+
+    @Override
+    public void setContext(Context context) {
+        super.setContext(context);
+        mResources = context.getResources();
+    }
+
+    /**
+     * Test: make sure the muxer handles both video and audio tracks correctly.
+     */
+    public void testVideoAudio() throws Exception {
+        int source = R.raw.video_176x144_3gp_h263_300kbps_25fps_aac_stereo_128kbps_11025hz;
+        String outputFile = "/sdcard/videoAudio.mp4";
+        cloneAndVerify(source, outputFile, 2, 90);
+    }
+
+    /**
+     * Test: make sure the muxer handles audio track only file correctly.
+     */
+    public void testAudioOnly() throws Exception {
+        int source = R.raw.sinesweepm4a;
+        String outputFile = "/sdcard/audioOnly.mp4";
+        cloneAndVerify(source, outputFile, 1, -1);
+    }
+
+    /**
+     * Test: make sure the muxer handles video track only file correctly.
+     */
+    public void testVideoOnly() throws Exception {
+        int source = R.raw.video_only_176x144_3gp_h263_25fps;
+        String outputFile = "/sdcard/videoOnly.mp4";
+        cloneAndVerify(source, outputFile, 1, 180);
+    }
+
+    /**
+     * Tests: make sure the muxer handles exceptions correctly.
+     * <br> Throws exception b/c start() is not called.
+     * <br> Throws exception b/c 2 video tracks were added.
+     * <br> Throws exception b/c 2 audio tracks were added.
+     * <br> Throws exception b/c 3 tracks were added.
+     * <br> Throws exception b/c no tracks was added.
+     * <br> Throws exception b/c a wrong format.
+     */
+    public void testIllegalStateExceptions() throws IOException {
+        String outputFile = "/sdcard/muxerExceptions.mp4";
+        MediaMuxer muxer;
+
+        // Throws exception b/c start() is not called.
+        muxer = new MediaMuxer(outputFile, MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4);
+        muxer.addTrack(MediaFormat.createVideoFormat("video/avc", 480, 320));
+
+        try {
+            muxer.stop();
+            fail("should throw IllegalStateException.");
+        } catch (IllegalStateException e) {
+            // expected
+        }
+
+        // Throws exception b/c 2 video tracks were added.
+        muxer = new MediaMuxer(outputFile, MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4);
+        muxer.addTrack(MediaFormat.createVideoFormat("video/avc", 480, 320));
+
+        try {
+            muxer.addTrack(MediaFormat.createVideoFormat("video/avc", 480, 320));
+            fail("should throw IllegalStateException.");
+        } catch (IllegalStateException e) {
+            // expected
+        }
+
+        // Throws exception b/c 2 audio tracks were added.
+        muxer = new MediaMuxer(outputFile, MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4);
+        muxer.addTrack(MediaFormat.createAudioFormat("audio/mp4a-latm", 48000, 1));
+        try {
+            muxer.addTrack(MediaFormat.createAudioFormat("audio/mp4a-latm", 48000, 1));
+            fail("should throw IllegalStateException.");
+        } catch (IllegalStateException e) {
+            // expected
+        }
+
+        // Throws exception b/c 3 tracks were added.
+        muxer = new MediaMuxer(outputFile, MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4);
+        muxer.addTrack(MediaFormat.createVideoFormat("video/avc", 480, 320));
+        muxer.addTrack(MediaFormat.createAudioFormat("audio/mp4a-latm", 48000, 1));
+        try {
+
+            muxer.addTrack(MediaFormat.createVideoFormat("video/avc", 480, 320));
+            fail("should throw IllegalStateException.");
+        } catch (IllegalStateException e) {
+            // expected
+        }
+
+        // Throws exception b/c no tracks was added.
+        muxer = new MediaMuxer(outputFile, MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4);
+        try {
+            muxer.start();
+            fail("should throw IllegalStateException.");
+        } catch (IllegalStateException e) {
+            // expected
+        }
+
+        // Throws exception b/c a wrong format.
+        muxer = new MediaMuxer(outputFile, MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4);
+        try {
+            muxer.addTrack(MediaFormat.createVideoFormat("vidoe/mp4", 480, 320));
+            fail("should throw IllegalStateException.");
+        } catch (IllegalStateException e) {
+            // expected
+        }
+        new File(outputFile).delete();
+    }
+
+    /**
+     * Using the MediaMuxer to clone a media file.
+     */
+    private void cloneMediaUsingMuxer(int srcMedia, String dstMediaPath,
+            int expectedTrackCount, int degrees) throws IOException {
+        // Set up MediaExtractor to read from the source.
+        AssetFileDescriptor srcFd = mResources.openRawResourceFd(srcMedia);
+        MediaExtractor extractor = new MediaExtractor();
+        extractor.setDataSource(srcFd.getFileDescriptor(), srcFd.getStartOffset(),
+                srcFd.getLength());
+
+        int trackCount = extractor.getTrackCount();
+        assertEquals("wrong number of tracks", expectedTrackCount, trackCount);
+
+        // Set up MediaMuxer for the destination.
+        MediaMuxer muxer;
+        muxer = new MediaMuxer(dstMediaPath, MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4);
+
+        // Set up the tracks.
+        HashMap<Integer, Integer> indexMap = new HashMap<Integer, Integer>(trackCount);
+        for (int i = 0; i < trackCount; i++) {
+            extractor.selectTrack(i);
+            MediaFormat format = extractor.getTrackFormat(i);
+            int dstIndex = muxer.addTrack(format);
+            indexMap.put(i, dstIndex);
+        }
+
+        // Copy the samples from MediaExtractor to MediaMuxer.
+        boolean sawEOS = false;
+        int bufferSize = MAX_SAMPLE_SIZE;
+        int frameCount = 0;
+        int offset = 100;
+
+        ByteBuffer dstBuf = ByteBuffer.allocate(bufferSize);
+        BufferInfo bufferInfo = new BufferInfo();
+
+        if (degrees >= 0) {
+            muxer.setOrientationHint(degrees);
+        }
+        muxer.start();
+        while (!sawEOS) {
+            bufferInfo.offset = offset;
+            bufferInfo.size = extractor.readSampleData(dstBuf, offset);
+
+            if (bufferInfo.size < 0) {
+                if (VERBOSE) {
+                    Log.d(TAG, "saw input EOS.");
+                }
+                sawEOS = true;
+                bufferInfo.size = 0;
+            } else {
+                bufferInfo.presentationTimeUs = extractor.getSampleTime();
+                bufferInfo.flags = extractor.getSampleFlags();
+                int trackIndex = extractor.getSampleTrackIndex();
+
+                muxer.writeSampleData(indexMap.get(trackIndex), dstBuf,
+                        bufferInfo);
+                extractor.advance();
+
+                frameCount++;
+                if (VERBOSE) {
+                    Log.d(TAG, "Frame (" + frameCount + ") " +
+                            "PresentationTimeUs:" + bufferInfo.presentationTimeUs +
+                            " Flags:" + bufferInfo.flags +
+                            " TrackIndex:" + trackIndex +
+                            " Size(KB) " + bufferInfo.size / 1024);
+                }
+            }
+        }
+
+        muxer.stop();
+        muxer.release();
+        srcFd.close();
+        return;
+    }
+
+    /**
+     * Clones a media file and then compares against the source file to make
+     * sure they match.
+     */
+    private void cloneAndVerify(int srcMedia, String outputMediaFile,
+            int expectedTrackCount, int degrees) throws IOException {
+        try {
+            cloneMediaUsingMuxer(srcMedia, outputMediaFile, expectedTrackCount, degrees);
+            verifyAttributesMatch(srcMedia, outputMediaFile, degrees);
+            // Check the sample on 1s and 0.5s.
+            verifySamplesMatch(srcMedia, outputMediaFile, 1000000);
+            verifySamplesMatch(srcMedia, outputMediaFile, 500000);
+        } finally {
+            new File(outputMediaFile).delete();
+        }
+    }
+
+    /**
+     * Compares some attributes using MediaMetadataRetriever to make sure the
+     * cloned media file matches the source file.
+     */
+    private void verifyAttributesMatch(int srcMedia, String testMediaPath,
+            int degrees) {
+        AssetFileDescriptor testFd = mResources.openRawResourceFd(srcMedia);
+
+        MediaMetadataRetriever retrieverSrc = new MediaMetadataRetriever();
+        retrieverSrc.setDataSource(testFd.getFileDescriptor(),
+                testFd.getStartOffset(), testFd.getLength());
+
+        MediaMetadataRetriever retrieverTest = new MediaMetadataRetriever();
+        retrieverTest.setDataSource(testMediaPath);
+
+        String testDegrees = retrieverTest.extractMetadata(
+                MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION);
+        if (testDegrees != null) {
+            assertEquals("Different degrees", degrees,
+                    Integer.parseInt(testDegrees));
+        }
+
+        String heightSrc = retrieverSrc.extractMetadata(
+                MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT);
+        String heightTest = retrieverTest.extractMetadata(
+                MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT);
+        assertEquals("Different height", heightSrc,
+                heightTest);
+
+        String widthSrc = retrieverSrc.extractMetadata(
+                MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH);
+        String widthTest = retrieverTest.extractMetadata(
+                MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH);
+        assertEquals("Different height", widthSrc,
+                widthTest);
+
+        String durationSrc = retrieverSrc.extractMetadata(
+                MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH);
+        String durationTest = retrieverTest.extractMetadata(
+                MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH);
+        assertEquals("Different height", durationSrc,
+                durationTest);
+
+        retrieverSrc.release();
+        retrieverTest.release();
+    }
+
+    /**
+     * Uses 2 MediaExtractor, seeking to the same position, reads the sample and
+     * makes sure the samples match.
+     */
+    private void verifySamplesMatch(int srcMedia, String testMediaPath,
+            int seekToUs) throws IOException {
+        AssetFileDescriptor testFd = mResources.openRawResourceFd(srcMedia);
+        MediaExtractor extractorSrc = new MediaExtractor();
+        extractorSrc.setDataSource(testFd.getFileDescriptor(),
+                testFd.getStartOffset(), testFd.getLength());
+        int trackCount = extractorSrc.getTrackCount();
+
+        MediaExtractor extractorTest = new MediaExtractor();
+        extractorTest.setDataSource(testMediaPath);
+
+        assertEquals("wrong number of tracks", trackCount,
+                extractorTest.getTrackCount());
+
+        // Make sure the format is the same and select them
+        for (int i = 0; i < trackCount; i++) {
+            MediaFormat formatSrc = extractorSrc.getTrackFormat(i);
+            MediaFormat formatTest = extractorTest.getTrackFormat(i);
+
+            String mimeIn = formatSrc.getString(MediaFormat.KEY_MIME);
+            String mimeOut = formatTest.getString(MediaFormat.KEY_MIME);
+            if (!(mimeIn.equals(mimeOut))) {
+                fail("format didn't match on track No." + i +
+                        formatSrc.toString() + "\n" + formatTest.toString());
+            }
+            extractorSrc.selectTrack(i);
+            extractorTest.selectTrack(i);
+        }
+        // Pick a time and try to compare the frame.
+        extractorSrc.seekTo(seekToUs, MediaExtractor.SEEK_TO_CLOSEST_SYNC);
+        extractorTest.seekTo(seekToUs, MediaExtractor.SEEK_TO_CLOSEST_SYNC);
+
+        int bufferSize = MAX_SAMPLE_SIZE;
+        ByteBuffer byteBufSrc = ByteBuffer.allocate(bufferSize);
+        ByteBuffer byteBufTest = ByteBuffer.allocate(bufferSize);
+
+        extractorSrc.readSampleData(byteBufSrc, 0);
+        extractorTest.readSampleData(byteBufTest, 0);
+
+        if (!(byteBufSrc.equals(byteBufTest))) {
+            fail("byteBuffer didn't match");
+        }
+    }
+}
+
diff --git a/tests/tests/media/src/android/media/cts/MediaPlayerTest.java b/tests/tests/media/src/android/media/cts/MediaPlayerTest.java
index 5b6302b..605ce6d 100644
--- a/tests/tests/media/src/android/media/cts/MediaPlayerTest.java
+++ b/tests/tests/media/src/android/media/cts/MediaPlayerTest.java
@@ -782,7 +782,7 @@
             return;
         }
         for (int i = 0; i < trackInfos.length; ++i) {
-            if (trackInfos[i] == null) continue;
+            assertTrue(trackInfos[i] != null);
             if (trackInfos[i].getTrackType() ==
                  MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_TIMEDTEXT) {
                 mTimedTextTrackIndex.add(i);
@@ -939,6 +939,35 @@
         mMediaPlayer.stop();
     }
 
+    public void testGetTrackInfo() throws Exception {
+        loadResource(R.raw.testvideo_with_2_subtitles);
+        loadSubtitleSource(R.raw.test_subtitle1_srt);
+        loadSubtitleSource(R.raw.test_subtitle2_srt);
+        mMediaPlayer.prepare();
+        mMediaPlayer.start();
+
+        readTimedTextTracks();
+        selectSubtitleTrack(2);
+
+        int count = 0;
+        MediaPlayer.TrackInfo[] trackInfos = mMediaPlayer.getTrackInfo();
+        assertTrue(trackInfos != null && trackInfos.length != 0);
+        for (int i = 0; i < trackInfos.length; ++i) {
+            assertTrue(trackInfos[i] != null);
+            if (trackInfos[i].getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_TIMEDTEXT) {
+                String trackLanguage = trackInfos[i].getLanguage();
+                assertTrue(trackLanguage != null);
+                trackLanguage.trim();
+                Log.d(LOG_TAG, "track info lang: " + trackLanguage);
+                assertTrue("Should not see empty track language with our test data.",
+                           trackLanguage.length() > 0);
+                count++;
+            }
+        }
+        // There are 4 subtitle tracks in total in our test data.
+        assertEquals(4, count);
+    }
+
     public void testCallback() throws Throwable {
         final int mp4Duration = 8484;
 
diff --git a/tests/tests/media/src/android/media/cts/OutputSurface.java b/tests/tests/media/src/android/media/cts/OutputSurface.java
new file mode 100644
index 0000000..5274627
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/OutputSurface.java
@@ -0,0 +1,304 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.media.cts;
+
+import android.graphics.SurfaceTexture;
+import android.opengl.EGL14;
+import android.opengl.GLES20;
+import android.opengl.GLES11Ext;
+import android.opengl.GLSurfaceView;
+import android.opengl.Matrix;
+import android.util.Log;
+import android.view.Surface;
+
+import java.nio.ByteBuffer;
+
+import javax.microedition.khronos.egl.EGL10;
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.egl.EGLContext;
+import javax.microedition.khronos.egl.EGLDisplay;
+import javax.microedition.khronos.egl.EGLSurface;
+import javax.microedition.khronos.opengles.GL;
+import javax.microedition.khronos.opengles.GL10;
+
+
+
+/**
+ * Holds state associated with a Surface used for MediaCodec decoder output.
+ * <p>
+ * The (width,height) constructor for this class will prepare GL, create a SurfaceTexture,
+ * and then create a Surface for that SurfaceTexture.  The Surface can be passed to
+ * MediaCodec.configure() to receive decoder output.  When a frame arrives, we latch the
+ * texture with updateTexImage, then render the texture with GL to a pbuffer.
+ * <p>
+ * The no-arg constructor skips the GL preparation step and doesn't allocate a pbuffer.
+ * Instead, it just creates the Surface and SurfaceTexture, and when a frame arrives
+ * we just draw it on whatever surface is current.
+ * <p>
+ * By default, the Surface will be using a BufferQueue in asynchronous mode, so we
+ * can potentially drop frames.
+ */
+class OutputSurface implements SurfaceTexture.OnFrameAvailableListener {
+    private static final String TAG = "OutputSurface";
+    private static final boolean VERBOSE = false;
+
+    private static final int EGL_OPENGL_ES2_BIT = 4;
+
+    private EGL10 mEGL;
+    private EGLDisplay mEGLDisplay;
+    private EGLContext mEGLContext;
+    private EGLSurface mEGLSurface;
+
+    private SurfaceTexture mSurfaceTexture;
+    private Surface mSurface;
+
+    private Object mFrameSyncObject = new Object();     // guards mFrameAvailable
+    private boolean mFrameAvailable;
+
+    private TextureRender mTextureRender;
+
+    /**
+     * Creates an OutputSurface backed by a pbuffer with the specifed dimensions.  The new
+     * EGL context and surface will be made current.  Creates a Surface that can be passed
+     * to MediaCodec.configure().
+     */
+    public OutputSurface(int width, int height) {
+        if (width <= 0 || height <= 0) {
+            throw new IllegalArgumentException();
+        }
+
+        eglSetup(width, height);
+        makeCurrent();
+
+        setup();
+    }
+
+    /**
+     * Creates an OutputSurface using the current EGL context.  Creates a Surface that can be
+     * passed to MediaCodec.configure().
+     */
+    public OutputSurface() {
+        setup();
+    }
+
+    /**
+     * Creates instances of TextureRender and SurfaceTexture, and a Surface associated
+     * with the SurfaceTexture.
+     */
+    private void setup() {
+        mTextureRender = new TextureRender();
+        mTextureRender.surfaceCreated();
+
+        // Even if we don't access the SurfaceTexture after the constructor returns, we
+        // still need to keep a reference to it.  The Surface doesn't retain a reference
+        // at the Java level, so if we don't either then the object can get GCed, which
+        // causes the native finalizer to run.
+        if (VERBOSE) Log.d(TAG, "textureID=" + mTextureRender.getTextureId());
+        mSurfaceTexture = new SurfaceTexture(mTextureRender.getTextureId());
+
+        // This doesn't work if OutputSurface is created on the thread that CTS started for
+        // these test cases.
+        //
+        // The CTS-created thread has a Looper, and the SurfaceTexture constructor will
+        // create a Handler that uses it.  The "frame available" message is delivered
+        // there, but since we're not a Looper-based thread we'll never see it.  For
+        // this to do anything useful, OutputSurface must be created on a thread without
+        // a Looper, so that SurfaceTexture uses the main application Looper instead.
+        //
+        // Java language note: passing "this" out of a constructor is generally unwise,
+        // but we should be able to get away with it here.
+        mSurfaceTexture.setOnFrameAvailableListener(this);
+
+        mSurface = new Surface(mSurfaceTexture);
+    }
+
+    /**
+     * Prepares EGL.  We want a GLES 2.0 context and a surface that supports pbuffer.
+     */
+    private void eglSetup(int width, int height) {
+        mEGL = (EGL10)EGLContext.getEGL();
+        mEGLDisplay = mEGL.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
+        if (!mEGL.eglInitialize(mEGLDisplay, null)) {
+            throw new RuntimeException("unable to initialize EGL10");
+        }
+
+        // Configure EGL for pbuffer and OpenGL ES 2.0.  We want enough RGB bits
+        // to be able to tell if the frame is reasonable.
+        int[] attribList = {
+                EGL10.EGL_RED_SIZE, 8,
+                EGL10.EGL_GREEN_SIZE, 8,
+                EGL10.EGL_BLUE_SIZE, 8,
+                EGL10.EGL_SURFACE_TYPE, EGL10.EGL_PBUFFER_BIT,
+                EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+                EGL10.EGL_NONE
+        };
+        EGLConfig[] configs = new EGLConfig[1];
+        int[] numConfigs = new int[1];
+        if (!mEGL.eglChooseConfig(mEGLDisplay, attribList, configs, 1, numConfigs)) {
+            throw new RuntimeException("unable to find RGB888+pbuffer EGL config");
+        }
+
+        // Configure context for OpenGL ES 2.0.
+        int[] attrib_list = {
+                EGL14.EGL_CONTEXT_CLIENT_VERSION, 2,
+                EGL10.EGL_NONE
+        };
+        mEGLContext = mEGL.eglCreateContext(mEGLDisplay, configs[0], EGL10.EGL_NO_CONTEXT,
+                attrib_list);
+        checkEglError("eglCreateContext");
+        if (mEGLContext == null) {
+            throw new RuntimeException("null context");
+        }
+
+        // Create a pbuffer surface.  By using this for output, we can use glReadPixels
+        // to test values in the output.
+        int[] surfaceAttribs = {
+                EGL10.EGL_WIDTH, width,
+                EGL10.EGL_HEIGHT, height,
+                EGL10.EGL_NONE
+        };
+        mEGLSurface = mEGL.eglCreatePbufferSurface(mEGLDisplay, configs[0], surfaceAttribs);
+        checkEglError("eglCreatePbufferSurface");
+        if (mEGLSurface == null) {
+            throw new RuntimeException("surface was null");
+        }
+    }
+
+    /**
+     * Discard all resources held by this class, notably the EGL context.
+     */
+    public void release() {
+        if (mEGL != null) {
+            if (mEGL.eglGetCurrentContext().equals(mEGLContext)) {
+                // Clear the current context and surface to ensure they are discarded immediately.
+                mEGL.eglMakeCurrent(mEGLDisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE,
+                        EGL10.EGL_NO_CONTEXT);
+            }
+            mEGL.eglDestroySurface(mEGLDisplay, mEGLSurface);
+            mEGL.eglDestroyContext(mEGLDisplay, mEGLContext);
+            //mEGL.eglTerminate(mEGLDisplay);
+        }
+
+        mSurface.release();
+
+        // this causes a bunch of warnings that appear harmless but might confuse someone:
+        //  W BufferQueue: [unnamed-3997-2] cancelBuffer: BufferQueue has been abandoned!
+        //mSurfaceTexture.release();
+
+        // null everything out so future attempts to use this object will cause an NPE
+        mEGLDisplay = null;
+        mEGLContext = null;
+        mEGLSurface = null;
+        mEGL = null;
+
+        mTextureRender = null;
+        mSurface = null;
+        mSurfaceTexture = null;
+    }
+
+    /**
+     * Makes our EGL context and surface current.
+     */
+    public void makeCurrent() {
+        if (mEGL == null) {
+            throw new RuntimeException("not configured for makeCurrent");
+        }
+        checkEglError("before makeCurrent");
+        if (!mEGL.eglMakeCurrent(mEGLDisplay, mEGLSurface, mEGLSurface, mEGLContext)) {
+            throw new RuntimeException("eglMakeCurrent failed");
+        }
+    }
+
+    /**
+     * Returns the Surface that we draw onto.
+     */
+    public Surface getSurface() {
+        return mSurface;
+    }
+
+    /**
+     * Replaces the fragment shader.
+     */
+    public void changeFragmentShader(String fragmentShader) {
+        mTextureRender.changeFragmentShader(fragmentShader);
+    }
+
+    /**
+     * Latches the next buffer into the texture.  Must be called from the thread that created
+     * the OutputSurface object, after the onFrameAvailable callback has signaled that new
+     * data is available.
+     */
+    public void awaitNewImage() {
+        final int TIMEOUT_MS = 500;
+
+        synchronized (mFrameSyncObject) {
+            while (!mFrameAvailable) {
+                try {
+                    // Wait for onFrameAvailable() to signal us.  Use a timeout to avoid
+                    // stalling the test if it doesn't arrive.
+                    mFrameSyncObject.wait(TIMEOUT_MS);
+                    if (!mFrameAvailable) {
+                        // TODO: if "spurious wakeup", continue while loop
+                        throw new RuntimeException("Surface frame wait timed out");
+                    }
+                } catch (InterruptedException ie) {
+                    // shouldn't happen
+                    throw new RuntimeException(ie);
+                }
+            }
+            mFrameAvailable = false;
+        }
+
+        // Latch the data.
+        mTextureRender.checkGlError("before updateTexImage");
+        mSurfaceTexture.updateTexImage();
+    }
+
+    /**
+     * Draws the data from SurfaceTexture onto the current EGL surface.
+     */
+    public void drawImage() {
+        mTextureRender.drawFrame(mSurfaceTexture);
+    }
+
+    @Override
+    public void onFrameAvailable(SurfaceTexture st) {
+        if (VERBOSE) Log.d(TAG, "new frame available");
+        synchronized (mFrameSyncObject) {
+            if (mFrameAvailable) {
+                throw new RuntimeException("mFrameAvailable already set, frame could be dropped");
+            }
+            mFrameAvailable = true;
+            mFrameSyncObject.notifyAll();
+        }
+    }
+
+    /**
+     * Checks for EGL errors.
+     */
+    private void checkEglError(String msg) {
+        boolean failed = false;
+        int error;
+        while ((error = mEGL.eglGetError()) != EGL10.EGL_SUCCESS) {
+            Log.e(TAG, msg + ": EGL error: 0x" + Integer.toHexString(error));
+            failed = true;
+        }
+        if (failed) {
+            throw new RuntimeException("EGL error encountered (see log)");
+        }
+    }
+}
diff --git a/tests/tests/media/src/android/media/cts/StreamingMediaPlayerTest.java b/tests/tests/media/src/android/media/cts/StreamingMediaPlayerTest.java
index c28aa60..311164c 100644
--- a/tests/tests/media/src/android/media/cts/StreamingMediaPlayerTest.java
+++ b/tests/tests/media/src/android/media/cts/StreamingMediaPlayerTest.java
@@ -49,11 +49,11 @@
 
     public void testRTSP_H264Base_AAC_Video1() throws Exception {
         playVideoTest("rtsp://v2.cache7.c.youtube.com/video.3gp?cid=0x271de9756065677e"
-                + "&fmt=18&user=android-device-test", 640, 360);
+                + "&fmt=18&user=android-device-test", 480, 270);
     }
     public void testRTSP_H264Base_AAC_Video2() throws Exception {
         playVideoTest("rtsp://v2.cache7.c.youtube.com/video.3gp?cid=0xc80658495af60617"
-                + "&fmt=18&user=android-device-test", 640, 360);
+                + "&fmt=18&user=android-device-test", 480, 270);
     }
 */
     // Streaming HTTP video from YouTube
diff --git a/tests/tests/media/src/android/media/cts/TextureRender.java b/tests/tests/media/src/android/media/cts/TextureRender.java
new file mode 100644
index 0000000..eb4236c
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/TextureRender.java
@@ -0,0 +1,248 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.media.cts;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.FloatBuffer;
+
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.opengles.GL10;
+
+import android.graphics.SurfaceTexture;
+import android.opengl.GLES11Ext;
+import android.opengl.GLES20;
+import android.opengl.GLSurfaceView;
+import android.opengl.Matrix;
+import android.util.Log;
+
+
+/**
+ * Code for rendering a texture onto a surface using OpenGL ES 2.0.
+ */
+class TextureRender {
+    private static final String TAG = "TextureRender";
+
+    private static final int FLOAT_SIZE_BYTES = 4;
+    private static final int TRIANGLE_VERTICES_DATA_STRIDE_BYTES = 5 * FLOAT_SIZE_BYTES;
+    private static final int TRIANGLE_VERTICES_DATA_POS_OFFSET = 0;
+    private static final int TRIANGLE_VERTICES_DATA_UV_OFFSET = 3;
+    private final float[] mTriangleVerticesData = {
+        // X, Y, Z, U, V
+        -1.0f, -1.0f, 0, 0.f, 0.f,
+        1.0f, -1.0f, 0, 1.f, 0.f,
+        -1.0f,  1.0f, 0, 0.f, 1.f,
+        1.0f,  1.0f, 0, 1.f, 1.f,
+    };
+
+    private FloatBuffer mTriangleVertices;
+
+    private static final String VERTEX_SHADER =
+            "uniform mat4 uMVPMatrix;\n" +
+            "uniform mat4 uSTMatrix;\n" +
+            "attribute vec4 aPosition;\n" +
+            "attribute vec4 aTextureCoord;\n" +
+            "varying vec2 vTextureCoord;\n" +
+            "void main() {\n" +
+            "  gl_Position = uMVPMatrix * aPosition;\n" +
+            "  vTextureCoord = (uSTMatrix * aTextureCoord).xy;\n" +
+            "}\n";
+
+    private static final String FRAGMENT_SHADER =
+            "#extension GL_OES_EGL_image_external : require\n" +
+            "precision mediump float;\n" +      // highp here doesn't seem to matter
+            "varying vec2 vTextureCoord;\n" +
+            "uniform samplerExternalOES sTexture;\n" +
+            "void main() {\n" +
+            "  gl_FragColor = texture2D(sTexture, vTextureCoord);\n" +
+            "}\n";
+
+    private float[] mMVPMatrix = new float[16];
+    private float[] mSTMatrix = new float[16];
+
+    private int mProgram;
+    private int mTextureID = -12345;
+    private int muMVPMatrixHandle;
+    private int muSTMatrixHandle;
+    private int maPositionHandle;
+    private int maTextureHandle;
+
+    public TextureRender() {
+        mTriangleVertices = ByteBuffer.allocateDirect(
+            mTriangleVerticesData.length * FLOAT_SIZE_BYTES)
+                .order(ByteOrder.nativeOrder()).asFloatBuffer();
+        mTriangleVertices.put(mTriangleVerticesData).position(0);
+
+        Matrix.setIdentityM(mSTMatrix, 0);
+    }
+
+    public int getTextureId() {
+        return mTextureID;
+    }
+
+    public void drawFrame(SurfaceTexture st) {
+        checkGlError("onDrawFrame start");
+        st.getTransformMatrix(mSTMatrix);
+
+        GLES20.glClearColor(0.0f, 1.0f, 0.0f, 1.0f);
+        GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
+
+        GLES20.glUseProgram(mProgram);
+        checkGlError("glUseProgram");
+
+        GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
+        GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, mTextureID);
+
+        mTriangleVertices.position(TRIANGLE_VERTICES_DATA_POS_OFFSET);
+        GLES20.glVertexAttribPointer(maPositionHandle, 3, GLES20.GL_FLOAT, false,
+            TRIANGLE_VERTICES_DATA_STRIDE_BYTES, mTriangleVertices);
+        checkGlError("glVertexAttribPointer maPosition");
+        GLES20.glEnableVertexAttribArray(maPositionHandle);
+        checkGlError("glEnableVertexAttribArray maPositionHandle");
+
+        mTriangleVertices.position(TRIANGLE_VERTICES_DATA_UV_OFFSET);
+        GLES20.glVertexAttribPointer(maTextureHandle, 2, GLES20.GL_FLOAT, false,
+            TRIANGLE_VERTICES_DATA_STRIDE_BYTES, mTriangleVertices);
+        checkGlError("glVertexAttribPointer maTextureHandle");
+        GLES20.glEnableVertexAttribArray(maTextureHandle);
+        checkGlError("glEnableVertexAttribArray maTextureHandle");
+
+        Matrix.setIdentityM(mMVPMatrix, 0);
+        GLES20.glUniformMatrix4fv(muMVPMatrixHandle, 1, false, mMVPMatrix, 0);
+        GLES20.glUniformMatrix4fv(muSTMatrixHandle, 1, false, mSTMatrix, 0);
+
+        GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
+        checkGlError("glDrawArrays");
+        GLES20.glFinish();
+    }
+
+    /**
+     * Initializes GL state.  Call this after the EGL surface has been created and made current.
+     */
+    public void surfaceCreated() {
+        mProgram = createProgram(VERTEX_SHADER, FRAGMENT_SHADER);
+        if (mProgram == 0) {
+            throw new RuntimeException("failed creating program");
+        }
+        maPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition");
+        checkGlError("glGetAttribLocation aPosition");
+        if (maPositionHandle == -1) {
+            throw new RuntimeException("Could not get attrib location for aPosition");
+        }
+        maTextureHandle = GLES20.glGetAttribLocation(mProgram, "aTextureCoord");
+        checkGlError("glGetAttribLocation aTextureCoord");
+        if (maTextureHandle == -1) {
+            throw new RuntimeException("Could not get attrib location for aTextureCoord");
+        }
+
+        muMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix");
+        checkGlError("glGetUniformLocation uMVPMatrix");
+        if (muMVPMatrixHandle == -1) {
+            throw new RuntimeException("Could not get attrib location for uMVPMatrix");
+        }
+
+        muSTMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uSTMatrix");
+        checkGlError("glGetUniformLocation uSTMatrix");
+        if (muSTMatrixHandle == -1) {
+            throw new RuntimeException("Could not get attrib location for uSTMatrix");
+        }
+
+
+        int[] textures = new int[1];
+        GLES20.glGenTextures(1, textures, 0);
+
+        mTextureID = textures[0];
+        GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, mTextureID);
+        checkGlError("glBindTexture mTextureID");
+
+        GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER,
+                GLES20.GL_NEAREST);
+        GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER,
+                GLES20.GL_LINEAR);
+        GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_S,
+                GLES20.GL_CLAMP_TO_EDGE);
+        GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_T,
+                GLES20.GL_CLAMP_TO_EDGE);
+        checkGlError("glTexParameter");
+    }
+
+    /**
+     * Replaces the fragment shader.
+     */
+    public void changeFragmentShader(String fragmentShader) {
+        GLES20.glDeleteProgram(mProgram);
+        mProgram = createProgram(VERTEX_SHADER, fragmentShader);
+        if (mProgram == 0) {
+            throw new RuntimeException("failed creating program");
+        }
+    }
+
+    private int loadShader(int shaderType, String source) {
+        int shader = GLES20.glCreateShader(shaderType);
+        checkGlError("glCreateShader type=" + shaderType);
+        GLES20.glShaderSource(shader, source);
+        GLES20.glCompileShader(shader);
+        int[] compiled = new int[1];
+        GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compiled, 0);
+        if (compiled[0] == 0) {
+            Log.e(TAG, "Could not compile shader " + shaderType + ":");
+            Log.e(TAG, " " + GLES20.glGetShaderInfoLog(shader));
+            GLES20.glDeleteShader(shader);
+            shader = 0;
+        }
+        return shader;
+    }
+
+    private int createProgram(String vertexSource, String fragmentSource) {
+        int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, vertexSource);
+        if (vertexShader == 0) {
+            return 0;
+        }
+        int pixelShader = loadShader(GLES20.GL_FRAGMENT_SHADER, fragmentSource);
+        if (pixelShader == 0) {
+            return 0;
+        }
+
+        int program = GLES20.glCreateProgram();
+        checkGlError("glCreateProgram");
+        if (program == 0) {
+            Log.e(TAG, "Could not create program");
+        }
+        GLES20.glAttachShader(program, vertexShader);
+        checkGlError("glAttachShader");
+        GLES20.glAttachShader(program, pixelShader);
+        checkGlError("glAttachShader");
+        GLES20.glLinkProgram(program);
+        int[] linkStatus = new int[1];
+        GLES20.glGetProgramiv(program, GLES20.GL_LINK_STATUS, linkStatus, 0);
+        if (linkStatus[0] != GLES20.GL_TRUE) {
+            Log.e(TAG, "Could not link program: ");
+            Log.e(TAG, GLES20.glGetProgramInfoLog(program));
+            GLES20.glDeleteProgram(program);
+            program = 0;
+        }
+        return program;
+    }
+
+    public void checkGlError(String op) {
+        int error;
+        while ((error = GLES20.glGetError()) != GLES20.GL_NO_ERROR) {
+            Log.e(TAG, op + ": glError " + error);
+            throw new RuntimeException(op + ": glError " + error);
+        }
+    }
+}
diff --git a/tests/tests/media/src/android/media/cts/VideoSurfaceView.java b/tests/tests/media/src/android/media/cts/VideoSurfaceView.java
index 943a56b..229c6f6 100644
--- a/tests/tests/media/src/android/media/cts/VideoSurfaceView.java
+++ b/tests/tests/media/src/android/media/cts/VideoSurfaceView.java
@@ -19,9 +19,6 @@
 import com.android.cts.media.R;
 
 import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.FloatBuffer;
 
 import javax.microedition.khronos.egl.EGLConfig;
 import javax.microedition.khronos.opengles.GL10;
@@ -29,7 +26,6 @@
 import android.content.Context;
 import android.graphics.SurfaceTexture;
 import android.media.MediaPlayer;
-import android.opengl.GLES20;
 import android.opengl.GLSurfaceView;
 import android.opengl.Matrix;
 import android.util.Log;
@@ -73,68 +69,22 @@
         }
     }
 
+    /**
+     * A GLSurfaceView implementation that wraps TextureRender.  Used to render frames from a
+     * video decoder to a View.
+     */
     private static class VideoRender
-        implements GLSurfaceView.Renderer, SurfaceTexture.OnFrameAvailableListener {
+            implements GLSurfaceView.Renderer, SurfaceTexture.OnFrameAvailableListener {
         private static String TAG = "VideoRender";
 
-        private static final int FLOAT_SIZE_BYTES = 4;
-        private static final int TRIANGLE_VERTICES_DATA_STRIDE_BYTES = 5 * FLOAT_SIZE_BYTES;
-        private static final int TRIANGLE_VERTICES_DATA_POS_OFFSET = 0;
-        private static final int TRIANGLE_VERTICES_DATA_UV_OFFSET = 3;
-        private final float[] mTriangleVerticesData = {
-            // X, Y, Z, U, V
-            -1.0f, -1.0f, 0, 0.f, 0.f,
-            1.0f, -1.0f, 0, 1.f, 0.f,
-            -1.0f,  1.0f, 0, 0.f, 1.f,
-            1.0f,  1.0f, 0, 1.f, 1.f,
-        };
-
-        private FloatBuffer mTriangleVertices;
-
-        private final String mVertexShader =
-                "uniform mat4 uMVPMatrix;\n" +
-                "uniform mat4 uSTMatrix;\n" +
-                "attribute vec4 aPosition;\n" +
-                "attribute vec4 aTextureCoord;\n" +
-                "varying vec2 vTextureCoord;\n" +
-                "void main() {\n" +
-                "  gl_Position = uMVPMatrix * aPosition;\n" +
-                "  vTextureCoord = (uSTMatrix * aTextureCoord).xy;\n" +
-                "}\n";
-
-        private final String mFragmentShader =
-                "#extension GL_OES_EGL_image_external : require\n" +
-                "precision mediump float;\n" +
-                "varying vec2 vTextureCoord;\n" +
-                "uniform samplerExternalOES sTexture;\n" +
-                "void main() {\n" +
-                "  gl_FragColor = texture2D(sTexture, vTextureCoord);\n" +
-                "}\n";
-
-        private float[] mMVPMatrix = new float[16];
-        private float[] mSTMatrix = new float[16];
-
-        private int mProgram;
-        private int mTextureID;
-        private int muMVPMatrixHandle;
-        private int muSTMatrixHandle;
-        private int maPositionHandle;
-        private int maTextureHandle;
-
-        private SurfaceTexture mSurface;
+        private TextureRender mTextureRender;
+        private SurfaceTexture mSurfaceTexture;
         private boolean updateSurface = false;
 
-        private static int GL_TEXTURE_EXTERNAL_OES = 0x8D65;
-
         private MediaPlayer mMediaPlayer;
 
         public VideoRender(Context context) {
-            mTriangleVertices = ByteBuffer.allocateDirect(
-                mTriangleVerticesData.length * FLOAT_SIZE_BYTES)
-                    .order(ByteOrder.nativeOrder()).asFloatBuffer();
-            mTriangleVertices.put(mTriangleVerticesData).position(0);
-
-            Matrix.setIdentityM(mSTMatrix, 0);
+            mTextureRender = new TextureRender();
         }
 
         public void setMediaPlayer(MediaPlayer player) {
@@ -144,97 +94,28 @@
         public void onDrawFrame(GL10 glUnused) {
             synchronized(this) {
                 if (updateSurface) {
-                    mSurface.updateTexImage();
-                    mSurface.getTransformMatrix(mSTMatrix);
+                    mSurfaceTexture.updateTexImage();
                     updateSurface = false;
                 }
             }
 
-            GLES20.glClearColor(0.0f, 1.0f, 0.0f, 1.0f);
-            GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
-
-            GLES20.glUseProgram(mProgram);
-            checkGlError("glUseProgram");
-
-            GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
-            GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, mTextureID);
-
-            mTriangleVertices.position(TRIANGLE_VERTICES_DATA_POS_OFFSET);
-            GLES20.glVertexAttribPointer(maPositionHandle, 3, GLES20.GL_FLOAT, false,
-                TRIANGLE_VERTICES_DATA_STRIDE_BYTES, mTriangleVertices);
-            checkGlError("glVertexAttribPointer maPosition");
-            GLES20.glEnableVertexAttribArray(maPositionHandle);
-            checkGlError("glEnableVertexAttribArray maPositionHandle");
-
-            mTriangleVertices.position(TRIANGLE_VERTICES_DATA_UV_OFFSET);
-            GLES20.glVertexAttribPointer(maTextureHandle, 3, GLES20.GL_FLOAT, false,
-                TRIANGLE_VERTICES_DATA_STRIDE_BYTES, mTriangleVertices);
-            checkGlError("glVertexAttribPointer maTextureHandle");
-            GLES20.glEnableVertexAttribArray(maTextureHandle);
-            checkGlError("glEnableVertexAttribArray maTextureHandle");
-
-            Matrix.setIdentityM(mMVPMatrix, 0);
-            GLES20.glUniformMatrix4fv(muMVPMatrixHandle, 1, false, mMVPMatrix, 0);
-            GLES20.glUniformMatrix4fv(muSTMatrixHandle, 1, false, mSTMatrix, 0);
-
-            GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
-            checkGlError("glDrawArrays");
-            GLES20.glFinish();
-
+            mTextureRender.drawFrame(mSurfaceTexture);
         }
 
         public void onSurfaceChanged(GL10 glUnused, int width, int height) {
         }
 
         public void onSurfaceCreated(GL10 glUnused, EGLConfig config) {
-            mProgram = createProgram(mVertexShader, mFragmentShader);
-            if (mProgram == 0) {
-                return;
-            }
-            maPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition");
-            checkGlError("glGetAttribLocation aPosition");
-            if (maPositionHandle == -1) {
-                throw new RuntimeException("Could not get attrib location for aPosition");
-            }
-            maTextureHandle = GLES20.glGetAttribLocation(mProgram, "aTextureCoord");
-            checkGlError("glGetAttribLocation aTextureCoord");
-            if (maTextureHandle == -1) {
-                throw new RuntimeException("Could not get attrib location for aTextureCoord");
-            }
-
-            muMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix");
-            checkGlError("glGetUniformLocation uMVPMatrix");
-            if (muMVPMatrixHandle == -1) {
-                throw new RuntimeException("Could not get attrib location for uMVPMatrix");
-            }
-
-            muSTMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uSTMatrix");
-            checkGlError("glGetUniformLocation uSTMatrix");
-            if (muSTMatrixHandle == -1) {
-                throw new RuntimeException("Could not get attrib location for uSTMatrix");
-            }
-
-
-            int[] textures = new int[1];
-            GLES20.glGenTextures(1, textures, 0);
-
-            mTextureID = textures[0];
-            GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, mTextureID);
-            checkGlError("glBindTexture mTextureID");
-
-            GLES20.glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER,
-                                   GLES20.GL_NEAREST);
-            GLES20.glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER,
-                                   GLES20.GL_LINEAR);
+            mTextureRender.surfaceCreated();
 
             /*
              * Create the SurfaceTexture that will feed this textureID,
              * and pass it to the MediaPlayer
              */
-            mSurface = new SurfaceTexture(mTextureID);
-            mSurface.setOnFrameAvailableListener(this);
+            mSurfaceTexture = new SurfaceTexture(mTextureRender.getTextureId());
+            mSurfaceTexture.setOnFrameAvailableListener(this);
 
-            Surface surface = new Surface(mSurface);
+            Surface surface = new Surface(mSurfaceTexture);
             mMediaPlayer.setSurface(surface);
             surface.release();
 
@@ -252,61 +133,6 @@
         synchronized public void onFrameAvailable(SurfaceTexture surface) {
             updateSurface = true;
         }
-
-        private int loadShader(int shaderType, String source) {
-            int shader = GLES20.glCreateShader(shaderType);
-            if (shader != 0) {
-                GLES20.glShaderSource(shader, source);
-                GLES20.glCompileShader(shader);
-                int[] compiled = new int[1];
-                GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compiled, 0);
-                if (compiled[0] == 0) {
-                    Log.e(TAG, "Could not compile shader " + shaderType + ":");
-                    Log.e(TAG, GLES20.glGetShaderInfoLog(shader));
-                    GLES20.glDeleteShader(shader);
-                    shader = 0;
-                }
-            }
-            return shader;
-        }
-
-        private int createProgram(String vertexSource, String fragmentSource) {
-            int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, vertexSource);
-            if (vertexShader == 0) {
-                return 0;
-            }
-            int pixelShader = loadShader(GLES20.GL_FRAGMENT_SHADER, fragmentSource);
-            if (pixelShader == 0) {
-                return 0;
-            }
-
-            int program = GLES20.glCreateProgram();
-            if (program != 0) {
-                GLES20.glAttachShader(program, vertexShader);
-                checkGlError("glAttachShader");
-                GLES20.glAttachShader(program, pixelShader);
-                checkGlError("glAttachShader");
-                GLES20.glLinkProgram(program);
-                int[] linkStatus = new int[1];
-                GLES20.glGetProgramiv(program, GLES20.GL_LINK_STATUS, linkStatus, 0);
-                if (linkStatus[0] != GLES20.GL_TRUE) {
-                    Log.e(TAG, "Could not link program: ");
-                    Log.e(TAG, GLES20.glGetProgramInfoLog(program));
-                    GLES20.glDeleteProgram(program);
-                    program = 0;
-                }
-            }
-            return program;
-        }
-
-        private void checkGlError(String op) {
-            int error;
-            while ((error = GLES20.glGetError()) != GLES20.GL_NO_ERROR) {
-                Log.e(TAG, op + ": glError " + error);
-                throw new RuntimeException(op + ": glError " + error);
-            }
-        }
-
     }  // End of class VideoRender.
 
 }  // End of class VideoSurfaceView.
diff --git a/tests/tests/media/src/android/media/cts/Vp8EncoderTest.java b/tests/tests/media/src/android/media/cts/Vp8EncoderTest.java
new file mode 100644
index 0000000..308fb98
--- /dev/null
+++ b/tests/tests/media/src/android/media/cts/Vp8EncoderTest.java
@@ -0,0 +1,288 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.media.cts;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.media.MediaCodec;
+import android.media.MediaCodecInfo.CodecCapabilities;
+import android.media.MediaFormat;
+import android.test.AndroidTestCase;
+import android.util.Log;
+
+import com.android.cts.media.R;
+
+import java.io.InputStream;
+import java.nio.ByteBuffer;
+
+/**
+ * Basic verification test for vp8 encoder.
+ *
+ * A raw yv12 stream is encoded and written to an IVF
+ * file, which is later decoded by vp8 decoder to verify
+ * frames are at least decodable.
+ */
+public class Vp8EncoderTest extends AndroidTestCase {
+
+    private static final String TAG = "VP8EncoderTest";
+    private static final String VP8_MIME = "video/x-vnd.on2.vp8";
+    private static final String VPX_DECODER_NAME = "OMX.google.vpx.decoder";
+    private static final String VPX_ENCODER_NAME = "OMX.google.vpx.encoder";
+    private static final String BASIC_IVF = "video_176x144_vp8_basic.ivf";
+    private static final long DEFAULT_TIMEOUT_US = 5000;
+
+    private Resources mResources;
+    private MediaCodec.BufferInfo mBufferInfo = new MediaCodec.BufferInfo();
+    private ByteBuffer[] mInputBuffers;
+    private ByteBuffer[] mOutputBuffers;
+
+    @Override
+    public void setContext(Context context) {
+        super.setContext(context);
+        mResources = mContext.getResources();
+    }
+
+    /**
+     * A basic test for VP8 encoder.
+     *
+     * Encodes a raw stream with default configuration options,
+     * and then decodes it to verify the bitstream.
+     */
+    public void testBasic() throws Exception {
+        encode(BASIC_IVF,
+               R.raw.video_176x144_yv12,
+               176,  // width
+               144,  // height
+               30);  // framerate
+        decode(BASIC_IVF);
+    }
+
+
+    /**
+     * A basic check if an encoded stream is decodable.
+     *
+     * The most basic confirmation we can get about a frame
+     * being properly encoded is trying to decode it.
+     * (Especially in realtime mode encode output is non-
+     * deterministic, therefore a more thorough check like
+     * md5 sum comparison wouldn't work.)
+     *
+     * Indeed, MediaCodec will raise an IllegalStateException
+     * whenever vp8 decoder fails to decode a frame, and
+     * this test uses that fact to verify the bitstream.
+     *
+     * @param filename  The name of the IVF file containing encoded bitsream.
+     */
+    private void decode(String filename) throws Exception {
+        IvfReader ivf = null;
+        try {
+            ivf = new IvfReader(filename);
+            int frameWidth = ivf.getWidth();
+            int frameHeight = ivf.getHeight();
+            int frameCount = ivf.getFrameCount();
+
+            assertTrue(frameWidth > 0);
+            assertTrue(frameHeight > 0);
+            assertTrue(frameCount > 0);
+
+            MediaFormat format = MediaFormat.createVideoFormat(VP8_MIME,
+                                                               ivf.getWidth(),
+                                                               ivf.getHeight());
+
+            Log.d(TAG, "Creating decoder");
+            MediaCodec decoder = MediaCodec.createByCodecName(VPX_DECODER_NAME);
+            decoder.configure(format,
+                              null,  // surface
+                              null,  // crypto
+                              0);  // flags
+            decoder.start();
+
+            mInputBuffers = decoder.getInputBuffers();
+            mOutputBuffers = decoder.getOutputBuffers();
+
+            // decode loop
+            int frameIndex = 0;
+            boolean sawOutputEOS = false;
+            boolean sawInputEOS = false;
+
+            while (!sawOutputEOS) {
+                if (!sawInputEOS) {
+                    int inputBufIndex = decoder.dequeueInputBuffer(DEFAULT_TIMEOUT_US);
+                    if (inputBufIndex >= 0) {
+                        byte[] frame = ivf.readFrame(frameIndex);
+
+                        if (frameIndex == frameCount - 1) {
+                            sawInputEOS = true;
+                        }
+
+                        mInputBuffers[inputBufIndex].clear();
+                        mInputBuffers[inputBufIndex].put(frame);
+                        mInputBuffers[inputBufIndex].rewind();
+
+                        Log.d(TAG, "Decoding frame at index " + frameIndex);
+                        try {
+                            decoder.queueInputBuffer(
+                                    inputBufIndex,
+                                    0,  // offset
+                                    frame.length,
+                                    frameIndex,
+                                    sawInputEOS ? MediaCodec.BUFFER_FLAG_END_OF_STREAM : 0);
+                        } catch (IllegalStateException ise) {
+                            //That is all what is passed from MediaCodec in case of
+                            //decode failure.
+                            fail("Failed to decode frame at index " + frameIndex);
+                        }
+                        frameIndex++;
+                    }
+                }
+
+                int result = decoder.dequeueOutputBuffer(mBufferInfo, DEFAULT_TIMEOUT_US);
+                if (result >= 0) {
+                    int outputBufIndex = result;
+                    if ((mBufferInfo.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
+                        sawOutputEOS = true;
+                    }
+                    decoder.releaseOutputBuffer(outputBufIndex, false);
+                } else if (result == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                    mOutputBuffers = decoder.getOutputBuffers();
+                }
+            }
+            decoder.stop();
+            decoder.release();
+        } finally {
+            if (ivf != null) {
+                ivf.close();
+            }
+        }
+    }
+
+    /**
+     * A basic vp8 encode loop.
+     *
+     * MediaCodec will raise an IllegalStateException
+     * whenever vp8 encoder fails to encode a frame.
+     *
+     * In addition to that written IVF file can be tested
+     * to be decodable in order to verify the bitstream produced.
+     *
+     * Color format of input file should be YUV420, and frameWidth,
+     * frameHeight should be supplied correctly as raw input file doesn't
+     * include any header data.
+     *
+     * @param outputFilename  The name of the IVF file to write encoded bitsream
+     * @param rawInputFd      File descriptor for the raw input file (YUV420)
+     * @param frameWidth      Frame width of input file
+     * @param frameHeight     Frame height of input file
+     * @param frameRate       Frame rate of input file in frames per second
+     */
+    private void encode(String outputFilename, int rawInputFd,
+                       int frameWidth, int frameHeight, int frameRate) throws Exception {
+        int frameSize = frameWidth * frameHeight * 3 / 2;
+
+
+        // Create a media format signifying desired output
+        MediaFormat format = MediaFormat.createVideoFormat(VP8_MIME, frameWidth, frameHeight);
+        format.setInteger(MediaFormat.KEY_BIT_RATE, 100000);
+        format.setInteger(MediaFormat.KEY_COLOR_FORMAT,
+                          CodecCapabilities.COLOR_FormatYUV420Planar);
+        format.setInteger(MediaFormat.KEY_FRAME_RATE, 30);
+
+        Log.d(TAG, "Creating encoder");
+        MediaCodec encoder;
+        encoder = MediaCodec.createByCodecName(VPX_ENCODER_NAME);
+        encoder.configure(format,
+                          null,  // surface
+                          null,  // crypto
+                          MediaCodec.CONFIGURE_FLAG_ENCODE);
+        encoder.start();
+
+        mInputBuffers = encoder.getInputBuffers();
+        mOutputBuffers = encoder.getOutputBuffers();
+
+        InputStream rawStream = null;
+        IvfWriter ivf = null;
+
+        try {
+            rawStream = mResources.openRawResource(rawInputFd);
+            ivf = new IvfWriter(outputFilename, frameWidth, frameHeight);
+            // encode loop
+            long presentationTimeUs = 0;
+            int frameIndex = 0;
+            boolean sawInputEOS = false;
+            boolean sawOutputEOS = false;
+
+            while (!sawOutputEOS) {
+                if (!sawInputEOS) {
+                    int inputBufIndex = encoder.dequeueInputBuffer(DEFAULT_TIMEOUT_US);
+                    if (inputBufIndex >= 0) {
+                        byte[] frame = new byte[frameSize];
+                        int bytesRead = rawStream.read(frame);
+
+                        if (bytesRead == -1) {
+                            sawInputEOS = true;
+                            bytesRead = 0;
+                        }
+
+                        mInputBuffers[inputBufIndex].clear();
+                        mInputBuffers[inputBufIndex].put(frame);
+                        mInputBuffers[inputBufIndex].rewind();
+
+                        presentationTimeUs = (frameIndex * 1000000) / frameRate;
+                        Log.d(TAG, "Encoding frame at index " + frameIndex);
+                        encoder.queueInputBuffer(
+                                inputBufIndex,
+                                0,  // offset
+                                bytesRead,  // size
+                                presentationTimeUs,
+                                sawInputEOS ? MediaCodec.BUFFER_FLAG_END_OF_STREAM : 0);
+
+                        frameIndex++;
+                    }
+                }
+
+                int result = encoder.dequeueOutputBuffer(mBufferInfo, DEFAULT_TIMEOUT_US);
+                if (result >= 0) {
+                    int outputBufIndex = result;
+                    byte[] buffer = new byte[mBufferInfo.size];
+                    mOutputBuffers[outputBufIndex].rewind();
+                    mOutputBuffers[outputBufIndex].get(buffer, 0, mBufferInfo.size);
+
+                    if ((mBufferInfo.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) {
+                        sawOutputEOS = true;
+                    } else {
+                        ivf.writeFrame(buffer, mBufferInfo.presentationTimeUs);
+                    }
+                    encoder.releaseOutputBuffer(outputBufIndex,
+                                                false);  // render
+                } else if (result == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
+                    mOutputBuffers = encoder.getOutputBuffers();
+                }
+            }
+
+            encoder.stop();
+            encoder.release();
+        } finally {
+            if (ivf != null) {
+                ivf.close();
+            }
+
+            if (rawStream != null) {
+                rawStream.close();
+            }
+        }
+    }
+}
diff --git a/tests/tests/mediastress/src/android/mediastress/cts/SurfaceTextureRenderer.java b/tests/tests/mediastress/src/android/mediastress/cts/SurfaceTextureRenderer.java
index 4c2af8b..80beab9 100644
--- a/tests/tests/mediastress/src/android/mediastress/cts/SurfaceTextureRenderer.java
+++ b/tests/tests/mediastress/src/android/mediastress/cts/SurfaceTextureRenderer.java
@@ -127,7 +127,7 @@
         checkGlError("glEnableVertexAttribArray maPositionHandle");
 
         mVertices.position(VERTICES_DATA_UV_OFFSET);
-        GLES20.glVertexAttribPointer(maTextureHandle, 3, GLES20.GL_FLOAT, false,
+        GLES20.glVertexAttribPointer(maTextureHandle, 2, GLES20.GL_FLOAT, false,
                 VERTICES_DATA_STRIDE_BYTES, mVertices);
         checkGlError("glVertexAttribPointer maTextureHandle");
         GLES20.glEnableVertexAttribArray(maTextureHandle);
diff --git a/tests/tests/nativemedia/sl/Android.mk b/tests/tests/nativemedia/sl/Android.mk
index 85b88ca..d999b57 100644
--- a/tests/tests/nativemedia/sl/Android.mk
+++ b/tests/tests/nativemedia/sl/Android.mk
@@ -18,6 +18,7 @@
 
 LOCAL_SHARED_LIBRARIES := \
   libutils \
+  liblog \
   libOpenSLES \
   libstlport
 
diff --git a/tests/tests/nativemedia/xa/Android.mk b/tests/tests/nativemedia/xa/Android.mk
index 634bf4e..dad8acd 100644
--- a/tests/tests/nativemedia/xa/Android.mk
+++ b/tests/tests/nativemedia/xa/Android.mk
@@ -18,6 +18,7 @@
 
 LOCAL_SHARED_LIBRARIES := \
   libutils \
+  liblog \
   libOpenMAXAL \
   libstlport
 
diff --git a/tests/accessibilityservice/Android.mk b/tests/tests/nativeopengl/Android.mk
similarity index 62%
rename from tests/accessibilityservice/Android.mk
rename to tests/tests/nativeopengl/Android.mk
index f9fec93..dd19548 100644
--- a/tests/accessibilityservice/Android.mk
+++ b/tests/tests/nativeopengl/Android.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2010 The Android Open Source Project
+# Copyright 2012 The Android Open Source Project
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -16,22 +16,26 @@
 
 include $(CLEAR_VARS)
 
+LOCAL_PACKAGE_NAME := CtsNativeOpenGLTestCases
+
+# Don't include this package in any target.
 LOCAL_MODULE_TAGS := optional
 
+# When built, explicitly put it in the data partition.
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
 
-LOCAL_DEX_PREOPT := false
-
+# All tests should include android.test.runner.
 LOCAL_JAVA_LIBRARIES := android.test.runner
 
+LOCAL_STATIC_JAVA_LIBRARIES := ctstestrunner ctswrappedgtest
+
+LOCAL_JNI_SHARED_LIBRARIES := libnativeopengltests
+
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
-LOCAL_SRC_FILES += \
-  src/android/accessibilityservice/IAccessibilityServiceDelegate.aidl \
-  src/android/accessibilityservice/IAccessibilityServiceDelegateConnection.aidl
-
-LOCAL_PACKAGE_NAME := CtsDelegatingAccessibilityService
-
 LOCAL_SDK_VERSION := current
 
-include $(BUILD_PACKAGE)
+include $(BUILD_CTS_GTEST_PACKAGE)
+
+# Include the associated library's makefile.
+include $(LOCAL_PATH)/libnativeopengltests/Android.mk
diff --git a/tests/tests/nativeopengl/AndroidManifest.xml b/tests/tests/nativeopengl/AndroidManifest.xml
new file mode 100644
index 0000000..72d87ac
--- /dev/null
+++ b/tests/tests/nativeopengl/AndroidManifest.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright 2013 Google Inc.
+ *
+ * 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.
+ */
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.opengl.cts">
+
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+
+    <application>
+        <uses-library android:name="android.test.runner" />
+        <activity android:name="com.android.opengl.cts.GLTestActivity"/>
+    </application>
+
+    <!-- This is a self-instrumenting test package. -->
+    <instrumentation android:name="GLTestInstrumentation"
+                     android:targetPackage="com.android.opengl.cts"
+                     android:label="Native OpenGL tests">
+    </instrumentation>
+</manifest>
diff --git a/tests/tests/nativeopengl/libnativeopengltests/Android.mk b/tests/tests/nativeopengl/libnativeopengltests/Android.mk
new file mode 100644
index 0000000..c9e10c4
--- /dev/null
+++ b/tests/tests/nativeopengl/libnativeopengltests/Android.mk
@@ -0,0 +1,47 @@
+# Copyright 2012 The Android Open Source Project
+#
+# 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.
+
+#
+# This is the shared library included by the JNI test app.
+#
+
+LOCAL_PATH:= $(call my-dir)/../standalone/jni/
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libnativeopengltests
+
+# Don't include this package in any configuration by default.
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_C_INCLUDES := $(JNI_H_INCLUDE) \
+    bionic \
+    bionic/libstdc++/include \
+    external/gtest/include \
+    external/stlport/stlport
+
+LOCAL_SRC_FILES := \
+        register.cpp \
+        GLTestHelper.cpp \
+        tests/GLTest_test.cpp
+
+LOCAL_SHARED_LIBRARIES := libEGL \
+                          libGLESv2 \
+                          libstlport \
+                          libandroid \
+                          liblog
+
+LOCAL_STATIC_LIBRARIES := libgtest
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/tests/tests/nativeopengl/src/com/android/opengl/cts/GLTestActivity.java b/tests/tests/nativeopengl/src/com/android/opengl/cts/GLTestActivity.java
new file mode 100644
index 0000000..1633a93
--- /dev/null
+++ b/tests/tests/nativeopengl/src/com/android/opengl/cts/GLTestActivity.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2012 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package com.android.opengl.cts;
+
+import android.app.Activity;
+import android.app.Instrumentation;
+import android.content.Intent;
+import android.os.Bundle;
+import android.test.wrappedgtest.WrappedGTestActivity;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+import android.view.Surface;
+
+public class GLTestActivity extends WrappedGTestActivity {
+
+    private SurfaceView mSurfaceView;
+    private SurfaceHolder.Callback mHolderCallback = new SurfaceHolder.Callback() {
+
+        @Override
+        public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
+             setSurface(holder.getSurface());
+        }
+
+        @Override
+        public void surfaceCreated(SurfaceHolder holder) {
+             setSurface(holder.getSurface());
+        }
+
+        @Override
+        public void surfaceDestroyed(SurfaceHolder holder) {
+        }
+    };
+
+    public void onCreate(Bundle data) {
+        super.onCreate(data);
+        mSurfaceView = new SurfaceView(this);
+        mSurfaceView.getHolder().addCallback(mHolderCallback);
+        setContentView(mSurfaceView);
+        System.loadLibrary("nativeopengltests");
+    }
+
+    private static native void setSurface(Surface surface);
+}
diff --git a/suite/pts/lib/commonutil/src/com/android/pts/util/PtsException.java b/tests/tests/nativeopengl/src/com/android/opengl/cts/GLTestInstrumentation.java
similarity index 60%
rename from suite/pts/lib/commonutil/src/com/android/pts/util/PtsException.java
rename to tests/tests/nativeopengl/src/com/android/opengl/cts/GLTestInstrumentation.java
index e8ec5be..913f0eb 100644
--- a/suite/pts/lib/commonutil/src/com/android/pts/util/PtsException.java
+++ b/tests/tests/nativeopengl/src/com/android/opengl/cts/GLTestInstrumentation.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012 The Android Open Source Project
+ * Copyright 2012 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,15 +14,15 @@
  * limitations under the License.
  */
 
-package com.android.pts.util;
+package com.android.opengl.cts;
+
+import android.test.wrappedgtest.WrappedGTestInstrumentation;
 
 /**
- * Exception throw by PTS test to pass the result to host
- * This should not be thrown by test app unless the result is complete.
+ * adb shell am instrument -w com.android.opengl.cts/.GLTestInstrumentation
  */
-@SuppressWarnings("serial")
-public class PtsException extends Exception {
-    public PtsException(String message) {
-        super(message);
+public class GLTestInstrumentation extends WrappedGTestInstrumentation {
+    public GLTestInstrumentation() {
+        mActivityClass = GLTestActivity.class;
     }
 }
diff --git a/tests/tests/nativeopengl/standalone/AndroidManifest.xml b/tests/tests/nativeopengl/standalone/AndroidManifest.xml
new file mode 100644
index 0000000..a82e42a
--- /dev/null
+++ b/tests/tests/nativeopengl/standalone/AndroidManifest.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright 2013 Google Inc.
+ *
+ * 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.
+ */
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.gltest"
+    android:versionCode="1"
+    android:versionName="1.0" >
+
+    <uses-sdk
+        android:minSdkVersion="8"
+        android:targetSdkVersion="15" />
+
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+
+    <application>
+        <activity android:name=".GLTestActivity">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+
+</manifest>
diff --git a/tests/tests/nativeopengl/standalone/jni/Android.mk b/tests/tests/nativeopengl/standalone/jni/Android.mk
new file mode 100644
index 0000000..c23a1df
--- /dev/null
+++ b/tests/tests/nativeopengl/standalone/jni/Android.mk
@@ -0,0 +1,48 @@
+# Copyright 2013 The Android Open Source Project
+#
+# 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.
+#
+
+MY_LOCAL_PATH := $(call my-dir)
+MY_GTEST_PATH := $(MY_LOCAL_PATH)/../../../../../../external/gtest
+
+# gtest
+
+LOCAL_PATH := $(MY_GTEST_PATH)
+
+include $(CLEAR_VARS)
+
+LOCAL_CPP_EXTENSION := .cc
+LOCAL_MODULE := libgtest
+LOCAL_C_INCLUDES := $(MY_GTEST_PATH)/include
+LOCAL_SRC_FILES := src/gtest-all.cc
+
+include $(BUILD_SHARED_LIBRARY)
+
+# nativetests
+
+LOCAL_PATH := $(MY_LOCAL_PATH)
+
+include $(CLEAR_VARS)
+
+LIB_PATH := $(LOCAL_PATH)/../libs/$(TARGET_ARCH_ABI)/
+LOCAL_C_INCLUDES := $(MY_GTEST_PATH)/include
+LOCAL_LDLIBS    := -L$(LIB_PATH) -landroid -lEGL -lGLESv2 -llog -lgtest
+LOCAL_MODULE    := nativeopengltests
+LOCAL_SRC_FILES := GLTestHelper.cpp \
+                   register.cpp \
+                   tests/GLTest_test.cpp
+
+LOCAL_SHARE_LIBRARIES := libgtest
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/suite/pts/deviceTests/Android.mk b/tests/tests/nativeopengl/standalone/jni/Application.mk
similarity index 84%
rename from suite/pts/deviceTests/Android.mk
rename to tests/tests/nativeopengl/standalone/jni/Application.mk
index c141484..76d05a7 100644
--- a/suite/pts/deviceTests/Android.mk
+++ b/tests/tests/nativeopengl/standalone/jni/Application.mk
@@ -1,5 +1,4 @@
-#
-# Copyright (C) 2012 The Android Open Source Project
+# Copyright 2013 The Android Open Source Project
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -14,4 +13,4 @@
 # limitations under the License.
 #
 
-include $(call all-subdir-makefiles)
+APP_STL := stlport_shared
diff --git a/tests/tests/nativeopengl/standalone/jni/GLTestHelper.cpp b/tests/tests/nativeopengl/standalone/jni/GLTestHelper.cpp
new file mode 100644
index 0000000..d1f29d5
--- /dev/null
+++ b/tests/tests/nativeopengl/standalone/jni/GLTestHelper.cpp
@@ -0,0 +1,312 @@
+/*
+ * Copyright 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+#define LOG_TAG "GLTest"
+#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
+#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
+
+#include <android/log.h>
+#include <android/native_window.h>
+#include <GLTestHelper.h>
+
+// this listener is used to forward the subset of
+// gtest output needed to generate CTS results
+class CTSGTestListener : public EmptyTestEventListener {
+public:
+    CTSGTestListener(JNIEnv *env, jobject activity)
+        : mActivity(activity), mEnv(env) {
+
+        jclass clazz = env->FindClass(
+              "android/test/wrappedgtest/WrappedGTestActivity");
+        mSendStatusID = env->GetMethodID(clazz, "sendStatus",
+              "(Ljava/lang/String;)V");
+        mMessageBuffer = new char[2048];
+    }
+
+    ~CTSGTestListener() {
+        delete[] mMessageBuffer;
+    }
+
+private:
+    jobject   mActivity;
+    JNIEnv *  mEnv;
+    jmethodID mSendStatusID;
+    char *    mMessageBuffer;
+
+    virtual void OnTestIterationStart(const UnitTest& unit_test,
+            int iteration) {
+        snprintf(mMessageBuffer, sizeof(char) * 2048,
+                "[==========] Running %i tests from %i test cases.",
+                unit_test.test_to_run_count(),
+                unit_test.test_case_to_run_count());
+
+        mEnv->CallVoidMethod(mActivity, mSendStatusID,
+                mEnv->NewStringUTF(mMessageBuffer));
+    }
+
+    virtual void OnTestStart(const TestInfo& test_info) {
+        snprintf(mMessageBuffer, sizeof(char) * 2048, "[ RUN      ] %s.%s",
+                test_info.test_case_name(), test_info.name());
+
+        mEnv->CallVoidMethod(mActivity, mSendStatusID,
+                mEnv->NewStringUTF(mMessageBuffer));
+    }
+
+    virtual void OnTestPartResult(const TestPartResult& result) {
+        if (result.type() == TestPartResult::kSuccess) {
+            return;
+        }
+
+        snprintf(mMessageBuffer, sizeof(char) * 2048, "%s:%i: Failure\n%s",
+                result.file_name(), result.line_number(), result.message());
+
+        mEnv->CallVoidMethod(mActivity, mSendStatusID,
+                mEnv->NewStringUTF(mMessageBuffer));
+    }
+
+    virtual void OnTestEnd(const TestInfo& test_info) {
+        const char * result = test_info.result()->Passed() ?
+                "[       OK ] " : "[  FAILED  ] ";
+
+        snprintf(mMessageBuffer, sizeof(char) * 2048, "%s%s.%s (%lli ms)",
+                result, test_info.test_case_name(), test_info.name(),
+                test_info.result()->elapsed_time());
+
+        mEnv->CallVoidMethod(mActivity, mSendStatusID,
+                mEnv->NewStringUTF(mMessageBuffer));
+    }
+
+    virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration) {
+        snprintf(mMessageBuffer, sizeof(char) * 2048,
+                "[==========] %i tests from %i test cases ran. (%lli ms total)",
+                unit_test.test_to_run_count(),
+                unit_test.test_case_to_run_count(), unit_test.elapsed_time());
+
+        mEnv->CallVoidMethod(mActivity, mSendStatusID,
+                mEnv->NewStringUTF(mMessageBuffer));
+    }
+};
+
+// this listener is similar to the default gtest listener
+// but it outputs the results to the log instead of stdout
+class LogGTestListener : public EmptyTestEventListener {
+
+private:
+    virtual void OnTestIterationStart(const UnitTest& unit_test,
+            int iteration) {
+        LOGI("[==========] Running %i tests from %i test cases.\n",
+                unit_test.test_to_run_count(),
+                unit_test.test_case_to_run_count());
+    }
+
+    virtual void OnEnvironmentsSetUpStart(const UnitTest& unit_test) {
+        LOGI("[==========] Global test environment set-up.\n");
+    }
+
+    virtual void OnTestCaseStart(const TestCase& test_case) {
+        LOGI("[----------] %i tests from %s\n",
+                test_case.test_to_run_count(),
+                test_case.name());
+
+    }
+
+    virtual void OnTestStart(const TestInfo& test_info) {
+        LOGI("[ RUN      ] %s.%s\n", test_info.test_case_name(),
+                test_info.name());
+
+    }
+
+    virtual void OnTestPartResult(const TestPartResult& result) {
+        if (result.type() == TestPartResult::kSuccess) {
+            return;
+        }
+
+        LOGI("%s:%i: Failure\n%s\n", result.file_name(), result.line_number(),
+                result.message());
+    }
+
+    virtual void OnTestEnd(const TestInfo& test_info) {
+        const char * result = test_info.result()->Passed() ?
+                "[       OK ] " : "[  FAILED  ] ";
+
+        LOGI("%s%s.%s (%lli ms)\n", result, test_info.test_case_name(),
+                test_info.name(), test_info.result()->elapsed_time());
+    }
+
+
+    virtual void OnTestCaseEnd(const TestCase& test_case) {
+        LOGI("[----------] %i tests from %s (%lli ms total)\n",
+                test_case.test_to_run_count(), test_case.name(),
+                test_case.elapsed_time());
+
+    }
+
+    virtual void OnEnvironmentsTearDownStart(const UnitTest& unit_test) {
+        LOGI("[==========] Global test environment tear-down.\n");
+    }
+
+    void PrintFailedTests(const UnitTest& unit_test) {
+        const int failed_test_count = unit_test.failed_test_count();
+        if (failed_test_count == 0) {
+            return;
+        }
+
+        for (int i = 0; i < unit_test.total_test_case_count(); ++i) {
+            const TestCase& test_case = *unit_test.GetTestCase(i);
+
+            if (!test_case.should_run() || test_case.failed_test_count() == 0) {
+                continue;
+            }
+
+            for (int j = 0; j < test_case.total_test_count(); ++j) {
+                const TestInfo& test_info = *test_case.GetTestInfo(j);
+                if (!test_info.should_run() || test_info.result()->Passed()) {
+                    continue;
+                }
+                LOGI("[  FAILED  ] %s.%s\n", test_case.name(),
+                        test_info.name());
+            }
+        }
+    }
+    virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration) {
+        LOGI("[==========] %i tests from %i test cases ran. (%lli ms total)\n",
+                unit_test.test_to_run_count(),
+                unit_test.test_case_to_run_count(), unit_test.elapsed_time());
+
+        LOGI("[  PASSED  ] %i tests\n", unit_test.successful_test_count());
+
+        if(unit_test.Passed()) {
+            return;
+        }
+
+        LOGI("[  FAILED  ] %i tests, listed below:\n",
+                unit_test.failed_test_count());
+
+        PrintFailedTests(unit_test);
+
+        LOGI("\n%2d FAILED TESTS\n", unit_test.failed_test_count());
+    }
+};
+
+ANativeWindow* GLTestHelper::mWindow;
+
+ANativeWindow* GLTestHelper::getWindow() {
+    return mWindow;
+}
+
+void GLTestHelper::setWindow(JNIEnv *env, jobject obj, jobject surface) {
+    mWindow = ANativeWindow_fromSurface(env, surface);
+}
+
+int GLTestHelper::runGTests(TestEventListener * listener, char * filter) {
+
+    if (filter) {
+        ::testing::GTEST_FLAG(filter) = filter;
+    }
+
+    int argc = 0;
+    InitGoogleTest(&argc, (char**)NULL);
+
+    TestEventListeners& listeners = UnitTest::GetInstance()->listeners();
+    delete listeners.Release(listeners.default_result_printer());
+
+    listeners.Append(listener);
+    int result = RUN_ALL_TESTS();
+    return result;
+}
+
+int GLTestHelper::runTests(JNIEnv *env, jobject obj, jstring filter) {
+    LogGTestListener * listener = new LogGTestListener();
+
+    char * filter_cstr = NULL;
+
+    // set filter if there is one
+    if (filter) {
+       filter_cstr = new char[512];
+       const char * ptr = env->GetStringUTFChars(filter, NULL);
+       snprintf(filter_cstr, sizeof(char) * 512, "%s", ptr);
+       env->ReleaseStringUTFChars(filter, ptr);
+    }
+
+    int result = runGTests(listener, filter_cstr);
+
+    if (filter_cstr) {
+        delete[] filter_cstr;
+    }
+
+    delete listener;
+    return result;
+}
+
+int GLTestHelper::runTestsCTS(JNIEnv *env, jobject obj, jobject activity) {
+    CTSGTestListener * listener = new CTSGTestListener(env, activity);
+    int result = runGTests(listener, NULL);
+    delete listener;
+    return result;
+}
+
+int GLTestHelper::registerNative(JNIEnv * env) {
+
+    jclass clazz = env->FindClass("com/android/opengl/cts/GLTestActivity");
+
+    jthrowable exception = env->ExceptionOccurred();
+    // CTS class not found, assume stand-alone application
+    if (exception) {
+        env->ExceptionClear();
+
+        if (!env->IsInstanceOf(env->ExceptionOccurred(),
+                    env->FindClass("java/lang/NoClassDefFoundError"))) {
+            env->Throw(exception);
+        }
+
+        //
+        JNINativeMethod standaloneMethods[] = {
+            // name, signature, function
+            { "setSurface", "(Landroid/view/Surface;)V", (void*)(GLTestHelper::setWindow) },
+            { "runTests", "(Ljava/lang/String;)V", (void*)(GLTestHelper::runTests) },
+        };
+
+        return env->RegisterNatives(
+                env->FindClass("com/android/gltest/GLTestActivity"),
+                standaloneMethods,
+                sizeof(standaloneMethods) / sizeof(JNINativeMethod));
+    }
+
+    // GLTestActivity methods
+    JNINativeMethod glTestActMethods[] = {
+        // name, signature, function
+        { "setSurface", "(Landroid/view/Surface;)V", (void*)(GLTestHelper::setWindow) },
+    };
+
+    int result = env->RegisterNatives(clazz, glTestActMethods,
+                         sizeof(glTestActMethods) / sizeof(JNINativeMethod));
+
+    if (result) {
+        return result;
+    }
+
+    // WrappedGTestActivity methods
+    JNINativeMethod wrappedGTestActMethods[] = {
+        // name, signature, function
+        { "runTests", "(Landroid/test/wrappedgtest/WrappedGTestActivity;)I",
+            (void*)(GLTestHelper::runTestsCTS) },
+    };
+
+    return env->RegisterNatives(
+            env->FindClass("android/test/wrappedgtest/WrappedGTestActivity"),
+            wrappedGTestActMethods,
+            sizeof(wrappedGTestActMethods) / sizeof(JNINativeMethod));
+}
diff --git a/tests/tests/nativeopengl/standalone/jni/GLTestHelper.h b/tests/tests/nativeopengl/standalone/jni/GLTestHelper.h
new file mode 100644
index 0000000..d09d2f1
--- /dev/null
+++ b/tests/tests/nativeopengl/standalone/jni/GLTestHelper.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+#ifndef ANDROID_GL_TEST_HELPER_H
+#define ANDROID_GL_TEST_HELPER_H
+
+#include <android/native_window_jni.h>
+#include <gtest/gtest.h>
+
+using namespace testing;
+
+class GLTestHelper
+{
+private:
+    static ANativeWindow* mWindow;
+    static int runGTests(TestEventListener* listener, char * filter);
+    static int runTests(JNIEnv* env, jobject obj, jstring filter);
+    static int runTestsCTS(JNIEnv* env, jobject obj, jobject activity);
+public:
+    static ANativeWindow* getWindow();
+    static void setWindow(JNIEnv* env, jobject obj, jobject surface);
+    static int registerNative(JNIEnv* env);
+};
+
+
+
+#endif // ANDROID_GL_TEST_HELPER_H
diff --git a/tests/tests/nativeopengl/standalone/jni/register.cpp b/tests/tests/nativeopengl/standalone/jni/register.cpp
new file mode 100644
index 0000000..8dd14ed
--- /dev/null
+++ b/tests/tests/nativeopengl/standalone/jni/register.cpp
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+#include <jni.h>
+#include <GLTestHelper.h>
+
+/*
+ * This function is called automatically by the system when this
+ * library is loaded. We use it to register all our native functions,
+ * which is the recommended practice for Android.
+ */
+jint JNI_OnLoad(JavaVM *vm, void *reserved) {
+    JNIEnv *env = NULL;
+
+    if (vm->GetEnv((void **) &env, JNI_VERSION_1_4) != JNI_OK) {
+        return JNI_ERR;
+    }
+
+    if (GLTestHelper::registerNative(env)) {
+        return JNI_ERR;
+    }
+
+    return JNI_VERSION_1_4;
+}
diff --git a/tests/tests/nativeopengl/standalone/jni/tests/GLTest_test.cpp b/tests/tests/nativeopengl/standalone/jni/tests/GLTest_test.cpp
new file mode 100644
index 0000000..5df090d
--- /dev/null
+++ b/tests/tests/nativeopengl/standalone/jni/tests/GLTest_test.cpp
@@ -0,0 +1,198 @@
+/*
+ * Copyright 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+
+#include <android/native_window.h>
+
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+
+#include <gtest/gtest.h>
+
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
+
+#include <GLTestHelper.h>
+
+
+namespace android {
+
+class GLTest : public ::testing::Test {
+
+protected:
+
+    GLTest():
+            mEglDisplay(EGL_NO_DISPLAY),
+            mEglSurface(EGL_NO_SURFACE),
+            mEglContext(EGL_NO_CONTEXT) {
+    }
+
+
+   virtual void SetUp() {
+        mEglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+        ASSERT_EQ(EGL_SUCCESS, eglGetError());
+        ASSERT_NE(EGL_NO_DISPLAY, mEglDisplay);
+
+        EGLint majorVersion;
+        EGLint minorVersion;
+        EXPECT_TRUE(eglInitialize(mEglDisplay, &majorVersion, &minorVersion));
+        ASSERT_EQ(EGL_SUCCESS, eglGetError());
+
+        EGLint numConfigs = 0;
+        EXPECT_TRUE(eglChooseConfig(mEglDisplay, getConfigAttribs(), &mGlConfig,
+                1, &numConfigs));
+        ASSERT_EQ(EGL_SUCCESS, eglGetError());
+
+        char* displaySecsEnv = getenv("GLTEST_DISPLAY_SECS");
+        if (displaySecsEnv != NULL) {
+            mDisplaySecs = atoi(displaySecsEnv);
+            if (mDisplaySecs < 0) {
+                mDisplaySecs = 0;
+            }
+        } else {
+            mDisplaySecs = 0;
+        }
+
+        if (mDisplaySecs > 0) {
+            mEglSurface = eglCreateWindowSurface(mEglDisplay, mGlConfig,
+                    GLTestHelper::getWindow(), NULL);
+        } else {
+            EGLint pbufferAttribs[] = {
+                EGL_WIDTH, getSurfaceWidth(),
+                EGL_HEIGHT, getSurfaceHeight(),
+                EGL_NONE };
+
+            mEglSurface = eglCreatePbufferSurface(mEglDisplay, mGlConfig,
+                    pbufferAttribs);
+        }
+        ASSERT_EQ(EGL_SUCCESS, eglGetError());
+        ASSERT_NE(EGL_NO_SURFACE, mEglSurface);
+
+        mEglContext = eglCreateContext(mEglDisplay, mGlConfig, EGL_NO_CONTEXT,
+                getContextAttribs());
+        ASSERT_EQ(EGL_SUCCESS, eglGetError());
+        ASSERT_NE(EGL_NO_CONTEXT, mEglContext);
+
+        EXPECT_TRUE(eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface,
+                mEglContext));
+        ASSERT_EQ(EGL_SUCCESS, eglGetError());
+
+        EGLint w, h;
+        EXPECT_TRUE(eglQuerySurface(mEglDisplay, mEglSurface, EGL_WIDTH, &w));
+        ASSERT_EQ(EGL_SUCCESS, eglGetError());
+        EXPECT_TRUE(eglQuerySurface(mEglDisplay, mEglSurface, EGL_HEIGHT, &h));
+        ASSERT_EQ(EGL_SUCCESS, eglGetError());
+
+        glViewport(0, 0, w, h);
+        ASSERT_EQ(GLenum(GL_NO_ERROR), glGetError());
+    }
+
+    virtual void TearDown() {
+        // Display the result
+        if (mDisplaySecs > 0 && mEglSurface != EGL_NO_SURFACE) {
+            eglSwapBuffers(mEglDisplay, mEglSurface);
+            sleep(mDisplaySecs);
+        }
+
+        if (mEglContext != EGL_NO_CONTEXT) {
+            eglDestroyContext(mEglDisplay, mEglContext);
+        }
+        if (mEglSurface != EGL_NO_SURFACE) {
+            eglDestroySurface(mEglDisplay, mEglSurface);
+        }
+        if (mEglDisplay != EGL_NO_DISPLAY) {
+            eglMakeCurrent(mEglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE,
+                    EGL_NO_CONTEXT);
+            eglTerminate(mEglDisplay);
+        }
+        ASSERT_EQ(EGL_SUCCESS, eglGetError());
+    }
+
+    virtual EGLint const* getConfigAttribs() {
+        static EGLint sDefaultConfigAttribs[] = {
+            EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
+            EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+            EGL_RED_SIZE, 8,
+            EGL_GREEN_SIZE, 8,
+            EGL_BLUE_SIZE, 8,
+            EGL_ALPHA_SIZE, 8,
+            EGL_DEPTH_SIZE, 16,
+            EGL_STENCIL_SIZE, 8,
+            EGL_NONE };
+
+        return sDefaultConfigAttribs;
+    }
+
+    virtual EGLint const* getContextAttribs() {
+        static EGLint sDefaultContextAttribs[] = {
+            EGL_CONTEXT_CLIENT_VERSION, 2,
+            EGL_NONE };
+
+        return sDefaultContextAttribs;
+    }
+
+    virtual EGLint getSurfaceWidth() {
+        return 512;
+    }
+
+    virtual EGLint getSurfaceHeight() {
+        return 512;
+    }
+
+    bool checkPixel(GLubyte * actual, GLubyte * expected, int tolerance) {
+        for (int i = 0; i < 4; i++) {
+            if (abs(actual[i] - expected[i]) > tolerance) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    ::testing::AssertionResult AssertPixel(const char* a_expr,
+            const char* e_expr, const char* t_expr, GLubyte * actual,
+            GLubyte * expected, int tolerance) {
+
+        if (checkPixel(actual, expected, tolerance)) {
+            return ::testing::AssertionSuccess();
+        }
+
+        return ::testing::AssertionFailure()
+            << "Pixel comparison failed with tolerance " << tolerance << "\n"
+            << "Actual: r=" << (int)actual[0] << " g=" << (int)actual[1]
+            << " b=" << (int)actual[2] << " a=" << (int)actual[3] << "\n"
+            << "Expected: r=" << (int)expected[0] << " g=" << (int)expected[1]
+            << " b=" << (int)expected[2] << " a=" << (int)expected[3] << "\n";
+    }
+
+    int mDisplaySecs;
+
+    EGLDisplay mEglDisplay;
+    EGLSurface mEglSurface;
+    EGLContext mEglContext;
+    EGLConfig  mGlConfig;
+};
+
+TEST_F(GLTest, ClearColorTest) {
+    glClearColor(0.2, 0.2, 0.2, 0.2);
+    glClear(GL_COLOR_BUFFER_BIT);
+    GLubyte expected[4] = { 51, 51, 51, 51 };
+    GLubyte pixel[4];
+    glReadPixels(0, 0, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, pixel);
+    ASSERT_EQ(GLenum(GL_NO_ERROR), glGetError());
+    ASSERT_PRED_FORMAT3(AssertPixel, pixel, expected, 2);
+}
+
+} // namespace android
diff --git a/tests/tests/nativeopengl/standalone/src/com/android/gltest/GLTestActivity.java b/tests/tests/nativeopengl/standalone/src/com/android/gltest/GLTestActivity.java
new file mode 100644
index 0000000..3c1e2af
--- /dev/null
+++ b/tests/tests/nativeopengl/standalone/src/com/android/gltest/GLTestActivity.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+package com.android.gltest;
+
+import android.app.Activity;
+import android.app.KeyguardManager;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.Bundle;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+import android.view.Surface;
+
+public class GLTestActivity extends Activity {
+
+    private class TestThread extends Thread {
+
+        public void run() {
+            // it is possible to set the GTest filter flag from here
+            // for example "GLTest.ClearColorTest" to run that specific test only
+            runTests(null);
+
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException e) {
+            }
+
+            finish();
+            System.exit(0);
+        }
+    }
+
+    private SurfaceView mSurfaceView;
+
+    private SurfaceHolder.Callback mHolderCallback = new SurfaceHolder.Callback() {
+
+        public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
+            setSurface(holder.getSurface());
+        }
+
+        public void surfaceCreated(SurfaceHolder holder) {
+            setSurface(holder.getSurface());
+            Thread t = new TestThread();
+            t.start();
+        }
+
+        public void surfaceDestroyed(SurfaceHolder holder) {
+        }
+    };
+
+    @SuppressWarnings("deprecation")
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        if (checkCallingOrSelfPermission(android.Manifest.permission.DISABLE_KEYGUARD)
+                == PackageManager.PERMISSION_GRANTED) {
+            KeyguardManager keyguardManager =
+                (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
+            keyguardManager.newKeyguardLock("gltest").disableKeyguard();
+        }
+
+        super.onCreate(savedInstanceState);
+
+        mSurfaceView = new SurfaceView(this);
+        mSurfaceView.getHolder().addCallback(mHolderCallback);
+        setContentView(mSurfaceView);
+        System.loadLibrary("stlport_shared");
+        System.loadLibrary("gtest");
+        System.loadLibrary("nativeopengltests");
+    }
+
+    private static native void setSurface(Surface surface);
+    private static native void runTests(String filter);
+}
diff --git a/tests/tests/net/Android.mk b/tests/tests/net/Android.mk
index b327392..a6543b3 100644
--- a/tests/tests/net/Android.mk
+++ b/tests/tests/net/Android.mk
@@ -21,7 +21,9 @@
 # and when built explicitly put it in the data partition
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
 
-LOCAL_JAVA_LIBRARIES := android.test.runner
+LOCAL_JAVA_LIBRARIES := android.test.runner voip-common
+
+LOCAL_JNI_SHARED_LIBRARIES := libnativedns_jni
 
 # include CtsTestServer as a temporary hack to free net.cts from cts.stub.
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
@@ -34,3 +36,5 @@
 #LOCAL_SDK_VERSION := current
 
 include $(BUILD_CTS_PACKAGE)
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/suite/pts/deviceTests/dram/jni/Android.mk b/tests/tests/net/jni/Android.mk
similarity index 72%
copy from suite/pts/deviceTests/dram/jni/Android.mk
copy to tests/tests/net/jni/Android.mk
index a3dc698..75982de 100644
--- a/suite/pts/deviceTests/dram/jni/Android.mk
+++ b/tests/tests/net/jni/Android.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2012 The Android Open Source Project
+# Copyright (C) 2013 The Android Open Source Project
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -11,21 +11,20 @@
 # 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.
-#
-LOCAL_PATH := $(call my-dir)
+
+LOCAL_PATH:= $(call my-dir)
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE    := libptsdram_jni
+LOCAL_MODULE := libnativedns_jni
 
+# Don't include this package in any configuration by default.
 LOCAL_MODULE_TAGS := optional
 
-LOCAL_SRC_FILES := MemoryNativeJni.cpp
+LOCAL_SRC_FILES := NativeDnsJni.c
 
 LOCAL_C_INCLUDES := $(JNI_H_INCLUDE)
 
-LOCAL_SHARED_LIBRARIES := libnativehelper
-
-LOCAL_SDK_VERSION := 14
+LOCAL_SHARED_LIBRARIES := libnativehelper liblog
 
 include $(BUILD_SHARED_LIBRARY)
diff --git a/tests/tests/net/jni/NativeDnsJni.c b/tests/tests/net/jni/NativeDnsJni.c
new file mode 100644
index 0000000..de9bb67
--- /dev/null
+++ b/tests/tests/net/jni/NativeDnsJni.c
@@ -0,0 +1,166 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * 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.
+ */
+
+#include <arpa/inet.h>
+#include <jni.h>
+#include <netdb.h>
+#include <stdio.h>
+#include <utils/Log.h>
+
+JNIEXPORT jboolean Java_android_net_cts_DnsTest_testNativeDns(JNIEnv* env, jclass class)
+{
+    const char *node = "www.google.com";
+    char *service = NULL;
+    struct addrinfo *answer;
+
+    int res = getaddrinfo(node, service, NULL, &answer);
+    ALOGD("getaddrinfo(www.google.com) gave res=%d (%s)", res, gai_strerror(res));
+    if (res != 0) return JNI_FALSE;
+
+    // check for v4 & v6
+    {
+        int foundv4 = 0;
+        int foundv6 = 0;
+        struct addrinfo *current = answer;
+        while (current != NULL) {
+            char buf[256];
+            if (current->ai_addr->sa_family == AF_INET) {
+                inet_ntop(current->ai_family, &((struct sockaddr_in *)current->ai_addr)->sin_addr,
+                        buf, sizeof(buf));
+                foundv4 = 1;
+                ALOGD("  %s", buf);
+            } else if (current->ai_addr->sa_family == AF_INET6) {
+                inet_ntop(current->ai_family, &((struct sockaddr_in6 *)current->ai_addr)->sin6_addr,
+                        buf, sizeof(buf));
+                foundv6 = 1;
+                ALOGD("  %s", buf);
+            }
+            current = current->ai_next;
+        }
+
+        freeaddrinfo(answer);
+        answer = NULL;
+        if (foundv4 != 1 || foundv6 != 1) {
+            ALOGD("getaddrinfo(www.google.com) didn't find both v4 and v6");
+            return JNI_FALSE;
+        }
+    }
+
+    node = "ipv6.google.com";
+    res = getaddrinfo(node, service, NULL, &answer);
+    ALOGD("getaddrinfo(ipv6.google.com) gave res=%d", res);
+    if (res != 0) return JNI_FALSE;
+
+    {
+        int foundv4 = 0;
+        int foundv6 = 0;
+        struct addrinfo *current = answer;
+        while (current != NULL) {
+            char buf[256];
+            if (current->ai_addr->sa_family == AF_INET) {
+                inet_ntop(current->ai_family, &((struct sockaddr_in *)current->ai_addr)->sin_addr,
+                        buf, sizeof(buf));
+                ALOGD("  %s", buf);
+                foundv4 = 1;
+            } else if (current->ai_addr->sa_family == AF_INET6) {
+                inet_ntop(current->ai_family, &((struct sockaddr_in6 *)current->ai_addr)->sin6_addr,
+                        buf, sizeof(buf));
+                ALOGD("  %s", buf);
+                foundv6 = 1;
+            }
+            current = current->ai_next;
+        }
+
+        freeaddrinfo(answer);
+        answer = NULL;
+        if (foundv4 == 1 || foundv6 != 1) {
+            ALOGD("getaddrinfo(ipv6.google.com) didn't find only v6");
+            return JNI_FALSE;
+        }
+    }
+
+    // getnameinfo
+    struct sockaddr_in sa4;
+    sa4.sin_family = AF_INET;
+    sa4.sin_port = 0;
+    inet_pton(AF_INET, "173.252.110.27", &(sa4.sin_addr));
+
+    struct sockaddr_in6 sa6;
+    sa6.sin6_family = AF_INET6;
+    sa6.sin6_port = 0;
+    sa6.sin6_flowinfo = 0;
+    sa6.sin6_scope_id = 0;
+    inet_pton(AF_INET6, "2001:4860:4001:802::1008", &(sa6.sin6_addr));
+
+    char buf[NI_MAXHOST];
+    int flags = NI_NAMEREQD;
+
+    res = getnameinfo((const struct sockaddr*)&sa4, sizeof(sa4), buf, sizeof(buf), NULL, 0, flags);
+    if (res != 0) {
+        ALOGD("getnameinfo(173.252.110.27 (facebook) ) gave error %d (%s)", res, gai_strerror(res));
+        return JNI_FALSE;
+    }
+    if (strstr(buf, "facebook.com") == NULL) {
+        ALOGD("getnameinfo(173.252.110.27 (facebook) ) didn't return facebook.com: %s", buf);
+        return JNI_FALSE;
+    }
+
+    memset(buf, sizeof(buf), 0);
+    res = getnameinfo((const struct sockaddr*)&sa6, sizeof(sa6), buf, sizeof(buf),
+            NULL, 0, flags);
+    if (res != 0) {
+        ALOGD("getnameinfo(2a03:2880:2110:df01:face:b00c::8 (facebook) ) gave error %d (%s)",
+                res, gai_strerror(res));
+        return JNI_FALSE;
+    }
+    if (strstr(buf, "1e100.net") == NULL) {
+        ALOGD("getnameinfo(2a03:2880:2110:df01:face:b00c::8) didn't return facebook.com: %s", buf);
+        return JNI_FALSE;
+    }
+
+    // gethostbyname
+    struct hostent *my_hostent = gethostbyname("www.mit.edu");
+    if (my_hostent == NULL) {
+        ALOGD("gethostbyname(www.mit.edu) gave null response");
+        return JNI_FALSE;
+    }
+    if ((my_hostent->h_addr_list == NULL) || (*my_hostent->h_addr_list == NULL)) {
+        ALOGD("gethostbyname(www.mit.edu) gave 0 addresses");
+        return JNI_FALSE;
+    }
+    {
+        char **current = my_hostent->h_addr_list;
+        while (*current != NULL) {
+            char buf[256];
+            inet_ntop(my_hostent->h_addrtype, *current, buf, sizeof(buf));
+            ALOGD("gethostbyname(www.mit.edu) gave %s", buf);
+            current++;
+        }
+    }
+
+    // gethostbyaddr
+    char addr6[16];
+    inet_pton(AF_INET6, "2001:4b10:bbc::2", addr6);
+    my_hostent = gethostbyaddr(addr6, sizeof(addr6), AF_INET6);
+    if (my_hostent == NULL) {
+        ALOGD("gethostbyaddr(2001:4b10:bbc::2 (bbc) ) gave null response");
+        return JNI_FALSE;
+    }
+    ALOGD("gethostbyaddr(2001:4b10:bbc::2 (bbc) ) gave %s for name",
+    my_hostent->h_name ? my_hostent->h_name : "null");
+    if (my_hostent->h_name == NULL) return JNI_FALSE;
+    return JNI_TRUE;
+}
diff --git a/tests/tests/net/src/android/net/cts/ConnectivityManagerTest.java b/tests/tests/net/src/android/net/cts/ConnectivityManagerTest.java
index 4fa69a8..d4bff12 100644
--- a/tests/tests/net/src/android/net/cts/ConnectivityManagerTest.java
+++ b/tests/tests/net/src/android/net/cts/ConnectivityManagerTest.java
@@ -23,6 +23,7 @@
 import android.content.IntentFilter;
 import android.content.pm.PackageManager;
 import android.net.ConnectivityManager;
+import android.net.NetworkConfig;
 import android.net.NetworkInfo;
 import android.net.NetworkInfo.DetailedState;
 import android.net.NetworkInfo.State;
@@ -30,7 +31,10 @@
 import android.test.AndroidTestCase;
 import android.util.Log;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
@@ -51,6 +55,9 @@
     private ConnectivityManager mCm;
     private WifiManager mWifiManager;
     private PackageManager mPackageManager;
+    private final HashMap<Integer, NetworkConfig> mNetworks =
+            new HashMap<Integer, NetworkConfig>();
+    private final List<Integer>mProtectedNetworks = new ArrayList<Integer>();
 
     @Override
     protected void setUp() throws Exception {
@@ -58,45 +65,124 @@
         mCm = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
         mWifiManager = (WifiManager) getContext().getSystemService(Context.WIFI_SERVICE);
         mPackageManager = getContext().getPackageManager();
-    }
 
-    public void testGetNetworkInfo() {
-        assertTrue(mCm.getAllNetworkInfo().length >= MIN_NUM_NETWORK_TYPES);
-        NetworkInfo ni = mCm.getNetworkInfo(TYPE_WIFI);
-        if (ni != null) {
-            State state = ni.getState();
-            assertTrue(State.UNKNOWN.ordinal() >= state.ordinal()
-                       && state.ordinal() >= State.CONNECTING.ordinal());
-            DetailedState ds = ni.getDetailedState();
-            assertTrue(DetailedState.FAILED.ordinal() >= ds.ordinal()
-                       && ds.ordinal() >= DetailedState.IDLE.ordinal());
+        String[] naStrings = getContext().getResources().getStringArray(
+                com.android.internal.R.array.networkAttributes);
+        for (String naString : naStrings) {
+            try {
+                NetworkConfig n = new NetworkConfig(naString);
+                mNetworks.put(n.type, n);
+            } catch (Exception e) {}
         }
-        ni = mCm.getNetworkInfo(TYPE_MOBILE);
-        if (ni != null) {
-            State state = ni.getState();
-            assertTrue(State.UNKNOWN.ordinal() >= state.ordinal()
-                    && state.ordinal() >= State.CONNECTING.ordinal());
-            DetailedState ds = ni.getDetailedState();
-            assertTrue(DetailedState.FAILED.ordinal() >= ds.ordinal()
-                    && ds.ordinal() >= DetailedState.IDLE.ordinal());
+
+        int[] protectedNetworks = getContext().getResources().getIntArray(
+                com.android.internal.R.array.config_protectedNetworks);
+        for (int p : protectedNetworks) {
+            mProtectedNetworks.add(p);
         }
-        ni = mCm.getNetworkInfo(-1);
-        assertNull(ni);
     }
 
     public void testIsNetworkTypeValid() {
+        assertTrue(ConnectivityManager.isNetworkTypeValid(ConnectivityManager.TYPE_MOBILE));
+        assertTrue(ConnectivityManager.isNetworkTypeValid(ConnectivityManager.TYPE_WIFI));
+        assertTrue(ConnectivityManager.isNetworkTypeValid(ConnectivityManager.TYPE_MOBILE_MMS));
+        assertTrue(ConnectivityManager.isNetworkTypeValid(ConnectivityManager.TYPE_MOBILE_SUPL));
+        assertTrue(ConnectivityManager.isNetworkTypeValid(ConnectivityManager.TYPE_MOBILE_DUN));
+        assertTrue(ConnectivityManager.isNetworkTypeValid(ConnectivityManager.TYPE_MOBILE_HIPRI));
+        assertTrue(ConnectivityManager.isNetworkTypeValid(ConnectivityManager.TYPE_WIMAX));
+        assertTrue(ConnectivityManager.isNetworkTypeValid(ConnectivityManager.TYPE_BLUETOOTH));
+        assertTrue(ConnectivityManager.isNetworkTypeValid(ConnectivityManager.TYPE_DUMMY));
+        assertTrue(ConnectivityManager.isNetworkTypeValid(ConnectivityManager.TYPE_ETHERNET));
+        assertTrue(mCm.isNetworkTypeValid(ConnectivityManager.TYPE_MOBILE_FOTA));
+        assertTrue(mCm.isNetworkTypeValid(ConnectivityManager.TYPE_MOBILE_IMS));
+        assertTrue(mCm.isNetworkTypeValid(ConnectivityManager.TYPE_MOBILE_CBS));
+        assertTrue(mCm.isNetworkTypeValid(ConnectivityManager.TYPE_WIFI_P2P));
+        assertFalse(mCm.isNetworkTypeValid(-1));
+        assertTrue(mCm.isNetworkTypeValid(0));
+        assertTrue(mCm.isNetworkTypeValid(ConnectivityManager.MAX_NETWORK_TYPE));
+        assertFalse(ConnectivityManager.isNetworkTypeValid(ConnectivityManager.MAX_NETWORK_TYPE+1));
 
         NetworkInfo[] ni = mCm.getAllNetworkInfo();
 
-        for (NetworkInfo n : ni) {
+        for (NetworkInfo n: ni) {
             assertTrue(ConnectivityManager.isNetworkTypeValid(n.getType()));
         }
-        assertFalse(ConnectivityManager.isNetworkTypeValid(-1));
+
+    }
+
+    public void testSetNetworkPreference() {
+        // verify swtiching between two default networks - need to connectable networks though
+        // could use test and whatever the current active network is
+        int originalPref = mCm.getNetworkPreference();
+        int currentPref = originalPref;
+        for (int type = -1; type <= ConnectivityManager.MAX_NETWORK_TYPE+1; type++) {
+            mCm.setNetworkPreference(type);
+            NetworkConfig c = mNetworks.get(type);
+            boolean expectWorked = (c != null && c.isDefault());
+            int totalSleep = 0;
+            int foundType = ConnectivityManager.TYPE_NONE;
+            while (totalSleep < 1000) {
+                try {
+                    Thread.currentThread().sleep(100);
+                } catch (InterruptedException e) {}
+                totalSleep += 100;
+                foundType = mCm.getNetworkPreference();
+                if (currentPref != foundType) break;
+            }
+            if (expectWorked) {
+                assertTrue("We should have been able to switch prefered type " + type,
+                        foundType == type);
+            } else {
+                assertTrue("We should not have been able to switch type " + type,
+                        foundType != type);
+            }
+            currentPref = foundType;
+        }
+        mCm.setNetworkPreference(originalPref);
+    }
+
+    public void testGetActiveNetworkInfo() {
+        NetworkInfo ni = mCm.getActiveNetworkInfo();
+
+        assertTrue("You must have an active network connection to complete CTS", ni != null);
+        assertTrue(ConnectivityManager.isNetworkTypeValid(ni.getType()));
+        assertTrue(ni.getState() == State.CONNECTED);
+    }
+
+    public void testGetNetworkInfo() {
+        for (int type = -1; type <= ConnectivityManager.MAX_NETWORK_TYPE+1; type++) {
+            if (isSupported(type)) {
+                NetworkInfo ni = mCm.getNetworkInfo(type);
+                assertTrue("Info shouldn't be null for " + type, ni != null);
+                State state = ni.getState();
+                assertTrue("Bad state for " + type, State.UNKNOWN.ordinal() >= state.ordinal()
+                           && state.ordinal() >= State.CONNECTING.ordinal());
+                DetailedState ds = ni.getDetailedState();
+                assertTrue("Bad detailed state for " + type,
+                           DetailedState.FAILED.ordinal() >= ds.ordinal()
+                           && ds.ordinal() >= DetailedState.IDLE.ordinal());
+            } else {
+                assertNull("Info should be null for " + type, mCm.getNetworkInfo(type));
+            }
+        }
     }
 
     public void testGetAllNetworkInfo() {
         NetworkInfo[] ni = mCm.getAllNetworkInfo();
         assertTrue(ni.length >= MIN_NUM_NETWORK_TYPES);
+        for (int type = 0; type <= ConnectivityManager.MAX_NETWORK_TYPE; type++) {
+            int desiredFoundCount = (isSupported(type) ? 1 : 0);
+            int foundCount = 0;
+            for (NetworkInfo i : ni) {
+                if (i.getType() == type) foundCount++;
+            }
+            if (foundCount != desiredFoundCount) {
+                Log.e(TAG, "failure in testGetAllNetworkInfo.  Dump of returned NetworkInfos:");
+                for (NetworkInfo networkInfo : ni) Log.e(TAG, "  " + networkInfo);
+            }
+            assertTrue("Unexpected foundCount of " + foundCount + " for type " + type,
+                    foundCount == desiredFoundCount);
+        }
     }
 
     public void testStartUsingNetworkFeature() {
@@ -130,35 +216,46 @@
         }
     }
 
-    public void testRequestRouteToHost() {
-        Set<Integer> exceptionFreeTypes = new HashSet<Integer>();
-        exceptionFreeTypes.add(ConnectivityManager.TYPE_BLUETOOTH);
-        exceptionFreeTypes.add(ConnectivityManager.TYPE_ETHERNET);
-        exceptionFreeTypes.add(ConnectivityManager.TYPE_MOBILE);
-        exceptionFreeTypes.add(ConnectivityManager.TYPE_MOBILE_DUN);
-        exceptionFreeTypes.add(ConnectivityManager.TYPE_MOBILE_HIPRI);
-        exceptionFreeTypes.add(ConnectivityManager.TYPE_MOBILE_MMS);
-        exceptionFreeTypes.add(ConnectivityManager.TYPE_MOBILE_SUPL);
+    private boolean isSupported(int networkType) {
+        return mNetworks.containsKey(networkType);
+    }
 
-        NetworkInfo[] ni = mCm.getAllNetworkInfo();
-        for (NetworkInfo n : ni) {
-            if (n.isConnected() && exceptionFreeTypes.contains(n.getType())) {
-                assertTrue("Network type: " + n.getType(), mCm.requestRouteToHost(n.getType(),
-                        HOST_ADDRESS));
+    // true if only the system can turn it on
+    private boolean isNetworkProtected(int networkType) {
+        return mProtectedNetworks.contains(networkType);
+    }
+
+    public void testIsNetworkSupported() {
+        for (int type = -1; type <= ConnectivityManager.MAX_NETWORK_TYPE; type++) {
+            boolean supported = mCm.isNetworkSupported(type);
+            if (isSupported(type)) {
+                assertTrue(supported);
+            } else {
+                assertFalse(supported);
             }
         }
+    }
+
+    public void testRequestRouteToHost() {
+        for (int type = -1 ; type <= ConnectivityManager.MAX_NETWORK_TYPE; type++) {
+            NetworkInfo ni = mCm.getNetworkInfo(type);
+            boolean expectToWork = isSupported(type) && !isNetworkProtected(type) &&
+                    ni != null && ni.isConnected();
+
+            try {
+                assertTrue("Network type " + type,
+                        mCm.requestRouteToHost(type, HOST_ADDRESS) == expectToWork);
+            } catch (Exception e) {
+                Log.d(TAG, "got exception in requestRouteToHost for type " + type);
+                assertFalse("Exception received for type " + type, expectToWork);
+            }
+
+            //TODO verify route table
+        }
 
         assertFalse(mCm.requestRouteToHost(-1, HOST_ADDRESS));
     }
 
-    public void testGetActiveNetworkInfo() {
-        NetworkInfo ni = mCm.getActiveNetworkInfo();
-
-        if (ni != null) {
-            assertTrue(ni.getType() >= 0);
-        }
-    }
-
     public void testTest() {
         mCm.getBackgroundDataSetting();
     }
@@ -197,12 +294,16 @@
 
             assertTrue("Couldn't requestRouteToHost using HIPRI.",
                     mCm.requestRouteToHost(ConnectivityManager.TYPE_MOBILE_HIPRI, HOST_ADDRESS));
-
+            // TODO check dns selection
+            // TODO check routes
         } catch (InterruptedException e) {
             fail("Broadcast receiver waiting for ConnectivityManager interrupted.");
         } finally {
             mCm.stopUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE,
                     FEATURE_ENABLE_HIPRI);
+            // TODO wait for HIPRI to go
+            // TODO check dns selection
+            // TODO check routes
             if (!isWifiConnected) {
                 mWifiManager.setWifiEnabled(false);
             }
diff --git a/tests/tests/net/src/android/net/cts/TrafficStatsTest.java b/tests/tests/net/src/android/net/cts/TrafficStatsTest.java
index a5bbd98..180d259 100644
--- a/tests/tests/net/src/android/net/cts/TrafficStatsTest.java
+++ b/tests/tests/net/src/android/net/cts/TrafficStatsTest.java
@@ -16,7 +16,6 @@
 
 package android.net.cts;
 
-
 import android.net.TrafficStats;
 import android.os.Process;
 import android.test.AndroidTestCase;
@@ -26,35 +25,73 @@
 import java.io.OutputStream;
 import java.net.ServerSocket;
 import java.net.Socket;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
 
 public class TrafficStatsTest extends AndroidTestCase {
-    public void testGetMobileStats() {
+    public void testValidMobileStats() {
         // We can't assume a mobile network is even present in this test, so
         // we simply assert that a valid value is returned.
 
-        assertTrue(TrafficStats.getMobileTxPackets() == TrafficStats.UNSUPPORTED ||
-                   TrafficStats.getMobileTxPackets() >= 0);
-        assertTrue(TrafficStats.getMobileRxPackets() == TrafficStats.UNSUPPORTED ||
-                   TrafficStats.getMobileRxPackets() >= 0);
-        assertTrue(TrafficStats.getMobileTxBytes() == TrafficStats.UNSUPPORTED ||
-                   TrafficStats.getMobileTxBytes() >= 0);
-        assertTrue(TrafficStats.getMobileRxBytes() == TrafficStats.UNSUPPORTED ||
-                   TrafficStats.getMobileRxBytes() >= 0);
+        assertTrue(TrafficStats.getMobileTxPackets() >= 0);
+        assertTrue(TrafficStats.getMobileRxPackets() >= 0);
+        assertTrue(TrafficStats.getMobileTxBytes() >= 0);
+        assertTrue(TrafficStats.getMobileRxBytes() >= 0);
+    }
+
+    public void testValidTotalStats() {
+        assertTrue(TrafficStats.getTotalTxPackets() >= 0);
+        assertTrue(TrafficStats.getTotalRxPackets() >= 0);
+        assertTrue(TrafficStats.getTotalTxBytes() >= 0);
+        assertTrue(TrafficStats.getTotalRxBytes() >= 0);
+    }
+
+    public void testThreadStatsTag() throws Exception {
+        TrafficStats.setThreadStatsTag(0xf00d);
+        assertTrue("Tag didn't stick", TrafficStats.getThreadStatsTag() == 0xf00d);
+
+        final CountDownLatch latch = new CountDownLatch(1);
+
+        new Thread("TrafficStatsTest.testThreadStatsTag") {
+            @Override
+            public void run() {
+                assertTrue("Tag leaked", TrafficStats.getThreadStatsTag() != 0xf00d);
+                TrafficStats.setThreadStatsTag(0xcafe);
+                assertTrue("Tag didn't stick", TrafficStats.getThreadStatsTag() == 0xcafe);
+                latch.countDown();
+            }
+        }.start();
+
+        latch.await(5, TimeUnit.SECONDS);
+        assertTrue("Tag lost", TrafficStats.getThreadStatsTag() == 0xf00d);
+
+        TrafficStats.clearThreadStatsTag();
+        assertTrue("Tag not cleared", TrafficStats.getThreadStatsTag() != 0xf00d);
+    }
+
+    long tcpPacketToIpBytes(long packetCount, long bytes) {
+        // ip header + tcp header + data.
+        // Tcp header is mostly 32. Syn has different tcp options -> 40. Don't care.
+        return packetCount * (20 + 32 + bytes);
     }
 
     public void testTrafficStatsForLocalhost() throws IOException {
-        long mobileTxPacketsBefore = TrafficStats.getTotalTxPackets();
-        long mobileRxPacketsBefore = TrafficStats.getTotalRxPackets();
-        long mobileTxBytesBefore = TrafficStats.getTotalTxBytes();
-        long mobileRxBytesBefore = TrafficStats.getTotalRxBytes();
+        long mobileTxPacketsBefore = TrafficStats.getMobileTxPackets();
+        long mobileRxPacketsBefore = TrafficStats.getMobileRxPackets();
+        long mobileTxBytesBefore = TrafficStats.getMobileTxBytes();
+        long mobileRxBytesBefore = TrafficStats.getMobileRxBytes();
         long totalTxPacketsBefore = TrafficStats.getTotalTxPackets();
         long totalRxPacketsBefore = TrafficStats.getTotalRxPackets();
         long totalTxBytesBefore = TrafficStats.getTotalTxBytes();
         long totalRxBytesBefore = TrafficStats.getTotalRxBytes();
         long uidTxBytesBefore = TrafficStats.getUidTxBytes(Process.myUid());
         long uidRxBytesBefore = TrafficStats.getUidRxBytes(Process.myUid());
+        long uidTxPacketsBefore = TrafficStats.getUidTxPackets(Process.myUid());
+        long uidRxPacketsBefore = TrafficStats.getUidRxPackets(Process.myUid());
 
         // Transfer 1MB of data across an explicitly localhost socket.
+        final int byteCount = 1024;
+        final int packetCount = 1024;
 
         final ServerSocket server = new ServerSocket(0);
         new Thread("TrafficStatsTest.testTrafficStatsForLocalhost") {
@@ -62,9 +99,15 @@
             public void run() {
                 try {
                     Socket socket = new Socket("localhost", server.getLocalPort());
+                    // Make sure that each write()+flush() turns into a packet:
+                    // disable Nagle.
+                    socket.setTcpNoDelay(true);
                     OutputStream out = socket.getOutputStream();
-                    byte[] buf = new byte[1024];
-                    for (int i = 0; i < 1024; i++) out.write(buf);
+                    byte[] buf = new byte[byteCount];
+                    for (int i = 0; i < packetCount; i++) {
+                        out.write(buf);
+                        out.flush();
+                    }
                     out.close();
                     socket.close();
                 } catch (IOException e) {
@@ -75,9 +118,9 @@
         try {
             Socket socket = server.accept();
             InputStream in = socket.getInputStream();
-            byte[] buf = new byte[1024];
+            byte[] buf = new byte[byteCount];
             int read = 0;
-            while (read < 1048576) {
+            while (read < byteCount * packetCount) {
                 int n = in.read(buf);
                 assertTrue("Unexpected EOF", n > 0);
                 read += n;
@@ -92,50 +135,76 @@
         } catch (InterruptedException e) {
         }
 
-        long mobileTxPacketsAfter = TrafficStats.getTotalTxPackets();
-        long mobileRxPacketsAfter = TrafficStats.getTotalRxPackets();
-        long mobileTxBytesAfter = TrafficStats.getTotalTxBytes();
-        long mobileRxBytesAfter = TrafficStats.getTotalRxBytes();
+        long mobileTxPacketsAfter = TrafficStats.getMobileTxPackets();
+        long mobileRxPacketsAfter = TrafficStats.getMobileRxPackets();
+        long mobileTxBytesAfter = TrafficStats.getMobileTxBytes();
+        long mobileRxBytesAfter = TrafficStats.getMobileRxBytes();
         long totalTxPacketsAfter = TrafficStats.getTotalTxPackets();
         long totalRxPacketsAfter = TrafficStats.getTotalRxPackets();
         long totalTxBytesAfter = TrafficStats.getTotalTxBytes();
         long totalRxBytesAfter = TrafficStats.getTotalRxBytes();
         long uidTxBytesAfter = TrafficStats.getUidTxBytes(Process.myUid());
         long uidRxBytesAfter = TrafficStats.getUidRxBytes(Process.myUid());
-
-        // Localhost traffic should *not* count against mobile or total stats.
-        // There might be some other traffic, but nowhere near 1MB.
-
-        assertTrue("mtxp: " + mobileTxPacketsBefore + " -> " + mobileTxPacketsAfter,
-               mobileTxPacketsAfter >= mobileTxPacketsBefore &&
-               mobileTxPacketsAfter <= mobileTxPacketsBefore + 500);
-        assertTrue("mrxp: " + mobileRxPacketsBefore + " -> " + mobileRxPacketsAfter,
-               mobileRxPacketsAfter >= mobileRxPacketsBefore &&
-               mobileRxPacketsAfter <= mobileRxPacketsBefore + 500);
-        assertTrue("mtxb: " + mobileTxBytesBefore + " -> " + mobileTxBytesAfter,
-               mobileTxBytesAfter >= mobileTxBytesBefore &&
-               mobileTxBytesAfter <= mobileTxBytesBefore + 200000);
-        assertTrue("mrxb: " + mobileRxBytesBefore + " -> " + mobileRxBytesAfter,
-               mobileRxBytesAfter >= mobileRxBytesBefore &&
-               mobileRxBytesAfter <= mobileRxBytesBefore + 200000);
-
-        assertTrue("ttxp: " + totalTxPacketsBefore + " -> " + totalTxPacketsAfter,
-               totalTxPacketsAfter >= totalTxPacketsBefore &&
-               totalTxPacketsAfter <= totalTxPacketsBefore + 500);
-        assertTrue("trxp: " + totalRxPacketsBefore + " -> " + totalRxPacketsAfter,
-               totalRxPacketsAfter >= totalRxPacketsBefore &&
-               totalRxPacketsAfter <= totalRxPacketsBefore + 500);
-        assertTrue("ttxb: " + totalTxBytesBefore + " -> " + totalTxBytesAfter,
-               totalTxBytesAfter >= totalTxBytesBefore &&
-               totalTxBytesAfter <= totalTxBytesBefore + 200000);
-        assertTrue("trxb: " + totalRxBytesBefore + " -> " + totalRxBytesAfter,
-               totalRxBytesAfter >= totalRxBytesBefore &&
-               totalRxBytesAfter <= totalRxBytesBefore + 200000);
+        long uidTxPacketsAfter = TrafficStats.getUidTxPackets(Process.myUid());
+        long uidRxPacketsAfter = TrafficStats.getUidRxPackets(Process.myUid());
+        long uidTxDeltaBytes = uidTxBytesAfter - uidTxBytesBefore;
+        long uidTxDeltaPackets = uidTxPacketsAfter - uidTxPacketsBefore;
+        long uidRxDeltaBytes = uidRxBytesAfter - uidRxBytesBefore;
+        long uidRxDeltaPackets = uidRxPacketsAfter - uidRxPacketsBefore;
 
         // Localhost traffic *does* count against per-UID stats.
-        assertTrue("uidtxb: " + uidTxBytesBefore + " -> " + uidTxBytesAfter,
-               uidTxBytesAfter >= uidTxBytesBefore + 1048576);
-        assertTrue("uidrxb: " + uidRxBytesBefore + " -> " + uidRxBytesAfter,
-               uidRxBytesAfter >= uidRxBytesBefore + 1048576);
+        /*
+         * Calculations:
+         *  - bytes
+         *   bytes is approx: packets * data + packets * acks;
+         *   but sometimes there are less acks than packets, so we set a lower
+         *   limit of 1 ack.
+         *  - setup/teardown
+         *   + 7 approx.: syn, syn-ack, ack, fin-ack, ack, fin-ack, ack;
+         *   but sometimes the last find-acks just vanish, so we set a lower limit of +5.
+         */
+        assertTrue("uidtxp: " + uidTxPacketsBefore + " -> " + uidTxPacketsAfter + " delta=" + uidTxDeltaPackets,
+            uidTxDeltaPackets >= packetCount + 5 &&
+            uidTxDeltaPackets <= packetCount + packetCount + 7);
+        assertTrue("uidrxp: " + uidRxPacketsBefore + " -> " + uidRxPacketsAfter + " delta=" + uidRxDeltaPackets,
+            uidRxDeltaPackets >= packetCount + 5 &&
+            uidRxDeltaPackets <= packetCount + packetCount + 7);
+        assertTrue("uidtxb: " + uidTxBytesBefore + " -> " + uidTxBytesAfter + " delta=" + uidTxDeltaBytes,
+            uidTxDeltaBytes >= tcpPacketToIpBytes(packetCount, byteCount) + tcpPacketToIpBytes(5, 0) &&
+            uidTxDeltaBytes <= tcpPacketToIpBytes(packetCount, byteCount) + tcpPacketToIpBytes(packetCount + 7, 0));
+        assertTrue("uidrxb: " + uidRxBytesBefore + " -> " + uidRxBytesAfter + " delta=" + uidRxDeltaBytes,
+            uidRxDeltaBytes >= tcpPacketToIpBytes(packetCount, byteCount) + tcpPacketToIpBytes(5, 0) &&
+            uidRxDeltaBytes <= tcpPacketToIpBytes(packetCount, byteCount) + tcpPacketToIpBytes(packetCount + 7, 0));
+
+        // Localhost traffic *does* count against total stats.
+        // Fudge by 132 packets of 1500 bytes not related to the test.
+        assertTrue("ttxp: " + totalTxPacketsBefore + " -> " + totalTxPacketsAfter,
+            totalTxPacketsAfter >= totalTxPacketsBefore + uidTxDeltaPackets &&
+            totalTxPacketsAfter <= totalTxPacketsBefore + uidTxDeltaPackets + 132);
+        assertTrue("trxp: " + totalRxPacketsBefore + " -> " + totalRxPacketsAfter,
+            totalRxPacketsAfter >= totalRxPacketsBefore + uidRxDeltaPackets &&
+            totalRxPacketsAfter <= totalRxPacketsBefore + uidRxDeltaPackets + 132);
+        assertTrue("ttxb: " + totalTxBytesBefore + " -> " + totalTxBytesAfter,
+            totalTxBytesAfter >= totalTxBytesBefore + uidTxDeltaBytes &&
+            totalTxBytesAfter <= totalTxBytesBefore + uidTxDeltaBytes + 132 * 1500);
+        assertTrue("trxb: " + totalRxBytesBefore + " -> " + totalRxBytesAfter,
+            totalRxBytesAfter >= totalRxBytesBefore + uidRxDeltaBytes &&
+            totalRxBytesAfter <= totalRxBytesBefore + uidRxDeltaBytes + 132 * 1500);
+
+        // Localhost traffic should *not* count against mobile stats,
+        // There might be some other traffic, but nowhere near 1MB.
+        assertTrue("mtxp: " + mobileTxPacketsBefore + " -> " + mobileTxPacketsAfter,
+            mobileTxPacketsAfter >= mobileTxPacketsBefore &&
+            mobileTxPacketsAfter <= mobileTxPacketsBefore + 500);
+        assertTrue("mrxp: " + mobileRxPacketsBefore + " -> " + mobileRxPacketsAfter,
+            mobileRxPacketsAfter >= mobileRxPacketsBefore &&
+            mobileRxPacketsAfter <= mobileRxPacketsBefore + 500);
+        assertTrue("mtxb: " + mobileTxBytesBefore + " -> " + mobileTxBytesAfter,
+            mobileTxBytesAfter >= mobileTxBytesBefore &&
+            mobileTxBytesAfter <= mobileTxBytesBefore + 200000);
+        assertTrue("mrxb: " + mobileRxBytesBefore + " -> " + mobileRxBytesAfter,
+            mobileRxBytesAfter >= mobileRxBytesBefore &&
+            mobileRxBytesAfter <= mobileRxBytesBefore + 200000);
+
     }
 }
diff --git a/tests/tests/net/src/android/net/wifi/cts/WifiEnterpriseConfigTest.java b/tests/tests/net/src/android/net/wifi/cts/WifiEnterpriseConfigTest.java
new file mode 100644
index 0000000..58298d5
--- /dev/null
+++ b/tests/tests/net/src/android/net/wifi/cts/WifiEnterpriseConfigTest.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.net.wifi.cts;
+
+import android.content.Context;
+import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiEnterpriseConfig;
+import android.net.wifi.WifiEnterpriseConfig.Eap;
+import android.net.wifi.WifiEnterpriseConfig.Phase2;
+import android.net.wifi.WifiManager;
+import android.test.AndroidTestCase;
+
+public class WifiEnterpriseConfigTest extends AndroidTestCase {
+    private  WifiManager mWifiManager;
+
+    private static final String SSID = "\"TestSSID\"";
+    private static final String IDENTITY = "identity";
+    private static final String PASSWORD = "password";
+    private static final String SUBJECT_MATCH = "subjectmatch";
+    private static final String ANON_IDENTITY = "anonidentity";
+    private static final int ENABLE_DELAY = 10000;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mWifiManager = (WifiManager) mContext
+                .getSystemService(Context.WIFI_SERVICE);
+        assertNotNull(mWifiManager);
+        mWifiManager.setWifiEnabled(true);
+        Thread.sleep(ENABLE_DELAY);
+        assertTrue(mWifiManager.isWifiEnabled());
+    }
+
+    public void testSettersAndGetters() {
+        WifiEnterpriseConfig config = new WifiEnterpriseConfig();
+        assertTrue(config.getEapMethod() == Eap.NONE);
+        config.setEapMethod(Eap.PEAP);
+        assertTrue(config.getEapMethod() == Eap.PEAP);
+        config.setEapMethod(Eap.PWD);
+        assertTrue(config.getEapMethod() == Eap.PWD);
+        config.setEapMethod(Eap.TLS);
+        assertTrue(config.getEapMethod() == Eap.TLS);
+        config.setEapMethod(Eap.TTLS);
+        assertTrue(config.getEapMethod() == Eap.TTLS);
+        assertTrue(config.getPhase2Method() == Phase2.NONE);
+        config.setPhase2Method(Phase2.PAP);
+        assertTrue(config.getPhase2Method() == Phase2.PAP);
+        config.setPhase2Method(Phase2.MSCHAP);
+        assertTrue(config.getPhase2Method() == Phase2.MSCHAP);
+        config.setPhase2Method(Phase2.MSCHAPV2);
+        assertTrue(config.getPhase2Method() == Phase2.MSCHAPV2);
+        config.setPhase2Method(Phase2.GTC);
+        assertTrue(config.getPhase2Method() == Phase2.GTC);
+        config.setIdentity(IDENTITY);
+        assertTrue(config.getIdentity().equals(IDENTITY));
+        config.setAnonymousIdentity(ANON_IDENTITY);
+        assertTrue(config.getAnonymousIdentity().equals(ANON_IDENTITY));
+        config.setPassword(PASSWORD);
+        assertTrue(config.getPassword().equals(PASSWORD));
+        config.setCaCertificate(null);
+        config.setClientKeyEntry(null, null);
+        config.setSubjectMatch(SUBJECT_MATCH);
+        assertTrue(config.getSubjectMatch().equals(SUBJECT_MATCH));
+    }
+
+    public void testAddEapNetwork() {
+        WifiConfiguration config = new WifiConfiguration();
+        WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
+        enterpriseConfig.setEapMethod(Eap.PWD);
+        enterpriseConfig.setIdentity(IDENTITY);
+        enterpriseConfig.setPassword(PASSWORD);
+        config.SSID = SSID;
+        config.enterpriseConfig = enterpriseConfig;
+
+        int netId = mWifiManager.addNetwork(config);
+        assertTrue(doesSsidExist(SSID));
+        mWifiManager.removeNetwork(netId);
+        assertFalse(doesSsidExist(SSID));
+    }
+
+    private boolean doesSsidExist(String ssid) {
+        for (final WifiConfiguration w : mWifiManager.getConfiguredNetworks()) {
+            if (w.SSID.equals(ssid))
+                return true;
+        }
+        return false;
+    }
+}
diff --git a/tests/tests/net/src/android/net/wifi/cts/WifiInfoTest.java b/tests/tests/net/src/android/net/wifi/cts/WifiInfoTest.java
index 16dc57d..8719b6b 100644
--- a/tests/tests/net/src/android/net/wifi/cts/WifiInfoTest.java
+++ b/tests/tests/net/src/android/net/wifi/cts/WifiInfoTest.java
@@ -122,7 +122,13 @@
         assertNotNull(wifiInfo.toString());
         SupplicantState.isValidState(wifiInfo.getSupplicantState());
         WifiInfo.getDetailedStateOf(SupplicantState.DISCONNECTED);
-        wifiInfo.getSSID();
+        String ssid = wifiInfo.getSSID();
+        if (ssid.startsWith("0x") == false) {
+            // Non-hex string should be quoted
+            assertTrue(ssid.charAt(0) == '"');
+            assertTrue(ssid.charAt(ssid.length() - 1) == '"');
+        }
+
         wifiInfo.getBSSID();
         wifiInfo.getIpAddress();
         wifiInfo.getLinkSpeed();
diff --git a/tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java b/tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java
index 213dc17..7faea64 100644
--- a/tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java
+++ b/tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java
@@ -233,7 +233,7 @@
         startScan();
         setWifiEnabled(false);
         Thread.sleep(DURATION);
-        assertFalse(mWifiManager.pingSupplicant());
+        assertTrue(mWifiManager.pingSupplicant() == mWifiManager.isScanAlwaysAvailable());
         final String TAG = "Test";
         assertNotNull(mWifiManager.createWifiLock(TAG));
         assertNotNull(mWifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL, TAG));
diff --git a/tests/tests/openglperf/Android.mk b/tests/tests/openglperf/Android.mk
index 2d1767e..e10d1c7 100644
--- a/tests/tests/openglperf/Android.mk
+++ b/tests/tests/openglperf/Android.mk
@@ -23,7 +23,9 @@
 
 LOCAL_JAVA_LIBRARIES := android.test.runner
 
-LOCAL_STATIC_JAVA_LIBRARIES := ctstestrunner
+LOCAL_STATIC_JAVA_LIBRARIES := ctstestrunner ctsutil
+
+LOCAL_JNI_SHARED_LIBRARIES := libctsopenglperf_jni
 
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
@@ -35,4 +37,4 @@
 
 include $(BUILD_CTS_PACKAGE)
 
-#include $(call all-makefiles-under,$(LOCAL_PATH))
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/tests/tests/openglperf/AndroidManifest.xml b/tests/tests/openglperf/AndroidManifest.xml
index 540f190..1934f35 100644
--- a/tests/tests/openglperf/AndroidManifest.xml
+++ b/tests/tests/openglperf/AndroidManifest.xml
@@ -32,18 +32,17 @@
         android:targetPackage="com.android.cts.openglperf"
         android:name="android.test.InstrumentationCtsTestRunner" />
 
-    <application
-        android:label="@string/app_name" >
+    <application>
         <uses-library android:name="android.test.runner" />
-        <activity
-            android:name="android.openglperf.cts.GlPlanetsActivity"
-            android:label="@string/app_name" >
+        <activity android:name="android.openglperf.cts.GlPlanetsActivity"
+		  android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
-        <activity android:name="android.openglperf.cts.TextureTestActivity" />
+        <activity android:name="android.openglperf.cts.TextureTestActivity"
+		  android:configChanges="keyboard|keyboardHidden|orientation|screenSize" />
     </application>
 
 </manifest>
diff --git a/suite/pts/deviceTests/dram/jni/Android.mk b/tests/tests/openglperf/jni/Android.mk
similarity index 73%
rename from suite/pts/deviceTests/dram/jni/Android.mk
rename to tests/tests/openglperf/jni/Android.mk
index a3dc698..2cebaec 100644
--- a/suite/pts/deviceTests/dram/jni/Android.mk
+++ b/tests/tests/openglperf/jni/Android.mk
@@ -16,15 +16,15 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE    := libptsdram_jni
+LOCAL_MODULE    := libctsopenglperf_jni
 
 LOCAL_MODULE_TAGS := optional
 
-LOCAL_SRC_FILES := MemoryNativeJni.cpp
+LOCAL_SRC_FILES := OpenGlPerfNativeJni.cpp
 
-LOCAL_C_INCLUDES := $(JNI_H_INCLUDE)
+LOCAL_C_INCLUDES := $(JNI_H_INCLUDE) $(call include-path-for, system-core) frameworks/native/opengl/include
 
-LOCAL_SHARED_LIBRARIES := libnativehelper
+LOCAL_SHARED_LIBRARIES := libnativehelper libcutils liblog libGLES_trace libEGL
 
 LOCAL_SDK_VERSION := 14
 
diff --git a/tests/tests/openglperf/jni/OpenGlPerfNativeJni.cpp b/tests/tests/openglperf/jni/OpenGlPerfNativeJni.cpp
new file mode 100644
index 0000000..a1cd16f
--- /dev/null
+++ b/tests/tests/openglperf/jni/OpenGlPerfNativeJni.cpp
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * 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.
+ */
+
+#include <EGL/egl.h>
+#define EGL_EGLEXT_PROTOTYPES // for egl*Sync*
+#include <EGL/eglext.h>
+#include <cutils/log.h>
+#include <jni.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+
+typedef EGLSyncKHR EGLAPIENTRY (*TypeEglCreateSyncKHR)(EGLDisplay dpy, \
+    EGLenum type, const EGLint *attrib_list);
+typedef EGLBoolean EGLAPIENTRY (*TypeEglDestroySyncKHR)(EGLDisplay dpy, \
+    EGLSyncKHR sync);
+typedef EGLint EGLAPIENTRY (*TypeEglClientWaitSyncKHR)(EGLDisplay dpy, \
+    EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
+
+static TypeEglCreateSyncKHR mEglCreateSyncKHR = NULL;
+static TypeEglClientWaitSyncKHR mEglClientWaitSyncKHR = NULL;
+static TypeEglDestroySyncKHR mEglDestroySyncKHR = NULL;
+static bool mInitialized = false;
+static bool mEglKhrFenceSyncSupported = false;
+
+bool IsEglKHRFenceSyncSupported(EGLDisplay& display)
+{
+    if (!mInitialized) {
+        const char* eglExtensions = eglQueryString(display, EGL_EXTENSIONS);
+        if (eglExtensions && strstr(eglExtensions, "EGL_KHR_fence_sync")) {
+            mEglCreateSyncKHR = (TypeEglCreateSyncKHR) eglGetProcAddress("eglCreateSyncKHR");
+            mEglClientWaitSyncKHR =
+                    (TypeEglClientWaitSyncKHR) eglGetProcAddress("eglClientWaitSyncKHR");
+            mEglDestroySyncKHR = (TypeEglDestroySyncKHR) eglGetProcAddress("eglDestroySyncKHR");
+            if (mEglCreateSyncKHR != NULL && mEglClientWaitSyncKHR != NULL
+                    && mEglDestroySyncKHR != NULL) {
+                mEglKhrFenceSyncSupported = true;
+            }
+        }
+        mInitialized = true;
+    }
+    return mEglKhrFenceSyncSupported;
+}
+
+extern "C" JNIEXPORT \
+jboolean JNICALL Java_android_openglperf_cts_OpenGlPerfNative_waitForEglCompletion(JNIEnv* env,
+        jclass clazz, jlong waitTimeInNs)
+{
+    EGLDisplay dpy = eglGetCurrentDisplay();
+    if (!IsEglKHRFenceSyncSupported(dpy)) {
+        return JNI_FALSE;
+    }
+    EGLSyncKHR sync = mEglCreateSyncKHR(dpy, EGL_SYNC_FENCE_KHR, NULL);
+    if (sync == EGL_NO_SYNC_KHR) {
+        return JNI_FALSE;
+    }
+    jboolean res = JNI_TRUE;
+    EGLint result = mEglClientWaitSyncKHR(dpy, sync, EGL_SYNC_FLUSH_COMMANDS_BIT_KHR, waitTimeInNs);
+    if (result == EGL_FALSE) {
+        ALOGE("FrameCompletion: error waiting for fence: %#x", eglGetError());
+        res = JNI_FALSE;
+    } else if (result == EGL_TIMEOUT_EXPIRED_KHR) {
+        ALOGE("FrameCompletion: timeout waiting for fence");
+        res = JNI_FALSE;
+    }
+    mEglDestroySyncKHR(dpy, sync);
+    return res;
+}
diff --git a/tests/tests/openglperf/src/android/openglperf/cts/GLSurfaceViewCustom.java b/tests/tests/openglperf/src/android/openglperf/cts/GLSurfaceViewCustom.java
new file mode 100644
index 0000000..e1a2292
--- /dev/null
+++ b/tests/tests/openglperf/src/android/openglperf/cts/GLSurfaceViewCustom.java
@@ -0,0 +1,1943 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.openglperf.cts;
+
+// This is a copy of f/b/opengl/java/android/opengl/GlSurfaceView.
+// Most of the code is used as it is, but there was a need to add a hook
+// after eglSwapBuffers is called. Also classes not available outside framework is commented out
+// or replaced.
+
+
+import java.io.Writer;
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+
+import javax.microedition.khronos.egl.EGL10;
+import javax.microedition.khronos.egl.EGL11;
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.egl.EGLContext;
+import javax.microedition.khronos.egl.EGLDisplay;
+import javax.microedition.khronos.egl.EGLSurface;
+import javax.microedition.khronos.opengles.GL;
+import javax.microedition.khronos.opengles.GL10;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+
+/**
+ * An implementation of SurfaceView that uses the dedicated surface for
+ * displaying OpenGL rendering.
+ * <p>
+ * A GLSurfaceView provides the following features:
+ * <p>
+ * <ul>
+ * <li>Manages a surface, which is a special piece of memory that can be
+ * composited into the Android view system.
+ * <li>Manages an EGL display, which enables OpenGL to render into a surface.
+ * <li>Accepts a user-provided Renderer object that does the actual rendering.
+ * <li>Renders on a dedicated thread to decouple rendering performance from the
+ * UI thread.
+ * <li>Supports both on-demand and continuous rendering.
+ * <li>Optionally wraps, traces, and/or error-checks the renderer's OpenGL calls.
+ * </ul>
+ *
+ * <div class="special reference">
+ * <h3>Developer Guides</h3>
+ * <p>For more information about how to use OpenGL, read the
+ * <a href="{@docRoot}guide/topics/graphics/opengl.html">OpenGL</a> developer guide.</p>
+ * </div>
+ *
+ * <h3>Using GLSurfaceView</h3>
+ * <p>
+ * Typically you use GLSurfaceView by subclassing it and overriding one or more of the
+ * View system input event methods. If your application does not need to override event
+ * methods then GLSurfaceView can be used as-is. For the most part
+ * GLSurfaceView behavior is customized by calling "set" methods rather than by subclassing.
+ * For example, unlike a regular View, drawing is delegated to a separate Renderer object which
+ * is registered with the GLSurfaceView
+ * using the {@link #setRenderer(Renderer)} call.
+ * <p>
+ * <h3>Initializing GLSurfaceView</h3>
+ * All you have to do to initialize a GLSurfaceView is call {@link #setRenderer(Renderer)}.
+ * However, if desired, you can modify the default behavior of GLSurfaceView by calling one or
+ * more of these methods before calling setRenderer:
+ * <ul>
+ * <li>{@link #setDebugFlags(int)}
+ * <li>{@link #setEGLConfigChooser(boolean)}
+ * <li>{@link #setEGLConfigChooser(EGLConfigChooser)}
+ * <li>{@link #setEGLConfigChooser(int, int, int, int, int, int)}
+ * <li>{@link #setGLWrapper(GLWrapper)}
+ * </ul>
+ * <p>
+ * <h4>Specifying the android.view.Surface</h4>
+ * By default GLSurfaceView will create a PixelFormat.RGB_888 format surface. If a translucent
+ * surface is required, call getHolder().setFormat(PixelFormat.TRANSLUCENT).
+ * The exact format of a TRANSLUCENT surface is device dependent, but it will be
+ * a 32-bit-per-pixel surface with 8 bits per component.
+ * <p>
+ * <h4>Choosing an EGL Configuration</h4>
+ * A given Android device may support multiple EGLConfig rendering configurations.
+ * The available configurations may differ in how may channels of data are present, as
+ * well as how many bits are allocated to each channel. Therefore, the first thing
+ * GLSurfaceView has to do when starting to render is choose what EGLConfig to use.
+ * <p>
+ * By default GLSurfaceView chooses a EGLConfig that has an RGB_888 pixel format,
+ * with at least a 16-bit depth buffer and no stencil.
+ * <p>
+ * If you would prefer a different EGLConfig
+ * you can override the default behavior by calling one of the
+ * setEGLConfigChooser methods.
+ * <p>
+ * <h4>Debug Behavior</h4>
+ * You can optionally modify the behavior of GLSurfaceView by calling
+ * one or more of the debugging methods {@link #setDebugFlags(int)},
+ * and {@link #setGLWrapper}. These methods may be called before and/or after setRenderer, but
+ * typically they are called before setRenderer so that they take effect immediately.
+ * <p>
+ * <h4>Setting a Renderer</h4>
+ * Finally, you must call {@link #setRenderer} to register a {@link Renderer}.
+ * The renderer is
+ * responsible for doing the actual OpenGL rendering.
+ * <p>
+ * <h3>Rendering Mode</h3>
+ * Once the renderer is set, you can control whether the renderer draws
+ * continuously or on-demand by calling
+ * {@link #setRenderMode}. The default is continuous rendering.
+ * <p>
+ * <h3>Activity Life-cycle</h3>
+ * A GLSurfaceView must be notified when the activity is paused and resumed. GLSurfaceView clients
+ * are required to call {@link #onPause()} when the activity pauses and
+ * {@link #onResume()} when the activity resumes. These calls allow GLSurfaceView to
+ * pause and resume the rendering thread, and also allow GLSurfaceView to release and recreate
+ * the OpenGL display.
+ * <p>
+ * <h3>Handling events</h3>
+ * <p>
+ * To handle an event you will typically subclass GLSurfaceView and override the
+ * appropriate method, just as you would with any other View. However, when handling
+ * the event, you may need to communicate with the Renderer object
+ * that's running in the rendering thread. You can do this using any
+ * standard Java cross-thread communication mechanism. In addition,
+ * one relatively easy way to communicate with your renderer is
+ * to call
+ * {@link #queueEvent(Runnable)}. For example:
+ * <pre class="prettyprint">
+ * class MyGLSurfaceView extends GLSurfaceView {
+ *
+ *     private MyRenderer mMyRenderer;
+ *
+ *     public void start() {
+ *         mMyRenderer = ...;
+ *         setRenderer(mMyRenderer);
+ *     }
+ *
+ *     public boolean onKeyDown(int keyCode, KeyEvent event) {
+ *         if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
+ *             queueEvent(new Runnable() {
+ *                 // This method will be called on the rendering
+ *                 // thread:
+ *                 public void run() {
+ *                     mMyRenderer.handleDpadCenter();
+ *                 }});
+ *             return true;
+ *         }
+ *         return super.onKeyDown(keyCode, event);
+ *     }
+ * }
+ * </pre>
+ *
+ */
+public class GLSurfaceViewCustom extends SurfaceView implements SurfaceHolder.Callback {
+    private final static String TAG = "GLSurfaceView";
+    private final static boolean LOG_ATTACH_DETACH = false;
+    private final static boolean LOG_THREADS = false;
+    private final static boolean LOG_PAUSE_RESUME = false;
+    private final static boolean LOG_SURFACE = false;
+    private final static boolean LOG_RENDERER = false;
+    private final static boolean LOG_RENDERER_DRAW_FRAME = false;
+    private final static boolean LOG_EGL = false;
+    /**
+     * The renderer only renders
+     * when the surface is created, or when {@link #requestRender} is called.
+     *
+     * @see #getRenderMode()
+     * @see #setRenderMode(int)
+     * @see #requestRender()
+     */
+    public final static int RENDERMODE_WHEN_DIRTY = 0;
+    /**
+     * The renderer is called
+     * continuously to re-render the scene.
+     *
+     * @see #getRenderMode()
+     * @see #setRenderMode(int)
+     */
+    public final static int RENDERMODE_CONTINUOUSLY = 1;
+
+    /**
+     * Check glError() after every GL call and throw an exception if glError indicates
+     * that an error has occurred. This can be used to help track down which OpenGL ES call
+     * is causing an error.
+     *
+     * @see #getDebugFlags
+     * @see #setDebugFlags
+     */
+    public final static int DEBUG_CHECK_GL_ERROR = 1;
+
+    /**
+     * Log GL calls to the system log at "verbose" level with tag "GLSurfaceView".
+     *
+     * @see #getDebugFlags
+     * @see #setDebugFlags
+     */
+    public final static int DEBUG_LOG_GL_CALLS = 2;
+
+    /**
+     * Standard View constructor. In order to render something, you
+     * must call {@link #setRenderer} to register a renderer.
+     */
+    public GLSurfaceViewCustom(Context context) {
+        super(context);
+        init();
+    }
+
+    /**
+     * Standard View constructor. In order to render something, you
+     * must call {@link #setRenderer} to register a renderer.
+     */
+    public GLSurfaceViewCustom(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        init();
+    }
+
+    @Override
+    protected void finalize() throws Throwable {
+        try {
+            if (mGLThread != null) {
+                // GLThread may still be running if this view was never
+                // attached to a window.
+                mGLThread.requestExitAndWait();
+            }
+        } finally {
+            super.finalize();
+        }
+    }
+
+    private void init() {
+        // Install a SurfaceHolder.Callback so we get notified when the
+        // underlying surface is created and destroyed
+        SurfaceHolder holder = getHolder();
+        holder.addCallback(this);
+        // setFormat is done by SurfaceView in SDK 2.3 and newer. Uncomment
+        // this statement if back-porting to 2.2 or older:
+        // holder.setFormat(PixelFormat.RGB_565);
+        //
+        // setType is not needed for SDK 2.0 or newer. Uncomment this
+        // statement if back-porting this code to older SDKs.
+        // holder.setType(SurfaceHolder.SURFACE_TYPE_GPU);
+    }
+
+    /**
+     * Set the glWrapper. If the glWrapper is not null, its
+     * {@link GLWrapper#wrap(GL)} method is called
+     * whenever a surface is created. A GLWrapper can be used to wrap
+     * the GL object that's passed to the renderer. Wrapping a GL
+     * object enables examining and modifying the behavior of the
+     * GL calls made by the renderer.
+     * <p>
+     * Wrapping is typically used for debugging purposes.
+     * <p>
+     * The default value is null.
+     * @param glWrapper the new GLWrapper
+     */
+    public void setGLWrapper(GLWrapper glWrapper) {
+        mGLWrapper = glWrapper;
+    }
+
+    /**
+     * Set the debug flags to a new value. The value is
+     * constructed by OR-together zero or more
+     * of the DEBUG_CHECK_* constants. The debug flags take effect
+     * whenever a surface is created. The default value is zero.
+     * @param debugFlags the new debug flags
+     * @see #DEBUG_CHECK_GL_ERROR
+     * @see #DEBUG_LOG_GL_CALLS
+     */
+    public void setDebugFlags(int debugFlags) {
+        mDebugFlags = debugFlags;
+    }
+
+    /**
+     * Get the current value of the debug flags.
+     * @return the current value of the debug flags.
+     */
+    public int getDebugFlags() {
+        return mDebugFlags;
+    }
+
+    /**
+     * Control whether the EGL context is preserved when the GLSurfaceView is paused and
+     * resumed.
+     * <p>
+     * If set to true, then the EGL context may be preserved when the GLSurfaceView is paused.
+     * Whether the EGL context is actually preserved or not depends upon whether the
+     * Android device that the program is running on can support an arbitrary number of EGL
+     * contexts or not. Devices that can only support a limited number of EGL contexts must
+     * release the  EGL context in order to allow multiple applications to share the GPU.
+     * <p>
+     * If set to false, the EGL context will be released when the GLSurfaceView is paused,
+     * and recreated when the GLSurfaceView is resumed.
+     * <p>
+     *
+     * The default is false.
+     *
+     * @param preserveOnPause preserve the EGL context when paused
+     */
+    public void setPreserveEGLContextOnPause(boolean preserveOnPause) {
+        mPreserveEGLContextOnPause = preserveOnPause;
+    }
+
+    /**
+     * @return true if the EGL context will be preserved when paused
+     */
+    public boolean getPreserveEGLContextOnPause() {
+        return mPreserveEGLContextOnPause;
+    }
+
+    /**
+     * Set the renderer associated with this view. Also starts the thread that
+     * will call the renderer, which in turn causes the rendering to start.
+     * <p>This method should be called once and only once in the life-cycle of
+     * a GLSurfaceView.
+     * <p>The following GLSurfaceView methods can only be called <em>before</em>
+     * setRenderer is called:
+     * <ul>
+     * <li>{@link #setEGLConfigChooser(boolean)}
+     * <li>{@link #setEGLConfigChooser(EGLConfigChooser)}
+     * <li>{@link #setEGLConfigChooser(int, int, int, int, int, int)}
+     * </ul>
+     * <p>
+     * The following GLSurfaceView methods can only be called <em>after</em>
+     * setRenderer is called:
+     * <ul>
+     * <li>{@link #getRenderMode()}
+     * <li>{@link #onPause()}
+     * <li>{@link #onResume()}
+     * <li>{@link #queueEvent(Runnable)}
+     * <li>{@link #requestRender()}
+     * <li>{@link #setRenderMode(int)}
+     * </ul>
+     *
+     * @param renderer the renderer to use to perform OpenGL drawing.
+     */
+    public void setRenderer(Renderer renderer) {
+        checkRenderThreadState();
+        if (mEGLConfigChooser == null) {
+            mEGLConfigChooser = new SimpleEGLConfigChooser(true);
+        }
+        if (mEGLContextFactory == null) {
+            mEGLContextFactory = new DefaultContextFactory();
+        }
+        if (mEGLWindowSurfaceFactory == null) {
+            mEGLWindowSurfaceFactory = new DefaultWindowSurfaceFactory();
+        }
+        mRenderer = renderer;
+        mGLThread = new GLThread(mThisWeakRef);
+        mGLThread.start();
+    }
+
+    /**
+     * Install a custom EGLContextFactory.
+     * <p>If this method is
+     * called, it must be called before {@link #setRenderer(Renderer)}
+     * is called.
+     * <p>
+     * If this method is not called, then by default
+     * a context will be created with no shared context and
+     * with a null attribute list.
+     */
+    public void setEGLContextFactory(EGLContextFactory factory) {
+        checkRenderThreadState();
+        mEGLContextFactory = factory;
+    }
+
+    /**
+     * Install a custom EGLWindowSurfaceFactory.
+     * <p>If this method is
+     * called, it must be called before {@link #setRenderer(Renderer)}
+     * is called.
+     * <p>
+     * If this method is not called, then by default
+     * a window surface will be created with a null attribute list.
+     */
+    public void setEGLWindowSurfaceFactory(EGLWindowSurfaceFactory factory) {
+        checkRenderThreadState();
+        mEGLWindowSurfaceFactory = factory;
+    }
+
+    /**
+     * Install a custom EGLConfigChooser.
+     * <p>If this method is
+     * called, it must be called before {@link #setRenderer(Renderer)}
+     * is called.
+     * <p>
+     * If no setEGLConfigChooser method is called, then by default the
+     * view will choose an EGLConfig that is compatible with the current
+     * android.view.Surface, with a depth buffer depth of
+     * at least 16 bits.
+     * @param configChooser
+     */
+    public void setEGLConfigChooser(EGLConfigChooser configChooser) {
+        checkRenderThreadState();
+        mEGLConfigChooser = configChooser;
+    }
+
+    /**
+     * Install a config chooser which will choose a config
+     * as close to 16-bit RGB as possible, with or without an optional depth
+     * buffer as close to 16-bits as possible.
+     * <p>If this method is
+     * called, it must be called before {@link #setRenderer(Renderer)}
+     * is called.
+     * <p>
+     * If no setEGLConfigChooser method is called, then by default the
+     * view will choose an RGB_888 surface with a depth buffer depth of
+     * at least 16 bits.
+     *
+     * @param needDepth
+     */
+    public void setEGLConfigChooser(boolean needDepth) {
+        setEGLConfigChooser(new SimpleEGLConfigChooser(needDepth));
+    }
+
+    /**
+     * Install a config chooser which will choose a config
+     * with at least the specified depthSize and stencilSize,
+     * and exactly the specified redSize, greenSize, blueSize and alphaSize.
+     * <p>If this method is
+     * called, it must be called before {@link #setRenderer(Renderer)}
+     * is called.
+     * <p>
+     * If no setEGLConfigChooser method is called, then by default the
+     * view will choose an RGB_888 surface with a depth buffer depth of
+     * at least 16 bits.
+     *
+     */
+    public void setEGLConfigChooser(int redSize, int greenSize, int blueSize,
+            int alphaSize, int depthSize, int stencilSize) {
+        setEGLConfigChooser(new ComponentSizeChooser(redSize, greenSize,
+                blueSize, alphaSize, depthSize, stencilSize));
+    }
+
+    /**
+     * Inform the default EGLContextFactory and default EGLConfigChooser
+     * which EGLContext client version to pick.
+     * <p>Use this method to create an OpenGL ES 2.0-compatible context.
+     * Example:
+     * <pre class="prettyprint">
+     *     public MyView(Context context) {
+     *         super(context);
+     *         setEGLContextClientVersion(2); // Pick an OpenGL ES 2.0 context.
+     *         setRenderer(new MyRenderer());
+     *     }
+     * </pre>
+     * <p>Note: Activities which require OpenGL ES 2.0 should indicate this by
+     * setting @lt;uses-feature android:glEsVersion="0x00020000" /> in the activity's
+     * AndroidManifest.xml file.
+     * <p>If this method is called, it must be called before {@link #setRenderer(Renderer)}
+     * is called.
+     * <p>This method only affects the behavior of the default EGLContexFactory and the
+     * default EGLConfigChooser. If
+     * {@link #setEGLContextFactory(EGLContextFactory)} has been called, then the supplied
+     * EGLContextFactory is responsible for creating an OpenGL ES 2.0-compatible context.
+     * If
+     * {@link #setEGLConfigChooser(EGLConfigChooser)} has been called, then the supplied
+     * EGLConfigChooser is responsible for choosing an OpenGL ES 2.0-compatible config.
+     * @param version The EGLContext client version to choose. Use 2 for OpenGL ES 2.0
+     */
+    public void setEGLContextClientVersion(int version) {
+        checkRenderThreadState();
+        mEGLContextClientVersion = version;
+    }
+
+    /**
+     * Set the rendering mode. When renderMode is
+     * RENDERMODE_CONTINUOUSLY, the renderer is called
+     * repeatedly to re-render the scene. When renderMode
+     * is RENDERMODE_WHEN_DIRTY, the renderer only rendered when the surface
+     * is created, or when {@link #requestRender} is called. Defaults to RENDERMODE_CONTINUOUSLY.
+     * <p>
+     * Using RENDERMODE_WHEN_DIRTY can improve battery life and overall system performance
+     * by allowing the GPU and CPU to idle when the view does not need to be updated.
+     * <p>
+     * This method can only be called after {@link #setRenderer(Renderer)}
+     *
+     * @param renderMode one of the RENDERMODE_X constants
+     * @see #RENDERMODE_CONTINUOUSLY
+     * @see #RENDERMODE_WHEN_DIRTY
+     */
+    public void setRenderMode(int renderMode) {
+        mGLThread.setRenderMode(renderMode);
+    }
+
+    /**
+     * Get the current rendering mode. May be called
+     * from any thread. Must not be called before a renderer has been set.
+     * @return the current rendering mode.
+     * @see #RENDERMODE_CONTINUOUSLY
+     * @see #RENDERMODE_WHEN_DIRTY
+     */
+    public int getRenderMode() {
+        return mGLThread.getRenderMode();
+    }
+
+    /**
+     * Request that the renderer render a frame.
+     * This method is typically used when the render mode has been set to
+     * {@link #RENDERMODE_WHEN_DIRTY}, so that frames are only rendered on demand.
+     * May be called
+     * from any thread. Must not be called before a renderer has been set.
+     */
+    public void requestRender() {
+        mGLThread.requestRender();
+    }
+
+    /**
+     * This method is part of the SurfaceHolder.Callback interface, and is
+     * not normally called or subclassed by clients of GLSurfaceView.
+     */
+    public void surfaceCreated(SurfaceHolder holder) {
+        mGLThread.surfaceCreated();
+    }
+
+    /**
+     * This method is part of the SurfaceHolder.Callback interface, and is
+     * not normally called or subclassed by clients of GLSurfaceView.
+     */
+    public void surfaceDestroyed(SurfaceHolder holder) {
+        // Surface will be destroyed when we return
+        mGLThread.surfaceDestroyed();
+    }
+
+    /**
+     * This method is part of the SurfaceHolder.Callback interface, and is
+     * not normally called or subclassed by clients of GLSurfaceView.
+     */
+    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
+        mGLThread.onWindowResize(w, h);
+    }
+
+    /**
+     * Inform the view that the activity is paused. The owner of this view must
+     * call this method when the activity is paused. Calling this method will
+     * pause the rendering thread.
+     * Must not be called before a renderer has been set.
+     */
+    public void onPause() {
+        mGLThread.onPause();
+    }
+
+    /**
+     * Inform the view that the activity is resumed. The owner of this view must
+     * call this method when the activity is resumed. Calling this method will
+     * recreate the OpenGL display and resume the rendering
+     * thread.
+     * Must not be called before a renderer has been set.
+     */
+    public void onResume() {
+        mGLThread.onResume();
+    }
+
+    /**
+     * Queue a runnable to be run on the GL rendering thread. This can be used
+     * to communicate with the Renderer on the rendering thread.
+     * Must not be called before a renderer has been set.
+     * @param r the runnable to be run on the GL rendering thread.
+     */
+    public void queueEvent(Runnable r) {
+        mGLThread.queueEvent(r);
+    }
+
+    /**
+     * This method is used as part of the View class and is not normally
+     * called or subclassed by clients of GLSurfaceView.
+     */
+    @Override
+    protected void onAttachedToWindow() {
+        super.onAttachedToWindow();
+        if (LOG_ATTACH_DETACH) {
+            Log.d(TAG, "onAttachedToWindow reattach =" + mDetached);
+        }
+        if (mDetached && (mRenderer != null)) {
+            int renderMode = RENDERMODE_CONTINUOUSLY;
+            if (mGLThread != null) {
+                renderMode = mGLThread.getRenderMode();
+            }
+            mGLThread = new GLThread(mThisWeakRef);
+            if (renderMode != RENDERMODE_CONTINUOUSLY) {
+                mGLThread.setRenderMode(renderMode);
+            }
+            mGLThread.start();
+        }
+        mDetached = false;
+    }
+
+    /**
+     * This method is used as part of the View class and is not normally
+     * called or subclassed by clients of GLSurfaceView.
+     * Must not be called before a renderer has been set.
+     */
+    @Override
+    protected void onDetachedFromWindow() {
+        if (LOG_ATTACH_DETACH) {
+            Log.d(TAG, "onDetachedFromWindow");
+        }
+        if (mGLThread != null) {
+            mGLThread.requestExitAndWait();
+        }
+        mDetached = true;
+        super.onDetachedFromWindow();
+    }
+
+    // ----------------------------------------------------------------------
+
+    /**
+     * An interface used to wrap a GL interface.
+     * <p>Typically
+     * used for implementing debugging and tracing on top of the default
+     * GL interface. You would typically use this by creating your own class
+     * that implemented all the GL methods by delegating to another GL instance.
+     * Then you could add your own behavior before or after calling the
+     * delegate. All the GLWrapper would do was instantiate and return the
+     * wrapper GL instance:
+     * <pre class="prettyprint">
+     * class MyGLWrapper implements GLWrapper {
+     *     GL wrap(GL gl) {
+     *         return new MyGLImplementation(gl);
+     *     }
+     *     static class MyGLImplementation implements GL,GL10,GL11,... {
+     *         ...
+     *     }
+     * }
+     * </pre>
+     * @see #setGLWrapper(GLWrapper)
+     */
+    public interface GLWrapper {
+        /**
+         * Wraps a gl interface in another gl interface.
+         * @param gl a GL interface that is to be wrapped.
+         * @return either the input argument or another GL object that wraps the input argument.
+         */
+        GL wrap(GL gl);
+    }
+
+    /**
+     * A generic renderer interface.
+     * <p>
+     * The renderer is responsible for making OpenGL calls to render a frame.
+     * <p>
+     * GLSurfaceView clients typically create their own classes that implement
+     * this interface, and then call {@link GLSurfaceView#setRenderer} to
+     * register the renderer with the GLSurfaceView.
+     * <p>
+     *
+     * <div class="special reference">
+     * <h3>Developer Guides</h3>
+     * <p>For more information about how to use OpenGL, read the
+     * <a href="{@docRoot}guide/topics/graphics/opengl.html">OpenGL</a> developer guide.</p>
+     * </div>
+     *
+     * <h3>Threading</h3>
+     * The renderer will be called on a separate thread, so that rendering
+     * performance is decoupled from the UI thread. Clients typically need to
+     * communicate with the renderer from the UI thread, because that's where
+     * input events are received. Clients can communicate using any of the
+     * standard Java techniques for cross-thread communication, or they can
+     * use the {@link GLSurfaceView#queueEvent(Runnable)} convenience method.
+     * <p>
+     * <h3>EGL Context Lost</h3>
+     * There are situations where the EGL rendering context will be lost. This
+     * typically happens when device wakes up after going to sleep. When
+     * the EGL context is lost, all OpenGL resources (such as textures) that are
+     * associated with that context will be automatically deleted. In order to
+     * keep rendering correctly, a renderer must recreate any lost resources
+     * that it still needs. The {@link #onSurfaceCreated(GL10, EGLConfig)} method
+     * is a convenient place to do this.
+     *
+     *
+     * @see #setRenderer(Renderer)
+     */
+    public interface Renderer {
+        /**
+         * Called when the surface is created or recreated.
+         * <p>
+         * Called when the rendering thread
+         * starts and whenever the EGL context is lost. The EGL context will typically
+         * be lost when the Android device awakes after going to sleep.
+         * <p>
+         * Since this method is called at the beginning of rendering, as well as
+         * every time the EGL context is lost, this method is a convenient place to put
+         * code to create resources that need to be created when the rendering
+         * starts, and that need to be recreated when the EGL context is lost.
+         * Textures are an example of a resource that you might want to create
+         * here.
+         * <p>
+         * Note that when the EGL context is lost, all OpenGL resources associated
+         * with that context will be automatically deleted. You do not need to call
+         * the corresponding "glDelete" methods such as glDeleteTextures to
+         * manually delete these lost resources.
+         * <p>
+         * @param gl the GL interface. Use <code>instanceof</code> to
+         * test if the interface supports GL11 or higher interfaces.
+         * @param config the EGLConfig of the created surface. Can be used
+         * to create matching pbuffers.
+         */
+        void onSurfaceCreated(GL10 gl, EGLConfig config);
+
+        /**
+         * Called when the surface changed size.
+         * <p>
+         * Called after the surface is created and whenever
+         * the OpenGL ES surface size changes.
+         * <p>
+         * Typically you will set your viewport here. If your camera
+         * is fixed then you could also set your projection matrix here:
+         * <pre class="prettyprint">
+         * void onSurfaceChanged(GL10 gl, int width, int height) {
+         *     gl.glViewport(0, 0, width, height);
+         *     // for a fixed camera, set the projection too
+         *     float ratio = (float) width / height;
+         *     gl.glMatrixMode(GL10.GL_PROJECTION);
+         *     gl.glLoadIdentity();
+         *     gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10);
+         * }
+         * </pre>
+         * @param gl the GL interface. Use <code>instanceof</code> to
+         * test if the interface supports GL11 or higher interfaces.
+         * @param width
+         * @param height
+         */
+        void onSurfaceChanged(GL10 gl, int width, int height);
+
+        /**
+         * Called to draw the current frame.
+         * <p>
+         * This method is responsible for drawing the current frame.
+         * <p>
+         * The implementation of this method typically looks like this:
+         * <pre class="prettyprint">
+         * void onDrawFrame(GL10 gl) {
+         *     gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
+         *     //... other gl calls to render the scene ...
+         * }
+         * </pre>
+         * @param gl the GL interface. Use <code>instanceof</code> to
+         * test if the interface supports GL11 or higher interfaces.
+         */
+        void onDrawFrame(GL10 gl);
+
+        /**
+         * called after eglSwapBuffers() is called.
+         * can be used for custom synchronization / measurement.
+         */
+        void onEglSwapBuffers();
+    }
+
+    /**
+     * An interface for customizing the eglCreateContext and eglDestroyContext calls.
+     * <p>
+     * This interface must be implemented by clients wishing to call
+     * {@link GLSurfaceView#setEGLContextFactory(EGLContextFactory)}
+     */
+    public interface EGLContextFactory {
+        EGLContext createContext(EGL10 egl, EGLDisplay display, EGLConfig eglConfig);
+        void destroyContext(EGL10 egl, EGLDisplay display, EGLContext context);
+    }
+
+    private class DefaultContextFactory implements EGLContextFactory {
+        private int EGL_CONTEXT_CLIENT_VERSION = 0x3098;
+
+        public EGLContext createContext(EGL10 egl, EGLDisplay display, EGLConfig config) {
+            int[] attrib_list = {EGL_CONTEXT_CLIENT_VERSION, mEGLContextClientVersion,
+                    EGL10.EGL_NONE };
+
+            return egl.eglCreateContext(display, config, EGL10.EGL_NO_CONTEXT,
+                    mEGLContextClientVersion != 0 ? attrib_list : null);
+        }
+
+        public void destroyContext(EGL10 egl, EGLDisplay display,
+                EGLContext context) {
+            if (!egl.eglDestroyContext(display, context)) {
+                Log.e("DefaultContextFactory", "display:" + display + " context: " + context);
+                if (LOG_THREADS) {
+                    Log.i("DefaultContextFactory", "tid=" + Thread.currentThread().getId());
+                }
+                EglHelper.throwEglException("eglDestroyContex", egl.eglGetError());
+            }
+        }
+    }
+
+    /**
+     * An interface for customizing the eglCreateWindowSurface and eglDestroySurface calls.
+     * <p>
+     * This interface must be implemented by clients wishing to call
+     * {@link GLSurfaceView#setEGLWindowSurfaceFactory(EGLWindowSurfaceFactory)}
+     */
+    public interface EGLWindowSurfaceFactory {
+        /**
+         *  @return null if the surface cannot be constructed.
+         */
+        EGLSurface createWindowSurface(EGL10 egl, EGLDisplay display, EGLConfig config,
+                Object nativeWindow);
+        void destroySurface(EGL10 egl, EGLDisplay display, EGLSurface surface);
+    }
+
+    private static class DefaultWindowSurfaceFactory implements EGLWindowSurfaceFactory {
+
+        public EGLSurface createWindowSurface(EGL10 egl, EGLDisplay display,
+                EGLConfig config, Object nativeWindow) {
+            EGLSurface result = null;
+            try {
+                result = egl.eglCreateWindowSurface(display, config, nativeWindow, null);
+            } catch (IllegalArgumentException e) {
+                // This exception indicates that the surface flinger surface
+                // is not valid. This can happen if the surface flinger surface has
+                // been torn down, but the application has not yet been
+                // notified via SurfaceHolder.Callback.surfaceDestroyed.
+                // In theory the application should be notified first,
+                // but in practice sometimes it is not. See b/4588890
+                Log.e(TAG, "eglCreateWindowSurface", e);
+            }
+            return result;
+        }
+
+        public void destroySurface(EGL10 egl, EGLDisplay display,
+                EGLSurface surface) {
+            egl.eglDestroySurface(display, surface);
+        }
+    }
+
+    /**
+     * An interface for choosing an EGLConfig configuration from a list of
+     * potential configurations.
+     * <p>
+     * This interface must be implemented by clients wishing to call
+     * {@link GLSurfaceView#setEGLConfigChooser(EGLConfigChooser)}
+     */
+    public interface EGLConfigChooser {
+        /**
+         * Choose a configuration from the list. Implementors typically
+         * implement this method by calling
+         * {@link EGL10#eglChooseConfig} and iterating through the results. Please consult the
+         * EGL specification available from The Khronos Group to learn how to call eglChooseConfig.
+         * @param egl the EGL10 for the current display.
+         * @param display the current display.
+         * @return the chosen configuration.
+         */
+        EGLConfig chooseConfig(EGL10 egl, EGLDisplay display);
+    }
+
+    private abstract class BaseConfigChooser
+            implements EGLConfigChooser {
+        public BaseConfigChooser(int[] configSpec) {
+            mConfigSpec = filterConfigSpec(configSpec);
+        }
+
+        public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) {
+            int[] num_config = new int[1];
+            if (!egl.eglChooseConfig(display, mConfigSpec, null, 0,
+                    num_config)) {
+                throw new IllegalArgumentException("eglChooseConfig failed");
+            }
+
+            int numConfigs = num_config[0];
+
+            if (numConfigs <= 0) {
+                throw new IllegalArgumentException(
+                        "No configs match configSpec");
+            }
+
+            EGLConfig[] configs = new EGLConfig[numConfigs];
+            if (!egl.eglChooseConfig(display, mConfigSpec, configs, numConfigs,
+                    num_config)) {
+                throw new IllegalArgumentException("eglChooseConfig#2 failed");
+            }
+            EGLConfig config = chooseConfig(egl, display, configs);
+            if (config == null) {
+                throw new IllegalArgumentException("No config chosen");
+            }
+            return config;
+        }
+
+        abstract EGLConfig chooseConfig(EGL10 egl, EGLDisplay display,
+                EGLConfig[] configs);
+
+        protected int[] mConfigSpec;
+
+        private int[] filterConfigSpec(int[] configSpec) {
+            if (mEGLContextClientVersion != 2) {
+                return configSpec;
+            }
+            /* We know none of the subclasses define EGL_RENDERABLE_TYPE.
+             * And we know the configSpec is well formed.
+             */
+            int len = configSpec.length;
+            int[] newConfigSpec = new int[len + 2];
+            System.arraycopy(configSpec, 0, newConfigSpec, 0, len-1);
+            newConfigSpec[len-1] = EGL10.EGL_RENDERABLE_TYPE;
+            newConfigSpec[len] = 4; /* EGL_OPENGL_ES2_BIT */
+            newConfigSpec[len+1] = EGL10.EGL_NONE;
+            return newConfigSpec;
+        }
+    }
+
+    /**
+     * Choose a configuration with exactly the specified r,g,b,a sizes,
+     * and at least the specified depth and stencil sizes.
+     */
+    private class ComponentSizeChooser extends BaseConfigChooser {
+        public ComponentSizeChooser(int redSize, int greenSize, int blueSize,
+                int alphaSize, int depthSize, int stencilSize) {
+            super(new int[] {
+                    EGL10.EGL_RED_SIZE, redSize,
+                    EGL10.EGL_GREEN_SIZE, greenSize,
+                    EGL10.EGL_BLUE_SIZE, blueSize,
+                    EGL10.EGL_ALPHA_SIZE, alphaSize,
+                    EGL10.EGL_DEPTH_SIZE, depthSize,
+                    EGL10.EGL_STENCIL_SIZE, stencilSize,
+                    EGL10.EGL_NONE});
+            mValue = new int[1];
+            mRedSize = redSize;
+            mGreenSize = greenSize;
+            mBlueSize = blueSize;
+            mAlphaSize = alphaSize;
+            mDepthSize = depthSize;
+            mStencilSize = stencilSize;
+       }
+
+        @Override
+        public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display,
+                EGLConfig[] configs) {
+            for (EGLConfig config : configs) {
+                int d = findConfigAttrib(egl, display, config,
+                        EGL10.EGL_DEPTH_SIZE, 0);
+                int s = findConfigAttrib(egl, display, config,
+                        EGL10.EGL_STENCIL_SIZE, 0);
+                if ((d >= mDepthSize) && (s >= mStencilSize)) {
+                    int r = findConfigAttrib(egl, display, config,
+                            EGL10.EGL_RED_SIZE, 0);
+                    int g = findConfigAttrib(egl, display, config,
+                             EGL10.EGL_GREEN_SIZE, 0);
+                    int b = findConfigAttrib(egl, display, config,
+                              EGL10.EGL_BLUE_SIZE, 0);
+                    int a = findConfigAttrib(egl, display, config,
+                            EGL10.EGL_ALPHA_SIZE, 0);
+                    if ((r == mRedSize) && (g == mGreenSize)
+                            && (b == mBlueSize) && (a == mAlphaSize)) {
+                        return config;
+                    }
+                }
+            }
+            return null;
+        }
+
+        private int findConfigAttrib(EGL10 egl, EGLDisplay display,
+                EGLConfig config, int attribute, int defaultValue) {
+
+            if (egl.eglGetConfigAttrib(display, config, attribute, mValue)) {
+                return mValue[0];
+            }
+            return defaultValue;
+        }
+
+        private int[] mValue;
+        // Subclasses can adjust these values:
+        protected int mRedSize;
+        protected int mGreenSize;
+        protected int mBlueSize;
+        protected int mAlphaSize;
+        protected int mDepthSize;
+        protected int mStencilSize;
+        }
+
+    /**
+     * This class will choose a RGB_888 surface with
+     * or without a depth buffer.
+     *
+     */
+    private class SimpleEGLConfigChooser extends ComponentSizeChooser {
+        public SimpleEGLConfigChooser(boolean withDepthBuffer) {
+            super(8, 8, 8, 0, withDepthBuffer ? 16 : 0, 0);
+        }
+    }
+
+    /**
+     * An EGL helper class.
+     */
+
+    private static class EglHelper {
+        public EglHelper(WeakReference<GLSurfaceViewCustom> glSurfaceViewWeakRef) {
+            mGLSurfaceViewWeakRef = glSurfaceViewWeakRef;
+        }
+
+        /**
+         * Initialize EGL for a given configuration spec.
+         * @param configSpec
+         */
+        public void start() {
+            if (LOG_EGL) {
+                Log.w("EglHelper", "start() tid=" + Thread.currentThread().getId());
+            }
+            /*
+             * Get an EGL instance
+             */
+            mEgl = (EGL10) EGLContext.getEGL();
+
+            /*
+             * Get to the default display.
+             */
+            mEglDisplay = mEgl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
+
+            if (mEglDisplay == EGL10.EGL_NO_DISPLAY) {
+                throw new RuntimeException("eglGetDisplay failed");
+            }
+
+            /*
+             * We can now initialize EGL for that display
+             */
+            int[] version = new int[2];
+            if(!mEgl.eglInitialize(mEglDisplay, version)) {
+                throw new RuntimeException("eglInitialize failed");
+            }
+            GLSurfaceViewCustom view = mGLSurfaceViewWeakRef.get();
+            if (view == null) {
+                mEglConfig = null;
+                mEglContext = null;
+            } else {
+                mEglConfig = view.mEGLConfigChooser.chooseConfig(mEgl, mEglDisplay);
+
+                /*
+                * Create an EGL context. We want to do this as rarely as we can, because an
+                * EGL context is a somewhat heavy object.
+                */
+                mEglContext = view.mEGLContextFactory.createContext(mEgl, mEglDisplay, mEglConfig);
+            }
+            if (mEglContext == null || mEglContext == EGL10.EGL_NO_CONTEXT) {
+                mEglContext = null;
+                throwEglException("createContext");
+            }
+            if (LOG_EGL) {
+                Log.w("EglHelper", "createContext " + mEglContext + " tid=" + Thread.currentThread().getId());
+            }
+
+            mEglSurface = null;
+        }
+
+        /**
+         * Create an egl surface for the current SurfaceHolder surface. If a surface
+         * already exists, destroy it before creating the new surface.
+         *
+         * @return true if the surface was created successfully.
+         */
+        public boolean createSurface() {
+            if (LOG_EGL) {
+                Log.w("EglHelper", "createSurface()  tid=" + Thread.currentThread().getId());
+            }
+            /*
+             * Check preconditions.
+             */
+            if (mEgl == null) {
+                throw new RuntimeException("egl not initialized");
+            }
+            if (mEglDisplay == null) {
+                throw new RuntimeException("eglDisplay not initialized");
+            }
+            if (mEglConfig == null) {
+                throw new RuntimeException("mEglConfig not initialized");
+            }
+
+            /*
+             *  The window size has changed, so we need to create a new
+             *  surface.
+             */
+            destroySurfaceImp();
+
+            /*
+             * Create an EGL surface we can render into.
+             */
+            GLSurfaceViewCustom view = mGLSurfaceViewWeakRef.get();
+            if (view != null) {
+                mEglSurface = view.mEGLWindowSurfaceFactory.createWindowSurface(mEgl,
+                        mEglDisplay, mEglConfig, view.getHolder());
+            } else {
+                mEglSurface = null;
+            }
+
+            if (mEglSurface == null || mEglSurface == EGL10.EGL_NO_SURFACE) {
+                int error = mEgl.eglGetError();
+                if (error == EGL10.EGL_BAD_NATIVE_WINDOW) {
+                    Log.e("EglHelper", "createWindowSurface returned EGL_BAD_NATIVE_WINDOW.");
+                }
+                return false;
+            }
+
+            /*
+             * Before we can issue GL commands, we need to make sure
+             * the context is current and bound to a surface.
+             */
+            if (!mEgl.eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext)) {
+                /*
+                 * Could not make the context current, probably because the underlying
+                 * SurfaceView surface has been destroyed.
+                 */
+                logEglErrorAsWarning("EGLHelper", "eglMakeCurrent", mEgl.eglGetError());
+                return false;
+            }
+
+            return true;
+        }
+
+        /**
+         * Create a GL object for the current EGL context.
+         * @return
+         */
+        GL createGL() {
+
+            GL gl = mEglContext.getGL();
+            GLSurfaceViewCustom view = mGLSurfaceViewWeakRef.get();
+            if (view != null) {
+                if (view.mGLWrapper != null) {
+                    gl = view.mGLWrapper.wrap(gl);
+                }
+
+/*                if ((view.mDebugFlags & (DEBUG_CHECK_GL_ERROR | DEBUG_LOG_GL_CALLS)) != 0) {
+                    int configFlags = 0;
+                    Writer log = null;
+                    if ((view.mDebugFlags & DEBUG_CHECK_GL_ERROR) != 0) {
+                        configFlags |= GLDebugHelper.CONFIG_CHECK_GL_ERROR;
+                    }
+                    if ((view.mDebugFlags & DEBUG_LOG_GL_CALLS) != 0) {
+                        log = new LogWriter();
+                    }
+                    gl = GLDebugHelper.wrap(gl, configFlags, log);
+                }*/
+            }
+            return gl;
+        }
+
+        /**
+         * Display the current render surface.
+         * @return the EGL error code from eglSwapBuffers.
+         */
+        public int swap() {
+            if (! mEgl.eglSwapBuffers(mEglDisplay, mEglSurface)) {
+                return mEgl.eglGetError();
+            }
+            return EGL10.EGL_SUCCESS;
+        }
+
+        public void destroySurface() {
+            if (LOG_EGL) {
+                Log.w("EglHelper", "destroySurface()  tid=" + Thread.currentThread().getId());
+            }
+            destroySurfaceImp();
+        }
+
+        private void destroySurfaceImp() {
+            if (mEglSurface != null && mEglSurface != EGL10.EGL_NO_SURFACE) {
+                mEgl.eglMakeCurrent(mEglDisplay, EGL10.EGL_NO_SURFACE,
+                        EGL10.EGL_NO_SURFACE,
+                        EGL10.EGL_NO_CONTEXT);
+                GLSurfaceViewCustom view = mGLSurfaceViewWeakRef.get();
+                if (view != null) {
+                    view.mEGLWindowSurfaceFactory.destroySurface(mEgl, mEglDisplay, mEglSurface);
+                }
+                mEglSurface = null;
+            }
+        }
+
+        public void finish() {
+            if (LOG_EGL) {
+                Log.w("EglHelper", "finish() tid=" + Thread.currentThread().getId());
+            }
+            if (mEglContext != null) {
+                GLSurfaceViewCustom view = mGLSurfaceViewWeakRef.get();
+                if (view != null) {
+                    view.mEGLContextFactory.destroyContext(mEgl, mEglDisplay, mEglContext);
+                }
+                mEglContext = null;
+            }
+            if (mEglDisplay != null) {
+                mEgl.eglTerminate(mEglDisplay);
+                mEglDisplay = null;
+            }
+        }
+
+        private void throwEglException(String function) {
+            throwEglException(function, mEgl.eglGetError());
+        }
+
+        public static void throwEglException(String function, int error) {
+            String message = formatEglError(function, error);
+            if (LOG_THREADS) {
+                Log.e("EglHelper", "throwEglException tid=" + Thread.currentThread().getId() + " "
+                        + message);
+            }
+            throw new RuntimeException(message);
+        }
+
+        public static void logEglErrorAsWarning(String tag, String function, int error) {
+            Log.w(tag, formatEglError(function, error));
+        }
+
+        public static String formatEglError(String function, int error) {
+            return function + " failed: " + error;
+        }
+
+        private WeakReference<GLSurfaceViewCustom> mGLSurfaceViewWeakRef;
+        EGL10 mEgl;
+        EGLDisplay mEglDisplay;
+        EGLSurface mEglSurface;
+        EGLConfig mEglConfig;
+        EGLContext mEglContext;
+
+    }
+
+    /**
+     * A generic GL Thread. Takes care of initializing EGL and GL. Delegates
+     * to a Renderer instance to do the actual drawing. Can be configured to
+     * render continuously or on request.
+     *
+     * All potentially blocking synchronization is done through the
+     * sGLThreadManager object. This avoids multiple-lock ordering issues.
+     *
+     */
+    static class GLThread extends Thread {
+        GLThread(WeakReference<GLSurfaceViewCustom> glSurfaceViewWeakRef) {
+            super();
+            mWidth = 0;
+            mHeight = 0;
+            mRequestRender = true;
+            mRenderMode = RENDERMODE_CONTINUOUSLY;
+            mGLSurfaceViewWeakRef = glSurfaceViewWeakRef;
+        }
+
+        @Override
+        public void run() {
+            setName("GLThread " + getId());
+            if (LOG_THREADS) {
+                Log.i("GLThread", "starting tid=" + getId());
+            }
+
+            try {
+                guardedRun();
+            } catch (InterruptedException e) {
+                // fall thru and exit normally
+            } finally {
+                sGLThreadManager.threadExiting(this);
+            }
+        }
+
+        /*
+         * This private method should only be called inside a
+         * synchronized(sGLThreadManager) block.
+         */
+        private void stopEglSurfaceLocked() {
+            if (mHaveEglSurface) {
+                mHaveEglSurface = false;
+                mEglHelper.destroySurface();
+            }
+        }
+
+        /*
+         * This private method should only be called inside a
+         * synchronized(sGLThreadManager) block.
+         */
+        private void stopEglContextLocked() {
+            if (mHaveEglContext) {
+                mEglHelper.finish();
+                mHaveEglContext = false;
+                sGLThreadManager.releaseEglContextLocked(this);
+            }
+        }
+        private void guardedRun() throws InterruptedException {
+            mEglHelper = new EglHelper(mGLSurfaceViewWeakRef);
+            mHaveEglContext = false;
+            mHaveEglSurface = false;
+            try {
+                GL10 gl = null;
+                boolean createEglContext = false;
+                boolean createEglSurface = false;
+                boolean createGlInterface = false;
+                boolean lostEglContext = false;
+                boolean sizeChanged = false;
+                boolean wantRenderNotification = false;
+                boolean doRenderNotification = false;
+                boolean askedToReleaseEglContext = false;
+                int w = 0;
+                int h = 0;
+                Runnable event = null;
+
+                while (true) {
+                    synchronized (sGLThreadManager) {
+                        while (true) {
+                            if (mShouldExit) {
+                                return;
+                            }
+
+                            if (! mEventQueue.isEmpty()) {
+                                event = mEventQueue.remove(0);
+                                break;
+                            }
+
+                            // Update the pause state.
+                            boolean pausing = false;
+                            if (mPaused != mRequestPaused) {
+                                pausing = mRequestPaused;
+                                mPaused = mRequestPaused;
+                                sGLThreadManager.notifyAll();
+                                if (LOG_PAUSE_RESUME) {
+                                    Log.i("GLThread", "mPaused is now " + mPaused + " tid=" + getId());
+                                }
+                            }
+
+                            // Do we need to give up the EGL context?
+                            if (mShouldReleaseEglContext) {
+                                if (LOG_SURFACE) {
+                                    Log.i("GLThread", "releasing EGL context because asked to tid=" + getId());
+                                }
+                                stopEglSurfaceLocked();
+                                stopEglContextLocked();
+                                mShouldReleaseEglContext = false;
+                                askedToReleaseEglContext = true;
+                            }
+
+                            // Have we lost the EGL context?
+                            if (lostEglContext) {
+                                stopEglSurfaceLocked();
+                                stopEglContextLocked();
+                                lostEglContext = false;
+                            }
+
+                            // When pausing, release the EGL surface:
+                            if (pausing && mHaveEglSurface) {
+                                if (LOG_SURFACE) {
+                                    Log.i("GLThread", "releasing EGL surface because paused tid=" + getId());
+                                }
+                                stopEglSurfaceLocked();
+                            }
+
+                            // When pausing, optionally release the EGL Context:
+                            if (pausing && mHaveEglContext) {
+                                GLSurfaceViewCustom view = mGLSurfaceViewWeakRef.get();
+                                boolean preserveEglContextOnPause = view == null ?
+                                        false : view.mPreserveEGLContextOnPause;
+                                if (!preserveEglContextOnPause || sGLThreadManager.shouldReleaseEGLContextWhenPausing()) {
+                                    stopEglContextLocked();
+                                    if (LOG_SURFACE) {
+                                        Log.i("GLThread", "releasing EGL context because paused tid=" + getId());
+                                    }
+                                }
+                            }
+
+                            // When pausing, optionally terminate EGL:
+                            if (pausing) {
+                                if (sGLThreadManager.shouldTerminateEGLWhenPausing()) {
+                                    mEglHelper.finish();
+                                    if (LOG_SURFACE) {
+                                        Log.i("GLThread", "terminating EGL because paused tid=" + getId());
+                                    }
+                                }
+                            }
+
+                            // Have we lost the SurfaceView surface?
+                            if ((! mHasSurface) && (! mWaitingForSurface)) {
+                                if (LOG_SURFACE) {
+                                    Log.i("GLThread", "noticed surfaceView surface lost tid=" + getId());
+                                }
+                                if (mHaveEglSurface) {
+                                    stopEglSurfaceLocked();
+                                }
+                                mWaitingForSurface = true;
+                                mSurfaceIsBad = false;
+                                sGLThreadManager.notifyAll();
+                            }
+
+                            // Have we acquired the surface view surface?
+                            if (mHasSurface && mWaitingForSurface) {
+                                if (LOG_SURFACE) {
+                                    Log.i("GLThread", "noticed surfaceView surface acquired tid=" + getId());
+                                }
+                                mWaitingForSurface = false;
+                                sGLThreadManager.notifyAll();
+                            }
+
+                            if (doRenderNotification) {
+                                if (LOG_SURFACE) {
+                                    Log.i("GLThread", "sending render notification tid=" + getId());
+                                }
+                                wantRenderNotification = false;
+                                doRenderNotification = false;
+                                mRenderComplete = true;
+                                sGLThreadManager.notifyAll();
+                            }
+
+                            // Ready to draw?
+                            if (readyToDraw()) {
+
+                                // If we don't have an EGL context, try to acquire one.
+                                if (! mHaveEglContext) {
+                                    if (askedToReleaseEglContext) {
+                                        askedToReleaseEglContext = false;
+                                    } else if (sGLThreadManager.tryAcquireEglContextLocked(this)) {
+                                        try {
+                                            mEglHelper.start();
+                                        } catch (RuntimeException t) {
+                                            sGLThreadManager.releaseEglContextLocked(this);
+                                            throw t;
+                                        }
+                                        mHaveEglContext = true;
+                                        createEglContext = true;
+
+                                        sGLThreadManager.notifyAll();
+                                    }
+                                }
+
+                                if (mHaveEglContext && !mHaveEglSurface) {
+                                    mHaveEglSurface = true;
+                                    createEglSurface = true;
+                                    createGlInterface = true;
+                                    sizeChanged = true;
+                                }
+
+                                if (mHaveEglSurface) {
+                                    if (mSizeChanged) {
+                                        sizeChanged = true;
+                                        w = mWidth;
+                                        h = mHeight;
+                                        wantRenderNotification = true;
+                                        if (LOG_SURFACE) {
+                                            Log.i("GLThread",
+                                                    "noticing that we want render notification tid="
+                                                    + getId());
+                                        }
+
+                                        // Destroy and recreate the EGL surface.
+                                        createEglSurface = true;
+
+                                        mSizeChanged = false;
+                                    }
+                                    mRequestRender = false;
+                                    sGLThreadManager.notifyAll();
+                                    break;
+                                }
+                            }
+
+                            // By design, this is the only place in a GLThread thread where we wait().
+                            if (LOG_THREADS) {
+                                Log.i("GLThread", "waiting tid=" + getId()
+                                    + " mHaveEglContext: " + mHaveEglContext
+                                    + " mHaveEglSurface: " + mHaveEglSurface
+                                    + " mPaused: " + mPaused
+                                    + " mHasSurface: " + mHasSurface
+                                    + " mSurfaceIsBad: " + mSurfaceIsBad
+                                    + " mWaitingForSurface: " + mWaitingForSurface
+                                    + " mWidth: " + mWidth
+                                    + " mHeight: " + mHeight
+                                    + " mRequestRender: " + mRequestRender
+                                    + " mRenderMode: " + mRenderMode);
+                            }
+                            sGLThreadManager.wait();
+                        }
+                    } // end of synchronized(sGLThreadManager)
+
+                    if (event != null) {
+                        event.run();
+                        event = null;
+                        continue;
+                    }
+
+                    if (createEglSurface) {
+                        if (LOG_SURFACE) {
+                            Log.w("GLThread", "egl createSurface");
+                        }
+                        if (!mEglHelper.createSurface()) {
+                            synchronized(sGLThreadManager) {
+                                mSurfaceIsBad = true;
+                                sGLThreadManager.notifyAll();
+                            }
+                            continue;
+                        }
+                        createEglSurface = false;
+                    }
+
+                    if (createGlInterface) {
+                        gl = (GL10) mEglHelper.createGL();
+
+                        sGLThreadManager.checkGLDriver(gl);
+                        createGlInterface = false;
+                    }
+
+                    if (createEglContext) {
+                        if (LOG_RENDERER) {
+                            Log.w("GLThread", "onSurfaceCreated");
+                        }
+                        GLSurfaceViewCustom view = mGLSurfaceViewWeakRef.get();
+                        if (view != null) {
+                            view.mRenderer.onSurfaceCreated(gl, mEglHelper.mEglConfig);
+                        }
+                        createEglContext = false;
+                    }
+
+                    if (sizeChanged) {
+                        if (LOG_RENDERER) {
+                            Log.w("GLThread", "onSurfaceChanged(" + w + ", " + h + ")");
+                        }
+                        GLSurfaceViewCustom view = mGLSurfaceViewWeakRef.get();
+                        if (view != null) {
+                            view.mRenderer.onSurfaceChanged(gl, w, h);
+                        }
+                        sizeChanged = false;
+                    }
+
+                    if (LOG_RENDERER_DRAW_FRAME) {
+                        Log.w("GLThread", "onDrawFrame tid=" + getId());
+                    }
+                    {
+                        GLSurfaceViewCustom view = mGLSurfaceViewWeakRef.get();
+                        if (view != null) {
+                            view.mRenderer.onDrawFrame(gl);
+                        }
+                    }
+                    int swapError = mEglHelper.swap();
+                    switch (swapError) {
+                        case EGL10.EGL_SUCCESS:
+                            GLSurfaceViewCustom view = mGLSurfaceViewWeakRef.get();
+                            if (view != null) {
+                                view.mRenderer.onEglSwapBuffers();
+                            }
+                            break;
+                        case EGL11.EGL_CONTEXT_LOST:
+                            if (LOG_SURFACE) {
+                                Log.i("GLThread", "egl context lost tid=" + getId());
+                            }
+                            lostEglContext = true;
+                            break;
+                        default:
+                            // Other errors typically mean that the current surface is bad,
+                            // probably because the SurfaceView surface has been destroyed,
+                            // but we haven't been notified yet.
+                            // Log the error to help developers understand why rendering stopped.
+                            EglHelper.logEglErrorAsWarning("GLThread", "eglSwapBuffers", swapError);
+
+                            synchronized(sGLThreadManager) {
+                                mSurfaceIsBad = true;
+                                sGLThreadManager.notifyAll();
+                            }
+                            break;
+                    }
+
+                    if (wantRenderNotification) {
+                        doRenderNotification = true;
+                    }
+                }
+
+            } finally {
+                /*
+                 * clean-up everything...
+                 */
+                synchronized (sGLThreadManager) {
+                    stopEglSurfaceLocked();
+                    stopEglContextLocked();
+                }
+            }
+        }
+
+        public boolean ableToDraw() {
+            return mHaveEglContext && mHaveEglSurface && readyToDraw();
+        }
+
+        private boolean readyToDraw() {
+            return (!mPaused) && mHasSurface && (!mSurfaceIsBad)
+                && (mWidth > 0) && (mHeight > 0)
+                && (mRequestRender || (mRenderMode == RENDERMODE_CONTINUOUSLY));
+        }
+
+        public void setRenderMode(int renderMode) {
+            if ( !((RENDERMODE_WHEN_DIRTY <= renderMode) && (renderMode <= RENDERMODE_CONTINUOUSLY)) ) {
+                throw new IllegalArgumentException("renderMode");
+            }
+            synchronized(sGLThreadManager) {
+                mRenderMode = renderMode;
+                sGLThreadManager.notifyAll();
+            }
+        }
+
+        public int getRenderMode() {
+            synchronized(sGLThreadManager) {
+                return mRenderMode;
+            }
+        }
+
+        public void requestRender() {
+            synchronized(sGLThreadManager) {
+                mRequestRender = true;
+                sGLThreadManager.notifyAll();
+            }
+        }
+
+        public void surfaceCreated() {
+            synchronized(sGLThreadManager) {
+                if (LOG_THREADS) {
+                    Log.i("GLThread", "surfaceCreated tid=" + getId());
+                }
+                mHasSurface = true;
+                sGLThreadManager.notifyAll();
+                while((mWaitingForSurface) && (!mExited)) {
+                    try {
+                        sGLThreadManager.wait();
+                    } catch (InterruptedException e) {
+                        Thread.currentThread().interrupt();
+                    }
+                }
+            }
+        }
+
+        public void surfaceDestroyed() {
+            synchronized(sGLThreadManager) {
+                if (LOG_THREADS) {
+                    Log.i("GLThread", "surfaceDestroyed tid=" + getId());
+                }
+                mHasSurface = false;
+                sGLThreadManager.notifyAll();
+                while((!mWaitingForSurface) && (!mExited)) {
+                    try {
+                        sGLThreadManager.wait();
+                    } catch (InterruptedException e) {
+                        Thread.currentThread().interrupt();
+                    }
+                }
+            }
+        }
+
+        public void onPause() {
+            synchronized (sGLThreadManager) {
+                if (LOG_PAUSE_RESUME) {
+                    Log.i("GLThread", "onPause tid=" + getId());
+                }
+                mRequestPaused = true;
+                sGLThreadManager.notifyAll();
+                while ((! mExited) && (! mPaused)) {
+                    if (LOG_PAUSE_RESUME) {
+                        Log.i("Main thread", "onPause waiting for mPaused.");
+                    }
+                    try {
+                        sGLThreadManager.wait();
+                    } catch (InterruptedException ex) {
+                        Thread.currentThread().interrupt();
+                    }
+                }
+            }
+        }
+
+        public void onResume() {
+            synchronized (sGLThreadManager) {
+                if (LOG_PAUSE_RESUME) {
+                    Log.i("GLThread", "onResume tid=" + getId());
+                }
+                mRequestPaused = false;
+                mRequestRender = true;
+                mRenderComplete = false;
+                sGLThreadManager.notifyAll();
+                while ((! mExited) && mPaused && (!mRenderComplete)) {
+                    if (LOG_PAUSE_RESUME) {
+                        Log.i("Main thread", "onResume waiting for !mPaused.");
+                    }
+                    try {
+                        sGLThreadManager.wait();
+                    } catch (InterruptedException ex) {
+                        Thread.currentThread().interrupt();
+                    }
+                }
+            }
+        }
+
+        public void onWindowResize(int w, int h) {
+            synchronized (sGLThreadManager) {
+                mWidth = w;
+                mHeight = h;
+                mSizeChanged = true;
+                mRequestRender = true;
+                mRenderComplete = false;
+                sGLThreadManager.notifyAll();
+
+                // Wait for thread to react to resize and render a frame
+                while (! mExited && !mPaused && !mRenderComplete
+                        && ableToDraw()) {
+                    if (LOG_SURFACE) {
+                        Log.i("Main thread", "onWindowResize waiting for render complete from tid=" + getId());
+                    }
+                    try {
+                        sGLThreadManager.wait();
+                    } catch (InterruptedException ex) {
+                        Thread.currentThread().interrupt();
+                    }
+                }
+            }
+        }
+
+        public void requestExitAndWait() {
+            // don't call this from GLThread thread or it is a guaranteed
+            // deadlock!
+            synchronized(sGLThreadManager) {
+                mShouldExit = true;
+                sGLThreadManager.notifyAll();
+                while (! mExited) {
+                    try {
+                        sGLThreadManager.wait();
+                    } catch (InterruptedException ex) {
+                        Thread.currentThread().interrupt();
+                    }
+                }
+            }
+        }
+
+        public void requestReleaseEglContextLocked() {
+            mShouldReleaseEglContext = true;
+            sGLThreadManager.notifyAll();
+        }
+
+        /**
+         * Queue an "event" to be run on the GL rendering thread.
+         * @param r the runnable to be run on the GL rendering thread.
+         */
+        public void queueEvent(Runnable r) {
+            if (r == null) {
+                throw new IllegalArgumentException("r must not be null");
+            }
+            synchronized(sGLThreadManager) {
+                mEventQueue.add(r);
+                sGLThreadManager.notifyAll();
+            }
+        }
+
+        // Once the thread is started, all accesses to the following member
+        // variables are protected by the sGLThreadManager monitor
+        private boolean mShouldExit;
+        private boolean mExited;
+        private boolean mRequestPaused;
+        private boolean mPaused;
+        private boolean mHasSurface;
+        private boolean mSurfaceIsBad;
+        private boolean mWaitingForSurface;
+        private boolean mHaveEglContext;
+        private boolean mHaveEglSurface;
+        private boolean mShouldReleaseEglContext;
+        private int mWidth;
+        private int mHeight;
+        private int mRenderMode;
+        private boolean mRequestRender;
+        private boolean mRenderComplete;
+        private ArrayList<Runnable> mEventQueue = new ArrayList<Runnable>();
+        private boolean mSizeChanged = true;
+
+        // End of member variables protected by the sGLThreadManager monitor.
+
+        private EglHelper mEglHelper;
+
+        /**
+         * Set once at thread construction time, nulled out when the parent view is garbage
+         * called. This weak reference allows the GLSurfaceView to be garbage collected while
+         * the GLThread is still alive.
+         */
+        private WeakReference<GLSurfaceViewCustom> mGLSurfaceViewWeakRef;
+
+    }
+
+    static class LogWriter extends Writer {
+
+        @Override public void close() {
+            flushBuilder();
+        }
+
+        @Override public void flush() {
+            flushBuilder();
+        }
+
+        @Override public void write(char[] buf, int offset, int count) {
+            for(int i = 0; i < count; i++) {
+                char c = buf[offset + i];
+                if ( c == '\n') {
+                    flushBuilder();
+                }
+                else {
+                    mBuilder.append(c);
+                }
+            }
+        }
+
+        private void flushBuilder() {
+            if (mBuilder.length() > 0) {
+                Log.v("GLSurfaceViewCustom", mBuilder.toString());
+                mBuilder.delete(0, mBuilder.length());
+            }
+        }
+
+        private StringBuilder mBuilder = new StringBuilder();
+    }
+
+
+    private void checkRenderThreadState() {
+        if (mGLThread != null) {
+            throw new IllegalStateException(
+                    "setRenderer has already been called for this instance.");
+        }
+    }
+
+    private static class GLThreadManager {
+        private static String TAG = "GLThreadManager";
+
+        public synchronized void threadExiting(GLThread thread) {
+            if (LOG_THREADS) {
+                Log.i("GLThread", "exiting tid=" +  thread.getId());
+            }
+            thread.mExited = true;
+            if (mEglOwner == thread) {
+                mEglOwner = null;
+            }
+            notifyAll();
+        }
+
+        /*
+         * Tries once to acquire the right to use an EGL
+         * context. Does not block. Requires that we are already
+         * in the sGLThreadManager monitor when this is called.
+         *
+         * @return true if the right to use an EGL context was acquired.
+         */
+        public boolean tryAcquireEglContextLocked(GLThread thread) {
+            if (mEglOwner == thread || mEglOwner == null) {
+                mEglOwner = thread;
+                notifyAll();
+                return true;
+            }
+            checkGLESVersion();
+            if (mMultipleGLESContextsAllowed) {
+                return true;
+            }
+            // Notify the owning thread that it should release the context.
+            // TODO: implement a fairness policy. Currently
+            // if the owning thread is drawing continuously it will just
+            // reacquire the EGL context.
+            if (mEglOwner != null) {
+                mEglOwner.requestReleaseEglContextLocked();
+            }
+            return false;
+        }
+
+        /*
+         * Releases the EGL context. Requires that we are already in the
+         * sGLThreadManager monitor when this is called.
+         */
+        public void releaseEglContextLocked(GLThread thread) {
+            if (mEglOwner == thread) {
+                mEglOwner = null;
+            }
+            notifyAll();
+        }
+
+        public synchronized boolean shouldReleaseEGLContextWhenPausing() {
+            // Release the EGL context when pausing even if
+            // the hardware supports multiple EGL contexts.
+            // Otherwise the device could run out of EGL contexts.
+            return mLimitedGLESContexts;
+        }
+
+        public synchronized boolean shouldTerminateEGLWhenPausing() {
+            checkGLESVersion();
+            return !mMultipleGLESContextsAllowed;
+        }
+
+        public synchronized void checkGLDriver(GL10 gl) {
+            if (! mGLESDriverCheckComplete) {
+                checkGLESVersion();
+                String renderer = gl.glGetString(GL10.GL_RENDERER);
+                if (mGLESVersion < kGLES_20) {
+                    mMultipleGLESContextsAllowed =
+                        ! renderer.startsWith(kMSM7K_RENDERER_PREFIX);
+                    notifyAll();
+                }
+                mLimitedGLESContexts = !mMultipleGLESContextsAllowed;
+                if (LOG_SURFACE) {
+                    Log.w(TAG, "checkGLDriver renderer = \"" + renderer + "\" multipleContextsAllowed = "
+                        + mMultipleGLESContextsAllowed
+                        + " mLimitedGLESContexts = " + mLimitedGLESContexts);
+                }
+                mGLESDriverCheckComplete = true;
+            }
+        }
+
+        private void checkGLESVersion() {
+            if (! mGLESVersionCheckComplete) {
+                mGLESVersion = kGLES_20; /*SystemProperties.getInt(
+                        "ro.opengles.version",
+                        ConfigurationInfo.GL_ES_VERSION_UNDEFINED); */
+                if (mGLESVersion >= kGLES_20) {
+                    mMultipleGLESContextsAllowed = true;
+                }
+                if (LOG_SURFACE) {
+                    Log.w(TAG, "checkGLESVersion mGLESVersion =" +
+                            " " + mGLESVersion + " mMultipleGLESContextsAllowed = " + mMultipleGLESContextsAllowed);
+                }
+                mGLESVersionCheckComplete = true;
+            }
+        }
+
+        /**
+         * This check was required for some pre-Android-3.0 hardware. Android 3.0 provides
+         * support for hardware-accelerated views, therefore multiple EGL contexts are
+         * supported on all Android 3.0+ EGL drivers.
+         */
+        private boolean mGLESVersionCheckComplete;
+        private int mGLESVersion;
+        private boolean mGLESDriverCheckComplete;
+        private boolean mMultipleGLESContextsAllowed;
+        private boolean mLimitedGLESContexts;
+        private static final int kGLES_20 = 0x20000;
+        private static final String kMSM7K_RENDERER_PREFIX =
+            "Q3Dimension MSM7500 ";
+        private GLThread mEglOwner;
+    }
+
+    private static final GLThreadManager sGLThreadManager = new GLThreadManager();
+
+    private final WeakReference<GLSurfaceViewCustom> mThisWeakRef =
+            new WeakReference<GLSurfaceViewCustom>(this);
+    private GLThread mGLThread;
+    private Renderer mRenderer;
+    private boolean mDetached;
+    private EGLConfigChooser mEGLConfigChooser;
+    private EGLContextFactory mEGLContextFactory;
+    private EGLWindowSurfaceFactory mEGLWindowSurfaceFactory;
+    private GLWrapper mGLWrapper;
+    private int mDebugFlags;
+    private int mEGLContextClientVersion;
+    private boolean mPreserveEGLContextOnPause;
+}
diff --git a/tests/tests/openglperf/src/android/openglperf/cts/GlPlanetsActivity.java b/tests/tests/openglperf/src/android/openglperf/cts/GlPlanetsActivity.java
index 5a8c0a8..7aa1d21 100644
--- a/tests/tests/openglperf/src/android/openglperf/cts/GlPlanetsActivity.java
+++ b/tests/tests/openglperf/src/android/openglperf/cts/GlPlanetsActivity.java
@@ -34,14 +34,15 @@
     public static final String INTENT_EXTRA_USE_VBO_VERTICES = "useVboVertices";
     public static final String INTENT_EXTRA_USE_VBO_INDICES = "useVboIndiices";
     public static final String INTENT_EXTRA_NUM_FRAMES = "numFrames";
-    public static final String INTENT_EXTRA_INDICES_PER_VERTEX = "numIndicesPerVertex";
+    public static final String INTENT_EXTRA_NUM_INDEX_BUFFERS = "numIndexBuffers";
 
     public static final String INTENT_RESULT_FPS = "fps";
     public static final String INTENT_RESULT_NUM_TRIANGLES = "numTrigngles";
 
     private final Semaphore mSem = new Semaphore(0);
-    private float mFps;
+    private float mAverageFps;
     private int mNumTriangles;
+    private int[] mFrameInterval;
 
     private PlanetsSurfaceView mView;
 
@@ -50,14 +51,23 @@
         return mSem.tryAcquire(timeoutInSecs, TimeUnit.SECONDS);
     }
 
-    public float getFps() {
-        return mFps;
+    public float getAverageFps() {
+        return mAverageFps;
     }
 
     public int getNumTriangles() {
         return mNumTriangles;
     }
 
+    /**
+     * Time interval between each frame's rendering in ms.
+     * The first value will be invalid, so client should discard them.
+     * @return can return null if INTENT_EXTRA_NUM_FRAMES was not set in intent.
+     */
+    public int[] getFrameInterval() {
+        return mFrameInterval;
+    }
+
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -70,16 +80,17 @@
         param.mUseVboForIndices = intent.getBooleanExtra(INTENT_EXTRA_USE_VBO_INDICES,
                 param.mUseVboForIndices);
         param.mNumFrames = intent.getIntExtra(INTENT_EXTRA_NUM_FRAMES, param.mNumFrames);
-        param.mNumIndicesPerVertex = intent.getIntExtra(INTENT_EXTRA_INDICES_PER_VERTEX,
+        param.mNumIndicesPerVertex = intent.getIntExtra(INTENT_EXTRA_NUM_INDEX_BUFFERS,
                 param.mNumIndicesPerVertex);
         mView = new PlanetsSurfaceView(this, param, this);
         setContentView(mView);
     }
 
     @Override
-    public void onRenderCompletion(float fps, int numTriangles) {
-        mFps = fps;
+    public void onRenderCompletion(float averageFps, int numTriangles,  int[] frameInterval) {
+        mAverageFps = averageFps;
         mNumTriangles = numTriangles;
+        mFrameInterval = frameInterval;
         mSem.release();
     }
 
diff --git a/tests/tests/openglperf/src/android/openglperf/cts/GlVboPerfTest.java b/tests/tests/openglperf/src/android/openglperf/cts/GlVboPerfTest.java
index afd435c..ecf198e 100644
--- a/tests/tests/openglperf/src/android/openglperf/cts/GlVboPerfTest.java
+++ b/tests/tests/openglperf/src/android/openglperf/cts/GlVboPerfTest.java
@@ -26,8 +26,8 @@
     private static final String TAG = "GlVboPerfTest";
     private static final int NUM_FRAMES_TO_RENDER = 100;
     private static final long RENDERING_TIMEOUT = 5 * 60;
-    // 10% of fps_no_vbo is allowed to compensate variations in measurement
-    private static final float FPS_COMPARISON_MARGIN = 0.1f;
+    // 30% of fps_no_vbo is allowed to compensate variations in measurement
+    private static final float FPS_COMPARISON_MARGIN = 0.3f;
     // the worst case should be above 70% of the best case
     private static final float FPS_MIN_MAX_COMPARISON_PERCENTILE = 0.7f;
 
@@ -87,14 +87,14 @@
     }
 
     private void runRendering(int numPlanets, boolean useVboVertex, boolean useVboIndex,
-            int indicesPerVertex) throws Exception {
+            int numIndexBuffers) throws Exception {
         Intent intent = new Intent();
         intent.putExtra(GlPlanetsActivity.INTENT_EXTRA_NUM_FRAMES,
                 NUM_FRAMES_TO_RENDER);
         intent.putExtra(GlPlanetsActivity.INTENT_EXTRA_NUM_PLANETS, numPlanets);
         intent.putExtra(GlPlanetsActivity.INTENT_EXTRA_USE_VBO_VERTICES, useVboVertex);
         intent.putExtra(GlPlanetsActivity.INTENT_EXTRA_USE_VBO_INDICES, useVboIndex);
-        intent.putExtra(GlPlanetsActivity.INTENT_EXTRA_INDICES_PER_VERTEX, indicesPerVertex);
+        intent.putExtra(GlPlanetsActivity.INTENT_EXTRA_NUM_INDEX_BUFFERS, numIndexBuffers);
 
         setActivityIntent(intent);
         final GlPlanetsActivity activity = getActivity();
@@ -102,7 +102,7 @@
                 .waitForGlPlanetsCompletionWithTimeout(RENDERING_TIMEOUT);
         assertTrue("timeout while waiting for rendering completion", waitResult);
 
-        mFps = activity.getFps();
+        mFps = activity.getAverageFps();
         mNumTriangles = activity.getNumTriangles();
 
         cleanUpActivity();
diff --git a/suite/pts/deviceTests/dram/src/com/android/pts/dram/MemoryNative.java b/tests/tests/openglperf/src/android/openglperf/cts/OpenGlPerfNative.java
similarity index 61%
rename from suite/pts/deviceTests/dram/src/com/android/pts/dram/MemoryNative.java
rename to tests/tests/openglperf/src/android/openglperf/cts/OpenGlPerfNative.java
index 991de1e..d63a640 100644
--- a/suite/pts/deviceTests/dram/src/com/android/pts/dram/MemoryNative.java
+++ b/tests/tests/openglperf/src/android/openglperf/cts/OpenGlPerfNative.java
@@ -14,18 +14,16 @@
  * limitations under the License.
  */
 
-package com.android.pts.dram;
+package android.openglperf.cts;
 
-public class MemoryNative {
+public class OpenGlPerfNative {
     static {
-        System.loadLibrary("ptsdram_jni");
+        System.loadLibrary("ctsopenglperf_jni");
     }
     /**
-     * run memcpy for given number of repetition from a source to a destination buffers
-     * with each having the size of bufferSize.
-     * @param bufferSize
-     * @param repeatition
-     * @return time spent in copying in ms.
+     * wait for the completion of the pending Egl/Gl operation using eglClientWaitSyncKHR.
+     * @param waitTimeInNs maximum time to wait in nano secs
+     * @return true for success, false for timeout
      */
-    public static native long runMemcpy(int bufferSize, int repetition);
+    public static native boolean waitForEglCompletion(long waitTimeInNs);
 }
diff --git a/tests/tests/openglperf/src/android/openglperf/cts/PlanetsRenderer.java b/tests/tests/openglperf/src/android/openglperf/cts/PlanetsRenderer.java
index 5b90089..b286e46 100644
--- a/tests/tests/openglperf/src/android/openglperf/cts/PlanetsRenderer.java
+++ b/tests/tests/openglperf/src/android/openglperf/cts/PlanetsRenderer.java
@@ -17,10 +17,10 @@
 package android.openglperf.cts;
 
 import android.content.Context;
+import android.cts.util.WatchDog;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.opengl.GLES20;
-import android.opengl.GLSurfaceView;
 import android.opengl.GLUtils;
 import android.opengl.Matrix;
 import android.util.Log;
@@ -34,18 +34,21 @@
 import javax.microedition.khronos.egl.EGLConfig;
 import javax.microedition.khronos.opengles.GL10;
 
-
-public class PlanetsRenderer implements GLSurfaceView.Renderer {
+/**
+ * OpenGl renderer rendering given number of planets with different GL configuration.
+ */
+public class PlanetsRenderer implements GLSurfaceViewCustom.Renderer {
 
     private static final String TAG = "PlanetsRenderer";
     // texture is from
     // http://en.wikipedia.org/wiki/File:Mercator_projection_SW.jpg
     private static final String TEXTURE_FILE = "world_512_512.jpg";
+    private static final long EGL_SWAP_BUFFERS_WAIT_TIME_IN_NS = 100 * 1000 * 1000 * 1000L;
 
     private final Context mContext;
     private final PlanetsRenderingParam mParam;
     private final RenderCompletionListener mListener;
-    private final RenderingWatchDog mWatchDog;
+    private final WatchDog mWatchDog;
 
     private final Sphere[] mSpheres;
     private final int mNumSpheres;
@@ -65,9 +68,11 @@
     private int mFrameCount = 0;
     private static final int FPS_DISPLAY_INTERVAL = 50;
     private long mLastFPSTime;
+    private long mLastRenderingTime;
     // for total FPS measurement
     private long mRenderingStartTime;
     private long mMeasurementStartTime;
+    private int[] mFrameInterval = null;
 
     private int mProgram; // shader program
     private int mMVPMatrixHandle;
@@ -95,7 +100,7 @@
      * @param listener
      */
     public PlanetsRenderer(Context context, PlanetsRenderingParam param,
-            RenderCompletionListener listener, RenderingWatchDog watchDog) {
+            RenderCompletionListener listener, WatchDog watchDog) {
         resetTimer();
         mContext = context;
         mParam = param;
@@ -104,6 +109,9 @@
         mNumIndices = mNumSpheres * mParam.mNumIndicesPerVertex;
         mSpheres = new Sphere[mNumSpheres];
 
+        if (mParam.mNumFrames > 0) {
+            mFrameInterval = new int[mParam.mNumFrames];
+        }
         printParams();
 
         // for big model, this construction phase takes time...
@@ -121,6 +129,7 @@
         measureTime("construction");
     }
 
+    @Override
     public void onSurfaceCreated(GL10 glUnused, EGLConfig config) {
         mProgram = createProgram(getVertexShader(), getFragmentShader());
         if (mProgram == 0) {
@@ -137,31 +146,12 @@
         mTextureId = createTexture2D();
     }
 
+    @Override
     public void onDrawFrame(GL10 glUnused) {
         mWatchDog.reset();
         long currentTime = System.currentTimeMillis();
-
         mFrameCount++;
-        if ((mFrameCount % FPS_DISPLAY_INTERVAL == 0) && (mFrameCount != 0)) {
-            float fps = (((float) FPS_DISPLAY_INTERVAL)
-                    / ((float) (currentTime - mLastFPSTime)) * 1000.0f);
-            // FPS is not correct if activity is paused/resumed.
-            Log.i(TAG, "FPS " + fps);
-            mLastFPSTime = currentTime;
-        }
-
-        if ((mFrameCount == mParam.mNumFrames) && (mParam.mNumFrames > 0)) {
-            long timePassed = currentTime - mRenderingStartTime;
-            float fps = ((float) mParam.mNumFrames) / ((float) timePassed) * 1000.0f;
-            printGlInfos();
-            printParams();
-            int numTriangles = mNumSpheres * mSpheres[0].getTotalIndices() / 3;
-            Log.i(TAG, "Final FPS " + fps + " Num triangles " + numTriangles);
-            if (mListener != null) {
-                mListener.onRenderCompletion(fps, numTriangles);
-                return;
-            }
-        }
+        mLastRenderingTime = currentTime;
 
         float angle = 0.090f * ((int) (currentTime % 4000L));
         Matrix.setRotateM(mMMatrix, 0, angle, 0, 0, 1.0f);
@@ -232,6 +222,36 @@
         }
     }
 
+    @Override
+    public void onEglSwapBuffers() {
+        if (!OpenGlPerfNative.waitForEglCompletion(EGL_SWAP_BUFFERS_WAIT_TIME_IN_NS)) {
+            Log.w(TAG, "time-out or error while waiting for eglSwapBuffers completion");
+        }
+        long currentTime = System.currentTimeMillis();
+        if (mFrameCount == 0) {
+            mRenderingStartTime = currentTime;
+        }
+        if (mFrameCount < mParam.mNumFrames) {
+            mFrameInterval[mFrameCount] = (int)(currentTime - mLastRenderingTime);
+        }
+
+        if ((mFrameCount == mParam.mNumFrames) && (mParam.mNumFrames > 0)) {
+            long timePassed = currentTime - mRenderingStartTime;
+            float fps = ((float) mParam.mNumFrames) / ((float) timePassed) * 1000.0f;
+            printGlInfos();
+            printParams();
+            int numTriangles = mNumSpheres * mSpheres[0].getTotalIndices() / 3;
+            Log.i(TAG, "Final FPS " + fps + " Num triangles " + numTriangles + " start time " +
+                    mRenderingStartTime + " finish time " + currentTime);
+            if (mListener != null) {
+                mListener.onRenderCompletion(fps, numTriangles, mFrameInterval);
+                mFrameCount++; // to prevent entering here again
+                return;
+            }
+        }
+    }
+
+    @Override
     public void onSurfaceChanged(GL10 glUnused, int width, int height) {
         mWidth = width;
         mHeight = height;
diff --git a/tests/tests/openglperf/src/android/openglperf/cts/PlanetsSurfaceView.java b/tests/tests/openglperf/src/android/openglperf/cts/PlanetsSurfaceView.java
index 2bfd001..072988d 100644
--- a/tests/tests/openglperf/src/android/openglperf/cts/PlanetsSurfaceView.java
+++ b/tests/tests/openglperf/src/android/openglperf/cts/PlanetsSurfaceView.java
@@ -17,11 +17,11 @@
 package android.openglperf.cts;
 
 import android.content.Context;
-import android.opengl.GLSurfaceView;
+import android.cts.util.WatchDog;
 
-class PlanetsSurfaceView extends GLSurfaceView {
+class PlanetsSurfaceView extends GLSurfaceViewCustom {
     private final long RENDERING_TIMEOUT = 1900; // in msec, close to 2 secs
-    private final RenderingWatchDog mWatchDog = new RenderingWatchDog(RENDERING_TIMEOUT);
+    private final WatchDog mWatchDog = new WatchDog(RENDERING_TIMEOUT);
 
     public PlanetsSurfaceView(Context context, PlanetsRenderingParam param,
             RenderCompletionListener listener) {
@@ -44,4 +44,4 @@
         setRenderMode(RENDERMODE_CONTINUOUSLY);
         super.onResume();
     }
-}
\ No newline at end of file
+}
diff --git a/tests/tests/openglperf/src/android/openglperf/cts/RenderCompletionListener.java b/tests/tests/openglperf/src/android/openglperf/cts/RenderCompletionListener.java
index 1643087..a5bbfa2 100644
--- a/tests/tests/openglperf/src/android/openglperf/cts/RenderCompletionListener.java
+++ b/tests/tests/openglperf/src/android/openglperf/cts/RenderCompletionListener.java
@@ -16,11 +16,15 @@
 
 package android.openglperf.cts;
 
+/**
+ * Interface used to notify the completion of requested rendering.
+ */
 public interface RenderCompletionListener {
     /**
-     * @param fps total frame rate
+     * @param averageFps average of total frames
      * @param numTriangles Number of triangles in geometric model
+     * @param frameInterval interval for each frame in ms. Do not use the first one and the last one.
      */
-    void onRenderCompletion(float fps, int numTriangles);
+    void onRenderCompletion(float averageFps, int numTriangles, int[] frameInterval);
 
 }
diff --git a/tests/tests/openglperf/src/android/openglperf/cts/Sphere.java b/tests/tests/openglperf/src/android/openglperf/cts/Sphere.java
index 026ba97..8020db6 100644
--- a/tests/tests/openglperf/src/android/openglperf/cts/Sphere.java
+++ b/tests/tests/openglperf/src/android/openglperf/cts/Sphere.java
@@ -49,7 +49,7 @@
      * @param x,y,z the origin of the sphere
      * @param r the radius of the sphere
      */
-    public Sphere(int nSlices, float x, float y, float z, float r, int indicesPerVertex) {
+    public Sphere(int nSlices, float x, float y, float z, float r, int numIndexBuffers) {
 
         int iMax = nSlices + 1;
         int nVertices = iMax * iMax;
@@ -64,17 +64,17 @@
         // 3 vertex coords + 2 texture coords
         mVertices = ByteBuffer.allocateDirect(nVertices * 5 * FLOAT_SIZE)
                 .order(ByteOrder.nativeOrder()).asFloatBuffer();
-        mIndices = new ShortBuffer[indicesPerVertex];
-        mNumIndices = new int[indicesPerVertex];
+        mIndices = new ShortBuffer[numIndexBuffers];
+        mNumIndices = new int[numIndexBuffers];
         // first evenly distribute to n-1 buffers, then put remaining ones to the last one.
-        int noIndicesPerBuffer = (mTotalIndices / indicesPerVertex / 6) * 6;
-        for (int i = 0; i < indicesPerVertex - 1; i++) {
+        int noIndicesPerBuffer = (mTotalIndices / numIndexBuffers / 6) * 6;
+        for (int i = 0; i < numIndexBuffers - 1; i++) {
             mNumIndices[i] = noIndicesPerBuffer;
         }
-        mNumIndices[indicesPerVertex - 1] = mTotalIndices - noIndicesPerBuffer *
-                (indicesPerVertex - 1);
+        mNumIndices[numIndexBuffers - 1] = mTotalIndices - noIndicesPerBuffer *
+                (numIndexBuffers - 1);
 
-        for (int i = 0; i < indicesPerVertex; i++) {
+        for (int i = 0; i < numIndexBuffers; i++) {
             mIndices[i] = ByteBuffer.allocateDirect(mNumIndices[i] * SHORT_SIZE)
                     .order(ByteOrder.nativeOrder()).asShortBuffer();
         }
@@ -123,7 +123,7 @@
         mIndices[bufferNum].put(indexBuffer, 0, mNumIndices[bufferNum]);
 
         mVertices.position(0);
-        for (int i = 0; i < indicesPerVertex; i++) {
+        for (int i = 0; i < numIndexBuffers; i++) {
             mIndices[i].position(0);
         }
     }
diff --git a/tests/tests/os/src/android/os/cts/BuildTest.java b/tests/tests/os/src/android/os/cts/BuildTest.java
index 42673ba..a59484a 100644
--- a/tests/tests/os/src/android/os/cts/BuildTest.java
+++ b/tests/tests/os/src/android/os/cts/BuildTest.java
@@ -40,14 +40,37 @@
 
     private void assertArmCpuAbiConstants() throws IOException {
         if (CpuFeatures.isArm7Compatible()) {
-            String message = "CPU is ARM v7 compatible, so "
+            String cpuAbi = getProperty(RO_PRODUCT_CPU_ABI);
+            String cpuAbi2 = getProperty(RO_PRODUCT_CPU_ABI2);
+            //if CPU_ABI is armv7, CPU_ABI2 is either of {armeabi, NULL}
+            if (cpuAbi.equals(CpuFeatures.ARMEABI_V7)) {
+                String message = "CPU is ARM v7 compatible, so "
                     + RO_PRODUCT_CPU_ABI  + " must be set to " + CpuFeatures.ARMEABI_V7 + " and "
-                    + RO_PRODUCT_CPU_ABI2 + " must be set to " + CpuFeatures.ARMEABI;
-            assertProperty(message, RO_PRODUCT_CPU_ABI, CpuFeatures.ARMEABI_V7);
-            assertProperty(message, RO_PRODUCT_CPU_ABI2, CpuFeatures.ARMEABI);
-            assertEquals(message, CpuFeatures.ARMEABI_V7, Build.CPU_ABI);
-            assertEquals(message, CpuFeatures.ARMEABI, Build.CPU_ABI2);
-        } else {
+                    + RO_PRODUCT_CPU_ABI2 + " must be set to " + CpuFeatures.ARMEABI + " or NULL";
+                assertEquals(message, CpuFeatures.ARMEABI_V7, Build.CPU_ABI);
+                if (cpuAbi2.equals(CpuFeatures.ARMEABI)){
+                    assertEquals(message, cpuAbi2, Build.CPU_ABI2);
+                } else {
+                    assertNoPropertySet(message, RO_PRODUCT_CPU_ABI2);
+                    assertEquals(message, Build.UNKNOWN, Build.CPU_ABI2);
+                }
+            }
+            //if CPU_ABI is x86, then CPU_ABI2 is either of {armeabi, armv7, NULL}
+            else if (cpuAbi.equals(CpuFeatures.X86ABI)) {
+                String message = "CPU is x86 but ARM v7 compatible, so "
+                    + RO_PRODUCT_CPU_ABI  + " must be set to " + CpuFeatures.X86ABI + " and "
+                    + RO_PRODUCT_CPU_ABI2 + " must be set to " + CpuFeatures.ARMEABI + " or "
+                    + CpuFeatures.ARMEABI_V7 + " or NULL";
+                assertEquals(message, CpuFeatures.X86ABI, Build.CPU_ABI);
+                if (cpuAbi2.equals(CpuFeatures.ARMEABI_V7) || cpuAbi2.equals(CpuFeatures.ARMEABI))
+                    assertEquals(message, cpuAbi2, Build.CPU_ABI2);
+                else {
+                    assertNoPropertySet(message, RO_PRODUCT_CPU_ABI2);
+                    assertEquals(message, Build.UNKNOWN, Build.CPU_ABI2);
+                }
+            }
+        }
+        else {
             String message = "CPU is not ARM v7 compatible. "
                     + RO_PRODUCT_CPU_ABI  + " must be set to " + CpuFeatures.ARMEABI + " and "
                     + RO_PRODUCT_CPU_ABI2 + " must not be set.";
@@ -57,7 +80,24 @@
             assertEquals(message, Build.UNKNOWN, Build.CPU_ABI2);
         }
     }
-
+    /**
+     * @param property name passed to getprop
+     */
+    private String getProperty(String property)
+            throws IOException {
+        Process process = new ProcessBuilder("getprop", property).start();
+        Scanner scanner = null;
+        String line = "";
+        try {
+            scanner = new Scanner(process.getInputStream());
+            line = scanner.nextLine();
+        } finally {
+            if (scanner != null) {
+                scanner.close();
+            }
+        }
+        return line;
+    }
     /**
      * @param message shown when the test fails
      * @param property name passed to getprop
diff --git a/tests/tests/os/src/android/os/cts/BuildVersionTest.java b/tests/tests/os/src/android/os/cts/BuildVersionTest.java
index dfa8301..d1b88a1 100644
--- a/tests/tests/os/src/android/os/cts/BuildVersionTest.java
+++ b/tests/tests/os/src/android/os/cts/BuildVersionTest.java
@@ -29,8 +29,8 @@
 
     private static final String LOG_TAG = "BuildVersionTest";
     private static final Set<String> EXPECTED_RELEASES =
-            new HashSet<String>(Arrays.asList("4.2", "4.2.1", "4.2.2"));
-    private static final int EXPECTED_SDK = 17;
+            new HashSet<String>(Arrays.asList("4.3"));
+    private static final int EXPECTED_SDK = 18;
 
     @SuppressWarnings("deprecation")
     public void testReleaseVersion() {
diff --git a/tests/tests/os/src/android/os/cts/LooperTest.java b/tests/tests/os/src/android/os/cts/LooperTest.java
index 326caa3..6631599 100644
--- a/tests/tests/os/src/android/os/cts/LooperTest.java
+++ b/tests/tests/os/src/android/os/cts/LooperTest.java
@@ -46,16 +46,23 @@
         assertNotNull(looper);
     }
 
-    public void testLoop() {
-        MockRunnable run = new MockRunnable();
+    public void testLoop() throws Throwable {
+        Thread t = new Thread(new Runnable() {
+            public void run() {
+                Looper.prepare();
 
-        Handler handler = new Handler();
-        Message msg = Message.obtain(handler, run);
-        handler.sendMessageAtTime(msg, 0);
-        assertFalse(run.runCalled);
-        Looper.loop();
+                MockRunnable run = new MockRunnable();
 
-        assertTrue(run.runCalled);
+                Handler handler = new Handler();
+                Message msg = Message.obtain(handler, run);
+                handler.sendMessageAtTime(msg, 0);
+                assertFalse(run.runCalled);
+                Looper.loop();
+                assertTrue(run.runCalled);
+            }
+        });
+        t.start();
+        t.join();
     }
 
     public void testMyLooper() throws Throwable {
diff --git a/tests/tests/os/src/android/os/cts/NoExecutePermissionTest.java b/tests/tests/os/src/android/os/cts/NoExecutePermissionTest.java
index 6256267..43afb53 100644
--- a/tests/tests/os/src/android/os/cts/NoExecutePermissionTest.java
+++ b/tests/tests/os/src/android/os/cts/NoExecutePermissionTest.java
@@ -75,6 +75,10 @@
             // http://code.google.com/p/android/issues/detail?id=17328
             return false;
         }
+        if (CpuFeatures.isMipsCpu()) {
+            // MIPS processors do not have NX support.
+            return false;
+        }
 
         // TODO: handle other processors.  For now, assume those processors
         // have NX support.
diff --git a/tests/tests/os/src/android/os/cts/SecurityFeaturesTest.java b/tests/tests/os/src/android/os/cts/SecurityFeaturesTest.java
new file mode 100644
index 0000000..6a02974
--- /dev/null
+++ b/tests/tests/os/src/android/os/cts/SecurityFeaturesTest.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.os.cts;
+
+import junit.framework.TestCase;
+
+public class SecurityFeaturesTest extends TestCase {
+
+    public void testNoNewPrivs() {
+        int newPrivs = OSFeatures.getNoNewPrivs();
+        // if newPrivs == -1, then old kernel with no PR_SET_NO_NEW_PRIVS (acceptable)
+        // if newPrivs == 0,  then new kernel with PR_SET_NO_NEW_PRIVS disabled (BAD)
+        // if newPrivs == 1,  then new kernel with PR_SET_NO_NEW_PRIVS enabled (GOOD)
+        assertTrue(newPrivs != 0);
+    }
+
+    /**
+     * Iterate over all possible capabilities, testing to make sure each capability
+     * has been removed from the app's capability bounding set.
+     */
+    public void testPrCapbsetEmpty() {
+        int i = 0;
+        while (true) {
+            int result = OSFeatures.prctlCapBsetRead(i);
+            if (result == -1) {
+                // The kernel has told us that the capability we're inquiring about
+                // doesn't exist. Capabilities are assigned sequentially and
+                // and monotonically increase with each kernel release, so if we
+                // see -1, we know we've examined every capability the kernel
+                // knows about.
+                break;
+            }
+            assertEquals("capability " + i + " is still in the bounding set",
+                         0, result);
+            i++;
+        }
+    }
+}
diff --git a/tests/tests/os/src/android/os/cts/StatFsTest.java b/tests/tests/os/src/android/os/cts/StatFsTest.java
index 2396e26..67afde9 100644
--- a/tests/tests/os/src/android/os/cts/StatFsTest.java
+++ b/tests/tests/os/src/android/os/cts/StatFsTest.java
@@ -22,29 +22,39 @@
 import android.os.StatFs;
 
 public class StatFsTest extends TestCase {
-    public void testStatFs(){
+    public void testStatFs() {
         File path = Environment.getDataDirectory();
         StatFs stat = new StatFs(path.getPath());
-        int blockSize = stat.getBlockSize();
-        int totalBlocks = stat.getBlockCount();
-        int freeBlocks = stat.getFreeBlocks();
-        int availableBlocks = stat.getAvailableBlocks();
 
-        assertTrue(blockSize > 0);
-        assertTrue(totalBlocks > 0);
-        assertTrue(freeBlocks >= availableBlocks);
-        assertTrue(availableBlocks > 0);
+        assertTrue(stat.getBlockSize() > 0);
+        assertTrue(stat.getBlockCount() > 0);
+        assertTrue(stat.getFreeBlocks() >= stat.getAvailableBlocks());
+        assertTrue(stat.getAvailableBlocks() > 0);
+
+        assertTrue(stat.getBlockSizeLong() > 0);
+        assertTrue(stat.getBlockCountLong() > 0);
+        assertTrue(stat.getFreeBlocksLong() >= stat.getAvailableBlocksLong());
+        assertTrue(stat.getAvailableBlocksLong() > 0);
+
+        assertTrue(stat.getFreeBytes() > 0);
+        assertTrue(stat.getAvailableBytes() > 0);
+        assertTrue(stat.getTotalBytes() > 0);
 
         path = Environment.getRootDirectory();
         stat.restat(path.getPath());
-        blockSize = stat.getBlockSize();
-        totalBlocks = stat.getBlockCount();
-        freeBlocks = stat.getFreeBlocks();
-        availableBlocks = stat.getAvailableBlocks();
 
-        assertTrue(blockSize > 0);
-        assertTrue(totalBlocks > 0);
-        assertTrue(freeBlocks >= availableBlocks);
-        assertTrue(availableBlocks > 0);
+        assertTrue(stat.getBlockSize() > 0);
+        assertTrue(stat.getBlockCount() > 0);
+        assertTrue(stat.getFreeBlocks() >= stat.getAvailableBlocks());
+        assertTrue(stat.getAvailableBlocks() > 0);
+
+        assertTrue(stat.getBlockSizeLong() > 0);
+        assertTrue(stat.getBlockCountLong() > 0);
+        assertTrue(stat.getFreeBlocksLong() >= stat.getAvailableBlocksLong());
+        assertTrue(stat.getAvailableBlocksLong() > 0);
+
+        assertTrue(stat.getFreeBytes() > 0);
+        assertTrue(stat.getAvailableBytes() > 0);
+        assertTrue(stat.getTotalBytes() > 0);
     }
 }
diff --git a/tests/tests/os/src/android/os/cts/UsbDebuggingTest.java b/tests/tests/os/src/android/os/cts/UsbDebuggingTest.java
new file mode 100644
index 0000000..60583e7
--- /dev/null
+++ b/tests/tests/os/src/android/os/cts/UsbDebuggingTest.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.os.cts;
+
+import android.os.Build;
+import android.os.SystemProperties;
+import android.test.AndroidTestCase;
+import java.io.File;
+
+public class UsbDebuggingTest extends AndroidTestCase {
+
+    public void testUsbDebugging() {
+        // Secure USB debugging must be enabled
+        assertEquals("1", SystemProperties.get("ro.adb.secure"));
+
+        // Don't ship vendor keys in user build
+        if ("user".equals(Build.TYPE)) {
+            File keys = new File("/adb_keys");
+            assertFalse(keys.exists());
+        }
+    }
+
+}
diff --git a/tests/tests/os/src/android/os/cts/WorkSourceTest.java b/tests/tests/os/src/android/os/cts/WorkSourceTest.java
new file mode 100644
index 0000000..f3986b1
--- /dev/null
+++ b/tests/tests/os/src/android/os/cts/WorkSourceTest.java
@@ -0,0 +1,557 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+package android.os.cts;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import android.os.WorkSource;
+import android.test.AndroidTestCase;
+
+public class WorkSourceTest extends AndroidTestCase {
+    private Constructor<WorkSource> mConstructWS;
+    private Object[] mConstructWSArgs = new Object[1];
+    private Method mAddUid;
+    private Object[] mAddUidArgs = new Object[1];
+    private Method mAddUidName;
+    private Object[] mAddUidNameArgs = new Object[2];
+    private Method mAddReturningNewbs;
+    private Object[] mAddReturningNewbsArgs = new Object[1];
+    private Method mSetReturningDiffs;
+    private Object[] mSetReturningDiffsArgs = new Object[1];
+    private Method mStripNames;
+    private Object[] mStripNamesArgs = new Object[0];
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mConstructWS = WorkSource.class.getConstructor(new Class[] { int.class });
+        mAddUid = WorkSource.class.getMethod("add", new Class[] { int.class });
+        mAddUidName = WorkSource.class.getMethod("add", new Class[] { int.class, String.class });
+        mAddReturningNewbs = WorkSource.class.getMethod("addReturningNewbs", new Class[] { WorkSource.class });
+        mSetReturningDiffs = WorkSource.class.getMethod("setReturningDiffs", new Class[] { WorkSource.class });
+        mStripNames = WorkSource.class.getMethod("stripNames", new Class[] {  });
+    }
+
+    private WorkSource wsNew(int uid) throws IllegalArgumentException,
+            InstantiationException, IllegalAccessException, InvocationTargetException {
+        mConstructWSArgs[0] = uid;
+        return mConstructWS.newInstance(mConstructWSArgs);
+    }
+
+    private WorkSource wsNew(int[] uids) throws IllegalArgumentException,
+            InstantiationException, IllegalAccessException, InvocationTargetException {
+        WorkSource ws = new WorkSource();
+        for (int i=0; i<uids.length; i++) {
+            wsAdd(ws, uids[i]);
+        }
+        checkWorkSource("Constructed", ws, uids);
+        return ws;
+    }
+
+    private WorkSource wsNew(int[] uids, String[] names) throws IllegalArgumentException,
+            InstantiationException, IllegalAccessException, InvocationTargetException {
+        WorkSource ws = new WorkSource();
+        for (int i=0; i<uids.length; i++) {
+            wsAdd(ws, uids[i], names[i]);
+        }
+        checkWorkSource("Constructed", ws, uids, names);
+        return ws;
+    }
+
+    private boolean wsAdd(WorkSource ws, int uid) throws IllegalArgumentException,
+            InstantiationException, IllegalAccessException, InvocationTargetException {
+        mAddUidArgs[0] = uid;
+        return (Boolean)mAddUid.invoke(ws, mAddUidArgs);
+    }
+
+    private boolean wsAdd(WorkSource ws, int uid, String name) throws IllegalArgumentException,
+            InstantiationException, IllegalAccessException, InvocationTargetException {
+        mAddUidNameArgs[0] = uid;
+        mAddUidNameArgs[1] = name;
+        return (Boolean)mAddUidName.invoke(ws, mAddUidNameArgs);
+    }
+
+    private WorkSource wsAddReturningNewbs(WorkSource ws, WorkSource other) throws IllegalArgumentException,
+            InstantiationException, IllegalAccessException, InvocationTargetException {
+        mAddReturningNewbsArgs[0] = other;
+        return (WorkSource)mAddReturningNewbs.invoke(ws, mAddReturningNewbsArgs);
+    }
+
+    private WorkSource[] wsSetReturningDiffs(WorkSource ws, WorkSource other) throws IllegalArgumentException,
+            InstantiationException, IllegalAccessException, InvocationTargetException {
+        mSetReturningDiffsArgs[0] = other;
+        return (WorkSource[])mSetReturningDiffs.invoke(ws, mSetReturningDiffsArgs);
+    }
+
+    private WorkSource wsStripNames(WorkSource ws) throws IllegalArgumentException,
+            InstantiationException, IllegalAccessException, InvocationTargetException {
+        return (WorkSource)mStripNames.invoke(ws);
+    }
+
+    private void printArrays(StringBuilder sb, int[] uids, String[] names) {
+        sb.append("{ ");
+        for (int i=0; i<uids.length; i++) {
+            if (i > 0) sb.append(", ");
+            sb.append(uids[i]);
+            if (names != null) {
+                sb.append(" ");
+                sb.append(names[i]);
+            }
+        }
+        sb.append(" }");
+    }
+
+    private void failWorkSource(String op, WorkSource ws, int[] uids) {
+        StringBuilder sb = new StringBuilder();
+        sb.append(op);
+        sb.append(": Expected: ");
+        printArrays(sb, uids, null);
+        sb.append(", got: ");
+        sb.append(ws);
+        fail(sb.toString());
+    }
+
+    private void failWorkSource(String op, WorkSource ws, int[] uids, String[] names) {
+        StringBuilder sb = new StringBuilder();
+        sb.append(op);
+        sb.append(": Expected: ");
+        printArrays(sb, uids, names);
+        sb.append(", got: ");
+        sb.append(ws);
+        fail(sb.toString());
+    }
+
+    private void checkWorkSource(String op, WorkSource ws, int[] uids) {
+        if (ws == null || uids == null) {
+            if (ws != null) {
+                fail(op + ": WorkSource is not null " + ws +", but expected null");
+            }
+            if (uids != null) {
+                fail(op + "WorkSource is null, but expected non-null: " + uids);
+            }
+            return;
+        }
+        if (ws.size() != uids.length) {
+            failWorkSource(op, ws, uids);
+        }
+        for (int i=0; i<uids.length; i++) {
+            if (uids[i] != ws.get(i)) {
+                failWorkSource(op, ws, uids);
+            }
+        }
+    }
+
+    private void checkWorkSource(String op, WorkSource ws, int[] uids, String[] names) {
+        if (ws == null || uids == null) {
+            if (ws != null) {
+                fail(op + ": WorkSource is not null " + ws +", but expected null");
+            }
+            if (uids != null) {
+                fail(op + "WorkSource is null, but expected non-null: " + uids);
+            }
+            return;
+        }
+        if (ws.size() != uids.length) {
+            failWorkSource(op, ws, uids, names);
+        }
+        for (int i=0; i<uids.length; i++) {
+            if (uids[i] != ws.get(i) || !names[i].equals(ws.getName(i))) {
+                failWorkSource(op, ws, uids, names);
+            }
+        }
+    }
+
+    public void testConstructEmpty() {
+        checkWorkSource("Empty", new WorkSource(), new int[] { });
+    }
+
+    public void testConstructSingle() throws Exception {
+        checkWorkSource("Single 1", wsNew(1), new int[] { 1 });
+    }
+
+    public void testAddRawOrdered() throws Exception {
+        WorkSource ws = wsNew(1);
+        wsAdd(ws, 2);
+        checkWorkSource("First", ws, new int[] { 1 , 2 });
+        wsAdd(ws, 20);
+        checkWorkSource("Second", ws, new int[] { 1 , 2, 20 });
+        wsAdd(ws, 100);
+        checkWorkSource("Third", ws, new int[] { 1, 2, 20, 100 });
+    }
+
+    public void testAddRawRevOrdered() throws Exception {
+        WorkSource ws = wsNew(100);
+        wsAdd(ws, 20);
+        checkWorkSource("First", ws, new int[] { 20, 100 });
+        wsAdd(ws, 2);
+        checkWorkSource("Second", ws, new int[] { 2, 20, 100 });
+        wsAdd(ws, 1);
+        checkWorkSource("Third", ws, new int[] { 1, 2, 20, 100 });
+    }
+
+    public void testAddRawUnordered() throws Exception {
+        WorkSource ws = wsNew(10);
+        wsAdd(ws, 2);
+        checkWorkSource("First", ws, new int[] { 2, 10 });
+        wsAdd(ws, 5);
+        checkWorkSource("Second", ws, new int[] { 2, 5, 10 });
+        wsAdd(ws, 1);
+        checkWorkSource("Third", ws, new int[] { 1, 2, 5, 10 });
+        wsAdd(ws, 100);
+        checkWorkSource("Fourth", ws, new int[] { 1, 2, 5, 10, 100 });
+    }
+
+    public void testAddWsOrdered() throws Exception {
+        WorkSource ws = wsNew(1);
+        ws.add(wsNew(2));
+        checkWorkSource("First", ws, new int[] { 1 , 2 });
+        ws.add(wsNew(20));
+        checkWorkSource("Second", ws, new int[] { 1 , 2, 20 });
+        ws.add(wsNew(100));
+        checkWorkSource("Third", ws, new int[] { 1 , 2, 20, 100 });
+    }
+
+    public void testAddWsRevOrdered() throws Exception {
+        WorkSource ws = wsNew(100);
+        ws.add(wsNew(20));
+        checkWorkSource("First", ws, new int[] { 20, 100 });
+        ws.add(wsNew(2));
+        checkWorkSource("Second", ws, new int[] { 2, 20, 100 });
+        ws.add(wsNew(1));
+        checkWorkSource("Third", ws, new int[] { 1, 2, 20, 100 });
+    }
+
+    public void testAddWsUnordered() throws Exception {
+        WorkSource ws = wsNew(10);
+        ws.add(wsNew(2));
+        checkWorkSource("First", ws, new int[] { 2, 10 });
+        ws.add(wsNew(5));
+        checkWorkSource("Second", ws, new int[] { 2, 5, 10 });
+        ws.add(wsNew(1));
+        checkWorkSource("Third", ws, new int[] { 1, 2, 5, 10 });
+        ws.add(wsNew(100));
+        checkWorkSource("Fourth", ws, new int[] { 1, 2, 5, 10, 100 });
+    }
+
+    private void doTestCombineTwoUids(int[] lhs, int[] rhs, int[] expected, int[] newbs,
+            int[] gones) throws Exception {
+        WorkSource ws1 = wsNew(lhs);
+        WorkSource ws2 = wsNew(rhs);
+        ws1.add(ws2);
+        checkWorkSource("Add result", ws1, expected);
+        ws1 = wsNew(lhs);
+        WorkSource wsNewbs = wsAddReturningNewbs(ws1, ws2);
+        checkWorkSource("AddReturning result", ws1, expected);
+        checkWorkSource("Newbs", wsNewbs, newbs);
+        ws1 = wsNew(lhs);
+        WorkSource[] res = wsSetReturningDiffs(ws1, ws2);
+        checkWorkSource("SetReturning result", ws1, rhs);
+        checkWorkSource("Newbs", res[0], newbs);
+        checkWorkSource("Gones", res[1], gones);
+    }
+
+    private int[] makeRepeatingIntArray(String[] stringarray, int value) {
+        if (stringarray == null) {
+            return null;
+        }
+        int[] res = new int[stringarray.length];
+        for (int i=0; i<stringarray.length; i++) {
+            res[i] = value;
+        }
+        return res;
+    }
+
+    private void doTestCombineTwoNames(String[] lhsnames, String[] rhsnames,
+            String[] expectednames, String[] newbnames,
+            String[] gonenames) throws Exception {
+        int[] lhs = makeRepeatingIntArray(lhsnames, 0);
+        int[] rhs = makeRepeatingIntArray(rhsnames, 0);
+        int[] expected = makeRepeatingIntArray(expectednames, 0);
+        int[] newbs = makeRepeatingIntArray(newbnames, 0);
+        int[] gones = makeRepeatingIntArray(gonenames, 0);
+        doTestCombineTwoUidsNames(lhs, lhsnames, rhs, rhsnames, expected, expectednames,
+                newbs, newbnames, gones, gonenames);
+    }
+
+    private void doTestCombineTwoUidsNames(int[] lhs, String[] lhsnames, int[] rhs, String[] rhsnames,
+            int[] expected, String[] expectednames, int[] newbs, String[] newbnames,
+            int[] gones, String[] gonenames) throws Exception {
+        WorkSource ws1 = wsNew(lhs, lhsnames);
+        WorkSource ws2 = wsNew(rhs, rhsnames);
+        ws1.add(ws2);
+        checkWorkSource("Add result", ws1, expected, expectednames);
+        ws1 = wsNew(lhs, lhsnames);
+        WorkSource wsNewbs = wsAddReturningNewbs(ws1, ws2);
+        checkWorkSource("AddReturning result", ws1, expected, expectednames);
+        checkWorkSource("Newbs", wsNewbs, newbs, newbnames);
+        ws1 = wsNew(lhs, lhsnames);
+        WorkSource[] res = wsSetReturningDiffs(ws1, ws2);
+        checkWorkSource("SetReturning result", ws1, rhs, rhsnames);
+        checkWorkSource("Newbs", res[0], newbs, newbnames);
+        checkWorkSource("Gones", res[1], gones, gonenames);
+    }
+
+    private String[] makeRepeatingStringArray(int[] intarray, String value) {
+        if (intarray == null) {
+            return null;
+        }
+        String[] res = new String[intarray.length];
+        for (int i=0; i<intarray.length; i++) {
+            res[i] = value;
+        }
+        return res;
+    }
+
+    private String[] makeStringArray(int[] intarray) {
+        if (intarray == null) {
+            return null;
+        }
+        String[] res = new String[intarray.length];
+        for (int i=0; i<intarray.length; i++) {
+            res[i] = Character.toString((char)('A' + intarray[i]));
+        }
+        return res;
+    }
+
+    private void doTestCombineTwo(int[] lhs, int[] rhs, int[] expected, int[] newbs,
+            int[] gones) throws Exception {
+        doTestCombineTwoUids(lhs, rhs, expected, newbs, gones);
+        doTestCombineTwoUidsNames(lhs, makeRepeatingStringArray(lhs, "A"),
+                rhs, makeRepeatingStringArray(rhs, "A"),
+                expected, makeRepeatingStringArray(expected, "A"),
+                newbs, makeRepeatingStringArray(newbs, "A"),
+                gones, makeRepeatingStringArray(gones, "A"));
+        doTestCombineTwoNames(makeStringArray(lhs), makeStringArray(rhs),
+                makeStringArray(expected), makeStringArray(newbs), makeStringArray(gones));
+    }
+
+    public void testCombineMultiFront() throws Exception {
+        doTestCombineTwo(
+                new int[] { 10, 20, 30, 40 },
+                new int[] { 1, 2, 15, 16 },
+                new int[] { 1, 2, 10, 15, 16, 20, 30, 40 },
+                new int[] { 1, 2, 15, 16 },
+                new int[] { 10, 20, 30, 40 });
+    }
+
+    public void testCombineMultiMiddle() throws Exception {
+        doTestCombineTwo(
+                new int[] { 10, 20, 30, 40 },
+                new int[] { 12, 14, 22 },
+                new int[] { 10, 12, 14, 20, 22, 30, 40 },
+                new int[] { 12, 14, 22 },
+                new int[] { 10, 20, 30, 40 });
+    }
+
+    public void testCombineMultiEnd() throws Exception {
+        doTestCombineTwo(
+                new int[] { 10, 20, 30, 40 },
+                new int[] { 35, 45, 50 },
+                new int[] { 10, 20, 30, 35, 40, 45, 50 },
+                new int[] { 35, 45, 50 },
+                new int[] { 10, 20, 30, 40 });
+    }
+
+    public void testCombineMultiFull() throws Exception {
+        doTestCombineTwo(
+                new int[] { 10, 20, 30, 40 },
+                new int[] { 1, 2, 15, 35, 50 },
+                new int[] { 1, 2, 10, 15, 20, 30, 35, 40, 50 },
+                new int[] { 1, 2, 15, 35, 50 },
+                new int[] { 10, 20, 30, 40 });
+    }
+
+    public void testCombineMultiSame() throws Exception {
+        doTestCombineTwo(
+                new int[] { 10, 20, 30, 40 },
+                new int[] { 10, 20, 30 },
+                new int[] { 10, 20, 30, 40 },
+                null,
+                new int[] { 40 });
+    }
+
+    public void testCombineMultiSomeSame() throws Exception {
+        doTestCombineTwo(
+                new int[] { 10, 20, 30, 40 },
+                new int[] { 1, 30, 40 },
+                new int[] { 1, 10, 20, 30, 40 },
+                new int[] { 1 },
+                new int[] { 10, 20 });
+    }
+
+    public void testCombineMultiSomeSameUidsNames() throws Exception {
+        doTestCombineTwoUidsNames(
+                new int[]    { 10,  10,  20,  30,  30,  30,  40 },
+                new String[] { "A", "B", "A", "A", "B", "C", "A" },
+                new int[]    { 1,   30,  40,  50 },
+                new String[] { "A", "A", "B", "A" },
+                new int[]    { 1,   10,  10,  20,  30,  30,  30,  40,  40,  50 },
+                new String[] { "A", "A", "B", "A", "A", "B", "C", "A", "B", "A" },
+                new int[]    { 1,   40,  50 },
+                new String[] { "A", "B", "A" },
+                new int[]    { 10,  10,  20,  30,  30,  40 },
+                new String[] { "A", "B", "A", "B", "C", "A" });
+    }
+
+    private void doTestRemoveUids(int[] lhs, int[] rhs, int[] result, boolean diff) throws Exception {
+        WorkSource ws1 = wsNew(lhs);
+        WorkSource ws2 = wsNew(rhs);
+        boolean diffres = ws1.remove(ws2);
+        if (diffres != diff) {
+            StringBuilder sb = new StringBuilder();
+            sb.append("Expected diff ");
+            sb.append(diff);
+            sb.append(" but got ");
+            sb.append(diffres);
+            sb.append(" when removing ");
+            sb.append(ws2);
+            sb.append(" from ");
+            sb.append(ws1);
+            fail(sb.toString());
+        }
+        checkWorkSource("Remove", ws1, result);
+    }
+
+    private void doTestRemoveNames(String[] lhsnames, String[] rhsnames,
+            String[] resultnames, boolean diff) throws Exception {
+        int[] lhs = makeRepeatingIntArray(lhsnames, 0);
+        int[] rhs = makeRepeatingIntArray(rhsnames, 0);
+        int[] result = makeRepeatingIntArray(resultnames, 0);
+        WorkSource ws1 = wsNew(lhs, lhsnames);
+        WorkSource ws2 = wsNew(rhs, rhsnames);
+        boolean diffres = ws1.remove(ws2);
+        if (diffres != diff) {
+            StringBuilder sb = new StringBuilder();
+            sb.append("Expected diff ");
+            sb.append(diff);
+            sb.append(" but got ");
+            sb.append(diffres);
+            sb.append(" when removing ");
+            sb.append(ws2);
+            sb.append(" from ");
+            sb.append(ws1);
+            fail(sb.toString());
+        }
+        checkWorkSource("Remove", ws1, result, resultnames);
+    }
+
+    private void doTestRemoveUidsNames(int[] lhs, String[] lhsnames, int[] rhs, String[] rhsnames,
+            int[] result, String[] resultnames, boolean diff) throws Exception {
+        WorkSource ws1 = wsNew(lhs, lhsnames);
+        WorkSource ws2 = wsNew(rhs, rhsnames);
+        boolean diffres = ws1.remove(ws2);
+        if (diffres != diff) {
+            StringBuilder sb = new StringBuilder();
+            sb.append("Expected diff ");
+            sb.append(diff);
+            sb.append(" but got ");
+            sb.append(diffres);
+            sb.append(" when removing ");
+            sb.append(ws2);
+            sb.append(" from ");
+            sb.append(ws1);
+            fail(sb.toString());
+        }
+        checkWorkSource("Remove", ws1, result, resultnames);
+    }
+
+    private void doTestRemove(int[] lhs, int[] rhs, int[] result, boolean diff) throws Exception {
+        doTestRemoveUids(lhs, rhs, result, diff);
+        doTestRemoveUidsNames(lhs, makeRepeatingStringArray(lhs, "A"),
+                rhs, makeRepeatingStringArray(rhs, "A"),
+                result, makeRepeatingStringArray(result, "A"),
+                diff);
+        doTestRemoveNames(makeStringArray(lhs), makeStringArray(rhs),
+                makeStringArray(result), diff);
+    }
+
+    public void testRemoveNone() throws Exception {
+        doTestRemove(
+                new int[] { 10, 20, 30, 40 },
+                new int[] { 1, 2, 35, 50 },
+                new int[] { 10, 20, 30, 40 },
+                false);
+    }
+
+    public void testRemoveMultiFront() throws Exception {
+        doTestRemove(
+                new int[] { 10, 20, 30, 40 },
+                new int[] { 1, 2, 10, 30 },
+                new int[] { 20, 40 },
+                true);
+    }
+
+    public void testRemoveMultiMiddle() throws Exception {
+        doTestRemove(
+                new int[] { 10, 20, 30, 40 },
+                new int[] { 20, 30 },
+                new int[] { 10, 40 },
+                true);
+    }
+
+    public void testRemoveMultiEnd() throws Exception {
+        doTestRemove(
+                new int[] { 10, 20, 30, 40 },
+                new int[] { 30, 40, 50 },
+                new int[] { 10, 20 },
+                true);
+    }
+
+    public void testRemoveMultiFull() throws Exception {
+        doTestRemove(
+                new int[] { 10, 20, 30, 40 },
+                new int[] { 1, 2, 20, 25, 35, 40 },
+                new int[] { 10, 30 },
+                true);
+    }
+
+    public void testRemoveMultiAll() throws Exception {
+        doTestRemove(
+                new int[] { 10, 20, 30, 40 },
+                new int[] { 10, 20, 30, 40 },
+                new int[] { },
+                true);
+    }
+
+    private void doTestStripNames(int[] uids, String[] names, int[] expected) throws Exception {
+        WorkSource ws1 = wsNew(uids, names);
+        WorkSource res = wsStripNames(ws1);
+        checkWorkSource("StripNames", res, expected);
+    }
+
+    public void testStripNamesSimple() throws Exception {
+        doTestStripNames(
+                new int[]    { 10,  20,  30,  40 },
+                new String[] { "A", "A", "A", "A" },
+                new int[]    { 10, 20, 30, 40 });
+    }
+
+    public void testStripNamesFull() throws Exception {
+        doTestStripNames(
+                new int[]    { 10,  10,  10,  10 },
+                new String[] { "A", "B", "C", "D" },
+                new int[]    { 10 });
+    }
+
+    public void testStripNamesComplex() throws Exception {
+        doTestStripNames(
+                new int[]    { 10,  20,  20,  30,  40,  40 },
+                new String[] { "A", "A", "B", "A", "A", "B" },
+                new int[]    { 10, 20, 30, 40 });
+    }
+}
diff --git a/tests/tests/permission/jni/android_permission_cts_FileUtils.cpp b/tests/tests/permission/jni/android_permission_cts_FileUtils.cpp
index c658af6..272bbdc 100644
--- a/tests/tests/permission/jni/android_permission_cts_FileUtils.cpp
+++ b/tests/tests/permission/jni/android_permission_cts_FileUtils.cpp
@@ -16,10 +16,15 @@
 
 #include <jni.h>
 #include <stdio.h>
+#include <cutils/log.h>
+#include <linux/xattr.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <sys/xattr.h>
+#include <sys/capability.h>
 #include <grp.h>
 #include <pwd.h>
+#include <string.h>
 
 static jfieldID gFileStatusDevFieldID;
 static jfieldID gFileStatusInoFieldID;
@@ -87,6 +92,44 @@
     return env->NewStringUTF(grp->gr_name);
 }
 
+static jboolean isPermittedCapBitSet(JNIEnv* env, jstring path, size_t capId)
+{
+    const char* pathStr = env->GetStringUTFChars(path, NULL);
+    jboolean ret = false;
+
+    struct vfs_cap_data capData;
+    memset(&capData, 0, sizeof(capData));
+
+    ssize_t result = getxattr(pathStr, XATTR_NAME_CAPS, &capData,
+                              sizeof(capData));
+    if (result > 0) {
+      ret = (capData.data[CAP_TO_INDEX(capId)].permitted &
+             CAP_TO_MASK(capId)) != 0;
+      ALOGD("isPermittedCapBitSet(): getxattr(\"%s\") call succeeded, "
+            "cap bit %u %s",
+            pathStr, capId, ret ? "set" : "unset");
+    } else {
+      ALOGD("isPermittedCapBitSet(): getxattr(\"%s\") call failed: "
+            "return %d (error: %s (%d))\n",
+            pathStr, result, strerror(errno), errno);
+    }
+
+    env->ReleaseStringUTFChars(path, pathStr);
+    return ret;
+}
+
+jboolean android_permission_cts_FileUtils_hasSetUidCapability(JNIEnv* env,
+        jobject clazz, jstring path)
+{
+    return isPermittedCapBitSet(env, path, CAP_SETUID);
+}
+
+jboolean android_permission_cts_FileUtils_hasSetGidCapability(JNIEnv* env,
+        jobject clazz, jstring path)
+{
+    return isPermittedCapBitSet(env, path, CAP_SETGID);
+}
+
 static JNINativeMethod gMethods[] = {
     {  "getFileStatus", "(Ljava/lang/String;Landroid/permission/cts/FileUtils$FileStatus;Z)Z",
             (void *) android_permission_cts_FileUtils_getFileStatus  },
@@ -94,6 +137,10 @@
             (void *) android_permission_cts_FileUtils_getUserName  },
     {  "getGroupName", "(I)Ljava/lang/String;",
             (void *) android_permission_cts_FileUtils_getGroupName  },
+    {  "hasSetUidCapability", "(Ljava/lang/String;)Z",
+            (void *) android_permission_cts_FileUtils_hasSetUidCapability   },
+    {  "hasSetGidCapability", "(Ljava/lang/String;)Z",
+            (void *) android_permission_cts_FileUtils_hasSetGidCapability   },
 };
 
 int register_android_permission_cts_FileUtils(JNIEnv* env)
diff --git a/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java b/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
index fab26b5..d325b4b 100644
--- a/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
+++ b/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
@@ -196,6 +196,39 @@
         assertFileOwnedByGroup(f, "nfc");
     }
 
+    @MediumTest
+    public void testDevQtaguidSane() throws Exception {
+        File f = new File("/dev/xt_qtaguid");
+        assertTrue(f.canRead());
+        assertFalse(f.canWrite());
+        assertFalse(f.canExecute());
+
+        assertFileOwnedBy(f, "root");
+        assertFileOwnedByGroup(f, "root");
+    }
+
+    @MediumTest
+    public void testProcQtaguidCtrlSane() throws Exception {
+        File f = new File("/proc/net/xt_qtaguid/ctrl");
+        assertTrue(f.canRead());
+        assertTrue(f.canWrite());
+        assertFalse(f.canExecute());
+
+        assertFileOwnedBy(f, "root");
+        assertFileOwnedByGroup(f, "net_bw_acct");
+    }
+
+    @MediumTest
+    public void testProcQtaguidStatsSane() throws Exception {
+        File f = new File("/proc/net/xt_qtaguid/stats");
+        assertTrue(f.canRead());
+        assertFalse(f.canWrite());
+        assertFalse(f.canExecute());
+
+        assertFileOwnedBy(f, "root");
+        assertFileOwnedByGroup(f, "net_bw_stats");
+    }
+
     /**
      * Assert that a file is owned by a specific owner. This is a noop if the
      * file does not exist.
@@ -538,49 +571,21 @@
         }
     }
 
-    // This set contains all exceptions for writable sysfs, if it is a
-    // directory, all files below that directory are included, so be
-    // careful.
-    private static final Set<String> SYS_EXCEPTIONS = new HashSet<String>(
+    private static final Set<File> SYS_EXCEPTIONS = new HashSet<File>(
             Arrays.asList(
-                "/sys/kernel/debug/tracing/trace_marker",
-                "/sys/fs/selinux"
+                new File("/sys/kernel/debug/tracing/trace_marker"),
+                new File("/sys/fs/selinux/member"),
+                new File("/sys/fs/selinux/user"),
+                new File("/sys/fs/selinux/relabel"),
+                new File("/sys/fs/selinux/create"),
+                new File("/sys/fs/selinux/access"),
+                new File("/sys/fs/selinux/context")
             ));
 
-    private static Set <File> getIgnorablesFromPaths(Set <String> paths) {
-
-        Set <File> ignorable = new HashSet <File> ();
-
-        for(String ignore : paths) {
-               File tmp = new File(ignore);
-
-               File[] files = null;
-               if(tmp.isDirectory()) {
-                    files = tmp.listFiles(new FileFilter() {
-                       @Override public boolean accept(File pathname) {
-                           return pathname.isFile();
-                       }
-                   });
-               }
-               else if(tmp.isFile()){
-                   files = new File[1];
-                   files [0] = tmp;
-               }
-               else {
-                   // Should this be an Exception?
-                   continue;
-               }
-               ignorable.addAll(Arrays.asList(files));
-        }
-        return ignorable;
-    }
-
     @LargeTest
     public void testAllFilesInSysAreNotWritable() throws Exception {
         Set<File> writable = getAllWritableFilesInDirAndSubDir(new File("/sys"));
-        Set<File> ignorables = getIgnorablesFromPaths(SYS_EXCEPTIONS);
-
-        writable.removeAll(ignorables);
+        writable.removeAll(SYS_EXCEPTIONS);
         assertTrue("Found writable: " + writable.toString(),
                 writable.isEmpty());
     }
@@ -671,8 +676,69 @@
     }
 
     public void testAllBlockDevicesAreSecure() throws Exception {
-        Set<File> insecure = getAllInsecureBlockDevicesInDirAndSubdir(new File("/dev"));
-        assertTrue("Found insecure: " + insecure.toString(),
+        Set<File> insecure = getAllInsecureDevicesInDirAndSubdir(new File("/dev"), FileUtils.S_IFBLK);
+        assertTrue("Found insecure block devices: " + insecure.toString(),
+                insecure.isEmpty());
+    }
+
+    private static final Set<File> CHAR_DEV_EXCEPTIONS = new HashSet<File>(
+            Arrays.asList(
+                // All exceptions should be alphabetical and associated with a bug number.
+                new File("/dev/adsprpc-smd"), // b/11710243
+                new File("/dev/alarm"),      // b/9035217
+                new File("/dev/ashmem"),
+                new File("/dev/binder"),
+                new File("/dev/felica"),     // b/11142586
+                new File("/dev/felica_ant"), // b/11142586
+                new File("/dev/felica_cen"), // b/11142586
+                new File("/dev/felica_pon"), // b/11142586
+                new File("/dev/felica_rfs"), // b/11142586
+                new File("/dev/felica_rws"), // b/11142586
+                new File("/dev/felica_uicc"), // b/11142586
+                new File("/dev/full"),
+                new File("/dev/genlock"),    // b/9035217
+                new File("/dev/hw_random"),  // b/9191279
+                new File("/dev/ion"),
+                new File("/dev/kgsl-2d0"),   // b/11271533
+                new File("/dev/kgsl-2d1"),   // b/11271533
+                new File("/dev/kgsl-3d0"),   // b/9035217
+                new File("/dev/log/events"), // b/9035217
+                new File("/dev/log/main"),   // b/9035217
+                new File("/dev/log/radio"),  // b/9035217
+                new File("/dev/log/system"), // b/9035217
+                new File("/dev/mali0"),       // b/9106968
+                new File("/dev/mali"),        // b/11142586
+                new File("/dev/msm_rotator"), // b/9035217
+                new File("/dev/null"),
+                new File("/dev/nvhost-ctrl"), // b/9088251
+                new File("/dev/nvhost-gr2d"), // b/9088251
+                new File("/dev/nvhost-gr3d"), // b/9088251
+                new File("/dev/nvhost-tsec"),
+                new File("/dev/nvmap"),       // b/9088251
+                new File("/dev/ptmx"),        // b/9088251
+                new File("/dev/pvrsrvkm"),    // b/9108170
+                new File("/dev/quadd"),
+                new File("/dev/random"),
+                new File("/dev/snfc_cen"),    // b/11142586
+                new File("/dev/snfc_hsel"),   // b/11142586
+                new File("/dev/snfc_intu_poll"), // b/11142586
+                new File("/dev/snfc_rfs"),    // b/11142586
+                new File("/dev/tiler"),       // b/9108170
+                new File("/dev/tty"),
+                new File("/dev/urandom"),
+                new File("/dev/ump"),         // b/11142586
+                new File("/dev/xt_qtaguid"),  // b/9088251
+                new File("/dev/zero"),
+                new File("/dev/fimg2d"),      // b/10428016
+                new File("/dev/mobicore-user") // b/10428016
+            ));
+
+    public void testAllCharacterDevicesAreSecure() throws Exception {
+        Set<File> insecure = getAllInsecureDevicesInDirAndSubdir(new File("/dev"), FileUtils.S_IFCHR);
+        Set<File> insecurePts = getAllInsecureDevicesInDirAndSubdir(new File("/dev/pts"), FileUtils.S_IFCHR);
+        insecure.removeAll(CHAR_DEV_EXCEPTIONS);
+        insecure.removeAll(insecurePts);
+        assertTrue("Found insecure character devices: " + insecure.toString(),
                 insecure.isEmpty());
     }
 
@@ -694,8 +760,32 @@
                 (status.mode & 0666) == 0666);
     }
 
+    /**
+     * Test that the /system/bin/run-as command has setuid and setgid
+     * attributes set on the file.  If these calls fail, debugger
+     * breakpoints for native code will not work as run-as will not
+     * be able to perform required elevated-privilege functionality.
+     */
+    public void testRunAsHasCorrectCapabilities() throws Exception {
+        // ensure file is user and group read/executable
+        String filename = "/system/bin/run-as";
+        FileUtils.FileStatus status = new FileUtils.FileStatus();
+        assertTrue(FileUtils.getFileStatus(filename, status, false));
+        assertTrue(status.hasModeFlag(FileUtils.S_IRUSR | FileUtils.S_IXUSR));
+        assertTrue(status.hasModeFlag(FileUtils.S_IRGRP | FileUtils.S_IXGRP));
+
+        // ensure file owner/group is set correctly
+        File f = new File(filename);
+        assertFileOwnedBy(f, "root");
+        assertFileOwnedByGroup(f, "shell");
+
+        // ensure file has setuid/setgid enabled
+        assertTrue(FileUtils.hasSetUidCapability(filename));
+        assertTrue(FileUtils.hasSetGidCapability(filename));
+    }
+
     private static Set<File>
-    getAllInsecureBlockDevicesInDirAndSubdir(File dir) throws Exception {
+    getAllInsecureDevicesInDirAndSubdir(File dir, int type) throws Exception {
         assertTrue(dir.isDirectory());
         Set<File> retval = new HashSet<File>();
 
@@ -714,7 +804,7 @@
         /* recurse into subdirectories */
         if (subDirectories != null) {
             for (File f : subDirectories) {
-                retval.addAll(getAllInsecureBlockDevicesInDirAndSubdir(f));
+                retval.addAll(getAllInsecureDevicesInDirAndSubdir(f, type));
             }
         }
 
@@ -726,16 +816,16 @@
         for (File f: filesInThisDirectory) {
             FileUtils.FileStatus status = new FileUtils.FileStatus();
             FileUtils.getFileStatus(f.getAbsolutePath(), status, false);
-            if (status.hasModeFlag(FileUtils.S_IFBLK)) {
+            if (status.isOfType(type)) {
                 if (f.canRead() || f.canWrite() || f.canExecute()) {
                     retval.add(f);
                 }
                 if (status.uid == 2000) {
-                    // The shell user should not own any block devices
+                    // The shell user should not own any devices
                     retval.add(f);
                 }
 
-                // Don't allow block devices owned by GIDs
+                // Don't allow devices owned by GIDs
                 // accessible to non-privileged applications.
                 if ((status.gid == 1007)           // AID_LOG
                           || (status.gid == 1015)  // AID_SDCARD_RW
@@ -747,9 +837,6 @@
                             || status.hasModeFlag(FileUtils.S_IWGRP)
                             || status.hasModeFlag(FileUtils.S_IXGRP))
                     {
-
-                        // non-privileged GIDs should not be able to access
-                        // any block device.
                         retval.add(f);
                     }
                 }
diff --git a/tests/tests/permission/src/android/permission/cts/FileUtils.java b/tests/tests/permission/src/android/permission/cts/FileUtils.java
index 5a869de..9cd4999 100644
--- a/tests/tests/permission/src/android/permission/cts/FileUtils.java
+++ b/tests/tests/permission/src/android/permission/cts/FileUtils.java
@@ -19,6 +19,7 @@
 /** Bits and pieces copied from hidden API of android.os.FileUtils. */
 public class FileUtils {
 
+    public static final int S_IFMT  = 0170000;
     public static final int S_IFSOCK = 0140000;
     public static final int S_IFLNK = 0120000;
     public static final int S_IFREG = 0100000;
@@ -31,14 +32,17 @@
     public static final int S_ISGID = 0002000;
     public static final int S_ISVTX = 0001000;
 
+    public static final int S_IRWXU = 00700;
     public static final int S_IRUSR = 00400;
     public static final int S_IWUSR = 00200;
     public static final int S_IXUSR = 00100;
 
+    public static final int S_IRWXG = 00070;
     public static final int S_IRGRP = 00040;
     public static final int S_IWGRP = 00020;
     public static final int S_IXGRP = 00010;
 
+    public static final int S_IRWXO = 00007;
     public static final int S_IROTH = 00004;
     public static final int S_IWOTH = 00002;
     public static final int S_IXOTH = 00001;
@@ -64,8 +68,18 @@
         public long ctime;
 
         public boolean hasModeFlag(int flag) {
+            if (((S_IRWXU | S_IRWXG | S_IRWXO) & flag) != flag) {
+                throw new IllegalArgumentException("Inappropriate flag " + flag);
+            }
             return (mode & flag) == flag;
         }
+
+        public boolean isOfType(int type) {
+            if ((type & S_IFMT) != type) {
+                throw new IllegalArgumentException("Unknown type " + type);
+            }
+            return (mode & S_IFMT) == type;
+        }
     }
 
     /**
@@ -80,4 +94,7 @@
 
     public native static String getGroupName(int gid);
 
+    public native static boolean hasSetUidCapability(String path);
+
+    public native static boolean hasSetGidCapability(String path);
 }
diff --git a/tests/tests/permission2/src/android/permission2/cts/NoReceiveGsmSmsPermissionTest.java b/tests/tests/permission2/src/android/permission2/cts/NoReceiveGsmSmsPermissionTest.java
deleted file mode 100644
index 9b20d1d..0000000
--- a/tests/tests/permission2/src/android/permission2/cts/NoReceiveGsmSmsPermissionTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * 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.
- */
-
-package android.permission2.cts;
-
-import android.app.PendingIntent;
-import android.telephony.gsm.SmsManager;
-
-/**
- * Verify Sms and Mms cannot be received without required permissions.
- * Uses {@link android.telephony.gsm.SmsManager}.
- */
-@SuppressWarnings("deprecation")
-public class NoReceiveGsmSmsPermissionTest extends NoReceiveSmsPermissionTest {
-
-    protected void sendSms(PendingIntent sentIntent, PendingIntent deliveryIntent,
-            String currentNumber) {
-        SmsManager.getDefault().sendTextMessage(currentNumber, null, "test message",
-                sentIntent, deliveryIntent);
-    }
-}
diff --git a/tests/tests/permission2/src/android/permission2/cts/ProtectedBroadcastsTest.java b/tests/tests/permission2/src/android/permission2/cts/ProtectedBroadcastsTest.java
index 877a89e..f7e5443 100755
--- a/tests/tests/permission2/src/android/permission2/cts/ProtectedBroadcastsTest.java
+++ b/tests/tests/permission2/src/android/permission2/cts/ProtectedBroadcastsTest.java
@@ -80,7 +80,8 @@
         "android.net.wifi.p2p.CONNECTION_STATE_CHANGE",
         "android.net.wifi.p2p.PERSISTENT_GROUPS_CHANGED",
         "android.net.conn.TETHER_STATE_CHANGED",
-        "android.net.conn.INET_CONDITION_ACTION"
+        "android.net.conn.INET_CONDITION_ACTION",
+        "android.net.conn.CAPTIVE_PORTAL_TEST_COMPLETED"
     };
 
     /**
diff --git a/tests/tests/provider/AndroidManifest.xml b/tests/tests/provider/AndroidManifest.xml
index 75a6392..94dc408 100644
--- a/tests/tests/provider/AndroidManifest.xml
+++ b/tests/tests/provider/AndroidManifest.xml
@@ -16,11 +16,28 @@
  -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.cts.provider">
+          package="com.android.cts.provider">
 
-    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
+    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
+    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
+    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
+    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
+
     <application>
-        <uses-library android:name="android.test.runner" />
+        <uses-library android:name="android.test.runner"/>
+
+        <service android:name="android.provider.cts.contacts.account.MockAccountService"
+                 process="com.android.cts.provider"
+                 android:exported="true">
+            <intent-filter>
+                <action android:name="android.accounts.AccountAuthenticator"/>
+            </intent-filter>
+
+            <meta-data android:name="android.accounts.AccountAuthenticator"
+                       android:resource="@xml/contactprovider_authenticator"/>
+        </service>
+
     </application>
 
     <instrumentation android:name="android.test.InstrumentationCtsTestRunner"
diff --git a/tests/tests/provider/res/drawable/ic_cts_minitab_selected.png b/tests/tests/provider/res/drawable/ic_cts_minitab_selected.png
new file mode 100644
index 0000000..c730050
--- /dev/null
+++ b/tests/tests/provider/res/drawable/ic_cts_minitab_selected.png
Binary files differ
diff --git a/tests/tests/provider/res/drawable/ic_cts_selected.png b/tests/tests/provider/res/drawable/ic_cts_selected.png
new file mode 100644
index 0000000..72a065c
--- /dev/null
+++ b/tests/tests/provider/res/drawable/ic_cts_selected.png
Binary files differ
diff --git a/tests/tests/provider/res/values/strings.xml b/tests/tests/provider/res/values/strings.xml
new file mode 100644
index 0000000..b599c31
--- /dev/null
+++ b/tests/tests/provider/res/values/strings.xml
@@ -0,0 +1,20 @@
+<!--
+  ~ Copyright (C) 2013 The Android Open Source Project
+  ~
+  ~ 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
+  -->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Label for this package -->
+    <string name="label">Contacts provider</string>
+</resources>
diff --git a/tests/tests/provider/res/xml/contactprovider_authenticator.xml b/tests/tests/provider/res/xml/contactprovider_authenticator.xml
new file mode 100644
index 0000000..2a53438
--- /dev/null
+++ b/tests/tests/provider/res/xml/contactprovider_authenticator.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2013 The Android Open Source Project
+  ~
+  ~ 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
+  -->
+
+<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
+    android:accountType="com.android.cts.contactsprovider"
+    android:icon="@drawable/ic_cts_selected"
+    android:smallIcon="@drawable/ic_cts_minitab_selected"
+    android:label="@string/label"
+/>
diff --git a/tests/tests/provider/src/android/provider/cts/CalendarTest.java b/tests/tests/provider/src/android/provider/cts/CalendarTest.java
index cbefa9d..bd8e06d 100644
--- a/tests/tests/provider/src/android/provider/cts/CalendarTest.java
+++ b/tests/tests/provider/src/android/provider/cts/CalendarTest.java
@@ -1769,15 +1769,34 @@
 
         // Test that inserting a valid color index works
         ev = EventHelper.getNewEventValues(account, seed++, cal_id, false);
-        ev.put(Events.EVENT_COLOR_KEY, ColorHelper.DEFAULT_INDICES[ColorHelper.E_COLOR_0]);
+        final String defaultColorIndex = ColorHelper.DEFAULT_INDICES[ColorHelper.E_COLOR_0];
+        ev.put(Events.EVENT_COLOR_KEY, defaultColorIndex);
 
         Uri uri = mContentResolver.insert(Events.CONTENT_URI, ev);
         long eventId2 = ContentUris.parseId(uri);
         assertTrue(eventId2 >= 0);
         // And updates the event's color to the one in the table
-        ev.put(Events.EVENT_COLOR, ColorHelper.DEFAULT_COLORS[ColorHelper.E_COLOR_0]);
+        final int expectedColor = ColorHelper.DEFAULT_COLORS[ColorHelper.E_COLOR_0];
+        ev.put(Events.EVENT_COLOR, expectedColor);
         verifyEvent(ev, eventId2);
 
+        // Test that event iterator has COLOR columns
+        final EntityIterator iterator = EventsEntity.newEntityIterator(mContentResolver.query(
+                ContentUris.withAppendedId(EventsEntity.CONTENT_URI, eventId2),
+                null, null, null, null), mContentResolver);
+        assertTrue("Empty Iterator", iterator.hasNext());
+        final Entity entity = iterator.next();
+        final ContentValues values = entity.getEntityValues();
+        assertTrue("Missing EVENT_COLOR", values.containsKey(EventsEntity.EVENT_COLOR));
+        assertEquals("Wrong EVENT_COLOR",
+                expectedColor,
+                (int) values.getAsInteger(EventsEntity.EVENT_COLOR));
+        assertTrue("Missing EVENT_COLOR_KEY", values.containsKey(EventsEntity.EVENT_COLOR_KEY));
+        assertEquals("Wrong EVENT_COLOR_KEY",
+                defaultColorIndex,
+                values.getAsString(EventsEntity.EVENT_COLOR_KEY));
+        iterator.close();
+
         // Test that updating a valid color index also updates the color in an
         // event
         ev.clear();
diff --git a/tests/tests/provider/src/android/provider/cts/ContactsContract_ContactsTest.java b/tests/tests/provider/src/android/provider/cts/ContactsContract_ContactsTest.java
index 88db884..006f4df 100644
--- a/tests/tests/provider/src/android/provider/cts/ContactsContract_ContactsTest.java
+++ b/tests/tests/provider/src/android/provider/cts/ContactsContract_ContactsTest.java
@@ -16,34 +16,43 @@
 
 package android.provider.cts;
 
-import android.app.Instrumentation;
 import android.content.ContentProviderClient;
 import android.content.ContentResolver;
 import android.content.ContentUris;
+import android.content.ContentValues;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.net.Uri;
+import android.os.SystemClock;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.Contacts;
 import android.provider.cts.ContactsContract_TestDataBuilder.TestContact;
 import android.provider.cts.ContactsContract_TestDataBuilder.TestRawContact;
-import android.test.InstrumentationTestCase;
+import android.provider.cts.contacts.ContactUtil;
+import android.provider.cts.contacts.DatabaseAsserts;
+import android.provider.cts.contacts.RawContactUtil;
+import android.provider.cts.contacts.account.StaticAccountAuthenticator;
+import android.test.AndroidTestCase;
 
 import java.util.List;
 
-public class ContactsContract_ContactsTest extends InstrumentationTestCase {
-    private ContentResolver mContentResolver;
+public class ContactsContract_ContactsTest extends AndroidTestCase {
+
+    private StaticAccountAuthenticator mAuthenticator;
+    private ContentResolver mResolver;
     private ContactsContract_TestDataBuilder mBuilder;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        mContentResolver = getInstrumentation().getTargetContext().getContentResolver();
+        mResolver = getContext().getContentResolver();
         ContentProviderClient provider =
-                mContentResolver.acquireContentProviderClient(ContactsContract.AUTHORITY);
+                mResolver.acquireContentProviderClient(ContactsContract.AUTHORITY);
         mBuilder = new ContactsContract_TestDataBuilder(provider);
+
+        mAuthenticator = new StaticAccountAuthenticator(getContext());
     }
 
     @Override
@@ -57,14 +66,14 @@
         TestContact contact = rawContact.getContact().load();
         long oldLastContacted = contact.getLong(Contacts.LAST_TIME_CONTACTED);
 
-        Contacts.markAsContacted(mContentResolver, contact.getId());
+        Contacts.markAsContacted(mResolver, contact.getId());
         contact.load(); // Reload
 
         long lastContacted = contact.getLong(Contacts.LAST_TIME_CONTACTED);
         assertTrue(oldLastContacted < lastContacted);
         oldLastContacted = lastContacted;
 
-        Contacts.markAsContacted(mContentResolver, contact.getId());
+        Contacts.markAsContacted(mResolver, contact.getId());
         contact.load();
 
         lastContacted = contact.getLong(Contacts.LAST_TIME_CONTACTED);
@@ -72,8 +81,7 @@
     }
 
     public void testContentUri() {
-        Instrumentation instrumentation = getInstrumentation();
-        Context context = instrumentation.getContext();
+        Context context = getContext();
         PackageManager packageManager = context.getPackageManager();
         Intent intent = new Intent(Intent.ACTION_VIEW, ContactsContract.Contacts.CONTENT_URI);
         List<ResolveInfo> resolveInfos = packageManager.queryIntentActivities(intent, 0);
@@ -93,11 +101,79 @@
         assertEquals(ContentUris.withAppendedId(Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI,
                 lookupKey), contactId), lookupUri);
 
-        Uri lookupUri2 = Contacts.getLookupUri(mContentResolver, contactUri);
+        Uri lookupUri2 = Contacts.getLookupUri(mResolver, contactUri);
         assertEquals(lookupUri, lookupUri2);
 
-        Uri contactUri2 = Contacts.lookupContact(mContentResolver, lookupUri);
+        Uri contactUri2 = Contacts.lookupContact(mResolver, lookupUri);
         assertEquals(contactUri, contactUri2);
     }
-}
 
+    public void testInsert_isUnsupported() {
+        DatabaseAsserts.assertInsertIsUnsupported(mResolver, Contacts.CONTENT_URI);
+    }
+
+    public void testContactDelete_removesContactRecord() {
+        assertContactCreateDelete();
+    }
+
+    public void testContactDelete_hasDeleteLog() {
+        long start = System.currentTimeMillis();
+        DatabaseAsserts.ContactIdPair ids = assertContactCreateDelete();
+        DatabaseAsserts.assertHasDeleteLogGreaterThan(mResolver, ids.mContactId, start);
+
+        // Clean up. Must also remove raw contact.
+        RawContactUtil.delete(mResolver, ids.mRawContactId, true);
+    }
+
+    public void testContactDelete_marksRawContactsForDeletion() {
+        DatabaseAsserts.ContactIdPair ids = assertContactCreateDelete();
+
+        String[] projection = new String[] {
+                ContactsContract.RawContacts.DIRTY,
+                ContactsContract.RawContacts.DELETED
+        };
+        List<String[]> records = RawContactUtil.queryByContactId(mResolver, ids.mContactId,
+                projection);
+        for (String[] arr : records) {
+            assertEquals("1", arr[0]);
+            assertEquals("1", arr[1]);
+        }
+
+        // Clean up
+        RawContactUtil.delete(mResolver, ids.mRawContactId, true);
+    }
+
+    public void testContactUpdate_updatesContactUpdatedTimestamp() {
+        DatabaseAsserts.ContactIdPair ids = DatabaseAsserts.assertAndCreateContact(mResolver);
+
+        long baseTime = ContactUtil.queryContactLastUpdatedTimestamp(mResolver, ids.mContactId);
+
+        ContentValues values = new ContentValues();
+        values.put(ContactsContract.Contacts.STARRED, 1);
+
+        SystemClock.sleep(1);
+        ContactUtil.update(mResolver, ids.mContactId, values);
+
+        long newTime = ContactUtil.queryContactLastUpdatedTimestamp(mResolver, ids.mContactId);
+        assertTrue(newTime > baseTime);
+
+        // Clean up
+        RawContactUtil.delete(mResolver, ids.mRawContactId, true);
+    }
+
+    /**
+     * Create a contact.  Delete it.  And assert that the contact record is no longer present.
+     *
+     * @return The contact id and raw contact id that was created.
+     */
+    private DatabaseAsserts.ContactIdPair assertContactCreateDelete() {
+        DatabaseAsserts.ContactIdPair ids = DatabaseAsserts.assertAndCreateContact(mResolver);
+
+        SystemClock.sleep(1);
+        ContactUtil.delete(mResolver, ids.mContactId);
+
+        assertFalse(ContactUtil.recordExistsForContactId(mResolver, ids.mContactId));
+
+        return ids;
+    }
+}
diff --git a/tests/tests/provider/src/android/provider/cts/ContactsContract_DataTest.java b/tests/tests/provider/src/android/provider/cts/ContactsContract_DataTest.java
index 0644cb2..7cfb183 100644
--- a/tests/tests/provider/src/android/provider/cts/ContactsContract_DataTest.java
+++ b/tests/tests/provider/src/android/provider/cts/ContactsContract_DataTest.java
@@ -17,18 +17,34 @@
 package android.provider.cts;
 
 
+import static android.provider.ContactsContract.CommonDataKinds;
+
 import android.content.ContentProviderClient;
 import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.database.Cursor;
 import android.net.Uri;
+import android.os.SystemClock;
 import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Contactables;
+import android.provider.ContactsContract.CommonDataKinds.Email;
+import android.provider.ContactsContract.CommonDataKinds.Organization;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Data;
 import android.provider.ContactsContract.RawContacts;
 import android.provider.cts.ContactsContract_TestDataBuilder.TestContact;
 import android.provider.cts.ContactsContract_TestDataBuilder.TestData;
 import android.provider.cts.ContactsContract_TestDataBuilder.TestRawContact;
+import android.provider.cts.contacts.ContactUtil;
+import android.provider.cts.contacts.DataUtil;
+import android.provider.cts.contacts.DatabaseAsserts;
+import android.provider.cts.contacts.RawContactUtil;
 import android.test.InstrumentationTestCase;
 
+import java.util.ArrayList;
+
 public class ContactsContract_DataTest extends InstrumentationTestCase {
     private ContentResolver mResolver;
     private ContactsContract_TestDataBuilder mBuilder;
@@ -57,8 +73,8 @@
 
         // TODO remove this. The method under test is currently broken: it will not
         // work without at least one data row in the raw contact.
-        TestData data = rawContact.newDataRow(StructuredName.CONTENT_ITEM_TYPE)
-                .with(StructuredName.DISPLAY_NAME, "test name")
+        TestData data = rawContact.newDataRow(CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
+                .with(CommonDataKinds.StructuredName.DISPLAY_NAME, "test name")
                 .insert();
 
         Uri lookupUri = Data.getContactLookupUri(mResolver, data.getUri());
@@ -74,8 +90,8 @@
                 .with(RawContacts.ACCOUNT_TYPE, "test_type")
                 .with(RawContacts.ACCOUNT_NAME, "test_name")
                 .insert();
-        TestData data = rawContact.newDataRow(StructuredName.CONTENT_ITEM_TYPE)
-                .with(StructuredName.DISPLAY_NAME, "test name")
+        TestData data = rawContact.newDataRow(CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
+                .with(CommonDataKinds.StructuredName.DISPLAY_NAME, "test name")
                 .insert();
 
         Uri lookupUri = Data.getContactLookupUri(mResolver, data.getUri());
@@ -85,5 +101,293 @@
         assertEquals("Lookup URI matched the wrong contact",
                 lookupContact.getId(), data.load().getRawContact().load().getContactId());
     }
+
+    public void testContactablesUri() throws Exception {
+        TestRawContact rawContact = mBuilder.newRawContact()
+                .with(RawContacts.ACCOUNT_TYPE, "test_account")
+                .with(RawContacts.ACCOUNT_NAME, "test_name")
+                .insert();
+        rawContact.newDataRow(CommonDataKinds.Email.CONTENT_ITEM_TYPE)
+                .with(Email.DATA, "test@test.com")
+                .with(Email.TYPE, Email.TYPE_WORK)
+                .insert();
+        ContentValues cv = new ContentValues();
+        cv.put(Email.DATA, "test@test.com");
+        cv.put(Email.TYPE, Email.TYPE_WORK);
+
+        Uri contentUri = ContactsContract.CommonDataKinds.Contactables.CONTENT_URI;
+        try {
+            assertCursorStoredValuesWithRawContactsFilter(contentUri,
+                    new long[] {rawContact.getId()}, cv);
+            rawContact.newDataRow(CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
+                    .with(CommonDataKinds.StructuredPostal.DATA1, "100 Sesame Street")
+                    .insert();
+
+            rawContact.newDataRow(Phone.CONTENT_ITEM_TYPE)
+                    .with(Phone.DATA, "123456789")
+                    .with(Phone.TYPE, Phone.TYPE_MOBILE)
+                    .insert();
+
+            ContentValues cv2 = new ContentValues();
+            cv.put(Phone.DATA, "123456789");
+            cv.put(Phone.TYPE, Phone.TYPE_MOBILE);
+
+            // Contactables Uri should return only email and phone data items.
+            DatabaseAsserts.assertStoredValuesInUriMatchExactly(mResolver, contentUri, null,
+                    Data.RAW_CONTACT_ID + "=?", new String[] {String.valueOf(rawContact.getId())},
+                    null, cv, cv2);
+        } finally {
+            // Clean up
+            rawContact.delete();
+        }
+    }
+
+    public void testContactablesFilterByLastName_returnsCorrectDataRows() throws Exception {
+        long[] ids = setupContactablesTestData();
+        Uri filterUri = Uri.withAppendedPath(Contactables.CONTENT_FILTER_URI, "tamale");
+        assertCursorStoredValuesWithRawContactsFilter(filterUri, ids,
+                ContactablesTestHelper.getContentValues(0));
+    }
+
+    public void testContactablesFilterByFirstName_returnsCorrectDataRows() throws Exception {
+        long[] ids = setupContactablesTestData();
+        Uri filterUri = Uri.withAppendedPath(Contactables.CONTENT_FILTER_URI, "hot");
+        assertCursorStoredValuesWithRawContactsFilter(filterUri, ids,
+                ContactablesTestHelper.getContentValues(0));
+        Uri filterUri2 = Uri.withAppendedPath(Contactables.CONTENT_FILTER_URI, "tam");
+        assertCursorStoredValuesWithRawContactsFilter(filterUri2, ids,
+                ContactablesTestHelper.getContentValues(0, 1));
+    }
+
+    public void testContactablesFilterByPhonePrefix_returnsCorrectDataRows() throws Exception {
+        long[] ids = setupContactablesTestData();
+        Uri filterUri = Uri.withAppendedPath(Contactables.CONTENT_FILTER_URI, "518");
+        assertCursorStoredValuesWithRawContactsFilter(filterUri, ids,
+                ContactablesTestHelper.getContentValues(2));
+        Uri filterUri2 = Uri.withAppendedPath(Contactables.CONTENT_FILTER_URI, "51");
+        assertCursorStoredValuesWithRawContactsFilter(filterUri2, ids,
+                ContactablesTestHelper.getContentValues(0, 2));
+    }
+
+    public void testContactablesFilterByEmailPrefix_returnsCorrectDataRows() throws Exception {
+        long[] ids = setupContactablesTestData();
+        Uri filterUri = Uri.withAppendedPath(Contactables.CONTENT_FILTER_URI, "doeassoc");
+        assertCursorStoredValuesWithRawContactsFilter(filterUri, ids,
+                ContactablesTestHelper.getContentValues(2));
+    }
+
+    public void testContactablesFilter_doesNotExist_returnsCorrectDataRows() throws Exception {
+        long[] ids = setupContactablesTestData();
+        Uri filterUri = Uri.withAppendedPath(Contactables.CONTENT_FILTER_URI, "doesnotexist");
+        assertCursorStoredValuesWithRawContactsFilter(filterUri, ids, new ContentValues[0]);
+    }
+
+    public void testDataInsert_updatesContactLastUpdatedTimestamp() {
+        DatabaseAsserts.ContactIdPair ids = DatabaseAsserts.assertAndCreateContact(mResolver);
+        long baseTime = ContactUtil.queryContactLastUpdatedTimestamp(mResolver, ids.mContactId);
+
+        SystemClock.sleep(1);
+        createData(ids.mRawContactId);
+
+        long newTime = ContactUtil.queryContactLastUpdatedTimestamp(mResolver, ids.mContactId);
+        assertTrue(newTime > baseTime);
+
+        // Clean up
+        RawContactUtil.delete(mResolver, ids.mRawContactId, true);
+    }
+
+    public void testDataDelete_updatesContactLastUpdatedTimestamp() {
+        DatabaseAsserts.ContactIdPair ids = DatabaseAsserts.assertAndCreateContact(mResolver);
+
+        long dataId = createData(ids.mRawContactId);
+
+        long baseTime = ContactUtil.queryContactLastUpdatedTimestamp(mResolver, ids.mContactId);
+
+        SystemClock.sleep(1);
+        DataUtil.delete(mResolver, dataId);
+
+        long newTime = ContactUtil.queryContactLastUpdatedTimestamp(mResolver, ids.mContactId);
+        assertTrue(newTime > baseTime);
+
+        // Clean up
+        RawContactUtil.delete(mResolver, ids.mRawContactId, true);
+    }
+
+    public void testDataUpdate_updatesContactLastUpdatedTimestamp() {
+        DatabaseAsserts.ContactIdPair ids = DatabaseAsserts.assertAndCreateContact(mResolver);
+        long dataId = createData(ids.mRawContactId);
+        long baseTime = ContactUtil.queryContactLastUpdatedTimestamp(mResolver, ids.mContactId);
+
+        SystemClock.sleep(1);
+        ContentValues values = new ContentValues();
+        values.put(CommonDataKinds.Phone.NUMBER, "555-5555");
+        DataUtil.update(mResolver, dataId, values);
+
+        long newTime = ContactUtil.queryContactLastUpdatedTimestamp(mResolver, ids.mContactId);
+        assertTrue("Expected contact " + ids.mContactId + " last updated to be greater than " +
+                baseTime + ". But was " + newTime, newTime > baseTime);
+
+        // Clean up
+        RawContactUtil.delete(mResolver, ids.mRawContactId, true);
+    }
+
+    private long createData(long rawContactId) {
+        ContentValues values = new ContentValues();
+        values.put(Data.MIMETYPE, CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
+        values.put(CommonDataKinds.Phone.NUMBER, "1-800-GOOG-411");
+        values.put(CommonDataKinds.Phone.TYPE, CommonDataKinds.Phone.TYPE_CUSTOM);
+        values.put(CommonDataKinds.Phone.LABEL, "free directory assistance");
+        return DataUtil.insertData(mResolver, rawContactId, values);
+    }
+
+    private void assertCursorStoredValuesWithRawContactsFilter(Uri uri, long[] rawContactsId,
+            ContentValues... expected) {
+        // We need this helper function to add a filter for specific raw contacts because
+        // otherwise tests will fail if performed on a device with existing contacts data
+        StringBuilder sb = new StringBuilder();
+        sb.append(Data.RAW_CONTACT_ID + " in ");
+        sb.append("(");
+        for (int i = 0; i < rawContactsId.length; i++) {
+            if (i != 0) sb.append(",");
+            sb.append(rawContactsId[i]);
+        }
+        sb.append(")");
+        DatabaseAsserts.assertStoredValuesInUriMatchExactly(mResolver, uri, null, sb.toString(),
+                null, null, expected);
+    }
+
+
+    private long[] setupContactablesTestData() throws Exception {
+        TestRawContact rawContact = mBuilder.newRawContact()
+                .with(RawContacts.ACCOUNT_TYPE, "test_account")
+                .with(RawContacts.ACCOUNT_NAME, "test_name")
+                .insert();
+        rawContact.newDataRow(StructuredName.CONTENT_ITEM_TYPE)
+                .with(StructuredName.DISPLAY_NAME, "Hot Tamale")
+                .insert();
+        rawContact.newDataRow(Email.CONTENT_ITEM_TYPE)
+                .with(Email.DATA, "tamale@acme.com")
+                .with(Email.TYPE, Email.TYPE_HOME)
+                .insert();
+        rawContact.newDataRow(Email.CONTENT_ITEM_TYPE)
+                .with(Email.DATA, "hot@google.com")
+                .with(Email.TYPE, Email.TYPE_WORK)
+                .insert();
+        rawContact.newDataRow(Phone.CONTENT_ITEM_TYPE)
+                .with(Phone.DATA, "510-123-5769")
+                .with(Email.TYPE, Phone.TYPE_HOME)
+                .insert();
+
+        TestRawContact rawContact2 = mBuilder.newRawContact()
+                .with(RawContacts.ACCOUNT_TYPE, "test_account")
+                .with(RawContacts.ACCOUNT_NAME, "test_name")
+                .insert();
+        rawContact2.newDataRow(StructuredName.CONTENT_ITEM_TYPE)
+                .with(StructuredName.DISPLAY_NAME, "Cold Tamago")
+                .insert();
+        rawContact2.newDataRow(Email.CONTENT_ITEM_TYPE)
+                .with(Email.DATA, "eggs@farmers.org")
+                .with(Email.TYPE, Email.TYPE_HOME)
+                .insert();
+
+        TestRawContact rawContact3 = mBuilder.newRawContact()
+                .with(RawContacts.ACCOUNT_TYPE, "test_account")
+                .with(RawContacts.ACCOUNT_NAME, "test_name")
+                .insert();
+        rawContact3.newDataRow(StructuredName.CONTENT_ITEM_TYPE)
+                .with(StructuredName.DISPLAY_NAME, "John Doe")
+                .insert();
+        rawContact3.newDataRow(Email.CONTENT_ITEM_TYPE)
+                .with(Email.DATA, "doeassociates@deer.com")
+                .with(Email.TYPE, Email.TYPE_WORK)
+                .insert();
+        rawContact3.newDataRow(Phone.CONTENT_ITEM_TYPE)
+                .with(Phone.DATA, "518-354-1111")
+                .with(Phone.TYPE, Phone.TYPE_HOME)
+                .insert();
+        rawContact3.newDataRow(Organization.CONTENT_ITEM_TYPE)
+                .with(Organization.DATA, "Doe Industries")
+                .insert();
+        return new long[] {rawContact.getId(), rawContact2.getId(), rawContact3.getId()};
+    }
+
+    // Provides functionality to set up content values for the Contactables tests
+    private static class ContactablesTestHelper {
+        private static ContentValues[] sContentValues = new ContentValues[6];
+        static {
+            ContentValues cv1 = new ContentValues();
+            cv1.put(Contacts.DISPLAY_NAME, "Hot Tamale");
+            cv1.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
+            cv1.put(Email.DATA, "tamale@acme.com");
+            cv1.put(Email.TYPE, Email.TYPE_HOME);
+            sContentValues[0] = cv1;
+
+            ContentValues cv2 = new ContentValues();
+            cv2.put(Contacts.DISPLAY_NAME, "Hot Tamale");
+            cv2.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+            cv2.put(Phone.DATA, "510-123-5769");
+            cv2.put(Phone.TYPE, Phone.TYPE_HOME);
+            sContentValues[1] = cv2;
+
+            ContentValues cv3 = new ContentValues();
+            cv3.put(Contacts.DISPLAY_NAME, "Hot Tamale");
+            cv3.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
+            cv3.put(Email.DATA, "hot@google.com");
+            cv3.put(Email.TYPE, Email.TYPE_WORK);
+            sContentValues[2] = cv3;
+
+            ContentValues cv4 = new ContentValues();
+            cv4.put(Contacts.DISPLAY_NAME, "Cold Tamago");
+            cv4.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
+            cv4.put(Email.DATA, "eggs@farmers.org");
+            cv4.put(Email.TYPE, Email.TYPE_HOME);
+            sContentValues[3] = cv4;
+
+            ContentValues cv5 = new ContentValues();
+            cv5.put(Contacts.DISPLAY_NAME, "John Doe");
+            cv5.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
+            cv5.put(Email.DATA, "doeassociates@deer.com");
+            cv5.put(Email.TYPE, Email.TYPE_WORK);
+            sContentValues[4] = cv5;
+
+            ContentValues cv6 = new ContentValues();
+            cv6.put(Contacts.DISPLAY_NAME, "John Doe");
+            cv6.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
+            cv6.put(Phone.DATA, "518-354-1111");
+            cv6.put(Phone.TYPE, Phone.TYPE_HOME);
+            sContentValues[5] = cv6;
+        }
+
+        /**
+         * @return An arraylist of contentValues that correspond to the provided raw contacts
+         */
+        public static ContentValues[] getContentValues(int... rawContacts) {
+            ArrayList<ContentValues> cv = new ArrayList<ContentValues>();
+            for (int i = 0; i < rawContacts.length; i++) {
+                switch (rawContacts[i]) {
+                    case 0:
+                        // rawContact 0 "Hot Tamale" contains ContentValues 0, 1, and 2
+                        cv.add(sContentValues[0]);
+                        cv.add(sContentValues[1]);
+                        cv.add(sContentValues[2]);
+                        break;
+                    case 1:
+                        // rawContact 1 "Cold Tamago" contains ContentValues 3
+                        cv.add(sContentValues[3]);
+                        break;
+                    case 2:
+                        // rawContact 1 "John Doe" contains ContentValues 4, 5
+                        cv.add(sContentValues[4]);
+                        cv.add(sContentValues[5]);
+                        break;
+                }
+            }
+            ContentValues[] toReturn = new ContentValues[cv.size()];
+            for (int i = 0; i < cv.size(); i++) {
+                toReturn[i] = cv.get(i);
+            }
+            return toReturn;
+        }
+    }
 }
 
diff --git a/tests/tests/provider/src/android/provider/cts/ContactsContract_DataUsageTest.java b/tests/tests/provider/src/android/provider/cts/ContactsContract_DataUsageTest.java
new file mode 100644
index 0000000..d585ec2
--- /dev/null
+++ b/tests/tests/provider/src/android/provider/cts/ContactsContract_DataUsageTest.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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
+ */
+
+package android.provider.cts;
+
+import static android.provider.ContactsContract.DataUsageFeedback;
+
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.net.Uri;
+import android.provider.ContactsContract;
+import android.provider.cts.contacts.DataUtil;
+import android.provider.cts.contacts.DatabaseAsserts;
+import android.provider.cts.contacts.RawContactUtil;
+import android.test.AndroidTestCase;
+import android.text.TextUtils;
+
+public class ContactsContract_DataUsageTest extends AndroidTestCase {
+
+    private ContentResolver mResolver;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mResolver = getContext().getContentResolver();
+    }
+
+    public void testSingleDataUsageFeedback_incrementsCorrectDataItems() {
+        DatabaseAsserts.ContactIdPair ids = DatabaseAsserts.assertAndCreateContact(mResolver);
+
+        long[] dataIds = setupRawContactDataItems(ids.mRawContactId);
+
+        // Update just 1 data item at a time.
+        updateDataUsageAndAssert(dataIds[1], 1);
+        updateDataUsageAndAssert(dataIds[1], 2);
+
+        updateDataUsageAndAssert(dataIds[2], 1);
+        updateDataUsageAndAssert(dataIds[2], 2);
+        updateDataUsageAndAssert(dataIds[2], 3);
+
+        // Go back and update the previous data item again.
+        updateDataUsageAndAssert(dataIds[1], 3);
+
+        deleteDataUsage();
+        RawContactUtil.delete(mResolver, ids.mRawContactId, true);
+    }
+
+    public void testMultiIdDataUsageFeedback_incrementsCorrectDataItems() {
+        DatabaseAsserts.ContactIdPair ids = DatabaseAsserts.assertAndCreateContact(mResolver);
+
+        long[] dataIds = setupRawContactDataItems(ids.mRawContactId);
+
+        assertDataUsageEquals(dataIds, 0, 0, 0, 0);
+
+        updateMultipleAndAssertUpdateSuccess(new long[] {dataIds[1], dataIds[2]});
+        assertDataUsageEquals(dataIds, 0, 1, 1, 0);
+
+        updateMultipleAndAssertUpdateSuccess(new long[]{dataIds[1], dataIds[2]});
+        assertDataUsageEquals(dataIds, 0, 2, 2, 0);
+
+        updateDataUsageAndAssert(dataIds[1], 3);
+        assertDataUsageEquals(dataIds, 0, 3, 2, 0);
+
+        updateMultipleAndAssertUpdateSuccess(new long[]{dataIds[0], dataIds[1]});
+        assertDataUsageEquals(dataIds, 1, 4, 2, 0);
+
+        deleteDataUsage();
+        RawContactUtil.delete(mResolver, ids.mRawContactId, true);
+    }
+
+    private long[] setupRawContactDataItems(long rawContactId) {
+        // Create 4 data items.
+        long[] dataIds = new long[4];
+        dataIds[0] = DataUtil.insertPhoneNumber(mResolver, rawContactId, "555-5555");
+        dataIds[1] = DataUtil.insertPhoneNumber(mResolver, rawContactId, "555-5554");
+        dataIds[2] = DataUtil.insertEmail(mResolver, rawContactId, "test@thisisfake.com");
+        dataIds[3] = DataUtil.insertPhoneNumber(mResolver, rawContactId, "555-5556");
+        return dataIds;
+    }
+
+    /**
+     * Updates multiple data ids at once.  And asserts the update returned success.
+     */
+    private void updateMultipleAndAssertUpdateSuccess(long[] dataIds) {
+        String[] ids = new String[dataIds.length];
+        for (int i = 0; i < dataIds.length; i++) {
+            ids[i] = String.valueOf(dataIds[i]);
+        }
+        Uri uri = DataUsageFeedback.FEEDBACK_URI.buildUpon().appendPath(TextUtils.join(",", ids))
+                .appendQueryParameter(DataUsageFeedback.USAGE_TYPE,
+                        DataUsageFeedback.USAGE_TYPE_CALL).build();
+        int result = mResolver.update(uri, new ContentValues(), null, null);
+        assertTrue(result > 0);
+    }
+
+    /**
+     * Updates a single data item usage.  Asserts the update was successful.  Asserts the usage
+     * number is equal to expected value.
+     */
+    private void updateDataUsageAndAssert(long dataId, int assertValue) {
+        Uri uri = DataUsageFeedback.FEEDBACK_URI.buildUpon().appendPath(String.valueOf(dataId))
+                .appendQueryParameter(DataUsageFeedback.USAGE_TYPE,
+                        DataUsageFeedback.USAGE_TYPE_CALL).build();
+        int result = mResolver.update(uri, new ContentValues(), null, null);
+        assertTrue(result > 0);
+
+        assertDataUsageEquals(dataId, assertValue);
+    }
+
+    /**
+     * Assert that the given data ids have usage values in the respective order.
+     */
+    private void assertDataUsageEquals(long[] dataIds, int... expectedValues) {
+        if (dataIds.length != expectedValues.length) {
+            throw new IllegalArgumentException("dataIds and expectedValues must be the same size");
+        }
+
+        for (int i = 0; i < dataIds.length; i++) {
+            assertDataUsageEquals(dataIds[i], expectedValues[i]);
+        }
+    }
+
+    /**
+     * Assert a single data item has a specific usage value.
+     */
+    private void assertDataUsageEquals(long dataId, int expectedValue) {
+        // Query and assert value is expected.
+        String[] projection = new String[]{ContactsContract.Data.TIMES_USED};
+        String[] record = DataUtil.queryById(mResolver, dataId, projection);
+        assertNotNull(record);
+        long actual = 0;
+        // Tread null as 0
+        if (record[0] != null) {
+            actual = Long.parseLong(record[0]);
+        }
+        assertEquals(expectedValue, actual);
+    }
+
+    private void deleteDataUsage() {
+        mResolver.delete(DataUsageFeedback.DELETE_USAGE_URI, null, null);
+    }
+}
diff --git a/tests/tests/provider/src/android/provider/cts/ContactsContract_DeletedContacts.java b/tests/tests/provider/src/android/provider/cts/ContactsContract_DeletedContacts.java
new file mode 100644
index 0000000..542b49e
--- /dev/null
+++ b/tests/tests/provider/src/android/provider/cts/ContactsContract_DeletedContacts.java
@@ -0,0 +1,141 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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
+ */
+
+package android.provider.cts;
+
+import static android.provider.cts.contacts.DatabaseAsserts.ContactIdPair;
+
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.net.Uri;
+import android.os.SystemClock;
+import android.provider.ContactsContract;
+import android.provider.cts.contacts.CommonDatabaseUtils;
+import android.provider.cts.contacts.DatabaseAsserts;
+import android.provider.cts.contacts.DeletedContactUtil;
+import android.provider.cts.contacts.RawContactUtil;
+import android.test.AndroidTestCase;
+import android.test.MoreAsserts;
+
+import java.util.HashSet;
+import java.util.List;
+
+public class ContactsContract_DeletedContacts extends AndroidTestCase {
+
+    private static final Uri URI = ContactsContract.DeletedContacts.CONTENT_URI;
+
+    private ContentResolver mResolver;
+
+    @Override
+    public void setUp() {
+        mResolver = getContext().getContentResolver();
+    }
+
+    public void testDelete_isUnsupported() {
+
+        DatabaseAsserts.assertDeleteIsUnsupported(mResolver, URI);
+
+        Uri uri = ContentUris.withAppendedId(URI, 1L);
+        DatabaseAsserts.assertDeleteIsUnsupported(mResolver, uri);
+    }
+
+    public void testInsert_isUnsupported() {
+        DatabaseAsserts.assertInsertIsUnsupported(mResolver, URI);
+    }
+
+    public void testQuery_returnsProperColumns() {
+        long start = System.currentTimeMillis();
+        ContactIdPair ids = createAndDeleteContact();
+
+        String[] projection = new String[] {
+                ContactsContract.DeletedContacts.CONTACT_ID,
+                ContactsContract.DeletedContacts.CONTACT_DELETED_TIMESTAMP
+        };
+        List<String[]> records = DeletedContactUtil.query(mResolver, projection);
+        boolean found = false;
+        for (String[] record : records) {
+            if (Long.parseLong(record[0]) == ids.mContactId) {
+                found = true;
+                assertTrue(Long.parseLong(record[1]) > start);
+            }
+        }
+        assertTrue(found);
+    }
+
+    public void testQueryByContactId() {
+        ContactIdPair ids = createAndDeleteContact();
+
+        MoreAsserts.assertNotEqual(CommonDatabaseUtils.NOT_FOUND,
+                DeletedContactUtil.queryDeletedTimestampForContactId(mResolver, ids.mContactId));
+    }
+
+    public void testQueryAll() {
+        int numDeletes = 10;
+
+        // Since we cannot clean out delete log from previous tests, we need to account for that
+        // by querying for the count first.
+        long startCount = DeletedContactUtil.getCount(mResolver);
+
+        for (int i = 0; i < numDeletes; i++) {
+            createAndDeleteContact();
+        }
+
+        long endCount = DeletedContactUtil.getCount(mResolver);
+
+        assertEquals(numDeletes, endCount - startCount);
+    }
+
+    public void testQuerySinceTimestamp() {
+
+        // Before
+        HashSet<Long> beforeIds = new HashSet<Long>();
+        beforeIds.add(createAndDeleteContact().mContactId);
+        beforeIds.add(createAndDeleteContact().mContactId);
+
+        long start = System.currentTimeMillis();
+
+        // After
+        HashSet<Long> afterIds = new HashSet<Long>();
+        afterIds.add(createAndDeleteContact().mContactId);
+        afterIds.add(createAndDeleteContact().mContactId);
+        afterIds.add(createAndDeleteContact().mContactId);
+
+        String[] projection = new String[]{
+                ContactsContract.DeletedContacts.CONTACT_ID,
+                ContactsContract.DeletedContacts.CONTACT_DELETED_TIMESTAMP
+        };
+        List<String[]> records = DeletedContactUtil.querySinceTimestamp(mResolver, projection,
+                start);
+        for (String[] record : records) {
+            // Check ids to make sure we only have the ones that came after the time.
+            long contactId = Long.parseLong(record[0]);
+            assertFalse(beforeIds.contains(contactId));
+            assertTrue(afterIds.contains(contactId));
+
+            // Check times to make sure they came after
+            assertTrue(Long.parseLong(record[1]) > start);
+        }
+    }
+
+    private ContactIdPair createAndDeleteContact() {
+        ContactIdPair ids = DatabaseAsserts.assertAndCreateContact(mResolver);
+        assertEquals(CommonDatabaseUtils.NOT_FOUND,
+                DeletedContactUtil.queryDeletedTimestampForContactId(mResolver, ids.mContactId));
+        SystemClock.sleep(1);
+        RawContactUtil.delete(mResolver, ids.mRawContactId, true);
+        return ids;
+    }
+}
diff --git a/tests/tests/provider/src/android/provider/cts/ContactsContract_RawContactsTest.java b/tests/tests/provider/src/android/provider/cts/ContactsContract_RawContactsTest.java
index 02196c0..e1cea4a 100644
--- a/tests/tests/provider/src/android/provider/cts/ContactsContract_RawContactsTest.java
+++ b/tests/tests/provider/src/android/provider/cts/ContactsContract_RawContactsTest.java
@@ -19,22 +19,29 @@
 
 import android.content.ContentProviderClient;
 import android.content.ContentResolver;
+import android.content.ContentValues;
 import android.net.Uri;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.CommonDataKinds.StructuredName;
 import android.provider.ContactsContract.RawContacts;
 import android.provider.cts.ContactsContract_TestDataBuilder.TestContact;
 import android.provider.cts.ContactsContract_TestDataBuilder.TestRawContact;
-import android.test.InstrumentationTestCase;
+import android.provider.cts.contacts.CommonDatabaseUtils;
+import android.provider.cts.contacts.ContactUtil;
+import android.provider.cts.contacts.DatabaseAsserts;
+import android.provider.cts.contacts.RawContactUtil;
+import android.provider.cts.contacts.account.StaticAccountAuthenticator;
+import android.test.AndroidTestCase;
+import android.test.MoreAsserts;
 
-public class ContactsContract_RawContactsTest extends InstrumentationTestCase {
+public class ContactsContract_RawContactsTest extends AndroidTestCase {
     private ContentResolver mResolver;
     private ContactsContract_TestDataBuilder mBuilder;
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        mResolver = getInstrumentation().getTargetContext().getContentResolver();
+        mResolver = getContext().getContentResolver();
         ContentProviderClient provider =
                 mResolver.acquireContentProviderClient(ContactsContract.AUTHORITY);
         mBuilder = new ContactsContract_TestDataBuilder(provider);
@@ -83,5 +90,101 @@
         assertEquals("Lookup URI matched the wrong contact",
                 lookupContact.getId(), rawContact.load().getContactId());
     }
-}
 
+    public void testRawContactDelete_setsDeleteFlag() {
+        long rawContactid = RawContactUtil.insertRawContact(mResolver,
+                StaticAccountAuthenticator.ACCOUNT_1);
+
+        assertTrue(RawContactUtil.rawContactExistsById(mResolver, rawContactid));
+
+        RawContactUtil.delete(mResolver, rawContactid, false);
+
+        String[] projection = new String[]{
+                ContactsContract.RawContacts.CONTACT_ID,
+                ContactsContract.RawContacts.DELETED
+        };
+        String[] result = RawContactUtil.queryByRawContactId(mResolver, rawContactid,
+                projection);
+
+        // Contact id should be null
+        assertNull(result[0]);
+        // Record should be marked deleted.
+        assertEquals("1", result[1]);
+    }
+
+    public void testRawContactDelete_removesRecord() {
+        long rawContactid = RawContactUtil.insertRawContact(mResolver,
+                StaticAccountAuthenticator.ACCOUNT_1);
+        assertTrue(RawContactUtil.rawContactExistsById(mResolver, rawContactid));
+
+        RawContactUtil.delete(mResolver, rawContactid, true);
+
+        assertFalse(RawContactUtil.rawContactExistsById(mResolver, rawContactid));
+
+        // already clean
+    }
+
+
+    // This implicitly tests the Contact create case.
+    public void testRawContactCreate_updatesContactUpdatedTimestamp() {
+        long startTime = System.currentTimeMillis();
+
+        DatabaseAsserts.ContactIdPair ids = DatabaseAsserts.assertAndCreateContact(mResolver);
+        long lastUpdated = getContactLastUpdatedTimestampByRawContactId(mResolver,
+                ids.mRawContactId);
+
+        assertTrue(lastUpdated > startTime);
+
+        // Clean up
+        RawContactUtil.delete(mResolver, ids.mRawContactId, true);
+    }
+
+    public void testRawContactUpdate_updatesContactUpdatedTimestamp() {
+        DatabaseAsserts.ContactIdPair ids = DatabaseAsserts.assertAndCreateContact(mResolver);
+
+        long baseTime = ContactUtil.queryContactLastUpdatedTimestamp(mResolver, ids.mContactId);
+
+        ContentValues values = new ContentValues();
+        values.put(ContactsContract.RawContacts.STARRED, 1);
+        RawContactUtil.update(mResolver, ids.mRawContactId, values);
+
+        long newTime = ContactUtil.queryContactLastUpdatedTimestamp(mResolver, ids.mContactId);
+        assertTrue(newTime > baseTime);
+
+        // Clean up
+        RawContactUtil.delete(mResolver, ids.mRawContactId, true);
+    }
+
+    public void testRawContactPsuedoDelete_hasDeleteLogForContact() {
+        DatabaseAsserts.ContactIdPair ids = DatabaseAsserts.assertAndCreateContact(mResolver);
+
+        long baseTime = ContactUtil.queryContactLastUpdatedTimestamp(mResolver, ids.mContactId);
+
+        RawContactUtil.delete(mResolver, ids.mRawContactId, false);
+
+        DatabaseAsserts.assertHasDeleteLogGreaterThan(mResolver, ids.mContactId, baseTime);
+
+        // clean up
+        RawContactUtil.delete(mResolver, ids.mRawContactId, true);
+    }
+
+    public void testRawContactDelete_hasDeleteLogForContact() {
+        DatabaseAsserts.ContactIdPair ids = DatabaseAsserts.assertAndCreateContact(mResolver);
+
+        long baseTime = ContactUtil.queryContactLastUpdatedTimestamp(mResolver, ids.mContactId);
+
+        RawContactUtil.delete(mResolver, ids.mRawContactId, true);
+
+        DatabaseAsserts.assertHasDeleteLogGreaterThan(mResolver, ids.mContactId, baseTime);
+
+        // already clean
+    }
+
+    private long getContactLastUpdatedTimestampByRawContactId(ContentResolver resolver,
+            long rawContactId) {
+        long contactId = RawContactUtil.queryContactIdByRawContactId(mResolver, rawContactId);
+        MoreAsserts.assertNotEqual(CommonDatabaseUtils.NOT_FOUND, contactId);
+
+        return ContactUtil.queryContactLastUpdatedTimestamp(mResolver, contactId);
+    }
+}
diff --git a/tests/tests/provider/src/android/provider/cts/ContactsProvider2_AccountRemovalTest.java b/tests/tests/provider/src/android/provider/cts/ContactsProvider2_AccountRemovalTest.java
new file mode 100644
index 0000000..f700220
--- /dev/null
+++ b/tests/tests/provider/src/android/provider/cts/ContactsProvider2_AccountRemovalTest.java
@@ -0,0 +1,251 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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
+ */
+
+package android.provider.cts;
+
+import static android.provider.cts.contacts.DatabaseAsserts.ContactIdPair;
+
+import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.content.ContentResolver;
+import android.os.SystemClock;
+import android.provider.cts.contacts.CommonDatabaseUtils;
+import android.provider.cts.contacts.ContactUtil;
+import android.provider.cts.contacts.DataUtil;
+import android.provider.cts.contacts.DatabaseAsserts;
+import android.provider.cts.contacts.DeletedContactUtil;
+import android.provider.cts.contacts.RawContactUtil;
+import android.provider.cts.contacts.account.StaticAccountAuthenticator;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
+
+import com.google.android.collect.Lists;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+@MediumTest
+public class ContactsProvider2_AccountRemovalTest extends AndroidTestCase {
+
+    private static long ASYNC_TIMEOUT_LIMIT_MS = 1000 * 60 * 1; // 3 minutes
+    private static long SLEEP_BETWEEN_POLL_MS = 1000 * 10; // 10 seconds
+
+    private static int NOT_MERGED = -1;
+
+    // Not re-using StaticAcountAuthenticator.ACCOUNT_1 because this test may break
+    // other tests running when the account is removed.  No other tests should use the following
+    // accounts.
+    private static final Account ACCT_1 = new Account("cp removal acct 1",
+            StaticAccountAuthenticator.TYPE);
+    private static final Account ACCT_2 = new Account("cp removal acct 2",
+            StaticAccountAuthenticator.TYPE);
+
+    private ContentResolver mResolver;
+    private AccountManager mAccountManager;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mResolver = getContext().getContentResolver();
+        mAccountManager = AccountManager.get(getContext());
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    public void testAccountRemoval_deletesContacts() {
+        mAccountManager.addAccountExplicitly(ACCT_1, null, null);
+        mAccountManager.addAccountExplicitly(ACCT_2, null, null);
+        ArrayList<ContactIdPair> acc1Ids = createContacts(ACCT_1, 5);
+        ArrayList<ContactIdPair> acc2Ids = createContacts(ACCT_2, 15);
+
+        mAccountManager.removeAccount(ACCT_2, null, null);
+        assertContactsDeletedEventually(System.currentTimeMillis(), acc2Ids);
+
+        mAccountManager.removeAccount(ACCT_1, null, null);
+        assertContactsDeletedEventually(System.currentTimeMillis(), acc1Ids);
+    }
+
+    public void testAccountRemoval_hasDeleteLogsForContacts() {
+        mAccountManager.addAccountExplicitly(ACCT_1, null, null);
+        mAccountManager.addAccountExplicitly(ACCT_2, null, null);
+        ArrayList<ContactIdPair> acc1Ids = createContacts(ACCT_1, 5);
+        ArrayList<ContactIdPair> acc2Ids = createContacts(ACCT_2, 15);
+
+        long start = System.currentTimeMillis();
+        mAccountManager.removeAccount(ACCT_2, null, null);
+        assertContactsInDeleteLogEventually(start, acc2Ids);
+
+        start = System.currentTimeMillis();
+        mAccountManager.removeAccount(ACCT_1, null, null);
+        assertContactsInDeleteLogEventually(start, acc1Ids);
+    }
+
+    /**
+     * Contact has merged raw contacts from a single account.  Contact should be deleted upon
+     * account removal.
+     */
+    public void testAccountRemovalWithMergedContact_deletesContacts() {
+        mAccountManager.addAccountExplicitly(ACCT_1, null, null);
+        ArrayList<ContactIdPair> idList = createAndAssertMergedContact(ACCT_1, ACCT_1);
+        mAccountManager.removeAccount(ACCT_1, null, null);
+        assertContactsDeletedEventually(System.currentTimeMillis(), idList);
+    }
+
+    /**
+     * Contact has merged raw contacts from different accounts. Contact should not be deleted when
+     * one account is removed.  But contact should have last updated timestamp updated.
+     */
+    public void testAccountRemovalWithMergedContact_doesNotDeleteContactAndTimestampUpdated() {
+        mAccountManager.addAccountExplicitly(ACCT_1, null, null);
+        ArrayList<ContactIdPair> idList = createAndAssertMergedContact(ACCT_1, ACCT_2);
+        long contactId = idList.get(0).mContactId;
+
+        long baseTime = ContactUtil.queryContactLastUpdatedTimestamp(mResolver, contactId);
+        long start = System.currentTimeMillis();
+        mAccountManager.removeAccount(ACCT_1, null, null);
+
+        while (ContactUtil.queryContactLastUpdatedTimestamp(mResolver, contactId) == baseTime) {
+            assertWithinTimeoutLimit(start,
+                    "Contact " + contactId + " last updated timestamp has not been updated.");
+            SystemClock.sleep(SLEEP_BETWEEN_POLL_MS);
+        }
+    }
+
+    public void testAccountRemovalWithMergedContact_hasDeleteLogsForContacts() {
+        mAccountManager.addAccountExplicitly(ACCT_1, null, null);
+        ArrayList<ContactIdPair> idList = createAndAssertMergedContact(ACCT_1, ACCT_1);
+        long start = System.currentTimeMillis();
+        mAccountManager.removeAccount(ACCT_1, null, null);
+        assertContactsInDeleteLogEventually(start, idList);
+    }
+
+    private ArrayList<ContactIdPair> createAndAssertMergedContact(Account acct, Account acct2) {
+        ContactIdPair ids1 = DatabaseAsserts.assertAndCreateContactWithName(mResolver, acct,
+                "merge me");
+        DataUtil.insertPhoneNumber(mResolver, ids1.mRawContactId, "555-5555");
+
+        ContactIdPair ids2 = DatabaseAsserts.assertAndCreateContactWithName(mResolver, acct2,
+                "merge me");
+        DataUtil.insertPhoneNumber(mResolver, ids2.mRawContactId, "555-5555");
+
+        // Check merge before continuing. Merge process is async.
+        long mergedContactId = assertMerged(System.currentTimeMillis(), ids1.mRawContactId,
+                ids2.mRawContactId);
+
+        // Update the contact id to the newly merged contact id.
+        ids1.mContactId = mergedContactId;
+        ids2.mContactId = mergedContactId;
+
+        return Lists.newArrayList(ids1, ids2);
+    }
+
+    private long assertMerged(long start, long rawContactId, long rawContactId2) {
+        long contactId = NOT_MERGED;
+        while (contactId == NOT_MERGED) {
+            assertWithinTimeoutLimit(start,
+                    "Raw contact " + rawContactId + " and " + rawContactId2 + " are not merged.");
+
+            SystemClock.sleep(SLEEP_BETWEEN_POLL_MS);
+            contactId = checkMerged(rawContactId, rawContactId2);
+        }
+        return contactId;
+    }
+
+    private long checkMerged(long rawContactId, long rawContactId2) {
+        long contactId = RawContactUtil.queryContactIdByRawContactId(mResolver, rawContactId);
+        long contactId2 = RawContactUtil.queryContactIdByRawContactId(mResolver, rawContactId2);
+        if (contactId == contactId2) {
+            return contactId;
+        }
+        return NOT_MERGED;
+    }
+
+    private void assertContactsInDeleteLogEventually(long start, ArrayList<ContactIdPair> idList) {
+        // Can not use newArrayList() because the version that accepts size is missing.
+        ArrayList<ContactIdPair> remaining = new ArrayList<ContactIdPair>(idList.size());
+        remaining.addAll(idList);
+        while (!remaining.isEmpty()) {
+            // Account cleanup is asynchronous, wait a bit before checking.
+            SystemClock.sleep(SLEEP_BETWEEN_POLL_MS);
+            assertWithinTimeoutLimit(start, "Contacts " + Arrays.toString(remaining.toArray()) +
+                    " are not in delete log after account removal.");
+
+            // Need a second list to remove since we can't remove from the list while iterating.
+            ArrayList<ContactIdPair> toBeRemoved = Lists.newArrayList();
+            for (ContactIdPair ids : remaining) {
+                long deletedTime = DeletedContactUtil.queryDeletedTimestampForContactId(mResolver,
+                        ids.mContactId);
+                if (deletedTime != CommonDatabaseUtils.NOT_FOUND) {
+                    toBeRemoved.add(ids);
+                    assertTrue("Deleted contact was found in delete log but insert time is before"
+                            + " start time", deletedTime > start);
+                }
+            }
+            remaining.removeAll(toBeRemoved);
+        }
+
+        // All contacts in delete log.  Pass.
+    }
+
+    /**
+     * Polls every so often to see if all contacts have been deleted.  If not deleted in the
+     * pre-defined threshold, fails.
+     */
+    private void assertContactsDeletedEventually(long start, ArrayList<ContactIdPair> idList) {
+        // Can not use newArrayList() because the version that accepts size is missing.
+        ArrayList<ContactIdPair> remaining = new ArrayList<ContactIdPair>(idList.size());
+        remaining.addAll(idList);
+        while (!remaining.isEmpty()) {
+            // Account cleanup is asynchronous, wait a bit before checking.
+            SystemClock.sleep(SLEEP_BETWEEN_POLL_MS);
+            assertWithinTimeoutLimit(start, "Contacts have not been deleted after account"
+                    + " removal.");
+
+            ArrayList<ContactIdPair> toBeRemoved = Lists.newArrayList();
+            for (ContactIdPair ids : remaining) {
+                if (!RawContactUtil.rawContactExistsById(mResolver, ids.mRawContactId)) {
+                    toBeRemoved.add(ids);
+                }
+            }
+            remaining.removeAll(toBeRemoved);
+        }
+
+        // All contacts deleted.  Pass.
+    }
+
+    private void assertWithinTimeoutLimit(long start, String message) {
+        long now = System.currentTimeMillis();
+        long elapsed = now - start;
+        if (elapsed > ASYNC_TIMEOUT_LIMIT_MS) {
+            fail(elapsed + "ms has elapsed. The limit is " + ASYNC_TIMEOUT_LIMIT_MS + "ms. " +
+                    message);
+        }
+    }
+
+    /**
+     * Creates a given number of contacts for an account.
+     */
+    private ArrayList<ContactIdPair> createContacts(Account account, int numContacts) {
+        ArrayList<ContactIdPair> accountIds = Lists.newArrayList();
+        for (int i = 0; i < numContacts; i++) {
+            accountIds.add(DatabaseAsserts.assertAndCreateContact(mResolver, account));
+        }
+        return accountIds;
+    }
+}
diff --git a/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_AlbumsTest.java b/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_AlbumsTest.java
index 100d9e1..b265cbf 100644
--- a/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_AlbumsTest.java
+++ b/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_AlbumsTest.java
@@ -45,12 +45,15 @@
     }
 
     public void testGetContentUri() {
-        assertNotNull(mContentResolver.query(
+        Cursor c = null;
+        assertNotNull(c = mContentResolver.query(
                 Albums.getContentUri(MediaStoreAudioTestHelper.INTERNAL_VOLUME_NAME), null, null,
                 null, null));
-        assertNotNull(mContentResolver.query(
+        c.close();
+        assertNotNull(c = mContentResolver.query(
                 Albums.getContentUri(MediaStoreAudioTestHelper.EXTERNAL_VOLUME_NAME), null, null,
                 null, null));
+        c.close();
 
         // can not accept any other volume names
         String volume = "fakeVolume";
diff --git a/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_ArtistsTest.java b/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_ArtistsTest.java
index 2e3cc1b..9fe31c5 100644
--- a/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_ArtistsTest.java
+++ b/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_ArtistsTest.java
@@ -37,12 +37,15 @@
     }
 
     public void testGetContentUri() {
-        assertNotNull(mContentResolver.query(
+        Cursor c = null;
+        assertNotNull(c = mContentResolver.query(
                 Artists.getContentUri(MediaStoreAudioTestHelper.INTERNAL_VOLUME_NAME), null, null,
                     null, null));
-        assertNotNull(mContentResolver.query(
+        c.close();
+        assertNotNull(c = mContentResolver.query(
                 Artists.getContentUri(MediaStoreAudioTestHelper.INTERNAL_VOLUME_NAME), null, null,
                 null, null));
+        c.close();
 
         // can not accept any other volume names
         String volume = "fakeVolume";
diff --git a/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_Artists_AlbumsTest.java b/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_Artists_AlbumsTest.java
index fdba619..72d9067 100644
--- a/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_Artists_AlbumsTest.java
+++ b/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_Artists_AlbumsTest.java
@@ -39,12 +39,16 @@
     }
 
     public void testGetContentUri() {
+        Cursor c = null;
         Uri contentUri = MediaStore.Audio.Artists.Albums.getContentUri(
                 MediaStoreAudioTestHelper.INTERNAL_VOLUME_NAME, 1);
-        assertNotNull(mContentResolver.query(contentUri, null, null, null, null));
+        assertNotNull(c = mContentResolver.query(contentUri, null, null, null, null));
+        c.close();
+
         contentUri = MediaStore.Audio.Artists.Albums.getContentUri(
                 MediaStoreAudioTestHelper.EXTERNAL_VOLUME_NAME, 1);
-        assertNotNull(mContentResolver.query(contentUri, null, null, null, null));
+        assertNotNull(c = mContentResolver.query(contentUri, null, null, null, null));
+        c.close();
 
         // can not accept any other volume names
         String volume = "fakeVolume";
diff --git a/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_GenresTest.java b/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_GenresTest.java
index 1138233..8d41b38 100644
--- a/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_GenresTest.java
+++ b/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_GenresTest.java
@@ -39,14 +39,16 @@
     }
 
     public void testGetContentUri() {
-        assertNotNull(mContentResolver.query(
+        Cursor c = null;
+        assertNotNull(c = mContentResolver.query(
                 Genres.getContentUri(MediaStoreAudioTestHelper.EXTERNAL_VOLUME_NAME), null, null,
                     null, null));
-
+        c.close();
         try {
-            assertNotNull(mContentResolver.query(
+            assertNotNull(c = mContentResolver.query(
                     Genres.getContentUri(MediaStoreAudioTestHelper.INTERNAL_VOLUME_NAME), null,
                         null, null, null));
+            c.close();
             fail("Should throw SQLException as the internal datatbase has no genre");
         } catch (SQLException e) {
             // expected
@@ -98,6 +100,7 @@
         // Insert an audio file into the content provider.
         ContentValues values = Audio1.getInstance().getContentValues(true);
         Uri audioUri = mContentResolver.insert(Media.EXTERNAL_CONTENT_URI, values);
+        assertNotNull(audioUri);
         long audioId = ContentUris.parseId(audioUri);
         assertTrue(audioId != -1);
 
@@ -105,6 +108,7 @@
         values.clear();
         values.put(Genres.NAME, "Soda Pop");
         Uri genreUri = mContentResolver.insert(Genres.EXTERNAL_CONTENT_URI, values);
+        assertNotNull(genreUri);
         long genreId = ContentUris.parseId(genreUri);
         assertTrue(genreId != -1);
 
@@ -131,6 +135,8 @@
             if (cursor != null) {
                 cursor.close();
             }
+            assertEquals(1, mContentResolver.delete(audioUri, null, null));
+            assertEquals(1, mContentResolver.delete(genreUri, null, null));
         }
     }
 }
diff --git a/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_Genres_MembersTest.java b/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_Genres_MembersTest.java
index 2e389b6..7310fa1 100644
--- a/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_Genres_MembersTest.java
+++ b/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_Genres_MembersTest.java
@@ -65,14 +65,17 @@
     }
 
     public void testGetContentUri() {
-        assertNotNull(mContentResolver.query(
+        Cursor c = null;
+        assertNotNull(c = mContentResolver.query(
                 Members.getContentUri(MediaStoreAudioTestHelper.EXTERNAL_VOLUME_NAME, 1), null,
                     null, null, null));
+        c.close();
 
         try {
-            assertNotNull(mContentResolver.query(
+            assertNotNull(c = mContentResolver.query(
                     Members.getContentUri(MediaStoreAudioTestHelper.INTERNAL_VOLUME_NAME, 1), null,
                         null, null, null));
+            c.close();
             fail("Should throw SQLException as the internal datatbase has no genre");
         } catch (SQLException e) {
             // expected
diff --git a/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_MediaTest.java b/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_MediaTest.java
index 8a4e3ee..82c2342 100644
--- a/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_MediaTest.java
+++ b/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_MediaTest.java
@@ -38,12 +38,15 @@
     }
 
     public void testGetContentUri() {
-        assertNotNull(mContentResolver.query(
+        Cursor c = null;
+        assertNotNull(c = mContentResolver.query(
                 Media.getContentUri(MediaStoreAudioTestHelper.INTERNAL_VOLUME_NAME), null, null,
                     null, null));
-        assertNotNull(mContentResolver.query(
+        c.close();
+        assertNotNull(c = mContentResolver.query(
                 Media.getContentUri(MediaStoreAudioTestHelper.EXTERNAL_VOLUME_NAME), null, null,
                     null, null));
+        c.close();
 
         // can not accept any other volume names
         String volume = "faveVolume";
@@ -51,14 +54,17 @@
     }
 
     public void testGetContentUriForPath() {
+        Cursor c = null;
         String externalPath = Environment.getExternalStorageDirectory().getPath();
-        assertNotNull(mContentResolver.query(Media.getContentUriForPath(externalPath), null, null,
+        assertNotNull(c = mContentResolver.query(Media.getContentUriForPath(externalPath), null, null,
                 null, null));
+        c.close();
 
         String internalPath =
             getInstrumentation().getTargetContext().getFilesDir().getAbsolutePath();
-        assertNotNull(mContentResolver.query(Media.getContentUriForPath(internalPath), null, null,
+        assertNotNull(c = mContentResolver.query(Media.getContentUriForPath(internalPath), null, null,
                 null, null));
+        c.close();
     }
 
     public void testStoreAudioMediaInternal() {
diff --git a/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_PlaylistsTest.java b/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_PlaylistsTest.java
index 0d36212..03a81b8 100644
--- a/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_PlaylistsTest.java
+++ b/tests/tests/provider/src/android/provider/cts/MediaStore_Audio_PlaylistsTest.java
@@ -39,15 +39,18 @@
     }
 
     public void testGetContentUri() {
-        assertNotNull(mContentResolver.query(
+        Cursor c = null;
+        assertNotNull(c = mContentResolver.query(
                 Playlists.getContentUri(MediaStoreAudioTestHelper.EXTERNAL_VOLUME_NAME), null, null,
                 null, null));
+        c.close();
 
         // can not accept any other volume names
         try {
-            assertNotNull(mContentResolver.query(
+            assertNotNull(c = mContentResolver.query(
                     Playlists.getContentUri(MediaStoreAudioTestHelper.INTERNAL_VOLUME_NAME), null,
                     null, null, null));
+            c.close();
             fail("Should throw SQLException as the internal datatbase has no playlist");
         } catch (SQLException e) {
             // expected
diff --git a/tests/tests/provider/src/android/provider/cts/MediaStore_FilesTest.java b/tests/tests/provider/src/android/provider/cts/MediaStore_FilesTest.java
index c68f660..70d6f58 100644
--- a/tests/tests/provider/src/android/provider/cts/MediaStore_FilesTest.java
+++ b/tests/tests/provider/src/android/provider/cts/MediaStore_FilesTest.java
@@ -87,6 +87,10 @@
         assertEquals(1, mResolver.update(fileUri, values, null, null));
         assertStringColumn(fileUri, MediaColumns.DATA, updatedPath);
 
+        // check that inserting a duplicate entry fails
+        Uri foo = mResolver.insert(allFilesUri, values);
+        assertNull(foo);
+
         // Delete the file and observe that the file count decreased.
         assertEquals(1, mResolver.delete(fileUri, null, null));
         assertEquals(fileCount, getFileCount(allFilesUri));
diff --git a/tests/tests/provider/src/android/provider/cts/MediaStore_Images_MediaTest.java b/tests/tests/provider/src/android/provider/cts/MediaStore_Images_MediaTest.java
index fa269e4..e68286f 100644
--- a/tests/tests/provider/src/android/provider/cts/MediaStore_Images_MediaTest.java
+++ b/tests/tests/provider/src/android/provider/cts/MediaStore_Images_MediaTest.java
@@ -178,22 +178,34 @@
     }
 
     public void testGetContentUri() {
-        assertNotNull(mContentResolver.query(Media.getContentUri("internal"), null, null, null,
+        Cursor c = null;
+        assertNotNull(c = mContentResolver.query(Media.getContentUri("internal"), null, null, null,
                 null));
-        assertNotNull(mContentResolver.query(Media.getContentUri("external"), null, null, null,
+        c.close();
+        assertNotNull(c = mContentResolver.query(Media.getContentUri("external"), null, null, null,
                 null));
+        c.close();
 
         // can not accept any other volume names
         String volume = "fakeVolume";
         assertNull(mContentResolver.query(Media.getContentUri(volume), null, null, null, null));
     }
 
+    private void cleanExternalMediaFile(String path) {
+        mContentResolver.delete(Media.EXTERNAL_CONTENT_URI, "_data=?", new String[] { path });
+        new File(path).delete();
+    }
+
     public void testStoreImagesMediaExternal() throws Exception {
         final String externalPath = Environment.getExternalStorageDirectory().getPath() +
                 "/testimage.jpg";
         final String externalPath2 = Environment.getExternalStorageDirectory().getPath() +
                 "/testimage1.jpg";
 
+        // clean up any potential left over entries from a previous aborted run
+        cleanExternalMediaFile(externalPath);
+        cleanExternalMediaFile(externalPath2);
+
         int numBytes = 1337;
         FileUtils.createFile(new File(externalPath), numBytes);
 
@@ -294,6 +306,7 @@
         } finally {
             // delete
             assertEquals(1, mContentResolver.delete(uri, null, null));
+            new File(externalPath).delete();
         }
     }
 
diff --git a/tests/tests/provider/src/android/provider/cts/MediaStore_Images_ThumbnailsTest.java b/tests/tests/provider/src/android/provider/cts/MediaStore_Images_ThumbnailsTest.java
index 68c10e5..b76108b 100644
--- a/tests/tests/provider/src/android/provider/cts/MediaStore_Images_ThumbnailsTest.java
+++ b/tests/tests/provider/src/android/provider/cts/MediaStore_Images_ThumbnailsTest.java
@@ -214,10 +214,13 @@
     }
 
     public void testGetContentUri() {
-        assertNotNull(mContentResolver.query(Thumbnails.getContentUri("internal"), null, null,
+        Cursor c = null;
+        assertNotNull(c = mContentResolver.query(Thumbnails.getContentUri("internal"), null, null,
                 null, null));
-        assertNotNull(mContentResolver.query(Thumbnails.getContentUri("external"), null, null,
+        c.close();
+        assertNotNull(c = mContentResolver.query(Thumbnails.getContentUri("external"), null, null,
                 null, null));
+        c.close();
 
         // can not accept any other volume names
         String volume = "fakeVolume";
diff --git a/tests/tests/provider/src/android/provider/cts/MediaStore_Video_MediaTest.java b/tests/tests/provider/src/android/provider/cts/MediaStore_Video_MediaTest.java
index f4d01e3..c9461b4 100644
--- a/tests/tests/provider/src/android/provider/cts/MediaStore_Video_MediaTest.java
+++ b/tests/tests/provider/src/android/provider/cts/MediaStore_Video_MediaTest.java
@@ -45,22 +45,34 @@
     }
 
     public void testGetContentUri() {
-        assertNotNull(mContentResolver.query(Media.getContentUri("internal"), null, null, null,
+        Cursor c = null;
+        assertNotNull(c = mContentResolver.query(Media.getContentUri("internal"), null, null, null,
                 null));
-        assertNotNull(mContentResolver.query(Media.getContentUri("external"), null, null, null,
+        c.close();
+        assertNotNull(c = mContentResolver.query(Media.getContentUri("external"), null, null, null,
                 null));
+        c.close();
 
         // can not accept any other volume names
         String volume = "fakeVolume";
         assertNull(mContentResolver.query(Media.getContentUri(volume), null, null, null, null));
     }
 
+    private void cleanExternalMediaFile(String path) {
+        mContentResolver.delete(Media.EXTERNAL_CONTENT_URI, "_data=?", new String[] { path });
+        new File(path).delete();
+    }
+
     public void testStoreVideoMediaExternal() throws Exception {
         final String externalVideoPath = Environment.getExternalStorageDirectory().getPath() +
                  "/video/testvideo.3gp";
         final String externalVideoPath2 = Environment.getExternalStorageDirectory().getPath() +
                 "/video/testvideo1.3gp";
 
+        // clean up any potential left over entries from a previous aborted run
+        cleanExternalMediaFile(externalVideoPath);
+        cleanExternalMediaFile(externalVideoPath2);
+
         int numBytes = 1337;
         File videoFile = new File(externalVideoPath);
         FileUtils.createFile(videoFile, numBytes);
@@ -180,6 +192,7 @@
         } finally {
             // delete
             assertEquals(1, mContentResolver.delete(uri, null, null));
+            new File(externalVideoPath).delete();
         }
 
         // check that the video file is removed when deleting the database entry
diff --git a/tests/tests/provider/src/android/provider/cts/MediaStore_Video_ThumbnailsTest.java b/tests/tests/provider/src/android/provider/cts/MediaStore_Video_ThumbnailsTest.java
index 2a4b46c..287551c 100644
--- a/tests/tests/provider/src/android/provider/cts/MediaStore_Video_ThumbnailsTest.java
+++ b/tests/tests/provider/src/android/provider/cts/MediaStore_Video_ThumbnailsTest.java
@@ -99,10 +99,16 @@
             assertFalse("thumbnail file should no longer exist", new File(path).exists());
         }
         c.close();
+
+        assertEquals(1, mResolver.delete(videoUri, null, null));
     }
 
     private Uri insertVideo() throws IOException {
         File file = new File(Environment.getExternalStorageDirectory(), "testVideo.3gp");
+        // clean up any potential left over entries from a previous aborted run
+        mResolver.delete(Media.EXTERNAL_CONTENT_URI,
+                "_data=?", new String[] { file.getAbsolutePath() });
+        file.delete();
         mFileHelper.copyToExternalStorage(R.raw.testvideo, file);
 
         ContentValues values = new ContentValues();
diff --git a/tests/tests/provider/src/android/provider/cts/contacts/CommonDatabaseUtils.java b/tests/tests/provider/src/android/provider/cts/contacts/CommonDatabaseUtils.java
new file mode 100644
index 0000000..833de64
--- /dev/null
+++ b/tests/tests/provider/src/android/provider/cts/contacts/CommonDatabaseUtils.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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
+ */
+
+package android.provider.cts.contacts;
+
+import android.database.Cursor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Common database methods.
+ */
+public class CommonDatabaseUtils {
+
+    // primitive value used when record is not found.
+    public static final long NOT_FOUND = -1;
+
+    public static String[] singleRecordToArray(Cursor cursor) {
+        String[] result = null;
+        try {
+            if (cursor.moveToNext()) {
+                result = new String[cursor.getColumnCount()];
+                fillArray(cursor, result);
+            }
+        } finally {
+            closeQuietly(cursor);
+        }
+        return result;
+    }
+
+    public static List<String[]> multiRecordToArray(Cursor cursor) {
+        ArrayList<String[]> result = new ArrayList<String[]>();
+        try {
+            while (cursor.moveToNext()) {
+                String[] record = new String[cursor.getColumnCount()];
+                fillArray(cursor, record);
+                result.add(record);
+            }
+        } finally {
+            closeQuietly(cursor);
+        }
+        return result;
+    }
+
+    private static void fillArray(Cursor cursor, String[] array) {
+        for (int i = 0; i < array.length; i++) {
+            array[i] = cursor.getString(i);
+        }
+    }
+
+    public static void closeQuietly(Cursor cursor) {
+        if (cursor != null) {
+            cursor.close();
+        }
+    }
+}
diff --git a/tests/tests/provider/src/android/provider/cts/contacts/ContactUtil.java b/tests/tests/provider/src/android/provider/cts/contacts/ContactUtil.java
new file mode 100644
index 0000000..2a53781
--- /dev/null
+++ b/tests/tests/provider/src/android/provider/cts/contacts/ContactUtil.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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
+ */
+
+package android.provider.cts.contacts;
+
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.ContactsContract;
+
+/**
+ * Convenience methods for operating on the Contacts table.
+ */
+public class ContactUtil {
+
+    private static final Uri URI = ContactsContract.Contacts.CONTENT_URI;
+
+    public static void update(ContentResolver resolver, long contactId,
+            ContentValues values) {
+        Uri uri = ContentUris.withAppendedId(URI, contactId);
+        resolver.update(uri, values, null, null);
+    }
+
+    public static void delete(ContentResolver resolver, long contactId) {
+        Uri uri = ContentUris.withAppendedId(URI, contactId);
+        resolver.delete(uri, null, null);
+    }
+
+    public static boolean recordExistsForContactId(ContentResolver resolver, long contactId) {
+        String[] projection = new String[]{
+                ContactsContract.Contacts._ID
+        };
+        Uri uri = ContentUris.withAppendedId(URI, contactId);
+        Cursor cursor = resolver.query(uri, projection, null, null, null);
+        if (cursor.moveToNext()) {
+            return true;
+        }
+        return false;
+    }
+
+    public static long queryContactLastUpdatedTimestamp(ContentResolver resolver, long contactId) {
+        String[] projection = new String[]{
+                ContactsContract.Contacts.CONTACT_LAST_UPDATED_TIMESTAMP
+        };
+
+        Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, contactId);
+        Cursor cursor = resolver.query(uri, projection, null, null, null);
+        try {
+            if (cursor.moveToNext()) {
+                return cursor.getLong(0);
+            }
+        } finally {
+            if (cursor != null) {
+                cursor.close();
+            }
+        }
+        return CommonDatabaseUtils.NOT_FOUND;
+    }
+}
diff --git a/tests/tests/provider/src/android/provider/cts/contacts/DataUtil.java b/tests/tests/provider/src/android/provider/cts/contacts/DataUtil.java
new file mode 100644
index 0000000..1e07450
--- /dev/null
+++ b/tests/tests/provider/src/android/provider/cts/contacts/DataUtil.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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
+ */
+
+package android.provider.cts.contacts;
+
+import static android.provider.ContactsContract.CommonDataKinds;
+
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.ContactsContract;
+
+/**
+ * Convenience methods for operating on the Data table.
+ */
+public class DataUtil {
+
+    private static final Uri URI = ContactsContract.Data.CONTENT_URI;
+
+    public static String[] queryById(ContentResolver resolver, long dataId, String[] projection) {
+        Uri uri = ContentUris.withAppendedId(URI, dataId);
+        Cursor cursor = resolver.query(uri, projection, null, null, null);
+        return CommonDatabaseUtils.singleRecordToArray(cursor);
+    }
+
+    public static void insertName(ContentResolver resolver, long rawContactId, String name) {
+        ContentValues values = new ContentValues();
+        values.put(ContactsContract.Data.MIMETYPE,
+                CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
+        values.put(CommonDataKinds.StructuredName.DISPLAY_NAME, name);
+        insertData(resolver, rawContactId, values);
+    }
+
+    public static long insertPhoneNumber(ContentResolver resolver, long rawContactId,
+            String number) {
+        ContentValues values = new ContentValues();
+        values.put(ContactsContract.Data.MIMETYPE, CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
+        values.put(CommonDataKinds.Phone.NUMBER, number);
+        return DataUtil.insertData(resolver, rawContactId, values);
+    }
+
+    public static long insertEmail(ContentResolver resolver, long rawContactId, String email) {
+        ContentValues values = new ContentValues();
+        values.put(ContactsContract.Data.MIMETYPE, CommonDataKinds.Email.CONTENT_ITEM_TYPE);
+        values.put(CommonDataKinds.Email.ADDRESS, email);
+        return DataUtil.insertData(resolver, rawContactId, values);
+    }
+
+    public static void insertAutoGeneratedName(ContentResolver resolver, long rawContactId) {
+        insertName(resolver, rawContactId, "test raw contact " + rawContactId);
+    }
+
+    public static long insertData(ContentResolver resolver, long rawContactId,
+            ContentValues values) {
+        // copy
+        ContentValues newValues = new ContentValues(values);
+        newValues.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
+
+        Uri uri = resolver.insert(URI, newValues);
+        return ContentUris.parseId(uri);
+    }
+
+    public static void delete(ContentResolver resolver, long dataId) {
+        Uri uri = ContentUris.withAppendedId(URI, dataId);
+        resolver.delete(uri, null, null);
+    }
+
+    public static void update(ContentResolver resolver, long dataId, ContentValues values) {
+        Uri uri = ContentUris.withAppendedId(URI, dataId);
+        resolver.update(uri, values, null, null);
+    }
+}
diff --git a/tests/tests/provider/src/android/provider/cts/contacts/DatabaseAsserts.java b/tests/tests/provider/src/android/provider/cts/contacts/DatabaseAsserts.java
new file mode 100644
index 0000000..19b5b13
--- /dev/null
+++ b/tests/tests/provider/src/android/provider/cts/contacts/DatabaseAsserts.java
@@ -0,0 +1,235 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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
+ */
+
+package android.provider.cts.contacts;
+
+import android.accounts.Account;
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.cts.contacts.account.StaticAccountAuthenticator;
+import android.test.MoreAsserts;
+
+import junit.framework.Assert;
+
+import java.util.BitSet;
+
+/**
+ * Common methods for asserting database related operations.
+ */
+public class DatabaseAsserts {
+
+    public static void assertDeleteIsUnsupported(ContentResolver resolver, Uri uri) {
+        try {
+            resolver.delete(uri, null, null);
+            Assert.fail("delete operation should have failed with UnsupportedOperationException on"
+                    + uri);
+        } catch (UnsupportedOperationException e) {
+            // pass
+        }
+    }
+
+    public static void assertInsertIsUnsupported(ContentResolver resolver, Uri  uri) {
+        try {
+            ContentValues values = new ContentValues();
+            resolver.insert(uri, values);
+            Assert.fail("insert operation should have failed with UnsupportedOperationException on"
+                    + uri);
+        } catch (UnsupportedOperationException e) {
+            // pass
+        }
+    }
+
+    /**
+     * Create a contact in account 1 and assert that the record exists.
+     *
+     * @return The created contact id pair.
+     */
+    public static ContactIdPair assertAndCreateContact(ContentResolver resolver) {
+        return assertAndCreateContact(resolver, StaticAccountAuthenticator.ACCOUNT_1);
+    }
+
+    /**
+     * Create a contact in a specified account and assert that the record exists.
+     *
+     * @return The created contact id pair.
+     */
+    public static ContactIdPair assertAndCreateContactWithName(ContentResolver resolver,
+            Account account, String name) {
+        long rawContactId = RawContactUtil.createRawContactWithName(resolver, account, name);
+
+        long contactId = RawContactUtil.queryContactIdByRawContactId(resolver, rawContactId);
+        MoreAsserts.assertNotEqual(CommonDatabaseUtils.NOT_FOUND, contactId);
+
+        return new ContactIdPair(contactId, rawContactId);
+    }
+
+    /**
+     * Create a contact in a specified account and assert that the record exists.
+     *
+     * @return The created contact id pair.
+     */
+    public static ContactIdPair assertAndCreateContact(ContentResolver resolver, Account account) {
+        long rawContactId = RawContactUtil.createRawContactWithAutoGeneratedName(resolver, account);
+
+        long contactId = RawContactUtil.queryContactIdByRawContactId(resolver, rawContactId);
+        MoreAsserts.assertNotEqual(CommonDatabaseUtils.NOT_FOUND, contactId);
+
+        return new ContactIdPair(contactId, rawContactId);
+    }
+
+    /**
+     * Asserts that a contact id was deleted, has a delete log, and that log has a timestamp greater
+     * than the given timestamp.
+     *
+     * @param contactId The contact id to check.
+     * @param start The timestamp that the delete log should be greater than.
+     */
+    public static void assertHasDeleteLogGreaterThan(ContentResolver resolver, long contactId,
+            long start) {
+        Assert.assertFalse(ContactUtil.recordExistsForContactId(resolver, contactId));
+
+        long deletedTimestamp = DeletedContactUtil.queryDeletedTimestampForContactId(resolver,
+                contactId);
+        MoreAsserts.assertNotEqual(CommonDatabaseUtils.NOT_FOUND, deletedTimestamp);
+        Assert.assertTrue(deletedTimestamp > start);
+    }
+
+    /**
+     * Holds a single contact id and raw contact id relationship.
+     */
+    public static class ContactIdPair {
+        public long mContactId;
+        public long mRawContactId;
+
+        public ContactIdPair(long contactId, long rawContactId) {
+            this.mContactId = contactId;
+            this.mRawContactId = rawContactId;
+        }
+
+        @Override
+        public String toString() {
+            return "ContactIdPair{" +
+                    "mContactId=" + mContactId +
+                    ", mRawContactId=" + mRawContactId +
+                    '}';
+        }
+    }
+
+    /**
+     * Queries for a given {@link Uri} against a provided {@link ContentResolver}, and
+     * ensures that the returned cursor contains exactly the expected values.
+     *
+     * @param resolver - ContentResolver to query against
+     * @param uri - {@link Uri} to perform the query for
+     * contained in <code>expectedValues</code> in order for the assert to pass.
+     * @param expectedValues - Array of {@link ContentValues} which the cursor returned from the
+     * query should contain.
+     */
+    public static void assertStoredValuesInUriMatchExactly(ContentResolver resolver, Uri uri,
+            ContentValues... expectedValues) {
+        assertStoredValuesInUriMatchExactly(resolver, uri, null, null, null, null, expectedValues);
+    }
+
+    /**
+     * Queries for a given {@link Uri} against a provided {@link ContentResolver}, and
+     * ensures that the returned cursor contains exactly the expected values.
+     *
+     * @param resolver - ContentResolver to query against
+     * @param uri - {@link Uri} to perform the query for
+     * @param projection - Projection to use for the query. Must contain at least the columns
+     * contained in <code>expectedValues</code> in order for the assert to pass.
+     * @param selection - Selection string to use for the query.
+     * @param selectionArgs - Selection arguments to use for the query.
+     * @param sortOrder - Sort order to use for the query.
+     * @param expectedValues - Array of {@link ContentValues} which the cursor returned from the
+     * query should contain.
+     */
+    public static void assertStoredValuesInUriMatchExactly(ContentResolver resolver, Uri uri, String[] projection,
+            String selection, String[] selectionArgs, String sortOrder,
+            ContentValues... expectedValues) {
+        final Cursor cursor = resolver.query(uri, projection, selection, selectionArgs, sortOrder);
+        try {
+            assertCursorValuesMatchExactly(cursor, expectedValues);
+        } finally {
+            cursor.close();
+        }
+    }
+
+    /**
+     * Ensures that the rows in the cursor match the rows in the expected values exactly. However,
+     * does not require that the rows in the cursor are ordered the same way as those in the
+     * expected values.
+     *
+     * @param cursor - Cursor containing the values to check for
+     * @param expectedValues - Array of ContentValues that the cursor should be expected to
+     * contain.
+     */
+    public static void assertCursorValuesMatchExactly(Cursor cursor,
+            ContentValues... expectedValues) {
+        Assert.assertEquals("Cursor does not contain the number of expected rows",
+                expectedValues.length, cursor.getCount());
+        StringBuilder message = new StringBuilder();
+        // In case if expectedValues contains multiple identical values, remember which cursor
+        // rows are "consumed" to prevent multiple ContentValues from hitting the same row.
+        final BitSet used = new BitSet(cursor.getCount());
+
+        for (ContentValues v : expectedValues) {
+            boolean found = false;
+            cursor.moveToPosition(-1);
+            while (cursor.moveToNext()) {
+                final int pos = cursor.getPosition();
+                if (used.get(pos)) continue;
+                found = equalsWithExpectedValues(cursor, v, message);
+                if (found) {
+                    used.set(pos);
+                    break;
+                }
+            }
+            Assert.assertTrue("Expected values can not be found " + v + "," + message.toString(),
+                    found);
+        }
+    }
+
+    private static boolean equalsWithExpectedValues(Cursor cursor, ContentValues expectedValues,
+            StringBuilder msgBuffer) {
+        for (String column : expectedValues.keySet()) {
+            int index = cursor.getColumnIndex(column);
+            if (index == -1) {
+                msgBuffer.append(" No such column: ").append(column);
+                return false;
+            }
+            Object expectedValue = expectedValues.get(column);
+            String value;
+            expectedValue = expectedValues.getAsString(column);
+            value = cursor.getString(cursor.getColumnIndex(column));
+            if (expectedValue != null && !expectedValue.equals(value) || value != null
+                    && !value.equals(expectedValue)) {
+                msgBuffer
+                        .append(" Column value ")
+                        .append(column)
+                        .append(" expected <")
+                        .append(expectedValue)
+                        .append(">, but was <")
+                        .append(value)
+                        .append('>');
+                return false;
+            }
+        }
+        return true;
+    }
+}
diff --git a/tests/tests/provider/src/android/provider/cts/contacts/DeletedContactUtil.java b/tests/tests/provider/src/android/provider/cts/contacts/DeletedContactUtil.java
new file mode 100644
index 0000000..692570a
--- /dev/null
+++ b/tests/tests/provider/src/android/provider/cts/contacts/DeletedContactUtil.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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
+ */
+
+package android.provider.cts.contacts;
+
+import static android.provider.ContactsContract.DeletedContacts;
+
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.database.Cursor;
+import android.net.Uri;
+
+import java.util.List;
+
+/**
+ * Convenience methods for operating on the DeletedContacts table.
+ */
+public class DeletedContactUtil {
+
+    private static final Uri URI = DeletedContacts.CONTENT_URI;
+
+    public static long queryDeletedTimestampForContactId(ContentResolver resolver, long contactId) {
+        String[] projection = new String[]{
+                DeletedContacts.CONTACT_DELETED_TIMESTAMP
+        };
+        Uri uri = ContentUris.withAppendedId(URI, contactId);
+        Cursor cursor = resolver.query(uri, projection, null, null, null);
+        if (cursor.moveToNext()) {
+            return cursor.getLong(0);
+        }
+        return CommonDatabaseUtils.NOT_FOUND;
+    }
+
+    public static long getCount(ContentResolver resolver) {
+        String[] projection = new String[] {
+                DeletedContacts.CONTACT_ID
+        };
+        Cursor cursor = resolver.query(URI, projection, null, null, null);
+        try {
+            return cursor.getCount();
+        } finally {
+            CommonDatabaseUtils.closeQuietly(cursor);
+        }
+    }
+
+    /**
+     * Queries all records.
+     *
+     * @return A list of records.  Where each record is represented as an array of strings.
+     */
+    public static List<String[]> query(ContentResolver resolver, String[] projection) {
+        Cursor cursor = resolver.query(URI, projection, null, null, null);
+        return CommonDatabaseUtils.multiRecordToArray(cursor);
+    }
+
+    /**
+     * Queries all records after a given timestamp.
+     *
+     * @return A list of records.  Where each record is represented as an array of strings.
+     */
+    public static List<String[]> querySinceTimestamp(ContentResolver resolver, String[] projection,
+            long timestamp) {
+        String selection = DeletedContacts.CONTACT_DELETED_TIMESTAMP + ">?";
+        String[] args = new String[] {timestamp + ""};
+        Cursor cursor = resolver.query(URI, projection, selection, args, null);
+        return CommonDatabaseUtils.multiRecordToArray(cursor);
+    }
+}
diff --git a/tests/tests/provider/src/android/provider/cts/contacts/RawContactUtil.java b/tests/tests/provider/src/android/provider/cts/contacts/RawContactUtil.java
new file mode 100644
index 0000000..38ff33d
--- /dev/null
+++ b/tests/tests/provider/src/android/provider/cts/contacts/RawContactUtil.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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
+ */
+
+package android.provider.cts.contacts;
+
+import android.accounts.Account;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.ContactsContract;
+
+import java.util.List;
+
+/**
+ * Convenience methods for operating on the RawContacts table.
+ */
+public class RawContactUtil {
+
+    private static final Uri URI = ContactsContract.RawContacts.CONTENT_URI;
+
+    public static void update(ContentResolver resolver, long rawContactId,
+            ContentValues values) {
+        Uri uri = ContentUris.withAppendedId(URI, rawContactId);
+        resolver.update(uri, values, null, null);
+    }
+
+    public static long createRawContactWithName(ContentResolver resolver, Account account,
+            String name) {
+        Long rawContactId = insertRawContact(resolver, account);
+        DataUtil.insertName(resolver, rawContactId, name);
+        return rawContactId;
+    }
+
+    public static long createRawContactWithAutoGeneratedName(ContentResolver resolver,
+            Account account) {
+        Long rawContactId = insertRawContact(resolver, account);
+        DataUtil.insertAutoGeneratedName(resolver, rawContactId);
+        return rawContactId;
+    }
+
+    public static long insertRawContact(ContentResolver resolver, Account account) {
+        ContentValues values = new ContentValues();
+        values.put(ContactsContract.RawContacts.ACCOUNT_NAME, account.name);
+        values.put(ContactsContract.RawContacts.ACCOUNT_TYPE, account.type);
+        Uri uri = resolver.insert(URI, values);
+        return ContentUris.parseId(uri);
+    }
+
+    public static String[] queryByRawContactId(ContentResolver resolver,
+            long rawContactId, String[] projection) {
+        Uri uri = ContentUris.withAppendedId(URI, rawContactId);
+        Cursor cursor = resolver.query(uri, projection, null, null, null);
+        return CommonDatabaseUtils.singleRecordToArray(cursor);
+    }
+
+    /**
+     * Returns a list of raw contact records.
+     *
+     * @return A list of records.  Where each record is represented as an array of strings.
+     */
+    public static List<String[]> queryByContactId(ContentResolver resolver, long contactId,
+            String[] projection) {
+        Uri uri = ContentUris.withAppendedId(URI, contactId);
+        Cursor cursor = resolver.query(uri, projection, null, null, null);
+        return CommonDatabaseUtils.multiRecordToArray(cursor);
+    }
+
+    public static void delete(ContentResolver resolver, long rawContactId,
+            boolean isSyncAdapter) {
+        Uri uri = ContentUris.withAppendedId(URI, rawContactId)
+                .buildUpon()
+                .appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, isSyncAdapter + "")
+                .build();
+        resolver.delete(uri, null, null);
+    }
+
+    public static long queryContactIdByRawContactId(ContentResolver resolver, long rawContactid) {
+        String[] projection = new String[]{
+                ContactsContract.RawContacts.CONTACT_ID
+        };
+        String[] result = RawContactUtil.queryByRawContactId(resolver, rawContactid,
+                projection);
+        if (result == null) {
+            return CommonDatabaseUtils.NOT_FOUND;
+        }
+        return Long.parseLong(result[0]);
+    }
+
+    public static boolean rawContactExistsById(ContentResolver resolver, long rawContactid) {
+        long contactId = queryContactIdByRawContactId(resolver, rawContactid);
+        return contactId != CommonDatabaseUtils.NOT_FOUND;
+    }
+}
diff --git a/tests/tests/provider/src/android/provider/cts/contacts/account/MockAccountService.java b/tests/tests/provider/src/android/provider/cts/contacts/account/MockAccountService.java
new file mode 100644
index 0000000..33a34b3
--- /dev/null
+++ b/tests/tests/provider/src/android/provider/cts/contacts/account/MockAccountService.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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
+ */
+
+package android.provider.cts.contacts.account;
+
+import android.app.Service;
+import android.content.Intent;
+import android.os.IBinder;
+
+/**
+ * Account service for the authenticator
+ */
+public class MockAccountService extends Service {
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return (new StaticAccountAuthenticator(this)).getIBinder();
+    }
+}
diff --git a/tests/tests/provider/src/android/provider/cts/contacts/account/StaticAccountAuthenticator.java b/tests/tests/provider/src/android/provider/cts/contacts/account/StaticAccountAuthenticator.java
new file mode 100644
index 0000000..01db2a1
--- /dev/null
+++ b/tests/tests/provider/src/android/provider/cts/contacts/account/StaticAccountAuthenticator.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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
+ */
+
+package android.provider.cts.contacts.account;
+
+import android.accounts.AbstractAccountAuthenticator;
+import android.accounts.Account;
+import android.accounts.AccountAuthenticatorResponse;
+import android.accounts.AccountManager;
+import android.accounts.NetworkErrorException;
+import android.content.Context;
+import android.os.Bundle;
+
+/**
+ * Account authenticator with 1 hard coded account.
+ *
+ * Also adds the account to the account manager on instantiation.
+ */
+public class StaticAccountAuthenticator extends AbstractAccountAuthenticator {
+
+    public static final String NAME = "test_account_name";
+    public static final String TYPE = "com.android.cts.contactsprovider";
+    public static final Account ACCOUNT_1 = new Account("cp account 1", TYPE);
+
+    private static final String LABEL = "test_auth_token_label";
+    private static final String TOKEN = "asdlkjfslkjfdklj";
+
+    private static Bundle sAccountBundle;
+    static {
+        sAccountBundle = new Bundle();
+        sAccountBundle.putString(AccountManager.KEY_ACCOUNT_NAME, NAME);
+        sAccountBundle.putString(AccountManager.KEY_ACCOUNT_TYPE, TYPE);
+        sAccountBundle.putString(AccountManager.KEY_AUTHTOKEN, TOKEN);
+    }
+
+    private static Bundle createResultBundle() {
+        return sAccountBundle;
+    }
+
+    public StaticAccountAuthenticator(Context context) {
+        super(context);
+    }
+
+    @Override
+    public Bundle editProperties(AccountAuthenticatorResponse response, String accountType) {
+        return createResultBundle();
+    }
+
+    @Override
+    public Bundle addAccount(AccountAuthenticatorResponse response, String accountType,
+            String authTokenType, String[] requiredFeatures, Bundle options)
+            throws NetworkErrorException {
+        return createResultBundle();
+    }
+
+    @Override
+    public Bundle confirmCredentials(AccountAuthenticatorResponse response, Account account,
+            Bundle options) throws NetworkErrorException {
+        Bundle result = new Bundle();
+        result.putBoolean(AccountManager.KEY_BOOLEAN_RESULT, true);
+        return result;
+    }
+
+    @Override
+    public Bundle getAuthToken(AccountAuthenticatorResponse response, Account account,
+            String authTokenType, Bundle options) throws NetworkErrorException {
+        return createResultBundle();
+    }
+
+    @Override
+    public String getAuthTokenLabel(String authTokenType) {
+        return LABEL;
+    }
+
+    @Override
+    public Bundle updateCredentials(AccountAuthenticatorResponse response, Account account,
+            String authTokenType, Bundle options) throws NetworkErrorException {
+        return createResultBundle();
+    }
+
+    @Override
+    public Bundle hasFeatures(AccountAuthenticatorResponse response, Account account,
+            String[] features) throws NetworkErrorException {
+        Bundle result = new Bundle();
+        result.putBoolean(AccountManager.KEY_BOOLEAN_RESULT, false);
+        return result;
+    }
+
+}
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/AllocationTest.java b/tests/tests/renderscript/src/android/renderscript/cts/AllocationTest.java
index feac159..51309c8 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/AllocationTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/AllocationTest.java
@@ -28,7 +28,9 @@
 import android.renderscript.Type.Builder;
 import android.renderscript.Type.CubemapFace;
 
-public class AllocationTest extends RSBaseGraphics {
+import android.util.Log;
+
+public class AllocationTest extends RSBaseCompute {
 
     // Test power of two and non power of two, equal and non-equal sizes
     void createTypedHelper(Element e) {
@@ -188,10 +190,10 @@
 
     void helperCreateFromBitmap(Bitmap B,
                                 Allocation.MipmapControl mc) {
-        for (int i = 0; i < 1; i++) {
-            for (int j = 0; j < 1; j++) {
-                for (int k = 0; k < 1; k++) {
-                    for (int l = 0; l < 1; l++) {
+        for (int i = 0; i <= 1; i++) {
+            for (int j = 0; j <= 1; j++) {
+                for (int k = 0; k <= 1; k++) {
+                    for (int l = 0; l <= 1; l++) {
                         int u = 0;
                         u |= (i * Allocation.USAGE_SCRIPT);
                         u |= (j * Allocation.USAGE_GRAPHICS_TEXTURE);
@@ -684,6 +686,101 @@
             }
         }
     }
+
+    public void testCopyFromAllocation() {
+        int nElemsX = 256;
+        int nElemsY = 32;
+        Type.Builder b = new Type.Builder(mRS, Element.I8(mRS));
+        Type.Builder b2 = new Type.Builder(mRS, Element.I32(mRS));
+        Allocation srcA = Allocation.createTyped(mRS, b.setX(nElemsX).setY(nElemsY).create());
+        Allocation dstA = Allocation.createTyped(mRS, b.setX(nElemsX).setY(nElemsY).create());
+
+        // wrong dimensionality
+        Allocation srcB_bad = Allocation.createTyped(mRS, b.setX(nElemsX).setY(1).create());
+        Allocation srcC_bad = Allocation.createTyped(mRS, b.setX(nElemsY).setY(nElemsX).create());
+        Allocation srcD_bad = Allocation.createTyped(mRS, b.setX(nElemsX*2).setY(nElemsY*2).create());
+
+        // wrong element type
+        Allocation srcE_bad = Allocation.createTyped(mRS, b2.setX(nElemsX).setY(nElemsY).create());
+
+        try {
+            dstA.copyFrom(srcB_bad);
+            fail("should throw RSIllegalArgumentException");
+        } catch (RSIllegalArgumentException e) {
+        }
+
+        try {
+            dstA.copyFrom(srcC_bad);
+            fail("should throw RSIllegalArgumentException");
+        } catch (RSIllegalArgumentException e) {
+        }
+
+        try {
+            dstA.copyFrom(srcD_bad);
+            fail("should throw RSIllegalArgumentException");
+        } catch (RSIllegalArgumentException e) {
+        }
+
+        try {
+            dstA.copyFrom(srcE_bad);
+            fail("should throw RSIllegalArgumentException");
+        } catch (RSIllegalArgumentException e) {
+        }
+
+        dstA.copyFrom(srcA);
+
+    }
+
+    public void testSetElementAt() {
+        Type.Builder b = new Type.Builder(mRS, Element.I32(mRS));
+        Allocation largeArray = Allocation.createTyped(mRS, b.setX(48).create());
+        Allocation singleElement = Allocation.createTyped(mRS, b.setX(1).create());
+
+        ScriptC_setelementat script = new ScriptC_setelementat(mRS, mRes, R.raw.setelementat);
+
+        script.set_memset_toValue(1);
+        script.forEach_memset(singleElement);
+
+        script.set_dimX(48);
+        script.set_array(largeArray);
+
+        script.forEach_setLargeArray(singleElement);
+
+        int[] result = new int[1];
+
+        script.set_compare_value(10);
+        script.forEach_compare(largeArray);
+        script.forEach_getCompareResult(singleElement);
+        singleElement.copyTo(result);
+        assertTrue(result[0] == 2);
+    }
+
+    public void testSetElementAt2D() {
+        Type.Builder b = new Type.Builder(mRS, Element.I32(mRS));
+
+        Allocation singleElement = Allocation.createTyped(mRS, b.setX(1).create());
+        Allocation largeArray = Allocation.createTyped(mRS, b.setX(48).setY(16).create());
+
+        ScriptC_setelementat script = new ScriptC_setelementat(mRS, mRes, R.raw.setelementat);
+
+        script.set_memset_toValue(1);
+        script.forEach_memset(singleElement);
+
+        script.set_dimX(48);
+        script.set_dimY(16);
+        script.set_array(largeArray);
+
+        script.forEach_setLargeArray2D(singleElement);
+
+        int[] result = new int[1];
+
+        script.set_compare_value(10);
+        script.forEach_compare(largeArray);
+        script.forEach_getCompareResult(singleElement);
+        singleElement.copyTo(result);
+        assertTrue(result[0] == 2);
+    }
+
 }
 
 
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/BaseObjTest.java b/tests/tests/renderscript/src/android/renderscript/cts/BaseObjTest.java
index a079951..6a7a3e4 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/BaseObjTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/BaseObjTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 The Android Open Source Project
+ * Copyright (C) 2013 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,46 +16,45 @@
 
 package android.renderscript.cts;
 
+import android.renderscript.Allocation;
 import android.renderscript.BaseObj;
-import android.renderscript.Font;
-import android.renderscript.Font.Style;
+import android.renderscript.Element;
 import android.renderscript.RSIllegalArgumentException;
+import android.renderscript.Type;
 
-public class BaseObjTest extends RSBaseGraphics {
+public class BaseObjTest extends RSBaseCompute {
 
     public void testBaseObj() {
-        Style S = Font.Style.NORMAL;
-        Font F = Font.create(mRS, mRes, "sans-serif", S, 8);
-        assertTrue(F != null);
-        BaseObj B = F;
-        B.setName("sans-serif");
+        Element E = Element.I32(mRS);
+        Type.Builder TB = new Type.Builder(mRS, E);
+        Type T = TB.setX(1).create();
+        assertTrue(T != null);
+        BaseObj B = T;
+        B.setName("int32_t");
         try {
-            B.setName("sans-serif");
+            B.setName("int32_t");
             fail("set name twice for a BaseObj");
         } catch (RSIllegalArgumentException e) {
         }
-        B.destroy();
+        T.destroy();
 
-        F = Font.create(mRS, mRes, "serif", S, 8);
-        assertTrue(F != null);
-        B = F;
+        T = TB.setX(2).create();
+        assertTrue(T != null);
+        B = T;
         try {
             B.setName("");
             fail("set empty name for a BaseObj");
         } catch (RSIllegalArgumentException e) {
         }
-        B.setName("serif");
-        B.destroy();
 
-        F = Font.create(mRS, mRes, "mono", S, 8);
-        assertTrue(F != null);
-        B = F;
         try {
             B.setName(null);
             fail("set name as null string reference for a BaseObj");
         } catch (RSIllegalArgumentException e) {
         }
-        B.setName("mono");
+        B.setName("int32_t");
+
+        assertTrue(B.getName().compareTo("int32_t") == 0);
         B.destroy();
     }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ComputeTest.java b/tests/tests/renderscript/src/android/renderscript/cts/ComputeTest.java
index d095dd0..40611fd 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ComputeTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ComputeTest.java
@@ -782,4 +782,44 @@
         }
         checkForErrors();
     }
+
+    /**
+     * Test script instancing.
+     */
+    public void testInstance() {
+        ScriptC_instance instance_1 = new ScriptC_instance(mRS);
+        ScriptC_instance instance_2 = new ScriptC_instance(mRS);
+
+        Type t = new Type.Builder(mRS, Element.I32(mRS)).setX(1).create();
+        Allocation ai1 = Allocation.createTyped(mRS, t);
+        Allocation ai2 = Allocation.createTyped(mRS, t);
+
+        instance_1.set_i(1);
+        instance_2.set_i(2);
+        instance_1.set_ai(ai1);
+        instance_2.set_ai(ai2);
+
+        // We now check to ensure that the global is not being shared across
+        // our separate script instances. Our invoke here merely sets the
+        // instanced allocation with the instanced global variable's value.
+        // If globals are being shared (i.e. not instancing scripts), then
+        // both instanced allocations will have the same resulting value
+        // (depending on the order in which the invokes complete).
+        instance_1.invoke_instance_test();
+        instance_2.invoke_instance_test();
+
+        int i1[] = new int[1];
+        int i2[] = new int[1];
+
+        ai1.copyTo(i1);
+        ai2.copyTo(i2);
+
+        // 3-step check ensures that a fortunate race condition wouldn't let us
+        // pass accidentally.
+        assertEquals(2, i2[0]);
+        assertEquals(1, i1[0]);
+        assertEquals(2, i2[0]);
+
+        checkForErrors();
+    }
 }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/DebugContext.java b/tests/tests/renderscript/src/android/renderscript/cts/DebugContext.java
new file mode 100644
index 0000000..cf0f76d
--- /dev/null
+++ b/tests/tests/renderscript/src/android/renderscript/cts/DebugContext.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.renderscript.cts;
+
+import android.renderscript.Allocation;
+import android.renderscript.Element;
+import android.renderscript.RenderScript;
+import android.renderscript.RenderScript.RSErrorHandler;
+import android.renderscript.RSRuntimeException;
+import android.renderscript.Type;
+import android.util.Log;
+
+public class DebugContext extends RSBaseCompute {
+    Allocation AUnused;
+    Allocation AInt;
+    ScriptC_oob Soob;
+
+    boolean mRanErrorHandler = false;
+    RSErrorHandler mRsError = new RSErrorHandler() {
+        public void run() {
+            mRanErrorHandler = true;
+            Log.e("RenderscriptCTS", mErrorMessage);
+        }
+    };
+
+    protected void setupDebugContext() {
+        mRS.destroy();
+        mRS = RenderScript.create(mCtx, RenderScript.ContextType.DEBUG);
+        mRS.setMessageHandler(mRsMessage);
+        mRS.setErrorHandler(mRsError);
+
+        Soob = new ScriptC_oob(mRS);
+
+        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32(mRS));
+        Type t = typeBuilder.setX(1).create();
+
+        AInt = Allocation.createTyped(mRS, t);
+        Soob.set_aInt(AInt);
+
+        AUnused = Allocation.createTyped(mRS, t);
+    }
+
+    /**
+     * Test whether we are detect out-of-bounds allocation accesses
+     * from an invokable.
+     */
+    public void testDebugContextI() {
+        setupDebugContext();
+        Soob.invoke_write_i(7, 1);  // Write to invalid location.
+        for (int i = 0; i < 100; i++) {
+            Soob.invoke_write_i(9, 0);
+            mRS.finish();
+        }
+        Soob.destroy();
+        assertTrue(mRanErrorHandler);
+        checkForErrors();
+    }
+
+    /**
+     * Test whether we are detect out-of-bounds allocation accesses
+     * from a kernel.
+     */
+    public void testDebugContextK() {
+        setupDebugContext();
+        Soob.forEach_write_k(AUnused);  // Write to invalid location.
+        for (int i = 0; i < 100; i++) {
+            Soob.invoke_write_i(9, 0);
+            mRS.finish();
+        }
+        Soob.destroy();
+        assertTrue(mRanErrorHandler);
+        checkForErrors();
+    }
+}
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ElementTest.java b/tests/tests/renderscript/src/android/renderscript/cts/ElementTest.java
index 2ad45b1..ead4528 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ElementTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ElementTest.java
@@ -487,11 +487,12 @@
         assertEquals(DataKind.PIXEL_RGB, DataKind.valueOf("PIXEL_RGB"));
         assertEquals(DataKind.PIXEL_RGBA, DataKind.valueOf("PIXEL_RGBA"));
         assertEquals(DataKind.PIXEL_DEPTH, DataKind.valueOf("PIXEL_DEPTH"));
+        assertEquals(DataKind.PIXEL_YUV, DataKind.valueOf("PIXEL_YUV"));
         // Make sure no new enums are added
-        assertEquals(7, DataKind.values().length);
+        assertEquals(8, DataKind.values().length);
 
         for (DataKind dk : DataKind.values()) {
-            if (dk != DataKind.USER) {
+            if (dk != DataKind.USER && dk != DataKind.PIXEL_YUV) {
                 Element.createPixel(mRS, DataType.UNSIGNED_8, dk);
             }
         }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ForEachTest.java b/tests/tests/renderscript/src/android/renderscript/cts/ForEachTest.java
index f633168..433b7e6 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ForEachTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ForEachTest.java
@@ -471,6 +471,7 @@
         typeBuilder.setX(X).setY(Y);
         Allocation A = Allocation.createTyped(mRS, typeBuilder.create());
         s.bind_a(A);
+        s.set_aRaw(A);
         s.forEach_root(A);
         s.invoke_verify_root();
         s.forEach_foo(A, A);
@@ -491,6 +492,7 @@
         typeBuilder.setX(X).setY(Y);
         Allocation A = Allocation.createTyped(mRS, typeBuilder.create());
         s.bind_a(A);
+        s.set_aRaw(A);
         s.forEach_foo(A, A);
         s.invoke_verify_foo();
         s.invoke_noroot_test();
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/GlobalSync.java b/tests/tests/renderscript/src/android/renderscript/cts/GlobalSync.java
new file mode 100644
index 0000000..c446ba1
--- /dev/null
+++ b/tests/tests/renderscript/src/android/renderscript/cts/GlobalSync.java
@@ -0,0 +1,128 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.renderscript.cts;
+
+import android.renderscript.Allocation;
+import android.renderscript.Element;
+import android.renderscript.RenderScript;
+import android.renderscript.Type;
+
+public class GlobalSync extends RSBaseCompute {
+    Allocation AFailed;
+    int [] Failed;
+    Allocation AIn;
+
+    protected void setupGlobalSync(RenderScript mRS, ScriptC_global_sync gs, int v) {
+        Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32(mRS));
+        Type t = typeBuilder.setX(1).create();
+
+        AFailed = Allocation.createTyped(mRS, t);
+        Failed = new int [1];
+        Failed[0] = 0;
+        AFailed.copyFrom(Failed);
+        gs.set_aFailed(AFailed);
+
+        AIn = Allocation.createTyped(mRS, t);
+        int [] In = new int [1];
+        In[0] = v;
+        AIn.copyFrom(In);
+    }
+
+    /**
+     * Test whether we are properly synchronizing extern global data
+     * when going from kernel to invokable.
+     */
+    public void testKIGlobalSync() {
+        ScriptC_global_sync gs = new ScriptC_global_sync(mRS);
+
+        int v = 7;
+        setupGlobalSync(mRS, gs, v);
+        gs.forEach_write_global(AIn);
+        gs.invoke_test_read_global(v);
+
+        AFailed.copyTo(Failed);
+        if (Failed[0] != 0) {
+            FoundError = true;
+        }
+
+        gs.destroy();
+        checkForErrors();
+    }
+
+    /**
+     * Test whether we are properly synchronizing static global data
+     * when going from invokable to kernel.
+     */
+    public void testKIStaticGlobalSync() {
+        ScriptC_global_sync gs = new ScriptC_global_sync(mRS);
+
+        int v = 9;
+        setupGlobalSync(mRS, gs, v);
+        gs.forEach_write_static_global(AIn);
+        gs.invoke_test_read_static_global(v);
+
+        AFailed.copyTo(Failed);
+        if (Failed[0] != 0) {
+            FoundError = true;
+        }
+
+        gs.destroy();
+        checkForErrors();
+    }
+
+    /**
+     * Test whether we are properly synchronizing extern global data
+     * when going from invokable to kernel.
+     */
+    public void testIKGlobalSync() {
+        ScriptC_global_sync gs = new ScriptC_global_sync(mRS);
+
+        int v = 7;
+        setupGlobalSync(mRS, gs, v);
+        gs.invoke_test_write_global(v);
+        gs.forEach_read_global(AIn, AFailed);
+
+        AFailed.copyTo(Failed);
+        if (Failed[0] != 0) {
+            FoundError = true;
+        }
+
+        gs.destroy();
+        checkForErrors();
+    }
+
+    /**
+     * Test whether we are properly synchronizing static global data
+     * when going from kernel to invokable.
+     */
+    public void testIKStaticGlobalSync() {
+        ScriptC_global_sync gs = new ScriptC_global_sync(mRS);
+
+        int v = 9;
+        setupGlobalSync(mRS, gs, v);
+        gs.invoke_test_write_static_global(v);
+        gs.forEach_read_static_global(AIn, AFailed);
+
+        AFailed.copyTo(Failed);
+        if (Failed[0] != 0) {
+            FoundError = true;
+        }
+
+        gs.destroy();
+        checkForErrors();
+    }
+}
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/GlobalTest.java b/tests/tests/renderscript/src/android/renderscript/cts/GlobalTest.java
new file mode 100644
index 0000000..b0c3b63
--- /dev/null
+++ b/tests/tests/renderscript/src/android/renderscript/cts/GlobalTest.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.renderscript.cts;
+
+public class GlobalTest extends RSBaseCompute {
+    /**
+     * Test whether we properly clean up after large global arrays are
+     * allocated/deallocated.
+     */
+    public void testLargeGlobal() {
+        for (int i = 0; i < 1000; i++) {
+            ScriptC_large_global lg = new ScriptC_large_global(mRS);
+            lg.destroy();
+        }
+        checkForErrors();
+    }
+}
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ImageProcessingTest.java b/tests/tests/renderscript/src/android/renderscript/cts/ImageProcessingTest.java
new file mode 100644
index 0000000..fae20f4
--- /dev/null
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ImageProcessingTest.java
@@ -0,0 +1,338 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.renderscript.cts;
+
+import android.renderscript.Allocation;
+
+import android.renderscript.Byte2;
+import android.renderscript.Byte3;
+import android.renderscript.Byte4;
+
+import android.renderscript.Double2;
+import android.renderscript.Double3;
+import android.renderscript.Double4;
+
+import android.renderscript.Element;
+
+import android.renderscript.Float2;
+import android.renderscript.Float3;
+import android.renderscript.Float4;
+
+import android.renderscript.Int2;
+import android.renderscript.Int3;
+import android.renderscript.Int4;
+
+import android.renderscript.Long2;
+import android.renderscript.Long3;
+import android.renderscript.Long4;
+
+import android.renderscript.RSRuntimeException;
+
+import android.renderscript.Short2;
+import android.renderscript.Short3;
+import android.renderscript.Short4;
+
+import android.renderscript.Matrix4f;
+
+import android.renderscript.Type;
+
+import android.renderscript.ScriptGroup;
+
+import android.renderscript.ScriptIntrinsicBlend;
+import android.renderscript.ScriptIntrinsicBlur;
+import android.renderscript.ScriptIntrinsicColorMatrix;
+import android.renderscript.ScriptIntrinsicConvolve3x3;
+import android.renderscript.ScriptIntrinsicConvolve5x5;
+import android.renderscript.ScriptIntrinsicLUT;
+
+import com.android.cts.stub.R;
+
+public class ImageProcessingTest extends RSBaseCompute {
+    private Allocation a1, a2;
+
+    private final int MAX_RADIUS = 25;
+    private final int dimX = 256;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+
+        Type t = new Type.Builder(mRS, Element.U8_4(mRS)).setX(dimX).setY(dimX).create();
+        a1 = Allocation.createTyped(mRS, t);
+        a2 = Allocation.createTyped(mRS, t);
+    }
+
+    public void testBlur() {
+        ScriptIntrinsicBlur mBlur;
+        mBlur = ScriptIntrinsicBlur.create(mRS, Element.U8_4(mRS));
+
+        Allocation a1_copy, a2_copy;
+        a1_copy = Allocation.createTyped(mRS, a1.getType());
+        a2_copy = Allocation.createTyped(mRS, a2.getType());
+
+        for (int i = 1; i < MAX_RADIUS; i++) {
+
+            a1_copy.copy2DRangeFrom(0, 0, a1.getType().getX(), a1.getType().getY(), a1, 0, 0);
+
+            mBlur.setRadius(i);
+            mBlur.setInput(a1_copy);
+
+            mBlur.forEach(a2_copy);
+
+            // validate
+
+        }
+
+    }
+
+    public void testBlend() {
+        ScriptIntrinsicBlend mBlend;
+        mBlend = ScriptIntrinsicBlend.create(mRS, Element.U8_4(mRS));
+
+        Allocation a1_copy, a2_copy;
+        a1_copy = Allocation.createTyped(mRS, a1.getType());
+        a2_copy = Allocation.createTyped(mRS, a2.getType());
+
+        for (int i = 0; i < 14; i++) {
+
+            a1_copy.copy2DRangeFrom(0, 0, a1.getType().getX(), a1.getType().getY(), a1, 0, 0);
+            a2_copy.copy2DRangeFrom(0, 0, a2.getType().getX(), a2.getType().getY(), a2, 0, 0);
+
+            switch (i) {
+            case 0:
+                mBlend.forEachSrc(a1_copy, a2_copy);
+                break;
+            case 1:
+                mBlend.forEachDst(a1_copy, a2_copy);
+                break;
+            case 2:
+                mBlend.forEachSrcOver(a1_copy, a2_copy);
+                break;
+            case 3:
+                mBlend.forEachDstOver(a1_copy, a2_copy);
+                break;
+            case 4:
+                mBlend.forEachSrcIn(a1_copy, a2_copy);
+                break;
+            case 5:
+                mBlend.forEachDstIn(a1_copy, a2_copy);
+                break;
+            case 6:
+                mBlend.forEachSrcOut(a1_copy, a2_copy);
+                break;
+            case 7:
+                mBlend.forEachDstOut(a1_copy, a2_copy);
+                break;
+            case 8:
+                mBlend.forEachSrcAtop(a1_copy, a2_copy);
+                break;
+            case 9:
+                mBlend.forEachDstAtop(a1_copy, a2_copy);
+                break;
+            case 10:
+                mBlend.forEachXor(a1_copy, a2_copy);
+                break;
+            case 11:
+                mBlend.forEachAdd(a1_copy, a2_copy);
+                break;
+            case 12:
+                mBlend.forEachSubtract(a1_copy, a2_copy);
+                break;
+            case 13:
+                mBlend.forEachMultiply(a1_copy, a2_copy);
+                break;
+            }
+
+            // validate
+
+        }
+
+    }
+
+    public void testColorMatrix() {
+        ScriptIntrinsicColorMatrix mColorMatrix;
+        mColorMatrix = ScriptIntrinsicColorMatrix.create(mRS, Element.U8_4(mRS));
+
+        Allocation a1_copy, a2_copy;
+        a1_copy = Allocation.createTyped(mRS, a1.getType());
+        a2_copy = Allocation.createTyped(mRS, a2.getType());
+
+        Matrix4f m = new Matrix4f();
+        m.set(1, 0, 0.2f);
+        m.set(1, 1, 0.9f);
+        m.set(1, 2, 0.2f);
+
+        //test greyscale
+        mColorMatrix.setGreyscale();
+
+        a1_copy.copy2DRangeFrom(0, 0, a1.getType().getX(), a1.getType().getY(), a1, 0, 0);
+        a2_copy.copy2DRangeFrom(0, 0, a2.getType().getX(), a2.getType().getY(), a2, 0, 0);
+
+        mColorMatrix.forEach(a1_copy, a2_copy);
+
+        //validate greyscale
+
+
+        //test color matrix
+        mColorMatrix.setColorMatrix(m);
+
+        a1_copy.copy2DRangeFrom(0, 0, a1.getType().getX(), a1.getType().getY(), a1, 0, 0);
+        a2_copy.copy2DRangeFrom(0, 0, a2.getType().getX(), a2.getType().getY(), a2, 0, 0);
+
+        mColorMatrix.forEach(a1_copy, a2_copy);
+
+        //validate color matrix
+
+
+    }
+
+
+    public void testConvolve3x3() {
+        ScriptIntrinsicConvolve3x3 mConvolve3x3;
+        mConvolve3x3 = ScriptIntrinsicConvolve3x3.create(mRS, Element.U8_4(mRS));
+
+        Allocation a1_copy, a2_copy;
+        a1_copy = Allocation.createTyped(mRS, a1.getType());
+        a2_copy = Allocation.createTyped(mRS, a2.getType());
+
+        a1_copy.copy2DRangeFrom(0, 0, a1.getType().getX(), a1.getType().getY(), a1, 0, 0);
+
+        float f[] = new float[9];
+        f[0] =  0.f;    f[1] = -1.f;    f[2] =  0.f;
+        f[3] = -1.f;    f[4] =  5.f;    f[5] = -1.f;
+        f[6] =  0.f;    f[7] = -1.f;    f[8] =  0.f;
+
+        mConvolve3x3.setCoefficients(f);
+        mConvolve3x3.setInput(a1_copy);
+        mConvolve3x3.forEach(a2_copy);
+
+        // validate
+
+    }
+
+    public void testConvolve5x5() {
+        ScriptIntrinsicConvolve5x5 mConvolve5x5;
+        mConvolve5x5 = ScriptIntrinsicConvolve5x5.create(mRS, Element.U8_4(mRS));
+
+        Allocation a1_copy, a2_copy;
+        a1_copy = Allocation.createTyped(mRS, a1.getType());
+        a2_copy = Allocation.createTyped(mRS, a2.getType());
+
+        a1_copy.copy2DRangeFrom(0, 0, a1.getType().getX(), a1.getType().getY(), a1, 0, 0);
+
+        float f[] = new float[25];
+        f[0] = -1.f; f[1] = -3.f; f[2] = -4.f; f[3] = -3.f; f[4] = -1.f;
+        f[5] = -3.f; f[6] =  0.f; f[7] =  6.f; f[8] =  0.f; f[9] = -3.f;
+        f[10]= -4.f; f[11]=  6.f; f[12]= 20.f; f[13]=  6.f; f[14]= -4.f;
+        f[15]= -3.f; f[16]=  0.f; f[17]=  6.f; f[18]=  0.f; f[19]= -3.f;
+        f[20]= -1.f; f[21]= -3.f; f[22]= -4.f; f[23]= -3.f; f[24]= -1.f;
+
+        mConvolve5x5.setCoefficients(f);
+        mConvolve5x5.setInput(a1_copy);
+        mConvolve5x5.forEach(a2_copy);
+
+        // validate
+
+    }
+
+    public void testLUT() {
+        ScriptIntrinsicLUT mLUT;
+        mLUT = ScriptIntrinsicLUT.create(mRS, Element.U8_4(mRS));
+
+        Allocation a1_copy, a2_copy;
+        a1_copy = Allocation.createTyped(mRS, a1.getType());
+        a2_copy = Allocation.createTyped(mRS, a2.getType());
+
+        a1_copy.copy2DRangeFrom(0, 0, a1.getType().getX(), a1.getType().getY(), a1, 0, 0);
+
+        for (int ct=0; ct < 256; ct++) {
+            float f = ((float)ct) / 255.f;
+
+            float r = f;
+            if (r < 0.5f) {
+                r = 4.0f * r * r * r;
+            } else {
+                r = 1.0f - r;
+                r = 1.0f - (4.0f * r * r * r);
+            }
+            mLUT.setRed(ct, (int)(r * 255.f + 0.5f));
+
+            float g = f;
+            if (g < 0.5f) {
+                g = 2.0f * g * g;
+            } else {
+                g = 1.0f - g;
+                g = 1.0f - (2.0f * g * g);
+            }
+            mLUT.setGreen(ct, (int)(g * 255.f + 0.5f));
+
+            float b = f * 0.5f + 0.25f;
+            mLUT.setBlue(ct, (int)(b * 255.f + 0.5f));
+        }
+
+        mLUT.forEach(a1_copy, a2_copy);
+
+        // validate
+
+    }
+
+    public void testScriptGroup() {
+        ScriptGroup group;
+
+        ScriptIntrinsicConvolve3x3 mConvolve3x3;
+        ScriptIntrinsicColorMatrix mColorMatrix;
+
+        mConvolve3x3 = ScriptIntrinsicConvolve3x3.create(mRS, Element.U8_4(mRS));
+        mColorMatrix = ScriptIntrinsicColorMatrix.create(mRS, Element.U8_4(mRS));
+
+        Allocation a1_copy, a2_copy;
+        a1_copy = Allocation.createTyped(mRS, a1.getType());
+        a2_copy = Allocation.createTyped(mRS, a2.getType());
+
+        a1_copy.copy2DRangeFrom(0, 0, a1.getType().getX(), a1.getType().getY(), a1, 0, 0);
+
+        float f[] = new float[9];
+        f[0] =  0.f;    f[1] = -1.f;    f[2] =  0.f;
+        f[3] = -1.f;    f[4] =  5.f;    f[5] = -1.f;
+        f[6] =  0.f;    f[7] = -1.f;    f[8] =  0.f;
+
+        mConvolve3x3.setCoefficients(f);
+
+        Matrix4f m = new Matrix4f();
+        m.set(1, 0, 0.2f);
+        m.set(1, 1, 0.9f);
+        m.set(1, 2, 0.2f);
+        mColorMatrix.setColorMatrix(m);
+
+        Type connect = new Type.Builder(mRS, Element.U8_4(mRS)).setX(dimX).setY(dimX).create();
+
+        ScriptGroup.Builder b = new ScriptGroup.Builder(mRS);
+        b.addKernel(mConvolve3x3.getKernelID());
+        b.addKernel(mColorMatrix.getKernelID());
+        b.addConnection(connect, mConvolve3x3.getKernelID(), mColorMatrix.getKernelID());
+        group = b.create();
+
+        mConvolve3x3.setInput(a1_copy);
+        group.setOutput(mColorMatrix.getKernelID(), a2_copy);
+        group.execute();
+
+        // validate
+
+    }
+
+
+}
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/KernelTest.java b/tests/tests/renderscript/src/android/renderscript/cts/KernelTest.java
index 7caacfc..56b5e89 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/KernelTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/KernelTest.java
@@ -471,6 +471,7 @@
         typeBuilder.setX(X).setY(Y);
         Allocation A = Allocation.createTyped(mRS, typeBuilder.create());
         s.bind_a(A);
+        s.set_aRaw(A);
         s.forEach_root(A);
         s.invoke_verify_root();
         s.forEach_foo(A, A);
@@ -491,6 +492,7 @@
         typeBuilder.setX(X).setY(Y);
         Allocation A = Allocation.createTyped(mRS, typeBuilder.create());
         s.bind_a(A);
+        s.set_aRaw(A);
         s.forEach_foo(A, A);
         s.invoke_verify_foo();
         s.invoke_noroot_test();
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/SampleTest.java b/tests/tests/renderscript/src/android/renderscript/cts/SampleTest.java
index 75fc599..3c8650d 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/SampleTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/SampleTest.java
@@ -71,6 +71,9 @@
 
     public void testNearest() {
         mScript.invoke_test_RGBA(mAlloc_RGBA_1D, mAlloc_RGBA_2D);
+        mRS.finish();
+        checkForErrors();
+        waitForMessage();
     }
 }
 
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/SamplerTest.java b/tests/tests/renderscript/src/android/renderscript/cts/SamplerTest.java
index 35e813e..6f00e55 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/SamplerTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/SamplerTest.java
@@ -19,7 +19,7 @@
 import android.renderscript.Sampler;
 import android.renderscript.Sampler.Value;
 
-public class SamplerTest extends RSBaseGraphics {
+public class SamplerTest extends RSBaseCompute {
 
     Sampler.Value[] mMinValues;
     Sampler.Value[] mMagValues;
@@ -115,6 +115,9 @@
         assertTrue(Sampler.WRAP_LINEAR(mRS) != null);
         assertTrue(Sampler.WRAP_LINEAR_MIP_LINEAR(mRS) != null);
         assertTrue(Sampler.WRAP_NEAREST(mRS) != null);
+        assertTrue(Sampler.MIRRORED_REPEAT_NEAREST(mRS) != null);
+        assertTrue(Sampler.MIRRORED_REPEAT_LINEAR(mRS) != null);
+        assertTrue(Sampler.MIRRORED_REPEAT_LINEAR_MIP_LINEAR(mRS) != null);
     }
 
     public void testSamplerValue() {
@@ -124,9 +127,10 @@
         assertEquals(Value.LINEAR_MIP_NEAREST, Value.valueOf("LINEAR_MIP_NEAREST"));
         assertEquals(Value.WRAP, Value.valueOf("WRAP"));
         assertEquals(Value.CLAMP, Value.valueOf("CLAMP"));
+        assertEquals(Value.MIRRORED_REPEAT, Value.valueOf("MIRRORED_REPEAT"));
 
         // Make sure no new enums are added
-        assertEquals(6, Value.values().length);
+        assertEquals(7, Value.values().length);
     }
 }
 
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_11.java b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_11.java
index 6ad1748..a16059a 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_11.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_11.java
@@ -27,7 +27,16 @@
  * @hide
  */
 public class ScriptC_set_target_api_11 extends ScriptC {
+    private static final String __rs_resource_name = "set_target_api_11";
     // Constructor
+    public  ScriptC_set_target_api_11(RenderScript rs) {
+        this(rs,
+             rs.getApplicationContext().getResources(),
+             rs.getApplicationContext().getResources().getIdentifier(
+                 __rs_resource_name, "raw",
+                 rs.getApplicationContext().getPackageName()));
+    }
+
     public  ScriptC_set_target_api_11(RenderScript rs, Resources resources, int id) {
         super(rs, resources, id);
     }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_12.java b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_12.java
index dc772d5..5c31f94 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_12.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_12.java
@@ -27,7 +27,16 @@
  * @hide
  */
 public class ScriptC_set_target_api_12 extends ScriptC {
+    private static final String __rs_resource_name = "set_target_api_12";
     // Constructor
+    public  ScriptC_set_target_api_12(RenderScript rs) {
+        this(rs,
+             rs.getApplicationContext().getResources(),
+             rs.getApplicationContext().getResources().getIdentifier(
+                 __rs_resource_name, "raw",
+                 rs.getApplicationContext().getPackageName()));
+    }
+
     public  ScriptC_set_target_api_12(RenderScript rs, Resources resources, int id) {
         super(rs, resources, id);
     }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_13.java b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_13.java
index e1580e4..e12bf00 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_13.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_13.java
@@ -27,7 +27,16 @@
  * @hide
  */
 public class ScriptC_set_target_api_13 extends ScriptC {
+    private static final String __rs_resource_name = "set_target_api_13";
     // Constructor
+    public  ScriptC_set_target_api_13(RenderScript rs) {
+        this(rs,
+             rs.getApplicationContext().getResources(),
+             rs.getApplicationContext().getResources().getIdentifier(
+                 __rs_resource_name, "raw",
+                 rs.getApplicationContext().getPackageName()));
+    }
+
     public  ScriptC_set_target_api_13(RenderScript rs, Resources resources, int id) {
         super(rs, resources, id);
     }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_14.java b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_14.java
index 42d08c6..97879a5 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_14.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_14.java
@@ -27,7 +27,16 @@
  * @hide
  */
 public class ScriptC_set_target_api_14 extends ScriptC {
+    private static final String __rs_resource_name = "set_target_api_14";
     // Constructor
+    public  ScriptC_set_target_api_14(RenderScript rs) {
+        this(rs,
+             rs.getApplicationContext().getResources(),
+             rs.getApplicationContext().getResources().getIdentifier(
+                 __rs_resource_name, "raw",
+                 rs.getApplicationContext().getPackageName()));
+    }
+
     public  ScriptC_set_target_api_14(RenderScript rs, Resources resources, int id) {
         super(rs, resources, id);
     }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_15.java b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_15.java
index 6acfede..636a128 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_15.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_15.java
@@ -27,7 +27,16 @@
  * @hide
  */
 public class ScriptC_set_target_api_15 extends ScriptC {
+    private static final String __rs_resource_name = "set_target_api_15";
     // Constructor
+    public  ScriptC_set_target_api_15(RenderScript rs) {
+        this(rs,
+             rs.getApplicationContext().getResources(),
+             rs.getApplicationContext().getResources().getIdentifier(
+                 __rs_resource_name, "raw",
+                 rs.getApplicationContext().getPackageName()));
+    }
+
     public  ScriptC_set_target_api_15(RenderScript rs, Resources resources, int id) {
         super(rs, resources, id);
     }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_16.java b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_16.java
index f111005..435316f 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_16.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_16.java
@@ -27,7 +27,16 @@
  * @hide
  */
 public class ScriptC_set_target_api_16 extends ScriptC {
+    private static final String __rs_resource_name = "set_target_api_16";
     // Constructor
+    public  ScriptC_set_target_api_16(RenderScript rs) {
+        this(rs,
+             rs.getApplicationContext().getResources(),
+             rs.getApplicationContext().getResources().getIdentifier(
+                 __rs_resource_name, "raw",
+                 rs.getApplicationContext().getPackageName()));
+    }
+
     public  ScriptC_set_target_api_16(RenderScript rs, Resources resources, int id) {
         super(rs, resources, id);
     }
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_17.java b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_17.java
new file mode 100644
index 0000000..c706ca6
--- /dev/null
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_17.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2011-2012 The Android Open Source Project
+ *
+ * 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.
+ */
+
+/*
+ * This file is auto-generated. DO NOT MODIFY!
+ * The source Renderscript file: set_target_api_17.rs
+ */
+package android.renderscript.cts;
+
+import android.renderscript.*;
+import android.content.res.Resources;
+
+/**
+ * @hide
+ */
+public class ScriptC_set_target_api_17 extends ScriptC {
+    private static final String __rs_resource_name = "set_target_api_17";
+    // Constructor
+    public  ScriptC_set_target_api_17(RenderScript rs) {
+        this(rs,
+             rs.getApplicationContext().getResources(),
+             rs.getApplicationContext().getResources().getIdentifier(
+                 __rs_resource_name, "raw",
+                 rs.getApplicationContext().getPackageName()));
+    }
+
+    public  ScriptC_set_target_api_17(RenderScript rs, Resources resources, int id) {
+        super(rs, resources, id);
+    }
+
+    private final static int mExportFuncIdx_check = 0;
+    public void invoke_check(int version) {
+        FieldPacker check_fp = new FieldPacker(4);
+        check_fp.addI32(version);
+        invoke(mExportFuncIdx_check, check_fp);
+    }
+
+}
+
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_too_high.java b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_too_high.java
new file mode 100644
index 0000000..f54ab46
--- /dev/null
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ScriptC_set_target_api_too_high.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2011-2012 The Android Open Source Project
+ *
+ * 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.
+ */
+
+/*
+ * This file is auto-generated. DO NOT MODIFY!
+ * The source Renderscript file: set_target_api_16.rs
+ */
+package android.renderscript.cts;
+
+import android.renderscript.*;
+import android.content.res.Resources;
+
+/**
+ * @hide
+ */
+public class ScriptC_set_target_api_too_high extends ScriptC {
+    private static final String __rs_resource_name = "set_target_api_too_high";
+    // Constructor
+    public  ScriptC_set_target_api_too_high(RenderScript rs) {
+        this(rs,
+             rs.getApplicationContext().getResources(),
+             rs.getApplicationContext().getResources().getIdentifier(
+                 __rs_resource_name, "raw",
+                 rs.getApplicationContext().getPackageName()));
+    }
+
+    public  ScriptC_set_target_api_too_high(RenderScript rs, Resources resources, int id) {
+        super(rs, resources, id);
+    }
+
+    private final static int mExportFuncIdx_check = 0;
+    public void invoke_check(int version) {
+        FieldPacker check_fp = new FieldPacker(4);
+        check_fp.addI32(version);
+        invoke(mExportFuncIdx_check, check_fp);
+    }
+
+}
+
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ScriptGroupTest.java b/tests/tests/renderscript/src/android/renderscript/cts/ScriptGroupTest.java
index e73195c..64496ef 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ScriptGroupTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ScriptGroupTest.java
@@ -262,7 +262,6 @@
         compare.forEach_compare(out);
         compare.forEach_getCompareResult(resultAlloc);
         resultAlloc.copyTo(result);
-        Log.e("ARGH", "result = " + result[0]);
         assertTrue(result[0] == 2);
     }
 
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/VersionTest.java b/tests/tests/renderscript/src/android/renderscript/cts/VersionTest.java
index 6c9e7e9..c3966a9 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/VersionTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/VersionTest.java
@@ -17,6 +17,7 @@
 package android.renderscript.cts;
 
 import android.renderscript.RenderScript.RSMessageHandler;
+import android.renderscript.RSRuntimeException;
 import com.android.cts.stub.R;
 
 /**
@@ -82,4 +83,26 @@
         waitForMessage();
         checkForErrors();
     }
+
+    public void testVersion17() {
+        ScriptC_set_target_api_17 test17 =
+                new ScriptC_set_target_api_17(mRS,
+                                              mRes,
+                                              R.raw.set_target_api_17);
+        test17.invoke_check(17);
+        waitForMessage();
+        checkForErrors();
+    }
+
+    public void testVersion_too_high() {
+        try {
+            ScriptC_set_target_api_too_high test_too_high =
+                    new ScriptC_set_target_api_too_high(mRS,
+                                                        mRes,
+                                                        R.raw.set_target_api_too_high);
+            fail("should throw RSRuntimeException");
+        } catch (RSRuntimeException e) {
+        }
+        checkForErrors();
+    }
 }
diff --git a/suite/pts/hostTests/uihost/control/Android.mk b/tests/tests/rsg/Android.mk
similarity index 64%
copy from suite/pts/hostTests/uihost/control/Android.mk
copy to tests/tests/rsg/Android.mk
index 86ceb7c..9ff554c 100644
--- a/suite/pts/hostTests/uihost/control/Android.mk
+++ b/tests/tests/rsg/Android.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2012 The Android Open Source Project
+# Copyright (C) 2011 The Android Open Source Project
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -13,21 +13,27 @@
 # limitations under the License.
 
 LOCAL_PATH:= $(call my-dir)
+
 include $(CLEAR_VARS)
 
-# don't include this package in any target
+# Replace "Example" with your name.
+LOCAL_PACKAGE_NAME := CtsRenderscriptGraphicsTestCases
+
+# Don't include this package in any target.
 LOCAL_MODULE_TAGS := optional
 
+# When built, explicitly put it in the data partition.
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
 
+# All tests should include android.test.runner.
 LOCAL_JAVA_LIBRARIES := android.test.runner
 
-LOCAL_STATIC_JAVA_LIBRARIES := ptsutil ctsutil ctstestrunner
+LOCAL_STATIC_JAVA_LIBRARIES := ctstestrunner
 
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
-LOCAL_PACKAGE_NAME := PtsDeviceTaskswitchingControl
+LOCAL_INSTRUMENTATION_FOR := CtsTestStubs
 
-LOCAL_SDK_VERSION := 16
+LOCAL_SDK_VERSION := 17
 
-include $(BUILD_PTS_PACKAGE)
+include $(BUILD_CTS_PACKAGE)
diff --git a/suite/pts/hostTests/browser/browserlauncher/AndroidManifest.xml b/tests/tests/rsg/AndroidManifest.xml
similarity index 69%
copy from suite/pts/hostTests/browser/browserlauncher/AndroidManifest.xml
copy to tests/tests/rsg/AndroidManifest.xml
index 1950c84..886a395 100644
--- a/suite/pts/hostTests/browser/browserlauncher/AndroidManifest.xml
+++ b/tests/tests/rsg/AndroidManifest.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
+<!-- Copyright (C) 2011 The Android Open Source Project
 
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
@@ -14,16 +14,22 @@
      limitations under the License.
 -->
 
+<!-- Replace all the "example" stuff below with your package name, and
+     remove this comment.
+-->
+
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.android.pts.browser">
+    package="com.android.cts.renderscriptgraphics">
 
     <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-
     <application>
         <uses-library android:name="android.test.runner" />
     </application>
+
+    <!-- This is a self-instrumenting test package. -->
     <instrumentation android:name="android.test.InstrumentationCtsTestRunner"
-            android:targetPackage="com.android.pts.browser" />
+                     android:targetPackage="com.android.cts.stub"
+                     android:label="CTS tests of Renderscript Graphics component"/>
+
 </manifest>
+
diff --git a/tests/tests/rsg/src/android/renderscriptgraphics/cts/BaseObjTest.java b/tests/tests/rsg/src/android/renderscriptgraphics/cts/BaseObjTest.java
new file mode 100644
index 0000000..7773dda
--- /dev/null
+++ b/tests/tests/rsg/src/android/renderscriptgraphics/cts/BaseObjTest.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.renderscriptgraphics.cts;
+
+import android.renderscript.BaseObj;
+import android.renderscript.Font;
+import android.renderscript.Font.Style;
+import android.renderscript.RSIllegalArgumentException;
+
+public class BaseObjTest extends RSBaseGraphics {
+
+    public void testBaseObj() {
+        Style S = Font.Style.NORMAL;
+        Font F = Font.create(mRS, mRes, "sans-serif", S, 8);
+        assertTrue(F != null);
+        BaseObj B = F;
+        B.setName("sans-serif");
+        try {
+            B.setName("sans-serif");
+            fail("set name twice for a BaseObj");
+        } catch (RSIllegalArgumentException e) {
+        }
+        B.destroy();
+
+        F = Font.create(mRS, mRes, "serif", S, 8);
+        assertTrue(F != null);
+        B = F;
+        try {
+            B.setName("");
+            fail("set empty name for a BaseObj");
+        } catch (RSIllegalArgumentException e) {
+        }
+        B.setName("serif");
+        B.destroy();
+
+        F = Font.create(mRS, mRes, "mono", S, 8);
+        assertTrue(F != null);
+        B = F;
+        try {
+            B.setName(null);
+            fail("set name as null string reference for a BaseObj");
+        } catch (RSIllegalArgumentException e) {
+        }
+        B.setName("mono");
+        B.destroy();
+    }
+}
+
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ContextCreationTest.java b/tests/tests/rsg/src/android/renderscriptgraphics/cts/ContextCreationTest.java
similarity index 98%
rename from tests/tests/renderscript/src/android/renderscript/cts/ContextCreationTest.java
rename to tests/tests/rsg/src/android/renderscriptgraphics/cts/ContextCreationTest.java
index 1edce0a..11b999c 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ContextCreationTest.java
+++ b/tests/tests/rsg/src/android/renderscriptgraphics/cts/ContextCreationTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.renderscript.cts;
+package android.renderscriptgraphics.cts;
 
 import android.renderscript.*;
 import android.test.ActivityInstrumentationTestCase2;
@@ -48,7 +48,7 @@
         super.setUp();
         mActivity = getActivity();
     }
-    
+
     @Override
     protected void tearDown() throws Exception {
         mActivity.destroyAll();
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/FileA3DTest.java b/tests/tests/rsg/src/android/renderscriptgraphics/cts/FileA3DTest.java
similarity index 98%
rename from tests/tests/renderscript/src/android/renderscript/cts/FileA3DTest.java
rename to tests/tests/rsg/src/android/renderscriptgraphics/cts/FileA3DTest.java
index ca2bb38..510a3c5 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/FileA3DTest.java
+++ b/tests/tests/rsg/src/android/renderscriptgraphics/cts/FileA3DTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.renderscript.cts;
+package android.renderscriptgraphics.cts;
 
 import java.io.File;
 
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/FontTest.java b/tests/tests/rsg/src/android/renderscriptgraphics/cts/FontTest.java
similarity index 98%
rename from tests/tests/renderscript/src/android/renderscript/cts/FontTest.java
rename to tests/tests/rsg/src/android/renderscriptgraphics/cts/FontTest.java
index a3e4da0..43b9662 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/FontTest.java
+++ b/tests/tests/rsg/src/android/renderscriptgraphics/cts/FontTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.renderscript.cts;
+package android.renderscriptgraphics.cts;
 
 import java.io.File;
 import com.android.cts.stub.R;
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/MeshTest.java b/tests/tests/rsg/src/android/renderscriptgraphics/cts/MeshTest.java
similarity index 99%
rename from tests/tests/renderscript/src/android/renderscript/cts/MeshTest.java
rename to tests/tests/rsg/src/android/renderscriptgraphics/cts/MeshTest.java
index ffa733a..9b7eb99 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/MeshTest.java
+++ b/tests/tests/rsg/src/android/renderscriptgraphics/cts/MeshTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.renderscript.cts;
+package android.renderscriptgraphics.cts;
 
 import android.renderscript.Allocation;
 import android.renderscript.Element;
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ProgramFragmentFixedFunctionTest.java b/tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramFragmentFixedFunctionTest.java
similarity index 98%
rename from tests/tests/renderscript/src/android/renderscript/cts/ProgramFragmentFixedFunctionTest.java
rename to tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramFragmentFixedFunctionTest.java
index ac54b74..29824d1 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ProgramFragmentFixedFunctionTest.java
+++ b/tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramFragmentFixedFunctionTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.renderscript.cts;
+package android.renderscriptgraphics.cts;
 
 import com.android.cts.stub.R;
 import android.renderscript.Element;
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ProgramFragmentTest.java b/tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramFragmentTest.java
similarity index 99%
rename from tests/tests/renderscript/src/android/renderscript/cts/ProgramFragmentTest.java
rename to tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramFragmentTest.java
index 9a71386..ef6ad18 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ProgramFragmentTest.java
+++ b/tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramFragmentTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.renderscript.cts;
+package android.renderscriptgraphics.cts;
 
 import com.android.cts.stub.R;
 
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ProgramRasterTest.java b/tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramRasterTest.java
similarity index 97%
rename from tests/tests/renderscript/src/android/renderscript/cts/ProgramRasterTest.java
rename to tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramRasterTest.java
index befa926..e752d39 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ProgramRasterTest.java
+++ b/tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramRasterTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.renderscript.cts;
+package android.renderscriptgraphics.cts;
 
 import android.renderscript.ProgramRaster;
 import android.renderscript.ProgramRaster.Builder;
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ProgramStoreTest.java b/tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramStoreTest.java
similarity index 98%
rename from tests/tests/renderscript/src/android/renderscript/cts/ProgramStoreTest.java
rename to tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramStoreTest.java
index b7f5eff..e42f6fe 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ProgramStoreTest.java
+++ b/tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramStoreTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.renderscript.cts;
+package android.renderscriptgraphics.cts;
 
 import android.renderscript.ProgramStore;
 import android.renderscript.ProgramStore.DepthFunc;
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ProgramVertexFixedFunctionTest.java b/tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramVertexFixedFunctionTest.java
similarity index 98%
rename from tests/tests/renderscript/src/android/renderscript/cts/ProgramVertexFixedFunctionTest.java
rename to tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramVertexFixedFunctionTest.java
index 0adab9a..a50a9d5 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ProgramVertexFixedFunctionTest.java
+++ b/tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramVertexFixedFunctionTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.renderscript.cts;
+package android.renderscriptgraphics.cts;
 
 import com.android.cts.stub.R;
 
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ProgramVertexTest.java b/tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramVertexTest.java
similarity index 99%
rename from tests/tests/renderscript/src/android/renderscript/cts/ProgramVertexTest.java
rename to tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramVertexTest.java
index 3c2c188..7f23bd0 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ProgramVertexTest.java
+++ b/tests/tests/rsg/src/android/renderscriptgraphics/cts/ProgramVertexTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.renderscript.cts;
+package android.renderscriptgraphics.cts;
 
 import com.android.cts.stub.R;
 
diff --git a/tests/tests/rsg/src/android/renderscriptgraphics/cts/RSBase.java b/tests/tests/rsg/src/android/renderscriptgraphics/cts/RSBase.java
new file mode 100644
index 0000000..7729e1e
--- /dev/null
+++ b/tests/tests/rsg/src/android/renderscriptgraphics/cts/RSBase.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2011-2012 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.renderscriptgraphics.cts;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.renderscript.RenderScript.RSErrorHandler;
+import android.renderscript.RenderScript.RSMessageHandler;
+import android.renderscript.RSRuntimeException;
+import android.test.AndroidTestCase;
+import android.util.Log;
+
+/**
+ * Base RenderScript test class. This class provides a message handler and a
+ * convenient way to wait for compute scripts to complete their execution.
+ */
+class RSBase extends AndroidTestCase {
+
+    Context mCtx;
+    Resources mRes;
+
+    private int result;
+    private boolean msgHandled;
+
+    private static final int RS_MSG_TEST_PASSED = 100;
+    private static final int RS_MSG_TEST_FAILED = 101;
+
+    RSMessageHandler mRsMessage = new RSMessageHandler() {
+        public void run() {
+            if (result == 0) {
+                switch (mID) {
+                    case RS_MSG_TEST_PASSED:
+                    case RS_MSG_TEST_FAILED:
+                        result = mID;
+                        break;
+                    default:
+                        fail("Got unexpected RS message");
+                        return;
+                }
+            }
+            msgHandled = true;
+        }
+    };
+
+    protected void waitForMessage() {
+        while (!msgHandled) {
+            Thread.yield();
+        }
+    }
+
+    protected boolean FoundError = false;
+    protected RSErrorHandler mRsError = new RSErrorHandler() {
+        public void run() {
+            FoundError = true;
+            Log.e("RenderscriptCTS", mErrorMessage);
+            throw new RSRuntimeException("Received error " + mErrorNum +
+                                         " message " + mErrorMessage);
+        }
+    };
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        result = 0;
+        msgHandled = false;
+        mCtx = getContext();
+        mRes = mCtx.getResources();
+    }
+
+    /**
+     * Verify that we didn't fail on the control or script side of things.
+     */
+    protected void checkForErrors() {
+        assertFalse(FoundError);
+        assertTrue(result != RS_MSG_TEST_FAILED);
+    }
+}
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/RSBaseGraphics.java b/tests/tests/rsg/src/android/renderscriptgraphics/cts/RSBaseGraphics.java
similarity index 96%
rename from tests/tests/renderscript/src/android/renderscript/cts/RSBaseGraphics.java
rename to tests/tests/rsg/src/android/renderscriptgraphics/cts/RSBaseGraphics.java
index 986a50d..65ba926 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/RSBaseGraphics.java
+++ b/tests/tests/rsg/src/android/renderscriptgraphics/cts/RSBaseGraphics.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.renderscript.cts;
+package android.renderscriptgraphics.cts;
 
 import android.renderscript.RenderScriptGL;
 import android.renderscript.RenderScriptGL.SurfaceConfig;
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/RSSurfaceViewTest.java b/tests/tests/rsg/src/android/renderscriptgraphics/cts/RSSurfaceViewTest.java
similarity index 97%
rename from tests/tests/renderscript/src/android/renderscript/cts/RSSurfaceViewTest.java
rename to tests/tests/rsg/src/android/renderscriptgraphics/cts/RSSurfaceViewTest.java
index 9cf8f65..4d46d8d 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/RSSurfaceViewTest.java
+++ b/tests/tests/rsg/src/android/renderscriptgraphics/cts/RSSurfaceViewTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.renderscript.cts;
+package android.renderscriptgraphics.cts;
 
 import android.renderscript.RSSurfaceView;
 import android.renderscript.RenderScriptGL;
diff --git a/tests/src/android/renderscript/cts/RenderscriptGLStubActivity.java b/tests/tests/rsg/src/android/renderscriptgraphics/cts/RenderscriptGLStubActivity.java
similarity index 98%
rename from tests/src/android/renderscript/cts/RenderscriptGLStubActivity.java
rename to tests/tests/rsg/src/android/renderscriptgraphics/cts/RenderscriptGLStubActivity.java
index d6d05ac..bddde03 100644
--- a/tests/src/android/renderscript/cts/RenderscriptGLStubActivity.java
+++ b/tests/tests/rsg/src/android/renderscriptgraphics/cts/RenderscriptGLStubActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.renderscript.cts;
+package android.renderscriptgraphics.cts;
 
 import android.app.Activity;
 import android.os.Bundle;
@@ -112,7 +112,7 @@
         setContentView(mView);
         oldView.forceDestroy();
     }
-    
+
     public void destroyAll() {
         if (mView != null) {
             mView.forceDestroy();
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/SurfaceConfigTest.java b/tests/tests/rsg/src/android/renderscriptgraphics/cts/SurfaceConfigTest.java
similarity index 98%
rename from tests/tests/renderscript/src/android/renderscript/cts/SurfaceConfigTest.java
rename to tests/tests/rsg/src/android/renderscriptgraphics/cts/SurfaceConfigTest.java
index 94d784e..a402e8a 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/SurfaceConfigTest.java
+++ b/tests/tests/rsg/src/android/renderscriptgraphics/cts/SurfaceConfigTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.renderscript.cts;
+package android.renderscriptgraphics.cts;
 import android.test.AndroidTestCase;
 
 import android.renderscript.RSIllegalArgumentException;
diff --git a/tests/tests/security/src/android/security/cts/BannedFilesTest.java b/tests/tests/security/src/android/security/cts/BannedFilesTest.java
index 8b9003d..70f845e 100644
--- a/tests/tests/security/src/android/security/cts/BannedFilesTest.java
+++ b/tests/tests/security/src/android/security/cts/BannedFilesTest.java
@@ -28,6 +28,18 @@
 
 public class BannedFilesTest extends TestCase {
 
+    /**
+     * Detect devices vulnerable to the cmdclient privilege escalation bug.
+     *
+     * References:
+     *
+     * http://vulnfactory.org/blog/2012/02/18/xoom-fe-stupid-bugs-and-more-plagiarism/
+     * http://forum.xda-developers.com/showthread.php?t=1213014
+     */
+    public void testNoCmdClient() {
+        assertNotSetugid("/system/bin/cmdclient");
+    }
+
     public void testNoSyncAgent() {
         assertNotSetugid("/system/bin/sync_agent");
     }
@@ -124,7 +136,7 @@
         if (!FileUtils.getFileStatus(file, fs, false)) {
             return;
         }
-        assertTrue((fs.mode & FileUtils.S_ISUID) == 0);
-        assertTrue((fs.mode & FileUtils.S_ISGID) == 0);
+        assertTrue("File \"" + file + "\" is setUID", (fs.mode & FileUtils.S_ISUID) == 0);
+        assertTrue("File \"" + file + "\" is setGID", (fs.mode & FileUtils.S_ISGID) == 0);
     }
 }
diff --git a/tests/tests/security/src/android/security/cts/CertificateData.java b/tests/tests/security/src/android/security/cts/CertificateData.java
index 1714461..f2e2f8c 100644
--- a/tests/tests/security/src/android/security/cts/CertificateData.java
+++ b/tests/tests/security/src/android/security/cts/CertificateData.java
@@ -40,6 +40,7 @@
       "40:54:DA:6F:1C:3F:40:74:AC:ED:0F:EC:CD:DB:79:D1:53:FB:90:1D",
       "43:F9:B1:10:D5:BA:FD:48:22:52:31:B0:D0:08:2B:37:2F:EF:9A:54",
       "F4:8B:11:BF:DE:AB:BE:94:54:20:71:E6:41:DE:6B:BE:88:2B:40:B9",
+      "58:E8:AB:B0:36:15:33:FB:80:F7:9B:1B:6D:29:D3:FF:8D:5F:00:F0",
       "96:56:CD:7B:57:96:98:95:D0:E1:41:46:68:06:FB:B8:C6:11:06:87",
       "55:A6:72:3E:CB:F2:EC:CD:C3:23:74:70:19:9D:2A:BE:11:E3:81:D1",
       "D6:9B:56:11:48:F0:1C:77:C5:45:78:C1:09:26:DF:5B:85:69:76:AD",
@@ -48,6 +49,7 @@
       "AD:7E:1C:28:B0:64:EF:8F:60:03:40:20:14:C3:D0:E3:37:0E:B5:8A",
       "8D:17:84:D5:37:F3:03:7D:EC:70:FE:57:8B:51:9A:99:E6:10:D7:B0",
       "AE:50:83:ED:7C:F4:5C:BC:8F:61:C6:21:FE:68:5D:79:42:21:15:6E",
+      "DA:FA:F7:FA:66:84:EC:06:8F:14:50:BD:C7:C2:81:A5:BC:A9:64:57",
       "5F:4E:1F:CF:31:B7:91:3B:85:0B:54:F6:E5:FF:50:1A:2B:6F:C6:CF",
       "74:F8:A3:C3:EF:E7:B3:90:06:4B:83:90:3C:21:64:60:20:E5:DF:CE",
       "85:B5:FF:67:9B:0C:79:96:1F:C8:6E:44:22:00:46:13:DB:17:92:84",
@@ -61,9 +63,11 @@
       "59:AF:82:79:91:86:C7:B4:75:07:CB:CF:03:57:46:EB:04:DD:B7:16",
       "50:30:06:09:1D:97:D4:F5:AE:39:F7:CB:E7:92:7D:7D:65:2D:34:31",
       "1B:4B:39:61:26:27:6B:64:91:A2:68:6D:D7:02:43:21:2D:1F:1D:96",
+      "77:47:4F:C6:30:E4:0F:4C:47:64:3F:84:BA:B8:C6:95:4A:8A:41:EC",
       "8C:F4:27:FD:79:0C:3A:D1:66:06:8D:E8:1E:57:EF:BB:93:22:72:D4",
       "56:E0:FA:C0:3B:8F:18:23:55:18:E5:D3:11:CA:E8:C2:43:31:AB:66",
       "02:72:68:29:3E:5F:5D:17:AA:A4:B3:C3:E6:36:1E:1F:92:57:5E:AA",
+      "2F:78:3D:25:52:18:A7:4A:65:39:71:B5:2C:A2:9C:45:15:6F:E9:19",
       "97:81:79:50:D8:1C:96:70:CC:34:D8:09:CF:79:44:31:36:7E:F4:74",
       "85:A4:08:C0:9C:19:3E:5D:51:58:7D:CD:D6:13:30:FD:8C:DE:37:BF",
       "58:11:9F:0E:12:82:87:EA:50:FD:D9:87:45:6F:4F:78:DC:FA:D6:D4",
@@ -98,6 +102,7 @@
       "69:BD:8C:F4:9C:D3:00:FB:59:2E:17:93:CA:55:6A:F3:EC:AA:35:FB",
       "13:2D:0D:45:53:4B:69:97:CD:B2:D5:C3:39:E2:55:76:60:9B:5C:C6",
       "5F:B7:EE:06:33:E2:59:DB:AD:0C:4C:9A:E6:D3:8F:1A:61:C7:DC:25",
+      "49:0A:75:74:DE:87:0A:47:FE:58:EE:F6:C7:6B:EB:C6:0B:12:40:99",
       "25:01:90:19:CF:FB:D9:99:1C:B7:68:25:74:8D:94:5F:30:93:95:42",
       "79:98:A3:08:E1:4D:65:85:E6:C2:1E:15:3A:71:9F:BA:5A:D3:4A:D9",
       "B5:1C:06:7C:EE:2B:0C:3D:F8:55:AB:2D:92:F4:FE:39:D4:E7:0F:0E",
@@ -142,6 +147,7 @@
       "21:FC:BD:8E:7F:6C:AF:05:1B:D1:B3:43:EC:A8:E7:61:47:F2:0F:8A",
       "5F:3B:8C:F2:F8:10:B3:7D:78:B4:CE:EC:19:19:C3:73:34:B9:C7:74",
       "2A:C8:D5:8B:57:CE:BF:2F:49:AF:F2:FC:76:8F:51:14:62:90:7A:41",
+      "96:C9:1B:0B:95:B4:10:98:42:FA:D0:D8:22:79:FE:60:FA:B9:16:83",
       "CA:BB:51:67:24:00:58:8E:64:19:F1:D4:08:78:D0:40:3A:A2:02:64",
       "5D:98:9C:DB:15:96:11:36:51:65:64:1B:56:0F:DB:EA:2A:C2:3E:F1",
       "D8:A6:33:2C:E0:03:6F:B1:85:F6:63:4F:7D:6A:06:65:26:32:28:27",
diff --git a/tests/tests/security/src/android/security/cts/KernelSettingsTest.java b/tests/tests/security/src/android/security/cts/KernelSettingsTest.java
index bed5851..6928ee2 100644
--- a/tests/tests/security/src/android/security/cts/KernelSettingsTest.java
+++ b/tests/tests/security/src/android/security/cts/KernelSettingsTest.java
@@ -19,6 +19,7 @@
 import junit.framework.TestCase;
 
 import java.io.BufferedReader;
+import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.IOException;
@@ -102,6 +103,19 @@
     }
 
     /**
+     * Assert that the kernel config file is not compiled into the kernel.
+     *
+     * Compiling the config file into the kernel leaks the kernel base address
+     * via CONFIG_PHYS_OFFSET. It also wastes a small amount of valuable kernel memory.
+     */
+    public void testNoConfigGz() throws IOException {
+        assertFalse(
+                "/proc/config.gz is readable.  Please recompile your "
+                        + "kernel with CONFIG_IKCONFIG_PROC disabled",
+                new File("/proc/config.gz").exists());
+    }
+
+    /**
      * Verify that ext4 extended attributes (xattrs) are enabled in the
      * Linux kernel.
      *
diff --git a/tests/tests/security/src/android/security/cts/KeystoreExploitTest.java b/tests/tests/security/src/android/security/cts/KeystoreExploitTest.java
new file mode 100644
index 0000000..23266c2
--- /dev/null
+++ b/tests/tests/security/src/android/security/cts/KeystoreExploitTest.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.security.cts;
+
+import android.test.AndroidTestCase;
+
+import java.io.File;
+import java.lang.reflect.Method;
+
+public class KeystoreExploitTest extends AndroidTestCase {
+    public void testKeystoreCrash() throws Exception {
+        int pid = Proc.findPidFor("/system/bin/keystore");
+
+        Class<?> keystoreClass = Class.forName("android.security.KeyStore");
+        Method getInstance = keystoreClass.getMethod("getInstance");
+        Method get = keystoreClass.getMethod("get", String.class);
+
+        Object keystore = getInstance.invoke(null);
+        String keyName = "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA "
+                + "AAAA AAAA AAAA AAAA";
+        get.invoke(keystore, keyName);
+
+        Thread.sleep(2000); // give keystore some time to crash
+
+        assertTrue("PID=" + pid + " crashed due to a malformed key name.",
+                new File("/proc/" + pid + "/cmdline").exists());
+    }
+}
diff --git a/tests/tests/security/src/android/security/cts/Proc.java b/tests/tests/security/src/android/security/cts/Proc.java
new file mode 100644
index 0000000..6fe0706
--- /dev/null
+++ b/tests/tests/security/src/android/security/cts/Proc.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2011 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.security.cts;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+
+/**
+ * Utilities for accessing /proc filesystem information.
+ */
+public class Proc {
+    public static int findPidFor(String executable) throws IOException {
+        File f = new File("/proc");
+        for (File d : f.listFiles()) {
+            String cmdLineString = d.getAbsolutePath() + "/cmdline";
+            File cmdLine = new File(cmdLineString);
+            if (cmdLine.exists()) {
+                BufferedReader in = null;
+                try {
+                    in = new BufferedReader(new FileReader(cmdLine));
+                    String line = in.readLine();
+                    if ((line != null) && line.startsWith(executable)) {
+                        return Integer.decode(d.getName());
+                    }
+                } finally {
+                    if (in != null) {
+                        in.close();
+                    }
+                }
+            }
+        }
+        throw new RuntimeException("should never get here");
+    }
+}
diff --git a/tests/tests/security/src/android/security/cts/SqliteJournalLeakTest.java b/tests/tests/security/src/android/security/cts/SqliteJournalLeakTest.java
old mode 100755
new mode 100644
diff --git a/tests/tests/security/src/android/security/cts/VoldExploitTest.java b/tests/tests/security/src/android/security/cts/VoldExploitTest.java
index 61bf862..486d5f0 100644
--- a/tests/tests/security/src/android/security/cts/VoldExploitTest.java
+++ b/tests/tests/security/src/android/security/cts/VoldExploitTest.java
@@ -58,7 +58,7 @@
      * is the typical failure for this test.
      */
     public void testZergRushCrash() throws Exception {
-        int pid = findVold();
+        int pid = Proc.findPidFor("/system/bin/vold");
 
         StorageManager sm = (StorageManager) getContext().getSystemService(Context.STORAGE_SERVICE);
         sm.getMountedObbPath("AAAA AAAA AAAA AAAA "
@@ -214,29 +214,6 @@
         }
     }
 
-    private static int findVold() throws IOException {
-        File f = new File("/proc");
-        for (File d : f.listFiles()) {
-            String cmdLineString = d.getAbsolutePath() + "/cmdline";
-            File cmdLine = new File(cmdLineString);
-            if (cmdLine.exists()) {
-                BufferedReader in = null;
-                try {
-                    in = new BufferedReader(new FileReader(cmdLine));
-                    String line = in.readLine();
-                    if ((line != null) && line.startsWith("/system/bin/vold")) {
-                        return Integer.decode(d.getName());
-                    }
-                } finally {
-                    if (in != null) {
-                        in.close();
-                    }
-                }
-            }
-        }
-        throw new RuntimeException("should never get here");
-    }
-
     /**
      * Extract all the PIDs listening for netlink messages.
      */
diff --git a/tests/tests/security/testeffect/CTSTestEffect.cpp b/tests/tests/security/testeffect/CTSTestEffect.cpp
index 5b4b795..2276f73 100644
--- a/tests/tests/security/testeffect/CTSTestEffect.cpp
+++ b/tests/tests/security/testeffect/CTSTestEffect.cpp
@@ -42,22 +42,6 @@
 //--- Effect Library Interface Implementation
 //
 
-int CTSEffectsLib_QueryNumberEffects(uint32_t *pNumEffects) {
-    *pNumEffects = 1;
-    return 0;
-}
-
-int CTSEffectsLib_QueryEffect(uint32_t index,
-                              effect_descriptor_t *pDescriptor) {
-    if (pDescriptor == NULL) {
-        return -EINVAL;
-    }
-    if (index > 0) {
-        return -EINVAL;
-    }
-    memcpy(pDescriptor, &gCTSEffectsDescriptor, sizeof(effect_descriptor_t));
-    return 0;
-}
 
 int CTSEffectsLib_Create(const effect_uuid_t *uuid,
                          int32_t sessionId,
@@ -212,8 +196,6 @@
     version : EFFECT_LIBRARY_API_VERSION,
     name : "CTS Effects Library",
     implementor : "The Android Open Source Project",
-    query_num_effects : CTSEffectsLib_QueryNumberEffects,
-    query_effect : CTSEffectsLib_QueryEffect,
     create_effect : CTSEffectsLib_Create,
     release_effect : CTSEffectsLib_Release,
     get_descriptor : CTSEffectsLib_GetDescriptor,
diff --git a/tests/tests/telephony/src/android/telephony/cts/SmsManagerTest.java b/tests/tests/telephony/src/android/telephony/cts/SmsManagerTest.java
index c4a6351..ac1acfb 100644
--- a/tests/tests/telephony/src/android/telephony/cts/SmsManagerTest.java
+++ b/tests/tests/telephony/src/android/telephony/cts/SmsManagerTest.java
@@ -92,6 +92,7 @@
                     "311230",   // C SPire Wireless + Celluar South
                     "310600",    // Cellcom
                     "31000",     // Republic Wireless US
+                    "310026",     // T-Mobile US
                     // Verizon
                     "310004",
                     "310012",
diff --git a/tests/tests/text/src/android/text/cts/BidiFormatterTest.java b/tests/tests/text/src/android/text/cts/BidiFormatterTest.java
new file mode 100644
index 0000000..645ab5b
--- /dev/null
+++ b/tests/tests/text/src/android/text/cts/BidiFormatterTest.java
@@ -0,0 +1,221 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.text.cts;
+
+import android.test.AndroidTestCase;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
+
+import java.util.Locale;
+
+public class BidiFormatterTest extends AndroidTestCase {
+
+    private static final BidiFormatter LTR_FMT = BidiFormatter.getInstance(false /* LTR context */);
+    private static final BidiFormatter RTL_FMT = BidiFormatter.getInstance(true /* RTL context */);
+
+    private static final BidiFormatter LTR_FMT_EXIT_RESET =
+            new BidiFormatter.Builder(false /* LTR context */).stereoReset(false).build();
+    private static final BidiFormatter RTL_FMT_EXIT_RESET =
+            new BidiFormatter.Builder(true /* RTL context */).stereoReset(false).build();
+
+    private static final String EN = "abba";
+    private static final String HE = "\u05e0\u05e1";
+
+    private static final String LRM = "\u200E";
+    private static final String RLM = "\u200F";
+    private static final String LRE = "\u202A";
+    private static final String RLE = "\u202B";
+    private static final String PDF = "\u202C";
+
+    public void testIsRtlContext() {
+        assertEquals(false, LTR_FMT.isRtlContext());
+        assertEquals(true, RTL_FMT.isRtlContext());
+
+        assertEquals(false, BidiFormatter.getInstance(Locale.ENGLISH).isRtlContext());
+        assertEquals(true, BidiFormatter.getInstance(true).isRtlContext());
+    }
+
+    public void testBuilderIsRtlContext() {
+        assertEquals(false, new BidiFormatter.Builder(false).build().isRtlContext());
+        assertEquals(true, new BidiFormatter.Builder(true).build().isRtlContext());
+    }
+
+    public void testIsRtl() {
+        assertEquals(true, BidiFormatter.getInstance(true).isRtl(HE));
+        assertEquals(true, BidiFormatter.getInstance(false).isRtl(HE));
+
+        assertEquals(false, BidiFormatter.getInstance(true).isRtl(EN));
+        assertEquals(false, BidiFormatter.getInstance(false).isRtl(EN));
+    }
+
+    public void testMarkAfter() {
+        assertEquals("uniform dir matches LTR context",
+                "", LTR_FMT.markAfter(EN, TextDirectionHeuristics.LTR));
+        assertEquals("uniform dir matches RTL context",
+                "", RTL_FMT.markAfter(HE, TextDirectionHeuristics.RTL));
+
+        assertEquals("exit dir opposite to LTR context",
+                LRM, LTR_FMT.markAfter(EN + HE, TextDirectionHeuristics.LTR));
+        assertEquals("exit dir opposite to RTL context",
+                RLM, RTL_FMT.markAfter(HE + EN, TextDirectionHeuristics.RTL));
+
+        assertEquals("overall dir (but not exit dir) opposite to LTR context",
+                LRM, LTR_FMT.markAfter(HE + EN, TextDirectionHeuristics.RTL));
+        assertEquals("overall dir (but not exit dir) opposite to RTL context",
+                RLM, RTL_FMT.markAfter(EN + HE, TextDirectionHeuristics.LTR));
+
+        assertEquals("exit dir neutral, overall dir matches LTR context",
+                "", LTR_FMT.markAfter(".", TextDirectionHeuristics.LTR));
+        assertEquals("exit dir neutral, overall dir matches RTL context",
+                "", RTL_FMT.markAfter(".", TextDirectionHeuristics.RTL));
+    }
+
+    public void testMarkBefore() {
+        assertEquals("uniform dir matches LTR context",
+                "", LTR_FMT.markBefore(EN, TextDirectionHeuristics.LTR));
+        assertEquals("uniform dir matches RTL context",
+                "", RTL_FMT.markBefore(HE, TextDirectionHeuristics.RTL));
+
+        assertEquals("entry dir opposite to LTR context",
+                LRM, LTR_FMT.markBefore(HE + EN, TextDirectionHeuristics.LTR));
+        assertEquals("entry dir opposite to RTL context",
+                RLM, RTL_FMT.markBefore(EN + HE, TextDirectionHeuristics.RTL));
+
+        assertEquals("overall dir (but not entry dir) opposite to LTR context",
+                LRM, LTR_FMT.markBefore(EN + HE, TextDirectionHeuristics.RTL));
+        assertEquals("overall dir (but not entry dir) opposite to RTL context",
+                RLM, RTL_FMT.markBefore(HE + EN, TextDirectionHeuristics.LTR));
+
+        assertEquals("exit dir neutral, overall dir matches LTR context",
+                "", LTR_FMT.markBefore(".", TextDirectionHeuristics.LTR));
+        assertEquals("exit dir neutral, overall dir matches RTL context",
+                "", RTL_FMT.markBefore(".", TextDirectionHeuristics.RTL));
+    }
+
+    public void testUnicodeWrap() {
+        // Uniform directionality in opposite context.
+        assertEquals("uniform dir opposite to LTR context",
+                RLE + "." + HE + "." + PDF + LRM,
+                LTR_FMT_EXIT_RESET.unicodeWrap("." + HE + "."));
+        assertEquals("uniform dir opposite to LTR context, stereo reset",
+                LRM + RLE + "." + HE + "." + PDF + LRM,
+                LTR_FMT.unicodeWrap("." + HE + "."));
+        assertEquals("uniform dir opposite to LTR context, stereo reset, no isolation",
+                RLE + "." + HE + "." + PDF,
+                LTR_FMT.unicodeWrap("." + HE + ".", false));
+        assertEquals("neutral treated as opposite to LTR context",
+                RLE + "." + PDF + LRM,
+                LTR_FMT_EXIT_RESET.unicodeWrap(".", TextDirectionHeuristics.RTL));
+        assertEquals("uniform dir opposite to RTL context",
+                LRE + "." + EN + "." + PDF + RLM,
+                RTL_FMT_EXIT_RESET.unicodeWrap("." + EN + "."));
+        assertEquals("uniform dir opposite to RTL context, stereo reset",
+                RLM + LRE + "." + EN + "." + PDF + RLM,
+                RTL_FMT.unicodeWrap("." + EN + "."));
+        assertEquals("uniform dir opposite to RTL context, stereo reset, no isolation",
+                LRE + "." + EN + "." + PDF,
+                RTL_FMT.unicodeWrap("." + EN + ".", false));
+        assertEquals("neutral treated as opposite to RTL context",
+                LRE + "." + PDF + RLM,
+                RTL_FMT_EXIT_RESET.unicodeWrap(".", TextDirectionHeuristics.LTR));
+
+        // We test mixed-directionality cases only with an explicit overall directionality parameter
+        // because the estimation logic is outside the sphere of BidiFormatter, and different
+        // estimators will treat them differently.
+
+        // Overall directionality matching context, but with opposite exit directionality.
+        assertEquals("exit dir opposite to LTR context",
+                EN + HE + LRM,
+                LTR_FMT_EXIT_RESET.unicodeWrap(EN + HE, TextDirectionHeuristics.LTR));
+        assertEquals("exit dir opposite to LTR context, stereo reset",
+                EN + HE + LRM,
+                LTR_FMT.unicodeWrap(EN + HE, TextDirectionHeuristics.LTR));
+        assertEquals("exit dir opposite to LTR context, stereo reset, no isolation",
+                EN + HE,
+                LTR_FMT.unicodeWrap(EN + HE, TextDirectionHeuristics.LTR, false));
+
+        assertEquals("exit dir opposite to RTL context",
+                HE + EN + RLM,
+                RTL_FMT_EXIT_RESET.unicodeWrap(HE + EN, TextDirectionHeuristics.RTL));
+        assertEquals("exit dir opposite to RTL context, stereo reset",
+                HE + EN + RLM,
+                RTL_FMT.unicodeWrap(HE + EN, TextDirectionHeuristics.RTL));
+        assertEquals("exit dir opposite to RTL context, stereo reset, no isolation",
+                HE + EN,
+                RTL_FMT.unicodeWrap(HE + EN, TextDirectionHeuristics.RTL, false));
+
+        // Overall directionality matching context, but with opposite entry directionality.
+        assertEquals("entry dir opposite to LTR context",
+                HE + EN,
+                LTR_FMT_EXIT_RESET.unicodeWrap(HE + EN, TextDirectionHeuristics.LTR));
+        assertEquals("entry dir opposite to LTR context, stereo reset",
+                LRM + HE + EN,
+                LTR_FMT.unicodeWrap(HE + EN, TextDirectionHeuristics.LTR));
+        assertEquals("entry dir opposite to LTR context, stereo reset, no isolation",
+                HE + EN,
+                LTR_FMT.unicodeWrap(HE + EN, TextDirectionHeuristics.LTR, false));
+
+        assertEquals("entry dir opposite to RTL context",
+                EN + HE,
+                RTL_FMT_EXIT_RESET.unicodeWrap(EN + HE, TextDirectionHeuristics.RTL));
+        assertEquals("entry dir opposite to RTL context, stereo reset",
+                RLM + EN + HE,
+                RTL_FMT.unicodeWrap(EN + HE, TextDirectionHeuristics.RTL));
+        assertEquals("entry dir opposite to RTL context, stereo reset, no isolation",
+                EN + HE,
+                RTL_FMT.unicodeWrap(EN + HE, TextDirectionHeuristics.RTL, false));
+
+        // Overall directionality matching context, but with opposite entry and exit directionality.
+        assertEquals("entry and exit dir opposite to LTR context",
+                HE + EN + HE + LRM,
+                LTR_FMT_EXIT_RESET.unicodeWrap(HE + EN + HE, TextDirectionHeuristics.LTR));
+        assertEquals("entry and exit dir opposite to LTR context, stereo reset",
+                LRM + HE + EN + HE + LRM,
+                LTR_FMT.unicodeWrap(HE + EN + HE, TextDirectionHeuristics.LTR));
+        assertEquals("entry and exit dir opposite to LTR context, no isolation",
+                HE + EN + HE,
+                LTR_FMT_EXIT_RESET.unicodeWrap(HE + EN + HE, TextDirectionHeuristics.LTR, false));
+
+        assertEquals("entry and exit dir opposite to RTL context",
+                EN + HE + EN + RLM,
+                RTL_FMT_EXIT_RESET.unicodeWrap(EN + HE + EN, TextDirectionHeuristics.RTL));
+        assertEquals("entry and exit dir opposite to RTL context, no isolation",
+                EN + HE + EN,
+                RTL_FMT_EXIT_RESET.unicodeWrap(EN + HE + EN, TextDirectionHeuristics.RTL, false));
+
+        // Entry and exit directionality matching context, but with opposite overall directionality.
+        assertEquals("overall dir (but not entry or exit dir) opposite to LTR context",
+                RLE + EN + HE + EN + PDF + LRM,
+                LTR_FMT_EXIT_RESET.unicodeWrap(EN + HE + EN, TextDirectionHeuristics.RTL));
+        assertEquals("overall dir (but not entry or exit dir) opposite to LTR context, stereo reset",
+                LRM + RLE + EN + HE + EN + PDF + LRM,
+                LTR_FMT.unicodeWrap(EN + HE + EN, TextDirectionHeuristics.RTL));
+        assertEquals("overall dir (but not entry or exit dir) opposite to LTR context, no isolation",
+                RLE + EN + HE + EN + PDF,
+                LTR_FMT_EXIT_RESET.unicodeWrap(EN + HE + EN, TextDirectionHeuristics.RTL, false));
+
+        assertEquals("overall dir (but not entry or exit dir) opposite to RTL context",
+                LRE + HE + EN + HE + PDF + RLM,
+                RTL_FMT_EXIT_RESET.unicodeWrap(HE + EN + HE, TextDirectionHeuristics.LTR));
+        assertEquals("overall dir (but not entry or exit dir) opposite to RTL context, stereo reset",
+                RLM + LRE + HE + EN + HE + PDF + RLM,
+                RTL_FMT.unicodeWrap(HE + EN + HE, TextDirectionHeuristics.LTR));
+        assertEquals("overall dir (but not entry or exit dir) opposite to RTL context, no isolation",
+                LRE + HE + EN + HE + PDF,
+                RTL_FMT_EXIT_RESET.unicodeWrap(HE + EN + HE, TextDirectionHeuristics.LTR, false));
+    }
+}
diff --git a/tests/tests/text/src/android/text/cts/EmojiConstants.java b/tests/tests/text/src/android/text/cts/EmojiConstants.java
new file mode 100755
index 0000000..dcae622
--- /dev/null
+++ b/tests/tests/text/src/android/text/cts/EmojiConstants.java
@@ -0,0 +1,759 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.text.cts;
+
+/**
+ * List of Emoji tested by EmojiTest
+ */
+class EmojiConstants {
+
+    /*
+     * Emoji list from Unicode.org:
+     * http://unicode.org/cldr/utility/list-unicodeset.jsp?a=%5Cp%7BEmoji%7D%0D%0A&g=
+     */
+    static int[] emojiCodePoints = {
+        0x000A9, // COPYRIGHT SIGN
+        0x000AE, // REGISTERED SIGN
+        0x02002, // EN SPACE
+        0x02003, // EM SPACE
+        0x02005, // FOUR-PER-EM SPACE
+        0x0203C, // DOUBLE EXCLAMATION MARK
+        0x02049, // EXCLAMATION QUESTION MARK
+        0x020E3, // COMBINING ENCLOSING KEYCAP
+        0x02122, // TRADE MARK SIGN
+        0x02139, // INFORMATION SOURCE
+        0x02194, // LEFT RIGHT ARROW
+        0x02195, // UP DOWN ARROW
+        0x02196, // NORTH WEST ARROW
+        0x02197, // NORTH EAST ARROW
+        0x02198, // SOUTH EAST ARROW
+        0x02199, // SOUTH WEST ARROW
+        0x021A9, // LEFTWARDS ARROW WITH HOOK
+        0x021AA, // RIGHTWARDS ARROW WITH HOOK
+        0x0231A, // WATCH
+        0x0231B, // HOURGLASS
+        0x023E9, // BLACK RIGHT-POINTING DOUBLE TRIANGLE
+        0x023EA, // BLACK LEFT-POINTING DOUBLE TRIANGLE
+        0x023EB, // BLACK UP-POINTING DOUBLE TRIANGLE
+        0x023EC, // BLACK DOWN-POINTING DOUBLE TRIANGLE
+        0x023F0, // ALARM CLOCK
+        0x023F3, // HOURGLASS WITH FLOWING SAND
+        0x024C2, // CIRCLED LATIN CAPITAL LETTER M
+        0x025AA, // BLACK SMALL SQUARE
+        0x025AB, // WHITE SMALL SQUARE
+        0x025B6, // BLACK RIGHT-POINTING TRIANGLE
+        0x025C0, // BLACK LEFT-POINTING TRIANGLE
+        0x025FB, // WHITE MEDIUM SQUARE
+        0x025FC, // BLACK MEDIUM SQUARE
+        0x025FD, // WHITE MEDIUM SMALL SQUARE
+        0x025FE, // BLACK MEDIUM SMALL SQUARE
+        0x02600, // BLACK SUN WITH RAYS
+        0x02601, // CLOUD
+        0x0260E, // BLACK TELEPHONE
+        0x02611, // BALLOT BOX WITH CHECK
+        0x02615, // HOT BEVERAGE
+        0x02668, // HOT SPRINGS
+        0x0267F, // WHEELCHAIR SYMBOL
+        0x026A0, // WARNING SIGN
+        0x026A1, // HIGH VOLTAGE SIGN
+        0x02614, // UMBRELLA WITH RAIN DROPS
+        0x0261D, // WHITE UP POINTING INDEX
+        0x0263A, // WHITE SMILING FACE
+        0x02648, // ARIES
+        0x02649, // TAURUS
+        0x0264A, // GEMINI
+        0x0264B, // CANCER
+        0x0264C, // LEO
+        0x0264D, // VIRGO
+        0x0264E, // LIBRA
+        0x0264F, // SCORPIUS
+        0x02650, // SAGITTARIUS
+        0x02651, // CAPRICORN
+        0x02652, // AQUARIUS
+        0x02653, // PISCES
+        0x026CE, // OPHIUCHUS
+        0x02660, // BLACK SPADE SUIT
+        0x02663, // BLACK CLUB SUIT
+        0x02665, // BLACK HEART SUIT
+        0x02666, // BLACK DIAMOND SUIT
+        0x0267B, // BLACK UNIVERSAL RECYCLING SYMBOL
+        0x02693, // ANCHOR
+        0x026AA, // MEDIUM WHITE CIRCLE
+        0x026AB, // MEDIUM BLACK CIRCLE
+        0x026BD, // SOCCER BALL
+        0x026BE, // BASEBALL
+        0x026C4, // SNOWMAN WITHOUT SNOW
+        0x026C5, // SUN BEHIND CLOUD
+        0x026D4, // NO ENTRY
+        0x026EA, // CHURCH
+        0x026F2, // FOUNTAIN
+        0x026F3, // FLAG IN HOLE
+        0x026F5, // SAILBOAT
+        0x026FA, // TENT
+        0x026FD, // FUEL PUMP
+        0x02702, // BLACK SCISSORS
+        0x02705, // WHITE HEAVY CHECK MARK
+        0x02708, // AIRPLANE
+        0x02709, // ENVELOPE
+        0x0270A, // RAISED FIST
+        0x0270B, // RAISED HAND
+        0x0270C, // VICTORY HAND
+        0x0270F, // PENCIL
+        0x02712, // BLACK NIB
+        0x02714, // HEAVY CHECK MARK
+        0x02716, // HEAVY MULTIPLICATION X
+        0x0274C, // CROSS MARK
+        0x0274E, // NEGATIVE SQUARED CROSS MARK
+        0x02753, // BLACK QUESTION MARK ORNAMENT
+        0x02754, // WHITE QUESTION MARK ORNAMENT
+        0x02755, // WHITE EXCLAMATION MARK ORNAMENT
+        0x02757, // HEAVY EXCLAMATION MARK SYMBOL
+        0x027B0, // CURLY LOOP
+        0x027BF, // DOUBLE CURLY LOOP
+        0x02728, // SPARKLES
+        0x02733, // EIGHT SPOKED ASTERISK
+        0x02734, // EIGHT POINTED BLACK STAR
+        0x02744, // SNOWFLAKE
+        0x02747, // SPARKLE
+        0x02764, // HEAVY BLACK HEART
+        0x02795, // HEAVY PLUS SIGN
+        0x02796, // HEAVY MINUS SIGN
+        0x02797, // HEAVY DIVISION SIGN
+        0x027A1, // BLACK RIGHTWARDS ARROW
+        0x02934, // ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
+        0x02935, // ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
+        0x02B05, // LEFTWARDS BLACK ARROW
+        0x02B06, // UPWARDS BLACK ARROW
+        0x02B07, // DOWNWARDS BLACK ARROW
+        0x02B1B, // BLACK LARGE SQUARE
+        0x02B1C, // WHITE LARGE SQUARE
+        0x02B50, // WHITE MEDIUM STAR
+        0x02B55, // HEAVY LARGE CIRCLE
+        0x03030, // WAVY DASH
+        0x0303D, // PART ALTERNATION MARK
+        0x03297, // CIRCLED IDEOGRAPH CONGRATULATION
+        0x03299, // CIRCLED IDEOGRAPH SECRET
+        0x1F004, // MAHJONG TILE RED DRAGON
+        0x1F0CF, // PLAYING CARD BLACK JOKER
+        0x1F170, // NEGATIVE SQUARED LATIN CAPITAL LETTER A
+        0x1F171, // NEGATIVE SQUARED LATIN CAPITAL LETTER B
+        0x1F17E, // NEGATIVE SQUARED LATIN CAPITAL LETTER O
+        0x1F17F, // NEGATIVE SQUARED LATIN CAPITAL LETTER P
+        0x1F18E, // NEGATIVE SQUARED AB
+        0x1F191, // SQUARED CL
+        0x1F192, // SQUARED COOL
+        0x1F193, // SQUARED FREE
+        0x1F194, // SQUARED ID
+        0x1F195, // SQUARED NEW
+        0x1F196, // SQUARED NG
+        0x1F197, // SQUARED OK
+        0x1F198, // SQUARED SOS
+        0x1F199, // SQUARED UP WITH EXCLAMATION MARK
+        0x1F19A, // SQUARED VS
+        0x1F1E6, // REGIONAL INDICATOR SYMBOL LETTER A
+        0x1F1E7, // REGIONAL INDICATOR SYMBOL LETTER B
+        0x1F1E8, // REGIONAL INDICATOR SYMBOL LETTER C
+        0x1F1E9, // REGIONAL INDICATOR SYMBOL LETTER D
+        0x1F1EA, // REGIONAL INDICATOR SYMBOL LETTER E
+        0x1F1EB, // REGIONAL INDICATOR SYMBOL LETTER F
+        0x1F1EC, // REGIONAL INDICATOR SYMBOL LETTER G
+        0x1F1ED, // REGIONAL INDICATOR SYMBOL LETTER H
+        0x1F1EE, // REGIONAL INDICATOR SYMBOL LETTER I
+        0x1F1EF, // REGIONAL INDICATOR SYMBOL LETTER J
+        0x1F1F0, // REGIONAL INDICATOR SYMBOL LETTER K
+        0x1F1F1, // REGIONAL INDICATOR SYMBOL LETTER L
+        0x1F1F2, // REGIONAL INDICATOR SYMBOL LETTER M
+        0x1F1F3, // REGIONAL INDICATOR SYMBOL LETTER N
+        0x1F1F4, // REGIONAL INDICATOR SYMBOL LETTER O
+        0x1F1F5, // REGIONAL INDICATOR SYMBOL LETTER P
+        0x1F1F6, // REGIONAL INDICATOR SYMBOL LETTER Q
+        0x1F1F7, // REGIONAL INDICATOR SYMBOL LETTER R
+        0x1F1F8, // REGIONAL INDICATOR SYMBOL LETTER S
+        0x1F1F9, // REGIONAL INDICATOR SYMBOL LETTER T
+        0x1F1FA, // REGIONAL INDICATOR SYMBOL LETTER U
+        0x1F1FB, // REGIONAL INDICATOR SYMBOL LETTER V
+        0x1F1FC, // REGIONAL INDICATOR SYMBOL LETTER W
+        0x1F1FD, // REGIONAL INDICATOR SYMBOL LETTER X
+        0x1F1FE, // REGIONAL INDICATOR SYMBOL LETTER Y
+        0x1F1FF, // REGIONAL INDICATOR SYMBOL LETTER Z
+        0x1F201, // SQUARED KATAKANA KOKO
+        0x1F202, // SQUARED KATAKANA SA
+        0x1F21A, // SQUARED CJK UNIFIED IDEOGRAPH-7121
+        0x1F22F, // SQUARED CJK UNIFIED IDEOGRAPH-6307
+        0x1F232, // SQUARED CJK UNIFIED IDEOGRAPH-7981
+        0x1F233, // SQUARED CJK UNIFIED IDEOGRAPH-7A7A
+        0x1F234, // SQUARED CJK UNIFIED IDEOGRAPH-5408
+        0x1F235, // SQUARED CJK UNIFIED IDEOGRAPH-6E80
+        0x1F236, // SQUARED CJK UNIFIED IDEOGRAPH-6709
+        0x1F237, // SQUARED CJK UNIFIED IDEOGRAPH-6708
+        0x1F238, // SQUARED CJK UNIFIED IDEOGRAPH-7533
+        0x1F239, // SQUARED CJK UNIFIED IDEOGRAPH-5272
+        0x1F23A, // SQUARED CJK UNIFIED IDEOGRAPH-55B6
+        0x1F250, // CIRCLED IDEOGRAPH ADVANTAGE
+        0x1F251, // CIRCLED IDEOGRAPH ACCEPT
+        0x1F300, // CYCLONE
+        0x1F301, // FOGGY
+        0x1F302, // CLOSED UMBRELLA
+        0x1F303, // NIGHT WITH STARS
+        0x1F304, // SUNRISE OVER MOUNTAINS
+        0x1F305, // SUNRISE
+        0x1F306, // CITYSCAPE AT DUSK
+        0x1F307, // SUNSET OVER BUILDINGS
+        0x1F308, // RAINBOW
+        0x1F309, // BRIDGE AT NIGHT
+        0x1F30A, // WATER WAVE
+        0x1F30B, // VOLCANO
+        0x1F30C, // MILKY WAY
+        0x1F30F, // EARTH GLOBE ASIA-AUSTRALIA
+        0x1F311, // NEW MOON SYMBOL
+        0x1F313, // FIRST QUARTER MOON SYMBOL
+        0x1F314, // WAXING GIBBOUS MOON SYMBOL
+        0x1F315, // FULL MOON SYMBOL
+        0x1F319, // CRESCENT MOON
+        0x1F31B, // FIRST QUARTER MOON WITH FACE
+        0x1F31F, // GLOWING STAR
+        0x1F320, // SHOOTING STAR
+        0x1F330, // CHESTNUT
+        0x1F331, // SEEDLING
+        0x1F334, // PALM TREE
+        0x1F335, // CACTUS
+        0x1F337, // TULIP
+        0x1F338, // CHERRY BLOSSOM
+        0x1F339, // ROSE
+        0x1F33A, // HIBISCUS
+        0x1F33B, // SUNFLOWER
+        0x1F33C, // BLOSSOM
+        0x1F33D, // EAR OF MAIZE
+        0x1F33E, // EAR OF RICE
+        0x1F33F, // HERB
+        0x1F340, // FOUR LEAF CLOVER
+        0x1F341, // MAPLE LEAF
+        0x1F342, // FALLEN LEAF
+        0x1F343, // LEAF FLUTTERING IN WIND
+        0x1F344, // MUSHROOM
+        0x1F345, // TOMATO
+        0x1F346, // AUBERGINE
+        0x1F347, // GRAPES
+        0x1F348, // MELON
+        0x1F349, // WATERMELON
+        0x1F34A, // TANGERINE
+        0x1F34C, // BANANA
+        0x1F34D, // PINEAPPLE
+        0x1F34E, // RED APPLE
+        0x1F34F, // GREEN APPLE
+        0x1F351, // PEACH
+        0x1F352, // CHERRIES
+        0x1F353, // STRAWBERRY
+        0x1F354, // HAMBURGER
+        0x1F355, // SLICE OF PIZZA
+        0x1F356, // MEAT ON BONE
+        0x1F357, // POULTRY LEG
+        0x1F358, // RICE CRACKER
+        0x1F359, // RICE BALL
+        0x1F35A, // COOKED RICE
+        0x1F35B, // CURRY AND RICE
+        0x1F35C, // STEAMING BOWL
+        0x1F35D, // SPAGHETTI
+        0x1F35E, // BREAD
+        0x1F35F, // FRENCH FRIES
+        0x1F360, // ROASTED SWEET POTATO
+        0x1F361, // DANGO
+        0x1F362, // ODEN
+        0x1F363, // SUSHI
+        0x1F364, // FRIED SHRIMP
+        0x1F365, // FISH CAKE WITH SWIRL DESIGN
+        0x1F366, // SOFT ICE CREAM
+        0x1F367, // SHAVED ICE
+        0x1F368, // ICE CREAM
+        0x1F369, // DOUGHNUT
+        0x1F36A, // COOKIE
+        0x1F36B, // CHOCOLATE BAR
+        0x1F36C, // CANDY
+        0x1F36D, // LOLLIPOP
+        0x1F36E, // CUSTARD
+        0x1F36F, // HONEY POT
+        0x1F370, // SHORTCAKE
+        0x1F371, // BENTO BOX
+        0x1F372, // POT OF FOOD
+        0x1F373, // COOKING
+        0x1F374, // FORK AND KNIFE
+        0x1F375, // TEACUP WITHOUT HANDLE
+        0x1F376, // SAKE BOTTLE AND CUP
+        0x1F377, // WINE GLASS
+        0x1F378, // COCKTAIL GLASS
+        0x1F379, // TROPICAL DRINK
+        0x1F37A, // BEER MUG
+        0x1F37B, // CLINKING BEER MUGS
+        0x1F380, // RIBBON
+        0x1F381, // WRAPPED PRESENT
+        0x1F382, // BIRTHDAY CAKE
+        0x1F383, // JACK-O-LANTERN
+        0x1F384, // CHRISTMAS TREE
+        0x1F385, // FATHER CHRISTMAS
+        0x1F386, // FIREWORKS
+        0x1F387, // FIREWORK SPARKLER
+        0x1F388, // BALLOON
+        0x1F389, // PARTY POPPER
+        0x1F38A, // CONFETTI BALL
+        0x1F38B, // TANABATA TREE
+        0x1F38C, // CROSSED FLAGS
+        0x1F38D, // PINE DECORATION
+        0x1F38E, // JAPANESE DOLLS
+        0x1F38F, // CARP STREAMER
+        0x1F390, // WIND CHIME
+        0x1F391, // MOON VIEWING CEREMONY
+        0x1F392, // SCHOOL SATCHEL
+        0x1F393, // GRADUATION CAP
+        0x1F3A0, // CAROUSEL HORSE
+        0x1F3A1, // FERRIS WHEEL
+        0x1F3A2, // ROLLER COASTER
+        0x1F3A3, // FISHING POLE AND FISH
+        0x1F3A4, // MICROPHONE
+        0x1F3A5, // MOVIE CAMERA
+        0x1F3A6, // CINEMA
+        0x1F3A7, // HEADPHONE
+        0x1F3A8, // ARTIST PALETTE
+        0x1F3A9, // TOP HAT
+        0x1F3AA, // CIRCUS TENT
+        0x1F3AB, // TICKET
+        0x1F3AC, // CLAPPER BOARD
+        0x1F3AD, // PERFORMING ARTS
+        0x1F3AE, // VIDEO GAME
+        0x1F3AF, // DIRECT HIT
+        0x1F3B0, // SLOT MACHINE
+        0x1F3B1, // BILLIARDS
+        0x1F3B2, // GAME DIE
+        0x1F3B3, // BOWLING
+        0x1F3B4, // FLOWER PLAYING CARDS
+        0x1F3B5, // MUSICAL NOTE
+        0x1F3B6, // MULTIPLE MUSICAL NOTES
+        0x1F3B7, // SAXOPHONE
+        0x1F3B8, // GUITAR
+        0x1F3B9, // MUSICAL KEYBOARD
+        0x1F3BA, // TRUMPET
+        0x1F3BB, // VIOLIN
+        0x1F3BC, // MUSICAL SCORE
+        0x1F3BD, // RUNNING SHIRT WITH SASH
+        0x1F3BE, // TENNIS RACQUET AND BALL
+        0x1F3BF, // SKI AND SKI BOOT
+        0x1F3C0, // BASKETBALL AND HOOP
+        0x1F3C1, // CHEQUERED FLAG
+        0x1F3C2, // SNOWBOARDER
+        0x1F3C3, // RUNNER
+        0x1F3C4, // SURFER
+        0x1F3C6, // TROPHY
+        0x1F3C8, // AMERICAN FOOTBALL
+        0x1F3CA, // SWIMMER
+        0x1F3E0, // HOUSE BUILDING
+        0x1F3E1, // HOUSE WITH GARDEN
+        0x1F3E2, // OFFICE BUILDING
+        0x1F3E3, // JAPANESE POST OFFICE
+        0x1F3E5, // HOSPITAL
+        0x1F3E6, // BANK
+        0x1F3E7, // AUTOMATED TELLER MACHINE
+        0x1F3E8, // HOTEL
+        0x1F3E9, // LOVE HOTEL
+        0x1F3EA, // CONVENIENCE STORE
+        0x1F3EB, // SCHOOL
+        0x1F3EC, // DEPARTMENT STORE
+        0x1F3ED, // FACTORY
+        0x1F3EE, // IZAKAYA LANTERN
+        0x1F3EF, // JAPANESE CASTLE
+        0x1F3F0, // EUROPEAN CASTLE
+        0x1F40C, // SNAIL
+        0x1F40D, // SNAKE
+        0x1F40E, // HORSE
+        0x1F411, // SHEEP
+        0x1F412, // MONKEY
+        0x1F414, // CHICKEN
+        0x1F417, // BOAR
+        0x1F418, // ELEPHANT
+        0x1F419, // OCTOPUS
+        0x1F41A, // SPIRAL SHELL
+        0x1F41B, // BUG
+        0x1F41C, // ANT
+        0x1F41D, // HONEYBEE
+        0x1F41E, // LADY BEETLE
+        0x1F41F, // FISH
+        0x1F420, // TROPICAL FISH
+        0x1F421, // BLOWFISH
+        0x1F422, // TURTLE
+        0x1F423, // HATCHING CHICK
+        0x1F424, // BABY CHICK
+        0x1F425, // FRONT-FACING BABY CHICK
+        0x1F426, // BIRD
+        0x1F427, // PENGUIN
+        0x1F428, // KOALA
+        0x1F429, // POODLE
+        0x1F42B, // BACTRIAN CAMEL
+        0x1F42C, // DOLPHIN
+        0x1F42D, // MOUSE FACE
+        0x1F42E, // COW FACE
+        0x1F42F, // TIGER FACE
+        0x1F430, // RABBIT FACE
+        0x1F431, // CAT FACE
+        0x1F432, // DRAGON FACE
+        0x1F433, // SPOUTING WHALE
+        0x1F434, // HORSE FACE
+        0x1F435, // MONKEY FACE
+        0x1F436, // DOG FACE
+        0x1F437, // PIG FACE
+        0x1F438, // FROG FACE
+        0x1F439, // HAMSTER FACE
+        0x1F43A, // WOLF FACE
+        0x1F43B, // BEAR FACE
+        0x1F43C, // PANDA FACE
+        0x1F43D, // PIG NOSE
+        0x1F43E, // PAW PRINTS
+        0x1F440, // EYES
+        0x1F442, // EAR
+        0x1F443, // NOSE
+        0x1F444, // MOUTH
+        0x1F445, // TONGUE
+        0x1F446, // WHITE UP POINTING BACKHAND INDEX
+        0x1F447, // WHITE DOWN POINTING BACKHAND INDEX
+        0x1F448, // WHITE LEFT POINTING BACKHAND INDEX
+        0x1F449, // WHITE RIGHT POINTING BACKHAND INDEX
+        0x1F44A, // FISTED HAND SIGN
+        0x1F44B, // WAVING HAND SIGN
+        0x1F44C, // OK HAND SIGN
+        0x1F44D, // THUMBS UP SIGN
+        0x1F44E, // THUMBS DOWN SIGN
+        0x1F44F, // CLAPPING HANDS SIGN
+        0x1F450, // OPEN HANDS SIGN
+        0x1F451, // CROWN
+        0x1F452, // WOMANS HAT
+        0x1F453, // EYEGLASSES
+        0x1F454, // NECKTIE
+        0x1F455, // T-SHIRT
+        0x1F456, // JEANS
+        0x1F457, // DRESS
+        0x1F458, // KIMONO
+        0x1F459, // BIKINI
+        0x1F45A, // WOMANS CLOTHES
+        0x1F45B, // PURSE
+        0x1F45C, // HANDBAG
+        0x1F45D, // POUCH
+        0x1F45E, // MANS SHOE
+        0x1F45F, // ATHLETIC SHOE
+        0x1F460, // HIGH-HEELED SHOE
+        0x1F461, // WOMANS SANDAL
+        0x1F462, // WOMANS BOOTS
+        0x1F463, // FOOTPRINTS
+        0x1F464, // BUST IN SILHOUETTE
+        0x1F466, // BOY
+        0x1F467, // GIRL
+        0x1F468, // MAN
+        0x1F469, // WOMAN
+        0x1F46A, // FAMILY
+        0x1F46B, // MAN AND WOMAN HOLDING HANDS
+        0x1F46E, // POLICE OFFICER
+        0x1F46F, // WOMAN WITH BUNNY EARS
+        0x1F470, // BRIDE WITH VEIL
+        0x1F471, // PERSON WITH BLOND HAIR
+        0x1F472, // MAN WITH GUA PI MAO
+        0x1F473, // MAN WITH TURBAN
+        0x1F474, // OLDER MAN
+        0x1F475, // OLDER WOMAN
+        0x1F476, // BABY
+        0x1F477, // CONSTRUCTION WORKER
+        0x1F478, // PRINCESS
+        0x1F479, // JAPANESE OGRE
+        0x1F47A, // JAPANESE GOBLIN
+        0x1F47B, // GHOST
+        0x1F47C, // BABY ANGEL
+        0x1F47D, // EXTRATERRESTRIAL ALIEN
+        0x1F47E, // ALIEN MONSTER
+        0x1F47F, // IMP
+        0x1F480, // SKULL
+        0x1F481, // INFORMATION DESK PERSON
+        0x1F482, // GUARDSMAN
+        0x1F483, // DANCER
+        0x1F484, // LIPSTICK
+        0x1F485, // NAIL POLISH
+        0x1F486, // FACE MASSAGE
+        0x1F487, // HAIRCUT
+        0x1F488, // BARBER POLE
+        0x1F489, // SYRINGE
+        0x1F48A, // PILL
+        0x1F48B, // KISS MARK
+        0x1F48C, // LOVE LETTER
+        0x1F48D, // RING
+        0x1F48E, // GEM STONE
+        0x1F48F, // KISS
+        0x1F490, // BOUQUET
+        0x1F491, // COUPLE WITH HEART
+        0x1F492, // WEDDING
+        0x1F493, // BEATING HEART
+        0x1F494, // BROKEN HEART
+        0x1F495, // TWO HEARTS
+        0x1F496, // SPARKLING HEART
+        0x1F497, // GROWING HEART
+        0x1F498, // HEART WITH ARROW
+        0x1F499, // BLUE HEART
+        0x1F49A, // GREEN HEART
+        0x1F49B, // YELLOW HEART
+        0x1F49C, // PURPLE HEART
+        0x1F49D, // HEART WITH RIBBON
+        0x1F49E, // REVOLVING HEARTS
+        0x1F49F, // HEART DECORATION
+        0x1F4A0, // DIAMOND SHAPE WITH A DOT INSIDE
+        0x1F4A1, // ELECTRIC LIGHT BULB
+        0x1F4A2, // ANGER SYMBOL
+        0x1F4A3, // BOMB
+        0x1F4A4, // SLEEPING SYMBOL
+        0x1F4A5, // COLLISION SYMBOL
+        0x1F4A6, // SPLASHING SWEAT SYMBOL
+        0x1F4A7, // DROPLET
+        0x1F4A8, // DASH SYMBOL
+        0x1F4A9, // PILE OF POO
+        0x1F4AA, // FLEXED BICEPS
+        0x1F4AB, // DIZZY SYMBOL
+        0x1F4AC, // SPEECH BALLOON
+        0x1F4AE, // WHITE FLOWER
+        0x1F4AF, // HUNDRED POINTS SYMBOL
+        0x1F4B0, // MONEY BAG
+        0x1F4B1, // CURRENCY EXCHANGE
+        0x1F4B2, // HEAVY DOLLAR SIGN
+        0x1F4B3, // CREDIT CARD
+        0x1F4B4, // BANKNOTE WITH YEN SIGN
+        0x1F4B5, // BANKNOTE WITH DOLLAR SIGN
+        0x1F4B8, // MONEY WITH WINGS
+        0x1F4B9, // CHART WITH UPWARDS TREND AND YEN SIGN
+        0x1F4BA, // SEAT
+        0x1F4BB, // PERSONAL COMPUTER
+        0x1F4BC, // BRIEFCASE
+        0x1F4BD, // MINIDISC
+        0x1F4BE, // FLOPPY DISK
+        0x1F4BF, // OPTICAL DISC
+        0x1F4C0, // DVD
+        0x1F4C1, // FILE FOLDER
+        0x1F4C2, // OPEN FILE FOLDER
+        0x1F4C3, // PAGE WITH CURL
+        0x1F4C4, // PAGE FACING UP
+        0x1F4C5, // CALENDAR
+        0x1F4C6, // TEAR-OFF CALENDAR
+        0x1F4C7, // CARD INDEX
+        0x1F4C8, // CHART WITH UPWARDS TREND
+        0x1F4C9, // CHART WITH DOWNWARDS TREND
+        0x1F4CA, // BAR CHART
+        0x1F4CB, // CLIPBOARD
+        0x1F4CC, // PUSHPIN
+        0x1F4CD, // ROUND PUSHPIN
+        0x1F4CE, // PAPERCLIP
+        0x1F4CF, // STRAIGHT RULER
+        0x1F4D0, // TRIANGULAR RULER
+        0x1F4D1, // BOOKMARK TABS
+        0x1F4D2, // LEDGER
+        0x1F4D3, // NOTEBOOK
+        0x1F4D4, // NOTEBOOK WITH DECORATIVE COVER
+        0x1F4D5, // CLOSED BOOK
+        0x1F4D6, // OPEN BOOK
+        0x1F4D7, // GREEN BOOK
+        0x1F4D8, // BLUE BOOK
+        0x1F4D9, // ORANGE BOOK
+        0x1F4DA, // BOOKS
+        0x1F4DB, // NAME BADGE
+        0x1F4DC, // SCROLL
+        0x1F4DD, // MEMO
+        0x1F4DE, // TELEPHONE RECEIVER
+        0x1F4DF, // PAGER
+        0x1F4E0, // FAX MACHINE
+        0x1F4E1, // SATELLITE ANTENNA
+        0x1F4E2, // PUBLIC ADDRESS LOUDSPEAKER
+        0x1F4E3, // CHEERING MEGAPHONE
+        0x1F4E4, // OUTBOX TRAY
+        0x1F4E5, // INBOX TRAY
+        0x1F4E6, // PACKAGE
+        0x1F4E7, // E-MAIL SYMBOL
+        0x1F4E8, // INCOMING ENVELOPE
+        0x1F4E9, // ENVELOPE WITH DOWNWARDS ARROW ABOVE
+        0x1F4EA, // CLOSED MAILBOX WITH LOWERED FLAG
+        0x1F4EB, // CLOSED MAILBOX WITH RAISED FLAG
+        0x1F4EE, // POSTBOX
+        0x1F4F0, // NEWSPAPER
+        0x1F4F1, // MOBILE PHONE
+        0x1F4F2, // MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT
+        0x1F4F3, // VIBRATION MODE
+        0x1F4F4, // MOBILE PHONE OFF
+        0x1F4F6, // ANTENNA WITH BARS
+        0x1F4F7, // CAMERA
+        0x1F4F9, // VIDEO CAMERA
+        0x1F4FA, // TELEVISION
+        0x1F4FB, // RADIO
+        0x1F4FC, // VIDEOCASSETTE
+        0x1F503, // CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
+        0x1F50A, // SPEAKER WITH THREE SOUND WAVES
+        0x1F50B, // BATTERY
+        0x1F50C, // ELECTRIC PLUG
+        0x1F50D, // LEFT-POINTING MAGNIFYING GLASS
+        0x1F50E, // RIGHT-POINTING MAGNIFYING GLASS
+        0x1F50F, // LOCK WITH INK PEN
+        0x1F510, // CLOSED LOCK WITH KEY
+        0x1F511, // KEY
+        0x1F512, // LOCK
+        0x1F513, // OPEN LOCK
+        0x1F514, // BELL
+        0x1F516, // BOOKMARK
+        0x1F517, // LINK SYMBOL
+        0x1F518, // RADIO BUTTON
+        0x1F53A, // UP-POINTING RED TRIANGLE
+        0x1F53B, // DOWN-POINTING RED TRIANGLE
+        0x1F53C, // UP-POINTING SMALL RED TRIANGLE
+        0x1F53D, // DOWN-POINTING SMALL RED TRIANGLE
+        0x1F519, // BACK WITH LEFTWARDS ARROW ABOVE
+        0x1F51A, // END WITH LEFTWARDS ARROW ABOVE
+        0x1F51B, // ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE
+        0x1F51C, // SOON WITH RIGHTWARDS ARROW ABOVE
+        0x1F51D, // TOP WITH UPWARDS ARROW ABOVE
+        0x1F51E, // NO ONE UNDER EIGHTEEN SYMBOL
+        0x1F51F, // KEYCAP TEN
+        0x1F520, // INPUT SYMBOL FOR LATIN CAPITAL LETTERS
+        0x1F521, // INPUT SYMBOL FOR LATIN SMALL LETTERS
+        0x1F522, // INPUT SYMBOL FOR NUMBERS
+        0x1F523, // INPUT SYMBOL FOR SYMBOLS
+        0x1F524, // INPUT SYMBOL FOR LATIN LETTERS
+        0x1F525, // FIRE
+        0x1F526, // ELECTRIC TORCH
+        0x1F527, // WRENCH
+        0x1F528, // HAMMER
+        0x1F529, // NUT AND BOLT
+        0x1F52A, // HOCHO
+        0x1F52B, // PISTOL
+        0x1F52E, // CRYSTAL BALL
+        0x1F52F, // SIX POINTED STAR WITH MIDDLE DOT
+        0x1F530, // JAPANESE SYMBOL FOR BEGINNER
+        0x1F531, // TRIDENT EMBLEM
+        0x1F532, // BLACK SQUARE BUTTON
+        0x1F533, // WHITE SQUARE BUTTON
+        0x1F534, // LARGE RED CIRCLE
+        0x1F535, // LARGE BLUE CIRCLE
+        0x1F536, // LARGE ORANGE DIAMOND
+        0x1F537, // LARGE BLUE DIAMOND
+        0x1F538, // SMALL ORANGE DIAMOND
+        0x1F539, // SMALL BLUE DIAMOND
+        0x1F550, // CLOCK FACE ONE OCLOCK
+        0x1F551, // CLOCK FACE TWO OCLOCK
+        0x1F552, // CLOCK FACE THREE OCLOCK
+        0x1F553, // CLOCK FACE FOUR OCLOCK
+        0x1F554, // CLOCK FACE FIVE OCLOCK
+        0x1F555, // CLOCK FACE SIX OCLOCK
+        0x1F556, // CLOCK FACE SEVEN OCLOCK
+        0x1F557, // CLOCK FACE EIGHT OCLOCK
+        0x1F558, // CLOCK FACE NINE OCLOCK
+        0x1F559, // CLOCK FACE TEN OCLOCK
+        0x1F55A, // CLOCK FACE ELEVEN OCLOCK
+        0x1F55B, // CLOCK FACE TWELVE OCLOCK
+        0x1F5FB, // MOUNT FUJI
+        0x1F5FC, // TOKYO TOWER
+        0x1F5FD, // STATUE OF LIBERTY
+        0x1F5FE, // SILHOUETTE OF JAPAN
+        0x1F5FF, // MOYAI
+        0x1F601, // GRINNING FACE WITH SMILING EYES
+        0x1F602, // FACE WITH TEARS OF JOY
+        0x1F603, // SMILING FACE WITH OPEN MOUTH
+        0x1F604, // SMILING FACE WITH OPEN MOUTH AND SMILING EYES
+        0x1F605, // SMILING FACE WITH OPEN MOUTH AND COLD SWEAT
+        0x1F606, // SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES
+        0x1F609, // WINKING FACE
+        0x1F60A, // SMILING FACE WITH SMILING EYES
+        0x1F60B, // FACE SAVOURING DELICIOUS FOOD
+        0x1F60C, // RELIEVED FACE
+        0x1F60D, // SMILING FACE WITH HEART-SHAPED EYES
+        0x1F60F, // SMIRKING FACE
+        0x1F612, // UNAMUSED FACE
+        0x1F613, // FACE WITH COLD SWEAT
+        0x1F614, // PENSIVE FACE
+        0x1F616, // CONFOUNDED FACE
+        0x1F618, // FACE THROWING A KISS
+        0x1F61A, // KISSING FACE WITH CLOSED EYES
+        0x1F61C, // FACE WITH STUCK-OUT TONGUE AND WINKING EYE
+        0x1F61D, // FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES
+        0x1F61E, // DISAPPOINTED FACE
+        0x1F620, // ANGRY FACE
+        0x1F621, // POUTING FACE
+        0x1F622, // CRYING FACE
+        0x1F623, // PERSEVERING FACE
+        0x1F624, // FACE WITH LOOK OF TRIUMPH
+        0x1F625, // DISAPPOINTED BUT RELIEVED FACE
+        0x1F628, // FEARFUL FACE
+        0x1F629, // WEARY FACE
+        0x1F62A, // SLEEPY FACE
+        0x1F62B, // TIRED FACE
+        0x1F62D, // LOUDLY CRYING FACE
+        0x1F630, // FACE WITH OPEN MOUTH AND COLD SWEAT
+        0x1F631, // FACE SCREAMING IN FEAR
+        0x1F632, // ASTONISHED FACE
+        0x1F633, // FLUSHED FACE
+        0x1F635, // DIZZY FACE
+        0x1F637, // FACE WITH MEDICAL MASK
+        0x1F638, // GRINNING CAT FACE WITH SMILING EYES
+        0x1F639, // CAT FACE WITH TEARS OF JOY
+        0x1F63A, // SMILING CAT FACE WITH OPEN MOUTH
+        0x1F63B, // SMILING CAT FACE WITH HEART-SHAPED EYES
+        0x1F63C, // CAT FACE WITH WRY SMILE
+        0x1F63D, // KISSING CAT FACE WITH CLOSED EYES
+        0x1F63E, // POUTING CAT FACE
+        0x1F63F, // CRYING CAT FACE
+        0x1F640, // WEARY CAT FACE
+        0x1F645, // FACE WITH NO GOOD GESTURE
+        0x1F646, // FACE WITH OK GESTURE
+        0x1F647, // PERSON BOWING DEEPLY
+        0x1F648, // SEE-NO-EVIL MONKEY
+        0x1F649, // HEAR-NO-EVIL MONKEY
+        0x1F64A, // SPEAK-NO-EVIL MONKEY
+        0x1F64B, // HAPPY PERSON RAISING ONE HAND
+        0x1F64C, // PERSON RAISING BOTH HANDS IN CELEBRATION
+        0x1F64D, // PERSON FROWNING
+        0x1F64E, // PERSON WITH POUTING FACE
+        0x1F64F, // PERSON WITH FOLDED HANDS
+        0x1F680, // ROCKET
+        0x1F683, // RAILWAY CAR
+        0x1F684, // HIGH-SPEED TRAIN
+        0x1F685, // HIGH-SPEED TRAIN WITH BULLET NOSE
+        0x1F687, // METRO
+        0x1F689, // STATION
+        0x1F68C, // BUS
+        0x1F68F, // BUS STOP
+        0x1F691, // AMBULANCE
+        0x1F692, // FIRE ENGINE
+        0x1F693, // POLICE CAR
+        0x1F695, // TAXI
+        0x1F697, // AUTOMOBILE
+        0x1F699, // RECREATIONAL VEHICLE
+        0x1F69A, // DELIVERY TRUCK
+        0x1F6A2, // SHIP
+        0x1F6A4, // SPEEDBOAT
+        0x1F6A5, // HORIZONTAL TRAFFIC LIGHT
+        0x1F6A7, // CONSTRUCTION SIGN
+        0x1F6A8, // POLICE CARS REVOLVING LIGHT
+        0x1F6A9, // TRIANGULAR FLAG ON POST
+        0x1F6AA, // DOOR
+        0x1F6AB, // NO ENTRY SIGN
+        0x1F6AC, // SMOKING SYMBOL
+        0x1F6AD, // NO SMOKING SYMBOL
+        0x1F6B2, // BICYCLE
+        0x1F6B6, // PEDESTRIAN
+        0x1F6B9, // MENS SYMBOL
+        0x1F6BA, // WOMENS SYMBOL
+        0x1F6BB, // RESTROOM
+        0x1F6BC, // BABY SYMBOL
+        0x1F6BD, // TOILET
+        0x1F6BE, // WATER CLOSET
+        0x1F6C0  // BAT
+    };
+}
diff --git a/tests/tests/text/src/android/text/cts/EmojiTest.java b/tests/tests/text/src/android/text/cts/EmojiTest.java
new file mode 100755
index 0000000..a8d8d2d
--- /dev/null
+++ b/tests/tests/text/src/android/text/cts/EmojiTest.java
@@ -0,0 +1,242 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.text.cts;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.graphics.Picture;
+import android.test.ActivityInstrumentationTestCase2;
+import android.view.KeyEvent;
+import android.view.Menu;
+import android.view.View;
+import android.webkit.cts.WebViewOnUiThread;
+import android.widget.TextView;
+import android.widget.EditText;
+
+public class EmojiTest extends ActivityInstrumentationTestCase2<EmojiStubActivity> {
+
+    public EmojiTest() {
+        super("com.android.cts.stub", EmojiStubActivity.class);
+    }
+
+    protected void setUp() throws Exception {
+        super.setUp();
+    }
+
+    protected void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    /**
+     * Tests all Emoji are defined in Character class
+     */
+    public void testEmojiCodePoints() {
+        for (int i = 0; i < EmojiConstants.emojiCodePoints.length; i++) {
+            assertTrue(Character.isDefined(EmojiConstants.emojiCodePoints[i]));
+        }
+    }
+
+    /**
+     * Tests Emoji has different glyph for different meaning characters.
+     * Test on Canvas, TextView, EditText and WebView
+     */
+    public void testEmojiGlyph() {
+        CaptureCanvas ccanvas = new CaptureCanvas(getInstrumentation().getContext());
+        CaptureWebView cwebview = new CaptureWebView(getInstrumentation().getContext());
+
+        Bitmap mBitmapA, mBitmapB;  // Emoji displayed Bitmaps to compare
+
+        int comparedCodePoints[][] = {   // Emojis should have different characters
+            {0x1F436, 0x1F435},      // Dog(U+1F436) and Monkey(U+1F435)
+            {0x26BD, 0x26BE},        // Soccer ball(U+26BD) and Baseball(U+26BE)
+            {0x1F47B, 0x1F381},      // Ghost(U+1F47B) and wrapped present(U+1F381)
+            {0x2764, 0x1F494},       // Heavy black heart(U+2764) and broken heart(U+1F494)
+            {0x1F603, 0x1F33B}       // Smiling face with open mouth(U+1F603) and sunflower(U+1F33B)
+        };
+
+        for (int i = 0; i < comparedCodePoints.length; i++) {
+
+            mBitmapA = ccanvas.capture(Character.toChars(comparedCodePoints[i][0]));
+            mBitmapB = ccanvas.capture(Character.toChars(comparedCodePoints[i][1]));
+
+            assertFalse(mBitmapA.sameAs(mBitmapB));
+
+            // cannot reuse CaptureTextView as 2nd setText call throws NullPointerException
+            CaptureTextView cviewA = new CaptureTextView(getInstrumentation().getContext());
+            mBitmapA = cviewA.capture(Character.toChars(comparedCodePoints[i][0]));
+            CaptureTextView cviewB = new CaptureTextView(getInstrumentation().getContext());
+            mBitmapB = cviewB.capture(Character.toChars(comparedCodePoints[i][1]));
+
+            assertFalse(mBitmapA.sameAs(mBitmapB));
+
+            CaptureEditText cedittextA = new CaptureEditText(getInstrumentation().getContext());
+            mBitmapA = cedittextA.capture(Character.toChars(comparedCodePoints[i][0]));
+            CaptureEditText cedittextB = new CaptureEditText(getInstrumentation().getContext());
+            mBitmapB = cedittextB.capture(Character.toChars(comparedCodePoints[i][1]));
+
+            assertFalse(mBitmapA.sameAs(mBitmapB));
+
+            mBitmapA = cwebview.capture(Character.toChars(comparedCodePoints[i][0]));
+            mBitmapB = cwebview.capture(Character.toChars(comparedCodePoints[i][1]));
+
+            assertFalse(mBitmapA.sameAs(mBitmapB));
+
+        }
+    }
+
+    /**
+     * Tests EditText handles Emoji
+     */
+    public void testEmojiEditable() {
+        int testedCodePoints[] = {
+            0xAE,    // registered mark
+            0x2764,    // heavy black heart
+            0x1F353    // strawberry - surrogate pair sample. Count as two characters.
+        };
+
+        String origStr, newStr;
+
+        // delete Emoji by sending KEYCODE_DEL
+        for (int i = 0; i < testedCodePoints.length; i++) {
+            origStr = "Test character  ";
+            // cannot reuse CaptureTextView as 2nd setText call throws NullPointerException
+            EditText editText = new EditText(getInstrumentation().getContext());
+            editText.setText(origStr + String.valueOf(Character.toChars(testedCodePoints[i])));
+
+            // confirm the emoji is added.
+            newStr = editText.getText().toString();
+            assertEquals(newStr.codePointCount(0, newStr.length()), origStr.length() + 1);
+
+            // Delete added character by sending KEYCODE_DEL event
+            editText.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL));
+
+            newStr = editText.getText().toString();
+            assertEquals(newStr.codePointCount(0, newStr.length()), origStr.length() + 1);
+        }
+    }
+
+    private class CaptureCanvas extends View {
+
+        String mTestStr;
+        Paint paint = new Paint();
+
+        CaptureCanvas(Context context) {
+            super(context);
+        }
+
+        public void onDraw(Canvas canvas) {
+            if (mTestStr != null) {
+                canvas.drawText(mTestStr, 50, 50, paint);
+            }
+            return;
+        }
+
+        Bitmap capture(char c[]) {
+            mTestStr = String.valueOf(c);
+            invalidate();
+
+            setDrawingCacheEnabled(true);
+            measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
+                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+            layout(0, 0, 200,200);
+
+            Bitmap bitmap = Bitmap.createBitmap(getDrawingCache());
+            setDrawingCacheEnabled(false);
+            return bitmap;
+        }
+
+    }
+
+    private class CaptureTextView extends TextView {
+
+        CaptureTextView(Context context) {
+            super(context);
+        }
+
+        Bitmap capture(char c[]) {
+            setText(String.valueOf(c));
+
+            invalidate();
+
+            setDrawingCacheEnabled(true);
+            measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
+                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+            layout(0, 0, 200,200);
+
+            Bitmap bitmap = Bitmap.createBitmap(getDrawingCache());
+            setDrawingCacheEnabled(false);
+            return bitmap;
+        }
+
+    }
+
+    private class CaptureEditText extends EditText {
+
+        CaptureEditText(Context context) {
+            super(context);
+        }
+
+        Bitmap capture(char c[]) {
+            setText(String.valueOf(c));
+
+            invalidate();
+
+            setDrawingCacheEnabled(true);
+            measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
+                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+            layout(0, 0, 200,200);
+
+            Bitmap bitmap = Bitmap.createBitmap(getDrawingCache());
+            setDrawingCacheEnabled(false);
+            return bitmap;
+        }
+
+    }
+
+
+    private class CaptureWebView {
+
+        WebViewOnUiThread webViewOnUiThread;
+        Bitmap bitmap;
+        CaptureWebView(Context context) {
+            webViewOnUiThread = new WebViewOnUiThread(EmojiTest.this, getActivity().getWebView());
+        }
+
+        Bitmap capture(char c[]) {
+
+            webViewOnUiThread.loadDataAndWaitForCompletion("<html><body>" + String.valueOf(c) + "</body></html>",
+                    "text/html; charset=utf-8", "utf-8");
+
+            Picture picture = webViewOnUiThread.capturePicture();
+            if (picture == null || picture.getHeight() <= 0 || picture.getWidth() <= 0) {
+                return null;
+            } else {
+                bitmap = Bitmap.createBitmap(picture.getWidth(), picture.getHeight(),
+                        Bitmap.Config.ARGB_8888);
+                Canvas canvas = new Canvas(bitmap);
+                picture.draw(canvas);
+            }
+
+            return bitmap;
+        }
+
+    }
+
+}
+
diff --git a/tests/tests/text/src/android/text/cts/StaticLayoutLineBreakingTest.java b/tests/tests/text/src/android/text/cts/StaticLayoutLineBreakingTest.java
index 3aa8f35..b249b9e 100644
--- a/tests/tests/text/src/android/text/cts/StaticLayoutLineBreakingTest.java
+++ b/tests/tests/text/src/android/text/cts/StaticLayoutLineBreakingTest.java
@@ -49,7 +49,7 @@
         @Override
         public float getTextRunAdvances(char[] chars, int index, int count,
                 int contextIndex, int contextCount, int flags, float[] advances,
-                int advancesIndex, int reserved) {
+                int advancesIndex) {
 
             // Conditions copy pasted from Paint
             if (chars == null) {
diff --git a/tests/tests/text/src/android/text/format/cts/DateFormatTest.java b/tests/tests/text/src/android/text/format/cts/DateFormatTest.java
index 31ac271..9d739d3 100644
--- a/tests/tests/text/src/android/text/format/cts/DateFormatTest.java
+++ b/tests/tests/text/src/android/text/format/cts/DateFormatTest.java
@@ -24,6 +24,7 @@
 import android.text.format.DateFormat;
 
 import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
@@ -34,10 +35,11 @@
 
     private Context mContext;
     private ContentResolver mContentResolver;
-    // Date: 12-18-2008 5:30AM
+
+    // Date: 2008-12-18 05:30
     private static final int YEAR_FROM_1900 = 108;
     private static final int YEAR = 2008;
-    private static final int MONTH = 11;
+    private static final int MONTH = Calendar.DECEMBER; // java.util.Calendar months are 0-based.
     private static final int DAY = 18;
     private static final int HOUR = 5;
     private static final int MINUTE = 30;
@@ -70,13 +72,51 @@
     }
 
 
-    public void testDateFormat() {
+    public void test_is24HourFormat() {
         Settings.System.putString(mContentResolver, Settings.System.TIME_12_24, "24");
         assertTrue(DateFormat.is24HourFormat(mContext));
         Settings.System.putString(mContentResolver, Settings.System.TIME_12_24, "12");
         assertFalse(DateFormat.is24HourFormat(mContext));
     }
 
+    public void test_format_M() {
+        Calendar c = new GregorianCalendar(2008, Calendar.DECEMBER, 18);
+        assertEquals("D", DateFormat.format("MMMMM", c));
+        assertEquals("December", DateFormat.format("MMMM", c));
+        assertEquals("Dec", DateFormat.format("MMM", c));
+        assertEquals("12", DateFormat.format("MM", c));
+        assertEquals("12", DateFormat.format("M", c));
+    }
+
+    public void test_format_L() {
+        // TODO: we can't test other locales with this API so we can't test 'L' properly!
+        Calendar c = new GregorianCalendar(2008, Calendar.DECEMBER, 18);
+        assertEquals("D", DateFormat.format("LLLLL", c));
+        assertEquals("December", DateFormat.format("LLLL", c));
+        assertEquals("Dec", DateFormat.format("LLL", c));
+        assertEquals("12", DateFormat.format("LL", c));
+        assertEquals("12", DateFormat.format("L", c));
+    }
+
+    public void test_format_E() {
+        Calendar c = new GregorianCalendar(2008, Calendar.DECEMBER, 18);
+        assertEquals("T", DateFormat.format("EEEEE", c));
+        assertEquals("Thursday", DateFormat.format("EEEE", c));
+        assertEquals("Thu", DateFormat.format("EEE", c));
+        assertEquals("Thu", DateFormat.format("EE", c));
+        assertEquals("Thu", DateFormat.format("E", c));
+    }
+
+    public void test_format_c() {
+        // TODO: we can't test other locales with this API, so we can't test 'c' properly!
+        Calendar c = new GregorianCalendar(2008, Calendar.DECEMBER, 18);
+        assertEquals("T", DateFormat.format("ccccc", c));
+        assertEquals("Thursday", DateFormat.format("cccc", c));
+        assertEquals("Thu", DateFormat.format("ccc", c));
+        assertEquals("Thu", DateFormat.format("cc", c));
+        assertEquals("Thu", DateFormat.format("c", c));
+    }
+
     @SuppressWarnings("deprecation")
     public void testFormatMethods() throws ParseException {
         if (!mDefaultLocale.equals(Locale.US)) {
@@ -129,22 +169,68 @@
 
         calendar.setTimeInMillis(((long) Integer.MIN_VALUE + Integer.MIN_VALUE) * 1000L);
         assertEquals("Sun Nov 24 17:31:44 GMT+00:00 1833",
-                DateFormat.format("EEE MMM dd kk:mm:ss zzz yyyy", calendar));
+                DateFormat.format("EEE MMM dd HH:mm:ss zzz yyyy", calendar));
 
         calendar.setTimeInMillis(Integer.MIN_VALUE * 1000L);
         assertEquals("Fri Dec 13 20:45:52 GMT+00:00 1901",
-                DateFormat.format("EEE MMM dd kk:mm:ss zzz yyyy", calendar));
+                DateFormat.format("EEE MMM dd HH:mm:ss zzz yyyy", calendar));
 
         calendar.setTimeInMillis(0L);
         assertEquals("Thu Jan 01 00:00:00 GMT+00:00 1970",
-                DateFormat.format("EEE MMM dd kk:mm:ss zzz yyyy", calendar));
+                DateFormat.format("EEE MMM dd HH:mm:ss zzz yyyy", calendar));
 
         calendar.setTimeInMillis(Integer.MAX_VALUE * 1000L);
         assertEquals("Tue Jan 19 03:14:07 GMT+00:00 2038",
-                DateFormat.format("EEE MMM dd kk:mm:ss zzz yyyy", calendar));
+                DateFormat.format("EEE MMM dd HH:mm:ss zzz yyyy", calendar));
 
         calendar.setTimeInMillis((2L + Integer.MAX_VALUE + Integer.MAX_VALUE) * 1000L);
         assertEquals("Sun Feb 07 06:28:16 GMT+00:00 2106",
-                DateFormat.format("EEE MMM dd kk:mm:ss zzz yyyy", calendar));
+                DateFormat.format("EEE MMM dd HH:mm:ss zzz yyyy", calendar));
+    }
+
+    private static void checkFormat(String expected, String pattern, int hour) {
+        TimeZone utc = TimeZone.getTimeZone("UTC");
+
+        Calendar c = new GregorianCalendar(utc);
+        c.set(2013, Calendar.JANUARY, 1, hour, 00);
+
+        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
+        sdf.setTimeZone(utc);
+
+        if (pattern.equals("k") && (hour == 0 || hour == 24)) {
+          // http://b/8359981: 'k' has always been broken on Android, and we keep it broken
+          // for compatibility. Maybe one day we'll be able to fix this...
+          assertEquals("0", DateFormat.format(pattern, c));
+        } else {
+          assertEquals(expected, DateFormat.format(pattern, c));
+        }
+        assertEquals(expected, sdf.format(c.getTime()));
+    }
+
+    public void test_bug_8359981() {
+        checkFormat("24", "k", 00);
+        checkFormat( "0", "K", 00);
+        checkFormat("12", "h", 00);
+        checkFormat( "0", "H", 00);
+
+        checkFormat( "1", "k", 01);
+        checkFormat( "1", "K", 01);
+        checkFormat( "1", "h", 01);
+        checkFormat( "1", "H", 01);
+
+        checkFormat("12", "k", 12);
+        checkFormat( "0", "K", 12);
+        checkFormat("12", "h", 12);
+        checkFormat("12", "H", 12);
+
+        checkFormat("13", "k", 13);
+        checkFormat( "1", "K", 13);
+        checkFormat( "1", "h", 13);
+        checkFormat("13", "H", 13);
+
+        checkFormat("24", "k", 24);
+        checkFormat( "0", "K", 24);
+        checkFormat("12", "h", 24);
+        checkFormat( "0", "H", 24);
     }
 }
diff --git a/tests/tests/text/src/android/text/format/cts/DateUtilsTest.java b/tests/tests/text/src/android/text/format/cts/DateUtilsTest.java
index 420af25..14e01e8 100644
--- a/tests/tests/text/src/android/text/format/cts/DateUtilsTest.java
+++ b/tests/tests/text/src/android/text/format/cts/DateUtilsTest.java
@@ -28,10 +28,6 @@
 
 public class DateUtilsTest extends AndroidTestCase {
 
-    private static final long MIN_DURATION = 1000;
-    private static final long MINUTE_DURATION = 42 * 60 * 1000;
-    private static final long HOUR_DURATION = 2 * 60 * 60 * 1000;
-    private static final long DAY_DURATION = 5 * 24 * 60 * 60 * 1000;
     private long mBaseTime;
     private Context mContext;
 
@@ -87,36 +83,83 @@
         assertEquals("PM", DateUtils.getAMPMString(Calendar.PM));
     }
 
-
-    public void testGetSpanString() {
+    public void test_getRelativeTimeSpanString() {
         if (!LocaleUtils.isCurrentLocale(mContext, Locale.US)) {
             return;
         }
+
+        final long ONE_SECOND_IN_MS = 1000;
         assertEquals("0 minutes ago",
-                DateUtils.getRelativeTimeSpanString(mBaseTime - MIN_DURATION).toString());
+                     DateUtils.getRelativeTimeSpanString(mBaseTime - ONE_SECOND_IN_MS));
         assertEquals("in 0 minutes",
-                DateUtils.getRelativeTimeSpanString(mBaseTime + MIN_DURATION).toString());
+                     DateUtils.getRelativeTimeSpanString(mBaseTime + ONE_SECOND_IN_MS));
 
-        assertEquals("42 minutes ago", DateUtils.getRelativeTimeSpanString(
-                mBaseTime - MINUTE_DURATION, mBaseTime, DateUtils.MINUTE_IN_MILLIS).toString());
-        assertEquals("in 42 minutes", DateUtils.getRelativeTimeSpanString(
-                mBaseTime + MINUTE_DURATION, mBaseTime, DateUtils.MINUTE_IN_MILLIS).toString());
+        final long ONE_MINUTE_IN_MS = 60 * ONE_SECOND_IN_MS;
+        assertEquals("1 minute ago",
+                     DateUtils.getRelativeTimeSpanString(0, ONE_MINUTE_IN_MS, DateUtils.MINUTE_IN_MILLIS));
+        assertEquals("in 1 minute",
+                     DateUtils.getRelativeTimeSpanString(ONE_MINUTE_IN_MS, 0, DateUtils.MINUTE_IN_MILLIS));
 
-        assertEquals("2 hours ago", DateUtils.getRelativeTimeSpanString(mBaseTime - HOUR_DURATION,
-                mBaseTime, DateUtils.MINUTE_IN_MILLIS, DateUtils.FORMAT_NUMERIC_DATE).toString());
-        assertEquals("in 2 hours", DateUtils.getRelativeTimeSpanString(mBaseTime + HOUR_DURATION,
-                mBaseTime, DateUtils.MINUTE_IN_MILLIS, DateUtils.FORMAT_NUMERIC_DATE).toString());
-        assertEquals("in 42 mins", DateUtils.getRelativeTimeSpanString(mBaseTime + MINUTE_DURATION,
+        assertEquals("42 minutes ago",
+                     DateUtils.getRelativeTimeSpanString(mBaseTime - (42 * ONE_MINUTE_IN_MS),
+                                                         mBaseTime, DateUtils.MINUTE_IN_MILLIS));
+        assertEquals("in 42 minutes",
+                     DateUtils.getRelativeTimeSpanString(mBaseTime + (42 * ONE_MINUTE_IN_MS),
+                                                         mBaseTime, DateUtils.MINUTE_IN_MILLIS));
+
+        final long ONE_HOUR_IN_MS = 60 * 60 * 1000;
+        final long TWO_HOURS_IN_MS = 2 * ONE_HOUR_IN_MS;
+        assertEquals("2 hours ago", DateUtils.getRelativeTimeSpanString(mBaseTime - TWO_HOURS_IN_MS,
+                mBaseTime, DateUtils.MINUTE_IN_MILLIS, DateUtils.FORMAT_NUMERIC_DATE));
+        assertEquals("in 2 hours", DateUtils.getRelativeTimeSpanString(mBaseTime + TWO_HOURS_IN_MS,
+                mBaseTime, DateUtils.MINUTE_IN_MILLIS, DateUtils.FORMAT_NUMERIC_DATE));
+
+        assertEquals("in 42 mins", DateUtils.getRelativeTimeSpanString(mBaseTime + (42 * ONE_MINUTE_IN_MS),
                 mBaseTime, DateUtils.MINUTE_IN_MILLIS,
-                DateUtils.FORMAT_ABBREV_RELATIVE).toString());
+                DateUtils.FORMAT_ABBREV_RELATIVE));
 
+        final long ONE_DAY_IN_MS = 24 * ONE_HOUR_IN_MS;
+        assertEquals("Tomorrow",
+                     DateUtils.getRelativeTimeSpanString(ONE_DAY_IN_MS, 0, DateUtils.DAY_IN_MILLIS, 0));
+        assertEquals("in 2 days",
+                     DateUtils.getRelativeTimeSpanString(2 * ONE_DAY_IN_MS, 0, DateUtils.DAY_IN_MILLIS, 0));
+        assertEquals("Yesterday",
+                     DateUtils.getRelativeTimeSpanString(0, ONE_DAY_IN_MS, DateUtils.DAY_IN_MILLIS, 0));
+        assertEquals("2 days ago",
+                     DateUtils.getRelativeTimeSpanString(0, 2 * ONE_DAY_IN_MS, DateUtils.DAY_IN_MILLIS, 0));
+
+        final long DAY_DURATION = 5 * 24 * 60 * 60 * 1000;
+        assertNotNull(DateUtils.getRelativeTimeSpanString(mContext, mBaseTime - DAY_DURATION, true));
+        assertNotNull(DateUtils.getRelativeTimeSpanString(mContext, mBaseTime - DAY_DURATION));
+    }
+
+    public void test_getRelativeDateTimeString() {
+        final long DAY_DURATION = 5 * 24 * 60 * 60 * 1000;
         assertNotNull(DateUtils.getRelativeDateTimeString(mContext,
-                mBaseTime - DAY_DURATION, DateUtils.MINUTE_IN_MILLIS, DateUtils.DAY_IN_MILLIS,
-                DateUtils.FORMAT_NUMERIC_DATE).toString());
-        assertNotNull(DateUtils.getRelativeTimeSpanString(mContext,
-                mBaseTime - DAY_DURATION, true).toString());
-        assertNotNull(DateUtils.getRelativeTimeSpanString(mContext,
-                mBaseTime - DAY_DURATION).toString());
+                                                          mBaseTime - DAY_DURATION,
+                                                          DateUtils.MINUTE_IN_MILLIS,
+                                                          DateUtils.DAY_IN_MILLIS,
+                                                          DateUtils.FORMAT_NUMERIC_DATE));
+    }
+
+    public void test_formatElapsedTime() {
+        if (!LocaleUtils.isCurrentLocale(mContext, Locale.US)) {
+            return;
+        }
+
+        long MINUTES = 60;
+        long HOURS = 60 * MINUTES;
+        test_formatElapsedTime("02:01", 2 * MINUTES + 1);
+        test_formatElapsedTime("3:02:01", 3 * HOURS + 2 * MINUTES + 1);
+        // http://code.google.com/p/android/issues/detail?id=41401
+        test_formatElapsedTime("123:02:01", 123 * HOURS + 2 * MINUTES + 1);
+    }
+
+    private void test_formatElapsedTime(String expected, long elapsedTime) {
+        assertEquals(expected, DateUtils.formatElapsedTime(elapsedTime));
+        StringBuilder sb = new StringBuilder();
+        assertEquals(expected, DateUtils.formatElapsedTime(sb, elapsedTime));
+        assertEquals(expected, sb.toString());
     }
 
     @SuppressWarnings("deprecation")
@@ -125,13 +168,6 @@
             return;
         }
 
-        long elapsedTime = 2 * 60 * 60;
-        String expected = "2:00:00";
-        assertEquals(expected, DateUtils.formatElapsedTime(elapsedTime));
-        StringBuilder sb = new StringBuilder();
-        assertEquals(expected, DateUtils.formatElapsedTime(sb, elapsedTime));
-        assertEquals(expected, sb.toString());
-
         Date date = new Date(109, 0, 19, 3, 30, 15);
         long fixedTime = date.getTime();
 
@@ -139,28 +175,30 @@
         Date dateWithCurrentYear = new Date(currentYear - 1900, 0, 19, 3, 30, 15);
         long timeWithCurrentYear = dateWithCurrentYear.getTime();
 
+        final long DAY_DURATION = 5 * 24 * 60 * 60 * 1000;
         assertEquals("Saturday, January 24, 2009", DateUtils.formatSameDayTime(
                 fixedTime + DAY_DURATION, fixedTime, java.text.DateFormat.FULL,
-                java.text.DateFormat.FULL).toString());
+                java.text.DateFormat.FULL));
         assertEquals("Jan 24, 2009", DateUtils.formatSameDayTime(fixedTime + DAY_DURATION,
-                fixedTime, java.text.DateFormat.DEFAULT, java.text.DateFormat.FULL).toString());
+                fixedTime, java.text.DateFormat.DEFAULT, java.text.DateFormat.FULL));
         assertEquals("January 24, 2009", DateUtils.formatSameDayTime(fixedTime + DAY_DURATION,
-                fixedTime, java.text.DateFormat.LONG, java.text.DateFormat.FULL).toString());
+                fixedTime, java.text.DateFormat.LONG, java.text.DateFormat.FULL));
         assertEquals("Jan 24, 2009", DateUtils.formatSameDayTime(fixedTime + DAY_DURATION,
-                fixedTime, java.text.DateFormat.MEDIUM, java.text.DateFormat.FULL).toString());
+                fixedTime, java.text.DateFormat.MEDIUM, java.text.DateFormat.FULL));
         assertEquals("1/24/09", DateUtils.formatSameDayTime(fixedTime + DAY_DURATION,
-                fixedTime, java.text.DateFormat.SHORT, java.text.DateFormat.FULL).toString());
+                fixedTime, java.text.DateFormat.SHORT, java.text.DateFormat.FULL));
 
-        assertEquals("5:30:15 AM GMT", DateUtils.formatSameDayTime(fixedTime + HOUR_DURATION,
-                fixedTime, java.text.DateFormat.FULL, java.text.DateFormat.FULL).toString());
+        final long HOUR_DURATION = 2 * 60 * 60 * 1000;
+        assertEquals("5:30:15 AM GMT+00:00", DateUtils.formatSameDayTime(fixedTime + HOUR_DURATION,
+                fixedTime, java.text.DateFormat.FULL, java.text.DateFormat.FULL));
         assertEquals("5:30:15 AM", DateUtils.formatSameDayTime(fixedTime + HOUR_DURATION,
-                fixedTime, java.text.DateFormat.FULL, java.text.DateFormat.DEFAULT).toString());
-        assertEquals("5:30:15 AM GMT", DateUtils.formatSameDayTime(fixedTime + HOUR_DURATION,
-                fixedTime, java.text.DateFormat.FULL, java.text.DateFormat.LONG).toString());
+                fixedTime, java.text.DateFormat.FULL, java.text.DateFormat.DEFAULT));
+        assertEquals("5:30:15 AM GMT+00:00", DateUtils.formatSameDayTime(fixedTime + HOUR_DURATION,
+                fixedTime, java.text.DateFormat.FULL, java.text.DateFormat.LONG));
         assertEquals("5:30:15 AM", DateUtils.formatSameDayTime(fixedTime + HOUR_DURATION,
-                fixedTime, java.text.DateFormat.FULL, java.text.DateFormat.MEDIUM).toString());
+                fixedTime, java.text.DateFormat.FULL, java.text.DateFormat.MEDIUM));
         assertEquals("5:30 AM", DateUtils.formatSameDayTime(fixedTime + HOUR_DURATION,
-                fixedTime, java.text.DateFormat.FULL, java.text.DateFormat.SHORT).toString());
+                fixedTime, java.text.DateFormat.FULL, java.text.DateFormat.SHORT));
 
         long noonDuration = (8 * 60 + 30) * 60 * 1000 - 15 * 1000;
         long midnightDuration = (3 * 60 + 30) * 60 * 1000 + 15 * 1000;
@@ -217,16 +255,24 @@
     }
 
     public void testIsToday() {
+        final long ONE_DAY_IN_MS = 24 * 60 * 60 * 1000;
         assertTrue(DateUtils.isToday(mBaseTime));
-        assertFalse(DateUtils.isToday(mBaseTime - DAY_DURATION));
+        assertFalse(DateUtils.isToday(mBaseTime - ONE_DAY_IN_MS));
     }
 
     /**
-     * DateUtils is broken beyond Integer.MAX_VALUE seconds of 1970.
+     * DateUtils used to use Time rather than Calendar, which is broken
+     * because Time uses a 32-bit time_t rather than Calendar's 64-bit Java long.
      * http://code.google.com/p/android/issues/detail?id=13050
      */
     public void test2038() {
         assertEquals("00:00, Thursday, January 1, 1970", formatFull(0L));
+        assertEquals("17:31, Sunday, November 24, 1833",
+                     formatFull(((long) Integer.MIN_VALUE + Integer.MIN_VALUE) * 1000L));
+        assertEquals("20:45, Friday, December 13, 1901", formatFull(Integer.MIN_VALUE * 1000L));
+        assertEquals("03:14, Tuesday, January 19, 2038", formatFull(Integer.MAX_VALUE * 1000L));
+        assertEquals("06:28, Sunday, February 7, 2106",
+                     formatFull((2L + Integer.MAX_VALUE + Integer.MAX_VALUE) * 1000L));
     }
 
     private String formatFull(long millis) {
@@ -238,4 +284,17 @@
         DateUtils.formatDateRange(null, formatter, millis, millis, flags, "UTC");
         return formatter.toString();
     }
+
+    public void test_bug_7548161() {
+        long now = System.currentTimeMillis();
+        long today = now;
+        long tomorrow = now + DateUtils.DAY_IN_MILLIS;
+        long yesterday = now - DateUtils.DAY_IN_MILLIS;
+        assertEquals("Tomorrow", DateUtils.getRelativeTimeSpanString(tomorrow, now,
+                                                                     DateUtils.DAY_IN_MILLIS, 0));
+        assertEquals("Yesterday", DateUtils.getRelativeTimeSpanString(yesterday, now,
+                                                                      DateUtils.DAY_IN_MILLIS, 0));
+        assertEquals("Today", DateUtils.getRelativeTimeSpanString(today, now,
+                                                                  DateUtils.DAY_IN_MILLIS, 0));
+    }
 }
diff --git a/tests/tests/text/src/android/text/format/cts/TimeTest.java b/tests/tests/text/src/android/text/format/cts/TimeTest.java
index 98ba55f..e287270 100644
--- a/tests/tests/text/src/android/text/format/cts/TimeTest.java
+++ b/tests/tests/text/src/android/text/format/cts/TimeTest.java
@@ -661,10 +661,13 @@
     public void testGetJulianDay() throws Exception {
         Time time = new Time();
 
-        // For each day of the year, and for each timezone, get the Julian
-        // day for 12am and then check that if we change the time we get the
-        // same Julian day.
-        for (int monthDay = 1; monthDay <= 366; monthDay += 20) {
+        // For every 15th day of 2008, and for each of the timezones listed above,
+        // get the Julian day for 12am and then check that if we change the time we get the
+        // same Julian day. Note that one of the many problems with the Time class
+        // is its lack of error handling. If we accidentally hit a time that doesn't
+        // exist (because it was skipped by a daylight savings transition), rather than
+        // an error, you'll silently get 1970-01-01. We should @deprecate Time.
+        for (int monthDay = 1; monthDay <= 366; monthDay += 15) {
             for (int zoneIndex = 0; zoneIndex < mTimeZones.length; zoneIndex++) {
                 // We leave the "month" as zero because we are changing the
                 // "monthDay" from 1 to 366. The call to normalize() will
diff --git a/tests/tests/text/src/android/text/method/cts/BaseKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/BaseKeyListenerTest.java
index 2f629d6..a0e03f5 100644
--- a/tests/tests/text/src/android/text/method/cts/BaseKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/BaseKeyListenerTest.java
@@ -21,6 +21,7 @@
 
 import android.app.Activity;
 import android.app.Instrumentation;
+import android.cts.util.PollingCheck;
 import android.os.SystemClock;
 import android.test.ActivityInstrumentationTestCase2;
 import android.text.Editable;
@@ -54,6 +55,12 @@
         mActivity = getActivity();
         mInstrumentation = getInstrumentation();
         mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
+        new PollingCheck(1000) {
+            @Override
+            protected boolean check() {
+                return mTextView.hasWindowFocus();
+            }
+        }.run();
     }
 
     public void testBackspace() {
diff --git a/tests/tests/text/src/android/text/method/cts/DateKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/DateKeyListenerTest.java
index 21321c0..6551b52 100644
--- a/tests/tests/text/src/android/text/method/cts/DateKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/DateKeyListenerTest.java
@@ -21,6 +21,7 @@
 
 import android.app.Activity;
 import android.app.Instrumentation;
+import android.cts.util.PollingCheck;
 import android.test.ActivityInstrumentationTestCase2;
 import android.text.InputType;
 import android.text.method.DateKeyListener;
@@ -47,6 +48,12 @@
         mActivity = getActivity();
         mInstrumentation = getInstrumentation();
         mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
+        new PollingCheck(1000) {
+            @Override
+            protected boolean check() {
+                return mTextView.hasWindowFocus();
+            }
+        }.run();
     }
 
     public void testConstructor() {
diff --git a/tests/tests/text/src/android/text/method/cts/DateTimeKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/DateTimeKeyListenerTest.java
index 69709f8..9aac08b 100644
--- a/tests/tests/text/src/android/text/method/cts/DateTimeKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/DateTimeKeyListenerTest.java
@@ -21,6 +21,7 @@
 
 import android.app.Activity;
 import android.app.Instrumentation;
+import android.cts.util.PollingCheck;
 import android.test.ActivityInstrumentationTestCase2;
 import android.text.InputType;
 import android.text.method.DateTimeKeyListener;
@@ -46,6 +47,12 @@
         super.setUp();
 
         mActivity = getActivity();
+        new PollingCheck() {
+            @Override
+            protected boolean check() {
+                return mActivity.hasWindowFocus();
+            }
+        }.run();
         mInstrumentation = getInstrumentation();
         mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
     }
diff --git a/tests/tests/text/src/android/text/method/cts/DigitsKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/DigitsKeyListenerTest.java
index 0a1b5ae..16d9364 100644
--- a/tests/tests/text/src/android/text/method/cts/DigitsKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/DigitsKeyListenerTest.java
@@ -21,6 +21,7 @@
 
 import android.app.Activity;
 import android.app.Instrumentation;
+import android.cts.util.PollingCheck;
 import android.test.ActivityInstrumentationTestCase2;
 import android.text.InputType;
 import android.text.Spannable;
@@ -50,6 +51,12 @@
         mActivity = getActivity();
         mInstrumentation = getInstrumentation();
         mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
+        new PollingCheck(1000) {
+            @Override
+            protected boolean check() {
+                return mTextView.hasWindowFocus();
+            }
+        }.run();
     }
 
     public void testConstructor() {
@@ -64,8 +71,9 @@
      * 1. filter "123456", return null.
      * 2. filter "a1b2c3d", return "123"
      * 3. filter "-a1.b2c3d", return "123"
-     * 4. filter Spanned("-a1.b2c3d"), return Spanned("123") and copy spans.
-     * 5. filter "", return null
+     * 4. filter "+a1.b2c3d", return "123"
+     * 5. filter Spanned("-a1.b2c3d"), return Spanned("123") and copy spans.
+     * 6. filter "", return null
      */
     public void testFilter1() {
         String source = "123456";
@@ -87,6 +95,11 @@
                 dest, 0, dest.length())).toString());
         assertEquals(destString, dest.toString());
 
+        source = "+a1.b2c3d";
+        assertEquals("123", (digitsKeyListener.filter(source, 0, source.length(),
+                dest, 0, dest.length())).toString());
+        assertEquals(destString, dest.toString());
+
         Object what = new Object();
         Spannable spannableSource = new SpannableString(source);
         spannableSource.setSpan(what, 0, spannableSource.length(), Spanned.SPAN_POINT_POINT);
@@ -103,15 +116,21 @@
 
     /**
      * Check point:
-     * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-'.
+     * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '+'.
      * 1. filter "-123456", return null
-     * 2. filter "-a1.b2c3d", return "-123"
-     * 3. filter "-a1-b2c3d", return "-123"
-     * 4. filter "5-a1-b2c3d", return "5123"
-     * 5. filter Spanned("5-a1-b2c3d"), return Spanned("5123") and copy spans.
-     * 6. filter "", return null
-     * 7. filter "-123456" but dest has '-' after dend, return ""
-     * 8. filter "-123456" but dest has '-' before dstart, return "123456"
+     * 2. filter "+123456", return null
+     * 3. filter "-a1.b2c3d", return "-123"
+     * 4. filter "-a1-b2c3d", return "-123"
+     * 5. filter "+a1-b2c3d", return "+123"
+     * 6. filter "5-a1-b2c3d", return "5123"
+     * 7. filter "5-a1+b2c3d", return "5123"
+     * 8. filter "+5-a1+b2c3d", return "+5123"
+     * 9. filter Spanned("5-a1-b2c3d"), return Spanned("5123") and copy spans.
+     * 10. filter "", return null
+     * 11. filter "-123456" but dest has '-' after dend, return ""
+     * 12. filter "-123456" but dest has '+' after dend, return ""
+     * 13. filter "-123456" but dest has '-' before dstart, return "123456"
+     * 14. filter "+123456" but dest has '-' before dstart, return "123456"
      */
     public void testFilter2() {
         String source = "-123456";
@@ -123,6 +142,11 @@
                 dest, 0, dest.length()));
         assertEquals(destString, dest.toString());
 
+        source = "+123456";
+        assertNull(digitsKeyListener.filter(source, 0, source.length(),
+                dest, 0, dest.length()));
+        assertEquals(destString, dest.toString());
+
         source = "-a1.b2c3d";
         assertEquals("-123", (digitsKeyListener.filter(source, 0, source.length(),
                 dest, 0, dest.length())).toString());
@@ -133,11 +157,27 @@
                 dest, 0, dest.length())).toString());
         assertEquals(destString, dest.toString());
 
+        source = "+a1-b2c3d";
+        assertEquals("+123", (digitsKeyListener.filter(source, 0, source.length(),
+                dest, 0, dest.length())).toString());
+        assertEquals(destString, dest.toString());
+
         source = "5-a1-b2c3d";
         assertEquals("5123", (digitsKeyListener.filter(source, 0, source.length(),
                 dest, 0, dest.length())).toString());
         assertEquals(destString, dest.toString());
 
+        source = "5-a1+b2c3d";
+        assertEquals("5123", (digitsKeyListener.filter(source, 0, source.length(),
+                dest, 0, dest.length())).toString());
+        assertEquals(destString, dest.toString());
+
+        source = "+5-a1+b2c3d";
+        assertEquals("+5123", (digitsKeyListener.filter(source, 0, source.length(),
+                dest, 0, dest.length())).toString());
+        assertEquals(destString, dest.toString());
+
+        source = "5-a1+b2c3d";
         Object what = new Object();
         Spannable spannableSource = new SpannableString(source);
         spannableSource.setSpan(what, 0, spannableSource.length(), Spanned.SPAN_POINT_POINT);
@@ -158,11 +198,23 @@
                 dest, 0, dest.length() - 1)).toString());
         assertEquals(endSign, dest.toString());
 
+        endSign = "789+";
+        dest = new SpannableString(endSign);
+        assertEquals("", (digitsKeyListener.filter(source, 0, source.length(),
+                dest, 0, dest.length() - 1)).toString());
+        assertEquals(endSign, dest.toString());
+
         String startSign = "-789";
         dest = new SpannableString(startSign);
         assertEquals("123456", (digitsKeyListener.filter(source, 0, source.length(),
                 dest, 1, dest.length())).toString());
         assertEquals(startSign, dest.toString());
+
+        source = "+123456";
+        dest = new SpannableString(startSign);
+        assertEquals("123456", (digitsKeyListener.filter(source, 0, source.length(),
+                dest, 1, dest.length())).toString());
+        assertEquals(startSign, dest.toString());
     }
 
     /**
@@ -170,12 +222,13 @@
      * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.'.
      * 1. filter "123.456", return null
      * 2. filter "-a1.b2c3d", return "1.23"
-     * 3. filter "a1.b2c3d.", return "123."
-     * 4. filter "5.a1.b2c3d", return "51.23"
-     * 5. filter Spanned("5.a1.b2c3d"), return Spanned("51.23") and copy spans.
-     * 6. filter "", return null
-     * 7. filter "123.456" but dest has '.' after dend, return "123456"
-     * 8. filter "123.456" but dest has '.' before dstart, return "123456"
+     * 3. filter "+a1.b2c3d", return "1.23"
+     * 4. filter "a1.b2c3d.", return "123."
+     * 5. filter "5.a1.b2c3d", return "51.23"
+     * 6. filter Spanned("5.a1.b2c3d"), return Spanned("51.23") and copy spans.
+     * 7. filter "", return null
+     * 8. filter "123.456" but dest has '.' after dend, return "123456"
+     * 9. filter "123.456" but dest has '.' before dstart, return "123456"
      */
     public void testFilter3() {
         String source = "123.456";
@@ -192,6 +245,11 @@
                 dest, 0, dest.length())).toString());
         assertEquals(destString, dest.toString());
 
+        source = "+a1.b2c3d";
+        assertEquals("1.23", (digitsKeyListener.filter(source, 0, source.length(),
+                dest, 0, dest.length())).toString());
+        assertEquals(destString, dest.toString());
+
         source = "a1.b2c3d.";
         assertEquals("123.", (digitsKeyListener.filter(source, 0, source.length(),
                 dest, 0, dest.length())).toString());
@@ -231,17 +289,25 @@
 
     /**
      * Check point:
-     * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', '-'.
+     * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', '-',
+     * '+'.
      * 1. filter "-123.456", return null
-     * 2. filter "-a1.b2c3d", return "-1.23"
-     * 3. filter "a1.b-2c3d.", return "123."
-     * 4. filter "-5.a1.b2c3d", return "-51.23"
-     * 5. filter Spanned("-5.a1.b2c3d"), return Spanned("-51.23") and copy spans.
-     * 6. filter "", return null
-     * 7. filter "-123.456" but dest has '.' after dend, return "-123456"
-     * 8. filter "-123.456" but dest has '.' before dstart, return "123456"
-     * 9. filter "-123.456" but dest has '-' after dend, return ""
-     * 10. filter "-123.456" but dest has '-' before dstart, return "123.456"
+     * 2. filter "+123.456", return null
+     * 3. filter "-a1.b2c3d", return "-1.23"
+     * 4. filter "+a1.b2c3d", return "+1.23"
+     * 5. filter "a1.b-2c+3d.", return "123."
+     * 6. filter "-5.a1.b2c+3d", return "-51.23"
+     * 7. filter "+5.a1.b2c-3d", return "+51.23"
+     * 8. filter Spanned("-5.a1.b2c3d"), return Spanned("-51.23") and copy spans.
+     * 9. filter "", return null
+     * 10. filter "-123.456" but dest has '.' after dend, return "-123456"
+     * 11. filter "-123.456" but dest has '.' before dstart, return "123456"
+     * 12. filter "+123.456" but dest has '.' after dend, return "+123456"
+     * 13. filter "+123.456" but dest has '.' before dstart, return "123456"
+     * 14. filter "-123.456" but dest has '-' after dend, return ""
+     * 15. filter "-123.456" but dest has '+' after dend, return ""
+     * 16. filter "-123.456" but dest has '-' before dstart, return "123.456"
+     * 17. filter "+123.456" but dest has '-' before dstart, return "123.456"
      */
     public void testFilter4() {
         String source = "-123.456";
@@ -253,21 +319,32 @@
                 dest, 0, dest.length()));
         assertEquals(destString, dest.toString());
 
+        source = "+123.456";
+        assertNull(digitsKeyListener.filter(source, 0, source.length(),
+                dest, 0, dest.length()));
+        assertEquals(destString, dest.toString());
+
         source = "-a1.b2c3d";
         assertEquals("-1.23", (digitsKeyListener.filter(source, 0, source.length(),
                 dest, 0, dest.length())).toString());
         assertEquals(destString, dest.toString());
 
-        source = "a1.b-2c3d.";
+        source = "a1.b-2c+3d.";
         assertEquals("123.", (digitsKeyListener.filter(source, 0, source.length(),
                 dest, 0, dest.length())).toString());
         assertEquals(destString, dest.toString());
 
-        source = "-5.a1.b2c3d";
+        source = "-5.a1.b2c+3d";
         assertEquals("-51.23", (digitsKeyListener.filter(source, 0, source.length(),
                 dest, 0, dest.length())).toString());
         assertEquals(destString, dest.toString());
 
+        source = "+5.a1.b2c-3d";
+        assertEquals("+51.23", (digitsKeyListener.filter(source, 0, source.length(),
+                dest, 0, dest.length())).toString());
+        assertEquals(destString, dest.toString());
+
+        source = "-5.a1.b2c+3d";
         Object what = new Object();
         Spannable spannableSource = new SpannableString(source);
         spannableSource.setSpan(what, 0, spannableSource.length(), Spanned.SPAN_POINT_POINT);
@@ -294,17 +371,43 @@
                 dest, 1, dest.length())).toString());
         assertEquals(startDecimal, dest.toString());
 
+        source = "+123.456";
+        endDecimal = "789.";
+        dest = new SpannableString(endDecimal);
+        assertEquals("+123456", (digitsKeyListener.filter(source, 0, source.length(),
+                dest, 0, dest.length() - 1)).toString());
+        assertEquals(endDecimal, dest.toString());
+
+        startDecimal = ".789";
+        dest = new SpannableString(startDecimal);
+        assertEquals("123456", (digitsKeyListener.filter(source, 0, source.length(),
+                dest, 1, dest.length())).toString());
+        assertEquals(startDecimal, dest.toString());
+
+        source = "-123.456";
         String endSign = "789-";
         dest = new SpannableString(endSign);
         assertEquals("", (digitsKeyListener.filter(source, 0, source.length(),
                 dest, 0, dest.length() - 1)).toString());
         assertEquals(endSign, dest.toString());
 
+        endSign = "789+";
+        dest = new SpannableString(endSign);
+        assertEquals("", (digitsKeyListener.filter(source, 0, source.length(),
+                dest, 0, dest.length() - 1)).toString());
+        assertEquals(endSign, dest.toString());
+
         String startSign = "-789";
         dest = new SpannableString(startSign);
         assertEquals("123.456", (digitsKeyListener.filter(source, 0, source.length(),
                 dest, 1, dest.length())).toString());
         assertEquals(startSign, dest.toString());
+
+        source = "+123.456";
+        dest = new SpannableString(startSign);
+        assertEquals("123.456", (digitsKeyListener.filter(source, 0, source.length(),
+                dest, 1, dest.length())).toString());
+        assertEquals(startSign, dest.toString());
     }
 
     /**
@@ -346,12 +449,13 @@
 
     /**
      * Scenario description:
-     * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-'.
+     * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '+'.
      *  1. Press '-' key and check if the content of TextView becomes "-"
      *  2. Press '1' key and check if the content of TextView becomes "-1"
      *  3. Press '.' key and this key could not be accepted.
-     *  4. Press '2' key and check if the content of TextView becomes "-12"
-     *  5. Press '-' key and this key could not be accepted,
+     *  4. Press '+' key and this key could not be accepted.
+     *  5. Press '2' key and check if the content of TextView becomes "-12"
+     *  6. Press '-' key and this key could not be accepted,
      *     because text view accepts minus sign iff it at the beginning.
      */
     public void testDigitsKeyListener2() {
@@ -378,6 +482,10 @@
         sendKeys(KeyEvent.KEYCODE_PERIOD);
         assertEquals("-1", mTextView.getText().toString());
 
+        // press '+' key.
+        sendKeys(KeyEvent.KEYCODE_PLUS);
+        assertEquals("-1", mTextView.getText().toString());
+
         // press '2' key.
         sendKeys(KeyEvent.KEYCODE_2);
         assertEquals("-12", mTextView.getText().toString());
@@ -391,92 +499,98 @@
      * Scenario description:
      * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.'.
      *  1. Press '-' key and check if the content of TextView becomes ""
-     *  2. Press '1' key and check if the content of TextView becomes "1"
-     *  3. Press '.' key and check if the content of TextView becomes "1."
-     *  4. Press '2' key and check if the content of TextView becomes "1.2"
-     *  5. Press '.' key and this key could not be accepted,
+     *  2. Press '+' key and check if the content of TextView becomes ""
+     *  3. Press '1' key and check if the content of TextView becomes "1"
+     *  4. Press '.' key and check if the content of TextView becomes "1."
+     *  5. Press '2' key and check if the content of TextView becomes "1.2"
+     *  6. Press '.' key and this key could not be accepted,
      *     because text view accepts only one decimal point per field.
      */
     public void testDigitsKeyListener3() {
-//        final DigitsKeyListener digitsKeyListener = DigitsKeyListener.getInstance(false, true);
-//
-//        mActivity.runOnUiThread(new Runnable() {
-//            public void run() {
-//                mTextView.setKeyListener(digitsKeyListener);
-//                mTextView.requestFocus();
-//            }
-//        });
-//        mInstrumentation.waitForIdleSync();
-//        assertEquals("", mTextView.getText().toString());
-//
-//        // press '-' key.
-//        sendKeys(KeyEvent.KEYCODE_MINUS);
-//        assertEquals("", mTextView.getText().toString());
-//
-//        // press '1' key.
-//        sendKeys(KeyEvent.KEYCODE_1);
-//        assertEquals("1", mTextView.getText().toString());
-//
-//        // press '.' key.
-//        sendKeys(KeyEvent.KEYCODE_PERIOD);
-//        assertEquals("1.", mTextView.getText().toString());
-//
-//        // press '2' key.
-//        sendKeys(KeyEvent.KEYCODE_2);
-//        assertEquals("1.2", mTextView.getText().toString());
-//
-//        // press '.' key.
-//        sendKeys(KeyEvent.KEYCODE_PERIOD);
-//        assertEquals("1.2", mTextView.getText().toString());
+        final DigitsKeyListener digitsKeyListener = DigitsKeyListener.getInstance(false, true);
+
+        mActivity.runOnUiThread(new Runnable() {
+            public void run() {
+                mTextView.setKeyListener(digitsKeyListener);
+                mTextView.requestFocus();
+            }
+        });
+        mInstrumentation.waitForIdleSync();
+        assertEquals("", mTextView.getText().toString());
+
+        // press '-' key.
+        sendKeys(KeyEvent.KEYCODE_MINUS);
+        assertEquals("", mTextView.getText().toString());
+
+        // press '+' key.
+        sendKeys(KeyEvent.KEYCODE_PLUS);
+        assertEquals("", mTextView.getText().toString());
+
+        // press '1' key.
+        sendKeys(KeyEvent.KEYCODE_1);
+        assertEquals("1", mTextView.getText().toString());
+
+        // press '.' key.
+        sendKeys(KeyEvent.KEYCODE_PERIOD);
+        assertEquals("1.", mTextView.getText().toString());
+
+        // press '2' key.
+        sendKeys(KeyEvent.KEYCODE_2);
+        assertEquals("1.2", mTextView.getText().toString());
+
+        // press '.' key.
+        sendKeys(KeyEvent.KEYCODE_PERIOD);
+        assertEquals("1.2", mTextView.getText().toString());
     }
 
     /**
      * Scenario description:
-     * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '.'.
-     *  1. Press '-' key and check if the content of TextView becomes "-"
-     *  2. Press '1' key and check if the content of TextView becomes "-1"
+     * Current accepted characters are '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '+',
+     * '.'.
+     *  1. Press '+' key and check if the content of TextView becomes "+"
+     *  2. Press '1' key and check if the content of TextView becomes "+1"
      *  3. Press '.' key and this key could not be accepted.
-     *  4. Press '2' key and check if the content of TextView becomes "-12"
+     *  4. Press '2' key and check if the content of TextView becomes "+12"
      *  5. Press '-' key and this key could not be accepted,
      *     because text view accepts minus sign iff it at the beginning.
      *  6. Press '.' key and this key could not be accepted,
      *     because text view accepts only one decimal point per field.
      */
     public void testDigitsKeyListener4() {
-//        final DigitsKeyListener digitsKeyListener = DigitsKeyListener.getInstance(true, true);
-//
-//        mActivity.runOnUiThread(new Runnable() {
-//            public void run() {
-//                mTextView.setKeyListener(digitsKeyListener);
-//                mTextView.requestFocus();
-//            }
-//        });
-//        mInstrumentation.waitForIdleSync();
-//        assertEquals("", mTextView.getText().toString());
-//
-//        // press '-' key.
-//        sendKeys(KeyEvent.KEYCODE_MINUS);
-//        assertEquals("-", mTextView.getText().toString());
-//
-//        // press '1' key.
-//        sendKeys(KeyEvent.KEYCODE_1);
-//        assertEquals("-1", mTextView.getText().toString());
-//
-//        // press '.' key.
-//        sendKeys(KeyEvent.KEYCODE_PERIOD);
-//        assertEquals("-1.", mTextView.getText().toString());
-//
-//        // press '2' key.
-//        sendKeys(KeyEvent.KEYCODE_2);
-//        assertEquals("-1.2", mTextView.getText().toString());
-//
-//        // press '-' key.
-//        sendKeys(KeyEvent.KEYCODE_MINUS);
-//        assertEquals("-1.2", mTextView.getText().toString());
-//
-//        // press '.' key.
-//        sendKeys(KeyEvent.KEYCODE_PERIOD);
-//        assertEquals("-1.2", mTextView.getText().toString());
+        final DigitsKeyListener digitsKeyListener = DigitsKeyListener.getInstance(true, true);
+
+        mActivity.runOnUiThread(new Runnable() {
+            public void run() {
+                mTextView.setKeyListener(digitsKeyListener);
+                mTextView.requestFocus();
+            }
+        });
+        mInstrumentation.waitForIdleSync();
+        assertEquals("", mTextView.getText().toString());
+
+        // press '+' key.
+        sendKeys(KeyEvent.KEYCODE_PLUS);
+        assertEquals("+", mTextView.getText().toString());
+
+        // press '1' key.
+        sendKeys(KeyEvent.KEYCODE_1);
+        assertEquals("+1", mTextView.getText().toString());
+
+        // press '.' key.
+        sendKeys(KeyEvent.KEYCODE_PERIOD);
+        assertEquals("+1.", mTextView.getText().toString());
+
+        // press '2' key.
+        sendKeys(KeyEvent.KEYCODE_2);
+        assertEquals("+1.2", mTextView.getText().toString());
+
+        // press '-' key.
+        sendKeys(KeyEvent.KEYCODE_MINUS);
+        assertEquals("+1.2", mTextView.getText().toString());
+
+        // press '.' key.
+        sendKeys(KeyEvent.KEYCODE_PERIOD);
+        assertEquals("+1.2", mTextView.getText().toString());
     }
 
     /**
@@ -570,9 +684,9 @@
 
         final char[][] expected = new char[][] {
             new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' },
-            new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-' },
+            new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '+' },
             new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.' },
-            new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '.' },
+            new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '+', '.' },
         };
 
         TextMethodUtils.assertEquals(expected[0],
diff --git a/tests/tests/text/src/android/text/method/cts/NumberKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/NumberKeyListenerTest.java
index b8bf7ef..795382c 100644
--- a/tests/tests/text/src/android/text/method/cts/NumberKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/NumberKeyListenerTest.java
@@ -21,6 +21,7 @@
 
 import android.app.Activity;
 import android.app.Instrumentation;
+import android.cts.util.PollingCheck;
 import android.test.ActivityInstrumentationTestCase2;
 import android.text.Editable;
 import android.text.Selection;
@@ -52,6 +53,12 @@
         mActivity = getActivity();
         mInstrumentation = getInstrumentation();
         mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
+        new PollingCheck(1000) {
+            @Override
+            protected boolean check() {
+                return mTextView.hasWindowFocus();
+            }
+        }.run();
     }
 
     /**
diff --git a/tests/tests/text/src/android/text/method/cts/PasswordTransformationMethodTest.java b/tests/tests/text/src/android/text/method/cts/PasswordTransformationMethodTest.java
index 6d647b2..471f67a 100755
--- a/tests/tests/text/src/android/text/method/cts/PasswordTransformationMethodTest.java
+++ b/tests/tests/text/src/android/text/method/cts/PasswordTransformationMethodTest.java
@@ -49,7 +49,7 @@
 
     private boolean isPasswordPrefSaved;
 
-    private StubActivity mActicity;
+    private StubActivity mActivity;
 
     private MockPasswordTransformationMethod mMethod;
 
@@ -64,22 +64,28 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        mActicity = getActivity();
+        mActivity = getActivity();
+        new PollingCheck(1000) {
+            @Override
+            protected boolean check() {
+                return mActivity.hasWindowFocus();
+            }
+        }.run();
         mMethod = new MockPasswordTransformationMethod();
         try {
             runTestOnUiThread(new Runnable() {
                 public void run() {
-                    EditText editText = new EditText(mActicity);
+                    EditText editText = new EditText(mActivity);
                     editText.setId(EDIT_TXT_ID);
                     editText.setTransformationMethod(mMethod);
-                    Button button = new Button(mActicity);
-                    LinearLayout layout = new LinearLayout(mActicity);
+                    Button button = new Button(mActivity);
+                    LinearLayout layout = new LinearLayout(mActivity);
                     layout.setOrientation(LinearLayout.VERTICAL);
                     layout.addView(editText, new LayoutParams(LayoutParams.MATCH_PARENT,
                             LayoutParams.WRAP_CONTENT));
                     layout.addView(button, new LayoutParams(LayoutParams.MATCH_PARENT,
                             LayoutParams.WRAP_CONTENT));
-                    mActicity.setContentView(layout);
+                    mActivity.setContentView(layout);
                     editText.requestFocus();
                 }
             });
@@ -195,7 +201,7 @@
 
     private void savePasswordPref() {
         try {
-            mPasswordPrefBackUp = System.getInt(mActicity.getContentResolver(),
+            mPasswordPrefBackUp = System.getInt(mActivity.getContentResolver(),
                     System.TEXT_SHOW_PASSWORD);
             isPasswordPrefSaved = true;
         } catch (SettingNotFoundException e) {
@@ -205,13 +211,13 @@
 
     private void resumePasswordPref() {
         if (isPasswordPrefSaved) {
-            System.putInt(mActicity.getContentResolver(), System.TEXT_SHOW_PASSWORD,
+            System.putInt(mActivity.getContentResolver(), System.TEXT_SHOW_PASSWORD,
                     mPasswordPrefBackUp);
         }
     }
 
     private void switchShowPassword(boolean on) {
-        System.putInt(mActicity.getContentResolver(), System.TEXT_SHOW_PASSWORD,
+        System.putInt(mActivity.getContentResolver(), System.TEXT_SHOW_PASSWORD,
                 on ? 1 : 0);
     }
 
diff --git a/tests/tests/text/src/android/text/method/cts/TextKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/TextKeyListenerTest.java
index a95267a..9984efe 100644
--- a/tests/tests/text/src/android/text/method/cts/TextKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/TextKeyListenerTest.java
@@ -20,6 +20,7 @@
 
 
 import android.app.Instrumentation;
+import android.cts.util.PollingCheck;
 import android.os.SystemClock;
 import android.test.ActivityInstrumentationTestCase2;
 import android.test.UiThreadTest;
@@ -56,6 +57,12 @@
         mActivity = getActivity();
         mInstrumentation = getInstrumentation();
         mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
+        new PollingCheck(1000) {
+            @Override
+            protected boolean check() {
+                return mTextView.hasWindowFocus();
+            }
+        }.run();
     }
 
     public void testConstructor() {
diff --git a/tests/tests/text/src/android/text/method/cts/TimeKeyListenerTest.java b/tests/tests/text/src/android/text/method/cts/TimeKeyListenerTest.java
index cf80f8d..f9c172b 100644
--- a/tests/tests/text/src/android/text/method/cts/TimeKeyListenerTest.java
+++ b/tests/tests/text/src/android/text/method/cts/TimeKeyListenerTest.java
@@ -21,6 +21,7 @@
 
 import android.app.Activity;
 import android.app.Instrumentation;
+import android.cts.util.PollingCheck;
 import android.test.ActivityInstrumentationTestCase2;
 import android.text.InputType;
 import android.text.method.TimeKeyListener;
@@ -45,6 +46,12 @@
         mActivity = getActivity();
         mInstrumentation = getInstrumentation();
         mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
+        new PollingCheck(1000) {
+            @Override
+            protected boolean check() {
+                return mTextView.hasWindowFocus();
+            }
+        }.run();
     }
 
     public void testConstructor() {
diff --git a/tests/tests/text/src/android/text/util/cts/LinkifyTest.java b/tests/tests/text/src/android/text/util/cts/LinkifyTest.java
index 404f9d7..45111f2 100644
--- a/tests/tests/text/src/android/text/util/cts/LinkifyTest.java
+++ b/tests/tests/text/src/android/text/util/cts/LinkifyTest.java
@@ -26,6 +26,7 @@
 import android.text.util.Linkify.TransformFilter;
 import android.widget.TextView;
 
+import java.util.Locale;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -73,7 +74,6 @@
 
     public void testAddLinks1() {
         SpannableString spannable = new SpannableString("name@gmail.com, "
-                + "123456789, tel:(0812)1234567 "
                 + "www.google.com, http://www.google.com/language_tools?hl=en, ");
 
         assertTrue(Linkify.addLinks(spannable, Linkify.WEB_URLS));
@@ -87,12 +87,6 @@
         assertEquals(1, spans.length);
         assertEquals("mailto:name@gmail.com", spans[0].getURL());
 
-        assertTrue(Linkify.addLinks(spannable, Linkify.PHONE_NUMBERS));
-        spans = spannable.getSpans(0, spannable.length(), URLSpan.class);
-        assertEquals(2, spans.length);
-        assertEquals("tel:123456789", spans[0].getURL());
-        assertEquals("tel:08121234567", spans[1].getURL());
-
         try {
             Linkify.addLinks((Spannable) null, Linkify.WEB_URLS);
             fail("Should throw NullPointerException!");
@@ -304,4 +298,43 @@
         assertEquals("test:FilterUpperCase.pattern", spans[0].getURL());
         assertEquals("test:12", spans[1].getURL());
     }
+
+    public void testAddLinks7() {
+        String numbersInvalid = "123456789 not a phone number";
+        String numbersUKLocal = "tel:(0812)1234560 (0812)1234561";
+        String numbersUSLocal = "tel:(812)1234562 (812)123.4563 "
+                + " tel:(800)5551210 (800) 555-1211 555-1212";
+        String numbersIntl = "tel:+4408121234564 +44-0812-123-4565"
+                + " tel:+18005551213 +1-800-555-1214";
+        SpannableString spannable = new SpannableString(
+                numbersInvalid
+                + " " + numbersUKLocal
+                + " " + numbersUSLocal
+                + " " + numbersIntl);
+
+        // phonenumber linkify is locale-dependent
+        if (Locale.US.equals(Locale.getDefault())) {
+            assertTrue(Linkify.addLinks(spannable, Linkify.PHONE_NUMBERS));
+            URLSpan[] spans = spannable.getSpans(0, spannable.length(), URLSpan.class);
+            assertEquals(9, spans.length);
+            assertEquals("tel:8121234562", spans[0].getURL());
+            assertEquals("tel:8121234563", spans[1].getURL());
+            assertEquals("tel:8005551210", spans[2].getURL());
+            assertEquals("tel:8005551211", spans[3].getURL());
+            assertEquals("tel:5551212", spans[4].getURL());
+            assertEquals("tel:+4408121234564", spans[5].getURL());
+            assertEquals("tel:+4408121234565", spans[6].getURL());
+            assertEquals("tel:+18005551213", spans[7].getURL());
+            assertEquals("tel:+18005551214", spans[8].getURL());
+        }
+
+        try {
+            Linkify.addLinks((Spannable) null, Linkify.WEB_URLS);
+            fail("Should throw NullPointerException!");
+        } catch (NullPointerException e) {
+            // expect
+        }
+
+        assertFalse(Linkify.addLinks((Spannable) null, 0));
+    }
 }
diff --git a/tests/tests/view/src/android/view/cts/DisplayTest.java b/tests/tests/view/src/android/view/cts/DisplayTest.java
deleted file mode 100644
index 489282a..0000000
--- a/tests/tests/view/src/android/view/cts/DisplayTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * 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.
- */
-
-package android.view.cts;
-
-import android.content.Context;
-import android.test.AndroidTestCase;
-import android.util.DisplayMetrics;
-import android.view.Display;
-import android.view.WindowManager;
-
-public class DisplayTest extends AndroidTestCase {
-
-    /**
-     * Test the properties of Display, they are:
-     * 1 index of this display
-     * 2 height of this display in pixels
-     * 3 width of this display in pixels
-     * 4 orientation of this display
-     * 5 pixel format of this display
-     * 6 refresh rate of this display in frames per second
-     * 7 Initialize a DisplayMetrics object from this display's data
-     */
-    public void testGetDisplayAttrs() {
-        Context con = getContext();
-        WindowManager windowManager = (WindowManager) con.getSystemService(Context.WINDOW_SERVICE);
-        Display display = windowManager.getDefaultDisplay();
-
-        assertEquals(Display.DEFAULT_DISPLAY, display.getDisplayId());
-        assertTrue(0 < display.getHeight());
-        assertTrue(0 < display.getWidth());
-        display.getOrientation();
-        assertTrue(0 < display.getPixelFormat());
-        assertTrue(0 < display.getRefreshRate());
-
-        DisplayMetrics outMetrics = new DisplayMetrics();
-        outMetrics.setToDefaults();
-        display.getMetrics(outMetrics);
-        assertEquals(display.getHeight(), outMetrics.heightPixels);
-        assertEquals(display.getWidth(), outMetrics.widthPixels);
-
-        // The scale is in [0.1, 3], and density is the scale factor.
-        assertTrue(0.1f <= outMetrics.density && outMetrics.density <= 3.0f);
-        assertTrue(0.1f <= outMetrics.scaledDensity && outMetrics.density <= 3.0f);
-        assertTrue(0 < outMetrics.xdpi);
-        assertTrue(0 < outMetrics.ydpi);
-    }
-}
diff --git a/tests/tests/view/src/android/view/cts/SurfaceViewTest.java b/tests/tests/view/src/android/view/cts/SurfaceViewTest.java
index 2d61559..65f05b8 100644
--- a/tests/tests/view/src/android/view/cts/SurfaceViewTest.java
+++ b/tests/tests/view/src/android/view/cts/SurfaceViewTest.java
@@ -45,7 +45,14 @@
         super.setUp();
         mInstrumentation = getInstrumentation();
         mContext = mInstrumentation.getContext();
-        mMockSurfaceView = getActivity().getSurfaceView();
+        final SurfaceViewStubActivity activity = getActivity();
+        new PollingCheck() {
+            @Override
+                protected boolean check() {
+                return activity.hasWindowFocus();
+            }
+        }.run();
+        mMockSurfaceView = activity.getSurfaceView();
     }
 
     public void testConstructor() {
diff --git a/tests/tests/view/src/android/view/cts/ViewGroup_MarginLayoutParamsTest.java b/tests/tests/view/src/android/view/cts/ViewGroup_MarginLayoutParamsTest.java
index 404f5de..fe364bc 100644
--- a/tests/tests/view/src/android/view/cts/ViewGroup_MarginLayoutParamsTest.java
+++ b/tests/tests/view/src/android/view/cts/ViewGroup_MarginLayoutParamsTest.java
@@ -109,7 +109,6 @@
         mMarginLayoutParams = new ViewGroup.MarginLayoutParams(320, 480);
         mMarginLayoutParams.setMargins(20, 30, 120, 140);
         vg.setLayoutParams(mMarginLayoutParams);
-        vg.requestLayout();
 
         assertEquals(20, mMarginLayoutParams.leftMargin);
         assertEquals(30, mMarginLayoutParams.topMargin);
@@ -124,7 +123,6 @@
         // LTR / relative margin case
         mMarginLayoutParams.setMarginsRelative(20, 30, 120, 140);
         vg.setLayoutParams(mMarginLayoutParams);
-        vg.requestLayout();
 
         assertEquals(20, mMarginLayoutParams.getMarginStart());
         assertEquals(30, mMarginLayoutParams.topMargin);
@@ -142,7 +140,6 @@
         mMarginLayoutParams = new ViewGroup.MarginLayoutParams(320, 480);
         mMarginLayoutParams.setMargins(20, 30, 120, 140);
         vg.setLayoutParams(mMarginLayoutParams);
-        vg.requestLayout();
 
         assertEquals(20, mMarginLayoutParams.leftMargin);
         assertEquals(30, mMarginLayoutParams.topMargin);
@@ -157,7 +154,6 @@
         // RTL / relative margin case
         mMarginLayoutParams.setMarginsRelative(20, 30, 120, 140);
         vg.setLayoutParams(mMarginLayoutParams);
-        vg.requestLayout();
 
         assertEquals(20, mMarginLayoutParams.getMarginStart());
         assertEquals(30, mMarginLayoutParams.topMargin);
diff --git a/tests/tests/view/src/android/view/cts/ViewTest.java b/tests/tests/view/src/android/view/cts/ViewTest.java
index 0af3f21..27c98cc 100644
--- a/tests/tests/view/src/android/view/cts/ViewTest.java
+++ b/tests/tests/view/src/android/view/cts/ViewTest.java
@@ -101,6 +101,12 @@
     protected void setUp() throws Exception {
         super.setUp();
         mActivity = getActivity();
+        new PollingCheck() {
+            @Override
+                protected boolean check() {
+                return mActivity.hasWindowFocus();
+            }
+        }.run();
         mResources = mActivity.getResources();
         mMockParent = new MockViewParent(mActivity);
     }
@@ -2768,7 +2774,8 @@
         final MockView scrollView = (MockView) mActivity.findViewById(R.id.scroll_view);
         Bitmap bitmap = Bitmap.createBitmap(200, 300, Bitmap.Config.RGB_565);
         final BitmapDrawable d = new BitmapDrawable(bitmap);
-        final InputMethodManager imm = InputMethodManager.getInstance(getActivity());
+        final InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(
+                Context.INPUT_METHOD_SERVICE);
         final LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(300, 500);
         runTestOnUiThread(new Runnable() {
             public void run() {
@@ -3110,7 +3117,8 @@
     }
 
     public void testInputConnection() throws Throwable {
-        final InputMethodManager imm = InputMethodManager.getInstance(getActivity());
+        final InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(
+                Context.INPUT_METHOD_SERVICE);
         final MockView view = (MockView) mActivity.findViewById(R.id.mock_view);
         final ViewGroup viewGroup = (ViewGroup) mActivity.findViewById(R.id.viewlayout_root);
         final MockEditText editText = new MockEditText(mActivity);
diff --git a/tests/tests/view/src/android/view/cts/ViewTreeObserverTest.java b/tests/tests/view/src/android/view/cts/ViewTreeObserverTest.java
index c5b56a4..cc05853 100644
--- a/tests/tests/view/src/android/view/cts/ViewTreeObserverTest.java
+++ b/tests/tests/view/src/android/view/cts/ViewTreeObserverTest.java
@@ -35,7 +35,6 @@
 import android.view.ViewTreeObserver.OnTouchModeChangeListener;
 import android.widget.Button;
 import android.widget.LinearLayout;
-import android.widget.ListView;
 import android.widget.ScrollView;
 
 public class ViewTreeObserverTest extends ActivityInstrumentationTestCase2<MockActivity> {
@@ -49,6 +48,12 @@
         super.setUp();
         mViewTreeObserver = null;
         mActivity = getActivity();
+        new PollingCheck() {
+            @Override
+                protected boolean check() {
+                return mActivity.hasWindowFocus();
+            }
+        }.run();
         mInstrumentation = getInstrumentation();
         layout(R.layout.viewtreeobserver_layout);
     }
@@ -69,8 +74,15 @@
 
     public void testAddOnGlobalFocusChangeListener() {
         final LinearLayout layout = (LinearLayout) mActivity.findViewById(R.id.linearlayout);
-        final ListView lv1 = (ListView) mActivity.findViewById(R.id.listview1);
-        final ListView lv2 = (ListView) mActivity.findViewById(R.id.listview2);
+        final View view1 = mActivity.findViewById(R.id.view1);
+        final View view2 = mActivity.findViewById(R.id.view2);
+
+        mInstrumentation.runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                view1.requestFocus();
+            }
+        });
 
         mViewTreeObserver = layout.getViewTreeObserver();
         final MockOnGlobalFocusChangeListener listener = new MockOnGlobalFocusChangeListener();
@@ -80,14 +92,15 @@
         mInstrumentation.runOnMainSync(new Runnable() {
             @Override
             public void run() {
-                layout.requestChildFocus(lv1, lv2);
+                view2.requestFocus();
             }
         });
         mInstrumentation.waitForIdleSync();
         new PollingCheck() {
             @Override
             protected boolean check() {
-                return listener.hasCalledOnGlobalFocusChanged();
+                return listener.hasCalledOnGlobalFocusChanged()
+                        && listener.oldFocus == view1 && listener.newFocus == view2;
             }
         }.run();
     }
@@ -144,16 +157,16 @@
     }
 
     public void testAddOnComputeInternalInsetsListener() {
-        final ListView lv1 = (ListView) mActivity.findViewById(R.id.listview1);
-        mViewTreeObserver = lv1.getViewTreeObserver();
+        final View view1 = mActivity.findViewById(R.id.view1);
+        mViewTreeObserver = view1.getViewTreeObserver();
 
         MockOnComputeInternalInsetsListener listener = new MockOnComputeInternalInsetsListener();
         mViewTreeObserver.addOnComputeInternalInsetsListener(listener);
     }
 
     public void testRemoveOnComputeInternalInsetsListener() {
-        final ListView lv1 = (ListView) mActivity.findViewById(R.id.listview1);
-        mViewTreeObserver = lv1.getViewTreeObserver();
+        final View view1 = mActivity.findViewById(R.id.view1);
+        mViewTreeObserver = view1.getViewTreeObserver();
 
         MockOnComputeInternalInsetsListener listener = new MockOnComputeInternalInsetsListener();
         mViewTreeObserver.removeOnComputeInternalInsetsListener(listener);
@@ -207,8 +220,15 @@
 
     public void testRemoveOnGlobalFocusChangeListener() {
         final LinearLayout layout = (LinearLayout) mActivity.findViewById(R.id.linearlayout);
-        final ListView lv1 = (ListView) mActivity.findViewById(R.id.listview1);
-        final ListView lv2 = (ListView) mActivity.findViewById(R.id.listview2);
+        final View view1 = mActivity.findViewById(R.id.view1);
+        final View view2 = mActivity.findViewById(R.id.view2);
+
+        mInstrumentation.runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                view1.requestFocus();
+            }
+        });
 
         mViewTreeObserver = layout.getViewTreeObserver();
         final MockOnGlobalFocusChangeListener listener = new MockOnGlobalFocusChangeListener();
@@ -217,14 +237,15 @@
         mInstrumentation.runOnMainSync(new Runnable() {
             @Override
             public void run() {
-                layout.requestChildFocus(lv1, lv2);
+                view2.requestFocus();
             }
         });
         mInstrumentation.waitForIdleSync();
         new PollingCheck() {
             @Override
             protected boolean check() {
-                return listener.hasCalledOnGlobalFocusChanged();
+                return listener.hasCalledOnGlobalFocusChanged()
+                        && listener.oldFocus == view1 && listener.newFocus == view2;
             }
         }.run();
 
@@ -234,7 +255,7 @@
         mInstrumentation.runOnMainSync(new Runnable() {
             @Override
             public void run() {
-                layout.requestChildFocus(lv1, lv2);
+                view1.requestFocus();
             }
         });
         mInstrumentation.waitForIdleSync();
@@ -345,10 +366,14 @@
 
     private class MockOnGlobalFocusChangeListener implements OnGlobalFocusChangeListener {
         private boolean mCalledOnGlobalFocusChanged = false;
+        View oldFocus;
+        View newFocus;
 
         @Override
         public void onGlobalFocusChanged(View oldFocus, View newFocus) {
             mCalledOnGlobalFocusChanged = true;
+            this.oldFocus = oldFocus;
+            this.newFocus = newFocus;
         }
 
         public boolean hasCalledOnGlobalFocusChanged() {
@@ -357,6 +382,8 @@
 
         public void reset() {
             mCalledOnGlobalFocusChanged = false;
+            oldFocus = null;
+            newFocus = null;
         }
     }
 
diff --git a/tests/tests/view/src/android/view/inputmethod/cts/BaseInputConnectionTest.java b/tests/tests/view/src/android/view/inputmethod/cts/BaseInputConnectionTest.java
index ad6f971..247578b 100755
--- a/tests/tests/view/src/android/view/inputmethod/cts/BaseInputConnectionTest.java
+++ b/tests/tests/view/src/android/view/inputmethod/cts/BaseInputConnectionTest.java
@@ -56,6 +56,12 @@
         super.setUp();
         mInstrumentation = getInstrumentation();
         mActivity = getActivity();
+        new PollingCheck() {
+            @Override
+                protected boolean check() {
+                return mActivity.hasWindowFocus();
+            }
+        }.run();
         mWindow = mActivity.getWindow();
         mView = (EditText) mWindow.findViewById(R.id.entry);
         mConnection = new BaseInputConnection(mView, true);
diff --git a/tests/tests/webkit/AndroidManifest.xml b/tests/tests/webkit/AndroidManifest.xml
index 9475451..493762e 100644
--- a/tests/tests/webkit/AndroidManifest.xml
+++ b/tests/tests/webkit/AndroidManifest.xml
@@ -19,6 +19,8 @@
     package="com.android.cts.webkit">
 
     <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
+    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
     <application>
         <uses-library android:name="android.test.runner" />
     </application>
diff --git a/tests/tests/webkit/src/android/webkit/cts/CacheManagerTest.java b/tests/tests/webkit/src/android/webkit/cts/CacheManagerTest.java
deleted file mode 100644
index 66b1e02..0000000
--- a/tests/tests/webkit/src/android/webkit/cts/CacheManagerTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * 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.
- */
-
-package android.webkit.cts;
-
-import android.cts.util.PollingCheck;
-import android.test.ActivityInstrumentationTestCase2;
-import android.webkit.CacheManager;
-import android.webkit.CacheManager.CacheResult;
-
-
-import java.util.Map;
-
-public class CacheManagerTest extends ActivityInstrumentationTestCase2<WebViewStubActivity> {
-    private static final long CACHEMANAGER_INIT_TIMEOUT = 5000L;
-    private static final long NETWORK_OPERATION_TIMEOUT = 10000L;
-
-    private CtsTestServer mWebServer;
-    private WebViewOnUiThread mOnUiThread;
-
-    public CacheManagerTest() {
-        super("com.android.cts.stub", WebViewStubActivity.class);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mOnUiThread = new WebViewOnUiThread(this, getActivity().getWebView());
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        mOnUiThread.cleanUp();
-        if (mWebServer != null) {
-            mWebServer.shutdown();
-        }
-        super.tearDown();
-    }
-
-    public void testGetCacheFileBaseDir() {
-        assertTrue(CacheManager.getCacheFileBaseDir().exists());
-    }
-
-    public void testCacheTransaction() {
-    }
-
-    public void testCacheFile() throws Exception {
-        mWebServer = new CtsTestServer(getActivity());
-        final String url = mWebServer.getAssetUrl(TestHtmlConstants.EMBEDDED_IMG_URL);
-
-        // Wait for CacheManager#init() finish.
-        new PollingCheck(CACHEMANAGER_INIT_TIMEOUT) {
-            @Override
-            protected boolean check() {
-                return CacheManager.getCacheFileBaseDir() != null;
-            }
-        }.run();
-
-        mOnUiThread.clearCache(true);
-        new PollingCheck(NETWORK_OPERATION_TIMEOUT) {
-            @Override
-            protected boolean check() {
-                CacheResult result = CacheManager.getCacheFile(url, null);
-                return result == null;
-            }
-        }.run();
-
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        new PollingCheck(NETWORK_OPERATION_TIMEOUT) {
-            @Override
-            protected boolean check() {
-                CacheResult result = CacheManager.getCacheFile(url, null);
-                return result != null;
-            }
-        }.run();
-
-        // Can not test saveCacheFile(), because the output stream is null and
-        // saveCacheFile() will throw a NullPointerException.  There is no
-        // public API to set the output stream.
-    }
-
-    public void testCacheDisabled() {
-        // The cache should always be enabled.
-        assertFalse(CacheManager.cacheDisabled());
-    }
-}
diff --git a/tests/tests/webkit/src/android/webkit/cts/CacheManager_CacheResultTest.java b/tests/tests/webkit/src/android/webkit/cts/CacheManager_CacheResultTest.java
deleted file mode 100755
index 0c2a51a..0000000
--- a/tests/tests/webkit/src/android/webkit/cts/CacheManager_CacheResultTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * 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.
- */
-
-package android.webkit.cts;
-
-import android.cts.util.PollingCheck;
-import android.test.ActivityInstrumentationTestCase2;
-import android.webkit.CacheManager;
-import android.webkit.CacheManager.CacheResult;
-import android.webkit.WebView;
-
-
-import org.apache.http.HttpStatus;
-import org.apache.http.impl.cookie.DateUtils;
-
-import java.io.File;
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Map;
-
-public class CacheManager_CacheResultTest
-        extends ActivityInstrumentationTestCase2<WebViewStubActivity> {
-    private static final long NETWORK_OPERATION_TIMEOUT = 10000L;
-
-    private CtsTestServer mWebServer;
-    private WebViewOnUiThread mOnUiThread;
-
-    public CacheManager_CacheResultTest() {
-        super("com.android.cts.stub", WebViewStubActivity.class);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mOnUiThread = new WebViewOnUiThread(this, getActivity().getWebView());
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        mOnUiThread.cleanUp();
-        if (mWebServer != null) {
-            mWebServer.shutdown();
-        }
-        super.tearDown();
-    }
-
-    public void testCacheResult() throws Exception {
-        final long validity = 5 * 60 * 1000; // 5 min
-        final long age = 30 * 60 * 1000; // 30 min
-        final long tolerance = 5 * 1000; // 5s
-
-        mWebServer = new CtsTestServer(getActivity());
-        final String url = mWebServer.getAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
-        mWebServer.setDocumentAge(age);
-        mWebServer.setDocumentValidity(validity);
-
-        mOnUiThread.clearCache(true);
-        new PollingCheck(NETWORK_OPERATION_TIMEOUT) {
-            @Override
-            protected boolean check() {
-                CacheResult result =
-                    CacheManager.getCacheFile(url, null);
-                return result == null;
-            }
-        }.run();
-        final long time = System.currentTimeMillis();
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-
-        Map<String, String> headers = new HashMap<String, String>();
-        CacheResult result = CacheManager.getCacheFile(url, headers);
-        assertTrue(headers.isEmpty());
-
-        assertNotNull(result);
-        assertNotNull(result.getInputStream());
-        assertTrue(result.getContentLength() > 0);
-        assertNull(result.getETag());
-        assertEquals((double)(time - age),
-                (double)DateUtils.parseDate(result.getLastModified()).getTime(),
-                (double)tolerance);
-        File file = new File(CacheManager.getCacheFileBaseDir().getPath(), result.getLocalPath());
-        assertTrue(file.exists());
-        assertNull(result.getLocation());
-        assertEquals("text/html", result.getMimeType());
-        assertNull(result.getOutputStream());
-        assertEquals((double)(time + validity), (double)result.getExpires(),
-                (double)tolerance);
-        assertEquals(HttpStatus.SC_OK, result.getHttpStatusCode());
-        assertNotNull(result.getEncoding());
-
-        result.setEncoding("iso-8859-1");
-        assertEquals("iso-8859-1", result.getEncoding());
-
-        result.setInputStream(null);
-        assertNull(result.getInputStream());
-    }
-}
diff --git a/tests/tests/webkit/src/android/webkit/cts/ChromeClient.java b/tests/tests/webkit/src/android/webkit/cts/ChromeClient.java
index 3df78a4..ca61b24 100644
--- a/tests/tests/webkit/src/android/webkit/cts/ChromeClient.java
+++ b/tests/tests/webkit/src/android/webkit/cts/ChromeClient.java
@@ -20,6 +20,7 @@
 
 // A chrome client for listening webview chrome events.
 class ChromeClient extends WaitForProgressClient {
+
     private boolean mIsMessageLevelAvailable;
     private ConsoleMessage.MessageLevel mMessageLevel;
 
@@ -32,7 +33,8 @@
         mMessageLevel = message.messageLevel();
         mIsMessageLevelAvailable = true;
         notify();
-        return true;
+        // return false for default handling; i.e. printing the message.
+        return false;
     }
 
     public synchronized ConsoleMessage.MessageLevel getMessageLevel(int timeout) {
@@ -45,4 +47,4 @@
         }
         return mMessageLevel;
     }
-}
\ No newline at end of file
+}
diff --git a/tests/tests/webkit/src/android/webkit/cts/CookieManagerTest.java b/tests/tests/webkit/src/android/webkit/cts/CookieManagerTest.java
index 51eae48..a0b4fa6 100755
--- a/tests/tests/webkit/src/android/webkit/cts/CookieManagerTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/CookieManagerTest.java
@@ -68,7 +68,7 @@
         CtsTestServer server = new CtsTestServer(getActivity(), false);
         String url = server.getCookieUrl("conquest.html");
         mOnUiThread.loadUrlAndWaitForCompletion(url);
-        assertEquals(null, mOnUiThread.getTitle()); // no cookies passed
+        assertEquals("0", mOnUiThread.getTitle()); // no cookies passed
         Thread.sleep(500);
         assertNull(mCookieManager.getCookie(url));
 
@@ -77,7 +77,7 @@
 
         url = server.getCookieUrl("war.html");
         mOnUiThread.loadUrlAndWaitForCompletion(url);
-        assertEquals(null, mOnUiThread.getTitle()); // no cookies passed
+        assertEquals("0", mOnUiThread.getTitle()); // no cookies passed
         waitForCookie(url);
         String cookie = mCookieManager.getCookie(url);
         assertNotNull(cookie);
@@ -89,7 +89,7 @@
 
         url = server.getCookieUrl("famine.html");
         mOnUiThread.loadUrlAndWaitForCompletion(url);
-        assertEquals("count=0", mOnUiThread.getTitle()); // outgoing cookie
+        assertEquals("1|count=0", mOnUiThread.getTitle()); // outgoing cookie
         waitForCookie(url);
         cookie = mCookieManager.getCookie(url);
         assertNotNull(cookie);
@@ -100,7 +100,7 @@
         url = server.getCookieUrl("death.html");
         mCookieManager.setCookie(url, "count=41");
         mOnUiThread.loadUrlAndWaitForCompletion(url);
-        assertEquals("count=41", mOnUiThread.getTitle()); // outgoing cookie
+        assertEquals("1|count=41", mOnUiThread.getTitle()); // outgoing cookie
         waitForCookie(url);
         cookie = mCookieManager.getCookie(url);
         assertNotNull(cookie);
diff --git a/tests/tests/webkit/src/android/webkit/cts/CookieTest.java b/tests/tests/webkit/src/android/webkit/cts/CookieTest.java
index 14a14d0..0c0396a 100644
--- a/tests/tests/webkit/src/android/webkit/cts/CookieTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/CookieTest.java
@@ -45,23 +45,6 @@
             }
         }
         assertFalse(mCookieManager.hasCookies());
-
-    }
-
-    public void testParse() {
-        String url = "http://www.foo.com";
-
-        // basic
-        mCookieManager.setCookie(url, "a=b");
-        String cookie = mCookieManager.getCookie(url);
-        assertTrue(cookie.equals("a=b"));
-
-        // quoted
-        mCookieManager.setCookie(url, "c=\"d;\"");
-        cookie = mCookieManager.getCookie(url);
-
-        assertTrue(cookie.contains("a=b"));
-        assertTrue(cookie.contains("c=\"d;\""));
     }
 
     public void testDomain() {
diff --git a/tests/tests/webkit/src/android/webkit/cts/GeolocationTest.java b/tests/tests/webkit/src/android/webkit/cts/GeolocationTest.java
new file mode 100644
index 0000000..820bc79
--- /dev/null
+++ b/tests/tests/webkit/src/android/webkit/cts/GeolocationTest.java
@@ -0,0 +1,514 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.webkit.cts;
+
+import android.content.Context;
+import android.cts.util.PollingCheck;
+import android.graphics.Bitmap;
+import android.location.Criteria;
+import android.location.Location;
+import android.location.LocationListener;
+import android.location.LocationManager;
+import android.location.LocationProvider;
+import android.os.Bundle;
+import android.os.Looper;
+import android.os.SystemClock;
+import android.test.ActivityInstrumentationTestCase2;
+import android.webkit.CookieManager;
+import android.webkit.CookieSyncManager;
+import android.webkit.GeolocationPermissions;
+import android.webkit.JavascriptInterface;
+import android.webkit.WebChromeClient;
+import android.webkit.WebResourceResponse;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+import android.webkit.cts.WebViewOnUiThread.WaitForLoadedClient;
+import android.webkit.cts.WebViewOnUiThread.WaitForProgressClient;
+
+import java.io.ByteArrayInputStream;
+import java.io.UnsupportedEncodingException;
+import java.util.concurrent.Callable;
+import java.util.Date;
+import java.util.Random;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.Set;
+import java.util.TreeSet;
+
+import junit.framework.Assert;
+
+public class GeolocationTest extends ActivityInstrumentationTestCase2<WebViewStubActivity> {
+
+    // TODO Write additional tests to cover:
+    // - test that the errors are correct
+    // - test that use of gps and network location is correct
+
+    // The URLs does not matter since the tests will intercept the load, but it has to be a real
+    // url, and different domains.
+    private static final String URL_1 = "http://www.example.com";
+    private static final String URL_2 = "http://www.example.org";
+
+    private static final String JS_INTERFACE_NAME = "Android";
+    private static final int POLLING_TIMEOUT = 60 * 1000;
+    private static final String PROVIDER_NAME = LocationManager.NETWORK_PROVIDER;
+
+    // static HTML page always injected instead of the url loaded
+    private static final String RAW_HTML =
+            "<!DOCTYPE html>\n" +
+            "<html>\n" +
+            "  <head>\n" +
+            "    <title>Geolocation</title>\n" +
+            "    <script>\n" +
+            "      function gotPos(position) {\n" +
+            "        " + JS_INTERFACE_NAME + ".gotLocation();\n" +
+            "      }\n" +
+            "      function initiate_getCurrentPosition() {\n" +
+            "        navigator.geolocation.getCurrentPosition(\n" +
+            "            gotPos,\n" +
+            "            handle_errors,\n" +
+            "            {maximumAge:1000});\n" +
+            "      }\n" +
+            "      function handle_errors(error) {\n" +
+            "        switch(error.code) {\n" +
+            "          case error.PERMISSION_DENIED:\n" +
+            "            " + JS_INTERFACE_NAME + ".errorDenied(); break;\n" +
+            "          case error.POSITION_UNAVAILABLE:\n" +
+            "            " + JS_INTERFACE_NAME + ".errorUnavailable(); break;\n" +
+            "          case error.TIMEOUT:\n" +
+            "            " + JS_INTERFACE_NAME + ".errorTimeout(); break;\n" +
+            "          default: break;\n" +
+            "        }\n" +
+            "      }\n" +
+            "    </script>\n" +
+            "  </head>\n" +
+            "  <body onload=\"initiate_getCurrentPosition();\">\n" +
+            "  </body>\n" +
+            "</html>";
+
+    private JavascriptStatusReceiver mJavascriptStatusReceiver;
+    private LocationManager mLocationManager;
+    private WebViewOnUiThread mOnUiThread;
+
+    public GeolocationTest() throws Exception {
+        super("com.android.cts.stub", WebViewStubActivity.class);
+    }
+
+    // Both this test and WebViewOnUiThread need to override some of the methods on WebViewClient,
+    // so this test sublclasses the WebViewClient from WebViewOnUiThread
+    private static class InterceptClient extends WaitForLoadedClient {
+
+        public InterceptClient(WebViewOnUiThread webViewOnUiThread) throws Exception {
+            super(webViewOnUiThread);
+        }
+
+        @Override
+        public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
+            // Intercept all page loads with the same geolocation enabled page
+            try {
+                return new WebResourceResponse("text/html", "utf-8",
+                    new ByteArrayInputStream(RAW_HTML.getBytes("UTF-8")));
+            } catch(java.io.UnsupportedEncodingException e) {
+                return null;
+            }
+        }
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+
+        // Set up a WebView with JavaScript and Geolocation enabled
+        final String GEO_DIR = "geo_test";
+        mOnUiThread = new WebViewOnUiThread(this, getActivity().getWebView());
+        mOnUiThread.getSettings().setJavaScriptEnabled(true);
+        mOnUiThread.getSettings().setGeolocationEnabled(true);
+        mOnUiThread.getSettings().setGeolocationDatabasePath(
+                getActivity().getApplicationContext().getDir(GEO_DIR, 0).getPath());
+
+        // Add a JsInterface to report back to the test when a location is received
+        mJavascriptStatusReceiver = new JavascriptStatusReceiver();
+        mOnUiThread.addJavascriptInterface(mJavascriptStatusReceiver, JS_INTERFACE_NAME);
+
+        // Always intercept all loads with the same geolocation test page
+        mOnUiThread.setWebViewClient(new InterceptClient(mOnUiThread));
+        // Clear all permissions before each test
+        GeolocationPermissions.getInstance().clearAll();
+        // Cache this mostly because the lookup is two lines of code
+        mLocationManager = (LocationManager)getActivity().getApplicationContext()
+                .getSystemService(Context.LOCATION_SERVICE);
+        // Add a test provider before each test to inject a location
+        addTestProvider(PROVIDER_NAME);
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        // Remove the test provider after each test
+        try {
+          mLocationManager.removeTestProvider(PROVIDER_NAME);
+        } catch (IllegalArgumentException e) {} // Not much to do about this
+        mOnUiThread.cleanUp();
+        // This will null all member and static variables
+        super.tearDown();
+    }
+
+    // Update location with a fixed latitude and longtitude, sets the time to the current time.
+    private void updateLocation(final String providerName) {
+        Location location = new Location(providerName);
+        location.setLatitude(40);
+        location.setLongitude(40);
+        location.setAccuracy(1.0f);
+        location.setTime(java.lang.System.currentTimeMillis());
+        location.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());
+        mLocationManager.setTestProviderLocation(providerName, location);
+    }
+
+    // Need to set the location just after loading the url. Setting it after each load instead of
+    // using a maximum age.
+    private void loadUrlAndUpdateLocation(String url) {
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+        updateLocation(PROVIDER_NAME);
+    }
+
+    // WebChromeClient that accepts each location for one load. WebChromeClient is used in
+    // WebViewOnUiThread to detect when the page is loaded, so subclassing the one used there.
+    private static class TestSimpleGeolocationRequestWebChromeClient
+                extends WaitForProgressClient {
+        private boolean mReceivedRequest = false;
+        private final boolean mAccept;
+        private final boolean mRetain;
+
+        public TestSimpleGeolocationRequestWebChromeClient(
+                WebViewOnUiThread webViewOnUiThread, boolean accept, boolean retain) {
+            super(webViewOnUiThread);
+            this.mAccept = accept;
+            this.mRetain = retain;
+        }
+
+        @Override
+        public void onGeolocationPermissionsShowPrompt(
+                String origin, GeolocationPermissions.Callback callback) {
+            mReceivedRequest = true;
+            callback.invoke(origin, mAccept, mRetain);
+        }
+    }
+
+    private void addTestProvider(final String providerName) {
+        mLocationManager.addTestProvider(providerName,
+                true, //requiresNetwork,
+                false, // requiresSatellite,
+                true,  // requiresCell,
+                false, // hasMonetaryCost,
+                false, // supportsAltitude,
+                false, // supportsSpeed,
+                false, // supportsBearing,
+                Criteria.POWER_MEDIUM, // powerRequirement
+                Criteria.ACCURACY_FINE); // accuracy
+        mLocationManager.setTestProviderEnabled(providerName, true);
+    }
+
+    // Test loading a page and accepting the domain for one load
+    public void testSimpleGeolocationRequestAcceptOnce() throws Exception {
+        final TestSimpleGeolocationRequestWebChromeClient chromeClientAcceptOnce =
+                new TestSimpleGeolocationRequestWebChromeClient(mOnUiThread, true, false);
+        mOnUiThread.setWebChromeClient(chromeClientAcceptOnce);
+        loadUrlAndUpdateLocation(URL_1);
+        Callable<Boolean> receivedRequest = new Callable<Boolean>() {
+            @Override
+            public Boolean call() {
+                return chromeClientAcceptOnce.mReceivedRequest;
+            }
+        };
+        PollingCheck.check("Geolocation prompt not called", POLLING_TIMEOUT, receivedRequest);
+        Callable<Boolean> receivedLocation = new Callable<Boolean>() {
+            @Override
+            public Boolean call() {
+                return mJavascriptStatusReceiver.mHasPosition;
+            }
+        };
+        PollingCheck.check("JS didn't get position", POLLING_TIMEOUT, receivedLocation);
+        chromeClientAcceptOnce.mReceivedRequest = false;
+        // Load URL again, should receive callback again
+        loadUrlAndUpdateLocation(URL_1);
+        PollingCheck.check("Geolocation prompt not called", POLLING_TIMEOUT, receivedRequest);
+        PollingCheck.check("JS didn't get position", POLLING_TIMEOUT, receivedLocation);
+    }
+
+    private static class OriginCheck extends PollingCheck implements
+            android.webkit.ValueCallback<Set<String>> {
+
+        private boolean mReceived = false;
+        private final Set<String> mExpectedValue;
+        private Set<String> mReceivedValue = null;
+
+        public OriginCheck(Set<String> val) {
+            mExpectedValue = val;
+        }
+
+        @Override
+        protected boolean check() {
+            if (!mReceived) return false;
+            if (mExpectedValue.equals(mReceivedValue)) return true;
+            if (mExpectedValue.size() != mReceivedValue.size()) return false;
+            // Origins can have different strings even if they represent the same origin,
+            // for example http://www.example.com is the same origin as http://www.example.com/
+            // and they are both valid representations
+            for (String origin : mReceivedValue) {
+                if (mExpectedValue.contains(origin)) continue;
+                if (origin.endsWith("/")) {
+                    if (mExpectedValue.contains(origin.substring(0, origin.length() - 1))) {
+                        continue;
+                    }
+                } else {
+                    if (mExpectedValue.contains(origin + "/")) continue;
+                }
+                return false;
+            }
+            return true;
+        }
+        @Override
+        public void onReceiveValue(Set<String> value) {
+            mReceived = true;
+            mReceivedValue = value;
+        }
+    }
+
+    // Class that waits and checks for a particular value being received
+    private static class BooleanCheck extends PollingCheck implements
+            android.webkit.ValueCallback<Boolean> {
+
+        private boolean mReceived = false;
+        private final boolean mExpectedValue;
+        private boolean mReceivedValue;
+
+        public BooleanCheck(boolean val) {
+            mExpectedValue = val;
+        }
+
+        @Override
+        protected boolean check() {
+            return mReceived && mReceivedValue == mExpectedValue;
+        }
+
+        @Override
+        public void onReceiveValue(Boolean value) {
+            mReceived = true;
+            mReceivedValue = value;
+        }
+    }
+
+    // Test loading a page and retaining the domain forever
+    public void testSimpleGeolocationRequestAcceptAlways() throws Exception {
+        final TestSimpleGeolocationRequestWebChromeClient chromeClientAcceptAlways =
+                new TestSimpleGeolocationRequestWebChromeClient(mOnUiThread, true, true);
+        mOnUiThread.setWebChromeClient(chromeClientAcceptAlways);
+        // Load url once, and the callback should accept the domain for all future loads
+        loadUrlAndUpdateLocation(URL_1);
+        Callable<Boolean> receivedRequest = new Callable<Boolean>() {
+            @Override
+            public Boolean call() {
+                return chromeClientAcceptAlways.mReceivedRequest;
+            }
+        };
+        PollingCheck.check("Geolocation prompt not called", POLLING_TIMEOUT, receivedRequest);
+        Callable<Boolean> receivedLocation = new Callable<Boolean>() {
+            @Override
+            public Boolean call() {
+                return mJavascriptStatusReceiver.mHasPosition;
+            }
+        };
+        PollingCheck.check("JS didn't get position", POLLING_TIMEOUT, receivedLocation);
+        chromeClientAcceptAlways.mReceivedRequest = false;
+        mJavascriptStatusReceiver.clearState();
+        // Load the same URL again
+        loadUrlAndUpdateLocation(URL_1);
+        PollingCheck.check("JS didn't get position", POLLING_TIMEOUT, receivedLocation);
+        // Assert prompt for geolocation permission is not called the second time
+        assertFalse(chromeClientAcceptAlways.mReceivedRequest);
+        // Check that the permission is in GeolocationPermissions
+        BooleanCheck trueCheck = new BooleanCheck(true);
+        GeolocationPermissions.getInstance().getAllowed(URL_1, trueCheck);
+        trueCheck.run();
+        Set<String> acceptedOrigins = new TreeSet<String>();
+        acceptedOrigins.add(URL_1);
+        OriginCheck originCheck = new OriginCheck(acceptedOrigins);
+        GeolocationPermissions.getInstance().getOrigins(originCheck);
+        originCheck.run();
+
+        // URL_2 should get a prompt
+        chromeClientAcceptAlways.mReceivedRequest = false;
+        loadUrlAndUpdateLocation(URL_2);
+        // Checking the callback for geolocation permission prompt is called
+        PollingCheck.check("Geolocation prompt not called", POLLING_TIMEOUT, receivedRequest);
+        PollingCheck.check("JS didn't get position", POLLING_TIMEOUT, receivedLocation);
+        acceptedOrigins.add(URL_2);
+        originCheck = new OriginCheck(acceptedOrigins);
+        GeolocationPermissions.getInstance().getOrigins(originCheck);
+        originCheck.run();
+        // Remove a domain manually that was added by the callback
+        GeolocationPermissions.getInstance().clear(URL_1);
+        acceptedOrigins.remove(URL_1);
+        originCheck = new OriginCheck(acceptedOrigins);
+        GeolocationPermissions.getInstance().getOrigins(originCheck);
+        originCheck.run();
+    }
+
+    // Test the GeolocationPermissions API
+    public void testGeolocationPermissions() {
+        Set<String> acceptedOrigins = new TreeSet<String>();
+        BooleanCheck falseCheck = new BooleanCheck(false);
+        GeolocationPermissions.getInstance().getAllowed(URL_2, falseCheck);
+        falseCheck.run();
+        OriginCheck originCheck = new OriginCheck(acceptedOrigins);
+        GeolocationPermissions.getInstance().getOrigins(originCheck);
+        originCheck.run();
+
+        // Remove a domain that has not been allowed
+        GeolocationPermissions.getInstance().clear(URL_2);
+        acceptedOrigins.remove(URL_2);
+        originCheck = new OriginCheck(acceptedOrigins);
+        GeolocationPermissions.getInstance().getOrigins(originCheck);
+        originCheck.run();
+
+        // Add a domain
+        acceptedOrigins.add(URL_2);
+        GeolocationPermissions.getInstance().allow(URL_2);
+        originCheck = new OriginCheck(acceptedOrigins);
+        GeolocationPermissions.getInstance().getOrigins(originCheck);
+        originCheck.run();
+        BooleanCheck trueCheck = new BooleanCheck(true);
+        GeolocationPermissions.getInstance().getAllowed(URL_2, trueCheck);
+        trueCheck.run();
+
+        // Add a domain
+        acceptedOrigins.add(URL_1);
+        GeolocationPermissions.getInstance().allow(URL_1);
+        originCheck = new OriginCheck(acceptedOrigins);
+        GeolocationPermissions.getInstance().getOrigins(originCheck);
+        originCheck.run();
+
+        // Remove a domain that has been allowed
+        GeolocationPermissions.getInstance().clear(URL_2);
+        acceptedOrigins.remove(URL_2);
+        originCheck = new OriginCheck(acceptedOrigins);
+        GeolocationPermissions.getInstance().getOrigins(originCheck);
+        originCheck.run();
+        falseCheck = new BooleanCheck(false);
+        GeolocationPermissions.getInstance().getAllowed(URL_2, falseCheck);
+        falseCheck.run();
+
+        // Try to clear all domains
+        GeolocationPermissions.getInstance().clearAll();
+        acceptedOrigins.clear();
+        originCheck = new OriginCheck(acceptedOrigins);
+        GeolocationPermissions.getInstance().getOrigins(originCheck);
+        originCheck.run();
+
+        // Add a domain
+        acceptedOrigins.add(URL_1);
+        GeolocationPermissions.getInstance().allow(URL_1);
+        originCheck = new OriginCheck(acceptedOrigins);
+        GeolocationPermissions.getInstance().getOrigins(originCheck);
+        originCheck.run();
+    }
+
+    // Test loading pages and checks rejecting once and recjecting the domain forever
+    public void testSimpleGeolocationRequestReject() throws Exception {
+        final TestSimpleGeolocationRequestWebChromeClient chromeClientRejectOnce =
+                new TestSimpleGeolocationRequestWebChromeClient(mOnUiThread, false, false);
+        mOnUiThread.setWebChromeClient(chromeClientRejectOnce);
+        // Load url once, and the callback should accept the domain for all future loads
+        mOnUiThread.loadUrlAndWaitForCompletion(URL_1);
+        Callable<Boolean> receivedRequest = new Callable<Boolean>() {
+            @Override
+            public Boolean call() {
+                return chromeClientRejectOnce.mReceivedRequest;
+            }
+        };
+        PollingCheck.check("Geolocation prompt not called", POLLING_TIMEOUT, receivedRequest);
+        Callable<Boolean> locationDenied = new Callable<Boolean>() {
+            @Override
+            public Boolean call() {
+                return mJavascriptStatusReceiver.mDenied;
+            }
+        };
+        PollingCheck.check("JS didn't get position", POLLING_TIMEOUT, locationDenied);
+        // Same result should happen on next run
+        mOnUiThread.loadUrlAndWaitForCompletion(URL_1);
+        PollingCheck.check("Geolocation prompt not called", POLLING_TIMEOUT, receivedRequest);
+        PollingCheck.check("JS didn't get position", POLLING_TIMEOUT, locationDenied);
+
+        // Try to reject forever
+        final TestSimpleGeolocationRequestWebChromeClient chromeClientRejectAlways =
+            new TestSimpleGeolocationRequestWebChromeClient(mOnUiThread, false, true);
+        mOnUiThread.setWebChromeClient(chromeClientRejectAlways);
+        mOnUiThread.loadUrlAndWaitForCompletion(URL_2);
+        PollingCheck.check("Geolocation prompt not called", POLLING_TIMEOUT, receivedRequest);
+        PollingCheck.check("JS didn't get position", POLLING_TIMEOUT, locationDenied);
+        // second load should now not get a prompt
+        chromeClientRejectAlways.mReceivedRequest = false;
+        mOnUiThread.loadUrlAndWaitForCompletion(URL_2);
+        PollingCheck.check("JS didn't get position", POLLING_TIMEOUT, locationDenied);
+        PollingCheck.check("Geolocation prompt not called", POLLING_TIMEOUT, receivedRequest);
+
+        // Test if it gets added to origins
+        Set<String> acceptedOrigins = new TreeSet<String>();
+        acceptedOrigins.add(URL_2);
+        OriginCheck domainCheck = new OriginCheck(acceptedOrigins);
+        GeolocationPermissions.getInstance().getOrigins(domainCheck);
+        domainCheck.run();
+        // And now check that getAllowed returns false
+        BooleanCheck falseCheck = new BooleanCheck(false);
+        GeolocationPermissions.getInstance().getAllowed(URL_1, falseCheck);
+        falseCheck.run();
+    }
+
+    // Object added to the page via AddJavascriptInterface() that is used by the test Javascript to
+    // notify back to Java when a location or error is received.
+    public final static class JavascriptStatusReceiver {
+        public volatile boolean mHasPosition = false;
+        public volatile boolean mDenied = false;
+        public volatile boolean mUnavailable = false;
+        public volatile boolean mTimeout = false;
+
+        public void clearState() {
+            mHasPosition = false;
+            mDenied = false;
+            mUnavailable = false;
+            mTimeout = false;
+        }
+
+        @JavascriptInterface
+        public void errorDenied() {
+            mDenied = true;
+        }
+
+        @JavascriptInterface
+        public void errorUnavailable() {
+            mUnavailable = true;
+        }
+
+        @JavascriptInterface
+        public void errorTimeout() {
+            mTimeout = true;
+        }
+
+        @JavascriptInterface
+        public void gotLocation() {
+            mHasPosition = true;
+        }
+    }
+}
diff --git a/tests/tests/webkit/src/android/webkit/cts/HttpAuthHandlerTest.java b/tests/tests/webkit/src/android/webkit/cts/HttpAuthHandlerTest.java
index 2fcf53c..52e9278 100644
--- a/tests/tests/webkit/src/android/webkit/cts/HttpAuthHandlerTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/HttpAuthHandlerTest.java
@@ -28,6 +28,11 @@
 
     private static final long TIMEOUT = 10000;
 
+    private static final String WRONG_USERNAME = "wrong_user";
+    private static final String WRONG_PASSWORD = "wrong_password";
+    private static final String CORRECT_USERNAME = CtsTestServer.AUTH_USER;
+    private static final String CORRECT_PASSWORD = CtsTestServer.AUTH_PASS;
+
     private CtsTestServer mWebServer;
     private WebViewOnUiThread mOnUiThread;
 
@@ -50,64 +55,18 @@
         super.tearDown();
     }
 
-    public void testProceed() throws Exception {
-        mWebServer = new CtsTestServer(getActivity());
-        String url = mWebServer.getAuthAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
-
-        // wrong credentials
-        MyWebViewClient client = new MyWebViewClient(true, "FakeUser", "FakePass");
-        mOnUiThread.setWebViewClient(client);
-
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
-        assertEquals(CtsTestServer.getReasonString(HttpStatus.SC_UNAUTHORIZED), mOnUiThread.getTitle());
-        assertTrue(client.useHttpAuthUsernamePassword);
-
-        // missing credentials
-        client = new MyWebViewClient(true, null, null);
-        mOnUiThread.setWebViewClient(client);
-
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
-        assertEquals(
-                CtsTestServer.getReasonString(HttpStatus.SC_UNAUTHORIZED), mOnUiThread.getTitle());
-        assertTrue(client.useHttpAuthUsernamePassword);
-
-        // correct credentials
-        client = new MyWebViewClient(true, CtsTestServer.AUTH_USER, CtsTestServer.AUTH_PASS);
-        mOnUiThread.setWebViewClient(client);
-
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
-        assertEquals(TestHtmlConstants.HELLO_WORLD_TITLE, mOnUiThread.getTitle());
-        assertTrue(client.useHttpAuthUsernamePassword);
-    }
-
-    public void testCancel() throws Exception {
-        mWebServer = new CtsTestServer(getActivity());
-
-        String url = mWebServer.getAuthAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
-        MyWebViewClient client = new MyWebViewClient(false, null, null);
-        mOnUiThread.setWebViewClient(client);
-
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
-        assertEquals(
-                CtsTestServer.getReasonString(HttpStatus.SC_UNAUTHORIZED), mOnUiThread.getTitle());
-    }
-
-    private class MyWebViewClient extends WaitForLoadedClient {
+    private class ProceedHttpAuthClient extends WaitForLoadedClient {
         String realm;
         boolean useHttpAuthUsernamePassword;
 
-        private boolean mProceed;
+        private int mMaxAuthAttempts;
         private String mUser;
         private String mPassword;
         private int mAuthCount;
 
-        MyWebViewClient(boolean proceed, String user, String password) {
+        ProceedHttpAuthClient(int maxAuthAttempts, String user, String password) {
             super(mOnUiThread);
-            mProceed = proceed;
+            mMaxAuthAttempts = maxAuthAttempts;
             mUser = user;
             mPassword = password;
         }
@@ -115,18 +74,113 @@
         @Override
         public void onReceivedHttpAuthRequest(WebView view,
                 HttpAuthHandler handler, String host, String realm) {
-            ++mAuthCount;
-            if (mAuthCount > 1) {
+            if (++mAuthCount > mMaxAuthAttempts) {
                 handler.cancel();
                 return;
             }
+
             this.realm = realm;
             this.useHttpAuthUsernamePassword = handler.useHttpAuthUsernamePassword();
-            if (mProceed) {
-                handler.proceed(mUser, mPassword);
-            } else {
-                handler.cancel();
-            }
+
+            handler.proceed(mUser, mPassword);
         }
     }
+
+    private class CancelHttpAuthClient extends WaitForLoadedClient {
+        String realm;
+
+        CancelHttpAuthClient() {
+            super(mOnUiThread);
+        }
+
+        @Override
+        public void onReceivedHttpAuthRequest(WebView view,
+                HttpAuthHandler handler, String host, String realm) {
+            this.realm = realm;
+            handler.cancel();
+        }
+    }
+
+    private void incorrectCredentialsAccessDenied(String url) throws Throwable {
+        ProceedHttpAuthClient client = new ProceedHttpAuthClient(1, WRONG_USERNAME, WRONG_PASSWORD);
+        mOnUiThread.setWebViewClient(client);
+
+        // As we're providing incorrect credentials, the page should complete but at
+        // an access denied page.
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+
+        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
+        assertEquals(CtsTestServer.getReasonString(HttpStatus.SC_UNAUTHORIZED), mOnUiThread.getTitle());
+    }
+
+    private void missingCredentialsAccessDenied(String url) throws Throwable {
+        ProceedHttpAuthClient client = new ProceedHttpAuthClient(1, null, null);
+        mOnUiThread.setWebViewClient(client);
+
+        // As we're providing no credentials, the page should complete but at
+        // an access denied page.
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+
+        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
+        assertEquals(CtsTestServer.getReasonString(HttpStatus.SC_UNAUTHORIZED), mOnUiThread.getTitle());
+    }
+
+    private void correctCredentialsAccessGranted(String url) throws Throwable {
+        ProceedHttpAuthClient client = new ProceedHttpAuthClient(1, CORRECT_USERNAME, CORRECT_PASSWORD);
+        mOnUiThread.setWebViewClient(client);
+
+        // As we're providing valid credentials, the page should complete and
+        // at the page we requested.
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+
+        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
+        assertEquals(TestHtmlConstants.HELLO_WORLD_TITLE, mOnUiThread.getTitle());
+    }
+
+    public void testProceed() throws Throwable {
+        mWebServer = new CtsTestServer(getActivity());
+        String url = mWebServer.getAuthAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
+
+        incorrectCredentialsAccessDenied(url);
+        missingCredentialsAccessDenied(url);
+        correctCredentialsAccessGranted(url);
+    }
+
+    public void testCancel() throws Throwable {
+        mWebServer = new CtsTestServer(getActivity());
+        String url = mWebServer.getAuthAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
+
+        CancelHttpAuthClient client = new CancelHttpAuthClient();
+        mOnUiThread.setWebViewClient(client);
+
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
+        assertEquals(CtsTestServer.getReasonString(HttpStatus.SC_UNAUTHORIZED), mOnUiThread.getTitle());
+    }
+
+    public void testUseHttpAuthUsernamePassword() throws Throwable {
+        mWebServer = new CtsTestServer(getActivity());
+        String url = mWebServer.getAuthAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
+
+        // Try to login once with incorrect credentials. This should cause
+        // useHttpAuthUsernamePassword to be true in the callback, as at that point
+        // we don't yet know that the credentials we will use are invalid.
+        ProceedHttpAuthClient client = new ProceedHttpAuthClient(1, WRONG_USERNAME, WRONG_PASSWORD);
+        mOnUiThread.setWebViewClient(client);
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
+        assertEquals(CtsTestServer.getReasonString(HttpStatus.SC_UNAUTHORIZED), mOnUiThread.getTitle());
+        assertTrue(client.useHttpAuthUsernamePassword);
+
+        // Try to login twice with invalid credentials. This should cause
+        // useHttpAuthUsernamePassword to return false, as the credentials
+        // we would have stored on the first auth request
+        // are not suitable for use the second time.
+        client = new ProceedHttpAuthClient(2, WRONG_USERNAME, WRONG_PASSWORD);
+        mOnUiThread.setWebViewClient(client);
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+        assertEquals(CtsTestServer.AUTH_REALM, client.realm);
+        assertEquals(CtsTestServer.getReasonString(HttpStatus.SC_UNAUTHORIZED), mOnUiThread.getTitle());
+        assertFalse(client.useHttpAuthUsernamePassword);
+    }
 }
diff --git a/tests/tests/webkit/src/android/webkit/cts/MimeTypeMapTest.java b/tests/tests/webkit/src/android/webkit/cts/MimeTypeMapTest.java
index 7213184..6c0ff78 100644
--- a/tests/tests/webkit/src/android/webkit/cts/MimeTypeMapTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/MimeTypeMapTest.java
@@ -75,6 +75,7 @@
     }
 
     public void testGetExtensionFromMimeType() {
+        assertEquals("mp3", mMimeTypeMap.getExtensionFromMimeType("audio/mpeg"));
         assertEquals("png", mMimeTypeMap.getExtensionFromMimeType("image/png"));
         assertEquals("zip", mMimeTypeMap.getExtensionFromMimeType("application/zip"));
 
diff --git a/tests/tests/webkit/src/android/webkit/cts/TestHtmlConstants.java b/tests/tests/webkit/src/android/webkit/cts/TestHtmlConstants.java
index 63354d4..47ec475 100644
--- a/tests/tests/webkit/src/android/webkit/cts/TestHtmlConstants.java
+++ b/tests/tests/webkit/src/android/webkit/cts/TestHtmlConstants.java
@@ -62,6 +62,8 @@
     public static final String ANCHOR_ASSET_URL = "webkit/test_anchor.html";
     public static final String IMAGE_ACCESS_URL = "webkit/test_imageaccess.html";
     public static final String IFRAME_ACCESS_URL = "webkit/test_iframeaccess.html";
+    public static final String DATABASE_ACCESS_URL = "webkit/test_databaseaccess.html";
+    public static final String STOP_LOADING_URL = "webkit/test_stop_loading.html";
 
     // Must match the title of the page at
     // android/frameworks/base/core/res/res/raw/loaderror.html
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java b/tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java
index 4a536b8..2a5044e 100644
--- a/tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebChromeClientTest.java
@@ -20,6 +20,7 @@
 import android.graphics.Bitmap;
 import android.os.Message;
 import android.test.ActivityInstrumentationTestCase2;
+import android.view.ViewGroup;
 import android.webkit.JsPromptResult;
 import android.webkit.JsResult;
 import android.webkit.WebIconDatabase;
@@ -27,7 +28,6 @@
 import android.webkit.WebView;
 import android.webkit.cts.WebViewOnUiThread.WaitForProgressClient;
 
-
 public class WebChromeClientTest extends ActivityInstrumentationTestCase2<WebViewStubActivity> {
     private static final long TEST_TIMEOUT = 5000L;
 
@@ -64,7 +64,8 @@
         mOnUiThread.setWebChromeClient(webChromeClient);
 
         assertFalse(webChromeClient.hadOnProgressChanged());
-        mOnUiThread.loadUrlAndWaitForCompletion(TestHtmlConstants.HELLO_WORLD_URL);
+        String url = mWebServer.getAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
 
         new PollingCheck(TEST_TIMEOUT) {
             @Override
@@ -132,8 +133,8 @@
 
         assertFalse(webChromeClient.hadOnCreateWindow());
 
-        // load a page that opens a child window, requests focus for the child and sets a timeout
-        // after which the child will be closed
+        // Load a page that opens a child window and sets a timeout after which the child
+        // will be closed.
         mOnUiThread.loadUrlAndWaitForCompletion(mWebServer.
                 getAssetUrl(TestHtmlConstants.JS_WINDOW_URL));
 
@@ -143,7 +144,6 @@
                 return webChromeClient.hadOnCreateWindow();
             }
         }.run();
-        assertFalse(webChromeClient.hadOnRequestFocus());
         new PollingCheck(TEST_TIMEOUT) {
             @Override
             protected boolean check() {
@@ -388,6 +388,8 @@
             transport.setWebView(childView);
             resultMsg.sendToTarget();
             mHadOnCreateWindow = true;
+            getActivity().addContentView(childView, new ViewGroup.LayoutParams(
+                    ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
             return true;
         }
 
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebHistoryItemTest.java b/tests/tests/webkit/src/android/webkit/cts/WebHistoryItemTest.java
index 4f2113b..2eb81fc 100644
--- a/tests/tests/webkit/src/android/webkit/cts/WebHistoryItemTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebHistoryItemTest.java
@@ -55,7 +55,6 @@
         assertEquals(1, list.getSize());
         WebHistoryItem item = list.getCurrentItem();
         assertNotNull(item);
-        int firstId = item.getId();
         assertEquals(url, item.getUrl());
         assertEquals(url, item.getOriginalUrl());
         assertEquals(TestHtmlConstants.HELLO_WORLD_TITLE, item.getTitle());
@@ -69,7 +68,5 @@
         item = list.getCurrentItem();
         assertNotNull(item);
         assertEquals(TestHtmlConstants.BR_TAG_TITLE, item.getTitle());
-        int secondId = item.getId();
-        assertTrue(firstId != secondId);
     }
 }
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebSettingsTest.java b/tests/tests/webkit/src/android/webkit/cts/WebSettingsTest.java
index 054217e..b9c338b 100644
--- a/tests/tests/webkit/src/android/webkit/cts/WebSettingsTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebSettingsTest.java
@@ -25,6 +25,7 @@
 import android.webkit.WebIconDatabase;
 import android.webkit.WebSettings;
 import android.webkit.WebSettings.TextSize;
+import android.webkit.WebStorage;
 import android.webkit.WebView;
 import android.webkit.cts.WebViewOnUiThread.WaitForProgressClient;
 import java.io.FileOutputStream;
@@ -155,47 +156,6 @@
         assertEquals(customUserAgent, mOnUiThread.getTitle());
     }
 
-    @SuppressWarnings("deprecation")
-    public void testAccessUserAgent() throws Exception {
-        startWebServer();
-        String url = mWebServer.getUserAgentUrl();
-
-        mSettings.setUserAgent(1);
-        assertEquals(1, mSettings.getUserAgent());
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        String userAgent1 = mOnUiThread.getTitle();
-        assertNotNull(userAgent1);
-
-        mSettings.setUserAgent(3);
-        assertEquals(1, mSettings.getUserAgent());
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        assertEquals(userAgent1, mOnUiThread.getTitle());
-
-        mSettings.setUserAgent(2);
-        assertEquals(2, mSettings.getUserAgent());
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        String userAgent2 = mOnUiThread.getTitle();
-        assertNotNull(userAgent2);
-
-        mSettings.setUserAgent(3);
-        assertEquals(2, mSettings.getUserAgent());
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        assertEquals(userAgent2, mOnUiThread.getTitle());
-
-        mSettings.setUserAgent(0);
-        assertEquals(0, mSettings.getUserAgent());
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        String userAgent0 = mOnUiThread.getTitle();
-        assertNotNull(userAgent0);
-
-        final String customUserAgent = "Cts/Test";
-        mSettings.setUserAgentString(customUserAgent);
-        assertEquals(-1, mSettings.getUserAgent());
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        assertEquals(customUserAgent, mOnUiThread.getTitle());
-    }
-
-
     public void testAccessAllowFileAccess() {
         // This test is not compatible with 4.0.3
         if ("4.0.3".equals(Build.VERSION.RELEASE)) {
@@ -387,11 +347,9 @@
         new PollingCheck(WEBVIEW_TIMEOUT) {
             @Override
             protected boolean check() {
-                String title = mOnUiThread.getTitle();
-                return title != null && title.length() > 0;
+                return "Popup blocked".equals(mOnUiThread.getTitle());
             }
         }.run();
-        assertEquals("Popup blocked", mOnUiThread.getTitle());
 
         mSettings.setJavaScriptCanOpenWindowsAutomatically(true);
         assertTrue(mSettings.getJavaScriptCanOpenWindowsAutomatically());
@@ -399,15 +357,9 @@
         new PollingCheck(WEBVIEW_TIMEOUT) {
             @Override
             protected boolean check() {
-                String title = mOnUiThread.getTitle();
-                // The title may not change immediately after loading, so
-                // we have to discount the initial "Popup blocked" from the
-                // previous load.
-                return title != null && title.length() > 0
-                        && !title.equals("Popup blocked");
+                return "Popup allowed".equals(mOnUiThread.getTitle());
             }
         }.run();
-        assertEquals("Popup allowed", mOnUiThread.getTitle());
     }
 
     public void testAccessJavaScriptEnabled() throws Exception {
@@ -417,10 +369,9 @@
         new PollingCheck(WEBVIEW_TIMEOUT) {
             @Override
             protected boolean check() {
-                return mOnUiThread.getTitle() != null;
+                return "javascript on".equals(mOnUiThread.getTitle());
             }
         }.run();
-        assertEquals("javascript on", mOnUiThread.getTitle());
 
         mSettings.setJavaScriptEnabled(false);
         assertFalse(mSettings.getJavaScriptEnabled());
@@ -428,10 +379,10 @@
         new PollingCheck(WEBVIEW_TIMEOUT) {
             @Override
             protected boolean check() {
-                return mOnUiThread.getTitle() != null;
+                return "javascript off".equals(mOnUiThread.getTitle());
             }
         }.run();
-        assertEquals("javascript off", mOnUiThread.getTitle());
+
     }
 
     public void testAccessLayoutAlgorithm() {
@@ -444,13 +395,6 @@
         assertEquals(WebSettings.LayoutAlgorithm.SINGLE_COLUMN, mSettings.getLayoutAlgorithm());
     }
 
-    public void testAccessLightTouchEnabled() {
-        assertFalse(mSettings.getLightTouchEnabled());
-
-        mSettings.setLightTouchEnabled(true);
-        assertTrue(mSettings.getLightTouchEnabled());
-    }
-
     public void testAccessMinimumFontSize() {
         assertEquals(8, mSettings.getMinimumFontSize());
 
@@ -477,13 +421,6 @@
         assertEquals(10, mSettings.getMinimumLogicalFontSize());
     }
 
-    public void testAccessNavDump() {
-        assertFalse(mSettings.getNavDump());
-
-        mSettings.setNavDump(true);
-        assertTrue(mSettings.getNavDump());
-    }
-
     public void testAccessPluginsEnabled() {
         assertFalse(mSettings.getPluginsEnabled());
 
@@ -507,13 +444,6 @@
         assertFalse(mSettings.getSaveFormData());
     }
 
-    public void testAccessSavePassword() {
-        assertTrue(mSettings.getSavePassword());
-
-        mSettings.setSavePassword(false);
-        assertFalse(mSettings.getSavePassword());
-    }
-
     public void testAccessTextSize() {
         assertEquals(TextSize.NORMAL, mSettings.getTextSize());
 
@@ -646,6 +576,32 @@
         }.run();
     }
 
+    // Ideally, we need a test case for the enabled case. However, it seems that
+    // enabling the database should happen prior to navigating the first url due to
+    // some internal limitations of webview. For this reason, we only provide a
+    // test case for "disabled" behavior.
+    // Also loading as data rather than using URL should work, but it causes a
+    // security exception in JS, most likely due to cross domain access. So we load
+    // using a URL. Finally, it looks like enabling database requires creating a
+    // webChromeClient and listening to Quota callbacks, which is not documented.
+    public void testDatabaseDisabled() throws Throwable {
+        // Verify that websql database does not work when disabled.
+        startWebServer();
+
+        mOnUiThread.setWebChromeClient(new ChromeClient(mOnUiThread) {
+            @Override
+            public void onExceededDatabaseQuota(String url, String databaseId, long quota,
+                long estimatedSize, long total, WebStorage.QuotaUpdater updater) {
+                updater.updateQuota(estimatedSize);
+            }
+        });
+        mSettings.setJavaScriptEnabled(true);
+        mSettings.setDatabaseEnabled(false);
+        final String url = mWebServer.getAssetUrl(TestHtmlConstants.DATABASE_ACCESS_URL);
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+        assertEquals("No database", mOnUiThread.getTitle());
+    }
+
     public void testLoadsImagesAutomatically() throws Throwable {
         assertTrue(mSettings.getLoadsImagesAutomatically());
 
@@ -727,7 +683,7 @@
         mOnUiThread.clearCache(true);
         mOnUiThread.loadUrlAndWaitForCompletion(
             mWebServer.getAssetUrl(TestHtmlConstants.HELLO_WORLD_URL));
-        assertEquals(TestHtmlConstants.WEBPAGE_NOT_AVAILABLE_TITLE, mOnUiThread.getTitle());
+        assertFalse(TestHtmlConstants.HELLO_WORLD_TITLE.equals(mOnUiThread.getTitle()));
         mOnUiThread.loadDataAndWaitForCompletion(getNetworkImageHtml(), "text/html", null);
         assertEquals(EMPTY_IMAGE_HEIGHT, mOnUiThread.getTitle());
         mOnUiThread.loadDataAndWaitForCompletion(DATA_URL_IMAGE_HTML, "text/html", null);
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebViewClientTest.java b/tests/tests/webkit/src/android/webkit/cts/WebViewClientTest.java
index e02998e..3353d50 100644
--- a/tests/tests/webkit/src/android/webkit/cts/WebViewClientTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebViewClientTest.java
@@ -41,7 +41,14 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        mOnUiThread = new WebViewOnUiThread(this, getActivity().getWebView());
+        final WebViewStubActivity activity = getActivity();
+        new PollingCheck(TEST_TIMEOUT) {
+            @Override
+                protected boolean check() {
+                return activity.hasWindowFocus();
+            }
+        }.run();
+        mOnUiThread = new WebViewOnUiThread(this, activity.getWebView());
     }
 
     @Override
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java b/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
index 42b57ee..f0dcf51 100755
--- a/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
@@ -33,6 +33,8 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
+import android.os.StrictMode;
+import android.os.StrictMode.ThreadPolicy;
 import android.os.SystemClock;
 import android.test.ActivityInstrumentationTestCase2;
 import android.test.UiThreadTest;
@@ -41,8 +43,6 @@
 import android.view.KeyEvent;
 import android.view.MotionEvent;
 import android.view.View;
-import android.webkit.CacheManager;
-import android.webkit.CacheManager.CacheResult;
 import android.webkit.ConsoleMessage;
 import android.webkit.DownloadListener;
 import android.webkit.JavascriptInterface;
@@ -97,8 +97,15 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        mWebView = getActivity().getWebView();
-        File f = getActivity().getFileStreamPath("snapshot");
+        final WebViewStubActivity activity = getActivity();
+        new PollingCheck() {
+            @Override
+                protected boolean check() {
+                return activity.hasWindowFocus();
+            }
+        }.run();
+        mWebView = activity.getWebView();
+        File f = activity.getFileStreamPath("snapshot");
         if (f.exists()) {
             f.delete();
         }
@@ -124,6 +131,18 @@
         mWebServer = new CtsTestServer(getActivity(), secure);
     }
 
+    private void stopWebServer() throws Exception {
+        assertNotNull(mWebServer);
+        ThreadPolicy oldPolicy = StrictMode.getThreadPolicy();
+        ThreadPolicy tmpPolicy = new ThreadPolicy.Builder(oldPolicy)
+                .permitNetwork()
+                .build();
+        StrictMode.setThreadPolicy(tmpPolicy);
+        mWebServer.shutdown();
+        mWebServer = null;
+        StrictMode.setThreadPolicy(oldPolicy);
+    }
+
     @UiThreadTest
     public void testConstructor() {
         new WebView(getActivity());
@@ -138,23 +157,11 @@
          * http://en.wikipedia.org/wiki/Postal_address#United_States
          * http://www.usps.com/
          */
-        // full address, invalid zip code
-        assertNull(WebView.findAddress("455 LARKSPUR DRIVE CALIFORNIA SPRINGS CALIFORNIA 92926"));
         // full address
         assertEquals("455 LARKSPUR DRIVE CALIFORNIA SPRINGS CALIFORNIA 92826",
                 WebView.findAddress("455 LARKSPUR DRIVE CALIFORNIA SPRINGS CALIFORNIA 92826"));
-        // full address ( with abbreviated street type and state)
-        assertEquals("455 LARKSPUR DR CALIFORNIA SPRINGS CA 92826",
-                WebView.findAddress("455 LARKSPUR DR CALIFORNIA SPRINGS CA 92826"));
-        // misspell the state ( CALIFORNIA -> CALIFONIA )
-        assertNull(WebView.findAddress("455 LARKSPUR DRIVE CALIFORNIA SPRINGS CALIFONIA 92826"));
-        // without optional zip code
-        assertEquals("455 LARKSPUR DR CALIFORNIA SPRINGS CA",
-                WebView.findAddress("455 LARKSPUR DR CALIFORNIA SPRINGS CA"));
-        // house number, street name and street type are missing
-        assertNull(WebView.findAddress("CALIFORNIA SPRINGS CA"));
-        // city & state are missing
-        assertNull(WebView.findAddress("455 LARKSPUR DR"));
+        // not an address
+        assertNull(WebView.findAddress("This is not an address: no town, no state, no zip."));
     }
 
     @SuppressWarnings("deprecation")
@@ -320,22 +327,38 @@
         assertEquals(redirectUrl, mWebView.getOriginalUrl());
     }
 
-    @UiThreadTest
     public void testStopLoading() throws Exception {
-        assertNull(mWebView.getUrl());
-        assertEquals(INITIAL_PROGRESS, mWebView.getProgress());
+        assertEquals(INITIAL_PROGRESS, mOnUiThread.getProgress());
 
         startWebServer(false);
-        String url = mWebServer.getDelayedAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
-        mWebView.loadUrl(url);
-        mWebView.stopLoading();
-        new PollingCheck() {
-            @Override
-            protected boolean check() {
-                return 100 == mWebView.getProgress();
+        String url = mWebServer.getDelayedAssetUrl(TestHtmlConstants.STOP_LOADING_URL);
+
+        class JsInterface {
+            private boolean mPageLoaded;
+
+            @JavascriptInterface
+            public synchronized void pageLoaded() {
+                mPageLoaded = true;
+                notify();
             }
-        }.run();
-        assertNull(mWebView.getUrl());
+            public synchronized boolean getPageLoaded() {
+                return mPageLoaded;
+            }
+        }
+
+        JsInterface jsInterface = new JsInterface();
+
+        mOnUiThread.getSettings().setJavaScriptEnabled(true);
+        mOnUiThread.addJavascriptInterface(jsInterface, "javabridge");
+        mOnUiThread.loadUrl(url);
+        mOnUiThread.stopLoading();
+
+        // We wait to see that the onload callback in the HTML is not fired.
+        synchronized (jsInterface) {
+            jsInterface.wait(3000);
+        }
+
+        assertFalse(jsInterface.getPageLoaded());
     }
 
     @UiThreadTest
@@ -606,7 +629,7 @@
             }
         }.run();
         assertEquals(mWebView, listener.webView);
-        assertNotNull(listener.picture);
+        assertNull(listener.picture);
 
         final int oldCallCount = listener.callCount;
         final String newUrl = mWebServer.getAssetUrl(TestHtmlConstants.SMALL_IMG_URL);
@@ -619,66 +642,6 @@
         }.run();
     }
 
-    public void testSaveAndRestorePicture() throws Throwable {
-        mWebView.setBackgroundColor(Color.CYAN);
-        startWebServer(false);
-        final String url = mWebServer.getAssetUrl(TestHtmlConstants.BLANK_PAGE_URL);
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        getInstrumentation().waitForIdleSync();
-
-        final Bundle bundle = new Bundle();
-        final File f = getActivity().getFileStreamPath("snapshot");
-        if (f.exists()) {
-            f.delete();
-        }
-
-        try {
-            assertTrue(bundle.isEmpty());
-            assertEquals(0, f.length());
-            assertTrue(mOnUiThread.savePicture(bundle, f));
-
-            // File saving is done in a separate thread.
-            new PollingCheck() {
-                @Override
-                protected boolean check() {
-                    return f.length() > 0;
-                }
-            }.run();
-
-            assertFalse(bundle.isEmpty());
-
-            Picture p = Picture.createFromStream(new FileInputStream(f));
-            Bitmap b = Bitmap.createBitmap(p.getWidth(), p.getHeight(), Config.ARGB_8888);
-            p.draw(new Canvas(b));
-            assertBitmapFillWithColor(b, Color.CYAN);
-
-            mOnUiThread.setBackgroundColor(Color.WHITE);
-            mOnUiThread.reloadAndWaitForCompletion();
-            getInstrumentation().waitForIdleSync();
-
-            runTestOnUiThread(new Runnable() {
-                @Override
-                public void run() {
-                    Bitmap b = Bitmap.createBitmap(mWebView.getWidth(), mWebView.getHeight(),
-                            Config.ARGB_8888);
-                    mWebView.draw(new Canvas(b));
-                    assertBitmapFillWithColor(b, Color.WHITE);
-
-                    // restorePicture is only supported in software rendering
-                    mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
-                    assertTrue(mWebView.restorePicture(bundle, f));
-                }
-            });
-            getInstrumentation().waitForIdleSync();
-            // Cannot test whether the picture has been restored successfully.
-            // Drawing the webview into a canvas will draw white, but on the display it is cyan
-        } finally {
-            if (f.exists()) {
-                f.delete();
-            }
-        }
-    }
-
     @UiThreadTest
     public void testAccessHttpAuthUsernamePassword() {
         try {
@@ -741,28 +704,10 @@
         }
     }
 
-    @UiThreadTest
-    public void testSavePassword() {
-        WebViewDatabase db = WebViewDatabase.getInstance(getActivity());
-        try {
-            db.clearUsernamePassword();
-
-            String host = "http://localhost:8080";
-            String userName = "user";
-            String password = "password";
-            assertFalse(db.hasUsernamePassword());
-            mWebView.savePassword(host, userName, password);
-            assertTrue(db.hasUsernamePassword());
-        } finally {
-            db.clearUsernamePassword();
-        }
-    }
-
     public void testLoadData() throws Throwable {
         final String HTML_CONTENT =
                 "<html><head><title>Hello,World!</title></head><body></body>" +
                 "</html>";
-        assertNull(mOnUiThread.getTitle());
         mOnUiThread.loadDataAndWaitForCompletion(HTML_CONTENT,
                 "text/html", null);
         assertEquals("Hello,World!", mOnUiThread.getTitle());
@@ -788,50 +733,40 @@
 
     @UiThreadTest
     public void testLoadDataWithBaseUrl() throws Throwable {
-        assertNull(mWebView.getTitle());
         assertNull(mWebView.getUrl());
         String imgUrl = TestHtmlConstants.SMALL_IMG_URL; // relative
+        // Snippet of HTML that will prevent favicon requests to the test server.
+        final String HTML_HEADER = "<html><head><link rel=\"shortcut icon\" href=\"#\" /></head>";
 
-        // Check that we can access relative URLs and that reported URL is supplied history URL.
+        // Trying to resolve a relative URL against a data URL without a base URL
+        // will fail and we won't make a request to the test web server.
+        // By using the test web server as the base URL we expect to see a request
+        // for the relative URL in the test server.
         startWebServer(false);
         String baseUrl = mWebServer.getAssetUrl("foo.html");
-        String historyUrl = "random";
-        String dbPath = getActivity().getFilesDir().toString() + "/icons";
-        mIconDb = WebIconDatabase.getInstance();
-        mIconDb.open(dbPath);
+        String historyUrl = "http://www.example.com/";
         mWebServer.resetRequestState();
-        // force the favicon to be loaded first
         mOnUiThread.loadDataWithBaseURLAndWaitForCompletion(baseUrl,
-                "<html><body></body></html>",
+                HTML_HEADER + "<body><img src=\"" + imgUrl + "\"/></body></html>",
                 "text/html", "UTF-8", historyUrl);
-        new PollingCheck() {
-            @Override
-            protected boolean check() {
-                String lastRequestedUrl = mWebServer.getLastRequestUrl();
-                return lastRequestedUrl != null
-                        && lastRequestedUrl.endsWith("favicon.ico");
-            }
-        }.run();
-        mOnUiThread.loadDataWithBaseURLAndWaitForCompletion(baseUrl,
-                "<html><body><img src=\"" + imgUrl + "\"/></body></html>",
-                "text/html", "UTF-8", historyUrl);
-        assertTrue(mWebServer.getLastRequestUrl().endsWith(imgUrl));
+        // Verify that the resource request makes it to the server.
+        assertTrue(mWebServer.wasResourceRequested(imgUrl));
         assertEquals(historyUrl, mWebView.getUrl());
 
         // Check that reported URL is "about:blank" when supplied history URL
         // is null.
         imgUrl = TestHtmlConstants.LARGE_IMG_URL;
         mOnUiThread.loadDataWithBaseURLAndWaitForCompletion(baseUrl,
-                "<html><body><img src=\"" + imgUrl + "\"/></body></html>",
+                HTML_HEADER + "<body><img src=\"" + imgUrl + "\"/></body></html>",
                 "text/html", "UTF-8", null);
-        assertTrue(mWebServer.getLastRequestUrl().endsWith(imgUrl));
+        assertTrue(mWebServer.wasResourceRequested(imgUrl));
         assertEquals("about:blank", mWebView.getUrl());
 
         // Test that JavaScript can access content from the same origin as the base URL.
         mWebView.getSettings().setJavaScriptEnabled(true);
         final String crossOriginUrl = mWebServer.getAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
         mOnUiThread.loadDataWithBaseURLAndWaitForCompletion(baseUrl,
-                "<html><head></head><body onload=\"" +
+                HTML_HEADER + "<body onload=\"" +
                 "document.title = document.getElementById('frame').contentWindow.location.href;" +
                 "\"><iframe id=\"frame\" src=\"" + crossOriginUrl + "\"></body></html>",
                 "text/html", "UTF-8", null);
@@ -840,10 +775,10 @@
         // Check that when the base URL uses the 'data' scheme, a 'data' scheme URL is used and the
         // history URL is ignored.
         mOnUiThread.loadDataWithBaseURLAndWaitForCompletion("data:foo",
-                "<html><body>bar</body></html>", "text/html", "UTF-8",
+                HTML_HEADER + "<body>bar</body></html>", "text/html", "UTF-8",
                 historyUrl);
-        assertTrue(mWebView.getUrl().indexOf("data:text/html,") == 0);
-        assertTrue(mWebView.getUrl().indexOf("bar") > 0);
+        assertTrue("URL: " + mWebView.getUrl(), mWebView.getUrl().indexOf("data:text/html") == 0);
+        assertTrue("URL: " + mWebView.getUrl(), mWebView.getUrl().indexOf("bar") > 0);
     }
 
     @UiThreadTest
@@ -1024,40 +959,6 @@
     }
 
     @UiThreadTest
-    public void testClearCache() throws Exception {
-        final File cacheFileBaseDir = CacheManager.getCacheFileBaseDir();
-        mWebView.clearCache(true);
-        assertEquals(0, cacheFileBaseDir.list().length);
-
-        startWebServer(false);
-        final String url = mWebServer.getAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
-        new PollingCheck(TEST_TIMEOUT) {
-            @Override
-            protected boolean check() {
-                CacheResult result = CacheManager.getCacheFile(url, null);
-                return result != null;
-            }
-        }.run();
-        int cacheFileCount = cacheFileBaseDir.list().length;
-        assertTrue(cacheFileCount > 0);
-
-        mWebView.clearCache(false);
-        // the cache files are still there
-        // can not check other effects of the method
-        assertEquals(cacheFileCount, cacheFileBaseDir.list().length);
-
-        mWebView.clearCache(true);
-        // check the files are deleted
-        new PollingCheck(TEST_TIMEOUT) {
-            @Override
-            protected boolean check() {
-                return cacheFileBaseDir.list().length == 0;
-            }
-        }.run();
-    }
-
-    @UiThreadTest
     public void testPlatformNotifications() {
         WebView.enablePlatformNotifications();
         WebView.disablePlatformNotifications();
@@ -1126,7 +1027,7 @@
 
         // focus on first link
         handler.reset();
-        getInstrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_DOWN);
+        getInstrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_TAB);
         mOnUiThread.requestFocusNodeHref(hrefMsg);
         new PollingCheck() {
             @Override
@@ -1151,7 +1052,7 @@
         handler.reset();
         final Message hrefMsg2 = new Message();
         hrefMsg2.setTarget(handler);
-        getInstrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_DOWN);
+        getInstrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_TAB);
         mOnUiThread.requestFocusNodeHref(hrefMsg2);
         new PollingCheck() {
             @Override
@@ -1479,21 +1380,30 @@
     }
 
     @UiThreadTest
-    public void testSetAndGetCertificate() {
-        assertNull(mWebView.getCertificate());
-        SslCertificate certificate = new SslCertificate("foo", "bar", new Date(42), new Date(43));
-        mWebView.setCertificate(certificate);
-        assertEquals(certificate, mWebView.getCertificate());
-    }
-
-    @UiThreadTest
     public void testInsecureSiteClearsCertificate() throws Throwable {
-        final SslCertificate certificate =
-                new SslCertificate("foo", "bar", new Date(42), new Date(43));
+        final class MockWebViewClient extends WaitForLoadedClient {
+            public MockWebViewClient() {
+                super(mOnUiThread);
+            }
+            @Override
+            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
+                handler.proceed();
+            }
+        }
+
+        startWebServer(true);
+        mOnUiThread.setWebViewClient(new MockWebViewClient());
+        mOnUiThread.loadUrlAndWaitForCompletion(
+                mWebServer.getAssetUrl(TestHtmlConstants.HELLO_WORLD_URL));
+        SslCertificate cert = mWebView.getCertificate();
+        assertNotNull(cert);
+        assertEquals("Android", cert.getIssuedTo().getUName());
+
+        stopWebServer();
+
         startWebServer(false);
-        final String url = mWebServer.getAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
-        mWebView.setCertificate(certificate);
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
+        mOnUiThread.loadUrlAndWaitForCompletion(
+                mWebServer.getAssetUrl(TestHtmlConstants.HELLO_WORLD_URL));
         assertNull(mWebView.getCertificate());
     }
 
@@ -1509,20 +1419,48 @@
             }
         }
 
+        startWebServer(false);
+        mOnUiThread.loadUrlAndWaitForCompletion(
+                mWebServer.getAssetUrl(TestHtmlConstants.HELLO_WORLD_URL));
+        assertNull(mWebView.getCertificate());
+
+        stopWebServer();
+
         startWebServer(true);
-        final String url = mWebServer.getAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
         mOnUiThread.setWebViewClient(new MockWebViewClient());
-        mWebView.setCertificate(null);
-        mOnUiThread.loadUrlAndWaitForCompletion(url);
+        mOnUiThread.loadUrlAndWaitForCompletion(
+                mWebServer.getAssetUrl(TestHtmlConstants.HELLO_WORLD_URL));
         SslCertificate cert = mWebView.getCertificate();
         assertNotNull(cert);
         assertEquals("Android", cert.getIssuedTo().getUName());
     }
 
     @UiThreadTest
-    public void testClearSslPreferences() {
-        // FIXME: Implement this. See http://b/5378046.
-        mWebView.clearSslPreferences();
+    public void testClearSslPreferences() throws Throwable {
+        // Load the first page. We expect a call to
+        // WebViewClient.onReceivedSslError().
+        final SslErrorWebViewClient webViewClient = new SslErrorWebViewClient();
+        startWebServer(true);
+        final String url = mWebServer.getAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
+        mOnUiThread.setWebViewClient(webViewClient);
+        mOnUiThread.clearSslPreferences();
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+        assertTrue(webViewClient.wasOnReceivedSslErrorCalled());
+
+        // Load the page again. We expect another call to
+        // WebViewClient.onReceivedSslError() since we cleared sslpreferences.
+        mOnUiThread.clearSslPreferences();
+        webViewClient.resetWasOnReceivedSslErrorCalled();
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+        assertTrue(webViewClient.wasOnReceivedSslErrorCalled());
+        assertEquals(TestHtmlConstants.HELLO_WORLD_TITLE, mOnUiThread.getTitle());
+
+        // Load the page once again, without clearing the sslpreferences.
+        // Make sure we do not get the callback.
+        webViewClient.resetWasOnReceivedSslErrorCalled();
+        mOnUiThread.loadUrlAndWaitForCompletion(url);
+        assertFalse(webViewClient.wasOnReceivedSslErrorCalled());
+        assertEquals(TestHtmlConstants.HELLO_WORLD_TITLE, mOnUiThread.getTitle());
     }
 
     public void testOnReceivedSslError() throws Throwable {
@@ -1689,15 +1627,13 @@
         // WebViewClient.shouldOverrideUrlLoading() returns false, so
         // the WebView will load the new URL.
         mOnUiThread.setDownloadListener(listener);
+        mOnUiThread.getSettings().setJavaScriptEnabled(true);
         mOnUiThread.loadDataAndWaitForCompletion(
-                "<html><body><a href=\"" + url
-                + "\">link</a></body></html>",
+                "<html><body onload=\"window.location = \'" + url + "\'\"></body></html>",
                 "text/html", null);
         // Wait for layout to complete before setting focus.
         getInstrumentation().waitForIdleSync();
-        assertTrue(mOnUiThread.requestFocus(View.FOCUS_DOWN, null));
-        getInstrumentation().waitForIdleSync();
-        getInstrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER);
+
         new PollingCheck(TEST_TIMEOUT) {
             @Override
             protected boolean check() {
@@ -1723,22 +1659,34 @@
         mWebView.setMapTrackballToArrowKeys(true);
     }
 
-    @UiThreadTest
     public void testSetNetworkAvailable() throws Exception {
-        WebSettings settings = mWebView.getSettings();
+        WebSettings settings = mOnUiThread.getSettings();
         settings.setJavaScriptEnabled(true);
         startWebServer(false);
+
         String url = mWebServer.getAssetUrl(TestHtmlConstants.NETWORK_STATE_URL);
         mOnUiThread.loadUrlAndWaitForCompletion(url);
-        assertEquals("ONLINE", mWebView.getTitle());
+        assertEquals("ONLINE", mOnUiThread.getTitle());
 
-        mWebView.setNetworkAvailable(false);
-        mOnUiThread.reloadAndWaitForCompletion();
-        assertEquals("OFFLINE", mWebView.getTitle());
+        mOnUiThread.setNetworkAvailable(false);
 
-        mWebView.setNetworkAvailable(true);
-        mOnUiThread.reloadAndWaitForCompletion();
-        assertEquals("ONLINE", mWebView.getTitle());
+        // Wait for the DOM to receive notification of the network state change.
+        new PollingCheck(TEST_TIMEOUT) {
+            @Override
+            protected boolean check() {
+                return mOnUiThread.getTitle().equals("OFFLINE");
+            }
+        }.run();
+
+        mOnUiThread.setNetworkAvailable(true);
+
+        // Wait for the DOM to receive notification of the network state change.
+        new PollingCheck(TEST_TIMEOUT) {
+            @Override
+            protected boolean check() {
+                return mOnUiThread.getTitle().equals("ONLINE");
+            }
+        }.run();
     }
 
     public void testSetWebChromeClient() throws Throwable {
@@ -1891,7 +1839,7 @@
 
     private void moveFocusDown() throws Throwable {
         // send down key and wait for idle
-        sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
+        getInstrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_TAB);
         // waiting for idle isn't always sufficient for the key to be fully processed
         Thread.sleep(500);
     }
@@ -2016,6 +1964,7 @@
     // Note that this class is not thread-safe.
     final class SslErrorWebViewClient extends WaitForLoadedClient {
         private boolean mWasOnReceivedSslErrorCalled;
+        private String mErrorUrl;
 
         public SslErrorWebViewClient() {
             super(mOnUiThread);
@@ -2023,6 +1972,7 @@
         @Override
         public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
             mWasOnReceivedSslErrorCalled = true;
+            mErrorUrl = error.getUrl();
             handler.proceed();
         }
         public void resetWasOnReceivedSslErrorCalled() {
@@ -2031,5 +1981,8 @@
         public boolean wasOnReceivedSslErrorCalled() {
             return mWasOnReceivedSslErrorCalled;
         }
+        public String errorUrl() {
+            return mErrorUrl;
+        }
     }
 }
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebView_WebViewTransportTest.java b/tests/tests/webkit/src/android/webkit/cts/WebView_WebViewTransportTest.java
index eaa5e69..dd784be 100644
--- a/tests/tests/webkit/src/android/webkit/cts/WebView_WebViewTransportTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebView_WebViewTransportTest.java
@@ -16,16 +16,22 @@
 
 package android.webkit.cts;
 
-import android.test.AndroidTestCase;
+import android.test.ActivityInstrumentationTestCase2;
 import android.test.UiThreadTest;
 import android.webkit.WebView;
 import android.webkit.WebView.WebViewTransport;
 
 
-public class WebView_WebViewTransportTest extends AndroidTestCase {
+public class WebView_WebViewTransportTest
+        extends ActivityInstrumentationTestCase2<WebViewStubActivity> {
+
+    public WebView_WebViewTransportTest() {
+        super("com.android.cts.stub", WebViewStubActivity.class);
+    }
+
     @UiThreadTest
     public void testAccessWebView() {
-        WebView webView = new WebView(mContext);
+        WebView webView = getActivity().getWebView();
         WebViewTransport transport = webView.new WebViewTransport();
 
         assertNull(transport.getWebView());
diff --git a/tests/tests/widget/src/android/widget/cts/AbsListViewTest.java b/tests/tests/widget/src/android/widget/cts/AbsListViewTest.java
index 7fa2d2f..7dcae28 100644
--- a/tests/tests/widget/src/android/widget/cts/AbsListViewTest.java
+++ b/tests/tests/widget/src/android/widget/cts/AbsListViewTest.java
@@ -81,6 +81,12 @@
         super.setUp();
 
         mActivity = getActivity();
+        new PollingCheck() {
+            @Override
+                protected boolean check() {
+                return mActivity.hasWindowFocus();
+            }
+        }.run();
         mInstrumentation = getInstrumentation();
 
         XmlPullParser parser = mActivity.getResources().getXml(R.layout.listview_layout);
diff --git a/tests/tests/widget/src/android/widget/cts/AbsSeekBarTest.java b/tests/tests/widget/src/android/widget/cts/AbsSeekBarTest.java
index 76d3883..4881a24 100644
--- a/tests/tests/widget/src/android/widget/cts/AbsSeekBarTest.java
+++ b/tests/tests/widget/src/android/widget/cts/AbsSeekBarTest.java
@@ -22,6 +22,7 @@
 import android.app.Activity;
 import android.content.Context;
 import android.content.res.Resources;
+import android.cts.util.PollingCheck;
 import android.graphics.Canvas;
 import android.graphics.ColorFilter;
 import android.graphics.drawable.Drawable;
@@ -160,7 +161,12 @@
                 seekBar.requestFocus();
             }
         });
-        getInstrumentation().waitForIdleSync();
+        new PollingCheck(1000) {
+            @Override
+            protected boolean check() {
+                return seekBar.hasWindowFocus();
+            }
+        }.run();
         assertEquals(keyProgressIncrement, seekBar.getKeyProgressIncrement());
 
         int oldProgress = seekBar.getProgress();
diff --git a/tests/tests/widget/src/android/widget/cts/AutoCompleteTextViewTest.java b/tests/tests/widget/src/android/widget/cts/AutoCompleteTextViewTest.java
index f7cf4d3..373c03b 100755
--- a/tests/tests/widget/src/android/widget/cts/AutoCompleteTextViewTest.java
+++ b/tests/tests/widget/src/android/widget/cts/AutoCompleteTextViewTest.java
@@ -87,6 +87,12 @@
     protected void setUp() throws Exception {
         super.setUp();
         mActivity = getActivity();
+        new PollingCheck() {
+            @Override
+                protected boolean check() {
+                return mActivity.hasWindowFocus();
+            }
+        }.run();
         mInstrumentation = getInstrumentation();
         mAutoCompleteTextView = (AutoCompleteTextView) mActivity
                 .findViewById(R.id.autocompletetv_edit);
diff --git a/tests/tests/widget/src/android/widget/cts/DialerFilterTest.java b/tests/tests/widget/src/android/widget/cts/DialerFilterTest.java
index 6886ac0..1c5c7ff 100755
--- a/tests/tests/widget/src/android/widget/cts/DialerFilterTest.java
+++ b/tests/tests/widget/src/android/widget/cts/DialerFilterTest.java
@@ -24,6 +24,7 @@
 import android.app.Activity;
 import android.app.Instrumentation;
 import android.content.Context;
+import android.cts.util.PollingCheck;
 import android.test.ActivityInstrumentationTestCase2;
 import android.test.UiThreadTest;
 import android.text.Editable;
@@ -52,6 +53,12 @@
         super.setUp();
 
         mActivity = getActivity();
+        new PollingCheck() {
+            @Override
+                protected boolean check() {
+                return mActivity.hasWindowFocus();
+            }
+        }.run();
         mInstrumentation = getInstrumentation();
 
         mDialerFilter = (DialerFilter) mActivity.findViewById(R.id.dialer_filter);
diff --git a/tests/tests/widget/src/android/widget/cts/ExpandableListViewBasicTest.java b/tests/tests/widget/src/android/widget/cts/ExpandableListViewBasicTest.java
index d50897f..dd8d6a2 100644
--- a/tests/tests/widget/src/android/widget/cts/ExpandableListViewBasicTest.java
+++ b/tests/tests/widget/src/android/widget/cts/ExpandableListViewBasicTest.java
@@ -17,6 +17,7 @@
 package android.widget.cts;
 
 
+import android.cts.util.PollingCheck;
 import android.test.ActivityInstrumentationTestCase2;
 import android.test.suitebuilder.annotation.MediumTest;
 import android.view.KeyEvent;
@@ -45,6 +46,12 @@
         super.setUp();
 
         mActivity = getActivity();
+        new PollingCheck() {
+            @Override
+                protected boolean check() {
+                return mActivity.hasWindowFocus();
+            }
+        }.run();
         mExpandableListView = mActivity.getExpandableListView();
         mAdapter = mExpandableListView.getExpandableListAdapter();
         mListUtil = new ListUtil(mExpandableListView, getInstrumentation());
diff --git a/tests/tests/widget/src/android/widget/cts/ExpandableListViewWithHeadersTest.java b/tests/tests/widget/src/android/widget/cts/ExpandableListViewWithHeadersTest.java
index 950355c..7f4715f 100644
--- a/tests/tests/widget/src/android/widget/cts/ExpandableListViewWithHeadersTest.java
+++ b/tests/tests/widget/src/android/widget/cts/ExpandableListViewWithHeadersTest.java
@@ -17,6 +17,7 @@
 package android.widget.cts;
 
 
+import android.cts.util.PollingCheck;
 import android.test.ActivityInstrumentationTestCase2;
 import android.test.suitebuilder.annotation.LargeTest;
 import android.test.suitebuilder.annotation.MediumTest;
@@ -37,7 +38,14 @@
     protected void setUp() throws Exception {
         super.setUp();
 
-        mExpandableListView = getActivity().getExpandableListView();
+        final ExpandableListWithHeaders activity = getActivity();
+        new PollingCheck() {
+            @Override
+                protected boolean check() {
+                return activity.hasWindowFocus();
+            }
+        }.run();
+        mExpandableListView = activity.getExpandableListView();
         mListUtil = new ListUtil(mExpandableListView, getInstrumentation());
     }
 
diff --git a/tests/tests/widget/src/android/widget/cts/GridLayoutTest.java b/tests/tests/widget/src/android/widget/cts/GridLayoutTest.java
new file mode 100644
index 0000000..638fe96
--- /dev/null
+++ b/tests/tests/widget/src/android/widget/cts/GridLayoutTest.java
@@ -0,0 +1,263 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package android.widget.cts;
+
+import android.content.Context;
+import android.test.ActivityInstrumentationTestCase;
+import android.util.AttributeSet;
+import android.util.Xml;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AbsoluteLayout;
+import android.widget.Button;
+import android.widget.GridLayout;
+import android.widget.TextView;
+import com.android.cts.stub.R;
+import org.xmlpull.v1.XmlPullParser;
+
+import static android.view.ViewGroup.LAYOUT_MODE_OPTICAL_BOUNDS;
+import static android.widget.GridLayout.spec;
+
+/**
+ * Test {@link android.widget.GridLayout}.
+ */
+public class GridLayoutTest extends ActivityInstrumentationTestCase<GridLayoutStubActivity> {
+
+    // The size of the off-screen test container in which we we will testing layout.
+    public static final int MAX_X = 2000;
+    public static final int MAX_Y = 2000;
+
+    private static abstract class Alignment {
+        String name;
+        int gravity;
+
+        abstract int getValue(View v);
+
+        protected Alignment(String name, int gravity) {
+            this.name = name;
+            this.gravity = gravity;
+        }
+    }
+
+    private static final Alignment[] HORIZONTAL_ALIGNMENTS = {
+            new Alignment("LEFT", Gravity.LEFT) {
+                @Override
+                int getValue(View v) {
+                    return v.getLeft();
+                }
+            },
+            new Alignment("CENTER", Gravity.CENTER_HORIZONTAL) {
+                @Override
+                int getValue(View v) {
+                    return (v.getLeft() + v.getRight()) / 2;
+                }
+            },
+            new Alignment("RIGHT", Gravity.RIGHT) {
+                @Override
+                int getValue(View v) {
+                    return v.getRight();
+                }
+            },
+            new Alignment("FILL", Gravity.FILL_HORIZONTAL) {
+                @Override
+                int getValue(View v) {
+                    return v.getWidth();
+                }
+            }
+    };
+
+    private static final Alignment[] VERTICAL_ALIGNMENTS = {
+            new Alignment("TOP", Gravity.TOP) {
+                @Override
+                int getValue(View v) {
+                    return v.getTop();
+                }
+            },
+            new Alignment("CENTER", Gravity.CENTER_VERTICAL) {
+                @Override
+                int getValue(View v) {
+                    return (v.getTop() + v.getBottom()) / 2;
+                }
+            },
+            new Alignment("BASELINE", Gravity.NO_GRAVITY) {
+                @Override
+                int getValue(View v) {
+                    return v.getTop() + v.getBaseline();
+                }
+            },
+            new Alignment("BOTTOM", Gravity.BOTTOM) {
+                @Override
+                int getValue(View v) {
+                    return v.getBottom();
+                }
+            },
+            new Alignment("FILL", Gravity.FILL_VERTICAL) {
+                @Override
+                int getValue(View v) {
+                    return v.getHeight();
+                }
+            }
+    };
+
+    private Context mContext;
+
+    public GridLayoutTest() {
+        super("com.android.cts.stub", GridLayoutStubActivity.class);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mContext = getInstrumentation().getTargetContext();
+    }
+
+    public void testConstructor() {
+        new GridLayout(mContext);
+
+        new GridLayout(mContext, null);
+
+        XmlPullParser parser = mContext.getResources().getXml(R.layout.gridlayout_layout);
+        AttributeSet attrs = Xml.asAttributeSet(parser);
+        new GridLayout(mContext, attrs);
+
+        try {
+            new GridLayout(null, null);
+            fail("should throw NullPointerException.");
+        } catch (NullPointerException e) {
+        }
+    }
+
+    public void testCheckLayoutParams() {
+        GridLayout gridLayout = new GridLayout(mContext);
+
+        gridLayout.addView(new TextView(mContext), new AbsoluteLayout.LayoutParams(0, 0, 0, 0));
+
+        gridLayout.addView(new TextView(mContext), new GridLayout.LayoutParams(
+                GridLayout.spec(0),
+                GridLayout.spec(0)));
+
+    }
+
+    public void testGenerateDefaultLayoutParams() {
+        GridLayout gridLayout = new GridLayout(mContext);
+        ViewGroup.LayoutParams lp = gridLayout.generateLayoutParams(null);
+        assertNotNull(lp);
+        assertTrue(lp instanceof GridLayout.LayoutParams);
+        assertEquals(ViewGroup.LayoutParams.WRAP_CONTENT, lp.width);
+        assertEquals(ViewGroup.LayoutParams.WRAP_CONTENT, lp.height);
+    }
+
+    private View[][] populate(GridLayout container) {
+        Context context = container.getContext();
+        int N = VERTICAL_ALIGNMENTS.length;
+        int M = HORIZONTAL_ALIGNMENTS.length;
+
+        View[][] table = new View[N + 1][M + 1];
+
+        {
+            TextView v = new TextView(context);
+            GridLayout.LayoutParams lp = new GridLayout.LayoutParams(spec(0), spec(0));
+            lp.setGravity(Gravity.CENTER);
+            v.setText("*");
+            container.addView(v, lp);
+        }
+        for (int i = 0; i < N; i++) {
+            Alignment va = VERTICAL_ALIGNMENTS[i];
+            int row = i + 1;
+            GridLayout.LayoutParams lp = new GridLayout.LayoutParams(spec(row), spec(0));
+            lp.setGravity(va.gravity | Gravity.CENTER_HORIZONTAL);
+            TextView v = new TextView(context);
+            v.setGravity(Gravity.CENTER);
+            v.setText(va.name);
+            container.addView(v, lp);
+            table[row][0] = v;
+        }
+        for (int j = 0; j < M; j++) {
+            Alignment ha = HORIZONTAL_ALIGNMENTS[j];
+            int col = j + 1;
+            GridLayout.LayoutParams lp = new GridLayout.LayoutParams(spec(0), spec(col));
+            lp.setGravity(Gravity.CENTER_VERTICAL | ha.gravity);
+            TextView v = new TextView(context);
+            v.setGravity(Gravity.CENTER);
+            v.setText(ha.name);
+            container.addView(v, lp);
+            table[0][col] = v;
+        }
+        for (int i = 0; i < N; i++) {
+            for (int j = 0; j < M; j++) {
+                Alignment ha = HORIZONTAL_ALIGNMENTS[j];
+                Alignment va = VERTICAL_ALIGNMENTS[i];
+                int row = i + 1;
+                int col = j + 1;
+                GridLayout.LayoutParams lp = new GridLayout.LayoutParams(spec(row), spec(col));
+                lp.setGravity(va.gravity | ha.gravity);
+                TextView v = new Button(context);
+                v.setText("X");
+                v.setTextSize(10 + 5 * row * col);
+                container.addView(v, lp);
+                table[row][col] = v;
+            }
+        }
+        return table;
+    }
+
+    private void testAlignment(int row, int col, Alignment a, View v0, View v1, String group) {
+        int a0 = a.getValue(v0);
+        int a1 = a.getValue(v1);
+        assertEquals("View at row " + row + ", column " + col + " was not " + a.name +
+                " aligned with its title " + group + ";",
+                a0, a1);
+    }
+
+    private void test(GridLayout p, View[][] table) {
+        p.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+        p.layout(0, 0, MAX_X, MAX_Y);
+
+        int N = VERTICAL_ALIGNMENTS.length;
+        int M = HORIZONTAL_ALIGNMENTS.length;
+
+        // test all horizontal alignments in each column
+        for (int j = 0; j < M; j++) {
+            int col = j + 1;
+            View v0 = table[0][col];
+            Alignment alignment = HORIZONTAL_ALIGNMENTS[j];
+            for (int i = 0; i < N; i++) {
+                int row = i + 1;
+                testAlignment(row, col, alignment, v0, table[row][col], "column");
+            }
+        }
+
+        // test all vertical alignments in each row
+        for (int i = 0; i < N; i++) {
+            int row = i + 1;
+            View v0 = table[row][0];
+            Alignment alignment = VERTICAL_ALIGNMENTS[i];
+            for (int j = 0; j < M; j++) {
+                int col = j + 1;
+                testAlignment(row, col, alignment, v0, table[row][col], "row");
+            }
+        }
+    }
+    public void testAlignment() {
+        GridLayout p = new GridLayout(mContext);
+        View[][] table = populate(p);
+        test(p, table);
+        //p.setLayoutMode(ViewGroup.LAYOUT_MODE_OPTICAL_BOUNDS);
+        //test(p, table);
+    }
+}
diff --git a/tests/tests/widget/src/android/widget/cts/GridViewTest.java b/tests/tests/widget/src/android/widget/cts/GridViewTest.java
index 2467861..1dd4764 100755
--- a/tests/tests/widget/src/android/widget/cts/GridViewTest.java
+++ b/tests/tests/widget/src/android/widget/cts/GridViewTest.java
@@ -24,6 +24,7 @@
 import android.app.Activity;
 import android.app.Instrumentation;
 import android.content.Context;
+import android.cts.util.PollingCheck;
 import android.database.DataSetObservable;
 import android.database.DataSetObserver;
 import android.graphics.Rect;
@@ -68,6 +69,12 @@
         super.setUp();
         mGridView = null;
         mActivity = getActivity();
+        new PollingCheck() {
+            @Override
+            protected boolean check() {
+                return mActivity.hasWindowFocus();
+            }
+        }.run();
         mInstrumentation = getInstrumentation();
     }
 
diff --git a/tests/tests/widget/src/android/widget/cts/MediaControllerTest.java b/tests/tests/widget/src/android/widget/cts/MediaControllerTest.java
index 3736b29..5ae692b 100644
--- a/tests/tests/widget/src/android/widget/cts/MediaControllerTest.java
+++ b/tests/tests/widget/src/android/widget/cts/MediaControllerTest.java
@@ -300,6 +300,11 @@
         public boolean canSeekForward() {
             return true;
         }
+
+        @Override
+        public int getAudioSessionId() {
+            return 0;
+        }
     }
 
     private static class MockOnClickListener implements OnClickListener {
diff --git a/tests/tests/widget/src/android/widget/cts/RelativeLayout_LayoutParamsTest.java b/tests/tests/widget/src/android/widget/cts/RelativeLayout_LayoutParamsTest.java
index a498bca..04682cb 100644
--- a/tests/tests/widget/src/android/widget/cts/RelativeLayout_LayoutParamsTest.java
+++ b/tests/tests/widget/src/android/widget/cts/RelativeLayout_LayoutParamsTest.java
@@ -183,12 +183,12 @@
         layoutParams = (RelativeLayout.LayoutParams) (view2.getLayoutParams());
         rules = layoutParams.getRules();
         assertEquals(R.id.relative_view21, rules[RelativeLayout.BELOW]);
-        assertEquals(R.id.relative_view21, rules[RelativeLayout.ALIGN_START]);
+        assertEquals(0, rules[RelativeLayout.ALIGN_START]);
         assertEquals(R.id.relative_view21, rules[RelativeLayout.ALIGN_LEFT]);
         assertEquals(0, rules[RelativeLayout.ALIGN_RIGHT]);
         rules = layoutParams.getRules(View.LAYOUT_DIRECTION_RTL);
         assertEquals(R.id.relative_view21, rules[RelativeLayout.BELOW]);
-        assertEquals(R.id.relative_view21, rules[RelativeLayout.ALIGN_START]);
+        assertEquals(0, rules[RelativeLayout.ALIGN_START]);
         assertEquals(0, rules[RelativeLayout.ALIGN_LEFT]);
         assertEquals(R.id.relative_view21, rules[RelativeLayout.ALIGN_RIGHT]);
 
@@ -203,13 +203,13 @@
         rules = layoutParams.getRules();
         assertEquals(R.id.relative_view21, rules[RelativeLayout.ALIGN_TOP]);
         assertEquals(R.id.relative_view22, rules[RelativeLayout.ALIGN_BOTTOM]);
-        assertEquals(R.id.relative_view21, rules[RelativeLayout.END_OF]);
+        assertEquals(0, rules[RelativeLayout.END_OF]);
         assertEquals(0, rules[RelativeLayout.LEFT_OF]);
         assertEquals(R.id.relative_view21, rules[RelativeLayout.RIGHT_OF]);
         rules = layoutParams.getRules(View.LAYOUT_DIRECTION_RTL);
         assertEquals(R.id.relative_view21, rules[RelativeLayout.ALIGN_TOP]);
         assertEquals(R.id.relative_view22, rules[RelativeLayout.ALIGN_BOTTOM]);
-        assertEquals(R.id.relative_view21, rules[RelativeLayout.END_OF]);
+        assertEquals(0, rules[RelativeLayout.END_OF]);
         assertEquals(R.id.relative_view21, rules[RelativeLayout.LEFT_OF]);
         assertEquals(0, rules[RelativeLayout.RIGHT_OF]);
 
@@ -220,12 +220,12 @@
         assertEquals(view3.getTop(), view4.getBottom());
         layoutParams = (RelativeLayout.LayoutParams) (view4.getLayoutParams());
         rules = layoutParams.getRules();
-        assertEquals(R.id.relative_view23, rules[RelativeLayout.ALIGN_END]);
+        assertEquals(0, rules[RelativeLayout.ALIGN_END]);
         assertEquals(0, rules[RelativeLayout.ALIGN_LEFT]);
         assertEquals(R.id.relative_view23, rules[RelativeLayout.ALIGN_RIGHT]);
         assertEquals(R.id.relative_view23, rules[RelativeLayout.ABOVE]);
         rules = layoutParams.getRules(View.LAYOUT_DIRECTION_RTL);
-        assertEquals(R.id.relative_view23, rules[RelativeLayout.ALIGN_END]);
+        assertEquals(0, rules[RelativeLayout.ALIGN_END]);
         assertEquals(R.id.relative_view23, rules[RelativeLayout.ALIGN_LEFT]);
         assertEquals(0, rules[RelativeLayout.ALIGN_RIGHT]);
         assertEquals(R.id.relative_view23, rules[RelativeLayout.ABOVE]);
@@ -238,12 +238,12 @@
         layoutParams = (RelativeLayout.LayoutParams) (view5.getLayoutParams());
         rules = layoutParams.getRules();
         assertEquals(RelativeLayout.TRUE, rules[RelativeLayout.ALIGN_PARENT_BOTTOM]);
-        assertEquals(RelativeLayout.TRUE, rules[RelativeLayout.ALIGN_PARENT_START]);
+        assertEquals(0, rules[RelativeLayout.ALIGN_PARENT_START]);
         assertEquals(RelativeLayout.TRUE, rules[RelativeLayout.ALIGN_PARENT_LEFT]);
         assertEquals(0, rules[RelativeLayout.ALIGN_PARENT_RIGHT]);
         rules = layoutParams.getRules(View.LAYOUT_DIRECTION_RTL);
         assertEquals(RelativeLayout.TRUE, rules[RelativeLayout.ALIGN_PARENT_BOTTOM]);
-        assertEquals(RelativeLayout.TRUE, rules[RelativeLayout.ALIGN_PARENT_START]);
+        assertEquals(0, rules[RelativeLayout.ALIGN_PARENT_START]);
         assertEquals(0, rules[RelativeLayout.ALIGN_PARENT_LEFT]);
         assertEquals(RelativeLayout.TRUE, rules[RelativeLayout.ALIGN_PARENT_RIGHT]);
 
@@ -255,12 +255,12 @@
         layoutParams = (RelativeLayout.LayoutParams) (view6.getLayoutParams());
         rules = layoutParams.getRules();
         assertEquals(RelativeLayout.TRUE, rules[RelativeLayout.ALIGN_PARENT_TOP]);
-        assertEquals(RelativeLayout.TRUE, rules[RelativeLayout.ALIGN_PARENT_END]);
+        assertEquals(0, rules[RelativeLayout.ALIGN_PARENT_END]);
         assertEquals(0, rules[RelativeLayout.ALIGN_PARENT_LEFT]);
         assertEquals(RelativeLayout.TRUE, rules[RelativeLayout.ALIGN_PARENT_RIGHT]);
         rules = layoutParams.getRules(View.LAYOUT_DIRECTION_RTL);
         assertEquals(RelativeLayout.TRUE, rules[RelativeLayout.ALIGN_PARENT_TOP]);
-        assertEquals(RelativeLayout.TRUE, rules[RelativeLayout.ALIGN_PARENT_END]);
+        assertEquals(0, rules[RelativeLayout.ALIGN_PARENT_END]);
         assertEquals(RelativeLayout.TRUE, rules[RelativeLayout.ALIGN_PARENT_LEFT]);
         assertEquals(0, rules[RelativeLayout.ALIGN_PARENT_RIGHT]);
 
@@ -284,12 +284,12 @@
         assertEquals(view1.getLeft(), view8.getRight());
         layoutParams = (RelativeLayout.LayoutParams) (view8.getLayoutParams());
         rules = layoutParams.getRules();
-        assertEquals(R.id.relative_view21, rules[RelativeLayout.START_OF]);
+        assertEquals(0, rules[RelativeLayout.START_OF]);
         assertEquals(R.id.relative_view21, rules[RelativeLayout.LEFT_OF]);
         assertEquals(0, rules[RelativeLayout.RIGHT_OF]);
         assertEquals(RelativeLayout.TRUE, rules[RelativeLayout.CENTER_VERTICAL]);
         rules = layoutParams.getRules(View.LAYOUT_DIRECTION_RTL);
-        assertEquals(R.id.relative_view21, rules[RelativeLayout.START_OF]);
+        assertEquals(0, rules[RelativeLayout.START_OF]);
         assertEquals(0, rules[RelativeLayout.LEFT_OF]);
         assertEquals(R.id.relative_view21, rules[RelativeLayout.RIGHT_OF]);
         assertEquals(RelativeLayout.TRUE, rules[RelativeLayout.CENTER_VERTICAL]);
@@ -303,13 +303,13 @@
         ViewAsserts.assertLeftAligned(relativeLayout, view9);
         layoutParams = (RelativeLayout.LayoutParams) (view9.getLayoutParams());
         rules = layoutParams.getRules();
-        assertEquals(R.id.gravity_bottom, rules[RelativeLayout.ALIGN_START]);
+        assertEquals(0, rules[RelativeLayout.ALIGN_START]);
         assertEquals(R.id.gravity_bottom, rules[RelativeLayout.ALIGN_LEFT]);
         assertEquals(0, rules[RelativeLayout.ALIGN_RIGHT]);
         assertEquals(R.id.relative_view23, rules[RelativeLayout.ALIGN_TOP]);
         assertEquals(R.id.relative_view23, rules[RelativeLayout.ALIGN_BOTTOM]);
         rules = layoutParams.getRules(View.LAYOUT_DIRECTION_RTL);
-        assertEquals(R.id.gravity_bottom, rules[RelativeLayout.ALIGN_START]);
+        assertEquals(0, rules[RelativeLayout.ALIGN_START]);
         assertEquals(0, rules[RelativeLayout.ALIGN_LEFT]);
         assertEquals(R.id.gravity_bottom, rules[RelativeLayout.ALIGN_RIGHT]);
         assertEquals(R.id.relative_view23, rules[RelativeLayout.ALIGN_TOP]);
diff --git a/tests/tests/widget/src/android/widget/cts/TextViewTest.java b/tests/tests/widget/src/android/widget/cts/TextViewTest.java
index 1b51e14..905a0ee 100755
--- a/tests/tests/widget/src/android/widget/cts/TextViewTest.java
+++ b/tests/tests/widget/src/android/widget/cts/TextViewTest.java
@@ -119,6 +119,12 @@
     protected void setUp() throws Exception {
         super.setUp();
         mActivity = getActivity();
+        new PollingCheck() {
+            @Override
+                protected boolean check() {
+                return mActivity.hasWindowFocus();
+            }
+        }.run();
         mInstrumentation = getInstrumentation();
     }
 
@@ -1303,7 +1309,7 @@
         mInstrumentation.waitForIdleSync();
         assertNull(mTextView.getError());
 
-        final Drawable icon = mActivity.getResources().getDrawable(R.drawable.failed);
+        final Drawable icon = getDrawable(R.drawable.failed);
         mActivity.runOnUiThread(new Runnable() {
             public void run() {
                 mTextView.setError(errorText, icon);
@@ -1422,8 +1428,13 @@
         mInstrumentation.waitForIdleSync();
         mTextView.getFocusedRect(rc);
         assertNotNull(mTextView.getLayout());
-        assertEquals(mTextView.getLayout().getPrimaryHorizontal(3), (float) rc.left);
-        assertEquals(mTextView.getLayout().getPrimaryHorizontal(13), (float) rc.right);
+        /* Cursor coordinates from getPrimaryHorizontal() may have a fractional
+         * component, while the result of getFocusedRect is in int coordinates.
+         * It's not practical for these to match exactly, so we compare that the
+         * integer components match - there can be a fractional pixel
+         * discrepancy, which should be okay for all practical applications. */
+        assertEquals((int) mTextView.getLayout().getPrimaryHorizontal(3), rc.left);
+        assertEquals((int) mTextView.getLayout().getPrimaryHorizontal(13), rc.right);
         assertEquals(mTextView.getLayout().getLineTop(0), rc.top);
         assertEquals(mTextView.getLayout().getLineBottom(0), rc.bottom);
 
@@ -1438,8 +1449,8 @@
         mInstrumentation.waitForIdleSync();
         mTextView.getFocusedRect(rc);
         assertNotNull(mTextView.getLayout());
-        assertEquals(mTextView.getLayout().getPrimaryHorizontal(3) - 2, (float) rc.left);
-        assertEquals(mTextView.getLayout().getPrimaryHorizontal(3) + 2, (float) rc.right);
+        assertEquals((int) mTextView.getLayout().getPrimaryHorizontal(3) - 2, rc.left);
+        assertEquals((int) mTextView.getLayout().getPrimaryHorizontal(3) + 2, rc.right);
         assertEquals(mTextView.getLayout().getLineTop(0), rc.top);
         assertEquals(mTextView.getLayout().getLineBottom(0), rc.bottom);
 
@@ -1462,8 +1473,8 @@
         mInstrumentation.waitForIdleSync();
         mTextView.getFocusedRect(rc);
         assertNotNull(mTextView.getLayout());
-        assertEquals(mTextView.getLayout().getPrimaryHorizontal(2), (float) rc.left);
-        assertEquals(mTextView.getLayout().getPrimaryHorizontal(4), (float) rc.right);
+        assertEquals((int) mTextView.getLayout().getPrimaryHorizontal(2), rc.left);
+        assertEquals((int) mTextView.getLayout().getPrimaryHorizontal(4), rc.right);
         assertEquals(mTextView.getLayout().getLineTop(0), rc.top);
         assertEquals(mTextView.getLayout().getLineBottom(0), rc.bottom);
 
@@ -1957,9 +1968,9 @@
         // drawableBottom
         assertNull(drawables[3]);
 
-        Drawable left = mActivity.getResources().getDrawable(R.drawable.blue);
-        Drawable right = mActivity.getResources().getDrawable(R.drawable.yellow);
-        Drawable top = mActivity.getResources().getDrawable(R.drawable.red);
+        Drawable left = getDrawable(R.drawable.blue);
+        Drawable right = getDrawable(R.drawable.yellow);
+        Drawable top = getDrawable(R.drawable.red);
 
         // using drawables directly
         mTextView.setCompoundDrawablesWithIntrinsicBounds(left, top, right, null);
@@ -2131,7 +2142,7 @@
         assertEquals(0, mTextView.getExtendedPaddingTop());
 
         // After Set a Drawable
-        final Drawable top = mActivity.getResources().getDrawable(R.drawable.red);
+        final Drawable top = getDrawable(R.drawable.red);
         top.setBounds(0, 0, 100, 10);
         mTextView.setCompoundDrawables(null, top, null, null);
         assertEquals(mTextView.getCompoundPaddingTop(), mTextView.getExtendedPaddingTop());
@@ -2150,7 +2161,7 @@
         assertEquals(0, mTextView.getExtendedPaddingBottom());
 
         // After Set a Drawable
-        final Drawable bottom = mActivity.getResources().getDrawable(R.drawable.red);
+        final Drawable bottom = getDrawable(R.drawable.red);
         bottom.setBounds(0, 0, 100, 10);
         mTextView.setCompoundDrawables(null, null, null, bottom);
         assertEquals(mTextView.getCompoundPaddingBottom(), mTextView.getExtendedPaddingBottom());
@@ -2168,7 +2179,7 @@
         assertEquals(0, mTextView.getTotalPaddingTop());
 
         // After Set a Drawable
-        final Drawable top = mActivity.getResources().getDrawable(R.drawable.red);
+        final Drawable top = getDrawable(R.drawable.red);
         top.setBounds(0, 0, 100, 10);
         mActivity.runOnUiThread(new Runnable() {
             public void run() {
@@ -2194,7 +2205,7 @@
         assertEquals(0, mTextView.getTotalPaddingBottom());
 
         // After Set a Drawable
-        final Drawable bottom = mActivity.getResources().getDrawable(R.drawable.red);
+        final Drawable bottom = getDrawable(R.drawable.red);
         bottom.setBounds(0, 0, 100, 10);
         mActivity.runOnUiThread(new Runnable() {
             public void run() {
@@ -2223,7 +2234,7 @@
         assertEquals(0, mTextView.getTotalPaddingLeft());
 
         // After Set a Drawable
-        Drawable left = mActivity.getResources().getDrawable(R.drawable.red);
+        Drawable left = getDrawable(R.drawable.red);
         left.setBounds(0, 0, 10, 100);
         mTextView.setCompoundDrawables(left, null, null, null);
         mTextView.setGravity(Gravity.RIGHT);
@@ -2241,7 +2252,7 @@
         assertEquals(0, mTextView.getTotalPaddingRight());
 
         // After Set a Drawable
-        Drawable right = mActivity.getResources().getDrawable(R.drawable.red);
+        Drawable right = getDrawable(R.drawable.red);
         right.setBounds(0, 0, 10, 100);
         mTextView.setCompoundDrawables(null, null, right, null);
         mTextView.setGravity(Gravity.CENTER_HORIZONTAL);
@@ -2765,7 +2776,7 @@
     public void testVerifyDrawable() {
         MockTextView textView = new MockTextView(mActivity);
 
-        Drawable d = mActivity.getResources().getDrawable(R.drawable.pass);
+        Drawable d = getDrawable(R.drawable.pass);
         assertFalse(textView.verifyDrawable(d));
 
         textView.setCompoundDrawables(null, d, null, null);
@@ -2960,7 +2971,7 @@
         MockTextView textView = new MockTextView(mActivity);
         assertEquals(0, textView.computeVerticalScrollExtent());
 
-        Drawable d = mActivity.getResources().getDrawable(R.drawable.pass);
+        Drawable d = getDrawable(R.drawable.pass);
         textView.setCompoundDrawables(null, d, null, d);
 
         assertEquals(0, textView.computeVerticalScrollExtent());
@@ -3444,6 +3455,86 @@
                 ((BitmapDrawable) drawables[BOTTOM]).getBitmap());
     }
 
+    @UiThreadTest
+    public void testDrawableResolution2() {
+        final int LEFT = 0;
+        final int TOP = 1;
+        final int RIGHT = 2;
+        final int BOTTOM = 3;
+
+        TextViewStubActivity activity = getActivity();
+
+        // Case 1.1: left / right drawable defined in default LTR mode
+        TextView tv = (TextView) activity.findViewById(R.id.textview_drawable_1_1);
+        Drawable[] drawables = tv.getCompoundDrawables();
+
+        WidgetTestUtils.assertEquals(getBitmap(R.drawable.icon_blue),
+                ((BitmapDrawable) drawables[LEFT]).getBitmap());
+        WidgetTestUtils.assertEquals(getBitmap(R.drawable.icon_red),
+                ((BitmapDrawable) drawables[RIGHT]).getBitmap());
+        WidgetTestUtils.assertEquals(getBitmap(R.drawable.icon_green),
+                ((BitmapDrawable) drawables[TOP]).getBitmap());
+        WidgetTestUtils.assertEquals(getBitmap(R.drawable.icon_yellow),
+                ((BitmapDrawable) drawables[BOTTOM]).getBitmap());
+
+        tv.setCompoundDrawables(null, null, getDrawable(R.drawable.icon_yellow), null);
+        drawables = tv.getCompoundDrawables();
+
+        assertNull(drawables[LEFT]);
+        WidgetTestUtils.assertEquals(getBitmap(R.drawable.icon_yellow),
+                ((BitmapDrawable) drawables[RIGHT]).getBitmap());
+        assertNull(drawables[TOP]);
+        assertNull(drawables[BOTTOM]);
+
+        tv = (TextView) activity.findViewById(R.id.textview_drawable_1_2);
+        drawables = tv.getCompoundDrawables();
+
+        WidgetTestUtils.assertEquals(getBitmap(R.drawable.icon_blue),
+                ((BitmapDrawable) drawables[LEFT]).getBitmap());
+        WidgetTestUtils.assertEquals(getBitmap(R.drawable.icon_red),
+                ((BitmapDrawable) drawables[RIGHT]).getBitmap());
+        WidgetTestUtils.assertEquals(getBitmap(R.drawable.icon_green),
+                ((BitmapDrawable) drawables[TOP]).getBitmap());
+        WidgetTestUtils.assertEquals(getBitmap(R.drawable.icon_yellow),
+                ((BitmapDrawable) drawables[BOTTOM]).getBitmap());
+
+        tv.setCompoundDrawables(getDrawable(R.drawable.icon_yellow), null, null, null);
+        drawables = tv.getCompoundDrawables();
+
+        WidgetTestUtils.assertEquals(getBitmap(R.drawable.icon_yellow),
+                ((BitmapDrawable) drawables[LEFT]).getBitmap());
+        assertNull(drawables[RIGHT]);
+        assertNull(drawables[TOP]);
+        assertNull(drawables[BOTTOM]);
+
+        tv = (TextView) activity.findViewById(R.id.textview_ltr);
+        drawables = tv.getCompoundDrawables();
+
+        assertNull(drawables[LEFT]);
+        assertNull(drawables[RIGHT]);
+        assertNull(drawables[TOP]);
+        assertNull(drawables[BOTTOM]);
+
+        tv.setCompoundDrawables(getDrawable(R.drawable.icon_blue), null, getDrawable(R.drawable.icon_red), null);
+        drawables = tv.getCompoundDrawables();
+
+        WidgetTestUtils.assertEquals(getBitmap(R.drawable.icon_blue),
+                ((BitmapDrawable) drawables[LEFT]).getBitmap());
+        WidgetTestUtils.assertEquals(getBitmap(R.drawable.icon_red),
+                ((BitmapDrawable) drawables[RIGHT]).getBitmap());
+        assertNull(drawables[TOP]);
+        assertNull(drawables[BOTTOM]);
+
+        tv.setCompoundDrawablesRelative(getDrawable(R.drawable.icon_yellow), null, null, null);
+        drawables = tv.getCompoundDrawables();
+
+        WidgetTestUtils.assertEquals(getBitmap(R.drawable.icon_yellow),
+                ((BitmapDrawable) drawables[LEFT]).getBitmap());
+        assertNull(drawables[RIGHT]);
+        assertNull(drawables[TOP]);
+        assertNull(drawables[BOTTOM]);
+    }
+
     private static class MockOnEditorActionListener implements OnEditorActionListener {
         private boolean isOnEditorActionCalled;
 
@@ -3484,7 +3575,11 @@
     }
 
     private Bitmap getBitmap(int resid) {
-        return ((BitmapDrawable) mActivity.getResources().getDrawable(resid)).getBitmap();
+        return ((BitmapDrawable) getDrawable(resid)).getBitmap();
+    }
+
+    private Drawable getDrawable(int resid) {
+        return mActivity.getResources().getDrawable(resid);
     }
 
     private void setMaxWidth(final int pixels) {
diff --git a/tests/tests/widget/src/android/widget/cts/ToastTest.java b/tests/tests/widget/src/android/widget/cts/ToastTest.java
index 9586731..9c7846b 100644
--- a/tests/tests/widget/src/android/widget/cts/ToastTest.java
+++ b/tests/tests/widget/src/android/widget/cts/ToastTest.java
@@ -28,6 +28,7 @@
 import android.test.UiThreadTest;
 import android.view.Gravity;
 import android.view.View;
+import android.view.ViewTreeObserver;
 import android.view.WindowManager;
 import android.widget.ImageView;
 import android.widget.Toast;
@@ -39,6 +40,8 @@
     private Toast mToast;
     private Activity mActivity;
     private Instrumentation mInstrumentation;
+    private boolean mLayoutDone;
+    private ViewTreeObserver.OnGlobalLayoutListener mLayoutListener;
 
     public ToastTest() {
         super("com.android.cts.stub", StubActivity.class);
@@ -51,6 +54,12 @@
         mActivity = getActivity();
         mInstrumentation = getInstrumentation();
         mToast = new Toast(mActivity);
+        mLayoutDone = false;
+        mLayoutListener = new ViewTreeObserver.OnGlobalLayoutListener() {
+            public void onGlobalLayout() {
+                mLayoutDone = true;
+            }
+        };
     }
 
     public void testConstructor() {
@@ -89,6 +98,21 @@
         assertNull(view.getParent());
     }
 
+    private void registerLayoutListener(final View view) {
+        mLayoutDone = false;
+        view.getViewTreeObserver().addOnGlobalLayoutListener(mLayoutListener);
+    }
+
+    private void assertLayoutDone(final View view) {
+        new PollingCheck(TIME_OUT) {
+            @Override
+            protected boolean check() {
+                return mLayoutDone;
+            }
+        }.run();
+        view.getViewTreeObserver().removeOnGlobalLayoutListener(mLayoutListener);
+    }
+
     public void testShow() {
         mActivity.runOnUiThread(new Runnable() {
             public void run() {
@@ -173,7 +197,6 @@
         assertSame(imageView, mToast.getView());
         assertShowAndHide(imageView);
     }
-
     public void testAccessDuration() {
         long start = SystemClock.uptimeMillis();
         mActivity.runOnUiThread(new Runnable() {
@@ -222,6 +245,7 @@
             public void run() {
                 mToast.setMargin(horizontal1, vertical1);
                 mToast.show();
+                registerLayoutListener(mToast.getView());
             }
         });
         mInstrumentation.waitForIdleSync();
@@ -232,6 +256,7 @@
         WindowManager.LayoutParams params1 = (WindowManager.LayoutParams) view.getLayoutParams();
         assertEquals(horizontal1, params1.horizontalMargin);
         assertEquals(vertical1, params1.verticalMargin);
+        assertLayoutDone(view);
         int[] xy1 = new int[2];
         view.getLocationOnScreen(xy1);
         assertShowAndHide(view);
@@ -242,6 +267,7 @@
             public void run() {
                 mToast.setMargin(horizontal2, vertical2);
                 mToast.show();
+                registerLayoutListener(mToast.getView());
             }
         });
         mInstrumentation.waitForIdleSync();
@@ -253,6 +279,7 @@
         assertEquals(horizontal2, params2.horizontalMargin);
         assertEquals(vertical2, params2.verticalMargin);
 
+        assertLayoutDone(view);
         int[] xy2 = new int[2];
         view.getLocationOnScreen(xy2);
         assertShowAndHide(view);
@@ -267,6 +294,7 @@
                 mToast = Toast.makeText(mActivity, TEST_TOAST_TEXT, Toast.LENGTH_SHORT);
                 mToast.setGravity(Gravity.CENTER, 0, 0);
                 mToast.show();
+                registerLayoutListener(mToast.getView());
             }
         });
         mInstrumentation.waitForIdleSync();
@@ -275,6 +303,7 @@
         assertEquals(Gravity.CENTER, mToast.getGravity());
         assertEquals(0, mToast.getXOffset());
         assertEquals(0, mToast.getYOffset());
+        assertLayoutDone(view);
         int[] centerXY = new int[2];
         view.getLocationOnScreen(centerXY);
         assertShowAndHide(view);
@@ -283,6 +312,7 @@
             public void run() {
                 mToast.setGravity(Gravity.BOTTOM, 0, 0);
                 mToast.show();
+                registerLayoutListener(mToast.getView());
             }
         });
         mInstrumentation.waitForIdleSync();
@@ -291,6 +321,7 @@
         assertEquals(Gravity.BOTTOM, mToast.getGravity());
         assertEquals(0, mToast.getXOffset());
         assertEquals(0, mToast.getYOffset());
+        assertLayoutDone(view);
         int[] bottomXY = new int[2];
         view.getLocationOnScreen(bottomXY);
         assertShowAndHide(view);
@@ -306,6 +337,7 @@
             public void run() {
                 mToast.setGravity(Gravity.BOTTOM, xOffset, yOffset);
                 mToast.show();
+                registerLayoutListener(mToast.getView());
             }
         });
         mInstrumentation.waitForIdleSync();
@@ -314,6 +346,7 @@
         assertEquals(Gravity.BOTTOM, mToast.getGravity());
         assertEquals(xOffset, mToast.getXOffset());
         assertEquals(yOffset, mToast.getYOffset());
+        assertLayoutDone(view);
         int[] bottomOffsetXY = new int[2];
         view.getLocationOnScreen(bottomOffsetXY);
         assertShowAndHide(view);
diff --git a/tests/tests/widget/src/android/widget/cts/ViewFlipperTest.java b/tests/tests/widget/src/android/widget/cts/ViewFlipperTest.java
index bcb417a..f223466 100644
--- a/tests/tests/widget/src/android/widget/cts/ViewFlipperTest.java
+++ b/tests/tests/widget/src/android/widget/cts/ViewFlipperTest.java
@@ -93,6 +93,7 @@
 
         // wait for a longer time to make sure the view flipping is completed.
         waitForViewFlipping(FLIP_INTERVAL + 200);
+        getInstrumentation().waitForIdleSync();
         runTestOnUiThread(new Runnable() {
             public void run() {
                 ViewFlipper viewFlipper =
@@ -108,6 +109,7 @@
         });
 
         waitForViewFlipping(FLIP_INTERVAL + 200);
+        getInstrumentation().waitForIdleSync();
         runTestOnUiThread(new Runnable() {
             public void run() {
                 ViewFlipper viewFlipper =
diff --git a/tests/uiautomator/Android.mk b/tests/uiautomator/Android.mk
index 68b1dc2..d0d4b8e 100644
--- a/tests/uiautomator/Android.mk
+++ b/tests/uiautomator/Android.mk
@@ -22,7 +22,7 @@
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
 LOCAL_MODULE := CtsUiAutomatorTests
-LOCAL_JAVA_LIBRARIES := uiautomator_sdk_v17
+LOCAL_JAVA_LIBRARIES := uiautomator.core
 LOCAL_PROGUARD_ENABLED := disabled
 LOCAL_CTS_TEST_APK := CtsUiAutomatorApp
 LOCAL_CTS_TEST_APP_PACKAGE := com.android.cts.uiautomator
diff --git a/tests/uiautomator/src/com/android/cts/uiautomatortest/CtsUiAutomatorTest.java b/tests/uiautomator/src/com/android/cts/uiautomatortest/CtsUiAutomatorTest.java
index 5885315..7e44e49 100644
--- a/tests/uiautomator/src/com/android/cts/uiautomatortest/CtsUiAutomatorTest.java
+++ b/tests/uiautomator/src/com/android/cts/uiautomatortest/CtsUiAutomatorTest.java
@@ -15,6 +15,7 @@
  */
 package com.android.cts.uiautomatortest;
 
+import android.graphics.Point;
 import android.graphics.Rect;
 import android.os.RemoteException;
 import android.os.SystemClock;
@@ -39,7 +40,7 @@
 public class CtsUiAutomatorTest extends UiAutomatorTestCase {
     private static final String LOG_TAG = CtsUiAutomatorTest.class.getSimpleName();
     private static final String[] LIST_SCROLL_TESTS = new String[] {
-            "Test 17", "Test 11", "Test 20"
+            "Test 17", "Test 11", "Test 20", "Test 35"
     };
     private static final String LAUNCH_APP = "am start -a android.intent.action.MAIN"
             + " -n com.android.cts.uiautomator/.MainActivity -W";
@@ -50,10 +51,14 @@
 
     private static final String SCREEN_SHOT_FILE_PATH_NAME = "/data/local/tmp/ctsScreenShot";
 
+    // Should match the value defined in UiObject
+    private static final int FINGER_TOUCH_HALF_WIDTH = 20;
+
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         // Make sure the test app is always running
+        UiDevice.getInstance().waitForIdle();
         if (!new UiObject(new UiSelector().packageName(PKG_NAME)).exists())
             runShellCommand(LAUNCH_APP);
     }
@@ -195,14 +200,17 @@
     }
 
     /**
-     * Test if a the content changed due to an action can be verified
+     * Test when a node's state is changed due to an action, it is updated in the accessibility
+     * hierarchy.
      *
      * @throws UiObjectNotFoundException
      */
     public void testSelectAfterContentChanged() throws UiObjectNotFoundException {
         openTest("Test 2");
-        getObjectByText("Before").click();
-        getObjectByText("After").click();
+        UiObject dynaButton = getObjectByText("Before");
+        dynaButton.click();
+        assertTrue("Button state change is not refreshed in accessibility hierarchy",
+                getObjectByText("After").exists());
     }
 
     /**
@@ -288,12 +296,12 @@
         int totalDelay = Integer.parseInt(timeDiff);
 
         // Cumulative waits in this test should add up to at minimum 30 seconds
-        assertFalse("Timeout for wait-for-idle is too short. Expecting minimum 10 seconds",
+        assertFalse("Timeout for wait-for-idle is too short. Expecting minimum 30 seconds",
                 totalDelay < 30 * 1000);
 
         // allow for tolerance in time measurements due to differences between
         // device speeds
-        assertFalse("Timeout for wait-for-idle is too long. Expecting maximum 15 seconds",
+        assertFalse("Timeout for wait-for-idle is too long. Expecting maximum 60 seconds",
                 totalDelay > 60 * 1000);
     }
 
@@ -324,26 +332,28 @@
         UiObject textView = new UiObject(new UiSelector().textContains("["));
 
         textView.swipeLeft(10);
-        assertTrue("UiObject swipe left", "[ 2 ]".equals(textView.getText()));
+        assertTrue("UiObject swipe left 1->2", "[ 2 ]".equals(textView.getText()));
 
         textView.swipeLeft(10);
-        assertTrue("UiObject swipe left", "[ 3 ]".equals(textView.getText()));
+        assertTrue("UiObject swipe left 2->3", "[ 3 ]".equals(textView.getText()));
 
         textView.swipeLeft(10);
-        assertTrue("UiObject swipe left", "[ 4 ]".equals(textView.getText()));
+        assertTrue("UiObject swipe left 3->4", "[ 4 ]".equals(textView.getText()));
 
         textView.swipeRight(10);
-        assertTrue("UiObject swipe right", "[ 3 ]".equals(textView.getText()));
+        assertTrue("UiObject swipe right 3<-4", "[ 3 ]".equals(textView.getText()));
 
         textView.swipeRight(10);
-        assertTrue("UiObject swipe right", "[ 2 ]".equals(textView.getText()));
+        assertTrue("UiObject swipe right 2<-3", "[ 2 ]".equals(textView.getText()));
 
         textView.swipeRight(10);
-        assertTrue("UiObject swipe right", "[ 1 ]".equals(textView.getText()));
+        assertTrue("UiObject swipe right 1<-2", "[ 1 ]".equals(textView.getText()));
 
         Rect tb = textView.getBounds();
         UiDevice.getInstance().swipe(tb.right - 20, tb.centerY(), tb.left + 20, tb.centerY(), 50);
-        assertTrue("UiDevice swipe", "[ 2 ]".equals(textView.getText()));
+
+        SystemClock.sleep(100);
+        assertTrue("UiDevice raw swipe 1->2", "[ 2 ]".equals(textView.getText()));
     }
 
     /**
@@ -370,45 +380,10 @@
     }
 
     /**
-     * The view contains a WebView with static content. This test uses the text
-     * traversal feature of pressing down arrows to read the view's contents
-     *
+     * Test when an object does not exist, an exception is thrown
      * @throws UiObjectNotFoundException
      */
-    /*// broken in MR1
-    public void testWebViewTextTraversal() throws UiObjectNotFoundException {
-        openTest("Test 6");
-        UiObject webView = new UiObject(new UiSelector().className(android.webkit.WebView.class
-                .getName()));
-        webView.clickTopLeft();
-        UiDevice device = UiDevice.getInstance();
-        device.clearLastTraversedText();
-
-        device.pressDPadDown();
-        String text = device.getLastTraversedText();
-        assertTrue("Read regular text", text.contains("This is test <b>6</b>"));
-
-        device.pressDPadDown();
-        text = device.getLastTraversedText();
-        assertTrue("Anchor text", text.contains("<a"));
-
-        device.pressDPadDown();
-        text = device.getLastTraversedText();
-        assertTrue("h5 text", text.contains("h5"));
-
-        device.pressDPadDown();
-        text = device.getLastTraversedText();
-        assertTrue("Anchor text", text.contains("<a"));
-
-        device.pressDPadDown();
-        text = device.getLastTraversedText();
-        assertTrue("h4 text", text.contains("h4"));
-    }*/
-
-    /**
-     * Test when an object does not exist, an exception is thrown
-     */
-    public void testExceptionObjectNotFound() {
+    public void testExceptionObjectNotFound() throws UiObjectNotFoundException {
         UiSelector selector = new UiSelector().text("Nothing should be found");
         UiSelector child = new UiSelector().className("Nothing");
         UiObject obj = new UiObject(selector.childSelector(child));
@@ -760,6 +735,7 @@
      * @since API Level 17
      */
     public void testSelectorLongClickableProperty() throws UiObjectNotFoundException {
+        openTest("Test 2");
         UiObject button3 = new UiObject(new UiSelector().className(
                 android.widget.Button.class).longClickable(true).instance(2));
         button3.longClick();
@@ -781,6 +757,250 @@
     }
 
     /**
+     * Verifies the 'Resource-Id' property of UiSelector
+     *
+     * @throws UiObjectNotFoundException
+     * @since API Level 18
+     */
+    public void testSelectorResourceId() throws UiObjectNotFoundException {
+        openTest("Test 5");
+        UiSelector toggleSelector =
+                new UiSelector().resourceId("com.android.cts.uiautomator:id/test_5_toggleButton");
+        UiObject toggleButton = new UiObject(toggleSelector);
+        assertTrue("Object with selector resource-id not found", toggleButton.exists());
+        assertTrue("Incorrect object for selector resource-id returned",
+                "OFF".equals(toggleButton.getText()) || "ON".equals(toggleButton.getText()));
+    }
+
+    /**
+     * Verify the UiSelector property resourceIdMatches
+     *
+     * @throws UiObjectNotFoundException
+     * @since API Level 18
+     */
+    public void testSelectorResourceIdMatches() throws UiObjectNotFoundException {
+        openTest("Test 2");
+        new UiObject(new UiSelector().resourceIdMatches("(?i).*button.*").instance(2)).click();
+        verifyDialogActionResults("Button 3");
+        new UiObject(new UiSelector().resourceIdMatches("(?i).*button1.*")).click();
+        verifyDialogActionResults("Button 1");
+    }
+
+    /**
+     * Performs a pinch out from the center of a view to its edges and listens to
+     * the motion events to make sure the starting and ending points of both pointers
+     * are correct.
+     *
+     * @throws UiObjectNotFoundException
+     * @since API Level 18
+     */
+    public void testPinchOut() throws UiObjectNotFoundException {
+        openTest("Test 12");
+
+        UiObject screen = new UiObject(
+                new UiSelector().description("Details View"));
+
+        // get the current view dimensions
+        Rect screenRect = screen.getBounds();
+
+        // perform the pinch for 100% of the view dimensions starting form
+        // the center out to the edges.
+        screen.pinchOut(100, 30);
+
+        // dialog with the detected pointers motion coordinates is displayed.
+        UiObject results = new UiObject(new UiSelector().className(
+                android.widget.ScrollView.class).childSelector(new UiSelector().className(
+                        android.widget.TextView.class)));
+        String allPointers = results.getText();
+        new UiObject(new UiSelector().text("OK")).click(); // dismiss dialog
+
+        // parse pointer 1
+        Point p1s = parsePointerCoordinates(allPointers, 0, 0); // start
+        Point p1e = parsePointerCoordinates(allPointers, 0, 1); // end
+        // parse pointer 2
+        Point p2s = parsePointerCoordinates(allPointers, 1, 0); // start
+        Point p2e = parsePointerCoordinates(allPointers, 1, 1); // end
+
+        assertTrue("All Y axis coordinates for pointer 1 must be the same", p1s.y == p1e.y);
+        assertTrue("All Y axis coordinates for pointer 2 must be the same", p2s.y == p2e.y);
+        assertTrue("All Y axis coordinates for both pointers must be the same", p1s.y == p2s.y);
+        assertTrue("Pinch must be in center of target view", p2s.y == screenRect.centerY());
+
+        assertTrue("Touch-down X coordinate for pointer 1 is invalid",
+                withinMarginOfError(0.1f, screenRect.centerX(), p1s.x));
+
+        assertTrue("Touch-down X coordinate for pointer 2 is invalid",
+                withinMarginOfError(0.1f, screenRect.centerX(), p2s.x));
+
+        assertTrue("Touch-up X coordinate for pointer 1 is invalid",
+                withinMarginOfError(0.1f, screenRect.centerX() - screenRect.left,
+                        screenRect.centerX() - p1e.x));
+
+        assertTrue("Touch-up X coordinate for pointer 2 is invalid",
+                withinMarginOfError(0.1f, screenRect.right, p2e.x));
+    }
+
+    /**
+     * Performs a pinch in from the edges of a view to its center and listens to
+     * the motion events to make sure the starting and ending points of both pointers
+     * are correct.
+     *
+     * @throws UiObjectNotFoundException
+     * @since API Level 18
+     */
+    public void testPinchIn() throws UiObjectNotFoundException {
+        openTest("Test 12");
+
+        UiObject screen = new UiObject(
+                new UiSelector().description("Details View"));
+
+        // get the current view dimensions
+        Rect screenRect = screen.getBounds();
+
+        // perform the pinch for 100% of the view dimensions starting form
+        // the edges in towards the center.
+        screen.pinchIn(100, 30);
+
+        // dialog with the detected pointers motion coordinates is displayed.
+        UiObject results = new UiObject(new UiSelector().className(
+                android.widget.ScrollView.class).childSelector(new UiSelector().className(
+                        android.widget.TextView.class)));
+        String allPointers = results.getText();
+        new UiObject(new UiSelector().text("OK")).click(); // dismiss dialog
+
+        // parse pointer 1
+        Point p1s = parsePointerCoordinates(allPointers, 0, 0); // start
+        Point p1e = parsePointerCoordinates(allPointers, 0, 1); // end
+        // parse pointer 2
+        Point p2s = parsePointerCoordinates(allPointers, 1, 0); // start
+        Point p2e = parsePointerCoordinates(allPointers, 1, 1); // end
+
+        assertTrue("All Y axis coordinates for pointer 1 must be the same", p1s.y == p1e.y);
+        assertTrue("All Y axis coordinates for pointer 2 must be the same", p2s.y == p2e.y);
+        assertTrue("All Y axis coordinates for both pointers must be the same", p1s.y == p2s.y);
+        assertTrue("Pinch must be in center of target view", p2s.y == screenRect.centerY());
+
+        assertTrue("Touch-down X coordinate for pointer 1 is invalid",
+                withinMarginOfError(0.1f, screenRect.centerX() - screenRect.left,
+                        screenRect.centerX() -  p1s.x));
+
+        assertTrue("Touch-down X coordinate for pointer 2 is invalid",
+                withinMarginOfError(0.1f, screenRect.right, p2s.x));
+
+        assertTrue("Touch-up X coordinate for pointer 1 is invalid",
+                withinMarginOfError(0.1f, screenRect.centerX() - FINGER_TOUCH_HALF_WIDTH, p1e.x));
+
+        assertTrue("Touch-up X coordinate for pointer 2 is invalid",
+                withinMarginOfError(0.1f, screenRect.centerX() + FINGER_TOUCH_HALF_WIDTH, p2e.x));
+    }
+
+    /**
+     * Performs a drag and drop operation from one UiObject to another UiObject
+     *
+     * @throws UiObjectNotFoundException
+     * @since API Level 18
+     */
+    public void testDragToObject() throws UiObjectNotFoundException {
+        openTest("Test 5");
+
+        UiObject imageButton = new UiObject(new UiSelector().description("Image button"));
+        UiObject starsBar = new UiObject(new UiSelector().className(android.widget.RatingBar.class));
+
+        Rect starsBarRect = starsBar.getBounds();
+        Rect imageButtonRect = imageButton.getBounds();
+        imageButton.dragTo(starsBar, 30);
+
+        // dialog with the detected pointers motion coordinates is displayed.
+        UiObject results = new UiObject(new UiSelector().className(
+                android.widget.ScrollView.class).childSelector(new UiSelector().className(
+                        android.widget.TextView.class)));
+        String allPointers = results.getText();
+        new UiObject(new UiSelector().text("OK")).click(); // dismiss dialog
+
+        // parse pointer 1
+        Point p1s = parsePointerCoordinates(allPointers, 0, 0); // start
+        Point p1e = parsePointerCoordinates(allPointers, 0, 1); // end
+
+        assertTrue("Invalid touch starting.X reported",
+                withinMarginOfError(0.05f, imageButtonRect.centerX(), p1s.x));
+        assertTrue("Invalid touch starting.Y reported",
+                withinMarginOfError(0.05f, imageButtonRect.centerY(), p1s.y));
+        assertTrue("Invalid touch ending.X reported",
+                withinMarginOfError(0.05f, starsBarRect.centerX(), p1e.x));
+        assertTrue("Invalid touch ending.Y reported",
+                withinMarginOfError(0.05f, starsBarRect.centerY(), p1e.y));
+    }
+
+    /**
+     * Performs a drag and drop operation from one UiObject to a specified coordinates
+     *
+     * @throws UiObjectNotFoundException
+     * @since API Level 18
+     */
+   public void testDragToCoordinates() throws UiObjectNotFoundException {
+       openTest("Test 5");
+
+       UiObject imageButton = new UiObject(new UiSelector().description("Image button"));
+       UiObject starsBar = new UiObject(new UiSelector().className(android.widget.RatingBar.class));
+
+       Rect starsBarRect = starsBar.getBounds();
+       Rect imageButtonRect = imageButton.getBounds();
+       imageButton.dragTo(starsBarRect.centerX(), starsBarRect.centerY(), 30);
+
+       // dialog with the detected pointers motion coordinates is displayed.
+       UiObject results = new UiObject(new UiSelector().className(
+               android.widget.ScrollView.class).childSelector(new UiSelector().className(
+                       android.widget.TextView.class)));
+       String allPointers = results.getText();
+       new UiObject(new UiSelector().text("OK")).click(); // dismiss dialog
+
+       // parse pointer 1
+       Point p1s = parsePointerCoordinates(allPointers, 0, 0); // start
+       Point p1e = parsePointerCoordinates(allPointers, 0, 1); // end
+
+       assertTrue("Invalid touch starting.X reported",
+               withinMarginOfError(0.05f, imageButtonRect.centerX(), p1s.x));
+       assertTrue("Invalid touch starting.Y reported",
+               withinMarginOfError(0.05f, imageButtonRect.centerY(), p1s.y));
+       assertTrue("Invalid touch ending.X reported",
+               withinMarginOfError(0.05f, starsBarRect.centerX(), p1e.x));
+       assertTrue("Invalid touch ending.Y reported",
+               withinMarginOfError(0.05f, starsBarRect.centerY(), p1e.y));
+   }
+
+   /**
+    * Detect if actual value is within the allowable margin of error of the expected value.
+    *
+    * Used essentially with actual values that may vary from the expected values such in the
+    * cases of touch and pinch and touch and swipe where the starting or ending points may
+    * not exactly match the expected value.
+    *
+    * @param marginPrecent is values between 0 and 1
+    * @param expected
+    * @param actual
+    * @return true if actual is within the allowed range from expected
+    */
+   private boolean withinMarginOfError(float marginPrecent, int expected, int actual) {
+       int m = (int) (marginPrecent * expected);
+       return actual >= expected - m && actual <= expected + m;
+   }
+
+   /**
+     * Parses a string containing starting to ending coordinates of one or more pointers.
+     *
+     * @param allPointers is a raw string with coordinates from all detected pointers
+     * @param pointerNumber is the desired pointer to be parsed
+     * @param edge is the 0 for the start or 1 for the end of the swipe
+     * @return Point containing the start or end coordinates of the specified pointer number
+     */
+    private Point parsePointerCoordinates(String allPointers, int pointerNumber, int edge) {
+        String pointers[] = allPointers.split("\n");
+        String coordinates = pointers[pointerNumber].split(":")[edge];
+        String xy[] = coordinates.split(",");
+        return new Point(Integer.parseInt(xy[0]), Integer.parseInt(xy[1]));
+    }
+
+    /**
      * Private helper to open test views. Also covers UiScrollable tests
      *
      * @param name
diff --git a/tests/uiautomator/test-apps/CtsUiAutomatorApp/Android.mk b/tests/uiautomator/test-apps/CtsUiAutomatorApp/Android.mk
index e30816a..fe4342a 100644
--- a/tests/uiautomator/test-apps/CtsUiAutomatorApp/Android.mk
+++ b/tests/uiautomator/test-apps/CtsUiAutomatorApp/Android.mk
@@ -1,4 +1,3 @@
-#
 # Copyright (C) 2012 The Android Open Source Project
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -12,7 +11,6 @@
 # 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.
-#
 
 LOCAL_PATH:= $(call my-dir)
 
@@ -31,4 +29,3 @@
 LOCAL_PROGUARD_ENABLED := disabled
 
 include $(BUILD_PACKAGE)
-
diff --git a/tests/uiautomator/test-apps/CtsUiAutomatorApp/AndroidManifest.xml b/tests/uiautomator/test-apps/CtsUiAutomatorApp/AndroidManifest.xml
index 9b3d8b3..87c2d82 100644
--- a/tests/uiautomator/test-apps/CtsUiAutomatorApp/AndroidManifest.xml
+++ b/tests/uiautomator/test-apps/CtsUiAutomatorApp/AndroidManifest.xml
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-
 <!--
  * Copyright (C) 2011 The Android Open Source Project
  *
@@ -44,6 +43,6 @@
                 android:name="android.support.PARENT_ACTIVITY"
                 android:value="FragmentActivity" />
         </activity>
-        </application>
+     </application>
 
 </manifest>
diff --git a/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/layout/activity_main.xml b/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/layout/activity_main.xml
index f0e3bc9..72b68f3 100644
--- a/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/layout/activity_main.xml
+++ b/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/layout/activity_main.xml
@@ -28,4 +28,4 @@
         android:layout_centerVertical="true"
         android:text="@string/hello_world" />
 
-</RelativeLayout>
\ No newline at end of file
+</RelativeLayout>
diff --git a/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/layout/test_results_detail_fragment.xml b/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/layout/test_results_detail_fragment.xml
index 28ed6dd..e8b8c05 100644
--- a/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/layout/test_results_detail_fragment.xml
+++ b/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/layout/test_results_detail_fragment.xml
@@ -19,6 +19,7 @@
     android:id="@+id/test_results_detail_container"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:contentDescription="@string/title_test_view_detail"
     android:orientation="vertical" >
 
     <TextView
diff --git a/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/menu/activity_main.xml b/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/menu/activity_main.xml
index 73c4db8..c54c287 100644
--- a/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/menu/activity_main.xml
+++ b/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/menu/activity_main.xml
@@ -23,4 +23,4 @@
         android:showAsAction="never"
         android:title="@string/menu_settings"/>
 
-</menu>
\ No newline at end of file
+</menu>
diff --git a/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/values/strings.xml b/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/values/strings.xml
index 78b829f..04f0df4 100644
--- a/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/values/strings.xml
+++ b/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/values/strings.xml
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-
 <!--
  * Copyright (C) 2011 The Android Open Source Project
  *
@@ -58,5 +57,7 @@
     <string name="title_activity_test5_detail">Test5DetailActivity</string>
     <string name="title_activity_test6_detail">Test6DetailActivity</string>
     <string name="test_5_Widgets_collection">Widgets Collection</string>
-
+    <string name="generic_item_touch_dialog_title">Multi-touch test dialog</string>
+    <string name="drag_item_touch_dialog_title">Drag and drop test dialog</string>
+    <string name="title_test_view_detail">Details View</string>
 </resources>
diff --git a/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/values/styles.xml b/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/values/styles.xml
index 119c259..bce88ae 100644
--- a/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/values/styles.xml
+++ b/tests/uiautomator/test-apps/CtsUiAutomatorApp/res/values/styles.xml
@@ -19,4 +19,4 @@
 
     <style name="AppTheme" parent="android:Theme.Light" />
 
-</resources>
\ No newline at end of file
+</resources>
diff --git a/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/MainActivity.java b/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/MainActivity.java
index 8d4f144..81833b7 100644
--- a/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/MainActivity.java
+++ b/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/MainActivity.java
@@ -13,7 +13,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package com.android.cts.uiautomator;
 
 import android.content.Intent;
diff --git a/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/Test2DetailFragment.java b/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/Test2DetailFragment.java
index 4eade4b..4fb322f 100644
--- a/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/Test2DetailFragment.java
+++ b/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/Test2DetailFragment.java
@@ -30,7 +30,6 @@
 public class Test2DetailFragment extends Fragment {
     public static final String ARG_ITEM_ID = "item_id";
     private Button mButton1, mButton2, mButton3, mDynaButton;
-    private boolean mDynaButtonAfter = false;
 
     public Test2DetailFragment() {
     }
@@ -144,32 +143,11 @@
         mDynaButton.setOnClickListener(new Button.OnClickListener() {
             @Override
             public void onClick(View v) {
-                if (getActivity().getString(R.string.buttonBefore).equals(mDynaButton.getText())) {
-                    mDynaButton.setText(R.string.buttonAfter);
-                    mDynaButton
-                            .setContentDescription(getActivity().getString(R.string.buttonAfter));
-                    mDynaButtonAfter = true;
-                } else {
-                    mDynaButton.setText(R.string.buttonBefore);
-                    mDynaButton.setContentDescription(getActivity()
-                            .getString(R.string.buttonBefore));
-                    mDynaButtonAfter = false;
-                }
+                mDynaButton.setText(R.string.buttonAfter);
+                mDynaButton.setContentDescription(getString(R.string.buttonAfter));
             }
         });
 
-        if (savedState != null && savedState.getBoolean("DynaButtonAfter")) {
-            mDynaButton.setText(R.string.buttonAfter);
-            mDynaButton.setContentDescription(getActivity().getString(R.string.buttonAfter));
-            mDynaButtonAfter = true;
-        }
         return rootView;
     }
-
-    @Override
-    public void onSaveInstanceState(Bundle savedInstanceState) {
-        super.onSaveInstanceState(savedInstanceState);
-        // Save UI state changes to the savedInstanceState.
-        savedInstanceState.putBoolean("DynaButtonAfter", mDynaButtonAfter);
-    }
 }
diff --git a/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/Test5DetailFragment.java b/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/Test5DetailFragment.java
index 0f88d3c..e2dd156 100644
--- a/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/Test5DetailFragment.java
+++ b/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/Test5DetailFragment.java
@@ -16,9 +16,11 @@
 
 package com.android.cts.uiautomator;
 
+import android.app.AlertDialog;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.view.LayoutInflater;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.Button;
@@ -31,6 +33,15 @@
 
     public static final String ARG_ITEM_ID = "item_id";
 
+    class PointerEvent {
+        int startX;
+        int startY;
+        int endX;
+        int endY;
+    }
+
+    private final PointerEvent mPointerEvent = new PointerEvent();
+
     public Test5DetailFragment() {
     }
 
@@ -66,6 +77,75 @@
             }
         });
 
+        imageButton.setOnTouchListener(new ImageButton.OnTouchListener() {
+
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+                if (event.getAction() == MotionEvent.ACTION_DOWN) {
+                    resetTouchResults();
+                    collectStartAction(event, v);
+                } else if (event.getAction() == MotionEvent.ACTION_UP) {
+                    collectEndAction(event, v);
+                    displayTouchResults();
+                }
+                return false;
+            }
+        });
+
         return rootView;
     }
+
+    private void displayTouchResults() {
+        StringBuilder output = new StringBuilder();
+
+        output.append(String.format("%d,%d:%d,%d\n",
+                mPointerEvent.startX, mPointerEvent.startY, mPointerEvent.endX,
+                mPointerEvent.endY));
+
+        // display the submitted text
+        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        builder.setTitle(R.string.drag_item_touch_dialog_title);
+        builder.setPositiveButton(R.string.OK, null);
+        builder.setMessage(output.toString());
+        AlertDialog diag = builder.create();
+        diag.show();
+    }
+
+    /**
+     * Clears all collected pointer results
+     */
+    private void resetTouchResults() {
+         mPointerEvent.startX = mPointerEvent.startY =
+                    mPointerEvent.endX = mPointerEvent.endY = -1;
+    }
+
+    /**
+     * Collects pointer touch information converting from relative to absolute before
+     * storing it as starting touch coordinates.
+     *
+     * @param event
+     * @param view
+     * @param pointerIndex
+     */
+    private void collectStartAction(MotionEvent event, View view) {
+        int offsetInScreen[] = new int[2];
+        view.getLocationOnScreen(offsetInScreen);
+        mPointerEvent.startX = (int)(event.getX() + offsetInScreen[0]);
+        mPointerEvent.startY = (int)(event.getY() + offsetInScreen[1]);
+    }
+
+    /**
+     * Collects pointer touch information converting from relative to absolute before
+     * storing it as ending touch coordinates.
+     *
+     * @param event
+     * @param view
+     * @param pointerIndex
+     */
+    private void collectEndAction(MotionEvent event, View view) {
+        int offsetInScreen[] = new int[2];
+        view.getLocationOnScreen(offsetInScreen);
+        mPointerEvent.endX = (int)(event.getX() + offsetInScreen[0]);
+        mPointerEvent.endY = (int)(event.getY() + offsetInScreen[1]);
+    }
 }
diff --git a/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/TestGenericDetailFragment.java b/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/TestGenericDetailFragment.java
index ab36d04..a7215c3 100644
--- a/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/TestGenericDetailFragment.java
+++ b/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/TestGenericDetailFragment.java
@@ -16,9 +16,11 @@
 
 package com.android.cts.uiautomator;
 
+import android.app.AlertDialog;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.view.LayoutInflater;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.TextView;
@@ -27,6 +29,15 @@
     public static final String ARG_ITEM_ID = "item_id";
     TestItems.TestItem mItem;
 
+    private class PointerEvent {
+        int startX;
+        int startY;
+        int endX;
+        int endY;
+    }
+
+    private final PointerEvent[] mPointerEvents = new PointerEvent[10];
+
     public TestGenericDetailFragment() {
     }
 
@@ -44,6 +55,122 @@
         if (mItem != null) {
             ((TextView) rootView.findViewById(R.id.testResultsTextView)).setText(mItem.mName);
         }
+
+        // listen to touch events to verify the multiPointerGesture APIs
+        // Since API Level 18
+        rootView.setOnTouchListener(new View.OnTouchListener() {
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+
+                switch(event.getAction() & MotionEvent.ACTION_MASK) {
+                    case MotionEvent.ACTION_DOWN:
+                        // Reset any collected touch coordinate results on the primary touch down
+                        resetTouchResults();
+                        // collect this event
+                        collectStartAction(event, v, 0);
+                        break;
+
+                    case MotionEvent.ACTION_POINTER_DOWN:
+                        // collect this event
+                        collectStartAction(event, v, getPointerIndex(event));
+                        break;
+
+                    case MotionEvent.ACTION_POINTER_UP:
+                        // collect this event
+                        collectEndAction(event, v, getPointerIndex(event));
+                        break;
+
+                    case MotionEvent.ACTION_UP:
+                        // collect this event
+                        collectEndAction(event, v, 0);
+                        // on the primary touch up display results collected for all pointers
+                        displayTouchResults();
+                        break;
+                }
+                return true;
+            }
+        });
+
         return rootView;
     }
+
+    /**
+     * Displays collected results from all pointers into a dialog view in the following
+     * format: "startX,startY:endX,endY" where each line represent data for a pointer if
+     * multiple pointers (fingers) were detected.
+     */
+    private void displayTouchResults() {
+        StringBuilder output = new StringBuilder();
+        for (int x = 0; x < mPointerEvents.length; x++) {
+            if (mPointerEvents[x].startX == -1)
+                break;
+
+            output.append(String.format("%d,%d:%d,%d\n",
+                    mPointerEvents[x].startX, mPointerEvents[x].startY, mPointerEvents[x].endX,
+                    mPointerEvents[x].endY));
+        }
+
+        // display the submitted text
+        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        builder.setTitle(R.string.generic_item_touch_dialog_title);
+        builder.setPositiveButton(R.string.OK, null);
+        builder.setMessage(output.toString());
+        AlertDialog diag = builder.create();
+        diag.show();
+    }
+
+    /**
+     * Clears all collected pointer results
+     */
+    private void resetTouchResults() {
+        for (int x = 0; x < mPointerEvents.length; x++) {
+            if (mPointerEvents[x] == null)
+                mPointerEvents[x] = new PointerEvent();
+            mPointerEvents[x].startX = mPointerEvents[x].startY =
+                    mPointerEvents[x].endX = mPointerEvents[x].endY = -1;
+        }
+    }
+
+    /**
+     * Collects pointer touch information converting from relative to absolute before
+     * storing it as starting touch coordinates.
+     *
+     * @param event
+     * @param view
+     * @param pointerIndex
+     */
+    private void collectStartAction(MotionEvent event, View view, int pointerIndex) {
+        int offsetInScreen[] = new int[2];
+        view.getLocationOnScreen(offsetInScreen);
+        mPointerEvents[getPointerId(event)].startX =
+                (int)(event.getX(pointerIndex) + offsetInScreen[0]);
+        mPointerEvents[getPointerId(event)].startY =
+                (int)(event.getY(pointerIndex) + offsetInScreen[1]);
+    }
+
+    /**
+     * Collects pointer touch information converting from relative to absolute before
+     * storing it as ending touch coordinates.
+     *
+     * @param event
+     * @param view
+     * @param pointerIndex
+     */
+    private void collectEndAction(MotionEvent event, View view, int pointerIndex) {
+        int offsetInScreen[] = new int[2];
+        view.getLocationOnScreen(offsetInScreen);
+        mPointerEvents[getPointerId(event)].endX =
+                (int)(event.getX(pointerIndex) + offsetInScreen[0]);
+        mPointerEvents[getPointerId(event)].endY =
+                (int)(event.getY(pointerIndex) + offsetInScreen[1]);
+    }
+
+    private int getPointerId(MotionEvent event) {
+        return event.getPointerId(getPointerIndex(event));
+    }
+
+    private int getPointerIndex(MotionEvent event) {
+        return ((event.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK)
+                >> MotionEvent.ACTION_POINTER_INDEX_SHIFT);
+    }
 }
diff --git a/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/TestItems.java b/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/TestItems.java
index 358516e..db6e693 100644
--- a/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/TestItems.java
+++ b/tests/uiautomator/test-apps/CtsUiAutomatorApp/src/com/android/cts/uiautomator/TestItems.java
@@ -80,6 +80,16 @@
         addTestItem(new TestItem("28", "Test 28", TestGenericDetailFragment.class));
         addTestItem(new TestItem("29", "Test 29", TestGenericDetailFragment.class));
         addTestItem(new TestItem("30", "Test 30", TestGenericDetailFragment.class));
+        addTestItem(new TestItem("31", "Test 31", TestGenericDetailFragment.class));
+        addTestItem(new TestItem("32", "Test 32", TestGenericDetailFragment.class));
+        addTestItem(new TestItem("33", "Test 33", TestGenericDetailFragment.class));
+        addTestItem(new TestItem("34", "Test 34", TestGenericDetailFragment.class));
+        addTestItem(new TestItem("35", "Test 35", TestGenericDetailFragment.class));
+        addTestItem(new TestItem("36", "Test 36", TestGenericDetailFragment.class));
+        addTestItem(new TestItem("37", "Test 37", TestGenericDetailFragment.class));
+        addTestItem(new TestItem("38", "Test 38", TestGenericDetailFragment.class));
+        addTestItem(new TestItem("39", "Test 39", TestGenericDetailFragment.class));
+        addTestItem(new TestItem("40", "Test 40", TestGenericDetailFragment.class));
     }
 
     private static void addTestItem(TestItem item) {
diff --git a/tools/cts-java-scanner/src/com/android/cts/javascanner/DocletRunner.java b/tools/cts-java-scanner/src/com/android/cts/javascanner/DocletRunner.java
index 25a4ec1..2afc4fa 100644
--- a/tools/cts-java-scanner/src/com/android/cts/javascanner/DocletRunner.java
+++ b/tools/cts-java-scanner/src/com/android/cts/javascanner/DocletRunner.java
@@ -72,7 +72,7 @@
         // PTS adds PtsAndroidTestCase
         sourcePath.add("./cts/suite/pts/deviceTests/ptsutil/src");
         sourcePath.add("./cts/libs/util/src");
-        sourcePath.add("./frameworks/testing/uiautomator/library/src");
+        sourcePath.add("./frameworks/testing/uiautomator/library/testrunner-src");
         sourcePath.add(sourceDir.toString());
         return join(sourcePath, ":");
     }
diff --git a/tools/cts-native-scanner/Android.mk b/tools/cts-native-scanner/Android.mk
index f8b1629..8bcff1c 100644
--- a/tools/cts-native-scanner/Android.mk
+++ b/tools/cts-native-scanner/Android.mk
@@ -34,10 +34,5 @@
 	$(copy-file-to-new-target)
 	$(hide) chmod 755 $@
 
-# the other stuff
-# ============================================================
-subdirs := $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \
-		src \
-	))
-
-include $(subdirs)
+# Build all sub-directories
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/tools/cts-native-scanner/src/com/android/cts/nativescanner/TestScanner.java b/tools/cts-native-scanner/src/com/android/cts/nativescanner/TestScanner.java
index 9411566..0a1b207 100644
--- a/tools/cts-native-scanner/src/com/android/cts/nativescanner/TestScanner.java
+++ b/tools/cts-native-scanner/src/com/android/cts/nativescanner/TestScanner.java
@@ -30,12 +30,14 @@
  * Scanner of C++ gTest source files.
  *
  * It looks for test declarations and outputs a file following this format:
- *
- * class:TestClass1
- * method:testMethod1
- * method:testMethod2
- * class:TestClass2
- * method:testMethod1
+ * suite:TestSuite
+ * case:TestCase1
+ * test:Test1
+ * test:Test2
+ * suite:TestSuite
+ * case:TestCase2
+ * test:Test1
+ * test:Test2
  *
  */
 class TestScanner {
@@ -71,38 +73,36 @@
             if (file.isDirectory()) {
                 scanDir(file, testNames);
             } else {
-                scanFile(file, testNames);
+                scanFile(new Scanner(file), testNames);
             }
         }
     }
-    // We want to find lines like class SLObjectCreationTest : public ::testing::Test { ...
-    // and extract the "SLObjectCreationTest" as group #1
-    private static final Pattern CLASS_REGEX =
-            Pattern.compile("\\s*class\\s+(\\w+).*");
 
     // We want to find lines like TEST_F(SLObjectCreationTest, testAudioPlayerFromFdCreation) { ...
-    // and extract the "testAudioPlayerFromFdCreation" as group #1
+    // and extract the "SLObjectCreationTest" as group #1,
+    // "testAudioPlayerFromFdCreation" as group #2
     private static final Pattern METHOD_REGEX =
-            Pattern.compile("\\s*TEST_F\\(\\w+,\\s*(\\w+)\\).*");
+            Pattern.compile("\\s*TEST_F\\((\\w+),\\s*(\\w+)\\).*");
 
-    private void scanFile(File file, List<String> testNames) throws FileNotFoundException {
-        Scanner scanner = null;
+    public void scanFile(Scanner scanner, List<String> testNames) {
         try {
-            scanner = new Scanner(file);
+            String lastCase = "";
             while (scanner.hasNextLine()) {
                 String line = scanner.nextLine();
-                Matcher matcher = CLASS_REGEX.matcher(line);
-                if (matcher.matches()) {
-                    testNames.add("suite:" + mTestSuite);
-                    testNames.add("case:" + matcher.group(1));
+
+                Matcher matcher = METHOD_REGEX.matcher(line);
+
+                if (!matcher.matches()) {
                     continue;
                 }
 
-                matcher = METHOD_REGEX.matcher(line);
-                if (matcher.matches()) {
-                    testNames.add("test:" + matcher.group(1));
-                    continue;
+                if (!lastCase.equals(matcher.group(1))) {
+                    testNames.add("suite:" + mTestSuite);
+                    testNames.add("case:" + matcher.group(1));
+                    lastCase = matcher.group(1);
                 }
+
+                testNames.add("test:" + matcher.group(2));
             }
         } finally {
             if (scanner != null) {
diff --git a/suite/pts/hostTests/ptshostutil/Android.mk b/tools/cts-native-scanner/tests/Android.mk
similarity index 71%
rename from suite/pts/hostTests/ptshostutil/Android.mk
rename to tools/cts-native-scanner/tests/Android.mk
index 14e786a..6044b0d 100644
--- a/suite/pts/hostTests/ptshostutil/Android.mk
+++ b/tools/cts-native-scanner/tests/Android.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2012 The Android Open Source Project
+# Copyright 2012 The Android Open Source Project
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -16,14 +16,13 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_SRC_FILES := \
-    $(call all-java-files-under, src)
+# Only compile source java files in this lib
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
-LOCAL_JAVA_LIBRARIES := cts-tradefed tradefed-prebuilt ddmlib-prebuilt junit
-
+LOCAL_MODULE := cts-native-scanner-tests
 LOCAL_MODULE_TAGS := optional
-
-LOCAL_MODULE := ptshostutil
+LOCAL_JAVA_LIBRARIES := ddmlib-prebuilt tradefed-prebuilt cts-native-scanner
 
 include $(BUILD_HOST_JAVA_LIBRARY)
 
+
diff --git a/tools/cts-native-scanner/tests/run_unit_tests.sh b/tools/cts-native-scanner/tests/run_unit_tests.sh
new file mode 100755
index 0000000..a42e42b
--- /dev/null
+++ b/tools/cts-native-scanner/tests/run_unit_tests.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+# Copyright 2012 The Android Open Source Project
+#
+# 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.
+
+# helper script for running the cts-tradefed unit tests
+
+checkFile() {
+    if [ ! -f "$1" ]; then
+        echo "Unable to locate $1"
+        exit
+    fi;
+}
+
+JAR_DIR=${ANDROID_HOST_OUT}/framework
+JARS="ddmlib-prebuilt.jar tradefed-prebuilt.jar hosttestlib.jar cts-native-scanner.jar cts-native-scanner-tests.jar"
+
+for JAR in $JARS; do
+    checkFile ${JAR_DIR}/${JAR}
+    JAR_PATH=${JAR_PATH}:${JAR_DIR}/${JAR}
+done
+
+java $RDBG_FLAG \
+  -cp ${JAR_PATH} com.android.tradefed.command.Console run singleCommand host -n --class com.android.cts.nativescanner.UnitTests "$@"
+
diff --git a/tools/cts-native-scanner/tests/src/com/android/cts/nativescanner/TestScannerTest.java b/tools/cts-native-scanner/tests/src/com/android/cts/nativescanner/TestScannerTest.java
new file mode 100644
index 0000000..18732fd
--- /dev/null
+++ b/tools/cts-native-scanner/tests/src/com/android/cts/nativescanner/TestScannerTest.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2012 The Android Open Source Project
+ *
+ * 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.
+ */
+package com.android.cts.nativescanner;
+
+import com.android.cts.nativescanner.TestScanner;
+
+import junit.framework.TestCase;
+
+import java.io.File;
+import java.io.StringReader;
+import java.lang.StringBuilder;
+import java.util.Scanner;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+/**
+ * Unit tests for {@link TestScanner}.
+ */
+public class TestScannerTest extends TestCase {
+
+    public void testScanFile() {
+        TestScanner testScanner = new TestScanner(new File("unused"), "TestSuite");
+
+        String newLine = System.getProperty("line.separator");
+        StringBuilder sb = new StringBuilder();
+        sb.append("foobar" + newLine);  // ignored
+        sb.append("TEST_F(TestCase1, TestName1)" + newLine);  // valid
+        sb.append("TEST_F(TestCase1, TestName2)" + newLine);  // valid
+        sb.append("TEST_F(TestCase2, TestName1) foo" + newLine);  // valid
+        sb.append("TEST_F(TestCase2, TestName1 foo)" + newLine);  // ignored
+        sb.append("foo TEST_F(TestCase2, TestName1)" + newLine);  // ignored
+
+        List<String> names = new ArrayList<String>();
+        Scanner scanner = new Scanner(new StringReader(sb.toString()));
+        testScanner.scanFile(scanner, names);
+        Iterator it = names.iterator();
+
+        assertEquals("suite:TestSuite", it.next());
+        assertEquals("case:TestCase1", it.next());
+        assertEquals("test:TestName1", it.next());
+        assertEquals("test:TestName2", it.next());
+        assertEquals("suite:TestSuite", it.next());
+        assertEquals("case:TestCase2", it.next());
+        assertEquals("test:TestName1", it.next());
+        assertFalse(it.hasNext());
+        scanner.close();
+    }
+}
diff --git a/tools/cts-native-scanner/tests/src/com/android/cts/nativescanner/UnitTests.java b/tools/cts-native-scanner/tests/src/com/android/cts/nativescanner/UnitTests.java
new file mode 100644
index 0000000..13d4e5b
--- /dev/null
+++ b/tools/cts-native-scanner/tests/src/com/android/cts/nativescanner/UnitTests.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2012 The Android Open Source Project
+ *
+ * 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.
+ */
+package com.android.cts.nativescanner;
+
+import com.android.cts.nativescanner.TestScannerTest;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * A test suite for all cts-native-scanner unit tests.
+ * <p/>
+ * All tests listed here should be self-contained, and do not require any external dependencies
+ */
+public class UnitTests extends TestSuite {
+
+    public UnitTests() {
+        super();
+
+        // result package
+        addTestSuite(TestScannerTest.class);
+    }
+
+    public static Test suite() {
+        return new UnitTests();
+    }
+}
diff --git a/tools/cts-xml-generator/src/com/android/cts/xmlgenerator/Test.java b/tools/cts-xml-generator/src/com/android/cts/xmlgenerator/Test.java
index a9dd5e0..93b838b 100644
--- a/tools/cts-xml-generator/src/com/android/cts/xmlgenerator/Test.java
+++ b/tools/cts-xml-generator/src/com/android/cts/xmlgenerator/Test.java
@@ -16,7 +16,7 @@
 
 package com.android.cts.xmlgenerator;
 
-public class Test {
+public class Test implements Comparable<Test> {
     private String mName;
     private int mTimeout;
 
@@ -32,4 +32,9 @@
     public int getTimeout() {
         return mTimeout;
     }
+
+    @Override
+    public int compareTo(Test another) {
+        return getName().compareTo(another.getName());
+    }
 }
diff --git a/tools/cts-xml-generator/src/com/android/cts/xmlgenerator/TestCase.java b/tools/cts-xml-generator/src/com/android/cts/xmlgenerator/TestCase.java
index a9ea6e1..ed09b8e 100644
--- a/tools/cts-xml-generator/src/com/android/cts/xmlgenerator/TestCase.java
+++ b/tools/cts-xml-generator/src/com/android/cts/xmlgenerator/TestCase.java
@@ -20,7 +20,7 @@
 import java.util.Collections;
 import java.util.List;
 
-class TestCase {
+class TestCase implements Comparable<TestCase> {
 
     private final String mName;
 
@@ -41,4 +41,9 @@
     public Collection<Test> getTests() {
         return Collections.unmodifiableCollection(mTests);
     }
+
+    @Override
+    public int compareTo(TestCase another) {
+        return getName().compareTo(another.getName());
+    }
 }
diff --git a/tools/cts-xml-generator/src/com/android/cts/xmlgenerator/TestSuite.java b/tools/cts-xml-generator/src/com/android/cts/xmlgenerator/TestSuite.java
index 3c29603..466f8d7 100644
--- a/tools/cts-xml-generator/src/com/android/cts/xmlgenerator/TestSuite.java
+++ b/tools/cts-xml-generator/src/com/android/cts/xmlgenerator/TestSuite.java
@@ -22,7 +22,7 @@
 import java.util.List;
 import java.util.Map;
 
-class TestSuite {
+class TestSuite implements Comparable<TestSuite> {
 
     private final String mName;
 
@@ -61,4 +61,9 @@
     public Collection<TestCase> getCases() {
         return Collections.unmodifiableCollection(mCases);
     }
+
+    @Override
+    public int compareTo(TestSuite another) {
+        return getName().compareTo(another.getName());
+    }
 }
diff --git a/tools/cts-xml-generator/src/com/android/cts/xmlgenerator/XmlGenerator.java b/tools/cts-xml-generator/src/com/android/cts/xmlgenerator/XmlGenerator.java
index 8a49cf3..7b1996d 100644
--- a/tools/cts-xml-generator/src/com/android/cts/xmlgenerator/XmlGenerator.java
+++ b/tools/cts-xml-generator/src/com/android/cts/xmlgenerator/XmlGenerator.java
@@ -24,7 +24,10 @@
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.PrintWriter;
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 
 /**
  * Generator of TestPackage XML files for native tests.
@@ -141,7 +144,8 @@
 
     private void writeTestSuites(PrintWriter writer, Collection<TestSuite> suites,
             StringBuilder nameCollector) {
-        for (TestSuite suite : suites) {
+        Collection<TestSuite> sorted = sortCollection(suites);
+        for (TestSuite suite : sorted) {
             writer.append("<TestSuite name=\"").append(suite.getName()).println("\">");
 
             String namePart = suite.getName();
@@ -161,7 +165,8 @@
 
     private void writeTestCases(PrintWriter writer, Collection<TestCase> cases,
             StringBuilder nameCollector) {
-        for (TestCase testCase : cases) {
+        Collection<TestCase> sorted = sortCollection(cases);
+        for (TestCase testCase : sorted) {
             String name = testCase.getName();
             writer.append("<TestCase name=\"").append(name).println("\">");
             nameCollector.append('.').append(name);
@@ -176,7 +181,8 @@
 
     private void writeTests(PrintWriter writer, Collection<Test> tests,
             StringBuilder nameCollector) {
-        for (Test test : tests) {
+        Collection<Test> sorted = sortCollection(tests);
+        for (Test test : sorted) {
             nameCollector.append('#').append(test.getName());
             writer.append("<Test name=\"").append(test.getName()).append("\"");
             if (isKnownFailure(mExpectations, nameCollector.toString())) {
@@ -192,6 +198,12 @@
         }
     }
 
+    private <E extends Comparable<E>> Collection<E> sortCollection(Collection<E> col) {
+        List<E> list = new ArrayList<E>(col);
+        Collections.sort(list);
+        return list;
+    }
+
     public static boolean isKnownFailure(ExpectationStore expectationStore, String testName) {
         return expectationStore != null && expectationStore.get(testName) != Expectation.SUCCESS;
     }
diff --git a/tools/device-setup/TestDeviceSetup/Android.mk b/tools/device-setup/TestDeviceSetup/Android.mk
index 5642736..efa50bf 100644
--- a/tools/device-setup/TestDeviceSetup/Android.mk
+++ b/tools/device-setup/TestDeviceSetup/Android.mk
@@ -26,7 +26,7 @@
 
 LOCAL_JAVA_LIBRARIES := android.test.runner
 
-LOCAL_SDK_VERSION := current
+LOCAL_SDK_VERSION := 17
 
 LOCAL_PACKAGE_NAME := TestDeviceSetup
 
diff --git a/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoInstrument.java b/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoInstrument.java
index 565ac7f..49e96a0 100644
--- a/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoInstrument.java
+++ b/tools/device-setup/TestDeviceSetup/src/android/tests/getinfo/DeviceInfoInstrument.java
@@ -77,7 +77,7 @@
         WindowManager wm = (WindowManager) getContext().getSystemService(
                 Context.WINDOW_SERVICE);
         Display d = wm.getDefaultDisplay();
-        d.getMetrics(metrics);
+        d.getRealMetrics(metrics);
         addResult(RESOLUTION, String.format("%sx%s", metrics.widthPixels, metrics.heightPixels));
         addResult(SCREEN_DENSITY, metrics.density);
         addResult(SCREEN_X_DENSITY, metrics.xdpi);
diff --git a/tools/tradefed-host/.classpath b/tools/tradefed-host/.classpath
index 09dd0ce..0b1866d 100644
--- a/tools/tradefed-host/.classpath
+++ b/tools/tradefed-host/.classpath
@@ -5,8 +5,7 @@
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry exported="true" kind="var" path="CTS_SRC_ROOT/out/host/common/obj/JAVA_LIBRARIES/ctsdeviceinfolib_intermediates/javalib.jar"/>
 	<classpathentry exported="true" kind="var" path="CTS_SRC_ROOT/out/host/common/obj/JAVA_LIBRARIES/hosttestlib_intermediates/javalib.jar"/>
-	<classpathentry kind="var" path="CTS_SRC_ROOT/prebuilt/common/ddmlib/ddmlib-prebuilt.jar" sourcepath="/SDK_SRC_ROOT"/>
-	<classpathentry kind="var" path="CTS_SRC_ROOT/prebuilt/common/tradefed/tradefed-prebuilt.jar" sourcepath="/TRADEFED_ROOT/tools/tradefederation/src"/>
-	<classpathentry kind="var" path="CTS_SRC_ROOT/out/host/common/obj/JAVA_LIBRARIES/junit_intermediates/javalib.jar"/>
+	<classpathentry kind="var" path="CTS_SRC_ROOT/out/host/common/obj/JAVA_LIBRARIES/ddmlib-prebuilt_intermediates/ddmlib-prebuilt.jar" sourcepath="/SDK_SRC_ROOT"/>
+	<classpathentry kind="var" path="CTS_SRC_ROOT/out/host/common/obj/JAVA_LIBRARIES/tradefed-prebuilt_intermediates/tradefed-prebuilt.jar" sourcepath="/TRADEFED_ROOT/tools/tradefederation/src"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/tools/tradefed-host/Android.mk b/tools/tradefed-host/Android.mk
index 7af7993..8281b20 100644
--- a/tools/tradefed-host/Android.mk
+++ b/tools/tradefed-host/Android.mk
@@ -16,8 +16,9 @@
 
 include $(CLEAR_VARS)
 
-# Only compile source java files in this lib.
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
+LOCAL_SRC_FILES := \
+	$(call all-java-files-under, src)
+
 LOCAL_JAVA_RESOURCE_DIRS := res
 
 LOCAL_MODULE := cts-tradefed
diff --git a/tools/tradefed-host/res/report/cts_result.xsd b/tools/tradefed-host/res/report/cts_result.xsd
index 5e471d5..3f7f384 100644
--- a/tools/tradefed-host/res/report/cts_result.xsd
+++ b/tools/tradefed-host/res/report/cts_result.xsd
@@ -16,8 +16,8 @@
  -->
 
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-           targetNamespace="http://compatibility.android.com/cts_result/1.13"
-           xmlns="http://compatibility.android.com/cts_result/1.13"
+           targetNamespace="http://compatibility.android.com/cts_result/1.15"
+           xmlns="http://compatibility.android.com/cts_result/1.15"
            elementFormDefault="qualified">
 
 <xs:element name="TestResult">
@@ -32,6 +32,7 @@
     <xs:attribute name="endtime" type="xs:string"/>
     <xs:attribute name="testPlan" type="xs:string"/>
     <xs:attribute name="version" type="xs:string"/>
+    <xs:attribute name="suite" type="xs:string"/>
   </xs:complexType>
 </xs:element>
 
@@ -195,6 +196,29 @@
   <xs:attribute name="priority" type="xs:string"/>
 </xs:complexType>
 
+<xs:simpleType name="unitType">
+  <xs:restriction base="xs:string">
+    <xs:enumeration value="none"/>
+    <xs:enumeration value="ms"/>
+    <xs:enumeration value="fps"/>
+    <xs:enumeration value="ops"/>
+    <xs:enumeration value="kbps"/>
+    <xs:enumeration value="mbps"/>
+    <xs:enumeration value="byte"/>
+    <xs:enumeration value="count"/>
+    <xs:enumeration value="score"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="scoreTypeType">
+  <xs:restriction base="xs:string">
+    <xs:enumeration value="higherBetter"/>
+    <xs:enumeration value="lowerBetter"/>
+    <xs:enumeration value="neutral"/>
+    <xs:enumeration value="warning"/>
+  </xs:restriction>
+</xs:simpleType>
+
 <xs:complexType name="testType">
   <xs:sequence>
     <xs:element name="FailedScene" minOccurs="0" maxOccurs="1">
@@ -205,6 +229,35 @@
         <xs:attribute name="message" type="xs:string"/>
       </xs:complexType>
     </xs:element>
+    <xs:element name="Summary" minOccurs="0" maxOccurs="1">
+      <xs:complexType>
+        <xs:simpleContent>
+          <xs:extension base="xs:decimal">
+            <xs:attribute name="message" type="xs:string" use="required" />
+            <xs:attribute name="scoreType" type="scoreTypeType" use="required" />
+            <xs:attribute name="unit" type="unitType" use="required" />
+            <xs:attribute name="target" type="xs:decimal" />
+          </xs:extension>
+        </xs:simpleContent>
+      </xs:complexType>
+    </xs:element>
+    <xs:element name="Details" minOccurs="0" maxOccurs="1">
+      <xs:complexType>
+        <xs:sequence>
+          <xs:element name="ValueArray" minOccurs="0" maxOccurs="unbounded">
+            <xs:complexType>
+              <xs:sequence>
+                <xs:element name="Value" type="xs:decimal" minOccurs="0" maxOccurs="unbounded" />
+              </xs:sequence>
+              <xs:attribute name="source" type="xs:string" use="required" />
+              <xs:attribute name="message" type="xs:string" use="required" />
+              <xs:attribute name="scoreType" type="scoreTypeType" use="required" />
+              <xs:attribute name="unit" type="unitType" use="required" />
+            </xs:complexType>
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+    </xs:element>
   </xs:sequence>
   <xs:attribute name="name" type="xs:string" use="required"/>
   <xs:attribute name="result" type="resultType" use="required"/>
diff --git a/tools/tradefed-host/res/report/cts_result.xsl b/tools/tradefed-host/res/report/cts_result.xsl
index b924d2f..0c38be1 100644
--- a/tools/tradefed-host/res/report/cts_result.xsl
+++ b/tools/tradefed-host/res/report/cts_result.xsl
@@ -526,11 +526,6 @@
                                                             <xsl:value-of select="@result"/>
                                                         </div>
                                                     </TD>
-                                                    <TD class="failuredetails">
-                                                        <div class="details">
-                                                            <xsl:value-of select="FailedScene/@message"/>
-                                                        </div>
-                                                    </TD>
                                                     <TD class="failuredetails"></TD>
                                                 </xsl:if>
 
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/build/CtsBuildHelper.java b/tools/tradefed-host/src/com/android/cts/tradefed/build/CtsBuildHelper.java
index 95ec69f..61b4b43 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/build/CtsBuildHelper.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/build/CtsBuildHelper.java
@@ -30,18 +30,12 @@
 public class CtsBuildHelper {
 
     static final String CTS_DIR_NAME = "android-cts";
-    static final String PTS_DIR_NAME = "android-pts";
-    static private boolean mCtsMode = true;
-    private final String mSuiteName;
+    private final String mSuiteName = "CTS";
     /** The root location of the extracted CTS package */
     private final File mRootDir;
     /** the {@link CTS_DIR_NAME} directory */
     private final File mCtsDir;
 
-    public static void changeToPtsMode() {
-        mCtsMode = false;
-    }
-
     /**
      * Creates a {@link CtsBuildHelper}.
      *
@@ -50,8 +44,7 @@
      */
     public CtsBuildHelper(File rootDir) {
         mRootDir = rootDir;
-        mSuiteName = mCtsMode? "CTS" : "PTS";
-        mCtsDir = new File(mRootDir, mCtsMode ? CTS_DIR_NAME : PTS_DIR_NAME);
+        mCtsDir = new File(mRootDir, CTS_DIR_NAME);
     }
 
     /**
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/build/CtsBuildProvider.java b/tools/tradefed-host/src/com/android/cts/tradefed/build/CtsBuildProvider.java
index d9baf81..afb0700 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/build/CtsBuildProvider.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/build/CtsBuildProvider.java
@@ -31,7 +31,7 @@
     @Option(name="cts-install-path", description="the path to the cts installation to use")
     private String mCtsRootDirPath = System.getProperty("CTS_ROOT");
 
-    public static final String CTS_BUILD_VERSION = "4.2_r5";
+    public static final String CTS_BUILD_VERSION = "4.3_r2";
 
     /**
      * {@inheritDoc}
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/command/CtsConsole.java b/tools/tradefed-host/src/com/android/cts/tradefed/command/CtsConsole.java
index f014135..40145dd 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/command/CtsConsole.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/command/CtsConsole.java
@@ -245,12 +245,7 @@
         return mCtsBuild;
     }
 
-    public static void main(String[] args) throws InterruptedException {
-        // change to PTS mode before anything else
-        String ptsMode = System.getProperty("PTS");
-        if ((ptsMode != null) && ptsMode.equals("1")) {
-            CtsBuildHelper.changeToPtsMode();
-        }
+    public static void main(String[] args) throws InterruptedException, ConfigurationException {
         Console console = new CtsConsole();
         Console.startConsole(console, args);
     }
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/result/CtsXmlResultReporter.java b/tools/tradefed-host/src/com/android/cts/tradefed/result/CtsXmlResultReporter.java
index a2a31e0..71c093b 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/result/CtsXmlResultReporter.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/result/CtsXmlResultReporter.java
@@ -58,7 +58,7 @@
     private static final String LOG_TAG = "CtsXmlResultReporter";
 
     static final String TEST_RESULT_FILE_NAME = "testResult.xml";
-    private static final String CTS_RESULT_FILE_VERSION = "1.13";
+    private static final String CTS_RESULT_FILE_VERSION = "1.14";
     private static final String[] CTS_RESULT_RESOURCES = {"cts_result.xsl", "cts_result.css",
         "logo.gif", "newrule-green.png"};
 
@@ -97,10 +97,10 @@
     private boolean mIsDeviceInfoRun = false;
     private ResultReporter mReporter;
     private File mLogDir;
+    private String mSuiteName;
 
-    private static final String PTS_PERFORMANCE_EXCEPTION = "com.android.pts.util.PtsException";
-    private static final Pattern mPtsLogPattern = Pattern.compile(
-            "com\\.android\\.pts\\.util\\.PtsException:\\s(.*)\\+\\+\\+\\+(.*)");
+    private static final Pattern mPtsLogPattern = Pattern.compile("(.*)\\+\\+\\+\\+(.*)");
+
     public void setReportDir(File reportDir) {
         mReportDir = reportDir;
     }
@@ -134,15 +134,13 @@
             if (mReportDir == null) {
                 mReportDir = ctsBuildHelper.getResultsDir();
             }
-            // create a unique directory for saving results, using old cts host convention
-            // TODO: in future, consider using LogFileSaver to create build-specific directories
-            mReportDir = new File(mReportDir, TimeUtil.getResultTimestamp());
-            mReportDir.mkdirs();
+            mReportDir = createUniqueReportDir(mReportDir);
+
             mStartTime = getTimestamp();
             logResult("Created result dir %s", mReportDir.getName());
         }
-
-        mReporter = new ResultReporter(mResultServer, ctsBuildHelper.getSuiteName());
+        mSuiteName = ctsBuildHelper.getSuiteName();
+        mReporter = new ResultReporter(mResultServer, mSuiteName);
 
         // TODO: allow customization of log dir
         // create a unique directory for saving logs, with same name as result dir
@@ -152,6 +150,39 @@
     }
 
     /**
+     * Create a unique directory for saving results.
+     * <p/>
+     * Currently using legacy CTS host convention of timestamp directory names. In case of
+     * collisions, will use {@link FileUtil} to generate unique file name.
+     * <p/>
+     * TODO: in future, consider using LogFileSaver to create build-specific directories
+     *
+     * @param parentDir the parent folder to create dir in
+     * @return the created directory
+     */
+    private static synchronized File createUniqueReportDir(File parentDir) {
+        // TODO: in future, consider using LogFileSaver to create build-specific directories
+
+        File reportDir = new File(parentDir, TimeUtil.getResultTimestamp());
+        if (reportDir.exists()) {
+            // directory with this timestamp exists already! Choose a unique, although uglier, name
+            try {
+                reportDir = FileUtil.createTempDir(TimeUtil.getResultTimestamp() + "_", parentDir);
+            } catch (IOException e) {
+                CLog.e(e);
+                CLog.e("Failed to create result directory %s", reportDir.getAbsolutePath());
+            }
+        } else {
+            if (!reportDir.mkdirs()) {
+                // TODO: consider throwing an exception
+                CLog.e("mkdirs failed when attempting to create result directory %s",
+                        reportDir.getAbsolutePath());
+            }
+        }
+        return reportDir;
+    }
+
+    /**
      * Helper method to retrieve the {@link CtsBuildHelper}.
      * @param ctsBuild
      */
@@ -225,21 +256,7 @@
      */
     @Override
     public void testFailed(TestFailure status, TestIdentifier test, String trace) {
-        if (trace.startsWith(PTS_PERFORMANCE_EXCEPTION)) { //PTS result
-            Test tst = mCurrentPkgResult.findTest(test);
-            // this exception is always thrown as exception is thrown from tearDown.
-            // Just ignore it.
-            if (tst.getName().endsWith("testAndroidTestCaseSetupProperly")) {
-                return;
-            }
-            Matcher m = mPtsLogPattern.matcher(trace);
-            if (m.find()) {
-                mCurrentPkgResult.reportPerformanceResult(test, CtsTestStatus.PASS, m.group(1),
-                        m.group(2));
-            }
-        } else {
-            mCurrentPkgResult.reportTestFailure(test, CtsTestStatus.FAIL, trace);
-        }
+        mCurrentPkgResult.reportTestFailure(test, CtsTestStatus.FAIL, trace);
     }
 
     /**
@@ -247,6 +264,7 @@
      */
     @Override
     public void testEnded(TestIdentifier test, Map<String, String> testMetrics) {
+        collectPtsResults(test, testMetrics);
         mCurrentPkgResult.reportTestEnded(test);
         Test result = mCurrentPkgResult.findTest(test);
         String stack = result.getStackTrace() == null ? "" : "\n" + result.getStackTrace();
@@ -255,6 +273,31 @@
     }
 
     /**
+     * Collect Pts results for both device and host tests to the package result.
+     * @param test test ran
+     * @param testMetrics test metrics which can contain performance result for device tests
+     */
+    private void collectPtsResults(TestIdentifier test, Map<String, String> testMetrics) {
+        // device test can have performance results in testMetrics
+        String perfResult = PtsReportUtil.getPtsResultFromMetrics(testMetrics);
+        // host test should be checked in PtsHostStore.
+        if (perfResult == null) {
+            perfResult = PtsHostStore.removePtsResult(mDeviceSerial, test);
+        }
+        if (perfResult != null) {
+            // PTS result is passed in Summary++++Details format.
+            // Extract Summary and Details, and pass them.
+            Matcher m = mPtsLogPattern.matcher(perfResult);
+            if (m.find()) {
+                mCurrentPkgResult.reportPerformanceResult(test, CtsTestStatus.PASS, m.group(1),
+                        m.group(2));
+            } else {
+                logResult("PTS Result unrecognizable:" + perfResult);
+            }
+        }
+    }
+
+    /**
      * {@inheritDoc}
      */
     @Override
@@ -358,6 +401,7 @@
         serializer.attribute(ns, STARTTIME_ATTR, startTime);
         serializer.attribute(ns, "endtime", endTime);
         serializer.attribute(ns, "version", CTS_RESULT_FILE_VERSION);
+        serializer.attribute(ns, "suite", mSuiteName);
 
         mResults.serialize(serializer);
         // TODO: not sure why, but the serializer doesn't like this statement
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/result/PtsHostStore.java b/tools/tradefed-host/src/com/android/cts/tradefed/result/PtsHostStore.java
new file mode 100644
index 0000000..5944c66
--- /dev/null
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/result/PtsHostStore.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+package com.android.cts.tradefed.result;
+
+import com.android.ddmlib.testrunner.TestIdentifier;
+import com.android.tradefed.device.ITestDevice;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * Utility class for storing Pts Results.
+ * This is necessary for host tests where test metrics cannot be passed.
+ */
+public class PtsHostStore {
+
+    // needs concurrent verion as there can be multiple client accessing this.
+    // But there is no additional protection for the same key as that should not happen.
+    private static final ConcurrentHashMap<String, String> mMap =
+            new ConcurrentHashMap<String, String>();
+
+    /**
+     * Stores PTS result. Existing result with the same key will be replaced.
+     * Note that key is generated in the form of device_serial#class#method name.
+     * So there should be no concurrent test for the same (serial, class, method).
+     * @param device
+     * @param test
+     * @param result PTS result string
+     */
+    public static void storePtsResult(String deviceSerial, String classMethodName, String result) {
+        mMap.put(generateTestKey(deviceSerial, classMethodName), result);
+    }
+
+    /**
+     * retrieves a PTS result for the given condition and remove it from the internal
+     * storage. If there is no result for the given condition, it will return null.
+     */
+    public static String removePtsResult(String deviceSerial, TestIdentifier test) {
+        return mMap.remove(generateTestKey(deviceSerial, test));
+    }
+
+    /**
+     * return test key in the form of device_serial#class_name#method_name
+     */
+    private static String generateTestKey(String deviceSerial, TestIdentifier test) {
+        return String.format("%s#%s", deviceSerial, test.toString());
+
+    }
+
+    /**
+     * return test key in the form of device_serial#class_name#method_name
+     */
+    private static String generateTestKey(String deviceSerial, String classMethodName) {
+        return String.format("%s#%s", deviceSerial, classMethodName);
+
+    }
+}
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/result/PtsReportUtil.java b/tools/tradefed-host/src/com/android/cts/tradefed/result/PtsReportUtil.java
new file mode 100644
index 0000000..2e3dab1
--- /dev/null
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/result/PtsReportUtil.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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.
+ */
+package com.android.cts.tradefed.result;
+
+import com.android.ddmlib.testrunner.TestIdentifier;
+import com.android.tradefed.device.ITestDevice;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * Static utility class for handling Pts Results.
+ */
+public class PtsReportUtil {
+    private static final String PTS_RESULT_KEY = "PTS_RESULT";
+
+    /**
+     * Utility method to extract PTS result from test metrics
+     * @param testMetrics
+     * @return result or null if not found
+     */
+    public static String getPtsResultFromMetrics(Map<String, String> testMetrics) {
+        for (Map.Entry<String, String> entry: testMetrics.entrySet()) {
+            if (PTS_RESULT_KEY.equals(entry.getKey())) {
+                return entry.getValue();
+            }
+        }
+        return null;
+    }
+}
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/result/Test.java b/tools/tradefed-host/src/com/android/cts/tradefed/result/Test.java
index dd4f31f..72e2e27 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/result/Test.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/result/Test.java
@@ -15,6 +15,7 @@
  */
 package com.android.cts.tradefed.result;
 
+import com.android.ddmlib.Log;
 import com.android.tradefed.result.TestResult;
 
 import org.kxml2.io.KXmlSerializer;
@@ -27,7 +28,6 @@
  * Data structure that represents a "Test" result XML element.
  */
 class Test extends AbstractXmlPullParser {
-
     static final String TAG = "Test";
     private static final String NAME_ATTR = "name";
     private static final String MESSAGE_ATTR = "message";
@@ -36,7 +36,17 @@
     private static final String RESULT_ATTR = "result";
     private static final String SCENE_TAG = "FailedScene";
     private static final String STACK_TAG = "StackTrace";
+    private static final String SUMMARY_TAG = "Summary";
     private static final String DETAILS_TAG = "Details";
+    private static final String VALUEARRAY_TAG = "ValueArray";
+    private static final String VALUE_TAG = "Value";
+    private static final String TARGET_ATTR = "target";
+    private static final String SCORETYPE_ATTR = "scoreType";
+    private static final String UNIT_ATTR = "unit";
+    private static final String SOURCE_ATTR = "source";
+    // separators for the message from PTS
+    private static final String LOG_SEPARATOR = "\\+\\+\\+";
+    private static final String LOG_ELEM_SEPARATOR = "\\|";
 
     private String mName;
     private CtsTestStatus mResult;
@@ -44,7 +54,8 @@
     private String mEndTime;
     private String mMessage;
     private String mStackTrace;
-    // details passed from pts
+    // summary and details passed from pts
+    private String mSummary;
     private String mDetails;
 
     /**
@@ -109,6 +120,14 @@
         mMessage = getFailureMessageFromStackTrace(mStackTrace);
     }
 
+    public String getSummary() {
+        return mSummary;
+    }
+
+    public void setSummary(String summary) {
+        mSummary = summary;
+    }
+
     public String getDetails() {
         return mDetails;
     }
@@ -147,17 +166,115 @@
                 serializer.text(mStackTrace);
                 serializer.endTag(CtsXmlResultReporter.ns, STACK_TAG);
             }
-            if (mDetails != null) {
-                serializer.startTag(CtsXmlResultReporter.ns, DETAILS_TAG);
-                serializer.text(mDetails);
-                serializer.endTag(CtsXmlResultReporter.ns, DETAILS_TAG);
-            }
             serializer.endTag(CtsXmlResultReporter.ns, SCENE_TAG);
         }
+        if (mSummary != null) {
+            // <Summary message = "screen copies per sec" scoretype="higherBetter" unit="fps">
+            // 23938.82978723404</Summary>
+            PerfResultSummary summary = parseSummary(mSummary);
+            if (summary != null) {
+                serializer.startTag(CtsXmlResultReporter.ns, SUMMARY_TAG);
+                serializer.attribute(CtsXmlResultReporter.ns, MESSAGE_ATTR, summary.mMessage);
+                if (summary.mTarget.length() != 0 && !summary.mTarget.equals(" ")) {
+                    serializer.attribute(CtsXmlResultReporter.ns, TARGET_ATTR, summary.mTarget);
+                }
+                serializer.attribute(CtsXmlResultReporter.ns, SCORETYPE_ATTR, summary.mType);
+                serializer.attribute(CtsXmlResultReporter.ns, UNIT_ATTR, summary.mUnit);
+                serializer.text(summary.mValue);
+                serializer.endTag(CtsXmlResultReporter.ns, SUMMARY_TAG);
+                // add details only if summary is present
+                // <Details>
+                //   <ValueArray source=”com.android.pts.dram.BandwidthTest#doRunMemcpy:98”
+                //                    message=”measure1” unit="ms" scoretype="higherBetter">
+                //     <Value>0.0</Value>
+                //     <Value>0.1</Value>
+                //   </ValueArray>
+                // </Details>
+                if (mDetails != null) {
+                    PerfResultDetail[] ds = parseDetails(mDetails);
+                    serializer.startTag(CtsXmlResultReporter.ns, DETAILS_TAG);
+                        for (PerfResultDetail d : ds) {
+                            if (d == null) {
+                                continue;
+                            }
+                            serializer.startTag(CtsXmlResultReporter.ns, VALUEARRAY_TAG);
+                            serializer.attribute(CtsXmlResultReporter.ns, SOURCE_ATTR, d.mSource);
+                            serializer.attribute(CtsXmlResultReporter.ns, MESSAGE_ATTR,
+                                    d.mMessage);
+                            serializer.attribute(CtsXmlResultReporter.ns, SCORETYPE_ATTR, d.mType);
+                            serializer.attribute(CtsXmlResultReporter.ns, UNIT_ATTR, d.mUnit);
+                            for (String v : d.mValues) {
+                                if (v == null) {
+                                    continue;
+                                }
+                                serializer.startTag(CtsXmlResultReporter.ns, VALUE_TAG);
+                                serializer.text(v);
+                                serializer.endTag(CtsXmlResultReporter.ns, VALUE_TAG);
+                            }
+                            serializer.endTag(CtsXmlResultReporter.ns, VALUEARRAY_TAG);
+                        }
+                    serializer.endTag(CtsXmlResultReporter.ns, DETAILS_TAG);
+                }
+            }
+        }
         serializer.endTag(CtsXmlResultReporter.ns, TAG);
     }
 
     /**
+     *  class containing performance result.
+     */
+    public static class PerfResultCommon {
+        public String mMessage;
+        public String mType;
+        public String mUnit;
+    }
+
+    private class PerfResultSummary extends PerfResultCommon {
+        public String mTarget;
+        public String mValue;
+    }
+
+    private class PerfResultDetail extends PerfResultCommon {
+        public String mSource;
+        public String[] mValues;
+    }
+
+    private PerfResultSummary parseSummary(String summary) {
+        String[] elems = summary.split(LOG_ELEM_SEPARATOR);
+        PerfResultSummary r = new PerfResultSummary();
+        if (elems.length < 5) {
+            Log.w(TAG, "wrong message " + summary);
+            return null;
+        }
+        r.mMessage = elems[0];
+        r.mTarget = elems[1];
+        r.mType = elems[2];
+        r.mUnit = elems[3];
+        r.mValue = elems[4];
+        return r;
+    }
+
+    private PerfResultDetail[] parseDetails(String details) {
+        String[] arrays = details.split(LOG_SEPARATOR);
+        PerfResultDetail[] rs = new PerfResultDetail[arrays.length];
+        for (int i = 0; i < arrays.length; i++) {
+            String[] elems = arrays[i].split(LOG_ELEM_SEPARATOR);
+            if (elems.length < 5) {
+                Log.w(TAG, "wrong message " + arrays[i]);
+                continue;
+            }
+            PerfResultDetail r = new PerfResultDetail();
+            r.mSource = elems[0];
+            r.mMessage = elems[1];
+            r.mType = elems[2];
+            r.mUnit = elems[3];
+            r.mValues = elems[4].split(" ");
+            rs[i] = r;
+        }
+        return rs;
+    }
+
+    /**
      * Strip out any invalid XML characters that might cause the report to be unviewable.
      * http://www.w3.org/TR/REC-xml/#dt-character
      */
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/result/TestPackageResult.java b/tools/tradefed-host/src/com/android/cts/tradefed/result/TestPackageResult.java
index ce1c2f3..015a7ae 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/result/TestPackageResult.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/result/TestPackageResult.java
@@ -283,7 +283,7 @@
     public void reportPerformanceResult(TestIdentifier test, CtsTestStatus status, String summary, String details) {
         Test result = findTest(test);
         result.setResultStatus(status);
-        result.setMessage(summary);
+        result.setSummary(summary);
         result.setDetails(details);
     }
 
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/targetprep/CtsRootDeviceSetup.java b/tools/tradefed-host/src/com/android/cts/tradefed/targetprep/CtsRootDeviceSetup.java
index 09129ca..0e768e2 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/targetprep/CtsRootDeviceSetup.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/targetprep/CtsRootDeviceSetup.java
@@ -66,7 +66,10 @@
             // perform CTS setup steps that only work if adb is root
             SettingsToggler.setSecureInt(device, "mock_location", 1);
             enableDeviceAdmin(device, buildHelper);
-
+            // This is chrome specific setting to disable the first screen.
+            // For other browser, it will not do anything.
+            device.executeShellCommand(
+                    "echo \"chrome --disable-fre\" > /data/local/chrome-command-line");
             // end root setup steps
         } catch (FileNotFoundException e) {
             throw new TargetSetupError("Invalid CTS installation", e);
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/targetprep/SettingsToggler.java b/tools/tradefed-host/src/com/android/cts/tradefed/targetprep/SettingsToggler.java
index 597d866..ff6c4f4 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/targetprep/SettingsToggler.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/targetprep/SettingsToggler.java
@@ -22,52 +22,98 @@
  * {@link SettingsToggler} sets settings by using the "adb shell content" command.
  */
 public class SettingsToggler {
+    private static final String GROUP_SECURE = "secure";
+    private static final String GROUP_GLOBAL = "global";
+
+    /** Sets a setting by deleting and then inserting the string value. */
+    public static void setString(ITestDevice device, String group, String name, String value)
+            throws DeviceNotAvailableException {
+        deleteSetting(device, group, name);
+        device.executeShellCommand(
+                "content insert"
+                + " --uri content://settings/" + group
+                + " --bind name:s:" + name
+                + " --bind value:s:" + value);
+    }
 
     /** Sets a secure setting by deleting and then inserting the string value. */
     public static void setSecureString(ITestDevice device, String name, String value)
             throws DeviceNotAvailableException {
-        deleteSecure(device, name);
+        setString(device, GROUP_SECURE, name, value);
+    }
+
+    /** Sets a global setting by deleting and then inserting the string value. */
+    public static void setGlobalString(ITestDevice device, String name, String value)
+            throws DeviceNotAvailableException {
+        setString(device, GROUP_GLOBAL, name, value);
+    }
+
+    /** Sets a setting by deleting and then inserting the int value. */
+    public static void setInt(ITestDevice device, String group, String name, int value)
+            throws DeviceNotAvailableException {
+        deleteSetting(device, group, name);
         device.executeShellCommand(
                 "content insert"
-                + " --uri content://settings/secure"
+                + " --uri content://settings/" + group
                 + " --bind name:s:" + name
-                + " --bind value:s:" + value);
+                + " --bind value:i:" + value);
     }
 
     /** Sets a secure setting by deleting and then inserting the int value. */
     public static void setSecureInt(ITestDevice device, String name, int value)
             throws DeviceNotAvailableException {
-        deleteSecure(device, name);
+        setInt(device, GROUP_SECURE, name, value);
+    }
+
+    /** Sets a global setting by deleting and then inserting the int value. */
+    public static void setGlobalInt(ITestDevice device, String name, int value)
+            throws DeviceNotAvailableException {
+        setInt(device, GROUP_GLOBAL, name, value);
+    }
+
+    public static void updateString(ITestDevice device, String group, String name, String value)
+            throws DeviceNotAvailableException {
         device.executeShellCommand(
-                "content insert"
-                + " --uri content://settings/secure"
-                + " --bind name:s:" + name
-                + " --bind value:i:" + value);
+                "content update"
+                + " --uri content://settings/" + group
+                + " --bind value:s:" + value
+                + " --where \"name='" + name + "'\"");
     }
 
     public static void updateSecureString(ITestDevice device, String name, String value)
             throws DeviceNotAvailableException {
+        updateString(device, GROUP_SECURE, name, value);
+    }
+
+    public static void updateGlobalString(ITestDevice device, String name, String value)
+            throws DeviceNotAvailableException {
+        updateString(device, GROUP_GLOBAL, name, value);
+    }
+
+    public static void updateInt(ITestDevice device, String group, String name, int value)
+            throws DeviceNotAvailableException {
         device.executeShellCommand(
                 "content update"
-                + " --uri content://settings/secure"
-                + " --bind value:s:" + value
-                + " --where \"name=\\'" + name + "\\'\"");
+                + " --uri content://settings/" + group
+                + " --bind value:i:" + value
+                + " --where \"name='" + name + "'\"");
     }
 
     public static void updateSecureInt(ITestDevice device, String name, int value)
             throws DeviceNotAvailableException {
-        device.executeShellCommand(
-                "content update"
-                + " --uri content://settings/secure"
-                + " --bind value:i:" + value
-                + " --where \"name=\\'" + name + "\\'\"");
+        updateInt(device, GROUP_SECURE, name, value);
     }
 
-    private static void deleteSecure(ITestDevice device, String name)
+    public static void updateGlobalInt(ITestDevice device, String name, int value)
+            throws DeviceNotAvailableException {
+        updateInt(device, GROUP_GLOBAL, name, value);
+    }
+
+    private static void deleteSetting(ITestDevice device, String group, String name)
             throws DeviceNotAvailableException {
         device.executeShellCommand(
                 "content delete"
-                + " --uri content://settings/secure"
-                + " --where \"name=\\'" + name + "\\'\"");
+                + " --uri content://settings/" + group
+                + " --where \"name='" + name + "'\"");
     }
 }
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/AccessibilityServiceTestRunner.java b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/AccessibilityServiceTestRunner.java
deleted file mode 100644
index 7490f18..0000000
--- a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/AccessibilityServiceTestRunner.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.cts.tradefed.testtype;
-
-import com.android.cts.tradefed.build.CtsBuildHelper;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.result.ITestInvocationListener;
-import com.android.tradefed.util.FileUtil;
-
-import junit.framework.TestCase;
-
-import java.io.File;
-
-/**
- * Running the accessibility tests requires modification of secure
- * settings. Secure settings cannot be changed from device CTS tests
- * since system signature permission is required. Such settings can
- * be modified by the shell user, so a host side test is used for
- * installing a package with a delegating accessibility service, enabling
- * this service, running these tests, disabling the service, and removing
- * the delegating accessibility service package.
- */
-public class AccessibilityServiceTestRunner extends InstrumentationApkTest {
-
-    private static final String DELEGATING_ACCESSIBLITY_SERVICE_PACKAGE_NAME =
-        "android.accessibilityservice.delegate";
-
-    private static final String DELEGATING_ACCESSIBLITY_SERVICE_NAME =
-        "android.accessibilityservice.delegate.DelegatingAccessibilityService";
-
-    private static final String DELEGATING_ACCESSIBLITY_SERVICE_APK =
-        "CtsDelegatingAccessibilityService.apk";
-
-    private CtsBuildHelper mCtsBuild;
-
-    @Override
-    public void setBuild(IBuildInfo build) {
-        super.setBuild(build);
-        mCtsBuild  = CtsBuildHelper.createBuildHelper(build);
-    }
-
-    @Override
-    public void run(ITestInvocationListener listener) throws DeviceNotAvailableException {
-        beforeTest();
-        super.run(listener);
-        afterTest();
-    }
-
-    private void beforeTest() throws DeviceNotAvailableException {
-        installApkAndAssert(DELEGATING_ACCESSIBLITY_SERVICE_APK);
-        enableAccessibilityAndDelegatingService();
-    }
-
-    private void afterTest() throws DeviceNotAvailableException {
-        AccessibilityTestRunner.disableAccessibilityAndServicesAndTouchExploration(getDevice());
-        uninstallAndAssert(DELEGATING_ACCESSIBLITY_SERVICE_PACKAGE_NAME);
-    }
-
-    private void installApkAndAssert(String apkName) throws DeviceNotAvailableException {
-        File file = FileUtil.getFileForPath(mCtsBuild.getTestCasesDir(), apkName);
-        String errorMessage = getDevice().installPackage(file, true);
-        TestCase.assertNull("Error installing: " + apkName, errorMessage);
-    }
-
-    private void uninstallAndAssert(String packageName) throws DeviceNotAvailableException {
-        String errorMessage = getDevice().uninstallPackage(packageName);
-        TestCase.assertNull("Error uninstalling: " + packageName, errorMessage);
-    }
-
-    private void enableAccessibilityAndDelegatingService() throws DeviceNotAvailableException {
-        String componentName = DELEGATING_ACCESSIBLITY_SERVICE_PACKAGE_NAME + "/"
-            + DELEGATING_ACCESSIBLITY_SERVICE_NAME;
-        AccessibilityTestRunner.enableAccessibilityAndServicesAndTouchExploration(getDevice(),
-                componentName);
-    }
-}
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/AccessibilityTestRunner.java b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/AccessibilityTestRunner.java
index ca4f9e1..2a4239a 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/AccessibilityTestRunner.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/AccessibilityTestRunner.java
@@ -68,11 +68,11 @@
 
     private void beforeTest() throws DeviceNotAvailableException {
         installApkAndAssert(SOME_ACCESSIBLITY_SERVICES_APK);
-        enableAccessibilityAndServicesAndTouchExploration();
+        enableAccessibilityAndServices();
     }
 
     private void afterTest() throws DeviceNotAvailableException {
-        disableAccessibilityAndServicesAndTouchExploration(getDevice());
+        disableAccessibilityAndServices(getDevice());
         uninstallAndAssert(SOME_ACCESSIBLITY_SERVICES_PACKAGE_NAME);
     }
 
@@ -87,26 +87,27 @@
         TestCase.assertNull("Error uninstalling: " + packageName, errorMessage);
     }
 
-    private void enableAccessibilityAndServicesAndTouchExploration()
-            throws DeviceNotAvailableException {
+    private void enableAccessibilityAndServices() throws DeviceNotAvailableException {
         String enabledServicesValue =
               SOME_ACCESSIBLITY_SERVICES_PACKAGE_NAME + "/" + SPEAKING_ACCESSIBLITY_SERVICE_NAME
             + ":"
             + SOME_ACCESSIBLITY_SERVICES_PACKAGE_NAME + "/" + VIBRATING_ACCESSIBLITY_SERVICE_NAME;
-        enableAccessibilityAndServicesAndTouchExploration(getDevice(), enabledServicesValue);
+        enableAccessibilityAndServices(getDevice(), enabledServicesValue);
     }
 
-    static void enableAccessibilityAndServicesAndTouchExploration(ITestDevice device, String value)
+    static void enableAccessibilityAndServices(ITestDevice device, String value)
             throws DeviceNotAvailableException {
         SettingsToggler.setSecureString(device, "enabled_accessibility_services", value);
+        SettingsToggler.setSecureString(device,
+                "touch_exploration_granted_accessibility_services", value);
         SettingsToggler.setSecureInt(device, "accessibility_enabled", 1);
-        SettingsToggler.setSecureInt(device, "touch_exploration_enabled", 1);
     }
 
-    static void disableAccessibilityAndServicesAndTouchExploration(ITestDevice device)
+    static void disableAccessibilityAndServices(ITestDevice device)
             throws DeviceNotAvailableException {
         SettingsToggler.updateSecureString(device, "enabled_accessibility_services", "");
+        SettingsToggler.updateSecureString(device,
+                "touch_exploration_granted_accessibility_services", "");
         SettingsToggler.updateSecureInt(device, "accessibility_enabled", 0);
-        SettingsToggler.updateSecureInt(device, "touch_exploration_enabled", 0);
     }
 }
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/CtsTest.java b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/CtsTest.java
index ef9c17c..48f4773 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/CtsTest.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/CtsTest.java
@@ -40,6 +40,7 @@
 import com.android.tradefed.testtype.IRemoteTest;
 import com.android.tradefed.testtype.IResumableTest;
 import com.android.tradefed.testtype.IShardableTest;
+import com.android.tradefed.util.RunUtil;
 import com.android.tradefed.util.xml.AbstractXmlParser.ParseException;
 
 import junit.framework.Test;
@@ -146,6 +147,20 @@
             "Interval between each reboot in min.")
     private int mRebootIntervalMin = 30;
 
+    @Option(name = "screenshot-on-failure", description =
+            "take a screenshot on every test failure.")
+    private boolean mScreenshotOnFailures = false;
+
+    @Option(name = "logcat-on-failure", description =
+            "take a logcat snapshot on every test failure. Unlike --bugreport, this can capture" +
+            "logs even if connection with device has been lost, as well as being much more " +
+            "performant.")
+    private boolean mLogcatOnFailures = false;
+
+    @Option(name = "logcat-on-failure-size", description =
+            "The max number of logcat data in bytes to capture when --logcat-on-failure is on. " +
+            "Should be an amount that can comfortably fit in memory.")
+    private int mMaxLogcatBytes = 500 * 1024; // 500K
 
     private long mPrevRebootTime; // last reboot time
 
@@ -197,12 +212,68 @@
         public void testFailed(TestFailure status, TestIdentifier test, String trace) {
             super.testFailed(status, test, trace);
             InputStreamSource bugSource = mDevice.getBugreport();
-            super.testLog(String.format("bug-%s", test.toString()), LogDataType.TEXT,
-                    bugSource);
+            super.testLog(String.format("bug-%s_%s", test.getClassName(), test.getTestName()),
+                    LogDataType.TEXT, bugSource);
             bugSource.cancel();
         }
     }
 
+    /**
+     * A {@link ResultForwarder} that will forward a logcat snapshot on each failed test.
+     */
+    private static class FailedTestLogcatGenerator extends ResultForwarder {
+        private ITestDevice mDevice;
+        private int mNumLogcatBytes;
+
+        public FailedTestLogcatGenerator(ITestInvocationListener listener, ITestDevice device,
+                int maxLogcatBytes) {
+            super(listener);
+            mDevice = device;
+            mNumLogcatBytes = maxLogcatBytes;
+        }
+
+        @Override
+        public void testFailed(TestFailure status, TestIdentifier test, String trace) {
+            super.testFailed(status, test, trace);
+            // sleep a small amount of time to ensure test failure stack trace makes it into logcat
+            // capture
+            RunUtil.getDefault().sleep(10);
+            InputStreamSource logSource = mDevice.getLogcat(mNumLogcatBytes);
+            super.testLog(String.format("logcat-%s_%s", test.getClassName(), test.getTestName()),
+                    LogDataType.TEXT, logSource);
+            logSource.cancel();
+        }
+    }
+
+    /**
+     * A {@link ResultForwarder} that will forward a screenshot on test failures.
+     */
+    private static class FailedTestScreenshotGenerator extends ResultForwarder {
+        private ITestDevice mDevice;
+
+        public FailedTestScreenshotGenerator(ITestInvocationListener listener,
+                ITestDevice device) {
+            super(listener);
+            mDevice = device;
+        }
+
+        @Override
+        public void testFailed(TestFailure status, TestIdentifier test, String trace) {
+            super.testFailed(status, test, trace);
+
+            try {
+                InputStreamSource screenSource = mDevice.getScreenshot();
+                super.testLog(String.format("screenshot-%s_%s", test.getClassName(),
+                        test.getTestName()), LogDataType.PNG, screenSource);
+                screenSource.cancel();
+            } catch (DeviceNotAvailableException e) {
+                // TODO: rethrow this somehow
+                CLog.e("Device %s became unavailable while capturing screenshot, %s",
+                        mDevice.getSerialNumber(), e.toString());
+            }
+        }
+    }
+
     /** list of remaining tests to execute */
     private List<TestPackage> mRemainingTestPkgs = null;
 
@@ -334,6 +405,16 @@
                     getDevice());
             listener = bugListener;
         }
+        if (mScreenshotOnFailures) {
+            FailedTestScreenshotGenerator screenListener = new FailedTestScreenshotGenerator(
+                    listener, getDevice());
+            listener = screenListener;
+        }
+        if (mLogcatOnFailures) {
+            FailedTestLogcatGenerator logcatListener = new FailedTestLogcatGenerator(
+                    listener, getDevice(), mMaxLogcatBytes);
+            listener = logcatListener;
+        }
 
         // collect and install the prerequisiteApks first, to save time when multiple test
         // packages are using the same prerequisite apk (I'm looking at you, CtsTestStubs!)
@@ -397,13 +478,17 @@
         // reboot it before running it.
         // Also reboot after package which is know to leave pop-up behind
         final List<String> rebootAfterList = Arrays.asList(
-                "CtsMediaTestCases");
+                "CtsMediaTestCases",
+                "CtsAccessibilityTestCases");
         final List<String> rebootBeforeList = Arrays.asList(
                 "CtsAnimationTestCases",
                 "CtsGraphicsTestCases",
                 "CtsViewTestCases",
                 "CtsWidgetTestCases" );
         long intervalInMSec = mRebootIntervalMin * 60 * 1000;
+        if (mDevice.getSerialNumber().startsWith("emulator-")) {
+            return;
+        }
         if (!mDisableReboot) {
             long currentTime = System.currentTimeMillis();
             if (((currentTime - mPrevRebootTime) > intervalInMSec) ||
@@ -420,7 +505,7 @@
     }
 
     private void rebootDevice() throws DeviceNotAvailableException {
-        final int TIMEOUT_MS = 4 * 60 * 1000;
+        final int TIMEOUT_MS = 10 * 60 * 1000;
         TestDeviceOptions options = mDevice.getOptions();
         // store default value and increase time-out for reboot
         int rebootTimeout = options.getRebootTimeout();
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/DisplayTestRunner.java b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/DisplayTestRunner.java
new file mode 100644
index 0000000..4c83aa9
--- /dev/null
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/DisplayTestRunner.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package com.android.cts.tradefed.testtype;
+
+import com.android.cts.tradefed.targetprep.SettingsToggler;
+import com.android.tradefed.device.DeviceNotAvailableException;
+import com.android.tradefed.result.ITestInvocationListener;
+
+/**
+ * Running the display tests requires modification of secure settings to create an overlay display.
+ * Secure settings cannot be changed from device CTS tests since system signature permission is
+ * required. Such settings can be modified by the shell user, so a host side test is used.
+ */
+public class DisplayTestRunner extends InstrumentationApkTest {
+    private static final String OVERLAY_DISPLAY_DEVICES_SETTING_NAME = "overlay_display_devices";
+
+    // Use a non-standard pattern, must match values in tests/tests/display/.../DisplayTest.java
+    private static final String OVERLAY_DISPLAY_DEVICES_SETTING_VALUE = "1281x721/214";
+
+    @Override
+    public void run(ITestInvocationListener listener) throws DeviceNotAvailableException {
+        // CLog.e("run: About to enable overlay display.");
+        SettingsToggler.setGlobalString(getDevice(), OVERLAY_DISPLAY_DEVICES_SETTING_NAME,
+                OVERLAY_DISPLAY_DEVICES_SETTING_VALUE);
+
+        super.run(listener);
+
+        // Tear down overlay display.
+        // CLog.e("run: About to disable overlay display.");
+        SettingsToggler.setGlobalString(getDevice(), OVERLAY_DISPLAY_DEVICES_SETTING_NAME,
+                "");
+    }
+}
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestPackageDef.java b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestPackageDef.java
index 78a72ba..59babec 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestPackageDef.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/TestPackageDef.java
@@ -44,11 +44,12 @@
 
     public static final String HOST_SIDE_ONLY_TEST = "hostSideOnly";
     public static final String NATIVE_TEST = "native";
+    public static final String WRAPPED_NATIVE_TEST = "wrappednative";
     public static final String VM_HOST_TEST = "vmHostTest";
     public static final String ACCESSIBILITY_TEST =
         "com.android.cts.tradefed.testtype.AccessibilityTestRunner";
-    public static final String ACCESSIBILITYSERVICE_TEST =
-        "com.android.cts.tradefed.testtype.AccessibilityServiceTestRunner";
+    public static final String DISPLAY_TEST =
+            "com.android.cts.tradefed.testtype.DisplayTestRunner";
     public static final String UIAUTOMATOR_TEST = "uiAutomator";
 
     private static final String SIGNATURE_TEST_METHOD = "testSignature";
@@ -221,11 +222,14 @@
             return vmHostTest;
         } else if (NATIVE_TEST.equals(mTestType)) {
             return new GeeTest(mUri, mName);
+        } else if (WRAPPED_NATIVE_TEST.equals(mTestType)) {
+            CLog.d("Creating new wrapped native test for %s", mName);
+            return new WrappedGTest(mAppNameSpace, mUri, mName, mRunner);
         } else if (ACCESSIBILITY_TEST.equals(mTestType)) {
             AccessibilityTestRunner test = new AccessibilityTestRunner();
             return setInstrumentationTest(test, testCaseDir);
-        } else if (ACCESSIBILITYSERVICE_TEST.equals(mTestType)) {
-            AccessibilityServiceTestRunner test = new AccessibilityServiceTestRunner();
+        } else if (DISPLAY_TEST.equals(mTestType)) {
+            DisplayTestRunner test = new DisplayTestRunner();
             return setInstrumentationTest(test, testCaseDir);
         } else if (UIAUTOMATOR_TEST.equals(mTestType)) {
             UiAutomatorJarTest uiautomatorTest = new UiAutomatorJarTest();
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/WrappedGTest.java b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/WrappedGTest.java
new file mode 100644
index 0000000..74c15f6
--- /dev/null
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/WrappedGTest.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright 2012 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package com.android.cts.tradefed.testtype;
+
+import com.android.cts.tradefed.build.CtsBuildHelper;
+import com.android.ddmlib.testrunner.ITestRunListener;
+import com.android.tradefed.build.IBuildInfo;
+import com.android.tradefed.device.DeviceNotAvailableException;
+import com.android.tradefed.device.ITestDevice;
+import com.android.tradefed.log.LogUtil.CLog;
+import com.android.tradefed.result.ITestInvocationListener;
+import com.android.tradefed.testtype.IBuildReceiver;
+import com.android.tradefed.testtype.IDeviceTest;
+import com.android.tradefed.testtype.IRemoteTest;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+
+/**
+ * Test runner for wrapped (native) GTests
+ */
+public class WrappedGTest implements IBuildReceiver, IDeviceTest, IRemoteTest {
+
+    private int mMaxTestTimeMs = 1 * 60 * 1000;
+
+    private CtsBuildHelper mCtsBuild;
+    private ITestDevice mDevice;
+
+    private final String mAppNameSpace;
+    private final String mRunner;
+    private final String mName;
+    private final String mUri;
+
+
+    public WrappedGTest(String appNameSpace, String uri, String name, String runner) {
+        mAppNameSpace = appNameSpace;
+        mRunner = runner;
+        mName = name;
+        mUri = uri;
+    }
+
+    @Override
+    public void setBuild(IBuildInfo buildInfo) {
+        mCtsBuild = CtsBuildHelper.createBuildHelper(buildInfo);
+    }
+
+    @Override
+    public void setDevice(ITestDevice device) {
+        mDevice = device;
+    }
+
+    @Override
+    public ITestDevice getDevice() {
+        return mDevice;
+    }
+
+    @Override
+    public void run(ITestInvocationListener listener) throws DeviceNotAvailableException {
+        if (installTest()) {
+            runTest(listener);
+            uninstallTest();
+        } else {
+            CLog.e("Failed to install test");
+        }
+    }
+
+    private boolean installTest() throws DeviceNotAvailableException {
+        try {
+            File testApp = mCtsBuild.getTestApp(String.format("%s.apk", mName));
+            String installCode = mDevice.installPackage(testApp, true);
+
+            if (installCode != null) {
+                CLog.e("Failed to install %s.apk on %s. Reason: %s", mName,
+                    mDevice.getSerialNumber(), installCode);
+                return false;
+            }
+        }
+        catch (FileNotFoundException e) {
+            CLog.e("Package %s.apk not found", mName);
+            return false;
+        }
+        return true;
+    }
+
+    private void runTest(ITestRunListener listener) throws DeviceNotAvailableException {
+        WrappedGTestResultParser resultParser = new WrappedGTestResultParser(mUri, listener);
+        resultParser.setFakePackagePrefix(mUri + ".");
+        try {
+            String command = String.format("am instrument -w %s/.%s", mAppNameSpace, mRunner);
+            mDevice.executeShellCommand(command, resultParser, mMaxTestTimeMs, 0);
+        } catch (DeviceNotAvailableException e) {
+            resultParser.flush();
+            throw e;
+        } catch (RuntimeException e) {
+            resultParser.flush();
+            throw e;
+        }
+    }
+
+    private void uninstallTest() throws DeviceNotAvailableException {
+        mDevice.uninstallPackage(mAppNameSpace);
+    }
+}
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/testtype/WrappedGTestResultParser.java b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/WrappedGTestResultParser.java
new file mode 100644
index 0000000..cc3c53a
--- /dev/null
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/testtype/WrappedGTestResultParser.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2012 The Android Open Source Project
+ *
+ * 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.
+ */
+package com.android.cts.tradefed.testtype;
+
+import com.android.ddmlib.testrunner.ITestRunListener;
+import com.android.tradefed.log.LogUtil.CLog;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.ArrayList;
+
+public class WrappedGTestResultParser extends GeeTestResultParser {
+
+    private boolean mInstrumentationError;
+
+    /**
+     * Creates the WrappedGTestResultParser.
+     *
+     * @param testRunName the test run name to provide to
+     *            {@link ITestRunListener#testRunStarted(String, int)}
+     * @param listeners informed of test results as the tests are executing
+     */
+    public WrappedGTestResultParser(String testRunName, Collection<ITestRunListener> listeners) {
+        super(testRunName, listeners);
+    }
+
+    /**
+     * Creates the WrappedGTestResultParser for a single listener.
+     *
+     * @param testRunName the test run name to provide to
+     *            {@link ITestRunListener#testRunStarted(String, int)}
+     * @param listener informed of test results as the tests are executing
+     */
+    public WrappedGTestResultParser(String testRunName, ITestRunListener listener) {
+        super(testRunName, listener);
+    }
+
+    /**
+     * Strips the instrumentation information and then forwards
+     * the raw gtest output to the {@link GeeTestResultParser}.
+     */
+    @Override
+    public void processNewLines(String[] lines) {
+        if (mInstrumentationError) {
+            return;
+        }
+
+        String[] gtestOutput = parseInstrumentation(lines);
+        super.processNewLines(gtestOutput);
+    }
+
+    /**
+     * Parses raw instrumentation output and returns the
+     * contained gtest output
+     *
+     * @param lines the raw instrumentation output
+     * @return the gtest output
+     */
+    public String[] parseInstrumentation(String[] lines) {
+        List<String> output = new ArrayList<String>();
+        boolean readMultiLine = false;
+        for (String line : lines) {
+
+            if (line.startsWith("INSTRUMENTATION_RESULT: ")) {
+                CLog.e("Instrumentation Error:");
+                mInstrumentationError = true;
+            }
+
+            if (mInstrumentationError) {
+                CLog.e(line);
+                continue;
+            }
+
+            if (line.startsWith("INSTRUMENTATION_STATUS: gtest=")) {
+                output.add(line.replace("INSTRUMENTATION_STATUS: gtest=", ""));
+                readMultiLine = true;
+                continue;
+            }
+
+            if (line.startsWith("INSTRUMENTATION_")) {
+                readMultiLine = false;
+                continue;
+            }
+
+            if (readMultiLine) {
+                output.add(line);
+            }
+        }
+
+        return output.toArray(new String[output.size()]);
+    }
+}
+
diff --git a/tools/tradefed-host/tests/src/com/android/cts/tradefed/UnitTests.java b/tools/tradefed-host/tests/src/com/android/cts/tradefed/UnitTests.java
index 7dfac13..3c36a3d 100644
--- a/tools/tradefed-host/tests/src/com/android/cts/tradefed/UnitTests.java
+++ b/tools/tradefed-host/tests/src/com/android/cts/tradefed/UnitTests.java
@@ -27,6 +27,7 @@
 import com.android.cts.tradefed.testtype.TestPackageDefTest;
 import com.android.cts.tradefed.testtype.TestPackageXmlParserTest;
 import com.android.cts.tradefed.testtype.TestPlanTest;
+import com.android.cts.tradefed.testtype.WrappedGTestResultParserTest;
 
 import junit.framework.Test;
 import junit.framework.TestSuite;
@@ -57,6 +58,7 @@
         addTestSuite(TestPackageDefTest.class);
         addTestSuite(TestPackageXmlParserTest.class);
         addTestSuite(TestPlanTest.class);
+        addTestSuite(WrappedGTestResultParserTest.class);
     }
 
     public static Test suite() {
diff --git a/tools/tradefed-host/tests/src/com/android/cts/tradefed/testtype/WrappedGTestResultParserTest.java b/tools/tradefed-host/tests/src/com/android/cts/tradefed/testtype/WrappedGTestResultParserTest.java
new file mode 100644
index 0000000..d386c7a
--- /dev/null
+++ b/tools/tradefed-host/tests/src/com/android/cts/tradefed/testtype/WrappedGTestResultParserTest.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2012 The Android Open Source Project
+ *
+ * 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.
+ */
+package com.android.cts.tradefed.testtype;
+
+import com.android.ddmlib.testrunner.ITestRunListener;
+
+import junit.framework.TestCase;
+
+
+
+/**
+ * Unit tests for {@link WrappedGTestResultParser}.
+ */
+public class WrappedGTestResultParserTest extends TestCase {
+
+    private WrappedGTestResultParser mParser;
+    private final String[] INPUT1 = new String[] {
+        "INSTRUMENTATION_STATUS: gtest=[==========] Running 9 tests from 2 test cases.",
+        "INSTRUMENTATION_STATUS_CODE: 1",
+        "INSTRUMENTATION_STATUS: gtest=[ RUN      ] GLTest.Test1",
+        "INSTRUMENTATION_STATUS: gtest=[       OK ] GLTest.Test1 (10 ms)",
+        "INSTRUMENTATION_STATUS: gtest=/tests/SomeTestFile.cpp:1337: Failure",
+        "Value of: 1 == 0",
+        "  Actual: false",
+        "Expected: true",
+        "INSTRUMENTATION_STATUS: gtest=[  FAILED  ] GLTest.Test2 (1016 ms)",
+        "INSTRUMENTATION_STATUS: gtest=[==========] 2 tests from 1 test cases ran. (17 ms total)",
+        "INSTRUMENTATION_CODE: -1"
+    };
+
+    private final String[] EXPECTED_OUTPUT1 = new String[] {
+        "[==========] Running 9 tests from 2 test cases.",
+        "[ RUN      ] GLTest.Test1",
+        "[       OK ] GLTest.Test1 (10 ms)",
+        "/tests/SomeTestFile.cpp:1337: Failure",
+        "Value of: 1 == 0",
+        "  Actual: false",
+        "Expected: true",
+        "[  FAILED  ] GLTest.Test2 (1016 ms)",
+        "[==========] 2 tests from 1 test cases ran. (17 ms total)",
+    };
+
+    private final String[] INPUT2 = new String[] {
+        "INSTRUMENTATION_STATUS_CODE: 1",
+        "invalid text",
+        "INSTRUMENTATION_STATUS: gtest=[==========] Running 9 tests from 2 test cases.",
+        "INSTRUMENTATION_RESULT: some error",
+        "INSTRUMENTATION_STATUS: gtest=[ RUN      ] GLTest.ExpectTestThatShouldBeSuccessful",
+    };
+
+    private final String[] EXPECTED_OUTPUT2 = new String[] {
+        "[==========] Running 9 tests from 2 test cases.",
+    };
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mParser = new WrappedGTestResultParser("unused", (ITestRunListener)null);
+    }
+
+    private void assertArrayEquals(String[] expected, String[] result) throws Exception {
+        if (expected == null) {
+            assertNull(result);
+            return;
+        }
+
+        assertEquals(expected.length, result.length);
+
+        for (int i = 0; i < expected.length; i++) {
+            assertEquals(expected[i], result[i]);
+        }
+    }
+
+    /**
+     * Test normal case {@link WrappedGTestResultParser#getRawGTestOutput(java.lang.String[])}
+     * with all kinds of valid input lines.
+     */
+    public void testGetRawGTestOutput_valid() throws Exception {
+        assertArrayEquals(EXPECTED_OUTPUT1, mParser.parseInstrumentation(INPUT1));
+    }
+
+    /**
+     * Test normal case {@link WrappedGTestResultParser#getRawGTestOutput(java.lang.String[])}
+     * with a instrumentation error/invalid input.
+     */
+    public void testGetRawGTestOutput_invalid() throws Exception {
+        assertArrayEquals(EXPECTED_OUTPUT2, mParser.parseInstrumentation(INPUT2));
+    }
+}
diff --git a/tools/utils/buildCts.py b/tools/utils/buildCts.py
index 8e23f13..e9069ec 100755
--- a/tools/utils/buildCts.py
+++ b/tools/utils/buildCts.py
@@ -19,6 +19,7 @@
 import glob
 import os
 import re
+import shutil
 import subprocess
 import sys
 import xml.dom.minidom as dom
@@ -54,27 +55,26 @@
 
   def __init__(self, argv):
     """Initialize the CtsBuilder from command line arguments."""
-    if not (len(argv) == 6 or len(argv)==7):
-      print 'Usage: %s <testRoot> <ctsOutputDir> <tempDir> <androidRootDir> <docletPath> [-pts]' % argv[0]
+    if len(argv) != 6:
+      print 'Usage: %s <testRoot> <ctsOutputDir> <tempDir> <androidRootDir> <docletPath>' % argv[0]
       print ''
       print 'testRoot:       Directory under which to search for CTS tests.'
       print 'ctsOutputDir:   Directory in which the CTS repository should be created.'
       print 'tempDir:        Directory to use for storing temporary files.'
       print 'androidRootDir: Root directory of the Android source tree.'
       print 'docletPath:     Class path where the DescriptionGenerator doclet can be found.'
-      print '-pts:           generate plan for PTS.'
       sys.exit(1)
     self.test_root = sys.argv[1]
     self.out_dir = sys.argv[2]
     self.temp_dir = sys.argv[3]
     self.android_root = sys.argv[4]
     self.doclet_path = sys.argv[5]
-    self.isCts = True
-    if len(argv) ==7 and sys.argv[6] == "-pts":
-      self.isCts = False
 
     self.test_repository = os.path.join(self.out_dir, 'repository/testcases')
     self.plan_repository = os.path.join(self.out_dir, 'repository/plans')
+    
+    #dirty hack to copy over prepopulated CTS test plans, stable vs flaky, for autoCTS
+    self.definedplans_repository = os.path.join(self.android_root, 'cts/tests/plans')
 
   def GenerateTestDescriptions(self):
     """Generate test descriptions for all packages."""
@@ -102,19 +102,24 @@
     for description in descriptions:
       doc = tools.XmlFile(description)
       packages.append(doc.GetAttr('TestPackage', 'appPackageName'))
-
-    if not self.isCts: # PTS
-      plan = tools.TestPlan(packages)
-      plan.Include('.*')
-      plan.Exclude(r'android\.tests\.sigtest')
-      self.__WritePlan(plan, 'PTS')
-      return
+    # sort the list to give the same sequence based on name
+    packages.sort()
 
     plan = tools.TestPlan(packages)
     plan.Exclude('android\.performance.*')
     self.__WritePlan(plan, 'CTS')
     self.__WritePlan(plan, 'CTS-TF')
 
+    plan = tools.TestPlan(packages)
+    plan.Exclude('android\.performance.*')
+    plan.Exclude('android\.media\.cts\.StreamingMediaPlayerTest.*')
+    # Test plan to not include media streaming tests
+    self.__WritePlan(plan, 'CTS-No-Media-Stream')
+
+    plan = tools.TestPlan(packages)
+    plan.Exclude('android\.performance.*')
+    self.__WritePlan(plan, 'SDK')
+
     plan.Exclude(r'android\.tests\.sigtest')
     plan.Exclude(r'android\.core.*')
     self.__WritePlan(plan, 'Android')
@@ -137,10 +142,12 @@
 
     # hard-coded white list for PDK plan
     plan.Exclude('.*')
+    plan.Include('android\.aadb')
     plan.Include('android\.bluetooth')
     plan.Include('android\.graphics.*')
     plan.Include('android\.hardware')
-    plan.Include('android\.media.*')
+    plan.Include('android\.media')
+    plan.Exclude('android\.mediastress')
     plan.Include('android\.net')
     plan.Include('android\.opengl.*')
     plan.Include('android\.renderscript')
@@ -148,6 +155,12 @@
     plan.Include('android\.nativemedia.*')
     self.__WritePlan(plan, 'PDK')
 
+    #dirty hack to copy over pre-populated CTS plans - flaky vs stable - to streamline autoCTS
+    shutil.copyfile(os.path.join(self.definedplans_repository, 'CTS-flaky.xml'),
+        os.path.join(self.plan_repository, 'CTS-flaky.xml'))
+    shutil.copyfile(os.path.join(self.definedplans_repository, 'CTS-stable.xml'),
+        os.path.join(self.plan_repository, 'CTS-stable.xml'))
+
 def LogGenerateDescription(name):
   print 'Generating test description for package %s' % name
 
@@ -165,9 +178,8 @@
 
 if __name__ == '__main__':
   builder = CtsBuilder(sys.argv)
-  if builder.isCts:
-    result = builder.GenerateTestDescriptions()
-    if result != 0:
-      sys.exit(result)
+  result = builder.GenerateTestDescriptions()
+  if result != 0:
+    sys.exit(result)
   builder.GenerateTestPlans()
 
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/invoke_interface/Test_invoke_interface.java b/tools/vm-tests-tf/src/dot/junit/opcodes/invoke_interface/Test_invoke_interface.java
index 377cc58..ae06cda 100644
--- a/tools/vm-tests-tf/src/dot/junit/opcodes/invoke_interface/Test_invoke_interface.java
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/invoke_interface/Test_invoke_interface.java
@@ -90,6 +90,29 @@
     }
 
     /**
+     * @title dvmInterpFindInterfaceMethod failures were putting NULL Method*s
+     * in the interface cache, leading to a null pointer deference the second
+     * time you made the same bad call, with no exception thrown.
+     * See http://code.google.com/p/android/issues/detail?id=29358 for details.
+     */
+    public void testE4_2() {
+        //@uses dot.junit.opcodes.invoke_interface.d.T_invoke_interface_11
+        //@uses dot.junit.opcodes.invoke_interface.ITest
+        //@uses dot.junit.opcodes.invoke_interface.ITestImpl
+        T_invoke_interface_11 t = new T_invoke_interface_11();
+        try {
+            t.run();
+            fail("expected IncompatibleClassChangeError");
+        } catch (IncompatibleClassChangeError expected) {
+        }
+        try {
+            t.run();
+            fail("expected IncompatibleClassChangeError");
+        } catch (IncompatibleClassChangeError expected) {
+        }
+    }
+
+    /**
      * @title Native method can't be linked
      */
     public void testE5() {
diff --git a/tools/vm-tests-tf/src/util/build/BuildDalvikSuite.java b/tools/vm-tests-tf/src/util/build/BuildDalvikSuite.java
index bd688fe..20429f0 100644
--- a/tools/vm-tests-tf/src/util/build/BuildDalvikSuite.java
+++ b/tools/vm-tests-tf/src/util/build/BuildDalvikSuite.java
@@ -576,14 +576,6 @@
         }
 
         // find the @title/@constraint in javadoc comment for this method
-        Scanner scanner2;
-        try {
-            // using platform's default charset
-            scanner2 = new Scanner(f);
-        } catch (FileNotFoundException e) {
-            throw new RuntimeException("error while reading to file: " + e.getClass().getName() +
-                    ", msg:" + e.getMessage());
-        }
         // using platform's default charset
         String all = new String(FileUtils.readFile(f));
         // System.out.println("grepping javadoc found for method " + method +
@@ -630,9 +622,6 @@
         if (scanner != null) {
             scanner.close();
         }
-        if (scanner2 != null) {
-            scanner2.close();
-        }
         return md;
     }
 
