diff --git a/buildfiles/android/hxml/debug.hxml b/buildfiles/android/hxml/debug.hxml index 6c19ba1e4..d94486e90 100644 --- a/buildfiles/android/hxml/debug.hxml +++ b/buildfiles/android/hxml/debug.hxml @@ -1,6 +1,7 @@ --main ApplicationMain ::HAXE_FLAGS:: --cp ::BUILD_DIR::/android/haxe --cpp ::CPP_DIR:: --D android --debug ---macro allowPackage("flash") \ No newline at end of file +-main ApplicationMain ::HAXE_FLAGS:: +-cp ::BUILD_DIR::/android/haxe +-cpp ::CPP_DIR:: +-D android +-debug +--macro allowPackage("flash") +--macro keep("::APP_MAIN::") \ No newline at end of file diff --git a/buildfiles/android/hxml/release.hxml b/buildfiles/android/hxml/release.hxml index d9632e96f..83501d46f 100644 --- a/buildfiles/android/hxml/release.hxml +++ b/buildfiles/android/hxml/release.hxml @@ -1,5 +1,6 @@ --main ApplicationMain ::HAXE_FLAGS:: --cp ::BUILD_DIR::/android/haxe --cpp ::CPP_DIR:: ---macro allowPackage("flash") --D android +-main ApplicationMain ::HAXE_FLAGS:: +-cp ::BUILD_DIR::/android/haxe +-cpp ::CPP_DIR:: +--macro allowPackage("flash") +--macro keep("::APP_MAIN::") +-D android diff --git a/buildfiles/android/template/AndroidManifest.xml b/buildfiles/android/template/AndroidManifest.xml index 14166f552..852d4b22b 100644 --- a/buildfiles/android/template/AndroidManifest.xml +++ b/buildfiles/android/template/AndroidManifest.xml @@ -1,27 +1,26 @@ - - + + + ::if WIN_REQUIRE_SHADERS::::elseif WIN_ALLOW_SHADERS::::end:: + ::if (ANDROID_PERMISSIONS != null)::::foreach ANDROID_PERMISSIONS:: + ::end::::end:: + + + - ::if WIN_REQUIRE_SHADERS::::elseif WIN_ALLOW_SHADERS::::end:: - - + + - + + - - - - - - - - + \ No newline at end of file diff --git a/buildfiles/android/template/build.xml b/buildfiles/android/template/build.xml index 31aa3c5d5..980da1151 100644 --- a/buildfiles/android/template/build.xml +++ b/buildfiles/android/template/build.xml @@ -2,32 +2,12 @@ - - - - - - - - - ::if (KEY_STORE):: - - - ::if (KEY_STORE_ALIAS)::::end:: - ::if (KEY_STORE_PASSWORD)::::end:: - ::if (KEY_STORE_ALIAS_PASSWORD)::::end:: - ::end:: - - - - - \ No newline at end of file diff --git a/buildfiles/android/template/default.properties b/buildfiles/android/template/default.properties deleted file mode 100644 index 9d135cb85..000000000 --- a/buildfiles/android/template/default.properties +++ /dev/null @@ -1,11 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must be checked in Version Control Systems. -# -# To customize properties used by the Ant build system use, -# "build.properties", and override values to adapt the script to your -# project structure. - -# Project target. -target=android-7 diff --git a/buildfiles/android/template/libs/armeabi/readme.txt b/buildfiles/android/template/libs/armeabi/readme.txt index bd6035705..38b6a0c97 100644 --- a/buildfiles/android/template/libs/armeabi/readme.txt +++ b/buildfiles/android/template/libs/armeabi/readme.txt @@ -1 +1 @@ -place binaries here +place binaries here diff --git a/buildfiles/android/template/project.properties b/buildfiles/android/template/project.properties new file mode 100644 index 000000000..838b70303 --- /dev/null +++ b/buildfiles/android/template/project.properties @@ -0,0 +1,23 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "build.properties", and override values to adapt the script to your +# project structure. + +manifestmerger.enabled=true + +::if (ANDROID_LIBRARY_PROJECTS)::::foreach (ANDROID_LIBRARY_PROJECTS):: +android.library.reference.::index::=::path::::end::::end:: + +# Project target. +target=android-::ANDROID_TARGET_SDK_VERSION:: + +::if (KEY_STORE):: +key.store=::KEY_STORE:: +::if (KEY_STORE_ALIAS)::key.alias=::KEY_STORE_ALIAS::::end:: +::if (KEY_STORE_PASSWORD)::key.store.password=::KEY_STORE_PASSWORD::::end:: +::if (KEY_STORE_ALIAS_PASSWORD)::key.alias.password=::KEY_STORE_ALIAS_PASSWORD::"/::end:: +::end:: \ No newline at end of file diff --git a/buildfiles/android/template/src/org/haxe/HXCPP.java b/buildfiles/android/template/src/org/haxe/HXCPP.java deleted file mode 100644 index 21dad4642..000000000 --- a/buildfiles/android/template/src/org/haxe/HXCPP.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.haxe; - -// Wrapper for native library - -public class HXCPP { - static boolean mInit = false; - - static public void run(String inClassName) { - System.loadLibrary(inClassName); - - if (!mInit) - { - mInit = true; - main(); - } - } - - public static native void main(); -} - diff --git a/buildfiles/android/template/src/org/haxe/nme/GameActivity.java b/buildfiles/android/template/src/org/haxe/nme/GameActivity.java index 855c58335..a92113340 100644 --- a/buildfiles/android/template/src/org/haxe/nme/GameActivity.java +++ b/buildfiles/android/template/src/org/haxe/nme/GameActivity.java @@ -27,15 +27,22 @@ import dalvik.system.DexClassLoader; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; +import java.io.IOException; import java.io.OutputStream; import java.lang.reflect.Constructor; import java.lang.Math; +import java.lang.Runnable; +import java.util.ArrayList; import java.util.HashMap; import java.util.Locale; +import java.util.List; +import org.haxe.extension.Extension; +import org.haxe.HXCPP; -public class GameActivity extends Activity implements SensorEventListener -{ - private static final String GLOBAL_PREF_FILE = "nmeAppPrefs"; + +public class GameActivity extends Activity implements SensorEventListener { + + private static final int DEVICE_ORIENTATION_UNKNOWN = 0; private static final int DEVICE_ORIENTATION_PORTRAIT = 1; private static final int DEVICE_ORIENTATION_PORTRAIT_UPSIDE_DOWN = 2; @@ -47,338 +54,474 @@ public class GameActivity extends Activity implements SensorEventListener private static final int DEVICE_ROTATION_90 = 1; private static final int DEVICE_ROTATION_180 = 2; private static final int DEVICE_ROTATION_270 = 3; - - static GameActivity activity; - static AssetManager mAssets; - static Context mContext; - static DisplayMetrics metrics; - static HashMap mLoadedClasses = new HashMap(); - static SensorManager sensorManager; - - public Handler mHandler; - MainView mView; + private static final String GLOBAL_PREF_FILE = "nmeAppPrefs"; private static float[] accelData = new float[3]; + private static GameActivity activity; + private static AssetManager mAssets; private static int bufferedDisplayOrientation = -1; private static int bufferedNormalOrientation = -1; + private static Context mContext; + private static List extensions; private static float[] inclinationMatrix = new float[16]; + private static HashMap mLoadedClasses = new HashMap(); private static float[] magnetData = new float[3]; + private static DisplayMetrics metrics; private static float[] orientData = new float[3]; private static float[] rotationMatrix = new float[16]; + private static SensorManager sensorManager; + + public Handler mHandler; + + private MainView mView; private Sound _sound; - protected void onCreate(Bundle state) - { - super.onCreate(state); + + protected void onCreate (Bundle state) { + + super.onCreate (state); activity = this; mContext = this; - mHandler = new Handler(); - mAssets = getAssets(); + mHandler = new Handler (); + mAssets = getAssets (); - _sound = new Sound(getApplication()); + Extension.assetManager = mAssets; + Extension.callbackHandler = mHandler; + Extension.mainActivity = this; + Extension.mainContext = this; + + _sound = new Sound (getApplication ()); //getResources().getAssets(); - requestWindowFeature(Window.FEATURE_NO_TITLE); - getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + requestWindowFeature (Window.FEATURE_NO_TITLE); + getWindow ().addFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - metrics = new DisplayMetrics(); - getWindowManager().getDefaultDisplay().getMetrics(metrics); + metrics = new DisplayMetrics (); + getWindowManager ().getDefaultDisplay ().getMetrics (metrics); // Pre-load these, so the C++ knows where to find them ::foreach ndlls:: - System.loadLibrary("::name::");::end:: - org.haxe.HXCPP.run("ApplicationMain"); + System.loadLibrary ("::name::");::end:: + HXCPP.run ("ApplicationMain"); - mView = new MainView(getApplication(), this); - setContentView(mView); + mView = new MainView (getApplication (), this); + setContentView (mView); - sensorManager = (SensorManager)activity.getSystemService(Context.SENSOR_SERVICE); + sensorManager = (SensorManager)activity.getSystemService (Context.SENSOR_SERVICE); - if (sensorManager != null) - { - sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME); - sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD), SensorManager.SENSOR_DELAY_GAME); + if (sensorManager != null) { + + sensorManager.registerListener (this, sensorManager.getDefaultSensor (Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME); + sensorManager.registerListener (this, sensorManager.getDefaultSensor (Sensor.TYPE_MAGNETIC_FIELD), SensorManager.SENSOR_DELAY_GAME); + } + + if (extensions == null) { + + extensions = new ArrayList(); + ::if (ANDROID_EXTENSIONS != null)::::foreach ANDROID_EXTENSIONS:: + extensions.add (new ::__current__:: ());::end::::end:: + + } + + for (Extension extension : extensions) { + + extension.onCreate (state); + + } + } - public static double CapabilitiesGetPixelAspectRatio() - { + public static double CapabilitiesGetPixelAspectRatio () { + return metrics.xdpi / metrics.ydpi; + } - public static double CapabilitiesGetScreenDPI() - { - return metrics.xdpi; + public static double CapabilitiesGetScreenDPI () { + + return metrics.xdpi; + } - public static double CapabilitiesGetScreenResolutionX() - { + public static double CapabilitiesGetScreenResolutionX () { + return metrics.widthPixels; + } - public static double CapabilitiesGetScreenResolutionY() - { + public static double CapabilitiesGetScreenResolutionY () { + return metrics.heightPixels; - } - - public static String CapabilitiesGetLanguage() - { - return Locale.getDefault().getLanguage(); - } - - - public static void clearUserPreference(String inId) - { - SharedPreferences prefs = activity.getSharedPreferences(GLOBAL_PREF_FILE, MODE_PRIVATE); - SharedPreferences.Editor prefEditor = prefs.edit(); - prefEditor.putString(inId, ""); - prefEditor.commit(); - } - - - public void doPause() - { - _sound.doPause(); - mView.sendActivity(NME.DEACTIVATE); - mView.onPause(); + } + + + public static String CapabilitiesGetLanguage () { - if (sensorManager != null) - { - sensorManager.unregisterListener(this); + return Locale.getDefault ().getLanguage (); + + } + + + public static void clearUserPreference (String inId) { + + SharedPreferences prefs = activity.getSharedPreferences (GLOBAL_PREF_FILE, MODE_PRIVATE); + SharedPreferences.Editor prefEditor = prefs.edit (); + prefEditor.putString (inId, ""); + prefEditor.commit (); + + } + + + public void doPause () { + + _sound.doPause (); + + mView.sendActivity (NME.DEACTIVATE); + mView.onPause (); + + if (sensorManager != null) { + + sensorManager.unregisterListener (this); + } + } - public void doResume() - { - mView.onResume(); + + public void doResume () { + + mView.onResume (); - _sound.doResume(); + _sound.doResume (); - mView.sendActivity(NME.ACTIVATE); + mView.sendActivity (NME.ACTIVATE); - if (sensorManager != null) - { - sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME); - sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD), SensorManager.SENSOR_DELAY_GAME); + if (sensorManager != null) { + + sensorManager.registerListener (this, sensorManager.getDefaultSensor (Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME); + sensorManager.registerListener (this, sensorManager.getDefaultSensor (Sensor.TYPE_MAGNETIC_FIELD), SensorManager.SENSOR_DELAY_GAME); + } + } - public static Context getContext() - { + public static Context getContext () { + return mContext; + } - public static GameActivity getInstance() - { + + public static GameActivity getInstance () { + return activity; + } - public static MainView getMainView() - { + + public static MainView getMainView () { + return activity.mView; - } - - public void queueRunnable(java.lang.Runnable runnable) - { - Log.e("GameActivity", "queueing..."); + } - public static byte[] getResource(String inResource) - { - try - { - InputStream inputStream = mAssets.open(inResource, AssetManager.ACCESS_BUFFER); - long length = inputStream.available(); - byte[] result = new byte[(int) length]; - inputStream.read(result); - inputStream.close(); + public static byte[] getResource (String inResource) { + + try { + + InputStream inputStream = mAssets.open (inResource, AssetManager.ACCESS_BUFFER); + long length = inputStream.available (); + byte[] result = new byte[(int)length]; + inputStream.read (result); + inputStream.close (); return result; - } - catch (java.io.IOException e) - { - Log.e("GameActivity", "getResource" + ":" + e.toString()); + + } catch (IOException e) { + + Log.e ("GameActivity", "getResource" + ":" + e.toString ()); + } return null; + } - public static int getResourceID(String inFilename) - { - ::foreach assets::::if (type == "music")::if (inFilename.equals("::id::")) return ::APP_PACKAGE::.R.raw.::flatName::; - ::end::::end:: - ::foreach assets::::if (type == "sound")::if (inFilename.equals("::id::")) return ::APP_PACKAGE::.R.raw.::flatName::; - ::end::::end:: + public static int getResourceID (String inFilename) { + + //::foreach assets::::if (type == "music")::if (inFilename.equals("::id::")) return ::APP_PACKAGE::.R.raw.::flatName::; + //::end::::end:: + //::foreach assets::::if (type == "sound")::if (inFilename.equals("::id::")) return ::APP_PACKAGE::.R.raw.::flatName::; + //::end::::end:: return -1; + } - static public String getSpecialDir(int inWhich) - { - Log.v("GameActivity","Get special Dir " + inWhich); + static public String getSpecialDir (int inWhich) { + + Log.v ("GameActivity", "Get special Dir " + inWhich); File path = null; - switch (inWhich) - { + switch (inWhich) { + case 0: // App - return mContext.getPackageCodePath(); + return mContext.getPackageCodePath (); case 1: // Storage - path = mContext.getFilesDir(); + path = mContext.getFilesDir (); break; case 2: // Desktop - path = Environment.getDataDirectory(); + path = Environment.getDataDirectory (); break; case 3: // Docs - path = Environment.getExternalStorageDirectory(); + path = Environment.getExternalStorageDirectory (); break; case 4: // User - path = mContext.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS); + path = mContext.getExternalFilesDir (Environment.DIRECTORY_DOWNLOADS); break; + } - return path == null ? "" : path.getAbsolutePath(); + return path == null ? "" : path.getAbsolutePath (); + } - public static String getUserPreference(String inId) - { - SharedPreferences prefs = activity.getSharedPreferences(GLOBAL_PREF_FILE, MODE_PRIVATE); - return prefs.getString(inId, ""); + public static String getUserPreference (String inId) { + + SharedPreferences prefs = activity.getSharedPreferences (GLOBAL_PREF_FILE, MODE_PRIVATE); + return prefs.getString (inId, ""); + } - public static void launchBrowser(String inURL) - { - Intent browserIntent = new Intent(Intent.ACTION_VIEW).setData(Uri.parse(inURL)); + public static void launchBrowser (String inURL) { - try - { - activity.startActivity(browserIntent); - } - catch (Exception e) - { - Log.e("GameActivity", e.toString()); + Intent browserIntent = new Intent (Intent.ACTION_VIEW).setData (Uri.parse (inURL)); + + try { + + activity.startActivity (browserIntent); + + } catch (Exception e) { + + Log.e ("GameActivity", e.toString ()); return; + } + } - private void loadNewSensorData(SensorEvent event) - { - final int type = event.sensor.getType(); + private void loadNewSensorData (SensorEvent event) { - if (type == Sensor.TYPE_ACCELEROMETER) - { - accelData = event.values.clone(); - NME.onAccelerate(-accelData[0], -accelData[1], accelData[2]); + final int type = event.sensor.getType (); + + if (type == Sensor.TYPE_ACCELEROMETER) { + + accelData = event.values.clone (); + NME.onAccelerate (-accelData[0], -accelData[1], accelData[2]); + } - if (type == Sensor.TYPE_MAGNETIC_FIELD) - { - magnetData = event.values.clone(); + if (type == Sensor.TYPE_MAGNETIC_FIELD) { + + magnetData = event.values.clone (); //Log.d("GameActivity","new mag: " + magnetData[0] + ", " + magnetData[1] + ", " + magnetData[2]); + } - } - - - @Override public void onAccuracyChanged(Sensor sensor, int accuracy) - { } - @Override protected void onDestroy() - { + @Override public void onAccuracyChanged (Sensor sensor, int accuracy) { + + + + } + + + @Override protected void onActivityResult (int requestCode, int resultCode, Intent data) { + + for (Extension extension : extensions) { + + if (!extension.onActivityResult (requestCode, resultCode, data)) { + + return; + + } + + } + + super.onActivityResult (requestCode, resultCode, data); + + } + + + @Override protected void onDestroy () { + + for (Extension extension : extensions) { + + extension.onDestroy (); + + } + // TODO: Wait for result? - mView.sendActivity(NME.DESTROY); + mView.sendActivity (NME.DESTROY); activity = null; - super.onDestroy(); + super.onDestroy (); + } - @Override protected void onPause() - { - super.onPause(); - doPause(); + @Override protected void onPause () { + + super.onPause (); + doPause (); + + for (Extension extension : extensions) { + + extension.onPause (); + + } + } - @Override protected void onResume() - { + @Override protected void onRestart () { + + super.onRestart (); + + for (Extension extension : extensions) { + + extension.onRestart (); + + } + + } + + + @Override protected void onResume () { + super.onResume(); doResume(); - } - - @Override public void onSensorChanged(SensorEvent event) - { - loadNewSensorData(event); - if (accelData != null && magnetData != null) - { - boolean foundRotationMatrix = SensorManager.getRotationMatrix(rotationMatrix, inclinationMatrix, accelData, magnetData); - if (foundRotationMatrix) - { - SensorManager.getOrientation(rotationMatrix, orientData); - NME.onOrientationUpdate(orientData[0], orientData[1], orientData[2]); - } + for (Extension extension : extensions) { + + extension.onResume (); + } - NME.onDeviceOrientationUpdate(prepareDeviceOrientation()); - NME.onNormalOrientationFound(bufferedNormalOrientation); - } - - - public static void popView() - { - activity.setContentView(activity.mView); - activity.doResume(); } - public static void postUICallback(final long inHandle) - { - activity.mHandler.post(new Runnable() - { - @Override public void run() - { - NME.onCallback(inHandle); + @Override public void onSensorChanged (SensorEvent event) { + + loadNewSensorData (event); + + if (accelData != null && magnetData != null) { + + boolean foundRotationMatrix = SensorManager.getRotationMatrix (rotationMatrix, inclinationMatrix, accelData, magnetData); + + if (foundRotationMatrix) { + + SensorManager.getOrientation (rotationMatrix, orientData); + NME.onOrientationUpdate (orientData[0], orientData[1], orientData[2]); + } + + } + + NME.onDeviceOrientationUpdate (prepareDeviceOrientation ()); + NME.onNormalOrientationFound (bufferedNormalOrientation); + + } + + + @Override protected void onStart () { + + super.onStart(); + + for (Extension extension : extensions) { + + extension.onStart (); + + } + + } + + + @Override protected void onStop () { + + super.onStop (); + + for (Extension extension : extensions) { + + extension.onStop (); + + } + + } + + + public static void popView () { + + activity.setContentView (activity.mView); + activity.doResume (); + + } + + + public static void postUICallback (final long inHandle) { + + activity.mHandler.post (new Runnable () { + + @Override public void run () { + + NME.onCallback (inHandle); + + } + }); + } - private int prepareDeviceOrientation() - { - int rawOrientation = getWindow().getWindowManager().getDefaultDisplay().getOrientation(); + private int prepareDeviceOrientation () { - if (rawOrientation != bufferedDisplayOrientation) - { + int rawOrientation = getWindow ().getWindowManager ().getDefaultDisplay ().getOrientation (); + + if (rawOrientation != bufferedDisplayOrientation) { + bufferedDisplayOrientation = rawOrientation; + } - int screenOrientation = getResources().getConfiguration().orientation; + int screenOrientation = getResources ().getConfiguration ().orientation; int deviceOrientation = DEVICE_ORIENTATION_UNKNOWN; - if (bufferedNormalOrientation < 0) - { - switch (screenOrientation) - { + if (bufferedNormalOrientation < 0) { + + switch (screenOrientation) { + case Configuration.ORIENTATION_LANDSCAPE: - switch (bufferedDisplayOrientation) - { + + switch (bufferedDisplayOrientation) { + case DEVICE_ROTATION_0: case DEVICE_ROTATION_180: bufferedNormalOrientation = DEVICE_ORIENTATION_LANDSCAPE_LEFT; @@ -391,12 +534,15 @@ public class GameActivity extends Activity implements SensorEventListener default: bufferedNormalOrientation = DEVICE_ORIENTATION_UNKNOWN; + } + break; case Configuration.ORIENTATION_PORTRAIT: - switch (bufferedDisplayOrientation) - { + + switch (bufferedDisplayOrientation) { + case DEVICE_ROTATION_0: case DEVICE_ROTATION_180: bufferedNormalOrientation = DEVICE_ORIENTATION_PORTRAIT; @@ -409,19 +555,24 @@ public class GameActivity extends Activity implements SensorEventListener default: bufferedNormalOrientation = DEVICE_ORIENTATION_UNKNOWN; + } + break; default: // ORIENTATION_SQUARE OR ORIENTATION_UNDEFINED bufferedNormalOrientation = DEVICE_ORIENTATION_UNKNOWN; + } + } - switch (screenOrientation) - { + switch (screenOrientation) { + case Configuration.ORIENTATION_LANDSCAPE: - switch (bufferedDisplayOrientation) - { + + switch (bufferedDisplayOrientation) { + case DEVICE_ROTATION_0: case DEVICE_ROTATION_270: deviceOrientation = DEVICE_ORIENTATION_LANDSCAPE_LEFT; @@ -434,12 +585,15 @@ public class GameActivity extends Activity implements SensorEventListener default: // impossible! deviceOrientation = DEVICE_ORIENTATION_UNKNOWN; + } + break; case Configuration.ORIENTATION_PORTRAIT: - switch (bufferedDisplayOrientation) - { + + switch (bufferedDisplayOrientation) { + case DEVICE_ROTATION_0: case DEVICE_ROTATION_90: deviceOrientation = DEVICE_ORIENTATION_PORTRAIT; @@ -453,67 +607,97 @@ public class GameActivity extends Activity implements SensorEventListener default: // impossible! deviceOrientation = DEVICE_ORIENTATION_UNKNOWN; } + break; default: // ORIENTATION_SQUARE OR ORIENTATION_UNDEFINED deviceOrientation = DEVICE_ORIENTATION_UNKNOWN; + } return deviceOrientation; - } - - - public static void pushView(View inView) - { - activity.doPause(); - activity.setContentView(inView); - } - - - public static void setUserPreference(String inId, String inPreference) - { - SharedPreferences prefs = activity.getSharedPreferences(GLOBAL_PREF_FILE, MODE_PRIVATE); - SharedPreferences.Editor prefEditor = prefs.edit(); - prefEditor.putString(inId, inPreference); - prefEditor.commit(); - } - - - public static void showKeyboard(boolean show) - { - InputMethodManager mgr = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE); - mgr.hideSoftInputFromWindow(activity.mView.getWindowToken(), 0); - if (show) - { - mgr.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); + } + + + public static void pushView (View inView) { + + activity.doPause (); + activity.setContentView (inView); + + } + + + public void queueRunnable (Runnable runnable) { + + Log.e ("GameActivity", "queueing..."); + + } + + + public static void registerExtension (Extension extension) { + + if (extensions.indexOf (extension) == -1) { + + extensions.add (extension); + + } + + } + + + public static void showKeyboard (boolean show) { + + InputMethodManager mgr = (InputMethodManager)activity.getSystemService (Context.INPUT_METHOD_SERVICE); + mgr.hideSoftInputFromWindow (activity.mView.getWindowToken (), 0); + + if (show) { + + mgr.toggleSoftInput (InputMethodManager.SHOW_FORCED, 0); // On the Nexus One, SHOW_FORCED makes it impossible // to manually dismiss the keyboard. // On the Droid SHOW_IMPLICIT doesn't bring up the keyboard. + } + } - public static void vibrate(int period, int duration) - { - Vibrator v = (Vibrator)activity.getSystemService(Context.VIBRATOR_SERVICE); + public static void setUserPreference (String inId, String inPreference) { - if (period == 0) - { - v.vibrate(duration); - } - else - { - int periodMS = (int)Math.ceil(period / 2); - int count = (int)Math.ceil((duration / period) * 2); + SharedPreferences prefs = activity.getSharedPreferences (GLOBAL_PREF_FILE, MODE_PRIVATE); + SharedPreferences.Editor prefEditor = prefs.edit (); + prefEditor.putString (inId, inPreference); + prefEditor.commit (); + + } + + + public static void vibrate (int period, int duration) { + + Vibrator v = (Vibrator)activity.getSystemService (Context.VIBRATOR_SERVICE); + + if (period == 0) { + + v.vibrate (duration); + + } else { + + int periodMS = (int)Math.ceil (period / 2); + int count = (int)Math.ceil ((duration / period) * 2); long[] pattern = new long[count]; - for (int i = 0; i < count; i++) - { + for (int i = 0; i < count; i++) { + pattern[i] = periodMS; + } - v.vibrate(pattern, -1); + v.vibrate (pattern, -1); + } + } -} + + +} \ No newline at end of file diff --git a/buildfiles/android/template/src/org/haxe/nme/HaxeObject.java b/buildfiles/android/template/src/org/haxe/nme/HaxeObject.java deleted file mode 100644 index eaf4f2f02..000000000 --- a/buildfiles/android/template/src/org/haxe/nme/HaxeObject.java +++ /dev/null @@ -1,114 +0,0 @@ -package org.haxe.nme; - -import android.util.Log; -import java.lang.Boolean; -import java.lang.Byte; -import java.lang.Character; -import java.lang.Short; -import java.lang.Integer; -import java.lang.Long; -import java.lang.Float; -import java.lang.Double; - -public class HaxeObject -{ - public long __haxeHandle; - - public HaxeObject(long value) - { - __haxeHandle = value; - } - - public static HaxeObject create(long inHandle) { return new HaxeObject(inHandle); } - - - protected void finalize() throws Throwable { - try { - NME.releaseReference(__haxeHandle); - } finally { - super.finalize(); - } - } - public Object call0(String function) - { - //Log.e("HaxeObject","Calling obj0" + function + "()" ); - return NME.callObjectFunction(__haxeHandle,function,new Object[0]); - } - public Object call1(String function,Object arg0) - { - Object[] args = new Object[1]; - args[0] = arg0; - //Log.e("HaxeObject","Calling obj1 " + function + "(" + arg0 + ")" ); - return NME.callObjectFunction(__haxeHandle,function,args); - } - public Object call2(String function,Object arg0,Object arg1) - { - Object[] args = new Object[2]; - args[0] = arg0; - args[1] = arg1; - //Log.e("HaxeObject","Calling obj2 " + function + "(" + arg0 + "," + arg1 + ")" ); - return NME.callObjectFunction(__haxeHandle,function,args); - } - public Object call3(String function,Object arg0,Object arg1,Object arg2) - { - Object[] args = new Object[3]; - args[0] = arg0; - args[1] = arg1; - args[2] = arg2; - //Log.e("HaxeObject","Calling obj3 " + function + "(" + arg0 + "," + arg1 + "," + arg2 + ")" ); - return NME.callObjectFunction(__haxeHandle,function,args); - } - public Object call4(String function,Object arg0,Object arg1,Object arg2,Object arg3) - { - Object[] args = new Object[4]; - args[0] = arg0; - args[1] = arg1; - args[2] = arg2; - args[3] = arg3; - //Log.e("HaxeObject","Calling obj4 " + function + "(" + arg0 + "," + arg1 + "," + arg2 + "," + arg3 + ")" ); - return NME.callObjectFunction(__haxeHandle,function,args); - } - - public double callD0(String function) - { - //Log.e("HaxeObject","Calling objD0 " + function + "()" ); - return NME.callNumericFunction(__haxeHandle,function,new Object[0]); - } - public double callD1(String function,Object arg0) - { - Object[] args = new Object[1]; - args[0] = arg0; - //Log.e("HaxeObject","Calling D1 " + function + "(" + arg0 + ")" ); - return NME.callNumericFunction(__haxeHandle,function,args); - } - public double callD2(String function,Object arg0,Object arg1) - { - Object[] args = new Object[2]; - args[0] = arg0; - args[1] = arg1; - //Log.e("HaxeObject","Calling D2 " + function + "(" + arg0 + "," + arg1 + ")" ); - return NME.callNumericFunction(__haxeHandle,function,args); - } - public double callD3(String function,Object arg0,Object arg1,Object arg2) - { - Object[] args = new Object[2]; - args[0] = arg0; - args[1] = arg1; - args[2] = arg2; - //Log.e("HaxeObject","Calling D3 " + function + "(" + arg0 + "," + arg1 + "," + arg2 + ")" ); - return NME.callNumericFunction(__haxeHandle,function,args); - } - - - - - - public Object call(String function, Object[] args) - { - return NME.callObjectFunction(__haxeHandle,function,args); - } - public double callD(String function, Object[] args) - { - return NME.callNumericFunction(__haxeHandle,function,args); - } -} diff --git a/buildfiles/android/template/src/org/haxe/nme/MainView.java b/buildfiles/android/template/src/org/haxe/nme/MainView.java index f3cad7fa7..56ba5016b 100644 --- a/buildfiles/android/template/src/org/haxe/nme/MainView.java +++ b/buildfiles/android/template/src/org/haxe/nme/MainView.java @@ -1,398 +1,587 @@ -/* - * 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 org.haxe.nme; + +import android.app.Activity; import android.content.Context; import android.graphics.PixelFormat; import android.opengl.GLSurfaceView; +import android.os.Build; import android.util.AttributeSet; import android.util.Log; -//import android.view.InputDevice; +::if (ANDROID_TARGET_SDK_VERSION > 11)::import android.view.InputDevice;::end:: +import android.view.KeyCharacterMap; import android.view.KeyEvent; import android.view.MotionEvent; -import android.app.Activity; - 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.opengles.GL10; - import java.util.Date; +import java.util.Timer; +import java.util.TimerTask; + -/** - * A simple GLSurfaceView sub-class that demonstrate how to perform - * OpenGL ES 2.0 rendering into a GL Surface. Note the following important - * details: - * - * - The class must use a custom context factory to enable 2.0 rendering. - * See ContextFactory class definition below. - * - * - The class must use a custom EGLConfigChooser to be able to select - * an EGLConfig that supports 2.0. This is done by providing a config - * specification to eglChooseConfig() that has the attribute - * EGL10.ELG_RENDERABLE_TYPE containing the EGL_OPENGL_ES2_BIT flag - * set. See ConfigChooser class definition below. - * - * - The class must select the surface's format, then choose an EGLConfig - * that matches it exactly (with regards to red/green/blue/alpha channels - * bit depths). Failure to do so would result in an EGL_BAD_MATCH error. - */ class MainView extends GLSurfaceView { - - Activity mActivity; + + + static final int etTouchBegin = 15; + static final int etTouchMove = 16; + static final int etTouchEnd = 17; + static final int etTouchTap = 18; + static final int resTerminate = -1; + + Activity mActivity; static MainView mRefreshView; - - //private InputDevice device; - public MainView(Context context,Activity inActivity) { - super(context); - - int eglVersion = 1; - - // See if version 2 is supported? - if (::WIN_ALLOW_SHADERS:: || ::WIN_REQUIRE_SHADERS:: ) - { - EGL10 egl = (EGL10)EGLContext.getEGL(); - EGLDisplay display = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY); - int[] version = new int[2]; - egl.eglInitialize(display, version); - EGLConfig[] v2_configs = new EGLConfig[1]; - int[] num_config = new int[1]; - int[] attrs = { EGL10.EGL_RENDERABLE_TYPE, 4 /*EGL_OPENGL_ES2_BIT*/, EGL10.EGL_NONE }; - egl.eglChooseConfig(display, attrs, v2_configs, 1, num_config); - //Log.v("EGL","v2 configs : " + num_config[0]); - if (num_config[0]==1) - { - eglVersion = 2; - setEGLContextClientVersion(2); - } - } - - final int renderType = eglVersion==1 ? 0x01 : 0x04; - - - setEGLConfigChooser(new EGLConfigChooser() { - public EGLConfig chooseConfig (EGL10 egl, EGLDisplay display) { - int depth = ::if WIN_DEPTH_BUFFER:: 16 ::else:: 0 ::end::; - int stencil = ::if WIN_STENCIL_BUFFER:: 8 ::else:: 0 ::end::; - - EGLConfig[] configs = new EGLConfig[1]; - int[] num_config = new int[1]; - - - // Try as specified - aa - if (::WIN_ANTIALIASING:: > 1) - { - int[] attrs = { EGL10.EGL_DEPTH_SIZE, depth, - EGL10.EGL_STENCIL_SIZE, stencil, - EGL10.EGL_SAMPLE_BUFFERS, 1 /* true */, - EGL10.EGL_SAMPLES, ::WIN_ANTIALIASING::, - EGL10.EGL_RENDERABLE_TYPE, renderType, - EGL10.EGL_NONE }; - - egl.eglChooseConfig(display, attrs, configs, 1, num_config); - Log.v("EGL","Match AA=::WIN_ANTIALIASING::, depth + stencil : " + num_config[0]); - - if (num_config[0]==1) - return configs[0]; - - // Try with just 2 specified - aa - if (::WIN_ANTIALIASING:: > 2) - { - int[] attrs_aa2 = { EGL10.EGL_DEPTH_SIZE, depth, - EGL10.EGL_STENCIL_SIZE, stencil, - EGL10.EGL_SAMPLE_BUFFERS, 1 /* true */, - EGL10.EGL_SAMPLES, 2, - EGL10.EGL_RENDERABLE_TYPE, renderType, - EGL10.EGL_NONE }; - - egl.eglChooseConfig(display, attrs_aa2, configs, 1, num_config); - Log.v("EGL","Match AA=2, depth + stencil : " + num_config[0]); - - if (num_config[0]==1) - return configs[0]; - } - - // No normal multisampling config was found. Try to create a - // converage multisampling configuration, for the nVidia Tegra2. - // See the EGL_NV_coverage_sample documentation. - - final int EGL_COVERAGE_BUFFERS_NV = 0x30E0; - final int EGL_COVERAGE_SAMPLES_NV = 0x30E1; - - int[] attrs_aanv = { EGL10.EGL_DEPTH_SIZE, depth, - EGL10.EGL_STENCIL_SIZE, stencil, - EGL_COVERAGE_BUFFERS_NV, 1 /* true */, - EGL_COVERAGE_SAMPLES_NV, 2, // always 5 in practice on tegra 2 - EGL10.EGL_RENDERABLE_TYPE, renderType, - EGL10.EGL_NONE }; - - egl.eglChooseConfig(display, attrs_aanv, configs, 1, num_config); - Log.v("EGL","Match AANV, depth + stencil : " + num_config[0]); - - if (num_config[0]==1) - return configs[0]; - } - - // Try just specifying just depth and stencil - int[] attrs1 = { EGL10.EGL_DEPTH_SIZE, depth, - EGL10.EGL_STENCIL_SIZE, stencil, - EGL10.EGL_RENDERABLE_TYPE, renderType, - EGL10.EGL_NONE }; - - egl.eglChooseConfig(display, attrs1, configs, 1, num_config); - Log.v("EGL","Matched depth + stencil : " + num_config[0]); - if (num_config[0]==1) - return configs[0]; - - // Just give me whatever you've got - int[] attrs2 = { EGL10.EGL_NONE }; - egl.eglChooseConfig(display, attrs2, configs, 1, num_config); - if (num_config[0]==1) - return configs[0]; - Log.v("EGL","Matched any : " + num_config[0]); - - return null; - } - }); - mActivity = inActivity; - mRefreshView = this; - setFocusable(true); - setFocusableInTouchMode(true); - setRenderer(new Renderer(this)); - setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); - // setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY); - //Log.v("VIEW", "present on system: " + InputDevice.getDeviceIds()); - for (int i = 0; i < 4; i++) { - //device = InputDevice.getDevice(i); - //if (device != null) { Log.v("VIEW", "id of controller is: " + i + " and identification is: " + device.getName());} - } - } - - static final int etTouchBegin = 15; - static final int etTouchMove = 16; - static final int etTouchEnd = 17; - static final int etTouchTap = 18; - - static final int resTerminate = -1; - java.util.Timer mTimer = new java.util.Timer(); + Timer mTimer = new Timer (); int mTimerID = 0; - - - public void HandleResult(int inCode) { - if (inCode==resTerminate) - { - //Log.v("VIEW","Terminate Request."); - mActivity.finish(); - return; - } - double wake = NME.getNextWake(); - final MainView me = this; - if (wake<=0) - queueEvent(new Runnable(){ public void run() { me.onPoll(); } } ); - else - { - final int tid = ++mTimerID; - Date end = new Date(); - end.setTime( end.getTime() + (int)(wake * 1000) ); - mTimer.schedule( new java.util.TimerTask(){ public void run() - { - if (tid==me.mTimerID) - me.queuePoll(); - } }, end ); - } - - } - - void sendActivity(final int inActivity) - { - queueEvent(new Runnable(){ public void run() { NME.onActivity(inActivity); } } ); - } - - void queuePoll() - { + + + public MainView (Context context, Activity inActivity) { + + super (context); + + int eglVersion = 1; + + if (::WIN_ALLOW_SHADERS:: || ::WIN_REQUIRE_SHADERS::) { + + EGL10 egl = (EGL10)EGLContext.getEGL (); + EGLDisplay display = egl.eglGetDisplay (EGL10.EGL_DEFAULT_DISPLAY); + int[] version = new int[2]; + + egl.eglInitialize (display, version); + + EGLConfig[] v2_configs = new EGLConfig[1]; + int[] num_config = new int[1]; + int[] attrs = { EGL10.EGL_RENDERABLE_TYPE, 4 /*EGL_OPENGL_ES2_BIT*/, EGL10.EGL_NONE }; + egl.eglChooseConfig (display, attrs, v2_configs, 1, num_config); + + if (num_config[0]==1) { + + eglVersion = 2; + setEGLContextClientVersion (2); + + } + + } + + final int renderType = (eglVersion == 1 ? 0x01 : 0x04); + + setEGLConfigChooser (new EGLConfigChooser () { + + public EGLConfig chooseConfig (EGL10 egl, EGLDisplay display) { + + int depth = ::if WIN_DEPTH_BUFFER::16::else::0::end::; + int stencil = ::if WIN_STENCIL_BUFFER::8::else::0::end::; + EGLConfig[] configs = new EGLConfig[1]; + int[] num_config = new int[1]; + + if (::WIN_ANTIALIASING:: > 1) { + + int[] attrs = { + + EGL10.EGL_DEPTH_SIZE, depth, + EGL10.EGL_STENCIL_SIZE, stencil, + EGL10.EGL_SAMPLE_BUFFERS, 1 /* true */, + EGL10.EGL_SAMPLES, ::WIN_ANTIALIASING::, + EGL10.EGL_RENDERABLE_TYPE, renderType, + EGL10.EGL_NONE + + }; + + egl.eglChooseConfig (display, attrs, configs, 1, num_config); + + if (num_config[0] == 1) { + + return configs[0]; + + } + + if (::WIN_ANTIALIASING:: > 2) { + + int[] attrs_aa2 = { + + EGL10.EGL_DEPTH_SIZE, depth, + EGL10.EGL_STENCIL_SIZE, stencil, + EGL10.EGL_SAMPLE_BUFFERS, 1 /* true */, + EGL10.EGL_SAMPLES, 2, + EGL10.EGL_RENDERABLE_TYPE, renderType, + EGL10.EGL_NONE + + }; + + egl.eglChooseConfig (display, attrs_aa2, configs, 1, num_config); + + if (num_config[0] == 1) { + + return configs[0]; + + } + + } + + final int EGL_COVERAGE_BUFFERS_NV = 0x30E0; + final int EGL_COVERAGE_SAMPLES_NV = 0x30E1; + + int[] attrs_aanv = { + + EGL10.EGL_DEPTH_SIZE, depth, + EGL10.EGL_STENCIL_SIZE, stencil, + EGL_COVERAGE_BUFFERS_NV, 1 /* true */, + EGL_COVERAGE_SAMPLES_NV, 2, // always 5 in practice on tegra 2 + EGL10.EGL_RENDERABLE_TYPE, renderType, + EGL10.EGL_NONE + + }; + + egl.eglChooseConfig (display, attrs_aanv, configs, 1, num_config); + + if (num_config[0] == 1) { + + return configs[0]; + + } + + } + + int[] attrs1 = { + + EGL10.EGL_DEPTH_SIZE, depth, + EGL10.EGL_STENCIL_SIZE, stencil, + EGL10.EGL_RENDERABLE_TYPE, renderType, + EGL10.EGL_NONE + + }; + + egl.eglChooseConfig (display, attrs1, configs, 1, num_config); + + if (num_config[0] == 1) { + + return configs[0]; + + } + + int[] attrs2 = { + + EGL10.EGL_NONE + + }; + + egl.eglChooseConfig (display, attrs2, configs, 1, num_config); + + if (num_config[0] == 1) { + + return configs[0]; + + } + + return null; + + } + + }); + + mActivity = inActivity; + mRefreshView = this; + setFocusable (true); + setFocusableInTouchMode (true); + setRenderer (new Renderer (this)); + setRenderMode (GLSurfaceView.RENDERMODE_WHEN_DIRTY); + + } + + + public void HandleResult (int inCode) { + + if (inCode == resTerminate) { + + mActivity.finish (); + return; + + } + + double wake = NME.getNextWake (); final MainView me = this; - queueEvent(new Runnable(){ public void run() { me.onPoll(); } } ); + + if (wake <= 0) { + + queueEvent (new Runnable () { + + public void run () { + + me.onPoll (); + + } + + }); + + } else { + + final int tid = ++mTimerID; + Date end = new Date (); + end.setTime (end.getTime () + (int)(wake * 1000)); + + mTimer.schedule (new TimerTask () { + + public void run () { + + if (tid == me.mTimerID) { + + me.queuePoll (); + + } + + } + + }, end); + + } + } - - void onPoll() - { - HandleResult( NME.onPoll() ); + + + ::if (ANDROID_TARGET_SDK_VERSION > 11)::@Override public boolean onGenericMotionEvent (MotionEvent event) { + + if ((event.getSource () & InputDevice.SOURCE_CLASS_JOYSTICK) != 0 && event.getAction () == MotionEvent.ACTION_MOVE) { + + final MainView me = this; + final InputDevice device = event.getDevice (); + final int deviceId = event.getDeviceId (); + + int[] axisList = { + + android.view.MotionEvent.AXIS_X, android.view.MotionEvent.AXIS_Y, android.view.MotionEvent.AXIS_Z, + android.view.MotionEvent.AXIS_RX, android.view.MotionEvent.AXIS_RY, android.view.MotionEvent.AXIS_RZ, + android.view.MotionEvent.AXIS_HAT_X, android.view.MotionEvent.AXIS_HAT_Y, + android.view.MotionEvent.AXIS_LTRIGGER, android.view.MotionEvent.AXIS_RTRIGGER + + }; + + for (int i = 0; i < axisList.length; i++) { + + final int axis = axisList[i]; + final InputDevice.MotionRange range = device.getMotionRange (axis, event.getSource ()); + + if (range != null) { + + final float flat = range.getFlat (); + final float value = event.getAxisValue (axis); + + if (Math.abs (value) > flat) { + + queueEvent (new Runnable () { + + public void run () { + + me.HandleResult (NME.onJoyMotion (deviceId, axis, ((value - range.getMin ()) / (range.getRange ())) * 65535 - 32768)); + + } + + }); + + } else { + + queueEvent (new Runnable () { + + public void run () { + + me.HandleResult (NME.onJoyMotion (deviceId, axis, 0)); + + } + + }); + + } + } + + } + + return true; + + } + + return super.onGenericMotionEvent (event); + + }::end:: + + + @Override public boolean onKeyDown (final int inKeyCode, KeyEvent event) { + + final MainView me = this; + + ::if (ANDROID_TARGET_SDK_VERSION > 11)::if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1 && (event.isGamepadButton (inKeyCode) || (inKeyCode >= 19 && inKeyCode <= 22))) { + + if (event.getRepeatCount () == 0) { + + final int deviceId = event.getDeviceId (); + + queueEvent (new Runnable () { + + public void run () { + + me.HandleResult (NME.onJoyChange (deviceId, inKeyCode, true)); + + } + + }); + + } + + return true; + + }::end:: + + final int keyCode = translateKey (inKeyCode, event); + + if (keyCode != 0) { + + queueEvent (new Runnable () { + + public void run () { + + me.HandleResult (NME.onKeyChange (keyCode, true)); + + } + + }); + + return true; + + } + + return super.onKeyDown(inKeyCode, event); + } - - // Called diectly by NME... - static public void renderNow() - { - // Log.i("trace","renderNow!!!"); - mRefreshView.requestRender(); + + + @Override public boolean onKeyUp (final int inKeyCode, KeyEvent event) { + + final MainView me = this; + + ::if (ANDROID_TARGET_SDK_VERSION > 11)::if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1 && (event.isGamepadButton (inKeyCode) || (inKeyCode >= 19 && inKeyCode <= 22))) { + + if (event.getRepeatCount () == 0) { + + final int deviceId = event.getDeviceId (); + + queueEvent (new Runnable () { + + public void run () { + + me.HandleResult (NME.onJoyChange (deviceId, inKeyCode, false)); + + } + + }); + + } + + return true; + + }::end:: + + final int keyCode = translateKey (inKeyCode, event); + + if (keyCode != 0) { + + queueEvent (new Runnable () { + + public void run () { + + me.HandleResult (NME.onKeyChange (keyCode, false)); + + } + + }); + + return true; + + } + + return super.onKeyDown(inKeyCode, event); + } - - @Override - public boolean onTouchEvent(final MotionEvent ev) { - final MainView me = this; - - final int action = ev.getAction(); - - int type = -1; - - switch (action & MotionEvent.ACTION_MASK) { - case MotionEvent.ACTION_DOWN: type = etTouchBegin; break; - case MotionEvent.ACTION_POINTER_DOWN: type = etTouchBegin; break; - case MotionEvent.ACTION_MOVE: type = etTouchMove; break; - case MotionEvent.ACTION_UP: type = etTouchEnd; break; - case MotionEvent.ACTION_POINTER_UP: type = etTouchEnd; break; - case MotionEvent.ACTION_CANCEL: type = etTouchEnd; break; - } - - //Log.e("VIEW","Actions : " + action ); - - // This is actually index, not id.... - int idx = (action & MotionEvent.ACTION_POINTER_ID_MASK) >> - (MotionEvent.ACTION_POINTER_ID_SHIFT); - - final int t = type; - //if (type!=etTouchMove) - // Log.e("VIEW","onTouchEvent " + ev.toString() ); - - for (int i = 0; i < ev.getPointerCount(); i++) { - // Log.e("VIEW","onTouchEvent " + type + " x " + ev.getPointerCount() ); - final int id = ev.getPointerId(i); - final float x = ev.getX(i); - final float y = ev.getY(i); - final float sizeX = ev.getSize(i); - final float sizeY = ev.getSize(i); - //if (type!=etTouchMove) - //Log.e("VIEW"," " + i + "] type=" + t + " id="+ id + " idx="+ idx +" " + x + ", "+ y + "," + sizeX + "," + sizeY); - if (type==etTouchMove || i==idx) - { - queueEvent(new Runnable(){ - public void run() { me.HandleResult( NME.onTouch(t,x,y,id,sizeX,sizeY) ); } - }); - } - } - return true; - } - - - @Override - public boolean onTrackballEvent(final MotionEvent ev) { - final MainView me = this; - queueEvent(new Runnable(){ - public void run() { - float x = ev.getX(); - float y = ev.getY(); - me.HandleResult( NME.onTrackball(x,y) ); - }}); - return false; - } - - public int translateKey(int inCode, KeyEvent event) { - switch(inCode) - { - case KeyEvent.KEYCODE_DPAD_CENTER: return 13; /* Fake ENTER */ - case KeyEvent.KEYCODE_DPAD_LEFT: return 37; - case KeyEvent.KEYCODE_DPAD_RIGHT: return 39; - case KeyEvent.KEYCODE_DPAD_UP: return 38; - case KeyEvent.KEYCODE_DPAD_DOWN: return 40; - case KeyEvent.KEYCODE_BACK: return 27; /* Fake Escape */ - case KeyEvent.KEYCODE_MENU: return 0x01000012; /* Fake MENU */ - //case KeyEvent.KEYCODE_DPAD_CENTER: return 13; // Fake ENTER - //case KeyEvent.KEYCODE_DPAD_LEFT: return 1;//37; - //case KeyEvent.KEYCODE_DPAD_RIGHT: return 2;//39; - //case KeyEvent.KEYCODE_DPAD_UP: return 3;//38; - //case KeyEvent.KEYCODE_DPAD_DOWN: return 4;//40; - //case KeyEvent.KEYCODE_BACK: return 3;//27; // Fake Escape - //case KeyEvent.KEYCODE_MENU: return 0x01000012; // Fake MENU - - case KeyEvent.KEYCODE_DEL: return 8; - } - - int result = event.getUnicodeChar( event.getMetaState() ); - if (result==android.view.KeyCharacterMap.COMBINING_ACCENT) - { - // TODO: - return 0; - } - return result; - } - - @Override - public boolean onKeyDown(final int inKeyCode, KeyEvent event) { - // Log.e("VIEW","onKeyDown " + inKeyCode); - Log.v("VIEW", "device of event is " + event.getDeviceId()); - Log.v("VIEW","onKeyDown " + inKeyCode); - final MainView me = this; - final int keyCode = translateKey(inKeyCode,event); - final int deviceId = event.getDeviceId(); - if (keyCode!=0) { - queueEvent(new Runnable() { - // This method will be called on the rendering thread: - public void run() { - me.HandleResult(NME.onKeyChange(keyCode,true)); - me.HandleResult(NME.onJoyChange(deviceId,keyCode,true)); - }}); - return true; - } - return super.onKeyDown(inKeyCode, event); - } - - - @Override - public boolean onKeyUp(final int inKeyCode, KeyEvent event) { - //Log.v("VIEW","onKeyUp " + inKeyCode); - Log.v("VIEW", "device of event is " + event.getDeviceId()); - Log.v("VIEW","onKeyUp " + inKeyCode); - final MainView me = this; - final int keyCode = translateKey(inKeyCode,event); - final int deviceId = event.getDeviceId(); - if (keyCode!=0) { - queueEvent(new Runnable() { - // This method will be called on the rendering thread: - public void run() { - me.HandleResult(NME.onKeyChange(keyCode,false)); - me.HandleResult(NME.onJoyChange(deviceId,keyCode,false)); - }}); - return true; - } - return super.onKeyDown(inKeyCode, event); - } - - - private static class Renderer implements GLSurfaceView.Renderer { - MainView mMainView; - - public Renderer(MainView inView) { mMainView = inView; } - - public void onDrawFrame(GL10 gl) { - // Log.i("trace","onDrawFrame !"); - mMainView.HandleResult( NME.onRender() ); - Sound.checkSoundCompletion(); - // Log.i("trace","onDrawFrame DONE!"); - } - - public void onSurfaceChanged(GL10 gl, int width, int height) { - //Log.v("VIEW","onSurfaceChanged " + width +"," + height); - mMainView.HandleResult( NME.onResize(width,height) ); - } - - public void onSurfaceCreated(GL10 gl, EGLConfig config) { - // Do nothing. - } - } -} - - - + + + void onPoll () { + + HandleResult (NME.onPoll ()); + + } + + + @Override public boolean onTouchEvent (final MotionEvent ev) { + + final MainView me = this; + final int action = ev.getAction (); + int type = -1; + + switch (action & MotionEvent.ACTION_MASK) { + + case MotionEvent.ACTION_DOWN: type = etTouchBegin; break; + case MotionEvent.ACTION_POINTER_DOWN: type = etTouchBegin; break; + case MotionEvent.ACTION_MOVE: type = etTouchMove; break; + case MotionEvent.ACTION_UP: type = etTouchEnd; break; + case MotionEvent.ACTION_POINTER_UP: type = etTouchEnd; break; + case MotionEvent.ACTION_CANCEL: type = etTouchEnd; break; + + } + + int idx = (action & MotionEvent.ACTION_POINTER_ID_MASK) >> (MotionEvent.ACTION_POINTER_ID_SHIFT); + final int t = type; + + for (int i = 0; i < ev.getPointerCount (); i++) { + + final int id = ev.getPointerId (i); + final float x = ev.getX (i); + final float y = ev.getY (i); + final float sizeX = ev.getSize (i); + final float sizeY = ev.getSize (i); + + if (type == etTouchMove || i == idx) { + + queueEvent (new Runnable () { + + public void run () { + + me.HandleResult (NME.onTouch (t, x, y, id, sizeX, sizeY)); + + } + + }); + + } + + } + + return true; + + } + + + @Override public boolean onTrackballEvent (final MotionEvent ev) { + + final MainView me = this; + + queueEvent (new Runnable () { + + public void run() { + + float x = ev.getX (); + float y = ev.getY (); + + me.HandleResult (NME.onTrackball (x, y)); + + } + + }); + + return false; + + } + + + void queuePoll () { + + final MainView me = this; + + queueEvent (new Runnable () { + + public void run () { + + me.onPoll (); + + } + + }); + + } + + + + static public void renderNow () { //Called directly from C++ + + mRefreshView.requestRender (); + + } + + + void sendActivity (final int inActivity) { + + queueEvent (new Runnable () { + + public void run () { + + NME.onActivity (inActivity); + + } + + }); + + } + + + public int translateKey(int inCode, KeyEvent event) { + + switch (inCode) { + + case KeyEvent.KEYCODE_BACK: return 27; /* Fake Escape */ + case KeyEvent.KEYCODE_MENU: return 0x01000012; /* Fake MENU */ + case KeyEvent.KEYCODE_DEL: return 8; + + } + + int result = event.getUnicodeChar (event.getMetaState ()); + + if (result == KeyCharacterMap.COMBINING_ACCENT) { + + //TODO + return 0; + + } + + return result; + + } + + + + + private static class Renderer implements GLSurfaceView.Renderer { + + + MainView mMainView; + + + public Renderer (MainView inView) { + + mMainView = inView; + + } + + + public void onDrawFrame (GL10 gl) { + + mMainView.HandleResult (NME.onRender ()); + Sound.checkSoundCompletion (); + + } + + + public void onSurfaceChanged (GL10 gl, int width, int height) { + + mMainView.HandleResult (NME.onResize (width, height)); + + } + + + public void onSurfaceCreated (GL10 gl, EGLConfig config) { + + + + } + + } + + +} \ No newline at end of file diff --git a/buildfiles/android/template/src/org/haxe/nme/NME.java b/buildfiles/android/template/src/org/haxe/nme/NME.java deleted file mode 100644 index c13e1c4ae..000000000 --- a/buildfiles/android/template/src/org/haxe/nme/NME.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.haxe.nme; - -// Wrapper for native library - -public class NME { - - static { - System.loadLibrary("nme"); - } - - public static final int ACTIVATE = 1; - public static final int DEACTIVATE = 2; - public static final int DESTROY = 3; - - public static native int onDeviceOrientationUpdate(int orientation); - public static native int onNormalOrientationFound(int orientation); - public static native int onOrientationUpdate(float x, float y, float z); - public static native int onAccelerate(float x, float y, float z); - public static native int onTouch(int type, float x, float y, int id, float sizeX, float sizeY); - public static native int onResize(int width, int height); - public static native int onTrackball(float x,float y); - public static native int onJoyChange(int inDeviceID, int inCode, boolean inIsDown); - public static native int onKeyChange(int inCode, boolean inIsDown); - public static native int onRender(); - public static native int onPoll(); - public static native double getNextWake(); - public static native int onActivity(int inState); - public static native void onCallback(long inHandle); - public static native Object callObjectFunction(long inHandle,String function, Object[] args); - public static native double callNumericFunction(long inHandle,String function, Object[] args); - public static native void releaseReference(long inHandle); -} diff --git a/buildfiles/android/template/src/org/haxe/nme/Value.java b/buildfiles/android/template/src/org/haxe/nme/Value.java deleted file mode 100644 index 0bb9c441b..000000000 --- a/buildfiles/android/template/src/org/haxe/nme/Value.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.haxe.nme; - -public class Value -{ - double mValue; - - public Value(double inValue) { mValue = inValue; } - public Value(int inValue) { mValue = inValue; } - public Value(short inValue) { mValue = inValue; } - public Value(char inValue) { mValue = inValue; } - public Value(boolean inValue) { mValue = inValue ? 1.0 : 0.0; } - - public double getDouble() { return mValue; } -} - - diff --git a/buildfiles/blackberry/hxml/debug.hxml b/buildfiles/blackberry/hxml/debug.hxml index 2e298b039..ff8d7b279 100644 --- a/buildfiles/blackberry/hxml/debug.hxml +++ b/buildfiles/blackberry/hxml/debug.hxml @@ -1,6 +1,7 @@ --main ApplicationMain ::HAXE_FLAGS:: --cp ::BUILD_DIR::/blackberry/cpp/haxe --cpp ::CPP_DIR:: ---macro allowPackage("flash") --D blackberry +-main ApplicationMain ::HAXE_FLAGS:: +-cp ::BUILD_DIR::/blackberry/cpp/haxe +-cpp ::CPP_DIR:: +--macro allowPackage("flash") +--macro keep("::APP_MAIN::") +-D blackberry -debug \ No newline at end of file diff --git a/buildfiles/blackberry/hxml/release.hxml b/buildfiles/blackberry/hxml/release.hxml index d4af858f0..6fcacdf83 100644 --- a/buildfiles/blackberry/hxml/release.hxml +++ b/buildfiles/blackberry/hxml/release.hxml @@ -1,5 +1,6 @@ --main ApplicationMain ::HAXE_FLAGS:: --cp ::BUILD_DIR::/blackberry/cpp/haxe --cpp ::CPP_DIR:: ---macro allowPackage("flash") +-main ApplicationMain ::HAXE_FLAGS:: +-cp ::BUILD_DIR::/blackberry/cpp/haxe +-cpp ::CPP_DIR:: +--macro allowPackage("flash") +--macro keep("::APP_MAIN::") -D blackberry \ No newline at end of file diff --git a/buildfiles/blackberry/template/bar-descriptor.xml b/buildfiles/blackberry/template/bar-descriptor.xml index dc7a021cb..79014cf62 100644 --- a/buildfiles/blackberry/template/bar-descriptor.xml +++ b/buildfiles/blackberry/template/bar-descriptor.xml @@ -1,39 +1,39 @@ - - - - ::APP_PACKAGE:: - ::APP_TITLE:: - ::APP_DESCRIPTION:: - - ::APP_COMPANY:: - ::BLACKBERRY_AUTHOR_ID:: - - ::APP_VERSION:: - ::APP_BUILD_NUMBER:: - - - - none - false - - ::if (WIN_ORIENTATION == "landscape")::falselandscape::end:: - ::if (WIN_ORIENTATION == "portrait")::falseportrait::end:: - - - - - - run_native - - core.games - - ::APP_FILE_SAFE:: - . - - ::if (HAS_ICON):: - ::foreach ICONS:: ::__current__:: - ::end::::end:: - - - + + + + ::APP_PACKAGE:: + ::APP_TITLE:: + ::APP_DESCRIPTION:: + + ::APP_COMPANY:: + ::BLACKBERRY_AUTHOR_ID:: + + ::APP_VERSION:: + ::APP_BUILD_NUMBER:: + + + + none + false + + ::if (WIN_ORIENTATION == "landscape")::falselandscape::end:: + ::if (WIN_ORIENTATION == "portrait")::falseportrait::end:: + + + + + + run_native + + core.games + + ::APP_FILE_SAFE:: + . + + ::if (HAS_ICON):: + ::foreach ICONS:: ::__current__:: + ::end::::end:: + + + \ No newline at end of file diff --git a/buildfiles/blackberry/template/config.xml b/buildfiles/blackberry/template/config.xml index ffad59c25..628798d4b 100644 --- a/buildfiles/blackberry/template/config.xml +++ b/buildfiles/blackberry/template/config.xml @@ -1,45 +1,45 @@ - - - - - ::APP_COMPANY:: - - ::APP_TITLE:: - - ::APP_DESCRIPTION:: - - - - - -::if (HAS_ICON)::::foreach ICONS:: ::end::::end:: - - - - - - - - ::if (WIN_ORIENTATION == "landscape"):: - - ::end:: - - ::if (WIN_ORIENTATION == "portrait"):: - - ::end:: - - - - - - - - - + + + + + ::APP_COMPANY:: + + ::APP_TITLE:: + + ::APP_DESCRIPTION:: + + + + + +::if (HAS_ICON)::::foreach ICONS:: ::end::::end:: + + + + + + + + ::if (WIN_ORIENTATION == "landscape"):: + + ::end:: + + ::if (WIN_ORIENTATION == "portrait"):: + + ::end:: + + + + + + + + + \ No newline at end of file diff --git a/buildfiles/emscripten/cpp/Main.cpp b/buildfiles/emscripten/cpp/Main.cpp index 9116667ab..f6e262420 100644 --- a/buildfiles/emscripten/cpp/Main.cpp +++ b/buildfiles/emscripten/cpp/Main.cpp @@ -1,41 +1,41 @@ -/* - * Main.mm - * - * Boot code for NME. - * - */ - -#include - -extern "C" const char *hxRunLibrary(); -extern "C" void hxcpp_set_top_of_stack(); - -::foreach ndlls:: - ::if (registerStatics):: - extern "C" int ::name::_register_prims(); - ::end:: -::end:: - -extern "C" int main(int argc, char *argv[]) -{ - //printf("Starting ...\n" ); - hxcpp_set_top_of_stack(); - - ::foreach ndlls:: - ::if (registerStatics):: - ::name::_register_prims(); - ::end:: - ::end:: - - //printf("Running\n"); - - const char *err = NULL; - err = hxRunLibrary(); - if (err) { - printf(" Error %s\n", err ); - return -1; - } - - //printf("Done!\n"); - return 0; -} +/* + * Main.mm + * + * Boot code for NME. + * + */ + +#include + +extern "C" const char *hxRunLibrary(); +extern "C" void hxcpp_set_top_of_stack(); + +::foreach ndlls:: + ::if (registerStatics):: + extern "C" int ::name::_register_prims(); + ::end:: +::end:: + +extern "C" int main(int argc, char *argv[]) +{ + //printf("Starting ...\n" ); + hxcpp_set_top_of_stack(); + + ::foreach ndlls:: + ::if (registerStatics):: + ::name::_register_prims(); + ::end:: + ::end:: + + //printf("Running\n"); + + const char *err = NULL; + err = hxRunLibrary(); + if (err) { + printf(" Error %s\n", err ); + return -1; + } + + //printf("Done!\n"); + return 0; +} diff --git a/buildfiles/emscripten/hxml/debug.hxml b/buildfiles/emscripten/hxml/debug.hxml index 4c6d923af..243cd84f7 100644 --- a/buildfiles/emscripten/hxml/debug.hxml +++ b/buildfiles/emscripten/hxml/debug.hxml @@ -1,8 +1,9 @@ --main ApplicationMain ::HAXE_FLAGS:: --cp ::BUILD_DIR::/emscripten/haxe --cpp ::CPP_DIR:: ---macro allowPackage("flash") --lib openfl-native --D emscripten --D webgl +-main ApplicationMain ::HAXE_FLAGS:: +-cp ::BUILD_DIR::/emscripten/haxe +-cpp ::CPP_DIR:: +--macro allowPackage("flash") +--macro keep("::APP_MAIN::") +-lib openfl-native +-D emscripten +-D webgl -debug \ No newline at end of file diff --git a/buildfiles/emscripten/hxml/release.hxml b/buildfiles/emscripten/hxml/release.hxml index 0cdbb1ba6..92bf816b4 100644 --- a/buildfiles/emscripten/hxml/release.hxml +++ b/buildfiles/emscripten/hxml/release.hxml @@ -1,7 +1,8 @@ --main ApplicationMain ::HAXE_FLAGS:: --cp ::BUILD_DIR::/emscripten/haxe --cpp ::CPP_DIR:: ---macro allowPackage("flash") --lib openfl-native --D emscripten +-main ApplicationMain ::HAXE_FLAGS:: +-cp ::BUILD_DIR::/emscripten/haxe +-cpp ::CPP_DIR:: +--macro allowPackage("flash") +--macro keep("::APP_MAIN::") +-lib openfl-native +-D emscripten -D webgl \ No newline at end of file diff --git a/buildfiles/emscripten/template/decompress.js b/buildfiles/emscripten/template/decompress.js index a2062f957..cb0e9d71c 100644 --- a/buildfiles/emscripten/template/decompress.js +++ b/buildfiles/emscripten/template/decompress.js @@ -1,54 +1,54 @@ -/*// This is lzma.js, powered by lzip (which is GPL, source code at https://github.com/kripken/lzma.js) -var LZMA = { - run: function(data, decompress) { - var inputIndex = 0; - var returnValue = []; - var Module = { - arguments: ['-q'].concat(decompress ? ['-d'] : []), - stdin: function() { return inputIndex < data.length ? data[inputIndex++] : null }, - stdout: function(x) { if (x !== null) returnValue.push(x) }, - stderr: function(x) { } - }; - - -function b(a){throw a}var aa=void 0,k=!0,ca=null,l=!1,ea=[],pa=true,ya="object"===typeof window,za="function"===typeof importScripts,Ca=!ya&&!pa&&!za;if(pa){print=(function(a){process.stdout.write(a+"\n")});printErr=(function(a){process.stderr.write(a+"\n")});var Da=require("fs");read=(function(a){var c=Da.readFileSync(a).toString();!c&&"/"!=a[0]&&(a=__dirname.split("/").slice(0,-1).join("/")+"/src/"+a,c=Da.readFileSync(a).toString());return c});load=(function(a){Ra(read(a))});ea=process.argv.slice(2)}else{Ca?(this.read||(this.read=(function(a){snarf(a)})),"undefined"!=typeof scriptArgs?ea=scriptArgs:"undefined"!=typeof arguments&&(ea=arguments)):ya?(this.print=printErr=(function(a){console.log(a)}),this.read=(function(a){var c=new XMLHttpRequest;c.open("GET",a,l);c.send(ca);return c.responseText}),this.arguments&&(ea=arguments)):za?this.load=importScripts:b("Unknown runtime environment. Where are we?")}function Ra(a){eval.call(ca,a)}"undefined"==typeof load&&"undefined"!=typeof read&&(this.load=(function(a){Ra(read(a))}));"undefined"===typeof printErr&&(this.printErr=(function(){}));"undefined"===typeof print&&(this.print=printErr);try{this.Module=Module}catch(ab){this.Module=Module={}}Module.arguments||(Module.arguments=ea);Module.print&&(print=Module.print);function nb(a){if(1==ob){return 1}var c={"%i1":1,"%i8":1,"%i16":2,"%i32":4,"%i64":8,"%float":4,"%double":8}["%"+a];c||("*"==a[a.length-1]?c=ob:"i"==a[0]&&(a=parseInt(a.substr(1)),qb(0==a%8),c=a/8));return c}function zb(a){var c=m;m+=a;m=m+3>>2<<2;return c}function Bb(a){var c=Cb;Cb+=a;Cb=Cb+3>>2<<2;if(Cb>=Db){for(;Db<=Cb;){Db=2*Db+4095>>12<<12}var a=n,d=new ArrayBuffer(Db);n=new Int8Array(d);Rb=new Int16Array(d);p=new Int32Array(d);w=new Uint8Array(d);Sb=new Uint16Array(d);x=new Uint32Array(d);Ub=new Float32Array(d);Vb=new Float64Array(d);n.set(a)}return c}var ob=4,Wb={},Xb,z,C,Yb;function ac(a){print(a+":\n"+Error().stack);b("Assertion: "+a)}function qb(a,c){a||ac("Assertion failed: "+c)}var bc=this;Module.ccall=(function(a,c,d,e){try{var f=eval("_"+a)}catch(g){try{f=bc.Module["_"+a]}catch(h){}}qb(f,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");var i=0,a=e?e.map((function(a){if("string"==d[i++]){var c=m;zb(a.length+1);cc(a,c);a=c}return a})):[];return(function(a,c){return"string"==c?dc(a):a})(f.apply(ca,a),c)});function ec(a,c,d){d=d||"i8";"*"===d[d.length-1]&&(d="i32");switch(d){case"i1":n[a]=c;break;case"i8":n[a]=c;break;case"i16":Rb[a>>1]=c;break;case"i32":p[a>>2]=c;break;case"i64":p[a>>2]=c;break;case"float":Ub[a>>2]=c;break;case"double":fc[0]=c;p[a>>2]=jc[0];p[a+4>>2]=jc[1];break;default:ac("invalid type for setValue: "+d)}}Module.setValue=ec;Module.getValue=(function(a,c){c=c||"i8";"*"===c[c.length-1]&&(c="i32");switch(c){case"i1":return n[a];case"i8":return n[a];case"i16":return Rb[a>>1];case"i32":return p[a>>2];case"i64":return p[a>>2];case"float":return Ub[a>>2];case"double":return jc[0]=p[a>>2],jc[1]=p[a+4>>2],fc[0];default:ac("invalid type for setValue: "+c)}return ca});var kc=1,E=2;Module.ALLOC_NORMAL=0;Module.ALLOC_STACK=kc;Module.ALLOC_STATIC=E;function F(a,c,d){var e,f;"number"===typeof a?(e=k,f=a):(e=l,f=a.length);var g="string"===typeof c?c:ca,d=[nc,zb,Bb][d===aa?E:d](Math.max(f,g?1:c.length));if(e){return oc(d,0,f),d}e=0;for(var h;e>2);Ub.subarray(xc>>2);var fc=Vb.subarray(xc>>3);rc=xc+8;Cb=rc+4095>>12<<12;function yc(a){for(;0=c?2*Math.abs(1<=a){return a}var d=32>=c?Math.abs(1<=d&&(32>=c||a>d)){a=-2*d+a}return a}function Hc(a,c,d){var e=0>(d|0)?-1:0,f=(d>>>0)+4294967296*(e|0)+(a>>>0)+4294967296*(c|0)>>>0,a=Math.min(Math.floor(((d>>>0)+4294967296*(e|0)+(a>>>0)+4294967296*(c|0))/4294967296),4294967295);return[f,a]}function Ic(a,c,d){var e=0>(d|0)?-1:0,f=(d>>>0)+4294967296*(e|0)+(a>>>0)+4294967296*(c|0)>>>0,a=Math.min(Math.floor(((d>>>0)+4294967296*(e|0)+(a>>>0)+4294967296*(c|0))/4294967296),4294967295);return[f,a]}function Jc(a,c,d){var e=0<(d|0);a:do{if(e){for(var f=0,g=p[a>>2];;){if(g=p[Kc+((w[c+f|0]&255^g&255)<<2)>>2]^g>>>8,p[a>>2]=g,f=f+1|0,(f|0)==(d|0)){break a}}}}while(0)}function Lc(a,c,d){n[a+12|0]=c&255;n[a+13|0]=(c>>>8|d<<24)&255;n[a+14|0]=(c>>>16|d<<16)&255;n[a+15|0]=(c>>>24|d<<8)&255;n[a+16|0]=d&255;n[a+17|0]=(d>>>8|0)&255;n[a+18|0]=(d>>>16|0)&255;n[a+19|0]=(d>>>24|0)&255}function Mc(a){var c=n[a+11|0],d=n[a+10|0]|c<<8|0,e=n[a+9|0]|d<<8|0,f=n[a+8|0]|e<<8|0,g=n[a+7|0]|f<<8|0,h=n[a+6|0]|g<<8|0,i=n[a+5|0]|h<<8|0;return[n[a+4|0]|i<<8|0,0|((((((0|c>>>24)<<8|d>>>24)<<8|e>>>24)<<8|f>>>24)<<8|g>>>24)<<8|h>>>24)<<8|i>>>24]}Mc.X=1;function Nc(a){var c=n[a+19|0],d=n[a+18|0]|c<<8|0,e=n[a+17|0]|d<<8|0,f=n[a+16|0]|e<<8|0,g=n[a+15|0]|f<<8|0,h=n[a+14|0]|g<<8|0,i=n[a+13|0]|h<<8|0;return[n[a+12|0]|i<<8|0,0|((((((0|c>>>24)<<8|d>>>24)<<8|e>>>24)<<8|f>>>24)<<8|g>>>24)<<8|h>>>24)<<8|i>>>24]}Nc.X=1;function Oc(a,c,d){p[Pc>>2]=0;var e=d;a:for(;;){var f=c+(d-e)|0;if(0>=(e|0)){var g=0;break}for(;;){p[Pc>>2]=0;var h=Qc(a,f,e);if(0<(h|0)){break}if(0==(h|0)){g=e;break a}if(4!=(p[Pc>>2]|0)&&11!=(p[Pc>>2]|0)){g=e;break a}}e=e-h|0}return d-g|0}function Rc(a,c,d){p[Pc>>2]=0;var e=d;a:for(;;){var f=c+(d-e)|0;if(0>=(e|0)){var g=0;break}for(;;){p[Pc>>2]=0;var h=Sc(a,f,e);if(0<(h|0)){break}if(0!=(p[Pc>>2]|0)&&4!=(p[Pc>>2]|0)&&11!=(p[Pc>>2]|0)){g=e;break a}}e=e-h|0}return d-g|0}function Tc(a){var c,d;d=(a+20|0)>>2;c=(a+24|0)>>2;var e=p[c],f=p[d]-e|0;if(0<(f|0)){var g=a+16|0;Jc(a+28|0,p[g>>2]+e|0,f);e=p[a+32>>2];-1<(e|0)&&(Rc(e,p[g>>2]+p[c]|0,f)|0)!=(f|0)&&Uc(-1);f=p[d];if((f|0)<(p[a+12>>2]|0)){d=f}else{var g=0>(f|0)?-1:0,a=(a|0)>>2,h=p[a],i=p[a+1],e=(h>>>0)+4294967296*(i|0)+(f>>>0)+4294967296*(g|0)>>>0,f=Math.min(Math.floor(((h>>>0)+4294967296*(i|0)+(f>>>0)+4294967296*(g|0))/4294967296),4294967295);p[a]=e;p[a+1]=f;d=p[d]=0}p[c]=d}}function Vc(a){var c,d=m;m+=20;var e=a+36|0,f=0<(p[e>>2]|0)?20:12;c=(a+40|0)>>2;for(var g=p[c],h=g|0,g=Hc(p[h>>2],p[h+4>>2],p[g+12>>2]),h=g[0],i=g[1],j=0>(f|0)?-1:0,g=(h>>>0)+4294967296*(i|0)+(f>>>0)+4294967296*(j|0)>>>0,h=Math.min(Math.floor(((h>>>0)+4294967296*(i|0)+(f>>>0)+4294967296*(j|0))/4294967296),4294967295),j=i=0;(i|0)<(f|0);){if(0!=(j&1)<<24>>24){break}if(Wc(p[c])){oc(d+i|0,0,f-i|0),i=f,j=1}else{var o=Xc(p[c]);n[d+i|0]=o}i=i+1|0}0==(p[e>>2]|0)&&Lc(d,g,h);0==(p[p[c]+20>>2]|0)?c=j:(Yc(K.L|0),c=1);e=(w[d|0]&255|(w[d+1|0]&255|(w[d+2|0]&255|(w[d+3|0]&255)<<8)<<8)<<8|0)==(p[a+28>>2]^-1|0);i=Mc(d);f=i[0];i=i[1];j=a|0;a=Ic(p[j>>2],p[j+4>>2],p[a+20>>2]);j=Nc(d);a=(j[0]==g&&j[1]==h)&(f==a[0]&&i==a[1])&e&0==(c&1)<<24>>24;m=d;return a}Vc.X=1;function Wc(a){var c;if((p[a+12>>2]|0)<(p[a+16>>2]|0)){c=0}else{var d=a+32|0;if(0==(n[d]&1)<<24>>24){c=Oc(p[a+28>>2],p[a+8>>2],16384);var e=a+16|0;p[e>>2]=c;16384!=(c|0)&&0!=(p[Pc>>2]|0)&&Uc(-1);c=x[e>>2];n[d]=16384>(c|0)&1;var d=a+12|0,e=p[d>>2],f=0>(e|0)?-1:0,a=(a|0)>>2,g=p[a],h=p[a+1],i=(g>>>0)+4294967296*(h|0)+(e>>>0)+4294967296*(f|0)>>>0,e=Math.min(Math.floor(((g>>>0)+4294967296*(h|0)+(e>>>0)+4294967296*(f|0))/4294967296),4294967295);p[a]=i;p[a+1]=e;d=p[d>>2]=0}else{d=p[a+12>>2],c=p[a+16>>2]}c=(d|0)<(c|0)^1}return c}function Xc(a){if(Wc(a)){a=85}else{var c=a+12|0,d=p[c>>2];p[c>>2]=d+1|0;a=n[p[a+8>>2]+d|0]}return a}function Zc(a){var c,d=m;m+=29280;for(var e,f=d+192,g=d+240,h=d+288,i=d+336,j=d+384,o=d+576,u=d+1600,q=d+2060,t=d+2124,s=d+3412,B=d+4700,v=d+29276,y=d+192|0,A=d|0;;){T(A);var r=A+4|0;if((r|0)==(y|0)){break}A=r}T(f|0);T(f+4|0);T(f+8|0);T(f+12|0);T(f+16|0);T(f+20|0);T(f+24|0);T(f+28|0);T(f+32|0);T(f+36|0);T(f+40|0);T(f+44|0);T(g|0);T(g+4|0);T(g+8|0);T(g+12|0);T(g+16|0);T(g+20|0);T(g+24|0);T(g+28|0);T(g+32|0);T(g+36|0);T(g+40|0);T(g+44|0);T(h|0);T(h+4|0);T(h+8|0);T(h+12|0);T(h+16|0);T(h+20|0);T(h+24|0);T(h+28|0);T(h+32|0);T(h+36|0);T(h+40|0);T(h+44|0);T(i|0);T(i+4|0);T(i+8|0);T(i+12|0);T(i+16|0);T(i+20|0);T(i+24|0);T(i+28|0);T(i+32|0);T(i+36|0);T(i+40|0);T(i+44|0);for(var D=j+192|0,L=j|0;;){T(L);var H=L+4|0;if((H|0)==(D|0)){break}L=H}for(var P=o+1024|0,J=o|0;;){T(J);var G=J+4|0;if((G|0)==(P|0)){break}J=G}for(var I=u+460|0,M=u|0;;){T(M);var O=M+4|0;if((O|0)==(I|0)){break}M=O}var N=q|0;T(N);T(q+4|0);T(q+8|0);T(q+12|0);T(q+16|0);T(q+20|0);T(q+24|0);T(q+28|0);T(q+32|0);T(q+36|0);T(q+40|0);T(q+44|0);T(q+48|0);T(q+52|0);T(q+56|0);T(q+60|0);$c(t);$c(s);for(var Q=B+24576|0,$=B|0;;){T($);var ha=$+4|0;if((ha|0)==(Q|0)){break}$=ha}n[v|0]=0;c=(a+40|0)>>2;ad(p[c]);var ba=a+8|0,R=a+20|0,Sa=a|0,fa=v|0,U=0,qa=0,Aa=0,da=0;a:for(;;){b:for(;;){if(Wc(p[c])){Tc(a);var Ea=2;break a}var ra=Sa|0,pb=Sa+4|0,bb=Ic(p[ra>>2],p[pb>>2],p[R>>2])[0]&3,Eb=w[fa],sa=Eb&255;if(0==(bd(p[c],(sa<<4)+(bb<<2)+d|0)|0)){var Fa,Zb=p[a+20>>2];Fa=n[p[a+16>>2]+((0<(Zb|0)?Zb:p[a+12>>2])-1)|0];var ga=p[c];if(7>(Eb&255)){var ta=fd(ga,B+3072*((Fa&255)>>5)|0,8)&255;gd(a,ta)}else{for(var ia=p[a+20>>2]-U-1|0,La=ga,cb=B+3072*((Fa&255)>>5)|0,db=n[p[a+16>>2]+(0>(ia|0)?p[a+12>>2]+ia|0:ia)|0]&255,Fb=aa,ja=7,rb=1;;){if(-1>=(ja|0)){var Ga=rb,Fb=7;break}var sb=db>>>(ja>>>0)&1,tb=bd(La,((sb<<8)+rb+256<<2)+cb|0),Ta=tb|rb<<1;if((sb|0)!=(tb|0)){Fb=4;break}ja=ja-1|0;rb=Ta}c:do{if(4==Fb){if(0<(ja|0)){for(var Ma=Ta,Ua=ja;;){var ub=Ua-1|0,eb=Ma<<1,vb=bd(La,(Ma<<2)+cb|0)|eb;if(0>=(ub|0)){Ga=vb;break c}Ma=vb;Ua=ub}}else{Ga=Ta}}}while(0);gd(a,Ga&255)}hd(v)}else{var Na=bd(p[c],(sa<<2)+f|0),Va=x[c];if(1==(Na|0)){var Nb=1==(bd(Va,(sa<<2)+g|0)|0),Gb=p[c];do{if(!Nb){if(0!=(bd(Gb,(sa<<4)+(bb<<2)+j|0)|0)){var Hb=U,Ib=qa,Wa=Aa,Y=da;break}id(v);var na=U,ka=qa,ua=Aa,va=da,fb=1;e=37;break b}if(0==(bd(Gb,(sa<<2)+h|0)|0)){Hb=qa,Ib=U,Wa=Aa,Y=da}else{var Oa=0==(bd(p[c],(sa<<2)+i|0)|0),gb=Oa?da:Aa,Hb=Oa?Aa:da,Ib=U,Wa=qa,Y=gb}}while(0);jd(v);var Ob=kd(s,p[c],bb),na=Hb,ka=Ib,ua=Wa,va=Y,fb=Ob+2|0;e=37;break}var S=kd(t,Va,bb),oa=S+2|0,Xa=fd(p[c],(ld(oa)<<8)+o|0,6);if(4>(Xa|0)){var la=Xa;e=33;break}var wa=Xa>>1,ma=wa-1|0,Ya=(Xa&1|2)<(Xa|0)){la=md(Jb,(Ya-Xa<<2)+u|0,ma)+Ya|0;e=33;break}var wb=Jb,Za=wa-5|0,Ha=aa,Ia=aa,Pa=0<(Za|0);c:do{if(Pa){for(var Ia=(wb+24|0)>>2,Ha=(wb+20|0)>>2,hb=0,ib=Za,Qa=p[Ia];;){var xa=hb<<1;if(16777216>Qa>>>0){p[Ia]=Qa<<7;var Ja=p[Ha]<<8,jb=Xc(wb)&255|Ja;p[Ha]=jb;var Ba=x[Ia];if(jb>>>0>>0){var $a=xa,xb=Ba}else{p[Ha]=jb-Ba|0,$a=xa|1,xb=Ba}}else{var kb=Qa>>>1;p[Ia]=kb;var yb=x[Ha];yb>>>0>>0?$a=xa:(p[Ha]=yb-kb|0,$a=xa|1);xb=kb}var Kb=ib-1|0;if(0>=(Kb|0)){var Lb=$a;break c}hb=$a;ib=Kb;Qa=xb}}else{Lb=0}}while(0);var Pb=Lb<<4,Qb=md(p[c],N,4),Ka=Pb+Ya+Qb|0;if(-1!=(Ka|0)){la=Ka;e=33;break}nd(p[c]);Tc(a);if(0==(S|0)){Ea=Vc(a)?0:3;break a}if(3!=(oa|0)){Ea=4;break a}ad(p[c])}}do{if(33==e){od(v);if(la>>>0>2]>>>0){if(la>>>0>2]>>>0){na=la;ka=U;ua=qa;va=Aa;fb=oa;break}ra=Sa|0;pb=Sa+4|0;if(!(0==p[ra>>2]&&0==p[pb>>2])){na=la;ka=U;ua=qa;va=Aa;fb=oa;break}}Tc(a);Ea=1;break a}}while(0);pd(a,na,fb);U=na;qa=ka;Aa=ua;da=va}m=d;return Ea}Zc.X=1;function ad(a){var c;c=(a+20|0)>>2;p[c]=0;p[a+24>>2]=-1;var d=Xc(a)&255;p[c]=d;d=Xc(a)&255|d<<8;p[c]=d;d=Xc(a)&255|d<<8;p[c]=d;d=Xc(a)&255|d<<8;p[c]=d;d<<=8;a=Xc(a);p[c]=a&255|d}function ld(a){a=a-2|0;return 3<(a|0)?3:a}function hd(a){a|=0;n[a]=n[K.J+(w[a]&255)|0]}function id(a){a|=0;n[a]=n[K.H+(w[a]&255)|0]}function jd(a){a|=0;n[a]=n[K.I+(w[a]&255)|0]}function od(a){a|=0;n[a]=n[K.K+(w[a]&255)|0]}function T(a){p[a>>2]=1024}function bd(a,c){var d,e;nd(a);e=(a+24|0)>>2;var f=x[e];d=(c|0)>>2;var g=(f>>>11)*p[d]|0,h=a+20|0,i=x[h>>2];i>>>0>>0?(p[e]=g,f=x[d],e=0,f=((2048-f|0)>>>5)+f|0):(p[e]=f-g|0,p[h>>2]=i-g|0,f=x[d],e=1,f=f-(f>>>5)|0);p[d]=f;return e}function gd(a,c){var d;d=(a+20|0)>>2;n[p[a+16>>2]+p[d]|0]=c;var e=p[d]+1|0;p[d]=e;(e|0)<(p[a+12>>2]|0)||Tc(a)}function kd(a,c,d){return 0==(bd(c,a|0)|0)?fd(c,(d<<5)+a+8|0,3):0==(bd(c,a+4|0)|0)?fd(c,(d<<5)+a+136|0,3)+8|0:fd(c,a+264|0,8)+16|0}function fd(a,c,d){var e=0<(d|0);a:do{if(e){for(var f=1,g=d;;){var h=f<<1,f=bd(a,(f<<2)+c|0)|h,g=g-1|0;if(0>=(g|0)){var i=f;break a}}}else{i=1}}while(0);return i-(1<>2];16777216>d>>>0&&(p[c>>2]=d<<8,c=a+20|0,d=p[c>>2]<<8,a=Xc(a)&255|d,p[c>>2]=a)}function pd(a,c,d){var e,f;e=(a+20|0)>>2;var g=p[e],h=g-c-1|0,c=(a+12|0)>>2;f=p[c];h=h+(0>(h|0)?f:0)|0;(f-((g|0)>(h|0)?g:h)|0)>(d|0)?(f=g-h|0,((-1<(f|0)?f:-f|0)|0)<(d|0)?f=3:(f=p[a+16>>2],qd(f+g|0,f+h|0,d),p[e]=p[e]+d|0,f=10)):f=3;a:do{if(3==f&&0<(d|0)){for(var i=a+16|0,j=d,o=h,u=g;;){var q=p[i>>2];n[q+u|0]=n[q+o|0];u=p[e]+1|0;p[e]=u;q=p[c];(u|0)<(q|0)?u=q:(Tc(a),u=p[c]);o=o+1|0;j=j-1|0;if(0>=(j|0)){break a}o=(o|0)<(u|0)?o:0;u=p[e]}}}while(0)}pd.X=1;function $c(a){T(a|0);T(a+4|0);T(a+8|0);T(a+12|0);T(a+16|0);T(a+20|0);T(a+24|0);T(a+28|0);T(a+32|0);T(a+36|0);T(a+40|0);T(a+44|0);T(a+48|0);T(a+52|0);T(a+56|0);T(a+60|0);T(a+64|0);T(a+68|0);T(a+72|0);T(a+76|0);T(a+80|0);T(a+84|0);T(a+88|0);T(a+92|0);T(a+96|0);T(a+100|0);T(a+104|0);T(a+108|0);T(a+112|0);T(a+116|0);T(a+120|0);T(a+124|0);T(a+128|0);T(a+132|0);T(a+136|0);T(a+140|0);T(a+144|0);T(a+148|0);T(a+152|0);T(a+156|0);T(a+160|0);T(a+164|0);T(a+168|0);T(a+172|0);T(a+176|0);T(a+180|0);T(a+184|0);T(a+188|0);T(a+192|0);T(a+196|0);T(a+200|0);T(a+204|0);T(a+208|0);T(a+212|0);T(a+216|0);T(a+220|0);T(a+224|0);T(a+228|0);T(a+232|0);T(a+236|0);T(a+240|0);T(a+244|0);T(a+248|0);T(a+252|0);T(a+256|0);T(a+260|0);for(var c=a+1288|0,a=a+264|0;!(T(a),a=a+4|0,(a|0)==(c|0));){}}$c.X=1;function rd(a,c,d,e){var f,g=a>>2,h=a|0;p[h>>2]=0;p[h+4>>2]=0;var h=a+12|0,i=sd(5505024);p[h>>2]=i;p[g+7]=0;p[g+8]=0;i=a+36|0;p[i>>2]=0;p[g+11]=d;p[g+12]=273>(d|0)?d/2+16|0:256;p[g+13]=e;e=a+56|0;n[e]=0;var j=(c<<1)+4370|0;f=65536>(c|0)?65536:c;d=(a+24|0)>>2;p[d]=f;var o=nc(f);f=(a+8|0)>>2;p[f]=o;0==(o|0)&&Uc(-1);td(a)&&0==(n[e]&1)<<24>>24&&(p[d]|0)<(j|0)&&(p[d]=j,j=0==(p[f]|0)?nc(j):ud(p[f],j),p[f]=j,0==(j|0)&&Uc(-1),td(a));0==(n[e]&1)<<24>>24?(p[g+5]=c,a=p[d]-273|0):(a=p[i>>2],(a|0)<(c|0)&&(c=4096>(a|0)?4096:a),p[g+5]=c,a=p[d]);p[g+10]=a;c=sd(4*(c<<1));p[g+4]=c;for(g=0;!(p[((g<<2)+p[h>>2]|0)>>2]=-1,g=g+1|0,1376256==(g|0));){}}rd.X=1;function td(a){var c,d=a+56|0,e=0==(n[d]&1)<<24>>24;c=(a+36|0)>>2;if(e){var f=p[c],e=p[a+24>>2];if((f|0)<(e|0)){e=e-f|0;f=Oc(p[a+52>>2],p[a+8>>2]+f|0,e);p[c]=p[c]+f|0;if((f|0)!=(e|0)&&0!=(p[Pc>>2]|0)){var g=nc(4);p[g>>2]=K.ea|0;vd(g,wd,0);b("Reached an unreachable!")}n[d]=(f|0)<(e|0)&1}}return(p[a+28>>2]|0)<(p[c]|0)}function xd(a){var c,d,e,f;e=(a+32|0)>>2;var g=p[e]+1|0;p[e]=g;f=(a+20|0)>>2;(g|0)<(p[f]|0)||(p[e]=0);e=(a+28|0)>>2;g=p[e]+1|0;p[e]=g;var h=(g|0)<(p[a+40>>2]|0);do{if(!h&&(d=(a+36|0)>>2,(g|0)>(p[d]|0)&&yd(K.O|0),0==(n[a+56|0]&1)<<24>>24)){var i=p[e]-p[f]-4097|0;c=p[a+8>>2];zd(c,c+i|0,p[d]-i|0);var j=i,o=0>(i|0)?-1:0;c=(a|0)>>2;var u=p[c],q=p[c+1],t=(u>>>0)+4294967296*(q|0)+(j>>>0)+4294967296*(o|0)>>>0,j=Math.min(Math.floor(((u>>>0)+4294967296*(q|0)+(j>>>0)+4294967296*(o|0))/4294967296),4294967295);p[c]=t;p[c+1]=j;p[e]=p[e]-i|0;p[d]=p[d]-i|0;d=a+12|0;for(c=0;!(t=(c<<2)+p[d>>2]|0,j=p[t>>2],-1<(j|0)&&(p[t>>2]=j-i|0),c=c+1|0,1376256==(c|0));){}d=p[f];c=0<(d<<1|0);a:do{if(c){t=a+16|0;j=0;for(o=d;;){if(u=(j<<2)+p[t>>2]|0,q=p[u>>2],-1<(q|0)&&(p[u>>2]=q-i|0,o=p[f]),j=j+1|0,(j|0)>=(o<<1|0)){break a}}}}while(0);td(a)}}while(0)}xd.X=1;function Ad(a,c){var d,e,f,g,h,i=c>>2,j;j=p[a+44>>2];h=(a+28|0)>>2;var o=x[h];g=p[a+36>>2]-o|0;if((j|0)>(g|0)){if(4>(g|0)){var u=0;j=38}else{var q=g;j=3}}else{q=j,j=3}do{if(3==j){u=a+20|0;g=p[u>>2];var t=o+1|0,s=(o|0)<(g|0)?0:t-g|0;g=(a+8|0)>>2;var B=x[g],v=B+o|0,y=w[v],A=w[B+t|0]&255,t=A|(y&255)<<8|1310720,y=p[Kc+((y&255)<<2)>>2]^A^(w[o+(B+2)|0]&255)<<8,A=y&262143|1048576,r=(y^p[Kc+((n[o+(B+3)|0]&255)<<2)>>2]<<5)&1048575,y=0!=(c|0);f=(a+12|0)>>2;if(y){j=p[p[f]+(t<<2)>>2];if((j|0)<(s|0)){p[i+2]=2147483647;var D=1}else{p[i+2]=o-1-j|0,D=2}j=p[p[f]+(A<<2)>>2];if((j|0)<(s|0)){j=10}else{if(n[p[g]+j|0]<<24>>24!=n[v]<<24>>24){j=10}else{p[i+3]=p[h]+(j^-1)|0;var L=3;j=11}}10==j&&(p[i+3]=2147483647,L=D);p[i+4]=2147483647;D=L;v=p[h]}else{D=1,v=o}p[((t<<2)+p[f]|0)>>2]=v;p[((A<<2)+p[f]|0)>>2]=p[h];var t=(r<<2)+p[f]|0,H=p[t>>2];p[t>>2]=p[h];t=a+16|0;e=p[t>>2];var v=a+32|0,P=p[v>>2]<<1,A=p[a+48>>2],J=r=f=0,G=((P|1)<<2)+e|0;e=(P<<2)+e|0;e>>=2;var I=H;a:for(;;){var M=A,H=f,O=D,N=J,P=G;d=P>>2;var Q=I;b:for(;;){var $=(Q|0)<(s|0);do{if(!$){var ha=M-1|0;if(0<=(ha|0)){for(M=p[g];;){var ba=(N|0)<(q|0);if(!ba){break}if(n[M+N+Q|0]<<24>>24!=n[B+N+o|0]<<24>>24){break}N=N+1|0}var $=p[h]-Q|0,R=y&(O|0)<(N|0);c:do{if(R){for(var Sa=$-1|0,fa=O;;){if(fa=fa+1|0,p[(fa<<2>>2)+i]=Sa,(fa|0)==(N|0)){var U=N;break c}}}else{U=O}}while(0);O=x[t>>2];R=p[v>>2];R=R-$+((R|0)<($|0)?p[u>>2]:0)<<1;$=(R<<2)+O|0;if(!ba){p[e]=p[$>>2];p[d]=p[O+((R|1)<<2)>>2];var qa=U;break a}if((w[M+N+Q|0]&255)<(w[B+N+o|0]&255)){p[e]=Q;e=((R|1)<<2)+O|0;d=p[e>>2];if((H|0)>=(N|0)){A=ha;f=H;D=U;J=r=N;G=P;e>>=2;I=d;continue a}A=ha;f=H;D=U;r=N;J=H;G=P;e>>=2;I=d;continue a}p[d]=Q;Q=p[$>>2];if((r|0)>=(N|0)){M=ha;H=N;O=U;P=$;d=P>>2;continue b}M=ha;H=N;O=U;N=r;P=$;d=P>>2;continue b}}}while(0);p[d]=-1;p[e]=-1;qa=O;break a}}y&&(u=c+12|0,g=p[u>>2],s=p[i+4],u=(g|0)>(s|0)?p[u>>2]=s:g,g=c+8|0,(p[g>>2]|0)>(u|0)&&(p[g>>2]=u));u=qa}}while(0);return u}Ad.X=1;function Bd(a,c,d,e){var f=d-2|0,g=a|0;8>(f|0)?(Cd(c,g,0),Dd(c,(e<<5)+a+8|0,f,3)):(Cd(c,g,1),g=a+4|0,16>(f|0)?(Cd(c,g,0),Dd(c,(e<<5)+a+136|0,d-10|0,3)):(Cd(c,g,1),Dd(c,a+264|0,d-18|0,8)));c=(e<<2)+a+5644|0;d=p[c>>2]-1|0;p[c>>2]=d;1>(d|0)&&Ed(a,e)}function Cd(a,c,d){var e;e=(a+24|0)>>2;var f=x[e],c=(c|0)>>2,g=(f>>>11)*p[c]|0;if(0==(d|0)){p[e]=g,f=x[c],f=((2048-f|0)>>>5)+f|0}else{var d=(a|0)>>2,h=p[d],i=p[d+1],j=(h>>>0)+4294967296*(i|0)+(g>>>0)+0>>>0,h=Math.min(Math.floor(((h>>>0)+4294967296*(i|0)+(g>>>0)+0)/4294967296),4294967295);p[d]=j;p[d+1]=h;p[e]=f-g|0;f=x[c];f=f-(f>>>5)|0}p[c]=f;c=x[e];16777216>c>>>0&&(p[e]=c<<8,Fd(a))}function Dd(a,c,d,e){var f=0<(e|0);a:do{if(f){for(var g=1<=(i|0)){break a}g>>=1}}}while(0)}function Ed(a,c){var d,e=a>>2,f=a|0,g=Gd(p[f>>2]);d=(a+5640|0)>>2;for(var h=(c<<5)+a+8|0,i=0;8>(i|0);){if((i|0)>=(p[d]|0)){break}p[((i<<2)+1288>>2)+e+(272*c|0)]=Hd(h,i,3)+g|0;i=i+1|0}f=Qd(p[f>>2]);h=(c<<5)+a+136|0;for(g=a+4|0;;){var j=p[d],o=(i|0)<(j|0);if(!(16>(i|0)&o)){break}p[((i<<2)+1288>>2)+e+(272*c|0)]=Gd(p[g>>2])+f+Hd(h,i-8|0,3)|0;i=i+1|0}a:do{if(o){for(var h=a+264|0,u=i;;){var q=Qd(p[g>>2])+f+Hd(h,u-16|0,8)|0;p[((u<<2)+1288>>2)+e]=q;p[((u<<2)+2376>>2)+e]=q;p[((u<<2)+3464>>2)+e]=q;p[((u<<2)+4552>>2)+e]=q;u=u+1|0;q=p[d];if((u|0)>=(q|0)){var t=q;break a}}}else{t=j}}while(0);p[((c<<2)+5644>>2)+e]=t}Ed.X=1;function Rd(a){var c=a>>2,a=a+2068|0;p[c+43305]=Sd(a,0,4);p[c+43306]=Sd(a,1,4);p[c+43307]=Sd(a,2,4);p[c+43308]=Sd(a,3,4);p[c+43309]=Sd(a,4,4);p[c+43310]=Sd(a,5,4);p[c+43311]=Sd(a,6,4);p[c+43312]=Sd(a,7,4);p[c+43313]=Sd(a,8,4);p[c+43314]=Sd(a,9,4);p[c+43315]=Sd(a,10,4);p[c+43316]=Sd(a,11,4);p[c+43317]=Sd(a,12,4);p[c+43318]=Sd(a,13,4);p[c+43319]=Sd(a,14,4);p[c+43320]=Sd(a,15,4);p[c+43321]=16}Rd.X=1;function Sd(a,c,d){var e=0<(d|0);a:do{if(e){for(var f=0,g=1,h=c,i=d;;){var j=h&1,h=h>>1,f=Td((g<<2)+a|0,j)+f|0,i=i-1|0;if(0>=(i|0)){var o=f;break a}g=j|g<<1}}else{o=0}}while(0);return o}function Ud(a){for(var c=a>>2,d=4;;){var e=n[V+d|0]&255,f=(e>>>1)-1|0,g=(e&1|2)<>2)+c]=e;p[((d<<2)+171684>>2)+c]=e;p[((d<<2)+172196>>2)+c]=e;p[((d<<2)+172708>>2)+c]=e;d=d+1|0;if(128==(d|0)){break}}d=a+38072|0;for(e=0;;){f=(e<<8)+a+584|0;for(g=0;;){var h=(g|0)<(p[d>>2]|0);if(!(14>(g|0)&h)){break}p[((g<<2)+170244>>2)+c+(58*e|0)]=Hd(f,g,6);g=g+1|0}a:do{if(h){for(var i=g;;){if(p[((i<<2)+170244>>2)+c+(58*e|0)]=Hd(f,i,6)+((i<<5)-320&-64)|0,i=i+1|0,(i|0)>=(p[d>>2]|0)){break a}}}}while(0);p[((e<<9)+171172>>2)+c]=p[c+(58*e|0)+42561];p[((e<<9)+171176>>2)+c]=p[c+(58*e|0)+42562];p[((e<<9)+171180>>2)+c]=p[c+(58*e|0)+42563];p[((e<<9)+171184>>2)+c]=p[c+(58*e|0)+42564];for(f=4;!(g=(e<<9)+(f<<2)+a+171172|0,p[g>>2]=p[g>>2]+p[(((n[V+f|0]&255)<<2)+170244>>2)+c+(58*e|0)]|0,f=f+1|0,128==(f|0));){}e=e+1|0;if(4==(e|0)){break}}}Ud.X=1;function Hd(a,c,d){c|=1<>1,f=Td((g<<2)+a|0,e&1)+f|0;if(1>=(g|0)){var h=f;break a}e=g}}else{h=0}}while(0);return h}function Vd(a){var c;c=(a+20|0)>>2;var d=p[c];if(0<(d|0)){var e=p[a+32>>2],f=-1<(e|0);do{if(f){var g=Rc(e,p[a+16>>2],d),h=p[c];if((g|0)==(h|0)){g=h;break}g=nc(4);p[g>>2]=K.W|0;vd(g,wd,0);b("Reached an unreachable!")}g=d}while(0);d=g;e=0>(g|0)?-1:0;a=(a+8|0)>>2;g=p[a];h=p[a+1];f=(g>>>0)+4294967296*(h|0)+(d>>>0)+4294967296*(e|0)>>>0;d=Math.min(Math.floor(((g>>>0)+4294967296*(h|0)+(d>>>0)+4294967296*(e|0))/4294967296),4294967295);p[a]=f;p[a+1]=d;p[c]=0}}function Wd(a,c,d){var e=0>(d|0)?-1:0,f=(d>>>0)+4294967296*(e|0)+(a>>>0)+4294967296*(c|0)>>>0,a=Math.min(Math.floor(((d>>>0)+4294967296*(e|0)+(a>>>0)+4294967296*(c|0))/4294967296),4294967295);return[f,a]}function Xd(a,c,d,e){var f=a+12|0;(p[f>>2]|0)>(e|0)&&(p[a+4>>2]=c,p[a+8>>2]=d,p[f>>2]=e)}function Yd(a,c,d){return p[((c-2<<2)+a+1288>>2)+(272*d|0)]}function Zd(a,c){var d=(c<<5)+a+39176|0,e=0<(c|0);a:do{if(e){for(var f=c;;){var g=p[a+(f<<5)+39180>>2];p[((g<<5)+a+39184|0)>>2]=f-g|0;var f=p[d>>2],h=(g<<5)+a+39176|0;p[d>>2]=p[h>>2];p[h>>2]=f;if(0>=(g|0)){break a}f=g}}}while(0)}function $d(a,c){var d=c>>2,e=3<(a|0);do{if(e){var f=c+8|0;p[d+3]=p[f>>2];var g=c+4|0;p[f>>2]=p[g>>2];p[g>>2]=p[d];p[d]=a-4|0}else{if(0<(a|0)){f=p[(a<<2>>2)+d];for(g=a;;){var h=g-1|0;p[(g<<2>>2)+d]=p[(h<<2>>2)+d];if(0>=(h|0)){break}g=h}p[d]=f}}}while(0)}function ae(a,c,d){var e,f,g,h,i,j=a>>2,o=m;m+=16;i=o>>2;h=(a|0)>>2;var u=p[h];if(0<(u|0)){p[h]=0;var q=u}else{q=be(a)}g=(a+2132|0)>>2;var t=x[g];f=t>>2;var s=x[c>>2],B=x[f+2],v=x[f+7],y=x[f+9],A=ce(B,v,y,0,s+1|0,273);p[i]=A;var r=c+4|0,D=ce(B,v,y,0,p[r>>2]+1|0,273);p[i+1]=D;var L=(D|0)>(A|0)&1,H=c+8|0,P=ce(B,v,y,0,p[H>>2]+1|0,273);p[i+2]=P;var J=(P|0)>(p[(L<<2>>2)+i]|0)?2:L,G=c+12|0,I=ce(B,v,y,0,p[G>>2]+1|0,273);p[i+3]=I;var M=(I|0)>(p[(J<<2>>2)+i]|0)?3:J,O=x[(M<<2>>2)+i],N=p[f+11],Q=(O|0)<(N|0);a:do{if(Q){if((q|0)<(N|0)){var $=t|0,ha=Wd(p[$>>2],p[$+4>>2],v)[0],ba=n[B+v+ -1|0],R=n[B+v+0|0],Sa=n[B+v+(s^-1)|0],fa=d|0;n[a+39172|0]=n[fa];p[j+9797]=p[c>>2];p[j+9798]=p[r>>2];p[j+9799]=p[H>>2];p[j+9800]=p[G>>2];var U=ha&3,qa=a+39204|0,Aa=a+39208|0;p[Aa>>2]=-1;p[j+9803]=0;var da=Gd(p[(((n[fa]&255)<<4)+(U<<2)+8>>2)+j]),Ea=a+39216|0;p[Ea>>2]=da;var ra=a+13496|0;p[Ea>>2]=(7>(n[fa]&255)?Hd(ra+3072*((ba&255)>>>5)|0,R&255,8):de(ra+3072*((ba&255)>>>5)|0,R&255,Sa&255))+da|0;var pb=w[fa],bb=pb&255,Eb=Qd(p[((bb<<4)+(U<<2)+8>>2)+j]),sa=Qd(p[((bb<<2)+200>>2)+j])+Eb|0;Sa<<24>>24==R<<24>>24&&Xd(qa,0,0,ee(a,pb,U)+sa|0);if(2>(q|0)){p[j+9794]=p[Aa>>2];p[j+9796]=1;xd(p[g]);var Fa=1}else{var Zb=(q|0)>(O|0);b:do{if(Zb){for(var ga=Gd(p[(((n[fa]&255)<<2)+200>>2)+j])+Eb|0,ta=q+1|0,ia=2;;){var La=(ia<<2)+a+38076|0;p[((ia<<5)+39176>>2)+j]=p[La>>2]+4|0;p[((ia<<5)+39180>>2)+j]=0;p[((ia<<5)+39184>>2)+j]=ga+(3>(ia|0)&127<(p[La>>2]|0)?268435455:fe(a,p[La>>2],ld(ia))+Yd(a+2176|0,ia,U)|0)|0;var cb=ia+1|0;if((cb|0)==(ta|0)){var db=q;break b}ia=cb}}else{if(2>(O|0)){db=O}else{for(var Fb=O+1|0,ja=2;;){p[((ja<<5)+39184>>2)+j]=268435455;var rb=ja+1|0;if((rb|0)==(Fb|0)){db=O;break b}ja=rb}}}}while(0);var Ga=a+7836|0,sb=2>(A|0);b:do{if(!sb){for(var tb=ge(a,0,n[fa],U)+sa|0,Ta=2;;){Xd((Ta<<5)+a+39172|0,0,0,tb+Yd(Ga,Ta,U)|0);var Ma=Ta+1|0;if((Ma|0)>(A|0)){break b}Ta=Ma}}}while(0);var Ua=2>(D|0);b:do{if(!Ua){for(var ub=ge(a,1,n[fa],U)+sa|0,eb=2;;){Xd((eb<<5)+a+39172|0,1,0,ub+Yd(Ga,eb,U)|0);var vb=eb+1|0;if((vb|0)>(D|0)){break b}eb=vb}}}while(0);var Na=2>(P|0);b:do{if(!Na){for(var Va=ge(a,2,n[fa],U)+sa|0,Nb=2;;){Xd((Nb<<5)+a+39172|0,2,0,Va+Yd(Ga,Nb,U)|0);var Gb=Nb+1|0;if((Gb|0)>(P|0)){break b}Nb=Gb}}}while(0);var Hb=2>(I|0);b:do{if(!Hb){for(var Ib=ge(a,3,n[fa],U)+sa|0,Wa=2;;){Xd((Wa<<5)+a+39172|0,3,0,Ib+Yd(Ga,Wa,U)|0);var Y=Wa+1|0;if((Y|0)>(I|0)){break b}Wa=Y}}}while(0);xd(p[g]);var na=a+38084|0,ka=a+2176|0,ua=db,va=0;b:for(;;){for(var fb=va+1|0,Oa=va,gb=fb,Ob=0;;){var S=Oa+1|0;if((S|0)>=(ua|0)){Zd(a,S);Fa=S;break a}var oa=be(a);if((oa|0)>=(p[p[g]+44>>2]|0)){p[h]=oa;Zd(a,S);Fa=S;break a}var Xa=(S<<5)+a+39172|0,la=p[((S<<5)+39180>>2)+j],wa=Xa|0;n[wa]=n[(la<<5)+a+39172|0];var ma=(S<<5)+a+39188|0;p[ma>>2]=p[((la<<5)+39188>>2)+j];p[((S<<5)+39192>>2)+j]=p[((la<<5)+39192>>2)+j];p[((S<<5)+39196>>2)+j]=p[((la<<5)+39196>>2)+j];p[((S<<5)+39200>>2)+j]=p[((la<<5)+39200>>2)+j];var Ya=Xa|0,Jb=(S<<5)+a+39176|0,wb=p[Jb>>2];(la|0)==(Oa|0)?0==(wb|0)?id(Ya):hd(Ya):(4>(wb|0)?jd(Ya):od(Ya),$d(p[Jb>>2],ma));var Za=x[g],Ha=Za|0,Ia=p[Za+28>>2],Pa=Wd(p[Ha>>2],p[Ha+4>>2],Ia)[0]&3,hb=p[Za+8>>2],ib=n[hb+Ia+ -1|0],Qa=n[hb+Ia+0|0],xa=n[hb+Ia+(p[ma>>2]^-1)|0],Ja=(S<<5)+a+39184|0,jb=w[wa],Ba=Gd(p[(((jb&255)<<4)+(Pa<<2)+8>>2)+j])+p[Ja>>2]+(7>(jb&255)?Hd(ra+3072*((ib&255)>>>5)|0,Qa&255,8):de(ra+3072*((ib&255)>>>5)|0,Qa&255,xa&255))|0;xd(Za);var $a=Oa+2|0,xb=($a<<5)+a+39172|0;Xd(xb,-1,S,Ba);var kb=w[wa],yb=kb&255,Kb=Qd(p[((yb<<4)+(Pa<<2)+8>>2)+j])+p[Ja>>2]|0,Lb=Kb+Qd(p[((yb<<2)+200>>2)+j])|0;xa<<24>>24==Qa<<24>>24&&0!=(p[(($a<<5)+39176>>2)+j]|0)&&Xd(xb,0,S,ee(a,kb,Pa)+Lb|0);var Pb=4094-Oa|0,Qb=p[g];e=Qb>>2;var Ka=p[e+7],gc=p[e+9]-Ka|0,Tb=(Pb|0)<(gc|0)?Pb:gc,lb=p[e+11],hc=(Tb|0)<(lb|0)?Tb:lb;if(2<=(hc|0)){var mb=ua,Mb=0,lc=Qb,$b=Ka;break}Oa=S;gb=gb+1|0;Ob=Ob+1|0}for(;;){for(var mc=p[lc+8>>2]+$b|0,cd=-2-p[((S<<5)+(Mb<<2)+39188>>2)+j]|0,Ab=0;(Ab|0)<(hc|0);){if(n[mc+(Ab-1)|0]<<24>>24!=n[mc+cd+Ab|0]<<24>>24){break}Ab=Ab+1|0}var fg=1<(Ab|0);c:do{if(fg){var gg=ge(a,Mb,n[wa],Pa),hg=(mb|0)<(Ab+S|0);d:do{if(hg){for(var Ze=Ob+fb+Ab|0,$e=mb;;){var Id=$e+1|0;p[((Id<<5)+39184>>2)+j]=268435455;if((Id|0)==(Ze|0)){var af=Ze;break d}$e=Id}}else{af=mb}}while(0);for(var ig=gg+Lb|0,dd=Ab;;){Xd((dd+S<<5)+a+39172|0,Mb,S,ig+Yd(Ga,dd,Pa)|0);var bf=dd-1|0;if(1>=(bf|0)){var ic=af;break c}dd=bf}}else{ic=mb}}while(0);var cf=Mb+1|0;if(4==(cf|0)){break}var df=x[g],mb=ic,Mb=cf,lc=df,$b=p[df+28>>2]}if((oa|0)>(hc|0)){ua=ic,va=S}else{if(2>=(oa|0)){if(2!=(oa|0)){ua=ic;va=S;continue}if(128<=(p[na>>2]|0)){ua=ic;va=S;continue}}var ef=Gd(p[(((n[wa]&255)<<2)+200>>2)+j])+Kb|0,jg=(ic|0)<(oa+S|0);c:do{if(jg){for(var ff=oa+gb|0,gf=ic;;){var Jd=gf+1|0;p[((Jd<<5)+39184>>2)+j]=268435455;if((Jd|0)==(ff|0)){var Kd=ff;break c}gf=Jd}}else{Kd=ic}}while(0);var ed=x[na>>2],hf=ld(2);128>(ed|0)&&Xd((Oa+3<<5)+a+39172|0,ed+4|0,S,p[((hf<<9)+(ed<<2)+171172>>2)+j]+ef+Yd(ka,2,Pa)|0);if(3>(oa|0)){ua=Kd,va=S}else{for(var kg=oa+1|0,Ld=ed,Md=hf,jf=268435455,zc=3;;){var Nd=p[((zc<<2)+38076>>2)+j];if((Ld|0)!=(Nd|0)|3>(Md|0)){var kf=ld(zc),Od=fe(a,Nd,kf),lf=kf,Pd=Nd}else{Od=jf,lf=Md,Pd=Ld}Xd((zc+S<<5)+a+39172|0,Pd+4|0,S,Od+ef+Yd(ka,zc,Pa)|0);var mf=zc+1|0;if((mf|0)==(kg|0)){ua=Kd;va=S;continue b}Ld=Pd;Md=lf;jf=Od;zc=mf}}}}}}else{p[j+9794]=p[((N<<2)+38076>>2)+j]+4|0,p[j+9796]=q,he(a,q,1),Fa=q}}else{p[j+9794]=M,p[j+9796]=O,he(a,O,1),Fa=O}}while(0);m=o;return Fa}ae.X=1;function be(a){var c;c=a+2132|0;var d=Ad(p[c>>2],a+38076|0);c=p[c>>2]>>2;return(d|0)==(p[c+11]|0)?ce(p[c+2],p[c+7],p[c+9],d,p[a+(d<<2)+38076>>2]+1|0,273-d|0)+d|0:d}function ce(a,c,d,e,f,g){d=d-c|0;g=(g+e|0)>(d|0)?d-e|0:g;c=c+e|0;f=c-f|0;for(e=0;(e|0)<(g|0);){if(n[a+f+e|0]<<24>>24!=n[a+e+c|0]<<24>>24){break}e=e+1|0}return e}function he(a,c,d){var e=0<(c|0);a:do{if(e){for(var f=a+2132|0,g=d&1,h=c;;){if(h=h-1|0,0==(g&1)<<24>>24?Ad(p[f>>2],0):g=0,xd(p[f>>2]),0>=(h|0)){break a}}}}while(0)}function Qd(a){return Gd(2048-a|0)}function ee(a,c,d){c&=255;return Gd(p[a+(c<<4)+(d<<2)+392>>2])+Gd(p[a+(c<<2)+248>>2])|0}function ge(a,c,d,e){var d=d&255,f=x[a+(d<<2)+248>>2];0==(c|0)?a=Qd(p[a+(d<<4)+(e<<2)+392>>2])+Gd(f)|0:(e=Qd(f),f=p[a+(d<<2)+296>>2],a=1==(c|0)?Gd(f)+e|0:Qd(f)+e+Td((d<<2)+a+344|0,c-2|0)|0);return a}function ie(a,c,d,e){var f=0>(d|0)?-1:0,g=0>(e|0)?-1:0,h=(d>>>0)+4294967296*(f|0)+(a>>>0)+4294967296*(c|0)>>>0,c=Math.min(Math.floor(((d>>>0)+4294967296*(f|0)+(a>>>0)+4294967296*(c|0))/4294967296),4294967295),a=(h>>>0)+4294967296*(c|0)+(e>>>0)+4294967296*(g|0)>>>0,e=Math.min(Math.floor(((h>>>0)+4294967296*(c|0)+(e>>>0)+4294967296*(g|0))/4294967296),4294967295);return[a,e]}function je(a){for(var c=1,d=0,e=1;;){var f=0==(e&a|0)?d:c,c=c+1|0;if(32==(c|0)){break}d=f;e<<=1}return f}function ke(a){return 0==(n[a+56|0]&1)<<24>>24?0:(p[a+28>>2]|0)>=(p[a+36>>2]|0)}function le(a,c){var d=x[a>>2];p[a>>2]=p[Kc+((d&255^c&255)<<2)>>2]^d>>>8}function fe(a,c,d){return 128>(c|0)?p[a+(d<<9)+(c<<2)+171172>>2]:p[a+((c&15)<<2)+173220>>2]+p[((me(c)<<2)+a+170244>>2)+(58*d|0)]|0}function ne(a,c){var d=m;m+=20;var e=a+2132|0,f=p[e>>2],g=f|0,g=Wd(p[g>>2],p[g+4>>2],p[f+28>>2])[0]&3,f=a+2136|0,h=c|0;Cd(f,((n[h]&255)<<4)+(g<<2)+a+8|0,1);Cd(f,((n[h]&255)<<2)+a+200|0,0);oe(a,-1,2,g);Fd(f);Fd(f);Fd(f);Fd(f);Fd(f);g=p[a+4>>2]^-1;n[d|0]=g&255;n[d+1|0]=g>>>8&255;n[d+2|0]=g>>>16&255;n[d+3|0]=g>>>24&255;e=p[e>>2];g=e|0;g=Wd(p[g>>2],p[g+4>>2],p[e+28>>2]);e=g[0];g=g[1];n[d+4|0]=e&255;n[d+5|0]=(e>>>8|g<<24)&255;n[d+6|0]=(e>>>16|g<<16)&255;n[d+7|0]=(e>>>24|g<<8)&255;n[d+8|0]=g&255;n[d+9|0]=(g>>>8|0)&255;n[d+10|0]=(g>>>16|0)&255;n[d+11|0]=(g>>>24|0)&255;e=a+2144|0;g=ie(p[e>>2],p[e+4>>2],p[a+2156>>2],p[a+2164>>2]);e=g[0];h=g[1];g=20+(e>>>0)+4294967296*(h|0)>>>0;e=Math.min(Math.floor((20+(e>>>0)+4294967296*(h|0))/4294967296),4294967295);Lc(d,g,e);a:do{for(e=0;;){if(pe(f,n[d+e|0]),e=e+1|0,20==(e|0)){break a}}}while(0);Vd(f);m=d}ne.X=1;function pe(a,c){var d;d=(a+20|0)>>2;n[p[a+16>>2]+p[d]|0]=c;var e=p[d]+1|0;p[d]=e;65535<(e|0)&&Vd(a)}function qe(a,c,d,e){var f;p[a>>2]=0;p[a+4>>2]=-1;f=a+200|0;for(var g=a+8|0;!(T(g),g=g+4|0,(g|0)==(f|0));){}T(a+200|0);T(a+204|0);T(a+208|0);T(a+212|0);T(a+216|0);T(a+220|0);T(a+224|0);T(a+228|0);T(a+232|0);T(a+236|0);T(a+240|0);T(a+244|0);T(a+248|0);T(a+252|0);T(a+256|0);T(a+260|0);T(a+264|0);T(a+268|0);T(a+272|0);T(a+276|0);T(a+280|0);T(a+284|0);T(a+288|0);T(a+292|0);T(a+296|0);T(a+300|0);T(a+304|0);T(a+308|0);T(a+312|0);T(a+316|0);T(a+320|0);T(a+324|0);T(a+328|0);T(a+332|0);T(a+336|0);T(a+340|0);T(a+344|0);T(a+348|0);T(a+352|0);T(a+356|0);T(a+360|0);T(a+364|0);T(a+368|0);T(a+372|0);T(a+376|0);T(a+380|0);T(a+384|0);T(a+388|0);f=a+584|0;for(g=a+392|0;!(T(g),g=g+4|0,(g|0)==(f|0));){}f=a+1608|0;for(g=a+584|0;!(T(g),g=g+4|0,(g|0)==(f|0));){}f=a+2068|0;for(g=a+1608|0;!(T(g),g=g+4|0,(g|0)==(f|0));){}T(a+2068|0);T(a+2072|0);T(a+2076|0);T(a+2080|0);T(a+2084|0);T(a+2088|0);T(a+2092|0);T(a+2096|0);T(a+2100|0);T(a+2104|0);T(a+2108|0);T(a+2112|0);T(a+2116|0);T(a+2120|0);T(a+2124|0);T(a+2128|0);f=(a+2132|0)>>2;p[f]=c;c=a+2136|0;g=c|0;p[g>>2]=0;p[g+4>>2]=0;g=c+8|0;p[g>>2]=0;p[g+4>>2]=0;var g=c+16|0,h=sd(65536);p[g>>2]=h;p[c+20>>2]=0;p[c+24>>2]=-1;p[c+28>>2]=0;p[c+32>>2]=e;n[c+36|0]=0;re(a+2176|0,p[p[f]+44>>2]);re(a+7836|0,p[p[f]+44>>2]);g=a+13496|0;e=g+24576|0;for(g|=0;!(T(g),g=g+4|0,(g|0)==(e|0));){}p[(a+38072|0)>>2]=je(p[p[f]+20>>2]-1|0)<<1;e=a+170244|0;for(f=a+39172|0;!(n[f|0]=0,f=f+32|0,(f|0)==(e|0));){}Rd(a);for(a=0;6>(a|0);){pe(c,n[d+a|0]);a=a+1|0}}qe.X=1;function se(a,c,d){var e,f,g,h=m;m+=16;g=h>>2;var i=m;m+=1;m=m+3>>2<<2;var j=(c>>>0)+4294967296*(d|0)+ -16>>>0,o=Math.min(Math.floor(((c>>>0)+4294967296*(d|0)+ -16)/4294967296),4294967295),c=(a+2132|0)>>2,d=12<(p[p[c]+44>>2]|0);n[i|0]=0;p[g]=0;p[g+1]=0;p[g+2]=0;p[g+3]=0;g=(j>>>0)+4294967296*(o|0)-20>>>0;j=Math.min(Math.floor(((j>>>0)+4294967296*(o|0)-20)/4294967296),4294967295);d=d?512:2048;o=p[c];f=o|0;var u=p[o+28>>2];f=Wd(p[f>>2],p[f+4>>2],u);var q=0==f[0]&&0==f[1];a:do{if(q){var t=a+2136|0;f=(a+2144|0)>>2;var s=a+2156|0,B=a+2164|0,v=ie(p[f],p[f+1],p[s>>2],p[B>>2]);if(6==v[0]&&0==v[1]){if(ke(o)){var v=a+4|0,y=a+13496|0,A=i|0}else{v=n[p[o+8>>2]+u+0|0];A=i|0;Cd(t,((n[A]&255)<<4)+a+8|0,0);y=a+13496|0;Dd(t,y+0|0,v&255,8);var r=a+4|0;le(r,v);he(a,1,0);v=r}var r=h|0,D=a+7836|0,L=0;b:for(;;){if(ke(p[c])){ne(a,i);R=1;break a}1>(L|0)&&(Ud(a),L=d);var H=ae(a,r,i);if(1>(H|0)){R=0;break a}for(var L=L-H|0,P=0;;){var J=p[c],G=J|0,G=Wd(p[G>>2],p[G+4>>2],p[J+28>>2]),J=G[0],G=G[1],I=H,M=(J>>>0)+4294967296*(G|0)-((I>>>0)+0)>>>0;Math.min(Math.floor(((J>>>0)+4294967296*(G|0)-((I>>>0)+0))/4294967296),4294967295);var I=M&3,M=x[a+(P<<5)+39176>>2],J=x[a+(P<<5)+39184>>2],O=1==(J|0),N=0>(M|0)&O,G=w[A],Q=G&255;Cd(t,(Q<<4)+(I<<2)+a+8|0,N&1^1);e=x[c]>>2;if(N){O=H^-1;M=p[e+2];Q=p[e+7];I=n[M+Q+O|0];M=n[M+Q+(-H|0)|0];le(v,M);if(7>(G&255)){Dd(t,y+3072*((I&255)>>>5)|0,M&255,8)}else{Q=p[c];G=t;I=y+3072*((I&255)>>>5)|0;M&=255;e=n[p[Q+8>>2]+p[Q+28>>2]+(O-p[r>>2]|0)|0]&255;O=aa;Q=7;for(N=1;;){if(-1>=(Q|0)){O=7;break}var $=e>>>(Q>>>0)&1,ha=M>>>(Q>>>0)&1;Cd(G,(($<<8)+N+256<<2)+I|0,ha);var ba=ha|N<<1;if(($|0)!=(ha|0)){O=4;break}Q=Q-1|0;N=ba}c:do{if(4==O&&0<(Q|0)){e=ba;for(N=Q;;){N=N-1|0;$=M>>>(N>>>0)&1;Cd(G,(e<<2)+I|0,$);if(0>=(N|0)){break c}e=$|e<<1}}}while(0)}hd(i)}else{Jc(v,(p[e+2]+p[e+7]|0)+ -H|0,J),$d(M,r),G=4>(M|0),Cd(t,(Q<<2)+a+200|0,G&1),G?(G=0==(M|0),Cd(t,(Q<<2)+a+248|0,G&1^1),G?Cd(t,(Q<<4)+(I<<2)+a+392|0,1<(J|0)&1):(G=1<(M|0),Cd(t,(Q<<2)+a+296|0,G&1),G&&Cd(t,(Q<<2)+a+344|0,2<(M|0)&1)),O?id(i):(Bd(D,t,J,I),jd(i))):(oe(a,M-4|0,J,I),od(i))}G=H-J|0;H=ie(p[f],p[f+1],p[s>>2],p[B>>2]);I=H[1];if(!((I|0)<(j|0)||(I|0)==(j|0)&&H[0]>>>0>>0)){break}if(1>(G|0)){continue b}P=J+P|0;H=G}ba=p[c];R=G;c=aa;0>(R|0)?ba=0:(c=ba+28|0,g=p[c>>2],(g|0)<(R|0)?ba=0:(p[c>>2]=g-R|0,c=(ba+32|0)>>2,R=p[c]-R|0,p[c]=R,0>(R|0)&&(p[c]=p[ba+20>>2]+R|0),ba=1));if(!ba){R=0;break a}ne(a,i);R=1;break a}}else{var R=0}}else{R=0}}while(0);m=h;return R}se.X=1;function oe(a,c,d,e){var f=a+2136|0;Bd(a+2176|0,f,d,e);e=me(c);Dd(f,(ld(d)<<8)+a+584|0,e,6);if(3<(e|0)){var d=e>>1,g=d-1|0,h=(e&1|2)<(e|0)){te(f,(h-e<<2)+a+1608|0,c,g)}else{var e=c>>>4,d=d-5|0,i=0<(d|0);a:do{if(i){for(var h=(f+24|0)>>2,g=(f|0)>>2,j=d;;){var j=j-1|0,o=x[h],u=o>>>1;p[h]=u;if(0!=(1<>>0)+4294967296*(s|0)+(q>>>0)+0>>>0,q=Math.min(Math.floor(((t>>>0)+4294967296*(s|0)+(q>>>0)+0)/4294967296),4294967295);p[g]=u;p[g+1]=q}33554432>o>>>0&&(p[h]=o<<7&-256,Fd(f));if(0>=(j|0)){break a}}}}while(0);te(f,a+2068|0,c,4);f=a+173284|0;c=p[f>>2]-1|0;p[f>>2]=c;1>(c|0)&&Rd(a)}}}function me(a){return 4096>a>>>0?w[V+a|0]&255:8388608>a>>>0?(w[V+(a>>>11)|0]&255)+22|0:(w[V+(a>>>22)|0]&255)+44|0}function Gd(a){return p[ue+(a>>2<<2)>>2]}function re(a,c){T(a|0);T(a+4|0);T(a+8|0);T(a+12|0);T(a+16|0);T(a+20|0);T(a+24|0);T(a+28|0);T(a+32|0);T(a+36|0);T(a+40|0);T(a+44|0);T(a+48|0);T(a+52|0);T(a+56|0);T(a+60|0);T(a+64|0);T(a+68|0);T(a+72|0);T(a+76|0);T(a+80|0);T(a+84|0);T(a+88|0);T(a+92|0);T(a+96|0);T(a+100|0);T(a+104|0);T(a+108|0);T(a+112|0);T(a+116|0);T(a+120|0);T(a+124|0);T(a+128|0);T(a+132|0);T(a+136|0);T(a+140|0);T(a+144|0);T(a+148|0);T(a+152|0);T(a+156|0);T(a+160|0);T(a+164|0);T(a+168|0);T(a+172|0);T(a+176|0);T(a+180|0);T(a+184|0);T(a+188|0);T(a+192|0);T(a+196|0);T(a+200|0);T(a+204|0);T(a+208|0);T(a+212|0);T(a+216|0);T(a+220|0);T(a+224|0);T(a+228|0);T(a+232|0);T(a+236|0);T(a+240|0);T(a+244|0);T(a+248|0);T(a+252|0);T(a+256|0);T(a+260|0);for(var d=a+1288|0,e=a+264|0;!(T(e),e=e+4|0,(e|0)==(d|0));){}p[a+5640>>2]=c-1|0;Ed(a,0);Ed(a,1);Ed(a,2);Ed(a,3)}re.X=1;function Fd(a){var c,d;d=(a|0)>>2;var e=p[d],f=x[d+1];if((0>f>>>0||0==f>>>0&&4278190080>e>>>0)|1==(f|0)){e=a+36|0;pe(a,(w[e]&255)+f&255);c=(a+28|0)>>2;var g=0<(p[c]|0);a:do{if(g){for(var h=f+255&255;;){pe(a,h);var i=p[c]-1|0;p[c]=i;if(0>=(i|0)){break a}}}}while(0);f=x[d];a=x[d+1];n[e]=(f>>>24|a<<8)&255}else{a=a+28|0,p[a>>2]=p[a>>2]+1|0,a=f,f=e}p[d]=(f<<8|0)&-256;p[d+1]=(a<<8|f>>>24)&0}Fd.X=1;function te(a,c,d,e){var f=0<(e|0);a:do{if(f){for(var g=d,h=1,i=e;;){var j=g&1;Cd(a,(h<<2)+c|0,j);h=h<<1|j;i=i-1|0;if(0>=(i|0)){break a}g>>=1}}}while(0)}function Td(a,c){var d=p[a>>2];return 0==(c|0)?Gd(d):Qd(d)}function de(a,c,d){for(var e,f=7,g=1,h=0;;){if(-1>=(f|0)){var i=h;e=7;break}var j=d>>>(f>>>0)&1,o=c>>>(f>>>0)&1,u=Td(((j<<8)+g+256<<2)+a|0,o)+h|0,q=o|g<<1;if((j|0)!=(o|0)){e=4;break}f=f-1|0;g=q;h=u}a:do{if(4==e){if(0<(f|0)){g=u;d=q;for(h=f;;){h=h-1|0;j=c>>>(h>>>0)&1;g=Td((d<<2)+a|0,j)+g|0;if(0>=(h|0)){i=g;break a}d=j|d<<1}}else{i=u}}}while(0);return i}function Yc(a){0!=(a|0)&&Sc(p[p[ve>>2]+12>>2],a,Dc(a))}function we(a,c,d){if(-1<(p[xe>>2]|0)){if(0!=(a|0)&&0!=n[a]<<24>>24){ye(p[p[ve>>2]+12>>2],K.sa|0,(z=m,m+=8,p[z>>2]=K.i|0,p[z+4>>2]=a,z));if(0<(c|0)){var a=p[p[ve>>2]+12>>2],e;ze||(ze=nc(256));e=ze;if(c in Ae){if(255>2]=e,z))}De(p[p[ve>>2]+12>>2])}a=p[Ee>>2];0!=(a|0)&d&&0!=n[a]<<24>>24&&ye(p[p[ve>>2]+12>>2],K.na|0,(z=m,m+=4,p[z>>2]=a,z))}}function yd(a){-1<(p[xe>>2]|0)&&ye(p[p[ve>>2]+12>>2],K.oa|0,(z=m,m+=8,p[z>>2]=K.i|0,p[z+4>>2]=a,z));Uc(3)}function Fe(a,c){var d=m;m+=8;p[d>>2]=8388608;p[d+4>>2]=36;p[Ee>>2]=p[c>>2];var e=1,f=0;a:for(;;){if((e|0)>=(a|0)){if(e=2==(f|0)){n[Ge]=0}else{if(0==(f|0)){n[V|0]=0;n[V+1|0]=1;n[V+2|0]=2;n[V+3|0]=3;C=1028;n[V+4|0]=C&255;C>>=8;n[(V+4|0)+1]=C&255;C=1285;n[V+6|0]=C&255;C>>=8;n[(V+6|0)+1]=C&255;C=101058054;n[V+8|0]=C&255;C>>=8;n[(V+8|0)+1]=C&255;C>>=8;n[(V+8|0)+2]=C&255;C>>=8;n[(V+8|0)+3]=C&255;C=117901063;n[V+12|0]=C&255;C>>=8;n[(V+12|0)+1]=C&255;C>>=8;n[(V+12|0)+2]=C&255;C>>=8;n[(V+12|0)+3]=C&255;var g=V+16|0,h=g|0;C=134744072;n[h]=C&255;C>>=8;n[h+1]=C&255;C>>=8;n[h+2]=C&255;C>>=8;n[h+3]=C&255;g=g+4|0;C=134744072;n[g]=C&255;C>>=8;n[g+1]=C&255;C>>=8;n[g+2]=C&255;C>>=8;n[g+3]=C&255;g=V+24|0;h=g|0;C=151587081;n[h]=C&255;C>>=8;n[h+1]=C&255;C>>=8;n[h+2]=C&255;C>>=8;n[h+3]=C&255;g=g+4|0;C=151587081;n[g]=C&255;C>>=8;n[g+1]=C&255;C>>=8;n[g+2]=C&255;C>>=8;n[g+3]=C&255;g=V+32|0;for(h=g+16;g>2]=704;for(var g=1,h=2,i=8;;){var j=(g|0)<(h|0);b:do{if(j){for(var o=i<<6,u=8-i|0,q=g;;){if(p[ue+(q<<2)>>2]=(h-q<<6>>u)+o|0,q=q+1|0,(q|0)==(h|0)){var t=h;break b}}}else{t=g}}while(0);if(0>=(i|0)){break}g=t;h<<=1;i=i-1|0}}}n[Ge]=1;t=f;g=aa;if(0==(t|0)&w[Ge]){if(0==(He(2)|0)){g=4}else{we(K.ha|0,0,1);var s=0,g=7}}else{g=4}4==g&&(2>(t-1|0)>>>0?0==(He(1)|0)?s=1:(we(K.ia|0,0,1),s=0):s=1);if(!s){g=1;break}f=0==(f|0)?Ie(d):Je(e);f=0<(f|0)?f:0;if(!w[Ge]){g=f;break}Ke[2]?(Ke[2].bb&&Le(Ke[2].bb),delete Ke[2],s=0):(W(Me),s=-1);if(0==(s|0)){g=f;break}we(K.ua|0,p[Pc>>2],0);if(1<=(f|0)){g=f;break}g=1;break}h=n[p[c+(e<<2)>>2]+1|0]<<24>>24;do{if(99==(h|0)||107==(h|0)){i=f}else{if(100==(h|0)){i=1}else{if(104==(h|0)){f=m;Ne(K.qa|0,(z=m,m+=4,p[z>>2]=K.p|0,z));Oe(K.ya|0);s=p[Ee>>2];Ne(K.ra|0,(z=m,m+=4,p[z>>2]=s,z));Oe(K.za|0);Oe(K.Ka|0);Oe(K.Ta|0);Oe(K.Ua|0);Oe(K.Va|0);Oe(K.Wa|0);Oe(K.Xa|0);Oe(K.Ya|0);Oe(K.Za|0);Oe(K.Aa|0);Oe(K.Ba|0);Oe(K.Ca|0);Oe(K.Da|0);Oe(K.Ea|0);Oe(K.Fa|0);Oe(K.Ga|0);Oe(K.Ha|0);Oe(K.Ia|0);Oe(K.Ja|0);Ne(K.va|0,(z=m,m+=4,p[z>>2]=K.i|0,z));Oe(K.La|0);Oe(K.Ma|0);Oe(K.Na|0);Oe(K.Oa|0);Oe(K.Pa|0);m=f;g=0;break a}else{if(113==(h|0)){p[xe>>2]=-1,i=f}else{if(118==(h|0)){i=p[xe>>2],4>(i|0)&&(p[xe>>2]=i+1|0),i=f}else{if(86==(h|0)){f=m;Ne(K.ja|0,(z=m,m+=8,p[z>>2]=K.p|0,p[z+4>>2]=K.ka|0,z));Ne(K.la|0,(z=m,m+=4,p[z>>2]=K.pa|0,z));Oe(K.Qa|0);Oe(K.Ra|0);Oe(K.Sa|0);m=f;g=0;break a}else{yd(K.ta|0),i=f}}}}}}}while(0);e=e+1|0;f=i}m=d;return g}Module._main=Fe;Fe.X=1;function Ie(a){var c=m;m+=173356;var d,e=c+8,f=c+68;C=1346984524;n[c]=C&255;C>>=8;n[c+1]=C&255;C>>=8;n[c+2]=C&255;C>>=8;n[c+3]=C&255;n[c+4|0]=1;d=Pe(c,p[a>>2]);a=a+4|0;if(d){if(d=x[a>>2],268<(d-5|0)>>>0){d=3}else{var g=d;d=4}}else{d=3}3==d&&(yd(K.ca|0),g=p[a>>2]);rd(e,Qe(n[c+5|0]),g,1);Pe(c,p[e+20>>2]);for(var g=e|0,a=e+28|0,h=0,i=0,j=0,o=0,u=0,q=0;;){qe(f,e,c,w[Ge]?2:-1);d=4294967295+2147483647*4294967296-((i>>>0)+4294967296*(h|0))>>>0;var t=Math.min(Math.floor((4294967295+2147483647*4294967296-((i>>>0)+4294967296*(h|0)))/4294967296),4294967295);if(!se(f,d,t)){Yc(K.da|0);var s=j,B=o,v=u,y=q,A=1;break}d=Wd(p[g>>2],p[g+4>>2],p[a>>2]);var t=d[0],r=d[1];d=(t>>>0)+4294967296*(r|0)+(q>>>0)+4294967296*(u|0)>>>0;u=Math.min(Math.floor(((t>>>0)+4294967296*(r|0)+(q>>>0)+4294967296*(u|0))/4294967296),4294967295);q=f+2144|0;q=ie(p[q>>2],p[q+4>>2],p[f+2156>>2],p[f+2164>>2]);q=[q[0],q[1]];t=q[0];r=q[1];q=(t>>>0)+4294967296*(r|0)+(o>>>0)+4294967296*(j|0)>>>0;j=Math.min(Math.floor(((t>>>0)+4294967296*(r|0)+(o>>>0)+4294967296*(j|0))/4294967296),4294967295);if(ke(e)){s=j;B=q;v=u;y=d;A=0;break}var o=(t>>>0)+4294967296*(r|0)+(i>>>0)+4294967296*(h|0)>>>0,h=Math.min(Math.floor(((t>>>0)+4294967296*(r|0)+(i>>>0)+4294967296*(h|0))/4294967296),4294967295),i=e,r=t=aa,r=(i+36|0)>>2,D=p[r],t=(i+28|0)>>2,L=p[t],H=D-L|0;0<(H|0)&&(D=p[i+8>>2],zd(D,D+L|0,H),L=p[t],D=p[r]);H=i|0;p[H>>2]=0;p[H+4>>2]=0;p[r]=D-L|0;p[t]=0;p[i+32>>2]=0;t=i+12|0;for(r=0;!(p[((r<<2)+p[t>>2]|0)>>2]=-1,r=r+1|0,1376256==(r|0));){}td(i);o=(i=2147483647<(h|0)||2147483647==(h|0)&&4294963198>>0)?0:o;h=i?0:h;i=p[f+2152>>2];0!=(i|0)&&Re(i);i=o;o=q;q=d}f=p[f+2152>>2];0!=(f|0)&&Re(f);0==(A|0)&0<(p[xe>>2]|0)&&(f=p[p[ve>>2]+12>>2],(0>(v|0)||0==(v|0)&&1>y>>>0)|(0>(s|0)||0==(s|0)&&1>B>>>0)?Se(K.fa|0,20,1,f):(g=y+4294967296*v,a=B+4294967296*s,ye(f,K.ga|0,(z=m,m+=40,fc[0]=g/a,p[z>>2]=jc[0],p[z+4>>2]=jc[1],fc[0]=8*a/g,p[z+8>>2]=jc[0],p[z+12>>2]=jc[1],fc[0]=100*(1-a/g),p[z+16>>2]=jc[0],p[z+20>>2]=jc[1],p[z+24>>2]=y,p[z+28>>2]=v,p[z+32>>2]=B,p[z+36>>2]=s,z))));s=p[e+16>>2];0!=(s|0)&&Re(s);s=p[e+12>>2];0!=(s|0)&&Re(s);Le(p[e+8>>2]);m=c;return A}Ie.X=1;function Qe(a){var a=a&255,c=1<<(a&31);return 536866816>(c-4097|0)>>>0?c-c/16*(a>>>5)|0:c}function Te(a,c,d){var e=a+16|0,f=p[e>>2];0==(f|0)?(p[e>>2]=c,p[a+24>>2]=d,p[a+36>>2]=1):(f|0)==(c|0)?(a=a+24|0,2==(p[a>>2]|0)&&(p[a>>2]=d)):(d=a+36|0,p[d>>2]=p[d>>2]+1|0,p[a+24>>2]=2,n[a+54|0]=1)}function Ue(a,c,d,e){var f=a>>2;n[a+53|0]=1;d=(p[f+1]|0)==(d|0);do{if(d){n[a+52|0]=1;var g=a+16|0,h=p[g>>2];if(0==(h|0)){if(p[g>>2]=c,p[f+6]=e,p[f+9]=1,!(1==(p[f+12]|0)&1==(e|0))){break}}else{if((h|0)==(c|0)){if(g=a+24|0,h=p[g>>2],g=2==(h|0)?p[g>>2]=e:h,!(1==(p[f+12]|0)&1==(g|0))){break}}else{g=a+36|0,p[g>>2]=p[g>>2]+1|0}}n[a+54|0]=1}}while(0)}Ue.X=1;function Ve(a,c,d){(p[a+4>>2]|0)==(c|0)&&(a=a+28|0,1!=(p[a>>2]|0)&&(p[a>>2]=d))}function Je(a){var c=m;m+=88;var d,e=c+36,f=c+44,g=c>>2,h=c|0;p[h>>2]=0;p[h+4>>2]=0;var h=c+8|0,i=sd(16384);p[h>>2]=i;p[g+3]=0;p[g+4]=0;p[g+5]=0;p[g+6]=-1;p[g+7]=1;n[c+32|0]=0;for(var h=e+4|0,i=e+5|0,j=c|0,o=c+12|0,g=f+16|0,u=0,q=0,t=1;;){d=-p[c+12>>2]|0;var s=0>(d|0)?-1:0,B=c|0;p[B>>2]=d;p[B+4>>2]=s;for(d=0;6>(d|0);){if(Wc(c)){break}s=Xc(c);n[e+d|0]=s;d=d+1|0}if(Wc(c)){if(!t){d=41;break}Yc(K.wa|0);var v=1;d=45;break}a:{d=K.z|0;for(s=0;4>s;s++){var B=n[(e|0)+s],y=n[d+s];if(B!=y){d=B>y?1:-1;break a}}d=0}if(0!=(d|0)){if(!t){d=41;break}Yc(K.xa|0);v=2;d=45;break}s=w[h];if(2<=(s&255)){if(-1>=(p[xe>>2]|0)){v=2;d=45;break}Yc(0);v=s&255;ye(p[p[ve>>2]+12>>2],K.M|0,(z=m,m+=4,p[z>>2]=v,z));v=2;d=45;break}y=Qe(n[i]);if(536866816<(y-4096|0)>>>0){Yc(K.N|0);v=2;d=45;break}d=p[xe>>2];d=1<(d|0)?25:1!=(d|0)|t^1?27:25;if(25==d&&(Yc(0),1<(p[xe>>2]|0))){for(var t=p[p[ve>>2]+12>>2],B=0>(y|0)?-1:0,A=We|0,r=0;8>(r|0);){var D=-1<(B|0)||-1==(B|0)&&4294967295>>0,L=0-((y>>>0)+4294967296*(B|0))>>>0,H=Math.min(Math.floor((0-((y>>>0)+4294967296*(B|0)))/4294967296),4294967295),L=D?y:L,D=D?B:H;if(!(0<(D|0)||0==(D|0)&&9999>>0)){if(!((0<(D|0)||0==(D|0)&&1023>>0)&(0==(y&1023)&&0==(B&0)))){break}}A=(Yb=((y>>>0)+4294967296*(B|0))/1024,0<=Yb?Math.floor(Yb):Math.ceil(Yb))>>>0;B=Math.min(Math.floor((Yb=((y>>>0)+4294967296*(B|0))/1024,0<=Yb?Math.floor(Yb):Math.ceil(Yb))/4294967296),4294967295);y=A;A=p[Xe+(r<<2)>>2];r=r+1|0}r=Ye|0;B=(z=m,m+=12,p[z>>2]=y,p[z+4>>2]=B,p[z+8>>2]=A,z);B=nf(K.ba|0,B);y=Math.min(B.length,15);for(A=0;A>2]=s,p[z+4>>2]=Ye|0,z))}t=f;s=e;B=c;y=w[Ge]?2:-1;A=t>>2;r=t|0;p[r>>2]=0;p[r+4>>2]=0;D=Qe(n[s+5|0]);p[(t+8|0)>>2]=D;r=t+12|0;H=65536>(D|0)?65536:D;p[r>>2]=H;D=t+16|0;H=sd(-1<(H|0)?H:-1);p[D>>2]=H;p[A+5]=0;p[A+6]=0;p[A+7]=-1;p[A+8]=y;p[(t+36|0)>>2]=n[s+4|0]&255;p[A+10]=B;n[H+(p[r>>2]-1)|0]=0;s=Zc(f);t=Hc(p[j>>2],p[j+4>>2],p[o>>2]);B=t[0];y=t[1];t=(B>>>0)+4294967296*(y|0)+(q>>>0)+4294967296*(u|0)>>>0;u=Math.min(Math.floor(((B>>>0)+4294967296*(y|0)+(q>>>0)+4294967296*(u|0))/4294967296),4294967295);q=x[xe>>2];if(0!=(s|0)){-1<(q|0)&3>(s|0)&&(Yc(0),v=p[p[ve>>2]+12>>2],2==(s|0)?ye(v,K.Q|0,(z=m,m+=8,p[z>>2]=t,p[z+4>>2]=u,z)):ye(v,K.R|0,(z=m,m+=8,p[z>>2]=t,p[z+4>>2]=u,z)));v=p[g>>2];0!=(v|0)&&Re(v);v=2;d=45;break}1<(q|0)&&(q=p[p[ve>>2]+12>>2],a?Se(K.n|0,3,1,q):Se(K.o|0,5,1,q));q=p[g>>2];0!=(q|0)&&Re(q);q=t;t=0}41==d&&(1==(p[xe>>2]|0)&&(v=p[p[ve>>2]+12>>2],a?Se(K.n|0,3,1,v):Se(K.o|0,5,1,v)),v=0);a=p[c+8>>2];0!=(a|0)&&Re(a);m=c;return v}Je.X=1;function Pe(a,c){var d=536866817>(c-4096|0)>>>0;a:do{if(d){var e=je(c-1|0),f=a+5|0;n[f]=e&255;if(4096<(c|0)){for(var g=1<<(e&255),h=g/16|0,i=7;;){if(0>=(i|0)){e=1;break a}if((g-i*h|0)>=(c|0)){break}i=i-1|0}n[f]=(e|i<<5)&255}e=1}else{e=0}}while(0);return e}function of(a){pf(a|0)}function qf(a,c){var d,e=m;m+=56;d=e>>2;var f=p[a>>2],g=a+p[f-8>>2]|0,f=p[f-4>>2];p[d]=c;p[d+1]=a;p[d+2]=rf;p[d+3]=-1;for(var h=e+16|0,i=e+20|0,j=e+24|0,o=e+28|0,u=e+32|0,q=e+40|0,t=(f|0)==(c|0),s=h>>2,B=s+9;s>1]=0;n[h+38]=0;do{if(t){p[d+12]=1,pc[p[p[f>>2]+12>>2]](f,e,g,g,1),s=1!=(p[j>>2]|0)?0:g}else{if(s=e+36|0,pc[p[p[f>>2]+16>>2]](f,e,g,1),s=p[s>>2],0==(s|0)){s=1!=(p[q>>2]|0)?0:1!=(p[o>>2]|0)?0:1!=(p[u>>2]|0)?0:p[i>>2]}else{if(1==(s|0)){if(1!=(p[j>>2]|0)){if(0!=(p[q>>2]|0)){s=0;break}if(1!=(p[o>>2]|0)){s=0;break}if(1!=(p[u>>2]|0)){s=0;break}}s=p[h>>2]}else{s=0}}}}while(0);m=e;return s}qf.X=1;function sf(a,c,d,e){var f=c>>2,g=a|0,h=(g|0)==(p[f+2]|0);a:do{if(h){Ve(c,d,e)}else{if((g|0)==(p[f]|0)){var i=(p[f+4]|0)==(d|0);do{if(!i){var j=c+20|0;if((p[j>>2]|0)!=(d|0)){p[f+8]=e;e=(c+44|0)>>2;if(4==(p[e]|0)){break a}g=c+52|0;n[g]=0;h=c+53|0;n[h]=0;a=p[a+8>>2];pc[p[p[a>>2]+12>>2]](a,c,d,d,1);if(0==(n[h]&1)<<24>>24){var o=0,a=11}else{0==(n[g]&1)<<24>>24?(o=1,a=11):a=15}b:do{if(11==a){p[j>>2]=d;a=c+40|0;p[a>>2]=p[a>>2]+1|0;g=1==(p[f+9]|0);do{if(g){if(2!=(p[f+6]|0)){a=14}else{n[c+54|0]=1;if(o){break b}a=16}}else{a=14}}while(0);if(!(14==a&&o)){p[e]=4;break a}}}while(0);p[e]=3;break a}}}while(0);1==(e|0)&&(p[f+8]=1)}else{j=p[a+8>>2],pc[p[p[j>>2]+16>>2]](j,c,d,e)}}}while(0)}sf.X=1;function nc(a){var c,d=245>a>>>0;do{if(d){var e=11>a>>>0?16:a+11&-8,f=e>>>3;c=x[X>>2];var g=c>>>(f>>>0);if(0!=(g&3|0)){var a=(g&1^1)+f|0,e=a<<1,d=(e<<2)+X+40|0,f=(e+2<<2)+X+40|0,h=x[f>>2],e=h+8|0,g=x[e>>2];(d|0)==(g|0)?p[X>>2]=c&(1<>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[f>>2]=g,p[g+12>>2]=d);c=a<<3;p[h+4>>2]=c|3;c=h+(c|4)|0;p[c>>2]|=1;h=e;c=38;break}if(e>>>0<=x[X+8>>2]>>>0){var i=e;c=30;break}if(0!=(g|0)){var a=2<>>12&16,h=d>>>(a>>>0),d=h>>>5&8,f=h>>>(d>>>0),h=f>>>2&4,g=f>>>(h>>>0),f=g>>>1&2,g=g>>>(f>>>0),j=g>>>1&1,h=(d|a|h|f|j)+(g>>>(j>>>0))|0,a=h<<1,f=(a<<2)+X+40|0,g=(a+2<<2)+X+40|0,d=x[g>>2],a=d+8|0,j=x[a>>2];(f|0)==(j|0)?p[X>>2]=c&(1<>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[g>>2]=j,p[j+12>>2]=f);h<<=3;c=h-e|0;p[d+4>>2]=e|3;f=d;d=f+e|0;p[f+(e|4)>>2]=c|1;p[f+h>>2]=c;j=x[X+8>>2];0!=(j|0)&&(e=p[X+20>>2],f=j>>>2&1073741822,h=(f<<2)+X+40|0,g=x[X>>2],j=1<<(j>>>3),0==(g&j|0)?(p[X>>2]=g|j,g=h,f=(f+2<<2)+X+40|0):(f=(f+2<<2)+X+40|0,g=x[f>>2],g>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"))),p[f>>2]=e,p[g+12>>2]=e,p[(e+8|0)>>2]=g,p[(e+12|0)>>2]=h);p[X+8>>2]=c;p[X+20>>2]=d;h=a;c=38;break}if(0==(p[X+4>>2]|0)){i=e;c=30;break}c=tf(e);if(0==(c|0)){i=e;c=30;break}h=c}else{if(4294967231>>0){i=-1;c=30;break}c=a+11&-8;if(0==(p[X+4>>2]|0)){i=c;c=30;break}e=uf(c);if(0==(e|0)){i=c;c=30;break}h=e}c=38}while(0);30==c&&(e=x[X+8>>2],i>>>0>e>>>0?(c=x[X+12>>2],i>>>0>>0?(c=c-i|0,p[X+12>>2]=c,e=x[X+24>>2],p[X+24>>2]=e+i|0,p[i+(e+4)>>2]=c|1,p[e+4>>2]=i|3,h=e+8|0):h=vf(i)):(a=e-i|0,c=x[X+20>>2],15>>0?(p[X+20>>2]=c+i|0,p[X+8>>2]=a,p[i+(c+4)>>2]=a|1,p[c+e>>2]=a,p[c+4>>2]=i|3):(p[X+8>>2]=0,p[X+20>>2]=0,p[c+4>>2]=e|3,i=e+(c+4)|0,p[i>>2]|=1),h=c+8|0));return h}Module._malloc=nc;nc.X=1;function tf(a){var c,d,e=p[X+4>>2],f=(e&-e)-1|0,e=f>>>12&16,g=f>>>(e>>>0),f=g>>>5&8;d=g>>>(f>>>0);var g=d>>>2&4,h=d>>>(g>>>0);d=h>>>1&2;var h=h>>>(d>>>0),i=h>>>1&1,e=f=x[X+((f|e|g|d|i)+(h>>>(i>>>0))<<2)+304>>2];d=e>>2;f=(p[f+4>>2]&-8)-a|0;a:for(;;){for(g=e;;){h=p[g+16>>2];if(0==(h|0)){if(g=p[g+20>>2],0==(g|0)){break a}}else{g=h}h=(p[g+4>>2]&-8)-a|0;if(h>>>0>>0){e=g;d=e>>2;f=h;continue a}}}var h=e,j=x[X+16>>2],i=h>>>0>>0;do{if(!i){var o=h+a|0,g=o;if(h>>>0>>0){var i=x[d+6],o=x[d+3],u=(o|0)==(e|0);do{if(u){c=e+20|0;var q=p[c>>2];if(0==(q|0)&&(c=e+16|0,q=p[c>>2],0==(q|0))){q=0;c=q>>2;break}for(;;){var t=q+20|0,s=p[t>>2];if(0==(s|0)&&(t=q+16|0,s=x[t>>2],0==(s|0))){break}c=t;q=s}c>>>0>>0&&(Z(),b("Reached an unreachable!"));p[c>>2]=0}else{c=x[d+2],c>>>0>>0&&(Z(),b("Reached an unreachable!")),p[c+12>>2]=o,p[o+8>>2]=c,q=o}c=q>>2}while(0);j=0==(i|0);a:do{if(!j){o=e+28|0;u=(p[o>>2]<<2)+X+304|0;t=(e|0)==(p[u>>2]|0);do{if(t){p[u>>2]=q;if(0!=(q|0)){break}p[X+4>>2]&=1<>2]^-1;break a}i>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));s=i+16|0;(p[s>>2]|0)==(e|0)?p[s>>2]=q:p[i+20>>2]=q;if(0==(q|0)){break a}}while(0);q>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));p[c+6]=i;o=x[d+4];0!=(o|0)&&(o>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[c+4]=o,p[o+24>>2]=q);o=x[d+5];0!=(o|0)&&(o>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[c+5]=o,p[o+24>>2]=q)}}while(0);16>f>>>0?(a=f+a|0,p[d+1]=a|3,a=a+(h+4)|0,p[a>>2]|=1):(p[d+1]=a|3,p[a+(h+4)>>2]=f|1,p[h+f+a>>2]=f,j=x[X+8>>2],0!=(j|0)&&(a=x[X+20>>2],h=j>>>2&1073741822,d=(h<<2)+X+40|0,i=x[X>>2],j=1<<(j>>>3),0==(i&j|0)?(p[X>>2]=i|j,i=d,h=(h+2<<2)+X+40|0):(h=(h+2<<2)+X+40|0,i=x[h>>2],i>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"))),p[h>>2]=a,p[i+12>>2]=a,p[a+8>>2]=i,p[a+12>>2]=d),p[X+8>>2]=f,p[X+20>>2]=g);return e+8|0}}}while(0);Z();b("Reached an unreachable!")}tf.X=1;function vf(a){var c,d;0==(p[wf>>2]|0)&&xf();var e=0==(p[X+440>>2]&4|0);do{if(e){d=p[X+24>>2];if(0==(d|0)){d=6}else{if(d=yf(d),0==(d|0)){d=6}else{var f=p[wf+8>>2],f=a+47-p[X+12>>2]+f&-f;if(2147483647>f>>>0){var g=zf(f);if((g|0)==(p[d>>2]+p[d+4>>2]|0)){var h=g,i=f;c=g;d=13}else{var j=g,o=f;d=15}}else{d=14}}}if(6==d){if(d=zf(0),-1==(d|0)){d=14}else{var f=p[wf+8>>2],f=f+(a+47)&-f,g=d,u=p[wf+4>>2],q=u-1|0,f=0==(q&g|0)?f:f-g+(q+g&-u)|0;2147483647>f>>>0?(g=zf(f),(g|0)==(d|0)?(h=d,i=f,c=g,d=13):(j=g,o=f,d=15)):d=14}}if(13==d){if(-1!=(h|0)){var t=i,s=h;d=26;break}j=c;o=i}else{if(14==d){p[X+440>>2]|=4;d=23;break}}d=-o|0;if(-1!=(j|0)&2147483647>o>>>0){if(o>>>0<(a+48|0)>>>0){f=p[wf+8>>2],f=a+47-o+f&-f,2147483647>f>>>0?-1==(zf(f)|0)?(zf(d),d=22):(B=f+o|0,d=21):(B=o,d=21)}else{var B=o;d=21}}else{B=o,d=21}21==d&&-1!=(j|0)?(t=B,s=j,d=26):(p[X+440>>2]|=4,d=23)}else{d=23}}while(0);23==d&&(e=p[wf+8>>2],e=e+(a+47)&-e,2147483647>e>>>0?(e=zf(e),h=zf(0),-1!=(h|0)&-1!=(e|0)&e>>>0>>0?(h=h-e|0,h>>>0<=(a+40|0)>>>0|-1==(e|0)?d=49:(t=h,s=e,d=26)):d=49):d=49);a:do{if(26==d){e=p[X+432>>2]+t|0;p[X+432>>2]=e;e>>>0>x[X+436>>2]>>>0&&(p[X+436>>2]=e);e=x[X+24>>2];h=0==(e|0);b:do{if(h){i=x[X+16>>2];0==(i|0)|s>>>0>>0&&(p[X+16>>2]=s);p[X+444>>2]=s;p[X+448>>2]=t;p[X+456>>2]=0;p[X+36>>2]=p[wf>>2];p[X+32>>2]=-1;for(i=0;!(c=i<<1,j=(c<<2)+X+40|0,p[X+(c+3<<2)+40>>2]=j,p[X+(c+2<<2)+40>>2]=j,i=i+1|0,32==(i|0));){}Af(s,t-40|0)}else{j=X+444|0;for(c=j>>2;0!=(j|0);){i=x[c];j=j+4|0;o=x[j>>2];B=i+o|0;if((s|0)==(B|0)){if(0!=(p[c+3]&8|0)){break}c=e;if(!(c>>>0>=i>>>0&c>>>0>>0)){break}p[j>>2]=o+t|0;Af(p[X+24>>2],p[X+12>>2]+t|0);break b}j=p[c+2];c=j>>2}s>>>0>2]>>>0&&(p[X+16>>2]=s);c=s+t|0;for(j=X+444|0;0!=(j|0);){o=j|0;i=x[o>>2];if((i|0)==(c|0)){if(0!=(p[j+12>>2]&8|0)){break}p[o>>2]=s;var v=j+4|0;p[v>>2]=p[v>>2]+t|0;v=Bf(s,i,a);d=50;break a}j=p[j+8>>2]}Cf(s,t)}}while(0);e=x[X+12>>2];e>>>0>a>>>0?(v=e-a|0,p[X+12>>2]=v,h=e=x[X+24>>2],p[X+24>>2]=h+a|0,p[a+(h+4)>>2]=v|1,p[e+4>>2]=a|3,v=e+8|0,d=50):d=49}}while(0);49==d&&(p[Pc>>2]=12,v=0);return v}vf.X=1;function uf(a){var c,d,e,f,g,h=a>>2,i=-a|0,j=a>>>8;if(0==(j|0)){var o=0}else{if(16777215>>0){o=31}else{var u=(j+1048320|0)>>>16&8,q=j<>>16&4,s=q<>>16&2,v=14-(t|u|B)+(s<>>15)|0,o=a>>>((v+7|0)>>>0)&1|v<<1}}var y=x[X+(o<<2)+304>>2],A=0==(y|0);a:do{if(A){var r=0,D=i,L=0}else{var H=31==(o|0)?0:25-(o>>>1)|0,P=0,J=i,G=y;g=G>>2;for(var I=a<>>0>>0){if((O|0)==(a|0)){r=G;D=N;L=G;break a}var Q=G,$=N}else{Q=P,$=J}var ha=x[g+5],ba=x[((I>>>31<<2)+16>>2)+g],R=0==(ha|0)|(ha|0)==(ba|0)?M:ha;if(0==(ba|0)){r=Q;D=$;L=R;break a}P=Q;J=$;G=ba;g=G>>2;I<<=1;M=R}}}while(0);if(0==(L|0)&0==(r|0)){var Sa=2<>2]&(Sa|-Sa);if(0==(fa|0)){var U=L}else{var qa=(fa&-fa)-1|0,Aa=qa>>>12&16,da=qa>>>(Aa>>>0),Ea=da>>>5&8,ra=da>>>(Ea>>>0),pb=ra>>>2&4,bb=ra>>>(pb>>>0),Eb=bb>>>1&2,sa=bb>>>(Eb>>>0),Fa=sa>>>1&1,U=p[X+((Ea|Aa|pb|Eb|Fa)+(sa>>>(Fa>>>0))<<2)+304>>2]}}else{U=L}var Zb=0==(U|0);a:do{if(Zb){var ga=D,ta=r;f=ta>>2}else{var ia=U;e=ia>>2;for(var La=D,cb=r;;){var db=(p[e+1]&-8)-a|0,Fb=db>>>0>>0,ja=Fb?db:La,rb=Fb?ia:cb,Ga=x[e+4];if(0!=(Ga|0)){ia=Ga}else{var sb=x[e+5];if(0==(sb|0)){ga=ja;ta=rb;f=ta>>2;break a}ia=sb}e=ia>>2;La=ja;cb=rb}}}while(0);var tb=0==(ta|0);a:do{if(tb){var Ta=0}else{if(ga>>>0<(p[X+8>>2]-a|0)>>>0){var Ma=ta;d=Ma>>2;var Ua=x[X+16>>2],ub=Ma>>>0>>0;do{if(!ub){var eb=Ma+a|0,vb=eb;if(Ma>>>0>>0){var Na=x[f+6],Va=x[f+3],Nb=(Va|0)==(ta|0);do{if(Nb){var Gb=ta+20|0,Hb=p[Gb>>2];if(0==(Hb|0)){var Ib=ta+16|0,Wa=p[Ib>>2];if(0==(Wa|0)){var Y=0;c=Y>>2;break}var na=Ib,ka=Wa}else{na=Gb,ka=Hb}for(;;){var ua=ka+20|0,va=p[ua>>2];if(0!=(va|0)){na=ua,ka=va}else{var fb=ka+16|0,Oa=x[fb>>2];if(0==(Oa|0)){break}na=fb;ka=Oa}}na>>>0>>0&&(Z(),b("Reached an unreachable!"));p[na>>2]=0;Y=ka}else{var gb=x[f+2];gb>>>0>>0&&(Z(),b("Reached an unreachable!"));p[gb+12>>2]=Va;p[Va+8>>2]=gb;Y=Va}c=Y>>2}while(0);var Ob=0==(Na|0);b:do{if(!Ob){var S=ta+28|0,oa=(p[S>>2]<<2)+X+304|0,Xa=(ta|0)==(p[oa>>2]|0);do{if(Xa){p[oa>>2]=Y;if(0!=(Y|0)){break}p[X+4>>2]&=1<>2]^-1;break b}Na>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));var la=Na+16|0;(p[la>>2]|0)==(ta|0)?p[la>>2]=Y:p[Na+20>>2]=Y;if(0==(Y|0)){break b}}while(0);Y>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));p[c+6]=Na;var wa=x[f+4];0!=(wa|0)&&(wa>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[c+4]=wa,p[wa+24>>2]=Y);var ma=x[f+5];0!=(ma|0)&&(ma>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[c+5]=ma,p[ma+24>>2]=Y)}}while(0);var Ya=16>ga>>>0;b:do{if(Ya){var Jb=ga+a|0;p[f+1]=Jb|3;var wb=Jb+(Ma+4)|0;p[wb>>2]|=1}else{if(p[f+1]=a|3,p[h+(d+1)]=ga|1,p[(ga>>2)+d+h]=ga,256>ga>>>0){var Za=ga>>>2&1073741822,Ha=(Za<<2)+X+40|0,Ia=x[X>>2],Pa=1<<(ga>>>3);if(0==(Ia&Pa|0)){p[X>>2]=Ia|Pa;var hb=Ha,ib=(Za+2<<2)+X+40|0}else{var Qa=(Za+2<<2)+X+40|0,xa=x[Qa>>2];xa>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));hb=xa;ib=Qa}p[ib>>2]=vb;p[hb+12>>2]=vb;p[h+(d+2)]=hb;p[h+(d+3)]=Ha}else{var Ja=eb,jb=ga>>>8;if(0==(jb|0)){var Ba=0}else{if(16777215>>0){Ba=31}else{var $a=(jb+1048320|0)>>>16&8,xb=jb<<$a,kb=(xb+520192|0)>>>16&4,yb=xb<>>16&2,Lb=14-(kb|$a|Kb)+(yb<>>15)|0,Ba=ga>>>((Lb+7|0)>>>0)&1|Lb<<1}}var Pb=(Ba<<2)+X+304|0;p[h+(d+7)]=Ba;var Qb=a+(Ma+16)|0;p[h+(d+5)]=0;p[Qb>>2]=0;var Ka=p[X+4>>2],gc=1<>2]=Ka|gc,p[Pb>>2]=Ja,p[h+(d+6)]=Pb,p[h+(d+3)]=Ja,p[h+(d+2)]=Ja}else{for(var Tb=ga<<(31==(Ba|0)?0:25-(Ba>>>1)|0),lb=p[Pb>>2];;){if((p[lb+4>>2]&-8|0)==(ga|0)){var hc=lb+8|0,mb=x[hc>>2],Mb=x[X+16>>2],lc=lb>>>0>>0;do{if(!lc&&mb>>>0>=Mb>>>0){p[mb+12>>2]=Ja;p[hc>>2]=Ja;p[h+(d+2)]=mb;p[h+(d+3)]=lb;p[h+(d+6)]=0;break b}}while(0);Z();b("Reached an unreachable!")}var $b=(Tb>>>31<<2)+lb+16|0,mc=x[$b>>2];if(0==(mc|0)){if($b>>>0>=x[X+16>>2]>>>0){p[$b>>2]=Ja;p[h+(d+6)]=lb;p[h+(d+3)]=Ja;p[h+(d+2)]=Ja;break b}Z();b("Reached an unreachable!")}Tb<<=1;lb=mc}}}}}while(0);Ta=ta+8|0;break a}}}while(0);Z();b("Reached an unreachable!")}Ta=0}}while(0);return Ta}uf.X=1;function Df(){var a;0==(p[wf>>2]|0)&&xf();var c=x[X+24>>2],d=0==(c|0);a:do{if(!d){var e=x[X+12>>2],f=40>>0;do{if(f){var g=x[wf+8>>2],h=(Math.floor(((e-41+g|0)>>>0)/(g>>>0))-1)*g|0,i=yf(c);if(0==(p[i+12>>2]&8|0)){var j=zf(0);a=(i+4|0)>>2;if((j|0)==(p[i>>2]+p[a]|0)&&(h=zf(-(2147483646>>0?-2147483648-g|0:h)|0),g=zf(0),-1!=(h|0)&g>>>0>>0&&(h=j-g|0,(j|0)!=(g|0)))){p[a]=p[a]-h|0;p[X+432>>2]=p[X+432>>2]-h|0;Af(p[X+24>>2],p[X+12>>2]-h|0);break a}}}}while(0);x[X+12>>2]>>>0>x[X+28>>2]>>>0&&(p[X+28>>2]=-1)}}while(0)}Df.X=1;function Le(a){var c,d,e,f,g,h,i=a>>2,j,o=0==(a|0);a:do{if(!o){var u=a-8|0,q=u,t=x[X+16>>2],s=u>>>0>>0;b:do{if(!s){var B=x[a-4>>2],v=B&3;if(1!=(v|0)){var y=B&-8;h=y>>2;var A=a+(y-8)|0,r=A,D=0==(B&1|0);c:do{if(D){var L=x[u>>2];if(0==(v|0)){break a}var H=-8-L|0;g=H>>2;var P=a+H|0,J=P,G=L+y|0;if(P>>>0>>0){break b}if((J|0)==(p[X+20>>2]|0)){f=(a+(y-4)|0)>>2;if(3!=(p[f]&3|0)){var I=J;e=I>>2;var M=G;break}p[X+8>>2]=G;p[f]&=-2;p[g+(i+1)]=G|1;p[A>>2]=G;break a}if(256>L>>>0){var O=x[g+(i+2)],N=x[g+(i+3)];if((O|0)==(N|0)){p[X>>2]&=1<<(L>>>3)^-1,I=J,e=I>>2,M=G}else{var Q=((L>>>2&1073741822)<<2)+X+40|0,$=(O|0)!=(Q|0)&O>>>0>>0;do{if(!$&&(N|0)==(Q|0)|N>>>0>=t>>>0){p[O+12>>2]=N;p[N+8>>2]=O;I=J;e=I>>2;M=G;break c}}while(0);Z();b("Reached an unreachable!")}}else{var ha=P,ba=x[g+(i+6)],R=x[g+(i+3)],Sa=(R|0)==(ha|0);do{if(Sa){var fa=H+(a+20)|0,U=p[fa>>2];if(0==(U|0)){var qa=H+(a+16)|0,Aa=p[qa>>2];if(0==(Aa|0)){var da=0;d=da>>2;break}var Ea=qa,ra=Aa}else{Ea=fa,ra=U,j=21}for(;;){var pb=ra+20|0,bb=p[pb>>2];if(0!=(bb|0)){Ea=pb,ra=bb}else{var Eb=ra+16|0,sa=x[Eb>>2];if(0==(sa|0)){break}Ea=Eb;ra=sa}}Ea>>>0>>0&&(Z(),b("Reached an unreachable!"));p[Ea>>2]=0;da=ra}else{var Fa=x[g+(i+2)];Fa>>>0>>0&&(Z(),b("Reached an unreachable!"));p[Fa+12>>2]=R;p[R+8>>2]=Fa;da=R}d=da>>2}while(0);if(0!=(ba|0)){var Zb=H+(a+28)|0,ga=(p[Zb>>2]<<2)+X+304|0,ta=(ha|0)==(p[ga>>2]|0);do{if(ta){p[ga>>2]=da;if(0!=(da|0)){break}p[X+4>>2]&=1<>2]^-1;I=J;e=I>>2;M=G;break c}ba>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));var ia=ba+16|0;(p[ia>>2]|0)==(ha|0)?p[ia>>2]=da:p[ba+20>>2]=da;if(0==(da|0)){I=J;e=I>>2;M=G;break c}}while(0);da>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));p[d+6]=ba;var La=x[g+(i+4)];0!=(La|0)&&(La>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[d+4]=La,p[La+24>>2]=da);var cb=x[g+(i+5)];0!=(cb|0)&&(cb>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[d+5]=cb,p[cb+24>>2]=da)}I=J;e=I>>2;M=G}}else{I=q,e=I>>2,M=y}}while(0);var db=I;if(db>>>0>>0){var Fb=a+(y-4)|0,ja=x[Fb>>2];if(0!=(ja&1|0)){var rb=0==(ja&2|0);do{if(rb){if((r|0)==(p[X+24>>2]|0)){var Ga=p[X+12>>2]+M|0;p[X+12>>2]=Ga;p[X+24>>2]=I;p[e+1]=Ga|1;(I|0)==(p[X+20>>2]|0)&&(p[X+20>>2]=0,p[X+8>>2]=0);if(Ga>>>0<=x[X+28>>2]>>>0){break a}Df();break a}if((r|0)==(p[X+20>>2]|0)){var sb=p[X+8>>2]+M|0;p[X+8>>2]=sb;p[X+20>>2]=I;p[e+1]=sb|1;p[(db+sb|0)>>2]=sb;break a}var tb=(ja&-8)+M|0,Ta=ja>>>3,Ma=256>ja>>>0;c:do{if(Ma){var Ua=x[i+h],ub=x[((y|4)>>2)+i];if((Ua|0)==(ub|0)){p[X>>2]&=1<>>2&1073741822)<<2)+X+40|0;j=(Ua|0)==(eb|0)?63:Ua>>>0>2]>>>0?66:63;do{if(63==j&&!((ub|0)!=(eb|0)&&ub>>>0>2]>>>0)){p[Ua+12>>2]=ub;p[ub+8>>2]=Ua;break c}}while(0);Z();b("Reached an unreachable!")}}else{var vb=A,Na=x[h+(i+4)],Va=x[((y|4)>>2)+i],Nb=(Va|0)==(vb|0);do{if(Nb){var Gb=y+(a+12)|0,Hb=p[Gb>>2];if(0==(Hb|0)){var Ib=y+(a+8)|0,Wa=p[Ib>>2];if(0==(Wa|0)){var Y=0;c=Y>>2;break}var na=Ib,ka=Wa}else{na=Gb,ka=Hb,j=73}for(;;){var ua=ka+20|0,va=p[ua>>2];if(0!=(va|0)){na=ua,ka=va}else{var fb=ka+16|0,Oa=x[fb>>2];if(0==(Oa|0)){break}na=fb;ka=Oa}}na>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));p[na>>2]=0;Y=ka}else{var gb=x[i+h];gb>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));p[gb+12>>2]=Va;p[Va+8>>2]=gb;Y=Va}c=Y>>2}while(0);if(0!=(Na|0)){var Ob=y+(a+20)|0,S=(p[Ob>>2]<<2)+X+304|0,oa=(vb|0)==(p[S>>2]|0);do{if(oa){p[S>>2]=Y;if(0!=(Y|0)){break}p[X+4>>2]&=1<>2]^-1;break c}Na>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));var Xa=Na+16|0;(p[Xa>>2]|0)==(vb|0)?p[Xa>>2]=Y:p[Na+20>>2]=Y;if(0==(Y|0)){break c}}while(0);Y>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));p[c+6]=Na;var la=x[h+(i+2)];0!=(la|0)&&(la>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[c+4]=la,p[la+24>>2]=Y);var wa=x[h+(i+3)];0!=(wa|0)&&(wa>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[c+5]=wa,p[wa+24>>2]=Y)}}}while(0);p[e+1]=tb|1;p[db+tb>>2]=tb;if((I|0)!=(p[X+20>>2]|0)){var ma=tb}else{p[X+8>>2]=tb;break a}}else{p[Fb>>2]=ja&-2,p[e+1]=M|1,ma=p[db+M>>2]=M}}while(0);if(256>ma>>>0){var Ya=ma>>>2&1073741822,Jb=(Ya<<2)+X+40|0,wb=x[X>>2],Za=1<<(ma>>>3);if(0==(wb&Za|0)){p[X>>2]=wb|Za;var Ha=Jb,Ia=(Ya+2<<2)+X+40|0}else{var Pa=(Ya+2<<2)+X+40|0,hb=x[Pa>>2];hb>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));Ha=hb;Ia=Pa}p[Ia>>2]=I;p[Ha+12>>2]=I;p[e+2]=Ha;p[e+3]=Jb;break a}var ib=I,Qa=ma>>>8;if(0==(Qa|0)){var xa=0}else{if(16777215>>0){xa=31}else{var Ja=(Qa+1048320|0)>>>16&8,jb=Qa<>>16&4,$a=jb<>>16&2,kb=14-(Ba|Ja|xb)+($a<>>15)|0,xa=ma>>>((kb+7|0)>>>0)&1|kb<<1}}var yb=(xa<<2)+X+304|0;p[e+7]=xa;p[e+5]=0;p[e+4]=0;var Kb=p[X+4>>2],Lb=1<>2]=Kb|Lb,p[yb>>2]=ib,p[e+6]=yb,p[e+3]=I,p[e+2]=I}else{for(var Qb=ma<<(31==(xa|0)?0:25-(xa>>>1)|0),Ka=p[yb>>2];;){if((p[Ka+4>>2]&-8|0)==(ma|0)){var gc=Ka+8|0,Tb=x[gc>>2],lb=x[X+16>>2],hc=Ka>>>0>>0;do{if(!hc&&Tb>>>0>=lb>>>0){p[Tb+12>>2]=ib;p[gc>>2]=ib;p[e+2]=Tb;p[e+3]=Ka;p[e+6]=0;break c}}while(0);Z();b("Reached an unreachable!")}var mb=(Qb>>>31<<2)+Ka+16|0,Mb=x[mb>>2];if(0==(Mb|0)){if(mb>>>0>=x[X+16>>2]>>>0){p[mb>>2]=ib;p[e+6]=Ka;p[e+3]=I;p[e+2]=I;break c}Z();b("Reached an unreachable!")}Qb<<=1;Ka=Mb}}}while(0);var lc=p[X+32>>2]-1|0;p[X+32>>2]=lc;if(0!=(lc|0)){break a}var $b=p[X+452>>2],mc=0==($b|0);c:do{if(!mc){for(var cd=$b;;){var Ab=p[cd+8>>2];if(0==(Ab|0)){break c}cd=Ab}}}while(0);p[X+32>>2]=-1;break a}}}}}while(0);Z();b("Reached an unreachable!")}}while(0)}Module._free=Le;Le.X=1;function yf(a){var c,d=X+444|0;for(c=d>>2;;){var e=x[c];if(e>>>0<=a>>>0&&(e+p[c+1]|0)>>>0>a>>>0){var f=d;break}c=x[c+2];if(0==(c|0)){f=0;break}d=c;c=d>>2}return f}function Af(a,c){var d=a+8|0,d=0==(d&7|0)?0:-d&7,e=c-d|0;p[X+24>>2]=a+d|0;p[X+12>>2]=e;p[d+(a+4)>>2]=e|1;p[c+(a+4)>>2]=40;p[X+28>>2]=p[wf+16>>2]}function ud(a,c){var d,e,f,g=4294967231>>0;a:do{if(g){p[Pc>>2]=12;var h=0}else{f=d=a-8|0;e=(a-4|0)>>2;var i=x[e],j=i&-8,o=j-8|0,u=a+o|0,q=d>>>0>2]>>>0;do{if(!q){var t=i&3;if(1!=(t|0)&-8<(o|0)&&(d=(a+(j-4)|0)>>2,0!=(p[d]&1|0))){g=11>c>>>0?16:c+11&-8;if(0==(t|0)){var s=0,B,i=p[f+4>>2]&-8;B=256>g>>>0?0:i>>>0>=(g+4|0)>>>0&&(i-g|0)>>>0<=p[wf+8>>2]<<1>>>0?f:0;f=17}else{j>>>0>>0?(u|0)!=(p[X+24>>2]|0)?f=21:(d=p[X+12>>2]+j|0,d>>>0>g>>>0?(s=d-g|0,B=a+(g-8)|0,p[e]=g|i&1|2,p[a+(g-4)>>2]=s|1,p[X+24>>2]=B,p[X+12>>2]=s,s=0,B=f,f=17):f=21):(s=j-g|0,15>>0?(p[e]=g|i&1|2,p[a+(g-4)>>2]=s|3,p[d]|=1,s=a+g|0):s=0,B=f,f=17)}do{if(17==f&&0!=(B|0)){0!=(s|0)&&Le(s);h=B+8|0;break a}}while(0);f=nc(c);if(0==(f|0)){h=0;break a}e=j-(0==(p[e]&3|0)?8:4)|0;qd(f,a,e>>>0>>0?e:c);Le(a);h=f;break a}}}while(0);Z();b("Reached an unreachable!")}}while(0);return h}ud.X=1;function xf(){if(0==(p[wf>>2]|0)){var a=Ef();0==(a-1&a|0)?(p[wf+8>>2]=a,p[wf+4>>2]=a,p[wf+12>>2]=-1,p[wf+16>>2]=2097152,p[wf+20>>2]=0,p[X+440>>2]=0,p[wf>>2]=Math.floor(Date.now()/1e3)&-16^1431655768):(Z(),b("Reached an unreachable!"))}}function Bf(a,c,d){var e,f,g,h=c>>2,i=a>>2,j,o=a+8|0,o=0==(o&7|0)?0:-o&7;f=c+8|0;var u=0==(f&7|0)?0:-f&7;g=u>>2;var q=c+u|0,t=o+d|0;f=t>>2;var s=a+t|0,B=q-(a+o)-d|0;p[(o+4>>2)+i]=d|3;d=(q|0)==(p[X+24>>2]|0);a:do{if(d){var v=p[X+12>>2]+B|0;p[X+12>>2]=v;p[X+24>>2]=s;p[f+(i+1)]=v|1}else{if((q|0)==(p[X+20>>2]|0)){v=p[X+8>>2]+B|0,p[X+8>>2]=v,p[X+20>>2]=s,p[f+(i+1)]=v|1,p[(a+v+t|0)>>2]=v}else{var y=x[g+(h+1)];if(1==(y&3|0)){var v=y&-8,A=y>>>3,r=256>y>>>0;b:do{if(r){var D=x[((u|8)>>2)+h],L=x[g+(h+3)];if((D|0)==(L|0)){p[X>>2]&=1<>>2&1073741822)<<2)+X+40|0;j=(D|0)==(H|0)?15:D>>>0>2]>>>0?18:15;do{if(15==j&&!((L|0)!=(H|0)&&L>>>0>2]>>>0)){p[D+12>>2]=L;p[L+8>>2]=D;break b}}while(0);Z();b("Reached an unreachable!")}}else{j=q;D=x[((u|24)>>2)+h];L=x[g+(h+3)];H=(L|0)==(j|0);do{if(H){e=u|16;var P=e+(c+4)|0,J=p[P>>2];if(0==(J|0)){if(e=c+e|0,J=p[e>>2],0==(J|0)){J=0;e=J>>2;break}}else{e=P}for(;;){var P=J+20|0,G=p[P>>2];if(0==(G|0)&&(P=J+16|0,G=x[P>>2],0==(G|0))){break}e=P;J=G}e>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));p[e>>2]=0}else{e=x[((u|8)>>2)+h],e>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[e+12>>2]=L,p[L+8>>2]=e,J=L}e=J>>2}while(0);if(0!=(D|0)){L=u+(c+28)|0;H=(p[L>>2]<<2)+X+304|0;P=(j|0)==(p[H>>2]|0);do{if(P){p[H>>2]=J;if(0!=(J|0)){break}p[X+4>>2]&=1<>2]^-1;break b}D>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));G=D+16|0;(p[G>>2]|0)==(j|0)?p[G>>2]=J:p[D+20>>2]=J;if(0==(J|0)){break b}}while(0);J>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));p[e+6]=D;j=u|16;D=x[(j>>2)+h];0!=(D|0)&&(D>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[e+4]=D,p[D+24>>2]=J);j=x[(j+4>>2)+h];0!=(j|0)&&(j>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[e+5]=j,p[j+24>>2]=J)}}}while(0);y=c+(v|u)|0;v=v+B|0}else{y=q,v=B}y=y+4|0;p[y>>2]&=-2;p[f+(i+1)]=v|1;p[(v>>2)+i+f]=v;if(256>v>>>0){A=v>>>2&1073741822,y=(A<<2)+X+40|0,r=x[X>>2],v=1<<(v>>>3),0==(r&v|0)?(p[X>>2]=r|v,v=y,A=(A+2<<2)+X+40|0):(A=(A+2<<2)+X+40|0,v=x[A>>2],v>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"))),p[A>>2]=s,p[v+12>>2]=s,p[f+(i+2)]=v,p[f+(i+3)]=y}else{if(y=s,r=v>>>8,0==(r|0)?A=0:16777215>>0?A=31:(A=(r+1048320|0)>>>16&8,j=r<>>16&4,j<<=r,D=(j+245760|0)>>>16&2,A=14-(r|A|D)+(j<>>15)|0,A=v>>>((A+7|0)>>>0)&1|A<<1),r=(A<<2)+X+304|0,p[f+(i+7)]=A,j=t+(a+16)|0,p[f+(i+5)]=0,p[j>>2]=0,j=p[X+4>>2],D=1<>2]=j|D,p[r>>2]=y,p[f+(i+6)]=r,p[f+(i+3)]=y,p[f+(i+2)]=y}else{A=v<<(31==(A|0)?0:25-(A>>>1)|0);for(r=p[r>>2];;){if((p[r+4>>2]&-8|0)==(v|0)){j=r+8|0;D=x[j>>2];L=x[X+16>>2];H=r>>>0>>0;do{if(!H&&D>>>0>=L>>>0){p[D+12>>2]=y;p[j>>2]=y;p[f+(i+2)]=D;p[f+(i+3)]=r;p[f+(i+6)]=0;break a}}while(0);Z();b("Reached an unreachable!")}j=(A>>>31<<2)+r+16|0;D=x[j>>2];if(0==(D|0)){if(j>>>0>=x[X+16>>2]>>>0){p[j>>2]=y;p[f+(i+6)]=r;p[f+(i+3)]=y;p[f+(i+2)]=y;break a}Z();b("Reached an unreachable!")}A<<=1;r=D}}}}}}while(0);return a+(o|8)|0}Bf.X=1;function Re(a){0!=(a|0)&&Le(a)}function Ff(a){Gf(a|0)}function Cf(a,c){var d,e,f=x[X+24>>2];e=f>>2;var g=yf(f),h=p[g>>2];d=p[g+4>>2];var g=h+d|0,i=h+(d-39)|0,h=h+(d-47)+(0==(i&7|0)?0:-i&7)|0,h=h>>>0<(f+16|0)>>>0?f:h,i=h+8|0;d=i>>2;Af(a,c-40|0);p[(h+4|0)>>2]=27;p[d]=p[X+444>>2];p[d+1]=p[X+448>>2];p[d+2]=p[X+452>>2];p[d+3]=p[X+456>>2];p[X+444>>2]=a;p[X+448>>2]=c;p[X+456>>2]=0;p[X+452>>2]=i;d=h+28|0;p[d>>2]=7;i=(h+32|0)>>>0>>0;a:do{if(i){for(var j=d;;){var o=j+4|0;p[o>>2]=7;if((j+8|0)>>>0>=g>>>0){break a}j=o}}}while(0);g=(h|0)==(f|0);a:do{if(!g){if(d=h-f|0,i=f+d|0,j=d+(f+4)|0,p[j>>2]&=-2,p[e+1]=d|1,p[i>>2]=d,256>d>>>0){j=d>>>2&1073741822,i=(j<<2)+X+40|0,o=x[X>>2],d=1<<(d>>>3),0==(o&d|0)?(p[X>>2]=o|d,d=i,j=(j+2<<2)+X+40|0):(j=(j+2<<2)+X+40|0,d=x[j>>2],d>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"))),p[j>>2]=f,p[d+12>>2]=f,p[e+2]=d,p[e+3]=i}else{i=f;o=d>>>8;if(0==(o|0)){j=0}else{if(16777215>>0){j=31}else{var j=(o+1048320|0)>>>16&8,u=o<>>16&4,u=u<>>16&2,j=14-(o|j|q)+(u<>>15)|0,j=d>>>((j+7|0)>>>0)&1|j<<1}}o=(j<<2)+X+304|0;p[e+7]=j;p[e+5]=0;p[e+4]=0;u=p[X+4>>2];q=1<>2]=u|q,p[o>>2]=i,p[e+6]=o,p[e+3]=f,p[e+2]=f}else{j=d<<(31==(j|0)?0:25-(j>>>1)|0);for(o=p[o>>2];;){if((p[o+4>>2]&-8|0)==(d|0)){var u=o+8|0,q=x[u>>2],t=x[X+16>>2],s=o>>>0>>0;do{if(!s&&q>>>0>=t>>>0){p[q+12>>2]=i;p[u>>2]=i;p[e+2]=q;p[e+3]=o;p[e+6]=0;break a}}while(0);Z();b("Reached an unreachable!")}u=(j>>>31<<2)+o+16|0;q=x[u>>2];if(0==(q|0)){if(u>>>0>=x[X+16>>2]>>>0){p[u>>2]=i;p[e+6]=o;p[e+3]=f;p[e+2]=f;break a}Z();b("Reached an unreachable!")}j<<=1;o=q}}}}}while(0)}Cf.X=1;function sd(a){for(a=0==(a|0)?1:a;;){var c=nc(a);if(0==(c|0)){c=(Xb=p[Hf>>2],p[Hf>>2]=Xb,Xb);if(0==(c|0)){var d=nc(4);p[d>>2]=If+8|0;vd(d,Jf,2);b("Reached an unreachable!")}pc[c]()}else{return c}}return ca}function W(a){Pc||(Pc=F([0],"i32",E));p[Pc>>2]=a}var Pc,Kf=13,Me=9,Ce=22,Lf=5,Mf=21,Nf=25,Of=6,Be=34,Pf=0,Qf=0,Rf=0,ve=0,Sf=2,Ke=[ca],Tf=k;function Uf(a,c){if("string"!==typeof a){return ca}c===aa&&(c="/");a&&"/"==a[0]&&(c="");for(var d=(c+"/"+a).split("/").reverse(),e=[""];d.length;){var f=d.pop();""==f||"."==f||(".."==f?1d||0>e){return W(Ce),-1}for(a=0;f.b.length&&0d){return W(Ce),-1}if(e.object.d){if(e.object.input){for(a=0;e.b.length&&0d){return W(Ce),-1}if(e.object.d){if(e.object.e){for(var f=0;fd||0>f){W(Ce),c=-1}else{for(var h=a.object.a;h.length>2,a=a>>2,e=d>>2;c>=1;a>>=1;for(e=d>>1;c>2]=0}catch(e){}try{p[ng>>2]=1}catch(f){}try{p[og>>2]=2}catch(g){}mg=k}print("Compiled code throwing an exception, "+[a,c,d]+", at "+Error().stack);p[pg>>2]=a;p[pg+4>>2]=c;p[pg+8>>2]=d;"uncaught_exception"in lg?lg.w++:lg.w=1;b(a)}var mg;function zd(a,c,d){if(c>2],jc[1]=p[c+f+4>>2],fc[0]):"i64"==a?d=[p[c+f>>2],p[c+f+4>>2]]:(a="i32",d=p[c+f>>2]);f+=Math.max(nb(a),ob);return d}for(var e=a,f=0,g=[],h,i;;){var j=e;h=n[e];if(0===h){break}i=n[e+1];if(37==h){var o=l,u=l,q=l,t=l;a:for(;;){switch(i){case 43:o=k;break;case 45:u=k;break;case 35:q=k;break;case 48:if(t){break a}else{t=k;break};default:break a}e++;i=n[e+1]}var s=0;if(42==i){s=d("i32"),e++,i=n[e+1]}else{for(;48<=i&&57>=i;){s=10*s+(i-48),e++,i=n[e+1]}}var B=l;if(46==i){var v=0,B=k;e++;i=n[e+1];if(42==i){v=d("i32"),e++}else{for(;;){i=n[e+1];if(48>i||57>>0)+4294967296*(h[1]>>>0):(h[0]>>>0)+4294967296*(h[1]|0));4>=y&&(h=(j?Gc:Fc)(h&Math.pow(256,y)-1,8*y));var A=Math.abs(h),r,j="";if(100==i||105==i){r=Gc(h,8*y).toString(10)}else{if(117==i){r=Fc(h,8*y).toString(10),h=Math.abs(h)}else{if(111==i){r=(q?"0":"")+A.toString(8)}else{if(120==i||88==i){j=q?"0x":"";if(0>h){h=-h;r=(A-1).toString(16);q=[];for(A=0;Ah?"-"+j:"+"+j);j.length+r.lengthy&&-4<=y?(i=(103==i?"f":"F").charCodeAt(0),v-=y+1):(i=(103==i?"e":"E").charCodeAt(0),v--),y=Math.min(v,20)}if(101==i||69==i){r=h.toExponential(y),/[eE][-+]\d$/.test(r)&&(r=r.slice(0,-1)+"0"+r.slice(-1))}else{if(102==i||70==i){r=h.toFixed(y)}}j=r.split("e");if(B&&!q){for(;1y++;){j[0]+="0"}}r=j[0]+(1h?"-":"")+"inf",t=l}}for(;r.lengthi&&(r=r.toUpperCase());r.split("").forEach((function(a){g.push(a.charCodeAt(0))}))}else{if(115==i){(o=d("i8*"))?(o=Ec(o),B&&o.length>v&&(o=o.slice(0,v))):o=uc("(null)",k);if(!u){for(;o.length>2]=g.length}else{if(37==i){g.push(h)}else{for(A=j;Ac&&(c+=256);for(var a=a>>2,e=d>>2,f=c|c<<8|c<<16|c<<24;a>2],a,c)}var pf;function Z(){b("ABORT: undefined, at "+Error().stack)}function Ef(){switch(8){case 8:return qc;case 54:case 56:case 21:case 61:case 63:case 22:case 67:case 23:case 24:case 25:case 26:case 27:case 69:case 28:case 101:case 70:case 71:case 29:case 30:case 199:case 75:case 76:case 32:case 43:case 44:case 80:case 46:case 47:case 45:case 48:case 49:case 42:case 82:case 33:case 7:case 108:case 109:case 107:case 112:case 119:case 121:return 200809;case 13:case 104:case 94:case 95:case 34:case 35:case 77:case 81:case 83:case 84:case 85:case 86:case 87:case 88:case 89:case 90:case 91:case 94:case 95:case 110:case 111:case 113:case 114:case 115:case 116:case 117:case 118:case 120:case 40:case 16:case 79:case 19:return-1;case 92:case 93:case 5:case 72:case 6:case 74:case 92:case 93:case 96:case 97:case 98:case 99:case 102:case 103:case 105:return 1;case 38:case 66:case 50:case 51:case 4:return 1024;case 15:case 64:case 41:return 32;case 55:case 37:case 17:return 2147483647;case 18:case 1:return 47839;case 59:case 57:return 99;case 68:case 58:return 2048;case 0:return 2097152;case 3:return 65536;case 14:return 32768;case 73:return 32767;case 39:return 16384;case 60:return 1e3;case 106:return 700;case 52:return 256;case 62:return 255;case 2:return 100;case 65:return 64;case 36:return 20;case 100:return 16;case 20:return 6;case 53:return 4}W(Ce);return-1}function zf(a){qg||(Cb=Cb+4095>>12<<12,qg=k);var c=Cb;0!=a&&Bb(a);return c}var qg,Gf;function De(a){n[rg]=Fc(10);-1==Sc(a,rg,1)&&a in Ke&&(Ke[a].error=k)}function Oe(a){var c=p[Qf>>2];0>Sc(c,a,Dc(a))||De(c)}W(0);Ac.unshift({l:(function(){Tf=l;dg||cg()})});Bc.push({l:(function(){dg&&(Ke[2]&&0a;a++){e.push(0)}}var d=a.length+1,e=[F(uc("/bin/this.program"),"i8",E)];c();for(var f=0;f>>1,c=0==(a&1|0)?c:c^-306674912,d=c>>>1,c=0==(c&1|0)?d:d^-306674912,d=c>>>1,c=0==(c&1|0)?d:d^-306674912,d=c>>>1,c=0==(c&1|0)?d:d^-306674912,d=c>>>1,c=0==(c&1|0)?d:d^-306674912,d=c>>>1,c=0==(c&1|0)?d:d^-306674912,d=c>>>1,c=0==(c&1|0)?d:d^-306674912,d=c>>>1;p[Kc+(a<<2)>>2]=0==(c&1|0)?d:d^-306674912;a=a+1|0;if(256==(a|0)){break}}})}]),V,ue,wd,xe,Ee,Ge,Xe,Ye,We,rf,sg,ng,og,tg,X,wf,Hf,If,Jf;Kc=F(1024,"i32",E);K.L=F([82,97,110,103,101,32,100,101,99,111,100,101,114,32,102,105,110,97,108,32,99,111,100,101,32,105,115,32,110,111,116,32,122,101,114,111,0],"i8",E);K.K=F([7,7,7,7,7,7,7,10,10,10,10,10],"i8",E);K.I=F([8,8,8,8,8,8,8,11,11,11,11,11],"i8",E);K.H=F([9,9,9,9,9,9,9,11,11,11,11,11],"i8",E);K.J=F([0,0,0,0,1,2,3,4,5,6,4,5],"i8",E);V=F(4096,"i8",E);ue=F(2048,"i32",E);K.A=F([53,69,114,114,111,114,0],"i8",E);wd=F(8,"*",E);K.O=F([112,111,115,32,62,32,115,116,114,101,97,109,95,112,111,115,32,105,110,32,77,97,116,99,104,102,105,110,100,101,114,58,58,109,111,118,101,95,112,111,115,0],"i8",E);K.W=F([87,114,105,116,101,32,101,114,114,111,114,0],"i8",E);K.ea=F([82,101,97,100,32,101,114,114,111,114,0],"i8",E);xe=F(1,"i32",E);K.sa=F([37,115,58,32,37,115,0],"i8",E);K.S=F([58,32,37,115,0],"i8",E);Ee=F(1,"i8*",E);K.na=F([84,114,121,32,96,37,115,32,45,45,104,101,108,112,39,32,102,111,114,32,109,111,114,101,32,105,110,102,111,114,109,97,116,105,111,110,46,10,0],"i8",E);K.oa=F([37,115,58,32,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,37,115,46,10,0],"i8",E);K.ta=F([117,110,99,97,117,103,104,116,32,111,112,116,105,111,110,0],"i8",E);Ge=F(1,"i1",E);K.ua=F([67,97,110,39,116,32,99,108,111,115,101,32,115,116,100,111,117,116,0],"i8",E);K.wa=F([69,114,114,111,114,32,114,101,97,100,105,110,103,32,109,101,109,98,101,114,32,104,101,97,100,101,114,0],"i8",E);K.xa=F([66,97,100,32,109,97,103,105,99,32,110,117,109,98,101,114,32,40,102,105,108,101,32,110,111,116,32,105,110,32,108,122,105,112,32,102,111,114,109,97,116,41,0],"i8",E);K.M=F([86,101,114,115,105,111,110,32,37,100,32,109,101,109,98,101,114,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,46,10,0],"i8",E);K.N=F([73,110,118,97,108,105,100,32,100,105,99,116,105,111,110,97,114,121,32,115,105,122,101,32,105,110,32,109,101,109,98,101,114,32,104,101,97,100,101,114,0],"i8",E);K.P=F([118,101,114,115,105,111,110,32,37,100,44,32,100,105,99,116,105,111,110,97,114,121,32,115,105,122,101,32,37,55,115,66,46,32,32,0],"i8",E);K.Q=F([70,105,108,101,32,101,110,100,115,32,117,110,101,120,112,101,99,116,101,100,108,121,32,97,116,32,112,111,115,32,37,108,108,100,10,0],"i8",E);K.R=F([68,101,99,111,100,101,114,32,101,114,114,111,114,32,97,116,32,112,111,115,32,37,108,108,100,10,0],"i8",E);K.n=F([111,107,10,0],"i8",E);K.o=F([100,111,110,101,10,0],"i8",E);Xe=F(32,"*",E);K.T=F([75,105,0],"i8",E);K.U=F([77,105,0],"i8",E);K.V=F([71,105,0],"i8",E);K.Y=F([84,105,0],"i8",E);K.Z=F([69,105,0],"i8",E);K.$=F([90,105,0],"i8",E);K.aa=F([89,105,0],"i8",E);Ye=F(16,"i8",E);We=F(1,"i8",E);K.ba=F([37,108,108,100,32,37,115,0],"i8",E);K.z=F([76,90,73,80],"i8",E);K.ca=F([105,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,32,116,111,32,101,110,99,111,100,101,114,0],"i8",E);K.da=F([69,110,99,111,100,101,114,32,101,114,114,111,114,0],"i8",E);K.fa=F([78,111,32,100,97,116,97,32,99,111,109,112,114,101,115,115,101,100,46,10,0],"i8",E);K.ga=F([37,54,46,51,102,58,49,44,32,37,54,46,51,102,32,98,105,116,115,47,98,121,116,101,44,32,37,53,46,50,102,37,37,32,115,97,118,101,100,44,32,37,108,108,100,32,105,110,44,32,37,108,108,100,32,111,117,116,46,10,0],"i8",E);K.ha=F([73,32,119,111,110,39,116,32,119,114,105,116,101,32,99,111,109,112,114,101,115,115,101,100,32,100,97,116,97,32,116,111,32,97,32,116,101,114,109,105,110,97,108,46,0],"i8",E);K.ia=F([73,32,119,111,110,39,116,32,114,101,97,100,32,99,111,109,112,114,101,115,115,101,100,32,100,97,116,97,32,102,114,111,109,32,97,32,116,101,114,109,105,110,97,108,46,0],"i8",E);K.ja=F([37,115,32,37,115,10,0],"i8",E);K.ka=F([49,46,49,50,0],"i8",E);K.la=F([67,111,112,121,114,105,103,104,116,32,40,67,41,32,37,115,32,65,110,116,111,110,105,111,32,68,105,97,122,32,68,105,97,122,46,10,0],"i8",E);K.pa=F([50,48,49,49,0],"i8",E);K.p=F([76,122,105,112,0],"i8",E);K.qa=F([37,115,32,45,32,68,97,116,97,32,99,111,109,112,114,101,115,115,111,114,32,98,97,115,101,100,32,111,110,32,116,104,101,32,76,90,77,65,32,97,108,103,111,114,105,116,104,109,46,10,0],"i8",E);K.ra=F([10,85,115,97,103,101,58,32,37,115,32,91,111,112,116,105,111,110,115,93,32,91,102,105,108,101,115,93,10,0],"i8",E);K.va=F([73,102,32,110,111,32,102,105,108,101,32,110,97,109,101,115,32,97,114,101,32,103,105,118,101,110,44,32,37,115,32,99,111,109,112,114,101,115,115,101,115,32,111,114,32,100,101,99,111,109,112,114,101,115,115,101,115,10,0],"i8",E);K.i=F([108,122,105,112,0],"i8",E);K.B=F([78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0],"i8",E);rf=F(12,"*",E);K.C=F([78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0],"i8",E);sg=F(12,"*",E);ng=F([0,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0],["*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0],E);F(1,"void*",E);K.F=F([80,105,0],"i8",E);og=F([0,0,0,0,0,0,0,0,4,0,0,0,16,0,0,0,8,0,0,0,18,0,0,0,20,0,0,0,22,0,0,0],["*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0],E);F(1,"void*",E);K.D=F([78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0],"i8",E);tg=F(12,"*",E);X=F(468,["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"i32",0,0,0,"*",0,0,0,"i32",0,0,0,"*",0,0,0,"i32",0,0,0],E);wf=F(24,"i32",E);Hf=F(1,"void ()*",E);If=F([0,0,0,0,0,0,0,0,2,0,0,0,24,0,0,0,26,0,0,0],["*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0],E);F(1,"void*",E);K.ma=F([115,116,100,58,58,98,97,100,95,97,108,108,111,99,0],"i8",E);K.G=F([83,116,57,98,97,100,95,97,108,108,111,99,0],"i8",E);Jf=F(12,"*",E);K.ya=F([60,60,32,77,111,115,116,32,111,102,32,116,104,101,115,101,32,97,114,101,32,117,110,115,117,112,112,111,114,116,101,100,46,32,67,111,109,112,114,101,115,115,105,110,103,47,100,101,99,111,109,112,114,101,115,115,105,110,103,32,102,114,111,109,32,115,116,100,105,110,32,116,111,32,115,116,100,111,117,116,32,105,115,32,116,104,101,32,114,105,103,104,116,32,119,97,121,33,32,62,62,0],"i8",E);K.za=F([10,79,112,116,105,111,110,115,58,0],"i8",E);K.Ka=F([32,32,45,104,44,32,45,45,104,101,108,112,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,105,115,112,108,97,121,32,116,104,105,115,32,104,101,108,112,32,97,110,100,32,101,120,105,116,0],"i8",E);K.Ta=F([32,32,45,86,44,32,45,45,118,101,114,115,105,111,110,32,32,32,32,32,32,32,32,32,32,32,32,32,32,111,117,116,112,117,116,32,118,101,114,115,105,111,110,32,105,110,102,111,114,109,97,116,105,111,110,32,97,110,100,32,101,120,105,116,0],"i8",E);K.Ua=F([32,32,45,98,44,32,45,45,109,101,109,98,101,114,45,115,105,122,101,61,60,110,62,32,32,32,32,32,32,115,101,116,32,109,101,109,98,101,114,32,115,105,122,101,32,108,105,109,105,116,32,105,110,32,98,121,116,101,115,0],"i8",E);K.Va=F([32,32,45,99,44,32,45,45,115,116,100,111,117,116,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101,110,100,32,111,117,116,112,117,116,32,116,111,32,115,116,97,110,100,97,114,100,32,111,117,116,112,117,116,0],"i8",E);K.Wa=F([32,32,45,100,44,32,45,45,100,101,99,111,109,112,114,101,115,115,32,32,32,32,32,32,32,32,32,32,32,100,101,99,111,109,112,114,101,115,115,0],"i8",E);K.Xa=F([32,32,45,102,44,32,45,45,102,111,114,99,101,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,111,118,101,114,119,114,105,116,101,32,101,120,105,115,116,105,110,103,32,111,117,116,112,117,116,32,102,105,108,101,115,0],"i8",E);K.Ya=F([32,32,45,70,44,32,45,45,114,101,99,111,109,112,114,101,115,115,32,32,32,32,32,32,32,32,32,32,32,102,111,114,99,101,32,114,101,99,111,109,112,114,101,115,115,105,111,110,32,111,102,32,99,111,109,112,114,101,115,115,101,100,32,102,105,108,101,115,0],"i8",E);K.Za=F([32,32,45,107,44,32,45,45,107,101,101,112,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,107,101,101,112,32,40,100,111,110,39,116,32,100,101,108,101,116,101,41,32,105,110,112,117,116,32,102,105,108,101,115,0],"i8",E);K.Aa=F([32,32,45,109,44,32,45,45,109,97,116,99,104,45,108,101,110,103,116,104,61,60,110,62,32,32,32,32,32,115,101,116,32,109,97,116,99,104,32,108,101,110,103,116,104,32,108,105,109,105,116,32,105,110,32,98,121,116,101,115,32,91,51,54,93,0],"i8",E);K.Ba=F([32,32,45,111,44,32,45,45,111,117,116,112,117,116,61,60,102,105,108,101,62,32,32,32,32,32,32,32,32,105,102,32,114,101,97,100,105,110,103,32,115,116,100,105,110,44,32,112,108,97,99,101,32,116,104,101,32,111,117,116,112,117,116,32,105,110,116,111,32,60,102,105,108,101,62,0],"i8",E);K.Ca=F([32,32,45,113,44,32,45,45,113,117,105,101,116,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,117,112,112,114,101,115,115,32,97,108,108,32,109,101,115,115,97,103,101,115,0],"i8",E);K.Da=F([32,32,45,115,44,32,45,45,100,105,99,116,105,111,110,97,114,121,45,115,105,122,101,61,60,110,62,32,32,115,101,116,32,100,105,99,116,105,111,110,97,114,121,32,115,105,122,101,32,108,105,109,105,116,32,105,110,32,98,121,116,101,115,32,91,56,77,105,66,93,0],"i8",E);K.Ea=F([32,32,45,83,44,32,45,45,118,111,108,117,109,101,45,115,105,122,101,61,60,110,62,32,32,32,32,32,32,115,101,116,32,118,111,108,117,109,101,32,115,105,122,101,32,108,105,109,105,116,32,105,110,32,98,121,116,101,115,0],"i8",E);K.Fa=F([32,32,45,116,44,32,45,45,116,101,115,116,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,101,115,116,32,99,111,109,112,114,101,115,115,101,100,32,102,105,108,101,32,105,110,116,101,103,114,105,116,121,0],"i8",E);K.Ga=F([32,32,45,118,44,32,45,45,118,101,114,98,111,115,101,32,32,32,32,32,32,32,32,32,32,32,32,32,32,98,101,32,118,101,114,98,111,115,101,32,40,97,32,50,110,100,32,45,118,32,103,105,118,101,115,32,109,111,114,101,41,0],"i8",E);K.Ha=F([32,32,45,48,32,46,46,32,45,57,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101,116,32,99,111,109,112,114,101,115,115,105,111,110,32,108,101,118,101,108,32,91,100,101,102,97,117,108,116,32,54,93,0],"i8",E);K.Ia=F([32,32,32,32,32,32,45,45,102,97,115,116,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,108,105,97,115,32,102,111,114,32,45,48,0],"i8",E);K.Ja=F([32,32,32,32,32,32,45,45,98,101,115,116,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,108,105,97,115,32,102,111,114,32,45,57,0],"i8",E);K.La=F([102,114,111,109,32,115,116,97,110,100,97,114,100,32,105,110,112,117,116,32,116,111,32,115,116,97,110,100,97,114,100,32,111,117,116,112,117,116,46,0],"i8",E);K.Ma=F([78,117,109,98,101,114,115,32,109,97,121,32,98,101,32,102,111,108,108,111,119,101,100,32,98,121,32,97,32,109,117,108,116,105,112,108,105,101,114,58,32,107,32,61,32,107,66,32,61,32,49,48,94,51,32,61,32,49,48,48,48,44,0],"i8",E);K.Na=F([75,105,32,61,32,75,105,66,32,61,32,50,94,49,48,32,61,32,49,48,50,52,44,32,77,32,61,32,49,48,94,54,44,32,77,105,32,61,32,50,94,50,48,44,32,71,32,61,32,49,48,94,57,44,32,71,105,32,61,32,50,94,51,48,44,32,101,116,99,46,46,46,0],"i8",E);K.Oa=F([10,82,101,112,111,114,116,32,98,117,103,115,32,116,111,32,108,122,105,112,45,98,117,103,64,110,111,110,103,110,117,46,111,114,103,0],"i8",E);K.Pa=F([76,122,105,112,32,104,111,109,101,32,112,97,103,101,58,32,104,116,116,112,58,47,47,119,119,119,46,110,111,110,103,110,117,46,111,114,103,47,108,122,105,112,47,108,122,105,112,46,104,116,109,108,0],"i8",E);K.Qa=F([76,105,99,101,110,115,101,32,71,80,76,118,51,43,58,32,71,78,85,32,71,80,76,32,118,101,114,115,105,111,110,32,51,32,111,114,32,108,97,116,101,114,32,60,104,116,116,112,58,47,47,103,110,117,46,111,114,103,47,108,105,99,101,110,115,101,115,47,103,112,108,46,104,116,109,108,62,0],"i8",E);K.Ra=F([84,104,105,115,32,105,115,32,102,114,101,101,32,115,111,102,116,119,97,114,101,58,32,121,111,117,32,97,114,101,32,102,114,101,101,32,116,111,32,99,104,97,110,103,101,32,97,110,100,32,114,101,100,105,115,116,114,105,98,117,116,101,32,105,116,46,0],"i8",E);K.Sa=F([84,104,101,114,101,32,105,115,32,78,79,32,87,65,82,82,65,78,84,89,44,32,116,111,32,116,104,101,32,101,120,116,101,110,116,32,112,101,114,109,105,116,116,101,100,32,98,121,32,108,97,119,46,0],"i8",E);p[wd>>2]=ng+8|0;p[wd+4>>2]=K.A|0;p[Xe>>2]=K.T|0;p[Xe+4>>2]=K.U|0;p[Xe+8>>2]=K.V|0;p[Xe+12>>2]=K.Y|0;p[Xe+16>>2]=K.F|0;p[Xe+20>>2]=K.Z|0;p[Xe+24>>2]=K.$|0;p[Xe+28>>2]=K.aa|0;p[rf>>2]=og+8|0;p[rf+4>>2]=K.B|0;p[rf+8>>2]=aa;p[sg>>2]=og+8|0;p[sg+4>>2]=K.C|0;p[sg+8>>2]=rf;p[ng+4>>2]=sg;p[og+4>>2]=tg;p[tg>>2]=og+8|0;p[tg+4>>2]=K.D|0;p[tg+8>>2]=sg;p[If+4>>2]=Jf;p[Jf>>2]=og+8|0;p[Jf+4>>2]=K.G|0;p[Jf+8>>2]=aa;pc=[0,0,Ff,0,of,0,(function(a){of(a|0);Re(a)}),0,(function(a,c,d){var e,f=m;m+=56;e=f>>2;if((a|0)==(c|0)){a=1}else{if(0==(c|0)){a=0}else{if(c=qf(c,sg),0==(c|0)){a=0}else{for(var g=f>>2,h=g+14;g>2]+20>>2]](c,f,p[d>>2],1);1!=(p[e+6]|0)?a=0:(p[d>>2]=p[e+4],a=1)}}}m=f;return a}),0,(function(a,c,d,e,f){(p[c+8>>2]|0)==(a|0)&&Ue(c,d,e,f)}),0,(function(a,c,d,e){var f=c>>2,g=(p[f+2]|0)==(a|0);a:do{if(g){Ve(c,d,e)}else{if((p[f]|0)==(a|0)){var h=(p[f+4]|0)==(d|0);do{if(!h){var i=c+20|0;if((p[i>>2]|0)!=(d|0)){p[f+8]=e;p[i>>2]=d;a=c+40|0;p[a>>2]=p[a>>2]+1|0;1==(p[f+9]|0)&&2==(p[f+6]|0)&&(n[c+54|0]=1);p[f+11]=4;break a}}}while(0);1==(e|0)&&(p[f+8]=1)}}}while(0)}),0,(function(a,c,d,e){(p[c+8>>2]|0)==(a|0)&&Te(c,d,e)}),0,(function(a){of(a|0);Re(a)}),0,(function(a,c,d,e,f){(a|0)==(p[c+8>>2]|0)?Ue(c,d,e,f):(a=p[a+8>>2],pc[p[p[a>>2]+12>>2]](a,c,d,e,f))}),0,sf,0,(function(a,c,d,e){(a|0)==(p[c+8>>2]|0)?Te(c,d,e):(a=p[a+8>>2],pc[p[p[a>>2]+20>>2]](a,c,d,e))}),0,(function(a){Ff(a);Re(a)}),0,(function(){return K.ma|0}),0];Module.FUNCTION_TABLE=pc;function ug(a){a=a||Module.arguments;yc(Ac);var c=ca;Module._main&&(c=Module.ab(a),Module.noExitRuntime||yc(Bc));return c}Module.run=ug;Module.preRun&&Module.preRun();ug();Module.postRun&&Module.postRun() - - return returnValue; - }, - - compress: function(data) { - return this.run(data); - }, - - decompress: function(data) { - return this.run(data, true); - } -}; - -onmessage = function(event) { - postMessage({ data: LZMA.decompress(event.data.data), id: event.data.id }); -}; - -*/ - -var Zee = (function() { - -function a(b){throw b}var aa=void 0,da=!0,sa=null,ua=!1,l={noExitRuntime:da};try{this.Module=l}catch(Ca){this.Module=l={}}var Ha="object"===typeof process,Ia="object"===typeof window,Na="function"===typeof importScripts,ob=!Ia&&!Ha&&!Na;if(Ha){l.print=(function(b){process.stdout.write(b+"\n")});l.printErr=(function(b){process.stderr.write(b+"\n")});var pb=require("fs"),Ab=require("path");l.read=(function(b){var b=Ab.normalize(b),f=pb.readFileSync(b).toString();!f&&b!=Ab.resolve(b)&&(b=path.join(__dirname,"..","src",b),f=pb.readFileSync(b).toString());return f});l.load=(function(b){Bb(read(b))});l.arguments||(l.arguments=process.argv.slice(2))}else{ob?(l.print=print,"undefined"!=typeof printErr&&(l.printErr=printErr),l.read="undefined"!=typeof read?read:(function(b){snarf(b)}),l.arguments||("undefined"!=typeof scriptArgs?l.arguments=scriptArgs:"undefined"!=typeof arguments&&(l.arguments=arguments))):Ia?(l.print||(l.print=(function(b){console.log(b)})),l.printErr||(l.printErr=(function(b){console.log(b)})),l.read=(function(b){var f=new XMLHttpRequest;f.open("GET",b,ua);f.send(sa);return f.responseText}),l.arguments||"undefined"!=typeof arguments&&(l.arguments=arguments)):Na?l.load=importScripts:a("Unknown runtime environment. Where are we?")}function Bb(b){eval.call(sa,b)}"undefined"==!l.load&&l.read&&(l.load=(function(b){Bb(l.read(b))}));l.print||(l.print=(function(){}));l.printErr||(l.printErr=l.print);l.arguments||(l.arguments=[]);l.print=l.print;l.ma=l.printErr;l.preRun||(l.preRun=[]);l.postRun||(l.postRun=[]);function Lb(){var b=[],f=0;this.M=(function(d){d&=255;f&&(b.push(d),f--);if(0==b.length){if(128>d){return String.fromCharCode(d)}b.push(d);f=191d?1:2;return""}if(0d?String.fromCharCode((d&31)<<6|c&63):String.fromCharCode((d&15)<<12|(c&63)<<6|e&63);b.length=0;return d});this.ha=(function(b){for(var b=unescape(encodeURIComponent(b)),c=[],e=0;e>2<<2;return f}function Ob(b){var f=Rb;Rb+=b;Rb=Rb+3>>2<<2;if(Rb>=Zb){for(;Zb<=Rb;){Zb=2*Zb+4095>>12<<12}var b=m,d=new ArrayBuffer(Zb);m=new Int8Array(d);o=new Int16Array(d);q=new Int32Array(d);D=new Uint8Array(d);E=new Uint16Array(d);I=new Uint32Array(d);cc=new Float32Array(d);gc=new Float64Array(d);m.set(b)}return f}var ic=4,sc={},Ec;function Fc(b){l.print(b+":\n"+Error().stack);a("Assertion: "+b)}function Gc(b,f){b||Fc("Assertion failed: "+f)}var Pc=this;function Qc(b,f,d,c){function e(b,c){if("string"==c){if(b===sa||b===aa||0===b){return 0}g||(g=Nb);var d=Mb(b.length+1);Rc(b,d);return d}return"array"==c?(g||(g=Nb),d=Mb(b.length),Sc(b,d),d):b}var g=0;try{var h=eval("_"+b)}catch(j){try{h=Pc.Module["_"+b]}catch(i){}}Gc(h,"Cannot call unknown function "+b+" (perhaps LLVM optimizations or closure removed it?)");var k=0,b=c?c.map((function(b){return e(b,d[k++])})):[],f=(function(b,c){if("string"==c){return ed(b)}Gc("array"!=c);return b})(h.apply(sa,b),f);g&&(Nb=g);return f}l.ccall=Qc;l.cwrap=(function(b,f,d){return(function(){return Qc(b,f,d,Array.prototype.slice.call(arguments))})});function fd(b,f,d){d=d||"i8";"*"===d[d.length-1]&&(d="i32");switch(d){case"i1":m[b]=f;break;case"i8":m[b]=f;break;case"i16":o[b>>1]=f;break;case"i32":q[b>>2]=f;break;case"i64":q[b>>2]=f;break;case"float":cc[b>>2]=f;break;case"double":jd[0]=f;q[b>>2]=kd[0];q[b+4>>2]=kd[1];break;default:Fc("invalid type for setValue: "+d)}}l.setValue=fd;l.getValue=(function(b,f){f=f||"i8";"*"===f[f.length-1]&&(f="i32");switch(f){case"i1":return m[b];case"i8":return m[b];case"i16":return o[b>>1];case"i32":return q[b>>2];case"i64":return q[b>>2];case"float":return cc[b>>2];case"double":return kd[0]=q[b>>2],kd[1]=q[b+4>>2],jd[0];default:Fc("invalid type for setValue: "+f)}return sa});var wd=2;l.ALLOC_NORMAL=0;l.ALLOC_STACK=1;l.ALLOC_STATIC=wd;function xd(b,f,d){var c,e;"number"===typeof b?(c=da,e=b):(c=ua,e=b.length);var g="string"===typeof f?f:sa,d=[yd,Mb,Ob][d===aa?wd:d](Math.max(e,g?1:f.length));if(c){return zd(d,e),d}for(var h=0;h>2);cc.subarray(We>>2);var jd=gc.subarray(We>>3);de=We+8;Rb=de+4095>>12<<12;function Xe(b){for(;0>>16,b=b&65535,g=1==(d|0);do{if(g){var h=(D[f]&255)+b|0,h=65520>>0?h-65521|0:h;c=h+e|0;h|=(65520>>0?c+15|0:c)<<16}else{if(0==(f|0)){h=1}else{if(16>d>>>0){h=0==(d|0);a:do{if(h){var j=e,i=b}else{var k=e,p=d;c=f;for(var s=b;;){p=p-1|0;s=(D[c]&255)+s|0;k=s+k|0;if(0==(p|0)){j=k;i=s;break a}c=c+1|0}}}while(0);h=(j>>>0)%65521<<16|(65520>>0?i-65521|0:i)}else{h=5551>>0;do{if(h){k=e;p=d;c=f;for(s=b;;){for(var u=p-5552|0,p=s,n=c,t=k,r=347;;){var x=(D[n]&255)+p|0,k=x+(D[n+1|0]&255)|0,p=k+(D[n+2|0]&255)|0,s=p+(D[n+3|0]&255)|0,v=s+(D[n+4|0]&255)|0,y=v+(D[n+5|0]&255)|0,A=y+(D[n+6|0]&255)|0,B=A+(D[n+7|0]&255)|0,F=B+(D[n+8|0]&255)|0,H=F+(D[n+9|0]&255)|0,z=H+(D[n+10|0]&255)|0,w=z+(D[n+11|0]&255)|0,J=w+(D[n+12|0]&255)|0,G=J+(D[n+13|0]&255)|0,S=G+(D[n+14|0]&255)|0,C=S+(D[n+15|0]&255)|0,x=x+t+k+p+s+v+y+A+B+F+H+z+w+J+G+S+C|0,r=r-1|0;if(0==(r|0)){break}p=C;n=n+16|0;t=x}n=c+5552|0;t=(C>>>0)%65521;r=(x>>>0)%65521;if(5551>=u>>>0){break}k=r;p=u;c=n;s=t}if(0==(u|0)){var ka=t,ra=r;c=19}else{if(15>>0){var N=r,oa=u,K=n,Q=t;c=16}else{var Ka=r,Aa=u,P=n,hb=t;c=17}}}else{N=e,oa=d,K=f,Q=b,c=16}}while(0);do{if(16==c){for(;;){var ya=oa-16|0,Fa=(D[K]&255)+Q|0,Da=Fa+(D[K+1|0]&255)|0,h=Da+(D[K+2|0]&255)|0;c=h+(D[K+3|0]&255)|0;var k=c+(D[K+4|0]&255)|0,p=k+(D[K+5|0]&255)|0,s=p+(D[K+6|0]&255)|0,v=s+(D[K+7|0]&255)|0,y=v+(D[K+8|0]&255)|0,A=y+(D[K+9|0]&255)|0,B=A+(D[K+10|0]&255)|0,F=B+(D[K+11|0]&255)|0,H=F+(D[K+12|0]&255)|0,z=H+(D[K+13|0]&255)|0,w=z+(D[K+14|0]&255)|0,Ma=w+(D[K+15|0]&255)|0,Fa=Fa+N+Da+h+c+k+p+s+v+y+A+B+F+H+z+w+Ma|0,Da=K+16|0;if(15>=ya>>>0){break}N=Fa;oa=ya;K=Da;Q=Ma}if(0==(ya|0)){var ib=Fa,bb=Ma;c=18}else{Ka=Fa,Aa=ya,P=Da,hb=Ma,c=17}}}while(0);a:do{if(17==c){for(;;){h=Aa-1|0;k=(D[P]&255)+hb|0;p=k+Ka|0;if(0==(h|0)){ib=p;bb=k;c=18;break a}Ka=p;Aa=h;P=P+1|0;hb=k}}}while(0);18==c&&(ka=(bb>>>0)%65521,ra=(ib>>>0)%65521);h=ka|ra<<16}}}}while(0);return h}Xf.X=1;function Yf(b,f,d){for(var c,e,b=b^-1;;){if(0==(d|0)){var g=b;e=13;break}if(0==(f&3|0)){e=6;break}b=q[Zf+((D[f]&255^b&255)<<2)>>2]^b>>>8;f=f+1|0;d=d-1|0}a:do{if(6==e){var h=f,j=31>>0;b:do{if(j){var i=b,k=d,p=h;for(c=p>>2;;){i^=q[c];i=q[Zf+((i>>>8&255)<<2)+2048>>2]^q[Zf+((i&255)<<2)+3072>>2]^q[Zf+((i>>>16&255)<<2)+1024>>2]^q[Zf+(i>>>24<<2)>>2]^q[c+1];i=q[Zf+((i>>>8&255)<<2)+2048>>2]^q[Zf+((i&255)<<2)+3072>>2]^q[Zf+((i>>>16&255)<<2)+1024>>2]^q[Zf+(i>>>24<<2)>>2]^q[c+2];i=q[Zf+((i>>>8&255)<<2)+2048>>2]^q[Zf+((i&255)<<2)+3072>>2]^q[Zf+((i>>>16&255)<<2)+1024>>2]^q[Zf+(i>>>24<<2)>>2]^q[c+3];i=q[Zf+((i>>>8&255)<<2)+2048>>2]^q[Zf+((i&255)<<2)+3072>>2]^q[Zf+((i>>>16&255)<<2)+1024>>2]^q[Zf+(i>>>24<<2)>>2]^q[c+4];i=q[Zf+((i>>>8&255)<<2)+2048>>2]^q[Zf+((i&255)<<2)+3072>>2]^q[Zf+((i>>>16&255)<<2)+1024>>2]^q[Zf+(i>>>24<<2)>>2]^q[c+5];i=q[Zf+((i>>>8&255)<<2)+2048>>2]^q[Zf+((i&255)<<2)+3072>>2]^q[Zf+((i>>>16&255)<<2)+1024>>2]^q[Zf+(i>>>24<<2)>>2]^q[c+6];p=p+32|0;c=q[Zf+((i>>>8&255)<<2)+2048>>2]^q[Zf+((i&255)<<2)+3072>>2]^q[Zf+((i>>>16&255)<<2)+1024>>2]^q[Zf+(i>>>24<<2)>>2]^q[c+7];c=q[Zf+((c>>>8&255)<<2)+2048>>2]^q[Zf+((c&255)<<2)+3072>>2]^q[Zf+((c>>>16&255)<<2)+1024>>2]^q[Zf+(c>>>24<<2)>>2];k=k-32|0;if(31>=k>>>0){var s=c,u=k,n=p;break b}i=c;c=p>>2}}else{s=b,u=d,n=h}}while(0);h=3>>0;b:do{if(h){c=s;k=u;for(p=n;;){j=p+4|0;c^=q[p>>2];c=q[Zf+((c>>>8&255)<<2)+2048>>2]^q[Zf+((c&255)<<2)+3072>>2]^q[Zf+((c>>>16&255)<<2)+1024>>2]^q[Zf+(c>>>24<<2)>>2];k=k-4|0;if(3>=k>>>0){var t=c,r=k,x=j;break b}p=j}}else{t=s,r=u,x=n}}while(0);if(0==(r|0)){g=t}else{h=x;j=r;for(k=t;;){k=q[Zf+((D[h]&255^k&255)<<2)>>2]^k>>>8;j=j-1|0;if(0==(j|0)){g=k;break a}h=h+1|0}}}}while(0);return g^-1}Yf.X=1;function $f(b,f,d){return 0==(f|0)?0:Yf(b,f,d)}function ag(b,f,d){var c,e,g,h=0==(b|0);a:do{if(h){var j=-2}else{j=b+24|0;q[j>>2]=0;g=(b+32|0)>>2;var i=q[g];if(0==(i|0)){q[g]=2;q[b+40>>2]=0;var k=2}else{k=i}i=b+36|0;0==(q[i>>2]|0)&&(q[i>>2]=4);i=-1==(f|0)?6:f;if(9>>0|4>>0){j=-2}else{e=(b+40|0)>>2;k=Bd[k](q[e],1,5828);if(0!=(k|0)){q[b+28>>2]=k;q[k>>2]=b;q[(k+24|0)>>2]=2;q[(k+28|0)>>2]=0;q[(k+48|0)>>2]=15;c=(k+44|0)>>2;q[c]=32768;q[(k+52|0)>>2]=32767;q[(k+80|0)>>2]=15;var p=k+76|0;q[p>>2]=32768;q[(k+84|0)>>2]=32767;q[(k+88|0)>>2]=5;var s=Bd[q[g]](q[e],32768,2),u=k+56|0;q[u>>2]=s;var n=Bd[q[g]](q[e],q[c],2),s=k+64|0;q[s>>2]=n;zd(n,q[c]<<1);p=Bd[q[g]](q[e],q[p>>2],2);c=k+68|0;q[c>>2]=p;q[(k+5824|0)>>2]=0;p=k+5788|0;q[p>>2]=16384;e=g=Bd[q[g]](q[e],16384,4);q[(k+8|0)>>2]=g;p=I[p>>2];q[(k+12|0)>>2]=p<<2;u=0==(q[u>>2]|0);do{if(!u&&0!=(q[s>>2]|0)&&!(0==(q[c>>2]|0)|0==(g|0))){q[(k+5796|0)>>2]=(p>>>1<<1)+e|0;q[(k+5784|0)>>2]=g+3*p|0;q[(k+132|0)>>2]=i;q[(k+136|0)>>2]=d;m[k+36|0]=8;j=bg(b);break a}}while(0);q[(k+4|0)>>2]=666;q[j>>2]=O.W|0;cg(b)}j=-4}}}while(0);return j}ag.X=1;function cg(b){var f,d,c=b>>2;if(0!=(b|0)&&(d=(b+28|0)>>2,f=q[d],0!=(f|0))){var e=q[f+4>>2];if(666==(e|0)||113==(e|0)||103==(e|0)||91==(e|0)||73==(e|0)||69==(e|0)||42==(e|0)){e=q[f+8>>2];0!=(e|0)&&(Bd[q[c+9]](q[c+10],e),f=q[d]);e=q[f+68>>2];0==(e|0)?e=f:(Bd[q[c+9]](q[c+10],e),e=q[d]);var g=q[e+64>>2];f=(b+36|0)>>2;0!=(g|0)&&(Bd[q[f]](q[c+10],g),e=q[d]);c=q[e+56>>2];0==(c|0)?(c=e,b=b+40|0):(b=b+40|0,Bd[q[f]](q[b>>2],c),c=q[d]);Bd[q[f]](q[b>>2],c);q[d]=0}}}cg.X=1;function bg(b){var f=b>>2;if(0==(b|0)){f=-2}else{if(b=q[f+7],0==(b|0)){f=-2}else{if(0==(q[f+8]|0)){f=-2}else{if(0==(q[f+9]|0)){f=-2}else{q[f+5]=0;q[f+2]=0;q[f+6]=0;q[f+11]=2;q[(b+20|0)>>2]=0;q[(b+16|0)>>2]=q[b+8>>2];var d=b+24|0,c=q[d>>2];0>(c|0)&&(c=-c|0,q[d>>2]=c);d=c;q[(b+4|0)>>2]=0!=(d|0)?42:113;q[f+12]=2==(d|0)?$f(0,0,0):Xf(0,0,0);q[(b+40|0)>>2]=0;q[b+2840>>2]=b+148|0;q[b+2848>>2]=dg;q[b+2852>>2]=b+2440|0;q[b+2860>>2]=eg;q[b+2864>>2]=b+2684|0;q[b+2872>>2]=fg;o[b+5816>>1]=0;q[b+5820>>2]=0;q[b+5812>>2]=8;gg(b);hg(b);f=0}}}}return f}bg.X=1;function hg(b){var f=b>>2;q[f+15]=q[f+11]<<1;var d=b+76|0,b=b+68|0;o[q[b>>2]+(q[d>>2]-1<<1)>>1]=0;zd(q[b>>2],(q[d>>2]<<1)-2|0);d=I[f+33];q[f+32]=E[(ig+2>>1)+(6*d|0)]&65535;q[f+35]=E[(ig>>1)+(6*d|0)]&65535;q[f+36]=E[(ig+4>>1)+(6*d|0)]&65535;q[f+31]=E[(ig+6>>1)+(6*d|0)]&65535;q[f+27]=0;q[f+23]=0;q[f+29]=0;q[f+30]=2;q[f+24]=2;q[f+28]=0;q[f+26]=0;q[f+18]=0}hg.X=1;function jg(b,f){var d,c,e,g,h,j,i,k,p,s,u,n,t,r,x,v,y,A,B,F,H,z,w,J,G,S,C,ka,ra,N,oa,K=b>>2,Q,Ka=0==(b|0);a:do{if(Ka){var Aa=-2}else{var P=I[K+7];oa=P>>2;if(!(0==(P|0)|5>>0)){var hb=0==(q[K+3]|0);do{if(!hb&&!(0==(q[K]|0)&&0!=(q[K+1]|0))){N=(P+4|0)>>2;var ya=I[N],Fa=4==(f|0);if(666!=(ya|0)|Fa){ra=(b+16|0)>>2;if(0==(q[ra]|0)){q[K+6]=O.s|0;Aa=-5;break a}q[oa]=b;ka=(P+40|0)>>2;var Da=q[ka];q[ka]=f;if(42==(ya|0)){if(2!=(q[oa+6]|0)){var Ma=(q[oa+12]<<12)-30720|0;if(1<(q[oa+34]|0)){var ib=0}else{var bb=q[oa+33],ib=2>(bb|0)?0:6>(bb|0)?64:6==(bb|0)?128:192}var Cb=ib|Ma,Oa=P+108|0,Pa=0==(q[Oa>>2]|0)?Cb:Cb|32,jb=(Pa|(Pa>>>0)%31)^31;q[N]=113;kg(P,jb);C=(b+48|0)>>2;0!=(q[Oa>>2]|0)&&(kg(P,I[C]>>>16),kg(P,q[C]&65535));q[C]=Xf(0,0,0);var Db=q[N];Q=33}else{var xa=$f(0,0,0);S=(b+48|0)>>2;q[S]=xa;G=(P+20|0)>>2;var ta=q[G];q[G]=ta+1|0;J=(P+8|0)>>2;m[q[J]+ta|0]=31;var Va=q[G];q[G]=Va+1|0;m[q[J]+Va|0]=-117;var Xa=q[G];q[G]=Xa+1|0;m[q[J]+Xa|0]=8;var Eb=P+28|0;w=Eb>>2;var La=I[w];z=La>>2;if(0==(La|0)){var wb=q[G];q[G]=wb+1|0;m[q[J]+wb|0]=0;var Ya=q[G];q[G]=Ya+1|0;m[q[J]+Ya|0]=0;var cb=q[G];q[G]=cb+1|0;m[q[J]+cb|0]=0;var Qa=q[G];q[G]=Qa+1|0;m[q[J]+Qa|0]=0;var qb=q[G];q[G]=qb+1|0;m[q[J]+qb|0]=0;var Ga=q[oa+33],Ua=9==(Ga|0)?2:1<(q[oa+34]|0)?4:2>(Ga|0)?4:0,Za=q[G];q[G]=Za+1|0;m[q[J]+Za|0]=Ua;var Wa=q[G];q[G]=Wa+1|0;m[q[J]+Wa|0]=3;q[N]=113;Q=94}else{var db=(0!=(q[z+11]|0)?2:0)|0!=(q[z]|0)&1|(0==(q[z+4]|0)?0:4)|(0==(q[z+7]|0)?0:8)|(0==(q[z+9]|0)?0:16),$a=q[G];q[G]=$a+1|0;m[q[J]+$a|0]=db;var rb=q[q[w]+4>>2]&255,kb=q[G];q[G]=kb+1|0;m[q[J]+kb|0]=rb;var R=I[q[w]+4>>2]>>>8&255,$=I[G];q[G]=$+1|0;m[q[J]+$|0]=R;var ba=I[q[w]+4>>2]>>>16&255,la=I[G];q[G]=la+1|0;m[q[J]+la|0]=ba;var L=I[q[w]+4>>2]>>>24&255,Z=I[G];q[G]=Z+1|0;m[q[J]+Z|0]=L;var V=q[oa+33],M=9==(V|0)?2:1<(q[oa+34]|0)?4:2>(V|0)?4:0,pa=q[G];q[G]=pa+1|0;m[q[J]+pa|0]=M;var yb=q[q[w]+12>>2]&255,ca=q[G];q[G]=ca+1|0;m[q[J]+ca|0]=yb;var ea=I[w];if(0==(q[ea+16>>2]|0)){var ja=ea}else{var T=q[ea+20>>2]&255,fa=q[G];q[G]=fa+1|0;m[q[J]+fa|0]=T;var qa=I[q[w]+20>>2]>>>8&255,ma=I[G];q[G]=ma+1|0;m[q[J]+ma|0]=qa;ja=q[w]}0!=(q[ja+44>>2]|0)&&(q[S]=$f(q[S],q[J],q[G]));q[oa+8]=0;q[N]=69;var na=Eb;H=na>>2;Q=35}}}else{Db=ya,Q=33}if(33==Q){if(69!=(Db|0)){var va=Db;Q=52}else{na=P+28|0,H=na>>2,Q=35}}do{if(35==Q){var wa=I[H];if(0==(q[wa+16>>2]|0)){q[N]=73;var Ja=wa;Q=54}else{F=(P+20|0)>>2;B=(P+32|0)>>2;var Ra=P+12|0;A=(b+48|0)>>2;y=(P+8|0)>>2;for(var W=q[F],U=q[B],ga=wa;;){if(U>>>0>=(q[ga+20>>2]&65535)>>>0){var ha=W,ia=ga;break}var X=I[F];if((X|0)==(q[Ra>>2]|0)){0!=(q[ga+44>>2]|0)&X>>>0>W>>>0&&(q[A]=$f(q[A],q[y]+W|0,X-W|0));lg(b);var Ea=I[F];if((Ea|0)==(q[Ra>>2]|0)){ha=Ea;ia=q[H];break}var eb=Ea,Fb=Ea,ab=q[B],sb=q[H]}else{eb=W,Fb=X,ab=U,sb=ga}var tb=m[q[sb+16>>2]+ab|0];q[F]=Fb+1|0;m[q[y]+Fb|0]=tb;var ub=q[B]+1|0;q[B]=ub;W=eb;U=ub;ga=q[H]}if(0==(q[ia+44>>2]|0)){var lb=ia}else{var mb=I[F];mb>>>0>ha>>>0?(q[A]=$f(q[A],q[y]+ha|0,mb-ha|0),lb=q[H]):lb=ia}(q[B]|0)==(q[lb+20>>2]|0)?(q[B]=0,q[N]=73,Ja=lb,Q=54):(va=q[N],Q=52)}}}while(0);if(52==Q){if(73!=(va|0)){var fb=va;Q=69}else{Ja=q[oa+7],Q=54}}do{if(54==Q){var Sa=P+28|0;v=Sa>>2;if(0==(q[Ja+28>>2]|0)){q[N]=91;var Ta=Sa;x=Ta>>2;Q=71}else{r=(P+20|0)>>2;var Ba=q[r],za=P+12|0;t=(b+48|0)>>2;n=(P+8|0)>>2;u=(P+32|0)>>2;for(var gb=Ba,Gb=Ba;;){if((Gb|0)==(q[za>>2]|0)){0!=(q[q[v]+44>>2]|0)&Gb>>>0>gb>>>0&&(q[t]=$f(q[t],q[n]+gb|0,Gb-gb|0));lg(b);var Hb=I[r];if((Hb|0)==(q[za>>2]|0)){var vb=1,xb=Hb;break}var nb=Hb,Ib=Hb}else{nb=gb,Ib=Gb}var zb=q[u];q[u]=zb+1|0;var Jb=D[q[q[v]+28>>2]+zb|0],Kb=Jb&255;q[r]=Ib+1|0;m[q[n]+Ib|0]=Jb;if(0==Jb<<24>>24){vb=Kb;xb=nb;break}gb=nb;Gb=q[r]}if(0!=(q[q[v]+44>>2]|0)){var Pb=I[r];Pb>>>0>xb>>>0&&(q[t]=$f(q[t],q[n]+xb|0,Pb-xb|0))}0==(vb|0)?(q[u]=0,q[N]=91,Ta=Sa,x=Ta>>2,Q=71):(fb=q[N],Q=69)}}}while(0);if(69==Q){if(91!=(fb|0)){var Tb=fb;Q=86}else{Ta=P+28|0,x=Ta>>2,Q=71}}do{if(71==Q){if(0==(q[q[x]+36>>2]|0)){q[N]=103;var Vb=Ta;Q=88}else{s=(P+20|0)>>2;var Wb=q[s],Ub=P+12|0;p=(b+48|0)>>2;k=(P+8|0)>>2;for(var Sb=P+32|0,Qb=Wb,Xb=Wb;;){if((Xb|0)==(q[Ub>>2]|0)){0!=(q[q[x]+44>>2]|0)&Xb>>>0>Qb>>>0&&(q[p]=$f(q[p],q[k]+Qb|0,Xb-Qb|0));lg(b);var $b=I[s];if(($b|0)==(q[Ub>>2]|0)){var dc=1,ac=$b;break}var tc=$b,mc=$b}else{tc=Qb,mc=Xb}var gd=q[Sb>>2];q[Sb>>2]=gd+1|0;var bc=D[q[q[x]+36>>2]+gd|0],nc=bc&255;q[s]=mc+1|0;m[q[k]+mc|0]=bc;if(0==bc<<24>>24){dc=nc;ac=tc;break}Qb=tc;Xb=q[s]}if(0!=(q[q[x]+44>>2]|0)){var uc=I[s];uc>>>0>ac>>>0&&(q[p]=$f(q[p],q[k]+ac|0,uc-ac|0))}0==(dc|0)?(q[N]=103,Vb=Ta,Q=88):(Tb=q[N],Q=86)}}}while(0);86==Q&&(103!=(Tb|0)?Q=94:(Vb=P+28|0,Q=88));if(88==Q){if(0==(q[q[Vb>>2]+44>>2]|0)){q[N]=113}else{i=(P+20|0)>>2;var vc=I[i],Hc=P+12|0,Ic=I[Hc>>2];if((vc+2|0)>>>0>Ic>>>0){lg(b);var wc=q[i],oc=q[Hc>>2]}else{wc=vc,oc=Ic}if((wc+2|0)>>>0<=oc>>>0){j=(b+48|0)>>2;var xc=q[j]&255;q[i]=wc+1|0;var jc=P+8|0;m[q[jc>>2]+wc|0]=xc;var yc=I[j]>>>8&255,kc=I[i];q[i]=kc+1|0;m[q[jc>>2]+kc|0]=yc;q[j]=$f(0,0,0);q[N]=113}}}h=(P+20|0)>>2;var hd=0==(q[h]|0);do{if(hd){var zc=q[K+1];if(0!=(zc|0)){var pc=zc;break}if(!((Da|0)>=(f|0)&4!=(f|0))){pc=0;break}q[K+6]=O.s|0;Aa=-5;break a}lg(b);if(0==(q[ra]|0)){q[ka]=-1;Aa=0;break a}pc=q[K+1]}while(0);var Ac=666==(q[N]|0),Jc=0==(pc|0);do{if(Ac){if(Jc){Q=105;break}q[K+6]=O.s|0;Aa=-5;break a}Q=Jc?105:108}while(0);do{if(105==Q){if(0!=(q[oa+29]|0)){Q=108}else{if(0==(f|0)){Aa=0;break a}Q=Ac?124:108}}}while(0);do{if(108==Q){var Kc=q[oa+34],Yb=2==(Kc|0)?mg(P,f):3==(Kc|0)?ng(P,f):Bd[q[(ig+8>>2)+(3*q[oa+33]|0)]](P,f);2>(Yb-2|0)>>>0?q[N]=666:Q=114;if(2==(Yb|0)||0==(Yb|0)){if(0!=(q[ra]|0)){Aa=0;break a}q[ka]=-1;Aa=0;break a}else{if(1==(Yb|0)){if(1==(f|0)){og(P)}else{if(5!=(f|0)&&(pg(P,0,0,0),3==(f|0))){var Lc=P+76|0,ec=P+68|0;o[q[ec>>2]+(q[Lc>>2]-1<<1)>>1]=0;zd(q[ec>>2],(q[Lc>>2]<<1)-2|0);0==(q[oa+29]|0)&&(q[oa+27]=0,q[oa+23]=0)}}lg(b);if(0==(q[ra]|0)){q[ka]=-1;Aa=0;break a}}}}}while(0);if(!Fa){Aa=0;break a}g=(P+24|0)>>2;var Bc=q[g];if(1>(Bc|0)){Aa=1;break a}e=(b+48|0)>>2;var Mc=I[e];if(2==(Bc|0)){var fc=Mc&255,qc=q[h];q[h]=qc+1|0;c=(P+8|0)>>2;m[q[c]+qc|0]=fc;var rc=I[e]>>>8&255,lc=I[h];q[h]=lc+1|0;m[q[c]+lc|0]=rc;var fe=I[e]>>>16&255,Tc=I[h];q[h]=Tc+1|0;m[q[c]+Tc|0]=fe;var df=I[e]>>>24&255,ge=I[h];q[h]=ge+1|0;m[q[c]+ge|0]=df;d=(b+8|0)>>2;var ef=q[d]&255,he=q[h];q[h]=he+1|0;m[q[c]+he|0]=ef;var id=I[d]>>>8&255,Nc=I[h];q[h]=Nc+1|0;m[q[c]+Nc|0]=id;var ie=I[d]>>>16&255,Ad=I[h];q[h]=Ad+1|0;m[q[c]+Ad|0]=ie;var Uc=I[d]>>>24&255,Vc=I[h];q[h]=Vc+1|0;m[q[c]+Vc|0]=Uc}else{kg(P,Mc>>>16),kg(P,q[e]&65535)}lg(b);var Cc=q[g];0<(Cc|0)&&(q[g]=-Cc|0);Aa=0==(q[h]|0)&1;break a}}}while(0);q[K+6]=O.T|0}Aa=-2}}while(0);return Aa}jg.X=1;function kg(b,f){var d;d=(b+20|0)>>2;var c=I[d];q[d]=c+1|0;var e=b+8|0;m[q[e>>2]+c|0]=f>>>8&255;c=q[d];q[d]=c+1|0;m[q[e>>2]+c|0]=f&255}function lg(b){var f,d,c;c=(b+28|0)>>2;var e=I[c],g=I[e+20>>2];d=(b+16|0)>>2;f=I[d];g=g>>>0>f>>>0?f:g;0!=(g|0)&&(f=(b+12|0)>>2,qg(q[f],q[e+16>>2],g),q[f]=q[f]+g|0,e=q[c]+16|0,q[e>>2]=q[e>>2]+g|0,b=b+20|0,q[b>>2]=q[b>>2]+g|0,q[d]=q[d]-g|0,d=q[c]+20|0,q[d>>2]=q[d>>2]-g|0,c=q[c],0==(q[c+20>>2]|0)&&(q[(c+16|0)>>2]=q[c+8>>2]))}function mg(b,f){var d,c,e,g,h,j;j=(b+116|0)>>2;var i=b+96|0;h=(b+108|0)>>2;g=(b+56|0)>>2;e=(b+5792|0)>>2;var k=b+5796|0,p=b+5784|0,s=b+5788|0;c=(b+92|0)>>2;d=(b|0)>>2;a:for(;;){var u=0==(q[j]|0);do{if(u&&(rg(b),0==(q[j]|0))){if(0==(f|0)){var n=0;break a}e=q[c];j=4==(f|0);sg(b,-1<(e|0)?q[g]+e|0:0,q[h]-e|0,j&1);q[c]=q[h];lg(q[d]);if(0==(q[q[d]+16>>2]|0)){n=j?2:0;break a}n=j?3:1;break a}}while(0);q[i>>2]=0;u=D[q[g]+q[h]|0];o[q[k>>2]+(q[e]<<1)>>1]=0;var t=q[e];q[e]=t+1|0;m[q[p>>2]+t|0]=u;u=((u&255)<<2)+b+148|0;o[u>>1]=o[u>>1]+1&65535;t=(q[e]|0)==(q[s>>2]-1|0);q[j]=q[j]-1|0;u=q[h]+1|0;q[h]=u;if(t&&(t=q[c],sg(b,-1<(t|0)?q[g]+t|0:0,u-t|0,0),q[c]=q[h],lg(q[d]),0==(q[q[d]+16>>2]|0))){n=0;break}}return n}mg.X=1;function ng(b,f){var d,c,e,g,h,j,i,k;i=(b+116|0)>>2;var p=0==(f|0);j=(b+96|0)>>2;h=(b+108|0)>>2;g=(b+5792|0)>>2;var s=b+5796|0,u=b+5784|0,n=b+2440|0,t=b+5788|0;e=(b+56|0)>>2;c=(b+92|0)>>2;d=(b|0)>>2;a:for(;;){var r=I[i],x=258>r>>>0;do{if(x){rg(b);k=I[i];if(258>k>>>0&p){var v=0;break a}if(0!=(k|0)){if(q[j]=0,2>>0){A=k,k=9}else{var y=q[h];k=24}}else{g=q[c];j=4==(f|0);sg(b,-1<(g|0)?q[e]+g|0:0,q[h]-g|0,j&1);q[c]=q[h];lg(q[d]);if(0==(q[q[d]+16>>2]|0)){v=j?2:0;break a}v=j?3:1;break a}}else{q[j]=0;var A=r;k=9}}while(0);do{if(9==k){if(r=I[h],0==(r|0)){y=0,k=24}else{if(k=I[e],x=D[k+(r-1)|0],x<<24>>24!=m[k+r|0]<<24>>24){y=r,k=24}else{if(x<<24>>24!=m[r+(k+1)|0]<<24>>24){y=r,k=24}else{var B=r+(k+2)|0;if(x<<24>>24!=m[B]<<24>>24){y=r,k=24}else{for(k=r+(k+258)|0;;){var F=B+1|0;if(x<<24>>24!=m[F]<<24>>24){var H=F;break}F=B+2|0;if(x<<24>>24!=m[F]<<24>>24){H=F;break}F=B+3|0;if(x<<24>>24!=m[F]<<24>>24){H=F;break}F=B+4|0;if(x<<24>>24!=m[F]<<24>>24){H=F;break}F=B+5|0;if(x<<24>>24!=m[F]<<24>>24){H=F;break}F=B+6|0;if(x<<24>>24!=m[F]<<24>>24){H=F;break}F=B+7|0;if(x<<24>>24!=m[F]<<24>>24){H=F;break}B=B+8|0;if(!(x<<24>>24==m[B]<<24>>24&B>>>0>>0)){H=B;break}}x=H-k+258|0;x=x>>>0>A>>>0?A:x;q[j]=x;if(2>>0){var z=x+253|0,w=z&255;o[q[s>>2]+(q[g]<<1)>>1]=1;r=q[g];q[g]=r+1|0;m[q[u>>2]+r|0]=w;z=((D[O.j+(z&255)|0]&255|256)+1<<2)+b+148|0;o[z>>1]=o[z>>1]+1&65535;o[n>>1]=o[n>>1]+1&65535;z=(q[g]|0)==(q[t>>2]-1|0)&1;w=q[j];q[i]=q[i]-w|0;w=q[h]+w|0;q[h]=w;q[j]=0;k=25}else{y=r,k=24}}}}}}}while(0);24==k&&(z=D[q[e]+y|0],o[q[s>>2]+(q[g]<<1)>>1]=0,w=q[g],q[g]=w+1|0,m[q[u>>2]+w|0]=z,z=((z&255)<<2)+b+148|0,o[z>>1]=o[z>>1]+1&65535,z=(q[g]|0)==(q[t>>2]-1|0)&1,q[i]=q[i]-1|0,w=q[h]+1|0,q[h]=w);if(0!=(z|0)&&(r=q[c],sg(b,-1<(r|0)?q[e]+r|0:0,w-r|0,0),q[c]=q[h],lg(q[d]),0==(q[q[d]+16>>2]|0))){v=0;break}}return v}ng.X=1;function rg(b){var f,d,c,e,g=b+44|0,h=I[g>>2],j=b+60|0;c=(b+116|0)>>2;d=(b+108|0)>>2;var i=h-262|0,k=b|0;f=(b+56|0)>>2;var p=b+72|0,s=b+88|0,u=b+84|0,n=b+112|0,t=b+92|0,r=b+76|0,x=b+68|0,v=b+64|0,y=q[c];e=h;a:for(;;){var A=I[d],y=q[j>>2]-y-A|0;if(A>>>0<(i+e|0)>>>0){A=y}else{e=I[f];qg(e,e+h|0,h);q[n>>2]=q[n>>2]-h|0;q[d]=q[d]-h|0;q[t>>2]=q[t>>2]-h|0;e=A=q[r>>2];for(A=(A<<1)+q[x>>2]|0;;){var A=A-2|0,B=E[A>>1]&65535;o[A>>1]=B>>>0>>0?0:B-h&65535;e=e-1|0;if(0==(e|0)){break}}e=h;for(A=(h<<1)+q[v>>2]|0;!(A=A-2|0,B=E[A>>1]&65535,o[A>>1]=B>>>0>>0?0:B-h&65535,e=e-1|0,0==(e|0));){}A=y+h|0}y=q[k>>2];if(0==(q[y+4>>2]|0)){break}e=q[f]+q[c]+q[d]|0;var B=y+4|0,F=I[B>>2],A=F>>>0>A>>>0?A:F;0==(A|0)?y=0:(q[B>>2]=F-A|0,B=q[q[y+28>>2]+24>>2],1==(B|0)?(B=y+48|0,F=q[y>>2],q[B>>2]=Xf(q[B>>2],F,A),B=F):2==(B|0)?(B=y+48|0,F=q[y>>2],q[B>>2]=$f(q[B>>2],F,A),B=F):B=q[y>>2],F=y|0,qg(e,B,A),q[F>>2]=q[F>>2]+A|0,y=y+8|0,q[y>>2]=q[y>>2]+A|0,y=A);y=q[c]+y|0;q[c]=y;2>>0?(e=I[d],A=I[f],B=D[A+e|0]&255,q[p>>2]=B,q[p>>2]=(D[e+(A+1)|0]&255^B<>2])&q[u>>2],e=262>y>>>0?16:18):e=16;do{if(16==e&&0!=(q[q[k>>2]+4>>2]|0)){e=q[g>>2];continue a}}while(0);b=(b+5824|0)>>2;c=I[b];j=I[j>>2];if(c>>>0>=j>>>0){break}d=y+q[d]|0;if(c>>>0>>0){j=j-d|0;j=258>>0?258:j;zd(q[f]+d|0,j);q[b]=j+d|0;break}d=d+258|0;if(c>>>0>=d>>>0){break}d=d-c|0;j=j-c|0;d=d>>>0>j>>>0?j:d;zd(q[f]+c|0,d);q[b]=q[b]+d|0;break}}rg.X=1;function tg(b,f){var d,c,e,g,h;d=q[b+12>>2]-5|0;var j=65535>d>>>0?d:65535;h=(b+116|0)>>2;g=(b+108|0)>>2;e=(b+92|0)>>2;var i=b+44|0;c=(b+56|0)>>2;d=(b|0)>>2;a:for(;;){var k=I[h],p=2>k>>>0;do{if(p){rg(b);var s=I[h];if(0==(s|f|0)){var u=0;break a}if(0==(s|0)){u=q[e];h=4==(f|0);sg(b,-1<(u|0)?q[c]+u|0:0,q[g]-u|0,h&1);q[e]=q[g];lg(q[d]);if(0==(q[q[d]+16>>2]|0)){u=h?2:0;break a}u=h?3:1;break a}}else{s=k}}while(0);p=q[g]+s|0;q[g]=p;q[h]=0;k=I[e];s=k+j|0;if(!(0!=(p|0)&p>>>0>>0)){q[h]=p-s|0;q[g]=s;sg(b,-1<(k|0)?q[c]+k|0:0,j,0);q[e]=q[g];lg(q[d]);if(0==(q[q[d]+16>>2]|0)){u=0;break}p=q[g];k=q[e]}p=p-k|0;if(p>>>0>=(q[i>>2]-262|0)>>>0&&(sg(b,-1<(k|0)?q[c]+k|0:0,p,0),q[e]=q[g],lg(q[d]),0==(q[q[d]+16>>2]|0))){u=0;break}}return u}tg.X=1;function ug(b,f){var d=b>>2,c=I[d+31],e=I[d+14],g=I[d+27],h=e+g|0,j=I[d+30],i=I[d+36],k=q[d+11]-262|0,k=g>>>0>k>>>0?g-k|0:0,p=q[d+16],s=q[d+13],u=g+(e+258)|0,n=I[d+29],i=i>>>0>n>>>0?n:i,t=b+112|0,r=g+(e+1)|0,x=g+(e+2)|0,v=g+257|0,y=m[e+j+g|0],A=f,d=j>>>0>>0?c:c>>>2,c=m[e+(g-1)+j|0];a:for(;;){var B=e+A|0,F=m[e+A+j|0]<<24>>24==y<<24>>24;do{if(F){if(m[e+(j-1)+A|0]<<24>>24!=c<<24>>24){var H=y,z=c,w=j}else{if(m[B]<<24>>24!=m[h]<<24>>24){H=y,z=c,w=j}else{if(m[A+(e+1)|0]<<24>>24!=m[r]<<24>>24){H=y,z=c,w=j}else{H=x;for(z=A+(e+2)|0;;){w=H+1|0;if(m[w]<<24>>24!=m[z+1|0]<<24>>24){var J=w;break}w=H+2|0;if(m[w]<<24>>24!=m[z+2|0]<<24>>24){J=w;break}w=H+3|0;if(m[w]<<24>>24!=m[z+3|0]<<24>>24){J=w;break}w=H+4|0;if(m[w]<<24>>24!=m[z+4|0]<<24>>24){J=w;break}w=H+5|0;if(m[w]<<24>>24!=m[z+5|0]<<24>>24){J=w;break}w=H+6|0;if(m[w]<<24>>24!=m[z+6|0]<<24>>24){J=w;break}w=H+7|0;if(m[w]<<24>>24!=m[z+7|0]<<24>>24){J=w;break}H=H+8|0;z=z+8|0;if(!(m[H]<<24>>24==m[z]<<24>>24&H>>>0>>0)){J=H;break}}z=J-u|0;w=z+258|0;if((w|0)>(j|0)){q[t>>2]=A;if((w|0)>=(i|0)){var G=w;break a}H=m[e+w+g|0];z=m[e+v+z|0]}else{H=y,z=c,w=j}}}}}else{H=y,z=c,w=j}}while(0);A=E[p+((A&s)<<1)>>1]&65535;if(A>>>0<=k>>>0){G=w;break}d=d-1|0;if(0==(d|0)){G=w;break}y=H;c=z;j=w}return G>>>0>n>>>0?n:G}ug.X=1;function vg(b,f){var d,c,e,g,h,j,i,k,p,s,u,n;u=(b+116|0)>>2;var t=0==(f|0);s=(b+72|0)>>2;p=(b+88|0)>>2;k=(b+108|0)>>2;i=(b+56|0)>>2;j=(b+84|0)>>2;h=(b+68|0)>>2;var r=b+52|0,x=b+64|0,v=b+44|0;g=(b+96|0)>>2;var y=b+112|0;e=(b+5792|0)>>2;var A=b+5796|0,B=b+5784|0,F=b+5788|0,H=b+128|0;c=(b+92|0)>>2;d=(b|0)>>2;a:for(;;){var z=262>I[u]>>>0;do{if(z){rg(b);n=I[u];if(262>n>>>0&t){var w=0;break a}if(0==(n|0)){e=q[c];g=4==(f|0);sg(b,-1<(e|0)?q[i]+e|0:0,q[k]-e|0,g&1);q[c]=q[k];lg(q[d]);if(0==(q[q[d]+16>>2]|0)){w=g?2:0;break a}w=g?3:1;break a}else{n=2>>0?7:10}}else{n=7}}while(0);if(7==n){if(z=I[k],n=(D[q[i]+z+2|0]&255^q[s]<>1],o[q[x>>2]+((q[r>>2]&z)<<1)>>1]=n,z=n&65535,o[q[h]+(q[s]<<1)>>1]=q[k]&65535,0==n<<16>>16){n=10}else{if((q[k]-z|0)>>>0>(q[v>>2]-262|0)>>>0){n=10}else{var J=ug(b,z);q[g]=J;n=11}}}10==n&&(J=q[g]);if(2>>0){z=J+253|0;n=q[k]-q[y>>2]&65535;o[q[A>>2]+(q[e]<<1)>>1]=n;var G=q[e];q[e]=G+1|0;m[q[B>>2]+G|0]=z&255;n=n-1&65535;z=((D[O.j+(z&255)|0]&255|256)+1<<2)+b+148|0;o[z>>1]=o[z>>1]+1&65535;z=n&65535;z=((D[O.p+(256>(n&65535)?z:(z>>>7)+256|0)|0]&255)<<2)+b+2440|0;o[z>>1]=o[z>>1]+1&65535;z=(q[e]|0)==(q[F>>2]-1|0)&1;n=I[g];G=q[u]-n|0;q[u]=G;if(n>>>0<=I[H>>2]>>>0&2>>0){for(q[g]=n-1|0;!(G=I[k],n=G+1|0,q[k]=n,G=(D[q[i]+G+3|0]&255^q[s]<>2]+((q[r>>2]&n)<<1)>>1]=o[q[h]+(G<<1)>>1],o[q[h]+(q[s]<<1)>>1]=q[k]&65535,n=q[g]-1|0,q[g]=n,0==(n|0));){}n=q[k]+1|0;q[k]=n}else{n=q[k]+n|0;q[k]=n;q[g]=0;var G=I[i],S=D[G+n|0]&255;q[s]=S;q[s]=(D[n+(G+1)|0]&255^S<>2]+(q[e]<<1)>>1]=0,n=q[e],q[e]=n+1|0,m[q[B>>2]+n|0]=z,z=((z&255)<<2)+b+148|0,o[z>>1]=o[z>>1]+1&65535,z=(q[e]|0)==(q[F>>2]-1|0)&1,q[u]=q[u]-1|0,n=q[k]+1|0,q[k]=n}if(0!=(z|0)&&(z=q[c],sg(b,-1<(z|0)?q[i]+z|0:0,n-z|0,0),q[c]=q[k],lg(q[d]),0==(q[q[d]+16>>2]|0))){w=0;break}}return w}vg.X=1;function wg(b,f){var d,c,e,g,h,j,i,k,p,s,u,n,t,r,x,v;x=(b+116|0)>>2;var y=0==(f|0);r=(b+72|0)>>2;var A=b+88|0;t=(b+108|0)>>2;n=(b+56|0)>>2;var B=b+84|0;u=(b+68|0)>>2;var F=b+52|0,H=b+64|0;s=(b+96|0)>>2;p=(b+120|0)>>2;k=(b+112|0)>>2;i=(b+100|0)>>2;j=(b+5792|0)>>2;h=(b+5796|0)>>2;g=(b+5784|0)>>2;var z=b+5788|0;e=(b+104|0)>>2;c=(b+92|0)>>2;d=(b|0)>>2;var w=b+128|0,J=b+44|0,G=b+136|0;a:for(;;){for(var S=q[x];;){S=262>S>>>0;do{if(S){rg(b);v=I[x];if(262>v>>>0&y){var C=0;break a}if(0!=(v|0)){if(2>>0){v=9}else{q[p]=q[s];q[i]=q[k];var ka=q[s]=2;v=17}}else{0!=(q[e]|0)&&(i=D[q[n]+(q[t]-1)|0],o[q[h]+(q[j]<<1)>>1]=0,h=q[j],q[j]=h+1|0,m[q[g]+h|0]=i,g=((i&255)<<2)+b+148|0,o[g>>1]=o[g>>1]+1&65535,q[e]=0);e=I[c];g=4==(f|0);sg(b,-1<(e|0)?q[n]+e|0:0,q[t]-e|0,g&1);q[c]=q[t];lg(q[d]);if(0==(q[q[d]+16>>2]|0)){C=g?2:0;break a}C=g?3:1;break a}}else{v=9}}while(0);do{if(9==v){v=I[t];S=(D[q[n]+v+2|0]&255^q[r]<>2])&q[B>>2];q[r]=S;S=E[q[u]+(S<<1)>>1];o[q[H>>2]+((q[F>>2]&v)<<1)>>1]=S;v=S&65535;o[q[u]+(q[r]<<1)>>1]=q[t]&65535;var ra=I[s];q[p]=ra;q[i]=q[k];q[s]=2;if(0==S<<16>>16){ka=2,v=17}else{if(ra>>>0>2]>>>0){if((q[t]-v|0)>>>0>(q[J>>2]-262|0)>>>0){ka=2}else{if(ka=ug(b,v),q[s]=ka,6>ka>>>0){if(1!=(q[G>>2]|0)){if(3!=(ka|0)){v=17;break}if(4096>=(q[t]-q[k]|0)>>>0){ka=3;v=17;break}}ka=q[s]=2}}v=17}else{var N=ra,oa=2;v=18}}}}while(0);17==v&&(N=q[p],oa=ka);if(!(3>N>>>0|oa>>>0>N>>>0)){break}if(0==(q[e]|0)){q[e]=1,q[t]=q[t]+1|0,S=q[x]-1|0,q[x]=S}else{if(S=D[q[n]+(q[t]-1)|0],o[q[h]+(q[j]<<1)>>1]=0,v=q[j],q[j]=v+1|0,m[q[g]+v|0]=S,S=((S&255)<<2)+b+148|0,o[S>>1]=o[S>>1]+1&65535,(q[j]|0)==(q[z>>2]-1|0)&&(S=q[c],sg(b,-1<(S|0)?q[n]+S|0:0,q[t]-S|0,0),q[c]=q[t],lg(q[d])),q[t]=q[t]+1|0,S=q[x]-1|0,q[x]=S,0==(q[q[d]+16>>2]|0)){C=0;break a}}}ra=I[t];S=ra-3+q[x]|0;v=N+253|0;ra=ra+65535-q[i]&65535;o[q[h]+(q[j]<<1)>>1]=ra;var K=q[j];q[j]=K+1|0;m[q[g]+K|0]=v&255;ra=ra-1&65535;v=((D[O.j+(v&255)|0]&255|256)+1<<2)+b+148|0;o[v>>1]=o[v>>1]+1&65535;v=ra&65535;v=((D[O.p+(256>(ra&65535)?v:(v>>>7)+256|0)|0]&255)<<2)+b+2440|0;o[v>>1]=o[v>>1]+1&65535;v=q[j];ra=q[z>>2]-1|0;K=q[p];q[x]=1-K+q[x]|0;for(var K=K-2|0,Q=q[p]=K;;){var Ka=I[t],K=Ka+1|0;q[t]=K;K>>>0>S>>>0?K=Q:(Q=(D[q[n]+Ka+3|0]&255^q[r]<>2])&q[B>>2],q[r]=Q,o[q[H>>2]+((q[F>>2]&K)<<1)>>1]=o[q[u]+(Q<<1)>>1],o[q[u]+(q[r]<<1)>>1]=q[t]&65535,K=q[p]);K=K-1|0;q[p]=K;if(0==(K|0)){break}Q=K}v=(v|0)==(ra|0);q[e]=0;q[s]=2;S=q[t]+1|0;q[t]=S;if(v&&(v=q[c],sg(b,-1<(v|0)?q[n]+v|0:0,S-v|0,0),q[c]=q[t],lg(q[d]),0==(q[q[d]+16>>2]|0))){C=0;break}}return C}wg.X=1;function xg(b){if(0==(b|0)){b=-2}else{if(7247==(q[b>>2]|0)){var f=b>>2;if(0==(b|0)){b=-2}else{if(7247!=(q[f]|0)){b=-2}else{if(0!=(q[f+4]|0)){var d=b+84|0,c;if(0!=(d|0)){c=(d+28|0)>>2;var e=q[c];if(0!=(e|0)){var g=d+36|0,h=q[g>>2];if(0!=(h|0)){var j=q[e+52>>2],d=d+40|0;0==(j|0)?g=h:(Bd[h](q[d>>2],j),g=q[g>>2],e=q[c]);Bd[g](q[d>>2],e);q[c]=0}}}yg(q[f+7]);yg(q[f+6])}Mg(b,0,0);yg(q[f+2]);f=Lh(q[f+1]);yg(b);b=(0!=(f|0))<<31>>31}}}else{f=b>>2,0==(b|0)?b=-2:31153!=(q[f]|0)?b=-2:(c=b+72|0,0==(q[c>>2]|0)?c=0:(q[c>>2]=0,c=Mh(b,q[f+17])),c=Nh(b,4)+c|0,cg(b+84|0),yg(q[f+7]),yg(q[f+6]),Mg(b,0,0),yg(q[f+2]),f=Lh(q[f+1]),yg(b),b=((c|0)!=(-f|0))<<31>>31)}}return b}l._gzclose=xg;function Oh(b,f){return Ph(b,f)}l._gzopen=Oh;function Ph(b,f){var d,c,e,g=yd(140);e=g>>2;var h=0==(g|0);a:do{if(h){var j=0}else{q[e+4]=0;q[e+5]=8192;q[e+20]=0;c=g>>2;q[c]=0;var i=g+60|0;q[i>>2]=-1;d=(g+64|0)>>2;q[d]=0;for(var k=f,p=0;;){var s=m[k];if(0==s<<24>>24){if(0==(p|0)){yg(g);j=0;break a}h=yd(af(b)+1|0);d=g+8|0;q[d>>2]=h;if(0==(h|0)){yg(g);j=0;break a}Qh(h,b);h=q[c];h=Rh(b,7247==(h|0)?0:31153==(h|0)?1537:521);q[e+1]=h;if(-1==(h|0)){yg(q[d>>2]);yg(g);j=0;break a}e=q[c];1==(e|0)?q[c]=31153:7247==(e|0)&&(Sh[h]&&!Sh[h].object.b?(c=Sh[h],e=0,e+=c.position,0>e?(Th(Uh),c=-1):(c.c=[],c=c.position=e)):(Th(Vh),c=-1),e=g+44|0,q[e>>2]=c,-1==(c|0)&&(q[e>>2]=0));c=g;e=c>>2;7247==(q[e]|0)&&(q[e+9]=0,q[e+10]=0,q[e+13]=0,q[e+14]=1);q[e+18]=0;Mg(c,0,0);q[e+3]=0;q[e+22]=0;j=g;break a}else{var u=s<<24>>24,s=10>(s-48&255);do{if(s){q[i>>2]=u-48|0;var n=p}else{if(114==(u|0)){n=q[c]=7247}else{if(119==(u|0)){n=q[c]=31153}else{if(97==(u|0)){n=q[c]=1}else{if(43==(u|0)){yg(g);j=0;break a}else{70==(u|0)?q[d]=4:102==(u|0)?q[d]=1:104==(u|0)?q[d]=2:82==(u|0)&&(q[d]=3),n=p}}}}}}while(0);k=k+1|0;p=n}}}}while(0);return j}Ph.X=1;function Mg(b,f,d){var c,e;e=(b+80|0)>>2;var g=q[e];c=(b+76|0)>>2;0!=(g|0)&&(-4!=(q[c]|0)&&yg(g),q[e]=0);q[c]=f;if(0!=(d|0)){if(-4==(f|0)){q[e]=d}else{if(b=b+8|0,f=yd(af(d)+(af(q[b>>2])+3)|0),q[e]=f,0==(f|0)){q[c]=-4,q[e]=O.e|0}else{Qh(f,q[b>>2]);c=q[e];c=c+af(c)|0;m[c]=m[O.r|0];m[c+1]=m[(O.r|0)+1];m[c+2]=m[(O.r|0)+2];e=q[e];c=af(e);b=0;do{m[e+c+b]=m[d+b],b++}while(0!=m[d+(b-1)])}}}}function Wh(b,f,d){var c,e,g,h=Nb;Nb+=4;var j;g=h>>2;var i=0==(b|0);a:do{if(i){var k=-1}else{var p=b;if(7247!=(q[b>>2]|0)){k=-1}else{if(0!=(q[b+76>>2]|0)){k=-1}else{if(0>(d|0)){Mg(p,-5,O.F|0),k=-1}else{if(0==(d|0)){k=0}else{c=b+72|0;if(0!=(q[c>>2]|0)){q[c>>2]=0;c=p;e=c+36|0;var s=c+40|0,u=c+88|0,n=c+32|0,t=c+12|0,r=q[b+68>>2];b:for(;;){if(0==(r|0)){var x=0;break}for(;;){var v=q[e>>2];if(0!=(v|0)){break}if(0!=(q[s>>2]|0)&&0==(q[u>>2]|0)){x=0;break b}var y=-1==(Xh(c)|0);if(y){x=y<<31>>31;break b}}y=0>(v|0)|(v|0)>(r|0)?r:v;q[e>>2]=v-y|0;q[n>>2]=q[n>>2]+y|0;q[t>>2]=q[t>>2]+y|0;r=r-y|0}if(-1==(x|0)){k=-1;break}}s=b+88|0;u=b+100|0;e=(b+36|0)>>2;var n=b+40|0,t=b+52|0,r=b+16|0,y=b+96|0,A=b+12|0;c=(b+32|0)>>2;for(var B=0,F=f,H=d;;){var z=I[e],w=0==(z|0);b:do{if(w){if(0!=(q[n>>2]|0)&&0==(q[s>>2]|0)){k=B;break a}j=I[t>>2];var J=0==(j|0);do{if(!J&&H>>>0>=q[r>>2]<<1>>>0){if(1==(j|0)){if(-1==(Yh(p,F,H,h)|0)){k=-1;break a}ka=q[g];j=23;break b}q[u>>2]=H;q[y>>2]=F;if(-1==(Zh(p)|0)){k=-1;break a}ka=q[e];q[g]=ka;q[e]=0;j=23;break b}}while(0);if(-1==(Xh(p)|0)){k=-1;break a}var G=B,S=F,C=H;j=24}else{ka=z>>>0>H>>>0?H:z;q[g]=ka;qg(F,q[c],ka);ka=I[g];q[c]=q[c]+ka|0;q[e]=q[e]-ka|0;var ka=ka;j=23}}while(0);23==j&&(q[A>>2]=q[A>>2]+ka|0,G=ka+B|0,S=F+ka|0,C=H-ka|0);if(0==(C|0)){k=G;break a}B=G;F=S;H=C}}}}}}}while(0);Nb=h;return k}l._gzread=Wh;Wh.X=1;function Xh(b){var f=b>>2,d;d=b+52|0;var c=q[d>>2];if(0==(c|0)){if(-1==($h(b)|0)){var e=-1;d=11}else{if(0!=(q[f+9]|0)){e=0,d=11}else{var g=q[d>>2];d=6}}}else{g=c,d=6}do{if(6==d){if(1==(g|0)){e=b+28|0;if(-1==(Yh(b,q[e>>2],q[f+4]<<1,b+36|0)|0)){e=-1;break}q[f+8]=q[e>>2]}else{if(2==(g|0)&&(q[f+25]=q[f+4]<<1,q[f+24]=q[f+7],-1==(Zh(b)|0))){e=-1;break}}e=0}}while(0);return e}function Yh(b,f,d,c){q[c>>2]=0;for(var e=b+4|0,g=0;;){if(g=ai(q[e>>2],f+g|0,d-g|0),1>(g|0)){if(0>(g|0)){f=bi();Mg(b,-1,f);var h=-1;break}if(0!=(g|0)){h=0;break}q[b+40>>2]=1;h=0;break}else{if(g=q[c>>2]+g|0,q[c>>2]=g,g>>>0>=d>>>0){h=0;break}}}return h}function Zh(b){var f,d=b>>2,c=Nb;Nb+=8;var e=c+4;f=b+84|0;var g=b+100|0,h=q[g>>2],j=b+88|0;a:for(;;){var i=0==(q[j>>2]|0);do{if(i){if(-1==(ci(b)|0)){var k=-1;break a}if(0==(q[j>>2]|0)){Mg(b,-3,O.I|0);k=-1;break a}}}while(0);i=di(f);if(-2==(i|0)||2==(i|0)){Mg(b,-2,O.Y|0);k=-1;break}else{if(-4==(i|0)){Mg(b,-4,O.e|0);k=-1;break}else{if(-3==(i|0)){d=q[d+27];Mg(b,-3,0==(d|0)?O.$|0:d);k=-1;break}else{var p=q[g>>2],i=1==(i|0);if(0==(p|0)|i){g=h-p|0;q[d+9]=g;h=q[d+24]+ -g|0;q[d+8]=h;f=(b+132|0)>>2;q[f]=$f(q[f],h,g);if(!i){k=0;break}i=-1==(ei(b,c)|0);do{if(!i&&-1!=(ei(b,e)|0)){if((q[c>>2]|0)!=(q[f]|0)){Mg(b,-3,O.D|0);k=-1;break a}if((q[e>>2]|0)==(q[d+26]|0)){k=q[d+13]=0;break a}Mg(b,-3,O.G|0);k=-1;break a}}while(0);Mg(b,-3,O.I|0);k=-1;break}}}}}Nb=c;return k}Zh.X=1;function $h(b){var f,d,c,e,g,h,j=b>>2,i,k=b+84|0;h=(b+16|0)>>2;if(0==(q[h]|0)){e=(b+20|0)>>2;var p=yd(q[e]);c=(b+24|0)>>2;q[c]=p;var s=yd(q[e]<<1),u=b+28|0;q[u>>2]=s;var n=q[c],t=0==(s|0);if(0==(n|0)|t){if(t){var r=n}else{yg(s),r=q[c]}0!=(r|0)&&yg(r);Mg(b,-4,O.e|0);var x=-1;i=100}else{q[h]=q[e];q[j+29]=0;q[j+30]=0;q[j+31]=0;var v=b+88|0;q[v>>2]=0;q[k>>2]=0;var y;if(0==(k|0)){var A=-2}else{q[k+24>>2]=0;var B=k+32|0,F=q[B>>2];if(0==(F|0)){q[B>>2]=2;q[k+40>>2]=0;var H=2}else{H=F}y=(k+36|0)>>2;0==(q[y]|0)&&(q[y]=4);var z=k+40|0,w=Bd[H](q[z>>2],1,7116);if(0==(w|0)){A=-4}else{var J=k+28|0;q[J>>2]=w;q[(w+52|0)>>2]=0;var G;if(0==(k|0)){var S=-2}else{var C=q[k+28>>2];if(0==(C|0)){S=-2}else{var ka=C+52|0,ra=q[ka>>2],N=C+36|0;0!=(ra|0)&&15!=(q[N>>2]|0)&&(Bd[q[k+36>>2]](q[k+40>>2],ra),q[(ka|0)>>2]=0);q[(C+8|0)>>2]=0;q[N>>2]=15;S=fi(k)}}G=S;0==(G|0)?A=0:(Bd[q[y]](q[z>>2],w),q[J>>2]=0,A=G)}}0==(A|0)?(oa=v,g=oa>>2,i=12):(yg(q[u>>2]),yg(q[c]),q[h]=0,Mg(b,-4,O.e|0),x=-1,i=100)}}else{var oa=b+88|0;g=oa>>2;i=12}a:do{if(12==i){var K=q[g];if(0==(K|0)){if(-1==(ci(b)|0)){x=-1;break}var Q=q[g];if(0==(Q|0)){x=0;break}var Ka=Q}else{Ka=K}d=(k|0)>>2;var Aa=q[d];if(31==m[Aa]<<24>>24){var P=Ka-1|0;q[g]=P;var hb=Aa+1|0;q[d]=hb;var ya=0==(P|0);do{if(ya){if(-1==(ci(b)|0)){x=-1;break a}var Fa=q[g];if(0==(Fa|0)){i=96}else{var Da=Fa,Ma=q[d];i=21}}else{Da=P,Ma=hb,i=21}}while(0);do{if(21==i&&-117==m[Ma]<<24>>24){var ib=Da-1|0;q[g]=ib;var bb=Ma+1|0;q[d]=bb;if(0==(ib|0)){if(-1==(ci(b)|0)){i=27}else{var Cb=q[g];if(0==(Cb|0)){i=27}else{var Oa=Cb,Pa=q[d];i=26}}}else{Oa=ib,Pa=bb,i=26}do{if(26==i){var jb=Oa-1|0;q[g]=jb;var Db=Pa+1|0;q[d]=Db;if(8==m[Pa]<<24>>24){if(0==(jb|0)){if(-1==(ci(b)|0)){i=33}else{var xa=q[g];if(0==(xa|0)){i=33}else{var ta=xa,Va=q[d];i=32}}}else{ta=jb,Va=Db,i=32}do{if(32==i){var Xa=ta-1|0;q[g]=Xa;var Eb=Va+1|0;q[d]=Eb;var La=D[Va]&255;if(0==(La&224|0)){if(0==(Xa|0)){var wb=ci(b),Ya=I[g];if(-1==(wb|0)){var cb=Ya;i=39}else{if(0==(Ya|0)){i=40}else{var Qa=Ya,qb=q[d];i=38}}}else{Qa=Xa,qb=Eb,i=38}if(38==i){var Ga=Qa-1|0;q[g]=Ga;q[d]=qb+1|0;cb=Ga;i=39}if(39==i){if(0==(cb|0)){i=40}else{var Ua=cb;i=42}}if(40==i){var Za=ci(b),Wa=q[g];if(-1==(Za|0)){var db=Wa;i=43}else{0==(Wa|0)?i=44:(Ua=Wa,i=42)}}if(42==i){var $a=Ua-1|0;q[g]=$a;q[d]=q[d]+1|0;db=$a;i=43}if(43==i){if(0==(db|0)){i=44}else{var rb=db;i=46}}if(44==i){var kb=ci(b),R=q[g];if(-1==(kb|0)){var $=R;i=47}else{0==(R|0)?i=48:(rb=R,i=46)}}if(46==i){var ba=rb-1|0;q[g]=ba;q[d]=q[d]+1|0;$=ba;i=47}if(47==i){if(0==($|0)){i=48}else{var la=$;i=50}}if(48==i){var L=ci(b),Z=q[g];if(-1==(L|0)){var V=Z;i=51}else{0==(Z|0)?i=52:(la=Z,i=50)}}if(50==i){var M=la-1|0;q[g]=M;q[d]=q[d]+1|0;V=M;i=51}if(51==i){if(0==(V|0)){i=52}else{var pa=V;i=54}}if(52==i){var yb=ci(b),ca=q[g];if(-1==(yb|0)){var ea=ca;i=55}else{0==(ca|0)?i=56:(pa=ca,i=54)}}if(54==i){var ja=pa-1|0;q[g]=ja;q[d]=q[d]+1|0;ea=ja;i=55}if(55==i){if(0==(ea|0)){i=56}else{var T=ea;i=58}}if(56==i){if(-1==(ci(b)|0)){i=59}else{var fa=q[g];0==(fa|0)?i=59:(T=fa,i=58)}}58==i&&(q[g]=T-1|0,q[d]=q[d]+1|0);var qa=0==(La&4|0);b:do{if(!qa){var ma=q[g];if(0==(ma|0)){var na=ci(b),va=I[g];if(-1==(na|0)){var wa=-1,Ja=va;i=64}else{if(0==(va|0)){var Ra=-1;i=65}else{var W=va;i=63}}}else{W=ma,i=63}if(63==i){var U=W-1|0;q[g]=U;var ga=q[d];q[d]=ga+1|0;wa=D[ga]&255;Ja=U;i=64}if(64==i){if(0==(Ja|0)){Ra=wa,i=65}else{var ha=Ja,ia=wa;i=67}}if(65==i){if(-1==(ci(b)|0)){var X=-256,Ea=Ra;i=68}else{var eb=q[g];0==(eb|0)?(X=-256,Ea=Ra,i=68):(ha=eb,ia=Ra,i=67)}}if(67==i){q[g]=ha-1|0;var Fb=q[d];q[d]=Fb+1|0;X=(D[Fb]&255)<<8;Ea=ia}for(var ab=X+Ea|0;;){var sb=ab-1|0;if(0==(ab|0)){break b}var tb=q[g];if(0==(tb|0)){if(-1==(ci(b)|0)){break b}var ub=q[g];if(0==(ub|0)){break b}var lb=ub}else{lb=tb}q[g]=lb-1|0;q[d]=q[d]+1|0;ab=sb}}}while(0);var mb=0==(La&8|0);b:do{if(!mb){for(var fb=q[g];;){if(0==(fb|0)){if(-1==(ci(b)|0)){break b}var Sa=q[g];if(0==(Sa|0)){break b}var Ta=Sa}else{Ta=fb}var Ba=Ta-1|0;q[g]=Ba;var za=q[d];q[d]=za+1|0;if(0==m[za]<<24>>24){break b}fb=Ba}}}while(0);var gb=0==(La&16|0);b:do{if(!gb){for(var Gb=q[g];;){if(0==(Gb|0)){if(-1==(ci(b)|0)){break b}var Hb=q[g];if(0==(Hb|0)){break b}var vb=Hb}else{vb=Gb}var xb=vb-1|0;q[g]=xb;var nb=q[d];q[d]=nb+1|0;if(0==m[nb]<<24>>24){break b}Gb=xb}}}while(0);var Ib=0==(La&2|0);do{if(!Ib){var zb=q[g];if(0==(zb|0)){var Jb=ci(b),Kb=q[g];if(-1==(Jb|0)){var Pb=Kb;i=91}else{if(0==(Kb|0)){i=92}else{var Tb=Kb;i=90}}}else{Tb=zb,i=90}if(90==i){var Vb=Tb-1|0;q[g]=Vb;q[d]=q[d]+1|0;Pb=Vb;i=91}if(91==i){if(0==(Pb|0)){i=92}else{var Wb=Pb;i=94}}if(92==i){if(-1==(ci(b)|0)){break}var Ub=q[g];if(0==(Ub|0)){break}Wb=Ub}q[g]=Wb-1|0;q[d]=q[d]+1|0}}while(0);fi(k);q[j+33]=$f(0,0,0);q[j+13]=2;x=q[j+14]=0;break a}}}while(0);Mg(b,-3,O.H|0);x=-1;break a}}}while(0);Mg(b,-3,O.q|0);x=-1;break a}}while(0);var Sb=b+28|0;m[q[Sb>>2]]=31;q[j+9]=1;var Qb=q[g],Xb=Sb}else{Qb=Ka,Xb=b+28|0}q[j+12]=q[j+3];var $b=q[Xb>>2];q[j+8]=$b;0!=(Qb|0)&&(f=(b+36|0)>>2,qg($b+q[f]|0,q[d],Qb),q[f]=q[f]+q[g]|0,q[g]=0);q[j+13]=1;q[j+14]=1;x=0}}while(0);return x}$h.X=1;function ci(b){if(0==(q[b+76>>2]|0)){if(0!=(q[b+40>>2]|0)){b=0}else{var f=b+24|0;-1==(Yh(b,q[f>>2],q[b+16>>2],b+88|0)|0)?b=-1:(q[b+84>>2]=q[f>>2],b=0)}}else{b=-1}return b}function ei(b,f){var d,c,e=b+84|0;d=(b+88|0)>>2;c=q[d];if(0==(c|0)){c=ci(b);var g=I[d];if(-1==(c|0)){var h=-1,j=g;c=6}else{if(0==(g|0)){var i=-1;c=7}else{var k=g;c=5}}}else{k=c,c=5}5==c&&(j=k-1|0,q[d]=j,h=e|0,k=q[h>>2],q[h>>2]=k+1|0,h=D[k]&255,c=6);if(6==c){if(0==(j|0)){i=h,c=7}else{var p=j,s=h;c=10}}if(7==c){if(h=ci(b),j=I[d],-1==(h|0)){var u=-256,n=i,t=j;c=11}else{if(0!=(j|0)){p=j,s=i,c=10}else{var r=i-256|0;c=12}}}10==c&&(t=p-1|0,q[d]=t,u=e|0,n=q[u>>2],q[u>>2]=n+1|0,u=(D[n]&255)<<8,n=s,c=11);if(11==c){if(s=u+n|0,0==(t|0)){r=s,c=12}else{var x=t,v=s;c=15}}if(12==c){if(s=ci(b),u=I[d],-1==(s|0)){var y=-65536,A=r,B=u;c=16}else{if(0!=(u|0)){x=u,v=r,c=15}else{var F=r-65536|0;c=17}}}15==c&&(B=x-1|0,q[d]=B,y=e|0,A=q[y>>2],q[y>>2]=A+1|0,y=(D[A]&255)<<16,A=v,c=16);if(16==c){if(v=y+A|0,0==(B|0)){F=v,c=17}else{var H=B,z=v;c=19}}if(17==c){if(-1==(ci(b)|0)){var w=-1;c=20}else{v=q[d],0==(v|0)?(w=-1,c=20):(H=v,z=F,c=19)}}19==c&&(q[d]=H-1|0,d=e|0,e=q[d>>2],q[d>>2]=e+1|0,q[f>>2]=((D[e]&255)<<24)+z|0,w=0);return w}ei.X=1;function gi(b,f,d){var c,e,g=0==(b|0);a:do{if(g){e=0}else{var h=b,j=b+84|0;if(31153!=(q[b>>2]|0)){e=0}else{if(0!=(q[b+76>>2]|0)){e=0}else{if(0>(d|0)){Mg(h,-5,O.F|0),e=0}else{if(0==(d|0)){e=0}else{if(e=(b+16|0)>>2,0==(q[e]|0)&&-1==(hi(h)|0)){e=0}else{c=b+72|0;if(0!=(q[c>>2]|0)&&(q[c>>2]=0,-1==(Mh(h,q[b+68>>2])|0))){e=0;break}var i=I[e]>>>0>d>>>0;c=(b+88|0)>>2;b:do{if(i){for(var k=b+24|0,p=j,s=b+12|0,u=f,n=d;;){var t=I[c];if(0==(t|0)){var r=q[k>>2];q[p>>2]=r}else{r=q[p>>2]}var x=q[e]-t|0,x=x>>>0>n>>>0?n:x;qg(r+t|0,u,x);q[c]=q[c]+x|0;q[s>>2]=q[s>>2]+x|0;if((n|0)==(x|0)){break b}n=n-x|0;u=u+x|0;if(-1==(Nh(h,0)|0)){e=0;break a}}}else{if(0!=(q[c]|0)&&-1==(Nh(h,0)|0)){e=0;break a}q[c]=d;q[j>>2]=f;k=b+12|0;q[k>>2]=q[k>>2]+d|0;if(-1==(Nh(h,0)|0)){e=0;break a}}}while(0);e=d}}}}}}}while(0);return e}l._gzwrite=gi;gi.X=1;function ii(b,f){var d,c,e=I[b+28>>2];d=e>>2;var g=b|0,h=q[g>>2],j=b+4|0,i=h+(q[j>>2]-6)|0,k=b+12|0,p=q[k>>2],s=b+16|0,u=q[s>>2],n=p+(u-258)|0,t=I[d+11],r=I[d+12],x=I[d+13],v=e+56|0,y=e+60|0,A=q[d+19],B=q[d+20],F=(1<>2],Ka=q[v>>2];a:for(;;){if(15>Q>>>0){var Aa=oa+2|0,P=Aa,hb=Q+16|0,ya=((D[oa+1|0]&255)<>1],Cb=D[(Ma<<2)+A+1|0]&255,Oa=Da>>>(Cb>>>0),Pa=Fa-Cb|0,jb=ib&255;if(0==ib<<24>>24){var Db=K+1|0;m[Db]=bb&255;var xa=P,ta=Db,Va=Pa,Xa=Oa;c=59;break}if(0!=(jb&16|0)){c=9;break}if(0==(jb&64|0)){var Eb=(Oa&(1<>2]=O.A|0;q[d]=29;var La=P,wb=K,Ya=Pa,cb=Oa;break a}q[d]=11;La=P;wb=K;Ya=Pa;cb=Oa;break a}}do{if(9==c){var Qa=bb&65535,qb=jb&15;if(0==(qb|0)){var Ga=Qa,Ua=P,Za=Pa,Wa=Oa}else{if(Pa>>>0>>0){var db=P+1|0,$a=db,rb=Pa+8|0,kb=((D[db]&255)<>>(qb>>>0)}if(15>Za>>>0){var R=Ua+2|0,$=R,ba=Za+16|0,la=((D[Ua+1|0]&255)<>1],pa=D[(V<<2)+B+1|0]&255,yb=Z>>>(pa>>>0),ca=L-pa|0,ea=D[(V<<2)+B|0]&255;if(0!=(ea&16|0)){break}if(0!=(ea&64|0)){q[b+24>>2]=O.B|0;q[d]=29;La=$;wb=K;Ya=ca;cb=yb;break a}var ja=(yb&(1<>>0>>0){var qa=$+1|0,ma=((D[qa]&255)<>>0>>0){var va=$+2|0,wa=va,Ja=ca+16|0,Ra=((D[va]&255)<>>(fa>>>0),ha=Ja-fa|0,ia=K,X=ia-z|0;if(U>>>0>X>>>0){var Ea=U-X|0,eb=Ea>>>0>t>>>0;do{if(eb){if(0==(q[w>>2]|0)){break}q[b+24>>2]=O.C|0;q[d]=29;La=wa;wb=K;Ya=ha;cb=ga;break a}c=24}while(0);do{if(G){var Fb=x+(S-Ea)|0;if(Ea>>>0>>0){for(var ab=Ga-Ea|0,sb=W-ia|0,tb=ra+sb|0,ub=Fb,lb=Ea,mb=K;;){var fb=ub+1|0,Sa=mb+1|0;m[Sa]=m[fb];var Ta=lb-1|0;if(0==(Ta|0)){break}ub=fb;lb=Ta;mb=Sa}Ba=K+tb+T+(1-U)|0;za=ab;gb=K+z+sb+T|0}else{var Ba=Fb,za=Ga,gb=K}}else{if(r>>>0>>0){var Gb=x+(C-Ea)|0,Hb=Ea-r|0;if(Hb>>>0>>0){for(var vb=Ga-Hb|0,xb=W-ia|0,nb=Gb,Ib=Hb,zb=K;;){var Jb=nb+1|0,Kb=zb+1|0;m[Kb]=m[Jb];var Pb=Ib-1|0;if(0==(Pb|0)){break}nb=Jb;Ib=Pb;zb=Kb}var Tb=K+N+xb+T|0;if(r>>>0>>0){for(var Vb=vb-r|0,Wb=ra+xb|0,Ub=J,Sb=r,Qb=Tb;;){var Xb=Ub+1|0,$b=Qb+1|0;m[$b]=m[Xb];var dc=Sb-1|0;if(0==(dc|0)){break}Ub=Xb;Sb=dc;Qb=$b}Ba=K+Wb+T+(1-U)|0;za=Vb;gb=K+z+xb+T|0}else{Ba=J,za=vb,gb=Tb}}else{Ba=Gb,za=Ga,gb=K}}else{var ac=x+(ka-Ea)|0;if(Ea>>>0>>0){for(var tc=Ga-Ea|0,mc=W-ia|0,gd=ra+mc|0,bc=ac,nc=Ea,uc=K;;){var vc=bc+1|0,Hc=uc+1|0;m[Hc]=m[vc];var Ic=nc-1|0;if(0==(Ic|0)){break}bc=vc;nc=Ic;uc=Hc}Ba=K+gd+T+(1-U)|0;za=tc;gb=K+z+mc+T|0}else{Ba=ac,za=Ga,gb=K}}}}while(0);var wc=2>>0;b:do{if(wc){for(var oc=gb,xc=za,jc=Ba;;){m[oc+1|0]=m[jc+1|0];m[oc+2|0]=m[jc+2|0];var yc=jc+3|0,kc=oc+3|0;m[kc]=m[yc];var hd=xc-3|0;if(2>=hd>>>0){var zc=kc,pc=hd,Ac=yc;break b}oc=kc;xc=hd;jc=yc}}else{zc=gb,pc=za,Ac=Ba}}while(0);if(0==(pc|0)){xa=wa,ta=zc}else{var Jc=zc+1|0;m[Jc]=m[Ac+1|0];if(1>>0){var Kc=zc+2|0;m[Kc]=m[Ac+2|0];xa=wa;ta=Kc}else{xa=wa,ta=Jc}}}else{for(var Yb=K+ -U|0,Lc=Ga,ec=K;;){m[ec+1|0]=m[Yb+1|0];m[ec+2|0]=m[Yb+2|0];var Bc=Yb+3|0,Mc=ec+3|0;m[Mc]=m[Bc];var fc=Lc-3|0;if(2>=fc>>>0){break}Yb=Bc;Lc=fc;ec=Mc}if(0==(fc|0)){xa=wa,ta=Mc}else{var qc=ec+4|0;m[qc]=m[Yb+4|0];if(1>>0){var rc=ec+5|0;m[rc]=m[Yb+5|0];xa=wa;ta=rc}else{xa=wa,ta=qc}}}Va=ha;Xa=ga}}while(0);if(!(xa>>>0>>0&ta>>>0>>0)){La=xa;wb=ta;Ya=Va;cb=Xa;break}oa=xa;K=ta;Q=Va;Ka=Xa}var lc=Ya>>>3,fe=La+ -lc|0,Tc=Ya&7;q[g>>2]=La+(1-lc)|0;q[k>>2]=wb+1|0;q[j>>2]=(i-fe|0)+5|0;q[s>>2]=(n-wb|0)+257|0;q[v>>2]=(1<>2]=Tc}ii.X=1;function hi(b){var f,d,c=b>>2;d=(b+20|0)>>2;var e=yd(q[d]);f=(b+24|0)>>2;q[f]=e;var g=yd(q[d]),e=b+28|0;q[e>>2]=g;var h=q[f],j=0==(g|0);0==(h|0)|j?(j?c=h:(yg(g),c=q[f]),0!=(c|0)&&yg(c),Mg(b,-4,O.e|0),c=-1):(q[c+29]=0,q[c+30]=0,q[c+31]=0,0==(ag(b+84|0,q[c+15],q[c+16])|0)?(b=q[d],q[c+4]=b,q[c+25]=b,b=q[e>>2],q[c+24]=b,q[c+8]=b,c=0):(yg(q[f]),Mg(b,-4,O.e|0),c=-1));return c}hi.X=1;function Mh(b,f){var d,c=b+88|0;if(0==(q[c>>2]|0)){d=4}else{if(-1==(Nh(b,0)|0)){var e=-1;d=9}else{d=4}}a:do{if(4==d){for(var g=b+16|0,h=b+24|0,j=b+84|0,i=b+12|0,k=1,p=f;;){if(0==(p|0)){e=0;break a}var s=q[g>>2],s=0>(s|0)|(s|0)>(p|0)?p:s;0!=(k|0)&&zd(q[h>>2],s);q[c>>2]=s;q[j>>2]=q[h>>2];q[i>>2]=q[i>>2]+s|0;if(-1==(Nh(b,0)|0)){e=-1;break a}k=0;p=p-s|0}}}while(0);return e}function Nh(b,f){var d,c,e,g,h,j=b+84|0;g=(b+16|0)>>2;if(0==(q[g]|0)){if(-1==(hi(b)|0)){var i=-1;h=30}else{h=4}}else{h=4}do{if(4==h){e=(b+100|0)>>2;c=(b+96|0)>>2;d=(b+32|0)>>2;var k=b+28|0,p=b+4|0,s=j,u=0==(f|0),n=q[e];a:do{if(u){for(var t=n;;){if(0==(t|0)){h=q[c];var t=q[d],r=h-t|0,x=(h|0)==(t|0);do{if(x){h=13}else{h=ji(q[p>>2],t,r);if(!(-1<(h|0)&(h|0)==(r|0))){h=20;break a}h=q[e];if(0==(h|0)){h=13}else{var v=h,y=q[c];h=8}}}while(0);13==h&&(v=q[g],q[e]=v,y=q[k>>2],q[c]=y);q[d]=y;t=v}if(-2==(jg(s,0)|0)){h=26;break a}r=q[e];if((t|0)==(r|0)){h=28;break a}t=r}}else{r=0;for(t=n;;){if(0==(t|0)){h=17}else{if(0==(f|0)){var A=t;h=25}else{4!=(f|0)?h=17:1==(r|0)?h=17:(A=t,h=25)}}if(17==h){var x=q[c],B=q[d],r=x-B|0;if((x|0)==(B|0)){A=t}else{t=ji(q[p>>2],B,r);if(!(-1<(t|0)&(t|0)==(r|0))){h=20;break a}A=q[e]}0==(A|0)?(t=q[g],q[e]=t,A=q[k>>2],q[c]=A):(t=A,A=q[c]);q[d]=A;A=t}r=jg(s,f);if(-2==(r|0)){h=26;break a}t=q[e];if((A|0)==(t|0)){h=28;break a}}}}while(0);20==h?(d=bi(),Mg(b,-1,d),i=-1):26==h?(Mg(b,-2,O.O|0),i=-1):28==h&&(4==(f|0)&&bg(s),i=0)}}while(0);return i}Nh.X=1;function fi(b){var f=b>>2;0==(b|0)?f=-2:(b=q[f+7],0==(b|0)?f=-2:(q[(b+28|0)>>2]=0,q[f+5]=0,q[f+2]=0,q[f+6]=0,q[f+12]=1,q[(b|0)>>2]=0,q[(b+4|0)>>2]=0,q[(b+12|0)>>2]=0,q[(b+20|0)>>2]=32768,q[(b+32|0)>>2]=0,q[(b+40|0)>>2]=0,q[(b+44|0)>>2]=0,q[(b+48|0)>>2]=0,q[(b+56|0)>>2]=0,q[(b+60|0)>>2]=0,f=b+1328|0,q[(b+108|0)>>2]=f,q[(b+80|0)>>2]=f,q[(b+76|0)>>2]=f,q[(b+7104|0)>>2]=1,q[(b+7108|0)>>2]=-1,f=0));return f}fi.X=1;function di(b){var f,d,c,e,g,h,j,i,k,p,s,u,n,t,r,x,v,y,A,B,F,H,z,w,J,G,S=Nb;Nb+=4;var C,ka=0==(b|0);a:do{if(ka){var ra=-2}else{var N=q[b+28>>2];if(0==(N|0)){ra=-2}else{G=(b+12|0)>>2;var oa=q[G];if(0==(oa|0)){ra=-2}else{J=(b|0)>>2;var K=q[J];if(0==(K|0)&&0!=(q[b+4>>2]|0)){ra=-2}else{var Q=N;w=(N|0)>>2;var Ka=q[w];if(11==(Ka|0)){q[w]=12;var Aa=q[G],P=q[J],hb=12}else{Aa=oa,P=K,hb=Ka}z=(b+16|0)>>2;var ya=q[z];H=(b+4|0)>>2;var Fa=I[H];F=(N+56|0)>>2;B=(N+60|0)>>2;A=(N+8|0)>>2;y=(N+24|0)>>2;var Da=S|0,Ma=S+1|0;v=(N+16|0)>>2;x=(N+32|0)>>2;r=(b+24|0)>>2;var ib=N+36|0,bb=N+20|0;t=(b+48|0)>>2;n=(N+64|0)>>2;var Cb=N+12|0;u=(N+4|0)>>2;s=(N+7108|0)>>2;var Oa=N+84|0;p=Oa>>2;var Pa=N+76|0;k=(N+72|0)>>2;var jb=N+7112|0;i=(N+68|0)>>2;var Db=N+44|0,xa=N+7104|0,ta=N+48|0,Va=N+52|0,Xa=N+40|0;j=(b+20|0)>>2;h=(N+28|0)>>2;var Eb=S+2|0,La=S+3|0;g=(N+96|0)>>2;e=(N+100|0)>>2;var wb=N+92|0;c=(N+104|0)>>2;var Ya=N+112|0;d=Ya>>1;var cb=N+108|0,Qa=cb,qb=cb|0,Ga=N+1328|0,Ua=N+76|0,Za=Ya,Wa=N+752|0,db=N+624|0,$a=N+80|0,rb=N+88|0,kb=N+80|0,R=0,$=P,ba=Aa,la=Fa,L=ya,Z=q[F],V=q[B],M=ya,pa=hb;b:for(;;){c:do{if(0==(pa|0)){var yb=I[A];if(0==(yb|0)){q[w]=12;var ca=R,ea=$,ja=ba,T=la,fa=L,qa=Z,ma=V,na=M}else{for(var va=$,wa=la,Ja=Z,Ra=V;16>Ra>>>0;){if(0==(wa|0)){var W=R,U=va,ga=0,ha=Ja,ia=Ra,X=M;break b}var Ea=((D[va]&255)<>2]=-1,Fb=q[A]}var ab=0==(Fb&1|0);do{if(!ab&&0==((((Ja<<8&65280)+(Ja>>>8)|0)>>>0)%31|0)){if(8==(Ja&15|0)){var sb=Ja>>>4,tb=Ra-4|0,ub=(sb&15)+8|0,lb=I[ib>>2],mb=0==(lb|0);do{if(!mb){if(ub>>>0<=lb>>>0){break}q[r]=O.S|0;q[w]=29;ca=R;ea=va;ja=ba;T=wa;fa=L;qa=sb;ma=tb;na=M;C=266;break c}q[ib>>2]=ub}while(0);q[bb>>2]=1<>>12&2^11;ca=R;ea=va;ja=ba;T=wa;fa=L;ma=qa=0;na=M;C=266;break c}q[r]=O.q|0;q[w]=29;ca=R;ea=va;ja=ba;T=wa;fa=L;qa=Ja;ma=Ra;na=M;C=266;break c}}while(0);q[r]=O.R|0;q[w]=29;ca=R;ea=va;ja=ba;T=wa;fa=L;qa=Ja;ma=Ra}na=M}C=266}else{if(1==(pa|0)){for(var Sa=$,Ta=la,Ba=Z,za=V;16>za>>>0;){if(0==(Ta|0)){W=R;U=Sa;ga=0;ha=Ba;ia=za;X=M;break b}var gb=((D[Sa]&255)<>2]=Ba>>>8&1,Hb=q[v]}0!=(Hb&512|0)&&(m[Da]=Ba&255,m[Ma]=Ba>>>8&255,q[y]=$f(q[y],Da,2));q[w]=2;var vb=Sa,xb=Ta,nb=0,Ib=0;C=45}else{q[r]=O.H|0,q[w]=29,ca=R,ea=Sa,ja=ba,T=Ta,fa=L,qa=Ba,ma=za,na=M,C=266}}}else{if(2==(pa|0)){vb=$,xb=la,nb=Z,Ib=V,C=45}else{if(3==(pa|0)){var zb=$,Jb=la,Kb=Z,Pb=V;C=53}else{if(4==(pa|0)){var Tb=$,Vb=la,Wb=Z,Ub=V;C=61}else{if(5==(pa|0)){var Sb=$,Qb=la,Xb=Z,$b=V;C=72}else{if(6==(pa|0)){var dc=$,ac=la,tc=Z,mc=V,gd=q[v];C=82}else{if(7==(pa|0)){var bc=$,nc=la,uc=Z,vc=V;C=95}else{if(8==(pa|0)){var Hc=$,Ic=la,wc=Z,oc=V;C=108}else{if(9==(pa|0)){for(var xc=$,jc=la,yc=Z,kc=V;32>kc>>>0;){if(0==(jc|0)){W=R;U=xc;ga=0;ha=yc;ia=kc;X=M;break b}var hd=((D[xc]&255)<>>(Mc>>>0),lc=V-Mc|0;32>lc>>>0;){if(0==(qc|0)){W=R;U=fc;ga=0;ha=rc;ia=lc;X=M;break b}var fe=((D[fc]&255)<>>16^65535|0)){q[n]=Tc;q[w]=14;var df=fc,ge=qc,ef=0,he=0;C=142}else{q[r]=O.Z|0,q[w]=29,ca=R,ea=fc,ja=ba,T=qc,fa=L,qa=rc,ma=lc,na=M,C=266}}else{if(14==(pa|0)){df=$,ge=la,ef=Z,he=V,C=142}else{if(15==(pa|0)){var id=$,Nc=la,ie=Z,Ad=V;C=143}else{if(16==(pa|0)){for(var Uc=$,Vc=la,Cc=Z,Dd=V;14>Dd>>>0;){if(0==(Vc|0)){W=R;U=Uc;ga=0;ha=Cc;ia=Dd;X=M;break b}var Rl=((D[Uc]&255)<>>5&31)+1|0;q[e]=Ni;q[wb>>2]=(Cc>>>10&15)+4|0;var Oi=Cc>>>14,Pi=Dd-14|0;if(286>>0|30>>0){q[r]=O.aa|0,q[w]=29,ca=R,ea=Uc,ja=ba,T=Vc,fa=L,qa=Oi,ma=Pi,na=M,C=266}else{q[c]=0;q[w]=17;var je=Uc,ke=Vc,le=Oi,me=Pi;C=153}}else{if(17==(pa|0)){je=$,ke=la,le=Z,me=V,C=153}else{if(18==(pa|0)){var Dc=R,Qi=$,Ri=la,Si=Z,Ti=V;C=163}else{if(19==(pa|0)){var Ui=R,Vi=$,Wi=la,Xi=Z,Yi=V;C=204}else{if(20==(pa|0)){var Wc=R,zg=$,ff=la,Ag=Z,Bg=V;C=205}else{if(21==(pa|0)){var Cg=R,Dg=$,Eg=la,Fg=Z,Gg=V,ld=q[k];C=226}else{if(22==(pa|0)){var ne=R,Zi=$,$i=la,aj=Z,bj=V;C=233}else{if(23==(pa|0)){var Hg=R,Ig=$,Jg=la,Kg=Z,Lg=V,md=q[k];C=247}else{if(24==(pa|0)){var gf=R,hf=$,jf=la,kf=Z,lf=V;C=253}else{if(25==(pa|0)){if(0==(L|0)){W=R;U=$;ga=la;ha=Z;ia=V;X=M;break b}m[ba]=q[n]&255;q[w]=20;ca=R;ea=$;ja=ba+1|0;T=la;fa=L-1|0;qa=Z;ma=V;na=M;C=266}else{if(26==(pa|0)){var Sl=0==(q[A]|0);do{if(!Sl){for(var Ed=$,oe=la,Fd=Z,Gd=V;32>Gd>>>0;){if(0==(oe|0)){W=R;U=Ed;ga=0;ha=Fd;ia=Gd;X=M;break b}var Tl=((D[Ed]&255)<Ib>>>0;){if(0==(xb|0)){W=R;U=vb;ga=0;ha=nb;ia=Ib;X=M;break b}var Ul=((D[vb]&255)<>2]=nb);0!=(q[v]&512|0)&&(m[Da]=nb&255,m[Ma]=nb>>>8&255,m[Eb]=nb>>>16&255,m[La]=nb>>>24&255,q[y]=$f(q[y],Da,4));q[w]=3;zb=vb;Jb=xb;Pb=Kb=0;C=53}else{if(121==C){if(0==(q[Cb>>2]|0)){q[G]=ba;q[z]=L;q[J]=pc;q[H]=Ac;q[F]=Jc;q[B]=Kc;ra=2;break a}var lj=Xf(0,0,0);q[y]=lj;q[t]=lj;q[w]=11;Yb=pc;Lc=Ac;ec=Jc;Bc=Kc;C=124}else{if(142==C){q[w]=15,id=df,Nc=ge,ie=ef,Ad=he,C=143}else{if(153==C){for(;;){var qe=I[c];if(qe>>>0>=I[wb>>2]>>>0){break}for(var re=je,rf=ke,se=le,Hd=me;3>Hd>>>0;){if(0==(rf|0)){W=R;U=re;ga=0;ha=se;ia=Hd;X=M;break b}var Vl=((D[re]&255)<>1]&65535)<<1>>1)+d]=se&7;je=re;ke=rf;le=se>>>3;me=Hd-3|0}var Wl=19>qe>>>0;d:do{if(Wl){for(var Ng=qe;;){q[c]=Ng+1|0;o[((E[li+(Ng<<1)>>1]&65535)<<1>>1)+d]=0;var mj=I[c];if(19<=mj>>>0){break d}Ng=mj}}}while(0);q[qb>>2]=Ga;q[Ua>>2]=Ga;q[p]=7;var nj=mi(0,Za,19,Qa,Oa,Wa);0==(nj|0)?(q[c]=0,q[w]=18,Dc=0,Qi=je,Ri=ke,Si=le,Ti=me,C=163):(q[r]=O.ba|0,q[w]=29,ca=nj,ea=je,ja=ba,T=ke,fa=L,qa=le,ma=me,na=M,C=266)}else{if(284==C){var Xl=0==(q[A]|0);do{if(!Xl){if(0==(q[v]|0)){var Og=mf,Pg=nf,Qg=of,Rg=pf;break}for(var Id=mf,te=nf,ue=of,Jd=pf;32>Jd>>>0;){if(0==(te|0)){W=R;U=Id;ga=0;ha=ue;ia=Jd;X=qf;break b}var Yl=((D[Id]&255)<Pb>>>0;){if(0==(Jb|0)){W=R;U=zb;ga=0;ha=Kb;ia=Pb;X=M;break b}var Zl=((D[zb]&255)<>2]=Kb&255,q[(q[x]+12|0)>>2]=Kb>>>8);0!=(q[v]&512|0)&&(m[Da]=Kb&255,m[Ma]=Kb>>>8&255,q[y]=$f(q[y],Da,2));q[w]=4;Tb=zb;Vb=Jb;Ub=Wb=0;C=61}else{if(124==C){if(0==(q[u]|0)){for(var ve=Yb,tf=Lc,Kd=ec,Ld=Bc;3>Ld>>>0;){if(0==(tf|0)){W=R;U=ve;ga=0;ha=Kd;ia=Ld;X=M;break b}var $l=((D[ve]&255)<>>1&3;if(0==(uf|0)){q[w]=13}else{if(1==(uf|0)){var vf=Q;q[vf+76>>2]=ni|0;q[vf+84>>2]=9;q[vf+80>>2]=oi|0;q[vf+88>>2]=5;q[w]=19}else{2==(uf|0)?q[w]=16:3==(uf|0)&&(q[r]=O.V|0,q[w]=29)}}ca=R;ea=ve;ja=ba;T=tf;fa=L;qa=Kd>>>3;ma=Ld-3|0}else{var rj=Bc&7;q[w]=26;ca=R;ea=Yb;ja=ba;T=Lc;fa=L;qa=ec>>>(rj>>>0);ma=Bc-rj|0}na=M;C=266}else{if(143==C){var Sg=I[n];if(0==(Sg|0)){q[w]=11,ca=R,ea=id,ja=ba,T=Nc,fa=L}else{var sj=Sg>>>0>Nc>>>0?Nc:Sg,nd=sj>>>0>L>>>0?L:sj;if(0==(nd|0)){W=R;U=id;ga=Nc;ha=ie;ia=Ad;X=M;break b}qg(ba,id,nd);var am=Nc-nd|0,bm=id+nd|0,cm=L-nd|0,dm=ba+nd|0;q[n]=q[n]-nd|0;ca=R;ea=bm;ja=dm;T=am;fa=cm}qa=ie;ma=Ad;na=M;C=266}else{if(163==C){var Xc=Qi,Yc=Ri,Zc=Si,$c=Ti;d:for(;;){var od=I[c],tj=I[g],uj=q[e]+tj|0;if(od>>>0>>0){for(var em=(1<>2],ad=Xc,pd=Yc,bd=Zc,Oc=$c;;){var wj=em&bd,hc=D[(wj<<2)+vj+1|0]&255;if(hc>>>0<=Oc>>>0){break}if(0==(pd|0)){W=Dc;U=ad;ga=0;ha=bd;ia=Oc;X=M;break b}var fm=((D[ad]&255)<>1];if(16>(wf&65535)){for(var we=ad,xf=pd,yf=bd,Md=Oc;Md>>>0>>0;){if(0==(xf|0)){W=Dc;U=we;ga=0;ha=yf;ia=Md;X=M;break b}var gm=((D[we]&255)<>>(hc>>>0),im=Md-hc|0;q[c]=od+1|0;o[(od<<1>>1)+d]=wf;Xc=we;Yc=xf;Zc=hm;$c=im}else{if(16==wf<<16>>16){for(var jm=hc+2|0,Nd=ad,xe=pd,zf=bd,Od=Oc;Od>>>0>>0;){if(0==(xe|0)){W=Dc;U=Nd;ga=0;ha=zf;ia=Od;X=M;break b}var km=((D[Nd]&255)<>>(hc>>>0),xj=Od-hc|0;if(0==(od|0)){q[r]=O.z|0;q[w]=29;ca=Dc;ea=Nd;ja=ba;T=xe;fa=L;qa=Tg;ma=xj;na=M;C=266;break c}var Ug=o[(od-1<<1>>1)+d],Af=Nd,Bf=xe,Cf=Tg>>>2,Df=xj-2|0,Ef=(Tg&3)+3|0}else{if(17==wf<<16>>16){for(var lm=hc+3|0,ye=ad,Ff=pd,Gf=bd,Pd=Oc;Pd>>>0>>0;){if(0==(Ff|0)){W=Dc;U=ye;ga=0;ha=Gf;ia=Pd;X=M;break b}var mm=((D[ye]&255)<>>(hc>>>0),Ug=0,Af=ye,Bf=Ff,Cf=yj>>>3,Df=-3-hc+Pd|0,Ef=(yj&7)+3|0}else{for(var nm=hc+7|0,ze=ad,Hf=pd,If=bd,Qd=Oc;Qd>>>0>>0;){if(0==(Hf|0)){W=Dc;U=ze;ga=0;ha=If;ia=Qd;X=M;break b}var om=((D[ze]&255)<>>(hc>>>0),Ug=0,Af=ze,Bf=Hf,Cf=zj>>>7,Df=-7-hc+Qd|0,Ef=(zj&127)+11|0}}if((od+Ef|0)>>>0>uj>>>0){q[r]=O.z|0;q[w]=29;ca=Dc;ea=Af;ja=ba;T=Bf;fa=L;qa=Cf;ma=Df;na=M;C=266;break c}for(var Aj=Ef,Vg=od;;){var Bj=Aj-1|0;q[c]=Vg+1|0;o[(Vg<<1>>1)+d]=Ug;if(0==(Bj|0)){Xc=Af;Yc=Bf;Zc=Cf;$c=Df;continue d}Aj=Bj;Vg=q[c]}}}else{if(29==(q[w]|0)){ca=Dc;ea=Xc;ja=ba;T=Yc;fa=L;qa=Zc;ma=$c;na=M;C=266;break c}if(0==o[db>>1]<<16>>16){q[r]=O.N|0;q[w]=29;ca=Dc;ea=Xc;ja=ba;T=Yc;fa=L;qa=Zc;ma=$c;na=M;C=266;break c}q[qb>>2]=Ga;q[Ua>>2]=Ga;q[p]=9;var Cj=mi(1,Za,tj,Qa,Oa,Wa);if(0!=(Cj|0)){q[r]=O.P|0;q[w]=29;ca=Cj;ea=Xc;ja=ba;T=Yc;fa=L;qa=Zc;ma=$c;na=M;C=266;break c}q[$a>>2]=q[Qa>>2];q[rb>>2]=6;var Dj=mi(2,(q[g]<<1)+Za|0,q[e],Qa,rb,Wa);if(0==(Dj|0)){q[w]=19;Ui=0;Vi=Xc;Wi=Yc;Xi=Zc;Yi=$c;C=204;break c}q[r]=O.Q|0;q[w]=29;ca=Dj;ea=Xc;ja=ba;T=Yc;fa=L;qa=Zc;ma=$c;na=M;C=266;break c}}}}}}}while(0);do{if(61==C){var Ej=I[v],pm=0==(Ej&1024|0);do{if(pm){var Fj=q[x];if(0==(Fj|0)){var Wg=Tb,Xg=Vb,Yg=Wb,Zg=Ub}else{q[(Fj+16|0)>>2]=0,Wg=Tb,Xg=Vb,Yg=Wb,Zg=Ub}}else{for(var Ae=Tb,Jf=Vb,qd=Wb,Be=Ub;16>Be>>>0;){if(0==(Jf|0)){W=R;U=Ae;ga=0;ha=qd;ia=Be;X=M;break b}var qm=((D[Ae]&255)<>2]=qd,Hj=q[v]}0!=(Hj&512|0)&&(m[Da]=qd&255,m[Ma]=qd>>>8&255,q[y]=$f(q[y],Da,2));Wg=Ae;Xg=Jf;Zg=Yg=0}}while(0);q[w]=5;Sb=Wg;Qb=Xg;Xb=Yg;$b=Zg;C=72}else{204==C&&(q[w]=20,Wc=Ui,zg=Vi,ff=Wi,Ag=Xi,Bg=Yi,C=205)}}while(0);do{if(72==C){var Ce=I[v];if(0==(Ce&1024|0)){var Ij=Sb,Jj=Qb,Kj=Ce}else{var Kf=I[n],rd=Kf>>>0>Qb>>>0?Qb:Kf;if(0==(rd|0)){var $g=Sb,ah=Qb,Lj=Kf,Mj=Ce}else{var Nj=I[x];f=Nj>>2;if(0==(Nj|0)){var Lf=Ce}else{var Oj=q[f+4];if(0==(Oj|0)){Lf=Ce}else{var bh=q[f+5]-Kf|0,Pj=I[f+6];qg(Oj+bh|0,Sb,(bh+rd|0)>>>0>Pj>>>0?Pj-bh|0:rd);Lf=q[v]}}0!=(Lf&512|0)&&(q[y]=$f(q[y],Sb,rd));var rm=Qb-rd|0,sm=Sb+rd|0,Qj=q[n]-rd|0;q[n]=Qj;$g=sm;ah=rm;Lj=Qj;Mj=Lf}if(0!=(Lj|0)){W=R;U=$g;ga=ah;ha=Xb;ia=$b;X=M;break b}Ij=$g;Jj=ah;Kj=Mj}q[n]=0;q[w]=6;dc=Ij;ac=Jj;tc=Xb;mc=$b;gd=Kj;C=82}else{if(205==C){if(5>>0&257>>0){q[G]=ba;q[z]=L;q[J]=zg;q[H]=ff;q[F]=Ag;q[B]=Bg;ii(b,M);var tm=q[G],um=q[z],vm=q[J],wm=q[H],xm=q[F],ym=q[B];11==(q[w]|0)&&(q[s]=-1);ca=Wc;ea=vm;ja=tm;T=wm;fa=um;qa=xm;ma=ym;na=M;C=266}else{q[s]=0;for(var zm=(1<>2],sd=zg,Sd=ff,td=Ag,cd=Bg;;){var ch=zm&td,dh=D[(ch<<2)+Rd+1|0],dd=dh&255;if(dd>>>0<=cd>>>0){break}if(0==(Sd|0)){W=Wc;U=sd;ga=0;ha=td;ia=cd;X=M;break b}var Am=((D[sd]&255)<>1],Rj=eh&255,Bm=0==eh<<24>>24;do{if(Bm){var Td=sd,Ud=Sd,gh=td,hh=cd,Mf=0,ih=dh,jh=fh,kh=0}else{if(0!=(Rj&240|0)){Td=sd,Ud=Sd,gh=td,hh=cd,Mf=eh,ih=dh,jh=fh,kh=0}else{for(var Cm=fh&65535,Dm=(1<>>(dd>>>0))+Cm|0,Sj=D[(lh<<2)+Rd+1|0];if(((Sj&255)+dd|0)>>>0<=Vd>>>0){break}if(0==(Nf|0)){W=Wc;U=De;ga=0;ha=Ee;ia=Vd;X=M;break b}var Em=((D[De]&255)<>1],Gm=m[(lh<<2)+Rd|0],Hm=Ee>>>(dd>>>0),Im=Vd-dd|0;q[s]=dd;Td=De;Ud=Nf;gh=Hm;hh=Im;Mf=Gm;ih=Sj;jh=Fm;kh=dd}}}while(0);var mh=ih&255,Of=gh>>>(mh>>>0),Pf=hh-mh|0;q[s]=kh+mh|0;q[n]=jh&65535;var nh=Mf&255;if(0==Mf<<24>>24){q[w]=25,ca=Wc,ea=Td,ja=ba,T=Ud,fa=L,qa=Of,ma=Pf,na=M,C=266}else{if(0!=(nh&32|0)){q[s]=-1,q[w]=11,ca=Wc,ea=Td,ja=ba,T=Ud,fa=L,qa=Of,ma=Pf,na=M,C=266}else{if(0==(nh&64|0)){var Tj=nh&15;q[k]=Tj;q[w]=21;Cg=Wc;Dg=Td;Eg=Ud;Fg=Of;Gg=Pf;ld=Tj;C=226}else{q[r]=O.A|0,q[w]=29,ca=Wc,ea=Td,ja=ba,T=Ud,fa=L,qa=Of,ma=Pf,na=M,C=266}}}}}}}while(0);do{if(82==C){var Jm=0==(gd&2048|0);do{if(Jm){var Uj=q[x];if(0==(Uj|0)){var oh=dc,ph=ac}else{q[(Uj+28|0)>>2]=0,oh=dc,ph=ac}}else{if(0==(ac|0)){W=R;U=dc;ga=0;ha=tc;ia=mc;X=M;break b}for(var qh=0;;){var Fe=qh+1|0,Vj=m[dc+qh|0],rh=q[x];if(0!=(rh|0)){var Wj=rh+28|0;if(0!=(q[Wj>>2]|0)){var sh=I[n];sh>>>0>2]>>>0&&(q[n]=sh+1|0,m[q[Wj>>2]+sh|0]=Vj)}}var Xj=0!=Vj<<24>>24;if(!(Xj&Fe>>>0>>0)){break}qh=Fe}0!=(q[v]&512|0)&&(q[y]=$f(q[y],dc,Fe));var Yj=ac-Fe|0,Zj=dc+Fe|0;if(Xj){W=R;U=Zj;ga=Yj;ha=tc;ia=mc;X=M;break b}oh=Zj;ph=Yj}}while(0);q[n]=0;q[w]=7;bc=oh;nc=ph;uc=tc;vc=mc;C=95}else{if(226==C){if(0==(ld|0)){var $j=Dg,ak=Eg,bk=Fg,ck=Gg,dk=q[n]}else{for(var Ge=Dg,Qf=Eg,He=Fg,Wd=Gg;Wd>>>0>>0;){if(0==(Qf|0)){W=Cg;U=Ge;ga=0;ha=He;ia=Wd;X=M;break b}var Km=((D[Ge]&255)<>>(ld>>>0);ck=Wd-ld|0;dk=ek}q[jb>>2]=dk;q[w]=22;ne=Cg;Zi=$j;$i=ak;aj=bk;bj=ck;C=233}}}while(0);do{if(95==C){var Lm=0==(q[v]&4096|0);do{if(Lm){var fk=q[x];if(0==(fk|0)){var th=bc,uh=nc}else{q[(fk+36|0)>>2]=0,th=bc,uh=nc}}else{if(0==(nc|0)){W=R;U=bc;ga=0;ha=uc;ia=vc;X=M;break b}for(var vh=0;;){var Ie=vh+1|0,gk=m[bc+vh|0],wh=q[x];if(0!=(wh|0)){var hk=wh+36|0;if(0!=(q[hk>>2]|0)){var xh=I[n];xh>>>0>2]>>>0&&(q[n]=xh+1|0,m[q[hk>>2]+xh|0]=gk)}}var ik=0!=gk<<24>>24;if(!(ik&Ie>>>0>>0)){break}vh=Ie}0!=(q[v]&512|0)&&(q[y]=$f(q[y],bc,Ie));var jk=nc-Ie|0,kk=bc+Ie|0;if(ik){W=R;U=kk;ga=jk;ha=uc;ia=vc;X=M;break b}th=kk;uh=jk}}while(0);q[w]=8;Hc=th;Ic=uh;wc=uc;oc=vc;C=108}else{if(233==C){for(var Mm=(1<>2])-1|0,Xd=I[kb>>2],Yd=Zi,Je=$i,Zd=aj,ud=bj;;){var yh=Mm&Zd,lk=D[(yh<<2)+Xd+1|0],vd=lk&255;if(vd>>>0<=ud>>>0){break}if(0==(Je|0)){W=ne;U=Yd;ga=0;ha=Zd;ia=ud;X=M;break b}var Nm=((D[Yd]&255)<>1],ok=mk&255;if(0==(ok&240|0)){for(var Om=nk&65535,Pm=(1<>>(vd>>>0))+Om|0,pk=D[(zh<<2)+Xd+1|0];if(((pk&255)+vd|0)>>>0<=$d>>>0){break}if(0==(Rf|0)){W=ne;U=Ke;ga=0;ha=Le;ia=$d;X=M;break b}var Qm=((D[Ke]&255)<<$d)+Le|0,Ke=Ke+1|0,Rf=Rf-1|0,Le=Qm,$d=$d+8|0}var Rm=o[Xd+(zh<<2)+2>>1],Sm=m[(zh<<2)+Xd|0],Tm=Le>>>(vd>>>0),Um=$d-vd|0,qk=q[s]+vd|0;q[s]=qk;var Ah=Ke,Bh=Rf,rk=Tm,sk=Um,tk=Sm,uk=pk,vk=Rm,wk=qk}else{Ah=Yd,Bh=Je,rk=Zd,sk=ud,tk=mk,uk=lk,vk=nk,wk=q[s]}var Ch=uk&255,xk=rk>>>(Ch>>>0),yk=sk-Ch|0;q[s]=wk+Ch|0;var zk=tk&255;if(0==(zk&64|0)){q[i]=vk&65535;var Ak=zk&15;q[k]=Ak;q[w]=23;Hg=ne;Ig=Ah;Jg=Bh;Kg=xk;Lg=yk;md=Ak;C=247}else{q[r]=O.B|0,q[w]=29,ca=ne,ea=Ah,ja=ba,T=Bh,fa=L,qa=xk,ma=yk,na=M,C=266}}}}while(0);c:do{if(108==C){var Bk=I[v],Vm=0==(Bk&512|0);do{if(!Vm){for(var ae=Hc,Me=Ic,Ne=wc,be=oc;16>be>>>0;){if(0==(Me|0)){W=R;U=ae;ga=0;ha=Ne;ia=be;X=M;break b}var Wm=((D[ae]&255)<>2]=Bk>>>9&1,q[(q[x]+48|0)>>2]=1);var Hk=$f(0,0,0);q[y]=Hk;q[t]=Hk;q[w]=11;ca=R;ea=Ck;ja=ba;T=Dk;fa=L;qa=Ek;ma=Fk;na=M;C=266}else{if(247==C){if(0==(md|0)){var Ik=Ig,Jk=Jg,Kk=Kg,Lk=Lg}else{for(var Oe=Ig,Sf=Jg,Pe=Kg,ce=Lg;ce>>>0>>0;){if(0==(Sf|0)){W=Hg;U=Oe;ga=0;ha=Pe;ia=ce;X=M;break b}var Xm=((D[Oe]&255)<>>(md>>>0);Lk=ce-md|0}q[w]=24;gf=Hg;hf=Ik;jf=Jk;kf=Kk;lf=Lk;C=253}}}while(0);c:do{if(253==C){if(0==(L|0)){W=gf;U=hf;ga=jf;ha=kf;ia=lf;X=M;break b}var Mk=M-L|0,Dh=I[i];if(Dh>>>0>Mk>>>0){var Qe=Dh-Mk|0,Ym=Qe>>>0>I[Db>>2]>>>0;do{if(Ym&&0!=(q[xa>>2]|0)){q[r]=O.C|0;q[w]=29;ca=gf;ea=hf;ja=ba;T=jf;fa=L;qa=kf;ma=lf;na=M;break c}}while(0);var Eh=I[ta>>2];if(Qe>>>0>Eh>>>0){var Nk=Qe-Eh|0,Ok=q[Va>>2]+(q[Xa>>2]-Nk)|0,Fh=Nk}else{Ok=q[Va>>2]+(Eh-Qe)|0,Fh=Qe}var Gh=I[n],Pk=Ok,Tf=Fh>>>0>Gh>>>0?Gh:Fh,Qk=Gh}else{var Zm=q[n],Pk=ba+ -Dh|0,Qk=Tf=Zm}var Hh=Tf>>>0>L>>>0?L:Tf;q[n]=Qk-Hh|0;for(var Rk=L^-1,Sk=Tf^-1,$m=Rk>>>0>Sk>>>0?Rk:Sk,Ih=Pk,Jh=ba,Tk=Hh;;){m[Jh]=m[Ih];var Uk=Tk-1|0;if(0==(Uk|0)){break}Ih=Ih+1|0;Jh=Jh+1|0;Tk=Uk}var an=L-Hh|0,bn=ba+($m^-1)|0;0==(q[n]|0)&&(q[w]=20);ca=gf;ea=hf;ja=bn;T=jf;fa=an;qa=kf;ma=lf;na=M}}while(0);R=ca;$=ea;ba=ja;la=T;L=fa;Z=qa;V=ma;M=na;pa=q[w]}q[G]=ba;q[z]=L;q[J]=U;q[H]=ga;q[F]=ha;q[B]=ia;C=0==(q[Xa>>2]|0)?26>I[w]>>>0?(X|0)==(q[z]|0)?298:296:298:296;do{if(296==C&&0!=(pi(b,X)|0)){q[w]=30;ra=-4;break a}}while(0);var Wk=I[H],Xk=I[z],Re=X-Xk|0,Yk=b+8|0;q[Yk>>2]=Fa-Wk+q[Yk>>2]|0;q[j]=q[j]+Re|0;q[h]=q[h]+Re|0;var Zk=(X|0)==(Xk|0);if(!(0==(q[A]|0)|Zk)){var $k=q[y],al=q[G]+ -Re|0,bl=0==(q[v]|0)?Xf($k,al,Re):$f($k,al,Re);q[y]=bl;q[t]=bl}var Kh=q[w];q[b+44>>2]=(0!=(q[u]|0)?64:0)+q[B]+(11==(Kh|0)?128:0)+(19==(Kh|0)?256:14==(Kh|0)?256:0)|0;ra=(Fa|0)==(Wk|0)&Zk&0==(W|0)?-5:W}}}}}while(0);Nb=S;return ra}di.X=1;function gg(b){for(var f=0;!(o[b+(f<<2)+148>>1]=0,f=f+1|0,286==(f|0));){}o[b+2440>>1]=0;o[b+2444>>1]=0;o[b+2448>>1]=0;o[b+2452>>1]=0;o[b+2456>>1]=0;o[b+2460>>1]=0;o[b+2464>>1]=0;o[b+2468>>1]=0;o[b+2472>>1]=0;o[b+2476>>1]=0;o[b+2480>>1]=0;o[b+2484>>1]=0;o[b+2488>>1]=0;o[b+2492>>1]=0;o[b+2496>>1]=0;o[b+2500>>1]=0;o[b+2504>>1]=0;o[b+2508>>1]=0;o[b+2512>>1]=0;o[b+2516>>1]=0;o[b+2520>>1]=0;o[b+2524>>1]=0;o[b+2528>>1]=0;o[b+2532>>1]=0;o[b+2536>>1]=0;o[b+2540>>1]=0;o[b+2544>>1]=0;o[b+2548>>1]=0;o[b+2552>>1]=0;o[b+2556>>1]=0;o[b+2684>>1]=0;o[b+2688>>1]=0;o[b+2692>>1]=0;o[b+2696>>1]=0;o[b+2700>>1]=0;o[b+2704>>1]=0;o[b+2708>>1]=0;o[b+2712>>1]=0;o[b+2716>>1]=0;o[b+2720>>1]=0;o[b+2724>>1]=0;o[b+2728>>1]=0;o[b+2732>>1]=0;o[b+2736>>1]=0;o[b+2740>>1]=0;o[b+2744>>1]=0;o[b+2748>>1]=0;o[b+2752>>1]=0;o[b+2756>>1]=0;o[b+1172>>1]=1;q[b+5804>>2]=0;q[b+5800>>2]=0;q[b+5808>>2]=0;q[b+5792>>2]=0}gg.X=1;function pi(b,f){var d,c,e;d=b>>2;var g=I[d+7];e=g>>2;var h=g+52|0;c=q[h>>2];if(0==(c|0)){if(c=Bd[q[d+8]](q[d+10],1<>2]=c,0==(c|0)){var j=1;c=14}else{var i=c;c=4}}else{i=c,c=4}if(4==c){c=(g+40|0)>>2;j=q[c];if(0==(j|0)){j=1<>>0>>0){d=(g+48|0)>>2;var p=I[d],k=k-p|0,k=k>>>0>j>>>0?j:k,s=b+12|0;qg(i+p|0,q[s>>2]+ -j|0,k);i=j-k|0;(j|0)==(k|0)?(h=q[d]+j|0,q[d]=h,e=I[c],(h|0)==(e|0)&&(q[d]=0),g=g+44|0,h=I[g>>2],h>>>0>>0&&(q[g>>2]=h+j|0)):(qg(q[h>>2],q[s>>2]+ -i|0,i),q[d]=i,q[e+11]=q[c])}else{qg(i,q[d+3]+ -k|0,k),q[e+12]=0,q[e+11]=q[c]}j=0}return j}pi.X=1;function mi(b,f,d,c,e,g){var h,j,i=c>>2,k=Nb;Nb+=32;var p;j=k>>1;var s=Nb;h=s>>1;Nb+=32;zd(k,32);var u=0==(d|0);a:do{if(!u){for(var n=0;;){var t=((E[f+(n<<1)>>1]&65535)<<1)+k|0;o[t>>1]=o[t>>1]+1&65535;var r=n+1|0;if((r|0)==(d|0)){break a}n=r}}}while(0);for(var x=I[e>>2],v=15;;){if(0==(v|0)){var y=I[i];q[i]=y+4|0;m[y|0]=64;m[y+1|0]=1;o[y+2>>1]=0;var A=q[i];q[i]=A+4|0;m[A|0]=64;m[A+1|0]=1;o[A+2>>1]=0;q[e>>2]=1;var B=0;p=56;break}if(0!=o[(v<<1>>1)+j]<<16>>16){p=7;break}v=v-1|0}a:do{if(7==p){for(var F=x>>>0>v>>>0?v:x,H=1;H>>>0>>0&&0==o[(H<<1>>1)+j]<<16>>16;){H=H+1|0}for(var z=F>>>0>>0?H:F,w=1,J=1;16>w>>>0;){var G=(J<<1)-(E[(w<<1>>1)+j]&65535)|0;if(0>(G|0)){B=-1;break a}w=w+1|0;J=G}if(0<(J|0)&&!(0!=(b|0)&1==(v|0))){B=-1}else{o[h+1]=0;var S=o[j+1];o[h+2]=S;var C=o[j+2]+S&65535;o[h+3]=C;var ka=o[j+3]+C&65535;o[h+4]=ka;var ra=o[j+4]+ka&65535;o[h+5]=ra;var N=o[j+5]+ra&65535;o[h+6]=N;var oa=o[j+6]+N&65535;o[h+7]=oa;var K=o[j+7]+oa&65535;o[h+8]=K;var Q=o[j+8]+K&65535;o[h+9]=Q;var Ka=o[j+9]+Q&65535;o[h+10]=Ka;var Aa=o[j+10]+Ka&65535;o[h+11]=Aa;var P=o[j+11]+Aa&65535;o[h+12]=P;var hb=o[j+12]+P&65535;o[h+13]=hb;var ya=o[j+13]+hb&65535;o[h+14]=ya;o[h+15]=o[j+14]+ya&65535;b:do{if(u){p=20}else{for(var Fa=0;;){var Da=E[f+(Fa<<1)>>1];if(0!=Da<<16>>16){var Ma=((Da&65535)<<1)+s|0,ib=E[Ma>>1];o[Ma>>1]=ib+1&65535;o[g+((ib&65535)<<1)>>1]=Fa&65535}var bb=Fa+1|0;if((bb|0)==(d|0)){break b}Fa=bb}}}while(0);if(0==(b|0)){var Cb=0,Oa=1<>>0){B=1;break}var wb=2==(b|0);if(wb&591>>0){B=1;break}Cb=La;Oa=Eb;Pa=ta;jb=Va;Db=Xa;xa=wb}var Ya=Oa-1|0,cb=z&255,Qa=q[i],qb=-1,Ga=H,Ua=0,Za=z,Wa=0,db=Oa,$a=0;b:for(;;){for(var rb=1<>1],Z=L&65535;if((Z|0)<(Pa|0)){var V=0,M=L}else{(Z|0)>(Pa|0)?(V=o[jb+(Z<<1)>>1]&255,M=o[Db+(Z<<1)>>1]):(V=96,M=0)}for(var pa=1<>>(Wa>>>0),ca=rb;;){var ea=ca-pa|0,ja=ea+yb|0;m[(ja<<2)+Qa|0]=V;m[(ja<<2)+Qa+1|0]=la;o[Qa+(ja<<2)+2>>1]=M;if((ca|0)==(pa|0)){break}ca=ea}for(var T=1<>>=1}var fa=0==(T|0)?0:(T-1&$)+T|0,qa=R+1|0,ma=(kb<<1)+k|0,na=o[ma>>1]-1&65535;o[ma>>1]=na;if(0==na<<16>>16){if((kb|0)==(v|0)){break b}var va=E[f+((E[g+(qa<<1)>>1]&65535)<<1)>>1]&65535}else{va=kb}if(va>>>0>z>>>0){var wa=fa&Ya;if((wa|0)!=(qb|0)){break}}kb=va;R=qa;$=fa}for(var Ja=0==(Wa|0)?z:Wa,Ra=(rb<<2)+Qa|0,W=va-Ja|0,U=W,ga=1<>>0>=v>>>0){break}var ia=ga-(E[(ha<<1>>1)+j]&65535)|0;if(1>(ia|0)){break}var X=ia<<1,U=U+1|0,ga=X}var Ea=(1<>>0|xa&591>>0){B=1;break a}m[(wa<<2)+q[i]|0]=U&255;m[(wa<<2)+q[i]+1|0]=cb;var eb=I[i];o[eb+(wa<<2)+2>>1]=(Ra-eb|0)>>>2&65535;Qa=Ra;qb=wa;Ga=va;Ua=qa;Za=U;Wa=Ja;db=Ea;$a=fa}var Fb=0==(fa|0);b:do{if(!Fb){for(var ab=la,sb=fa,tb=Wa,ub=v,lb=Qa;;){if(0==(tb|0)){var mb=lb,fb=ub,Sa=0,Ta=ab}else{(sb&Ya|0)==(qb|0)?(mb=lb,fb=ub,Sa=tb,Ta=ab):(mb=q[i],fb=z,Sa=0,Ta=cb)}var Ba=sb>>>(Sa>>>0);m[(Ba<<2)+mb|0]=64;m[(Ba<<2)+mb+1|0]=Ta;o[mb+(Ba<<2)+2>>1]=0;for(var za=1<>>=1}if(0==(za|0)){break b}var gb=(za-1&sb)+za|0;if(0==(gb|0)){break b}ab=Ta;sb=gb;tb=Sa;ub=fb;lb=mb}}}while(0);q[i]=(db<<2)+q[i]|0;q[e>>2]=z;B=0}}}while(0);Nb=k;return B}mi.X=1;function pg(b,f,d,c){var e,g;g=(b+5820|0)>>2;e=I[g];var h=c&65535,c=(b+5816|0)>>1,j=E[c]&65535|h<>2;var i=q[e];q[e]=i+1|0;var k=b+8|0;m[q[k>>2]+i|0]=j&255;j=(E[c]&65535)>>>8&255;i=I[e];q[e]=i+1|0;m[q[k>>2]+i|0]=j;e=I[g];o[c]=h>>>((16-e|0)>>>0)&65535;c=e-13|0}else{c=e+3|0}q[g]=c;ui(b,f,d)}function ui(b,f,d){var c;vi(b);q[b+5812>>2]=8;c=(b+20|0)>>2;var e=q[c];q[c]=e+1|0;b=(b+8|0)>>2;m[q[b]+e|0]=d&255;e=I[c];q[c]=e+1|0;m[q[b]+e|0]=d>>>8&255;var e=d&65535^65535,g=q[c];q[c]=g+1|0;m[q[b]+g|0]=e&255;g=I[c];q[c]=g+1|0;m[q[b]+g|0]=e>>>8&255;e=0==(d|0);a:do{if(!e){for(var g=f,h=d;;){var h=h-1|0,j=m[g],i=q[c];q[c]=i+1|0;m[q[b]+i|0]=j;if(0==(h|0)){break a}g=g+1|0}}}while(0)}ui.X=1;function wi(b){var f,d,c;c=(b+5820|0)>>2;f=I[c];if(16==(f|0)){d=(b+5816|0)>>1;var e=o[d]&255;f=(b+20|0)>>2;var g=q[f];q[f]=g+1|0;b=b+8|0;m[q[b>>2]+g|0]=e;e=(E[d]&65535)>>>8&255;g=I[f];q[f]=g+1|0;m[q[b>>2]+g|0]=e;o[d]=0;q[c]=0}else{7<(f|0)&&(f=(b+5816|0)>>1,d=o[f]&255,e=b+20|0,g=q[e>>2],q[e>>2]=g+1|0,m[q[b+8>>2]+g|0]=d,o[f]=(E[f]&65535)>>>8,q[c]=q[c]-8|0)}}function og(b){var f,d,c,e;e=(b+5820|0)>>2;var g=I[e];c=(b+5816|0)>>1;f=E[c]&65535|2<>2;var h=q[d];q[d]=h+1|0;g=b+8|0;m[q[g>>2]+h|0]=f&255;f=(E[c]&65535)>>>8&255;h=I[d];q[d]=h+1|0;m[q[g>>2]+h|0]=f;f=I[e];d=2>>>((16-f|0)>>>0)&65535;o[c]=d;f=f-13|0}else{f=g+3|0}g=d;q[e]=f;9<(f|0)?(d=(b+20|0)>>2,h=q[d],q[d]=h+1|0,f=b+8|0,m[q[f>>2]+h|0]=g&255,g=(E[c]&65535)>>>8&255,h=I[d],q[d]=h+1|0,m[q[f>>2]+h|0]=g,o[c]=0,d=q[e]-9|0):d=f+7|0;q[e]=d;wi(b);d=b+5812|0;h=I[e];if(9>(q[d>>2]+11-h|0)){g=E[c]&65535|2<>2;var j=q[f];q[f]=j+1|0;h=b+8|0;m[q[h>>2]+j|0]=g&255;g=(E[c]&65535)>>>8&255;j=I[f];q[f]=j+1|0;m[q[h>>2]+j|0]=g;g=I[e];f=2>>>((16-g|0)>>>0)&65535;o[c]=f;g=g-13|0}else{g=h+3|0}h=f;q[e]=g;9<(g|0)?(f=(b+20|0)>>2,j=q[f],q[f]=j+1|0,g=b+8|0,m[q[g>>2]+j|0]=h&255,h=(E[c]&65535)>>>8&255,j=I[f],q[f]=j+1|0,m[q[g>>2]+j|0]=h,o[c]=0,c=q[e]-9|0):c=g+7|0;q[e]=c;wi(b)}q[d>>2]=7}og.X=1;function sg(b,f,d,c){var e,g;g=b>>2;if(0<(q[g+33]|0)){var h=q[g]+44|0;if(2==(q[h>>2]|0)){for(var j=b>>1,i=0,k=-201342849;;){if(32<=(i|0)){e=7;break}if(0!=(k&1|0)&&0!=o[((i<<2)+148>>1)+j]<<16>>16){var p=0;e=12;break}i=i+1|0;k>>>=1}a:do{if(7==e){if(0!=o[j+92]<<16>>16){p=1}else{if(0!=o[j+94]<<16>>16){p=1}else{if(0!=o[j+100]<<16>>16){p=1}else{for(i=32;;){if(256<=(i|0)){p=0;break a}if(0!=o[((i<<2)+148>>1)+j]<<16>>16){p=1;break a}i=i+1|0}}}}}}while(0);q[h>>2]=p}xi(b,b+2840|0);xi(b,b+2852|0);yi(b,b+148|0,q[b+2844>>2]);yi(b,b+2440|0,q[b+2856>>2]);xi(b,b+2864|0);for(h=18;2<(h|0)&&0==o[b+((D[O.J+h|0]&255)<<2)+2686>>1]<<16>>16;){h=h-1|0}j=b+5800|0;q[j>>2]=3*h+q[j>>2]+17|0;e=(q[g+1450]+10|0)>>>3;p=(q[g+1451]+10|0)>>>3;h=h+1|0;j=p;i=p>>>0>e>>>0?e:p}else{e=d+5|0,h=1,i=j=e}(d+4|0)>>>0>i>>>0|0==(f|0)?(f=(b+5820|0)>>2,e=I[f],p=13<(e|0),4==(q[g+34]|0)|(j|0)==(i|0)?(h=c+2&65535,g=(b+5816|0)>>1,j=E[g]&65535|h<>2,p=q[d],q[d]=p+1|0,e=b+8|0,m[q[e>>2]+p|0]=j&255,j=(E[g]&65535)>>>8&255,p=I[d],q[d]=p+1|0,m[q[e>>2]+p|0]=j,d=I[f],o[g]=h>>>((16-d|0)>>>0)&65535,g=d-13|0):g=e+3|0,q[f]=g,zi(b,Ai|0,Bi|0)):(j=c+4&65535,d=(b+5816|0)>>1,i=E[d]&65535|j<>2,k=q[e],q[e]=k+1|0,p=b+8|0,m[q[p>>2]+k|0]=i&255,i=(E[d]&65535)>>>8&255,k=I[e],q[e]=k+1|0,m[q[p>>2]+k|0]=i,e=I[f],o[d]=j>>>((16-e|0)>>>0)&65535,d=e-13|0):d=e+3|0,q[f]=d,Ci(b,q[g+711]+1|0,q[g+714]+1|0,h),zi(b,b+148|0,b+2440|0))):pg(b,f,d,c);gg(b);0!=(c|0)&&vi(b)}sg.X=1;function xi(b,f){var d,c,e,g,h,j,i=f|0,k=I[i>>2];h=k>>1;var p=f+8|0;e=q[p>>2];var s=q[e>>2],u=I[e+12>>2];g=(b+5200|0)>>2;q[g]=0;e=(b+5204|0)>>2;q[e]=573;c=0<(u|0);do{if(c){j=0;for(var n=-1;;){if(0==o[(j<<2>>1)+h]<<16>>16){o[((j<<2)+2>>1)+h]=0;var t=n}else{t=q[g]+1|0,q[g]=t,q[((t<<2)+b+2908|0)>>2]=j,m[b+(j+5208)|0]=0,t=j}j=j+1|0;if((j|0)==(u|0)){break}n=t}j=q[g];if(2>(j|0)){d=j;var r=t;j=4}else{var x=t;j=11}}else{d=0,r=-1,j=4}}while(0);a:do{if(4==j){if(c=(b+5800|0)>>2,t=b+5804|0,0==(s|0)){t=r;for(n=d;;){var v=2>(t|0),y=t+1|0,t=v?y:t,v=v?y:0,n=n+1|0;q[g]=n;q[b+(n<<2)+2908>>2]=v;o[(v<<2>>1)+h]=1;m[b+(v+5208)|0]=0;q[c]=q[c]-1|0;n=q[g];if(2<=(n|0)){x=t;break a}}}else{n=r;for(v=d;;){var y=2>(n|0),A=n+1|0,n=y?A:n,y=y?A:0,v=v+1|0;q[g]=v;q[b+(v<<2)+2908>>2]=y;o[(y<<2>>1)+h]=1;m[b+(y+5208)|0]=0;q[c]=q[c]-1|0;q[t>>2]=q[t>>2]-(E[s+(y<<2)+2>>1]&65535)|0;v=I[g];if(2<=(v|0)){x=n;break a}}}}}while(0);s=f+4|0;q[s>>2]=x;d=q[g];if(1<(d|0)){for(d=(d|0)/2&-1;!(Di(b,k,d),d=d-1|0,0>=(d|0));){}r=q[g]}else{r=d}d=(b+2912|0)>>2;for(j=r;;){r=I[d];q[g]=j-1|0;q[d]=q[b+(j<<2)+2908>>2];Di(b,k,1);j=I[d];c=q[e]-1|0;q[e]=c;q[((c<<2)+b+2908|0)>>2]=r;c=q[e]-1|0;q[e]=c;q[((c<<2)+b+2908|0)>>2]=j;o[(u<<2>>1)+h]=o[(j<<2>>1)+h]+o[(r<<2>>1)+h]&65535;c=D[b+(r+5208)|0];t=D[b+(j+5208)|0];m[b+(u+5208)|0]=((c&255)<(t&255)?t:c)+1&255;c=u&65535;o[((j<<2)+2>>1)+h]=c;o[((r<<2)+2>>1)+h]=c;r=u+1|0;q[d]=u;Di(b,k,1);j=I[g];if(1>=(j|0)){break}u=r}h=q[d];g=q[e]-1|0;q[e]=g;q[((g<<2)+b+2908|0)>>2]=h;Ei(b,q[i>>2],q[s>>2],q[p>>2]);Fi(k,x,b+2876|0)}xi.X=1;function zi(b,f,d){var c,e,g,h,j,i,k=f>>1,p=b+5792|0,s=0==(q[p>>2]|0);a:do{if(s){var u=q[b+5820>>2],n=o[b+5816>>1]}else{var t=b+5796|0,r=b+5784|0;i=(b+5820|0)>>2;j=(b+5816|0)>>1;h=(b+20|0)>>2;g=(b+8|0)>>2;for(var x=0;;){var v=E[q[t>>2]+(x<<1)>>1],y=v&65535,A=x+1|0,B=D[q[r>>2]+x|0]&255;if(0==v<<16>>16){var F=E[((B<<2)+2>>1)+k]&65535,H=I[i],z=(H|0)>(16-F|0),w=E[(B<<2>>1)+k]&65535,J=E[j]&65535|w<>>8&255,ra=I[h];q[h]=ra+1|0;m[q[g]+ra|0]=ka;var N=I[i],oa=w>>>((16-N|0)>>>0)&65535;o[j]=oa;var K=F-16+N|0,Q=q[i]=K,Ka=oa}else{var Aa=H+F|0,Q=q[i]=Aa,Ka=G}}else{var P=D[O.j+B|0]&255,hb=(P|256)+1|0,ya=E[((hb<<2)+2>>1)+k]&65535,Fa=I[i],Da=(Fa|0)>(16-ya|0),Ma=E[(hb<<2>>1)+k]&65535,ib=E[j]&65535|Ma<>>8&255,jb=I[h];q[h]=jb+1|0;m[q[g]+jb|0]=Pa;var Db=I[i],xa=Ma>>>((16-Db|0)>>>0)&65535;o[j]=xa;var ta=ya-16+Db|0,Va=xa}else{ta=Fa+ya|0,Va=bb}q[i]=ta;var Xa=I[Gi+(P<<2)>>2];if(20>(P-8|0)>>>0){var Eb=(ta|0)>(16-Xa|0),La=B-q[Hi+(P<<2)>>2]&65535,wb=La<>>8&255,Ga=I[h];q[h]=Ga+1|0;m[q[g]+Ga|0]=qb;var Ua=I[i],Za=La>>>((16-Ua|0)>>>0)&65535;o[j]=Za;var Wa=Xa-16+Ua|0,db=q[i]=Wa,$a=Za}else{var rb=ta+Xa|0,db=q[i]=rb,$a=Ya}}else{db=ta,$a=Va}var kb=y-1|0,R=D[O.p+(256>kb>>>0?kb:(kb>>>7)+256|0)|0]&255,$=E[d+(R<<2)+2>>1]&65535,ba=(db|0)>(16-$|0),la=E[d+(R<<2)>>1]&65535,L=$a&65535|la<>>8&255,yb=I[h];q[h]=yb+1|0;m[q[g]+yb|0]=pa;var ca=I[i],ea=la>>>((16-ca|0)>>>0)&65535;o[j]=ea;var ja=$-16+ca|0,T=ea}else{ja=db+$|0,T=Z}q[i]=ja;var fa=I[Ii+(R<<2)>>2];if(26>(R-4|0)>>>0){var qa=(ja|0)>(16-fa|0),ma=kb-q[Ji+(R<<2)>>2]&65535,na=ma<>>8&255,W=I[h];q[h]=W+1|0;m[q[g]+W|0]=Ra;var U=I[i],ga=ma>>>((16-U|0)>>>0)&65535;o[j]=ga;var ha=fa-16+U|0,Q=q[i]=ha,Ka=ga}else{var ia=ja+fa|0,Q=q[i]=ia,Ka=va}}else{Q=ja,Ka=T}}if(A>>>0>=I[p>>2]>>>0){u=Q;n=Ka;break a}x=A}}}while(0);var X=f+1026|0,Ea=E[X>>1]&65535,eb=b+5820|0,Fb=(u|0)>(16-Ea|0),ab=E[k+512]&65535;e=(b+5816|0)>>1;var sb=n&65535|ab<>2;var ub=q[c];q[c]=ub+1|0;var lb=b+8|0;m[q[lb>>2]+ub|0]=tb;var mb=(E[e]&65535)>>>8&255,fb=I[c];q[c]=fb+1|0;m[q[lb>>2]+fb|0]=mb;var Sa=I[eb>>2];o[e]=ab>>>((16-Sa|0)>>>0)&65535;var Ta=Ea-16+Sa|0}else{Ta=u+Ea|0}q[eb>>2]=Ta;q[b+5812>>2]=E[X>>1]&65535}zi.X=1;function vi(b){var f,d=b+5820|0,c=I[d>>2];if(8<(c|0)){var c=b+5816|0,e=o[c>>1]&255;f=(b+20|0)>>2;var g=q[f];q[f]=g+1|0;b=b+8|0;m[q[b>>2]+g|0]=e;e=(E[c>>1]&65535)>>>8&255;g=I[f];q[f]=g+1|0;m[q[b>>2]+g|0]=e;b=c}else{f=b+5816|0,0<(c|0)&&(c=o[f>>1]&255,e=b+20|0,g=q[e>>2],q[e>>2]=g+1|0,m[q[b+8>>2]+g|0]=c),b=f}o[b>>1]=0;q[d>>2]=0}function Ci(b,f,d,c){var e,g,h;h=(b+5820|0)>>2;e=I[h];var j=f+65279&65535;g=(b+5816|0)>>1;var i=E[g]&65535|j<>2;var p=q[e];q[e]=p+1|0;k=b+8|0;m[q[k>>2]+p|0]=i&255;i=(E[g]&65535)>>>8&255;p=I[e];q[e]=p+1|0;m[q[k>>2]+p|0]=i;e=I[h];j=j>>>((16-e|0)>>>0)&65535;o[g]=j;e=e-11|0;i=j}else{e=e+5|0,i=k}q[h]=e;d=d-1|0;j=d&65535;i=i&65535|j<>2,p=q[e],q[e]=p+1|0,k=b+8|0,m[q[k>>2]+p|0]=i&255,i=(E[g]&65535)>>>8&255,p=I[e],q[e]=p+1|0,m[q[k>>2]+p|0]=i,e=I[h],j=j>>>((16-e|0)>>>0)&65535,o[g]=j,e=e-11|0,i=j):(e=e+5|0,i=k);q[h]=e;j=c+65532&65535;i=i&65535|j<>2,p=q[e],q[e]=p+1|0,k=b+8|0,m[q[k>>2]+p|0]=i&255,i=(E[g]&65535)>>>8&255,p=I[e],q[e]=p+1|0,m[q[k>>2]+p|0]=i,e=I[h],i=j>>>((16-e|0)>>>0)&65535,o[g]=i,j=e-12|0):(j=e+4|0,i=k);q[h]=j;k=0<(c|0);a:do{if(k){e=(b+20|0)>>2;for(var p=b+8|0,s=0,u=j,n=i;;){var t=E[b+((D[O.J+s|0]&255)<<2)+2686>>1]&65535,r=n&65535|t<>2]+n|0]=u,u=(E[g]&65535)>>>8&255,n=I[e],q[e]=n+1|0,m[q[p>>2]+n|0]=u,u=I[h],n=t>>>((16-u|0)>>>0)&65535,o[g]=n,t=u-13|0):t=u+3|0;q[h]=t;s=s+1|0;if((s|0)==(c|0)){break a}u=t}}}while(0);Ki(b,b+148|0,f-1|0);Ki(b,b+2440|0,d)}Ci.X=1;function Ki(b,f,d){var c,e,g,h,j=E[f+2>>1],i=0==j<<16>>16,k=i?138:7,p=i?3:4,s=b+2754|0;h=(b+5820|0)>>2;var u=b+2752|0;g=(b+5816|0)>>1;e=(b+20|0)>>2;c=(b+8|0)>>2;var n=b+2758|0,t=b+2756|0,r=b+2750|0,x=b+2748|0,v=p,y=k,A=0,B=-1,F=j&65535;a:for(;;){for(var H=0,z=A,w=F;;){if((z|0)>(d|0)){break a}var J=z+1|0,G=E[f+(J<<2)+2>>1],S=G&65535,C=H+1|0,ka=(w|0)==(S|0);if(!((C|0)<(y|0)&ka)){break}H=C;z=J;w=S}var ra=(C|0)<(v|0);b:do{if(ra){for(var N=(w<<2)+b+2686|0,oa=(w<<2)+b+2684|0,K=C,Q=q[h],Ka=o[g];;){var Aa=E[N>>1]&65535,P=(Q|0)>(16-Aa|0),hb=E[oa>>1]&65535,ya=Ka&65535|hb<>>8&255,bb=I[e];q[e]=bb+1|0;m[q[c]+bb|0]=ib;var Cb=I[h],Oa=hb>>>((16-Cb|0)>>>0)&65535;o[g]=Oa;var Pa=Aa-16+Cb|0,jb=Oa}else{Pa=Q+Aa|0,jb=Fa}q[h]=Pa;var Db=K-1|0;if(0==(Db|0)){break b}K=Db;Q=Pa;Ka=jb}}else{if(0==(w|0)){if(11>(C|0)){var xa=E[s>>1]&65535,ta=I[h],Va=(ta|0)>(16-xa|0),Xa=E[u>>1]&65535,Eb=E[g]&65535|Xa<>>8&255,Qa=I[e];q[e]=Qa+1|0;m[q[c]+Qa|0]=cb;var qb=I[h],Ga=Xa>>>((16-qb|0)>>>0)&65535;o[g]=Ga;var Ua=xa-16+qb|0,Za=Ga}else{Ua=ta+xa|0,Za=La}q[h]=Ua;var Wa=H+65534&65535,db=Za&65535|Wa<>>8&255,kb=I[e];q[e]=kb+1|0;m[q[c]+kb|0]=rb;var R=I[h];o[g]=Wa>>>((16-R|0)>>>0)&65535;q[h]=R-13|0}else{q[h]=Ua+3|0}}else{var $=E[n>>1]&65535,ba=I[h],la=(ba|0)>(16-$|0),L=E[t>>1]&65535,Z=E[g]&65535|L<>>8&255,ca=I[e];q[e]=ca+1|0;m[q[c]+ca|0]=yb;var ea=I[h],ja=L>>>((16-ea|0)>>>0)&65535;o[g]=ja;var T=$-16+ea|0,fa=ja}else{T=ba+$|0,fa=V}q[h]=T;var qa=H+65526&65535,ma=fa&65535|qa<>>8&255,wa=I[e];q[e]=wa+1|0;m[q[c]+wa|0]=va;var Ja=I[h];o[g]=qa>>>((16-Ja|0)>>>0)&65535;q[h]=Ja-9|0}else{q[h]=T+7|0}}}else{if((w|0)==(B|0)){var Ra=C,W=q[h],U=o[g]}else{var ga=E[b+(w<<2)+2686>>1]&65535,ha=I[h],ia=(ha|0)>(16-ga|0),X=E[b+(w<<2)+2684>>1]&65535,Ea=E[g]&65535|X<>>8&255,tb=I[e];q[e]=tb+1|0;m[q[c]+tb|0]=sb;var ub=I[h],lb=X>>>((16-ub|0)>>>0)&65535;o[g]=lb;var mb=ga-16+ub|0,fb=lb}else{mb=ha+ga|0,fb=eb}q[h]=mb;Ra=H;W=mb;U=fb}var Sa=E[r>>1]&65535,Ta=(W|0)>(16-Sa|0),Ba=E[x>>1]&65535,za=U&65535|Ba<>>8&255,xb=I[e];q[e]=xb+1|0;m[q[c]+xb|0]=vb;var nb=I[h],Ib=Ba>>>((16-nb|0)>>>0)&65535;o[g]=Ib;var zb=Sa-16+nb|0,Jb=Ib}else{zb=W+Sa|0,Jb=gb}q[h]=zb;var Kb=Ra+65533&65535,Pb=Jb&65535|Kb<>>8&255,Wb=I[e];q[e]=Wb+1|0;m[q[c]+Wb|0]=Vb;var Ub=I[h];o[g]=Kb>>>((16-Ub|0)>>>0)&65535;q[h]=Ub-14|0}else{q[h]=zb+2|0}}}}while(0);if(0==G<<16>>16){v=3,y=138}else{var Sb=ka?6:7,v=ka?3:4,y=Sb}A=J;B=w;F=S}}Ki.X=1;function yi(b,f,d){var c=E[f+2>>1],e=0==c<<16>>16;o[f+(d+1<<2)+2>>1]=-1;var g=b+2752|0,h=b+2756|0,j=b+2748|0,i=e?3:4,e=e?138:7,k=0,p=-1,c=c&65535;a:for(;;){for(var s=0;;){if((k|0)>(d|0)){break a}var u=k+1|0,n=E[f+(u<<2)+2>>1],t=n&65535,r=s+1|0,x=(c|0)==(t|0);if(!((r|0)<(e|0)&x)){break}s=r;k=u;c=t}(r|0)<(i|0)?(i=(c<<2)+b+2684|0,o[i>>1]=(E[i>>1]&65535)+r&65535):0==(c|0)?11>(r|0)?o[g>>1]=o[g>>1]+1&65535:o[h>>1]=o[h>>1]+1&65535:((c|0)!=(p|0)&&(i=(c<<2)+b+2684|0,o[i>>1]=o[i>>1]+1&65535),o[j>>1]=o[j>>1]+1&65535);0==n<<16>>16?(i=3,e=138):(e=x?6:7,i=x?3:4);k=u;p=c;c=t}}yi.X=1;function Di(b,f,d){for(var c=b>>2,e=I[((d<<2)+2908>>2)+c],g=b+(e+5208)|0,h=b+5200|0,j=(e<<2)+f|0;;){var i=d<<1,k=q[h>>2];if((i|0)>(k|0)){break}k=(i|0)<(k|0);do{if(k){var p=i|1,s=I[((p<<2)+2908>>2)+c],u=E[f+(s<<2)>>1],n=I[((i<<2)+2908>>2)+c],t=E[f+(n<<2)>>1];if((u&65535)>=(t&65535)){if(u<<16>>16!=t<<16>>16){p=i;break}if((D[b+(s+5208)|0]&255)>(D[b+(n+5208)|0]&255)){p=i;break}}}else{p=i}}while(0);i=E[j>>1];k=I[((p<<2)+2908>>2)+c];s=E[f+(k<<2)>>1];if((i&65535)<(s&65535)){break}if(i<<16>>16==s<<16>>16&&(D[g]&255)<=(D[b+(k+5208)|0]&255)){break}q[((d<<2)+2908>>2)+c]=k;d=p}q[((d<<2)+2908>>2)+c]=e}Di.X=1;function Ei(b,f,d,c){var e,g=f>>1,h=I[c>>2],j=I[c+4>>2],i=I[c+8>>2],c=I[c+16>>2];zd(b+2876|0,32);e=b+5204|0;o[((q[b+(q[e>>2]<<2)+2908>>2]<<2)+2>>1)+g]=0;var k=q[e>>2]+1|0,p=573>(k|0);a:do{if(p){e=(b+5800|0)>>2;var s=0==(h|0),u=b+5804|0;b:do{if(s){for(var n=0,t=k;;){var r=I[b+(t<<2)+2908>>2],x=(r<<2)+f+2|0,v=(E[(((E[x>>1]&65535)<<2)+2>>1)+g]&65535)+1|0,y=(v|0)>(c|0),v=y?c:v,n=(y&1)+n|0;o[x>>1]=v&65535;(r|0)>(d|0)||(x=(v<<1)+b+2876|0,o[x>>1]=o[x>>1]+1&65535,q[e]=(E[(r<<2>>1)+g]&65535)*(((r|0)<(i|0)?0:q[j+(r-i<<2)>>2])+v)+q[e]|0);t=t+1|0;if(573==(t|0)){var A=n;break b}}}else{x=0;for(t=k;;){if(r=I[b+(t<<2)+2908>>2],v=(r<<2)+f+2|0,n=(E[(((E[v>>1]&65535)<<2)+2>>1)+g]&65535)+1|0,n=(y=(n|0)>(c|0))?c:n,x=(y&1)+x|0,o[v>>1]=n&65535,(r|0)>(d|0)||(v=(n<<1)+b+2876|0,o[v>>1]=o[v>>1]+1&65535,v=(r|0)<(i|0)?0:q[j+(r-i<<2)>>2],y=E[(r<<2>>1)+g]&65535,q[e]=y*(v+n)+q[e]|0,q[u>>2]=((E[h+(r<<2)+2>>1]&65535)+v)*y+q[u>>2]|0),t=t+1|0,573==(t|0)){A=x;break b}}}}while(0);if(0!=(A|0)){s=(c<<1)+b+2876|0;for(u=A;;){for(var B=c;;){var t=B-1|0,F=(t<<1)+b+2876|0,H=o[F>>1];if(0!=H<<16>>16){break}B=t}o[F>>1]=H-1&65535;B=(B<<1)+b+2876|0;o[B>>1]=o[B>>1]+2&65535;B=o[s>>1]-1&65535;o[s>>1]=B;u=u-2|0;if(0>=(u|0)){break}}if(0!=(c|0)){r=573;s=c;for(t=B;;){u=s&65535;for(t&=65535;0!=(t|0);){for(;;){var z=r-1|0,w=I[b+(z<<2)+2908>>2];if((w|0)<=(d|0)){break}r=z}r=(w<<2)+f+2|0;n=E[r>>1]&65535;(n|0)!=(s|0)&&(q[e]=(E[(w<<2>>1)+g]&65535)*(s-n)+q[e]|0,o[r>>1]=u);t=t-1|0;r=z}s=s-1|0;if(0==(s|0)){break a}t=u=o[b+(s<<1)+2876>>1]}}}}}while(0)}Ei.X=1;function Fi(b,f,d){var c,e=d>>1,d=Nb;Nb+=32;c=d>>1;var g=o[e]<<1;o[c+1]=g;g=(o[e+1]+g&65535)<<1;o[c+2]=g;g=(o[e+2]+g&65535)<<1;o[c+3]=g;g=(o[e+3]+g&65535)<<1;o[c+4]=g;g=(o[e+4]+g&65535)<<1;o[c+5]=g;g=(o[e+5]+g&65535)<<1;o[c+6]=g;g=(o[e+6]+g&65535)<<1;o[c+7]=g;g=(o[e+7]+g&65535)<<1;o[c+8]=g;g=(o[e+8]+g&65535)<<1;o[c+9]=g;g=(o[e+9]+g&65535)<<1;o[c+10]=g;g=(o[e+10]+g&65535)<<1;o[c+11]=g;g=(o[e+11]+g&65535)<<1;o[c+12]=g;g=(o[e+12]+g&65535)<<1;o[c+13]=g;g=(o[e+13]+g&65535)<<1;o[c+14]=g;o[c+15]=(o[e+14]+g&65535)<<1;c=0>(f|0);a:do{if(!c){e=f+1|0;for(g=0;;){var h=E[b+(g<<2)+2>>1],j=h&65535;if(0!=h<<16>>16){var h=(j<<1)+d|0,i=E[h>>1];o[h>>1]=i+1&65535;h=i&65535;for(i=0;;){var k=h&1|i,i=k<<1,j=j-1|0;if(0>=(j|0)){break}h>>>=1}o[b+(g<<2)>>1]=k&65535}g=g+1|0;if((g|0)==(e|0)){break a}}}}while(0);Nb=d}Fi.X=1;function yd(b){if(245>b>>>0){var f=11>b>>>0?16:b+11&-8,d=f>>>3,b=I[Y>>2],c=b>>>(d>>>0);if(0!=(c&3|0)){var e=(c&1^1)+d|0,f=e<<1,d=(f<<2)+Y+40|0,g=(f+2<<2)+Y+40|0,c=I[g>>2],f=c+8|0,h=I[f>>2];(d|0)==(h|0)?q[Y>>2]=b&(1<>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[g>>2]=h,q[h+12>>2]=d);b=e<<3;q[c+4>>2]=b|3;b=c+(b|4)|0;q[b>>2]|=1;e=f;b=39}else{if(f>>>0>I[Y+8>>2]>>>0){if(0!=(c|0)){var e=2<>>12&16,c=d>>>(e>>>0),d=c>>>5&8,g=c>>>(d>>>0),c=g>>>2&4,h=g>>>(c>>>0),g=h>>>1&2,h=h>>>(g>>>0),j=h>>>1&1,d=(d|e|c|g|j)+(h>>>(j>>>0))|0,e=d<<1,g=(e<<2)+Y+40|0,h=(e+2<<2)+Y+40|0,c=I[h>>2],e=c+8|0,j=I[e>>2];(g|0)==(j|0)?q[Y>>2]=b&(1<>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[h>>2]=j,q[j+12>>2]=g);g=d<<3;b=g-f|0;q[c+4>>2]=f|3;d=c+f|0;q[c+(f|4)>>2]=b|1;q[c+g>>2]=b;j=I[Y+8>>2];0!=(j|0)&&(f=q[Y+20>>2],g=j>>>2&1073741822,c=(g<<2)+Y+40|0,h=I[Y>>2],j=1<<(j>>>3),0==(h&j|0)?(q[Y>>2]=h|j,h=c,g=(g+2<<2)+Y+40|0):(g=(g+2<<2)+Y+40|0,h=I[g>>2],h>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"))),q[g>>2]=f,q[h+12>>2]=f,q[(f+8|0)>>2]=h,q[(f+12|0)>>2]=c);q[Y+8>>2]=b;q[Y+20>>2]=d;b=39}else{0==(q[Y+4>>2]|0)?(i=f,b=31):(b=pj(f),0==(b|0)?(i=f,b=31):(e=b,b=39))}}else{var i=f,b=31}}}else{4294967231>>0?(i=-1,b=31):(b=b+11&-8,0==(q[Y+4>>2]|0)?(i=b,b=31):(f=qj(b),0==(f|0)?(i=b,b=31):(e=f,b=39)))}31==b&&(f=I[Y+8>>2],i>>>0>f>>>0?(b=I[Y+12>>2],i>>>0>>0?(b=b-i|0,q[Y+12>>2]=b,f=I[Y+24>>2],q[Y+24>>2]=f+i|0,q[i+(f+4)>>2]=b|1,q[f+4>>2]=i|3,e=f+8|0):e=Vk(i)):(e=f-i|0,b=I[Y+20>>2],15>>0?(q[Y+20>>2]=b+i|0,q[Y+8>>2]=e,q[i+(b+4)>>2]=e|1,q[b+f>>2]=e,q[b+4>>2]=i|3):(q[Y+8>>2]=0,q[Y+20>>2]=0,q[b+4>>2]=f|3,i=f+(b+4)|0,q[i>>2]|=1),e=b+8|0));return e}yd.X=1;function pj(b){var f,d,c=q[Y+4>>2],e=(c&-c)-1|0,c=e>>>12&16,g=e>>>(c>>>0),e=g>>>5&8;d=g>>>(e>>>0);var g=d>>>2&4,h=d>>>(g>>>0);d=h>>>1&2;var h=h>>>(d>>>0),j=h>>>1&1,c=g=e=I[Y+((e|c|g|d|j)+(h>>>(j>>>0))<<2)+304>>2];d=c>>2;for(e=(q[e+4>>2]&-8)-b|0;;){h=q[g+16>>2];if(0==(h|0)){if(g=q[g+20>>2],0==(g|0)){break}}else{g=h}h=(q[g+4>>2]&-8)-b|0;e=(d=h>>>0>>0)?h:e;c=d?g:c;d=c>>2}var h=c,i=I[Y+16>>2],j=h>>>0>>0;do{if(!j){var k=h+b|0,g=k;if(h>>>0>>0){var j=I[d+6],k=I[d+3],p=(k|0)==(c|0);do{if(p){f=c+20|0;var s=q[f>>2];if(0==(s|0)&&(f=c+16|0,s=q[f>>2],0==(s|0))){s=0;f=s>>2;break}for(;;){var u=s+20|0,n=q[u>>2];if(0==(n|0)&&(u=s+16|0,n=I[u>>2],0==(n|0))){break}f=u;s=n}f>>>0>>0&&(Li(),a("Reached an unreachable!"));q[f>>2]=0}else{f=I[d+2],f>>>0>>0&&(Li(),a("Reached an unreachable!")),q[f+12>>2]=k,q[k+8>>2]=f,s=k}f=s>>2}while(0);i=0==(j|0);a:do{if(!i){k=c+28|0;p=(q[k>>2]<<2)+Y+304|0;u=(c|0)==(q[p>>2]|0);do{if(u){q[p>>2]=s;if(0!=(s|0)){break}q[Y+4>>2]&=1<>2]^-1;break a}j>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));n=j+16|0;(q[n>>2]|0)==(c|0)?q[n>>2]=s:q[j+20>>2]=s;if(0==(s|0)){break a}}while(0);s>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));q[f+6]=j;k=I[d+4];0!=(k|0)&&(k>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[f+4]=k,q[k+24>>2]=s);k=I[d+5];0!=(k|0)&&(k>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[f+5]=k,q[k+24>>2]=s)}}while(0);16>e>>>0?(b=e+b|0,q[d+1]=b|3,b=b+(h+4)|0,q[b>>2]|=1):(q[d+1]=b|3,q[b+(h+4)>>2]=e|1,q[h+e+b>>2]=e,i=I[Y+8>>2],0!=(i|0)&&(b=I[Y+20>>2],h=i>>>2&1073741822,d=(h<<2)+Y+40|0,j=I[Y>>2],i=1<<(i>>>3),0==(j&i|0)?(q[Y>>2]=j|i,j=d,h=(h+2<<2)+Y+40|0):(h=(h+2<<2)+Y+40|0,j=I[h>>2],j>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"))),q[h>>2]=b,q[j+12>>2]=b,q[b+8>>2]=j,q[b+12>>2]=d),q[Y+8>>2]=e,q[Y+20>>2]=g);return c+8|0}}}while(0);Li();a("Reached an unreachable!")}pj.X=1;function Vk(b){var f,d;0==(q[cl>>2]|0)&&dl();var c=0==(q[Y+440>>2]&4|0);a:do{if(c){d=q[Y+24>>2];if(0==(d|0)){d=7}else{if(d=el(d),0==(d|0)){d=7}else{var e=q[cl+8>>2],e=b+47-q[Y+12>>2]+e&-e;if(2147483647>e>>>0){var g=fl(e),h=(f=(g|0)==(q[d>>2]+q[d+4>>2]|0))?g:-1;f=f?e:0;var j=e;d=14}else{var i=0;d=22}}}if(7==d){if(d=fl(0),-1==(d|0)){i=0,d=22}else{var e=q[cl+8>>2],e=e+(b+47)&-e,k=d,p=q[cl+4>>2],s=p-1|0,e=0==(s&k|0)?e:e-k+(s+k&-p)|0;2147483647>e>>>0?(g=fl(e),f=(h=(g|0)==(d|0))?e:0,h=h?d:-1,j=e,d=14):(i=0,d=22)}}b:do{if(14==d){i=-j|0;if(-1!=(h|0)){var u=f,n=h;d=27;break a}d=-1!=(g|0)&2147483647>j>>>0;do{if(d){if(j>>>0<(b+48|0)>>>0){if(e=q[cl+8>>2],e=b+47-j+e&-e,2147483647>e>>>0){if(-1==(fl(e)|0)){fl(i);i=f;break b}e=e+j|0}else{e=j}}else{e=j}}else{e=j}}while(0);if(-1!=(g|0)){u=e;n=g;d=27;break a}q[Y+440>>2]|=4;var t=f;d=24;break a}}while(0);q[Y+440>>2]|=4;t=i}else{t=0}d=24}while(0);24==d&&(c=q[cl+8>>2],c=c+(b+47)&-c,2147483647>c>>>0?(c=fl(c),h=fl(0),-1!=(h|0)&-1!=(c|0)&c>>>0>>0?(f=h-c|0,t=(h=f>>>0>(b+40|0)>>>0)?f:t,c=h?c:-1,-1==(c|0)?d=50:(u=t,n=c,d=27)):d=50):d=50);a:do{if(27==d){t=q[Y+432>>2]+u|0;q[Y+432>>2]=t;t>>>0>I[Y+436>>2]>>>0&&(q[Y+436>>2]=t);t=I[Y+24>>2];c=0==(t|0);b:do{if(c){h=I[Y+16>>2];0==(h|0)|n>>>0>>0&&(q[Y+16>>2]=n);q[Y+444>>2]=n;q[Y+448>>2]=u;q[Y+456>>2]=0;q[Y+36>>2]=q[cl>>2];q[Y+32>>2]=-1;for(h=0;!(f=h<<1,j=(f<<2)+Y+40|0,q[Y+(f+3<<2)+40>>2]=j,q[Y+(f+2<<2)+40>>2]=j,h=h+1|0,32==(h|0));){}gl(n,u-40|0)}else{j=Y+444|0;for(f=j>>2;0!=(j|0);){h=I[f];j=j+4|0;g=I[j>>2];if((n|0)==(h+g|0)){if(0!=(q[f+3]&8|0)){break}f=t;if(!(f>>>0>=h>>>0&f>>>0>>0)){break}q[j>>2]=g+u|0;gl(q[Y+24>>2],q[Y+12>>2]+u|0);break b}j=q[f+2];f=j>>2}n>>>0>2]>>>0&&(q[Y+16>>2]=n);h=n+u|0;for(f=Y+444|0;0!=(f|0);){j=f|0;if((q[j>>2]|0)==(h|0)){if(0!=(q[f+12>>2]&8|0)){break}q[j>>2]=n;var r=f+4|0;q[r>>2]=q[r>>2]+u|0;r=hl(n,h,b);d=51;break a}f=q[f+8>>2]}il(n,u)}}while(0);t=I[Y+12>>2];t>>>0>b>>>0?(r=t-b|0,q[Y+12>>2]=r,c=t=I[Y+24>>2],q[Y+24>>2]=c+b|0,q[b+(c+4)>>2]=r|1,q[t+4>>2]=b|3,r=t+8|0,d=51):d=50}}while(0);50==d&&(q[jl>>2]=12,r=0);return r}Vk.X=1;function qj(b){var f,d,c,e,g,h=b>>2,j,i=-b|0,k=b>>>8;if(0==(k|0)){var p=0}else{if(16777215>>0){p=31}else{var s=(k+1048320|0)>>>16&8,u=k<>>16&4,t=u<>>16&2,x=14-(n|s|r)+(t<>>15)|0,p=b>>>((x+7|0)>>>0)&1|x<<1}}var v=I[Y+(p<<2)+304>>2],y=0==(v|0);a:do{if(y){var A=0,B=i,F=0}else{var H=31==(p|0)?0:25-(p>>>1)|0,z=0,w=i,J=v;g=J>>2;for(var G=b<>>0>>0){if((C|0)==(b|0)){A=J;B=ka;F=J;break a}var ra=J,N=ka}else{ra=z,N=w}var oa=I[g+5],K=I[((G>>>31<<2)+16>>2)+g],Q=0==(oa|0)|(oa|0)==(K|0)?S:oa;if(0==(K|0)){A=ra;B=N;F=Q;break a}z=ra;w=N;J=K;g=J>>2;G<<=1;S=Q}}}while(0);if(0==(F|0)&0==(A|0)){var Ka=2<>2]&(Ka|-Ka);if(0==(Aa|0)){var P=0;j=80}else{var hb=(Aa&-Aa)-1|0,ya=hb>>>12&16,Fa=hb>>>(ya>>>0),Da=Fa>>>5&8,Ma=Fa>>>(Da>>>0),ib=Ma>>>2&4,bb=Ma>>>(ib>>>0),Cb=bb>>>1&2,Oa=bb>>>(Cb>>>0),Pa=Oa>>>1&1,jb=q[Y+((Da|ya|ib|Cb|Pa)+(Oa>>>(Pa>>>0))<<2)+304>>2];j=15}}else{jb=F,j=15}a:do{if(15==j){var Db=0==(jb|0);b:do{if(Db){var xa=B,ta=A;e=ta>>2}else{var Va=jb;c=Va>>2;for(var Xa=B,Eb=A;;){var La=(q[c+1]&-8)-b|0,wb=La>>>0>>0,Ya=wb?La:Xa,cb=wb?Va:Eb,Qa=I[c+4];if(0!=(Qa|0)){Va=Qa}else{var qb=I[c+5];if(0==(qb|0)){xa=Ya;ta=cb;e=ta>>2;break b}Va=qb}c=Va>>2;Xa=Ya;Eb=cb}}}while(0);if(0!=(ta|0)&&xa>>>0<(q[Y+8>>2]-b|0)>>>0){var Ga=ta;d=Ga>>2;var Ua=I[Y+16>>2],Za=Ga>>>0>>0;do{if(!Za){var Wa=Ga+b|0,db=Wa;if(Ga>>>0>>0){var $a=I[e+6],rb=I[e+3],kb=(rb|0)==(ta|0);do{if(kb){var R=ta+20|0,$=q[R>>2];if(0==($|0)){var ba=ta+16|0,la=q[ba>>2];if(0==(la|0)){var L=0;f=L>>2;break}var Z=ba,V=la}else{Z=R,V=$,j=28}for(;;){var M=V+20|0,pa=q[M>>2];if(0!=(pa|0)){Z=M,V=pa}else{var yb=V+16|0,ca=I[yb>>2];if(0==(ca|0)){break}Z=yb;V=ca}}Z>>>0>>0&&(Li(),a("Reached an unreachable!"));q[Z>>2]=0;L=V}else{var ea=I[e+2];ea>>>0>>0&&(Li(),a("Reached an unreachable!"));q[ea+12>>2]=rb;q[rb+8>>2]=ea;L=rb}f=L>>2}while(0);var ja=0==($a|0);b:do{if(ja){var T=ta}else{var fa=ta+28|0,qa=(q[fa>>2]<<2)+Y+304|0,ma=(ta|0)==(q[qa>>2]|0);do{if(ma){q[qa>>2]=L;if(0!=(L|0)){break}q[Y+4>>2]&=1<>2]^-1;T=ta;break b}$a>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));var na=$a+16|0;(q[na>>2]|0)==(ta|0)?q[na>>2]=L:q[$a+20>>2]=L;if(0==(L|0)){T=ta;break b}}while(0);L>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));q[f+6]=$a;var va=I[e+4];0!=(va|0)&&(va>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[f+4]=va,q[va+24>>2]=L);var wa=I[e+5];0!=(wa|0)&&(wa>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[f+5]=wa,q[wa+24>>2]=L);T=ta}}while(0);var Ja=16>xa>>>0;b:do{if(Ja){var Ra=xa+b|0;q[T+4>>2]=Ra|3;var W=Ra+(Ga+4)|0;q[W>>2]|=1}else{if(q[T+4>>2]=b|3,q[h+(d+1)]=xa|1,q[(xa>>2)+d+h]=xa,256>xa>>>0){var U=xa>>>2&1073741822,ga=(U<<2)+Y+40|0,ha=I[Y>>2],ia=1<<(xa>>>3);if(0==(ha&ia|0)){q[Y>>2]=ha|ia;var X=ga,Ea=(U+2<<2)+Y+40|0}else{var eb=(U+2<<2)+Y+40|0,Fb=I[eb>>2];Fb>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));X=Fb;Ea=eb}q[Ea>>2]=db;q[X+12>>2]=db;q[h+(d+2)]=X;q[h+(d+3)]=ga}else{var ab=Wa,sb=xa>>>8;if(0==(sb|0)){var tb=0}else{if(16777215>>0){tb=31}else{var ub=(sb+1048320|0)>>>16&8,lb=sb<>>16&4,fb=lb<>>16&2,Ta=14-(mb|ub|Sa)+(fb<>>15)|0,tb=xa>>>((Ta+7|0)>>>0)&1|Ta<<1}}var Ba=(tb<<2)+Y+304|0;q[h+(d+7)]=tb;var za=b+(Ga+16)|0;q[h+(d+5)]=0;q[za>>2]=0;var gb=q[Y+4>>2],Gb=1<>2]=gb|Gb,q[Ba>>2]=ab,q[h+(d+6)]=Ba,q[h+(d+3)]=ab,q[h+(d+2)]=ab}else{for(var Hb=xa<<(31==(tb|0)?0:25-(tb>>>1)|0),vb=q[Ba>>2];;){if((q[vb+4>>2]&-8|0)==(xa|0)){var xb=vb+8|0,nb=I[xb>>2],Ib=I[Y+16>>2],zb=vb>>>0>>0;do{if(!zb&&nb>>>0>=Ib>>>0){q[nb+12>>2]=ab;q[xb>>2]=ab;q[h+(d+2)]=nb;q[h+(d+3)]=vb;q[h+(d+6)]=0;break b}}while(0);Li();a("Reached an unreachable!")}var Jb=(Hb>>>31<<2)+vb+16|0,Kb=I[Jb>>2];if(0!=(Kb|0)){Hb<<=1,vb=Kb}else{if(Jb>>>0>=I[Y+16>>2]>>>0){q[Jb>>2]=ab;q[h+(d+6)]=vb;q[h+(d+3)]=ab;q[h+(d+2)]=ab;break b}Li();a("Reached an unreachable!")}}}}}}while(0);P=T+8|0;break a}}}while(0);Li();a("Reached an unreachable!")}P=0}}while(0);return P}qj.X=1;function kl(){var b;0==(q[cl>>2]|0)&&dl();var f=I[Y+24>>2],d=0==(f|0);a:do{if(!d){var c=I[Y+12>>2],e=40>>0;do{if(e){var g=I[cl+8>>2],h=(Math.floor(((c-41+g|0)>>>0)/(g>>>0))-1)*g|0,j=el(f);if(0==(q[j+12>>2]&8|0)){var i=fl(0);b=(j+4|0)>>2;if((i|0)==(q[j>>2]+q[b]|0)&&(h=fl(-(2147483646>>0?-2147483648-g|0:h)|0),g=fl(0),-1!=(h|0)&g>>>0>>0&&(h=i-g|0,(i|0)!=(g|0)))){q[b]=q[b]-h|0;q[Y+432>>2]=q[Y+432>>2]-h|0;gl(q[Y+24>>2],q[Y+12>>2]-h|0);break a}}}}while(0);I[Y+12>>2]>>>0>I[Y+28>>2]>>>0&&(q[Y+28>>2]=-1)}}while(0)}kl.X=1;function yg(b){var f,d,c,e,g,h,j=b>>2,i,k=0==(b|0);a:do{if(!k){var p=b-8|0,s=p,u=I[Y+16>>2],n=p>>>0>>0;b:do{if(!n){var t=I[b-4>>2],r=t&3;if(1!=(r|0)){var x=t&-8;h=x>>2;var v=b+(x-8)|0,y=v,A=0==(t&1|0);c:do{if(A){var B=I[p>>2];if(0==(r|0)){break a}var F=-8-B|0;g=F>>2;var H=b+F|0,z=H,w=B+x|0;if(H>>>0>>0){break b}if((z|0)==(q[Y+20>>2]|0)){e=(b+(x-4)|0)>>2;if(3!=(q[e]&3|0)){var J=z;c=J>>2;var G=w;break}q[Y+8>>2]=w;q[e]&=-2;q[g+(j+1)]=w|1;q[v>>2]=w;break a}if(256>B>>>0){var S=I[g+(j+2)],C=I[g+(j+3)];if((S|0)==(C|0)){q[Y>>2]&=1<<(B>>>3)^-1,J=z,c=J>>2,G=w}else{var ka=((B>>>2&1073741822)<<2)+Y+40|0,ra=(S|0)!=(ka|0)&S>>>0>>0;do{if(!ra&&(C|0)==(ka|0)|C>>>0>=u>>>0){q[S+12>>2]=C;q[C+8>>2]=S;J=z;c=J>>2;G=w;break c}}while(0);Li();a("Reached an unreachable!")}}else{var N=H,oa=I[g+(j+6)],K=I[g+(j+3)],Q=(K|0)==(N|0);do{if(Q){var Ka=F+(b+20)|0,Aa=q[Ka>>2];if(0==(Aa|0)){var P=F+(b+16)|0,hb=q[P>>2];if(0==(hb|0)){var ya=0;d=ya>>2;break}var Fa=P,Da=hb}else{Fa=Ka,Da=Aa,i=22}for(;;){var Ma=Da+20|0,ib=q[Ma>>2];if(0!=(ib|0)){Fa=Ma,Da=ib}else{var bb=Da+16|0,Cb=I[bb>>2];if(0==(Cb|0)){break}Fa=bb;Da=Cb}}Fa>>>0>>0&&(Li(),a("Reached an unreachable!"));q[Fa>>2]=0;ya=Da}else{var Oa=I[g+(j+2)];Oa>>>0>>0&&(Li(),a("Reached an unreachable!"));q[Oa+12>>2]=K;q[K+8>>2]=Oa;ya=K}d=ya>>2}while(0);if(0!=(oa|0)){var Pa=F+(b+28)|0,jb=(q[Pa>>2]<<2)+Y+304|0,Db=(N|0)==(q[jb>>2]|0);do{if(Db){q[jb>>2]=ya;if(0!=(ya|0)){break}q[Y+4>>2]&=1<>2]^-1;J=z;c=J>>2;G=w;break c}oa>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));var xa=oa+16|0;(q[xa>>2]|0)==(N|0)?q[xa>>2]=ya:q[oa+20>>2]=ya;if(0==(ya|0)){J=z;c=J>>2;G=w;break c}}while(0);ya>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));q[d+6]=oa;var ta=I[g+(j+4)];0!=(ta|0)&&(ta>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[d+4]=ta,q[ta+24>>2]=ya);var Va=I[g+(j+5)];0!=(Va|0)&&(Va>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[d+5]=Va,q[Va+24>>2]=ya)}J=z;c=J>>2;G=w}}else{J=s,c=J>>2,G=x}}while(0);var Xa=J;if(Xa>>>0>>0){var Eb=b+(x-4)|0,La=I[Eb>>2];if(0!=(La&1|0)){var wb=0==(La&2|0);do{if(wb){if((y|0)==(q[Y+24>>2]|0)){var Ya=q[Y+12>>2]+G|0;q[Y+12>>2]=Ya;q[Y+24>>2]=J;q[c+1]=Ya|1;(J|0)==(q[Y+20>>2]|0)&&(q[Y+20>>2]=0,q[Y+8>>2]=0);if(Ya>>>0<=I[Y+28>>2]>>>0){break a}kl();break a}if((y|0)==(q[Y+20>>2]|0)){var cb=q[Y+8>>2]+G|0;q[Y+8>>2]=cb;q[Y+20>>2]=J;q[c+1]=cb|1;q[(Xa+cb|0)>>2]=cb;break a}var Qa=(La&-8)+G|0,qb=La>>>3,Ga=256>La>>>0;c:do{if(Ga){var Ua=I[j+h],Za=I[((x|4)>>2)+j];if((Ua|0)==(Za|0)){q[Y>>2]&=1<>>2&1073741822)<<2)+Y+40|0;i=(Ua|0)==(Wa|0)?64:Ua>>>0>2]>>>0?67:64;do{if(64==i&&!((Za|0)!=(Wa|0)&&Za>>>0>2]>>>0)){q[Ua+12>>2]=Za;q[Za+8>>2]=Ua;break c}}while(0);Li();a("Reached an unreachable!")}}else{var db=v,$a=I[h+(j+4)],rb=I[((x|4)>>2)+j],kb=(rb|0)==(db|0);do{if(kb){var R=x+(b+12)|0,$=q[R>>2];if(0==($|0)){var ba=x+(b+8)|0,la=q[ba>>2];if(0==(la|0)){var L=0;f=L>>2;break}var Z=ba,V=la}else{Z=R,V=$,i=74}for(;;){var M=V+20|0,pa=q[M>>2];if(0!=(pa|0)){Z=M,V=pa}else{var yb=V+16|0,ca=I[yb>>2];if(0==(ca|0)){break}Z=yb;V=ca}}Z>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));q[Z>>2]=0;L=V}else{var ea=I[j+h];ea>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));q[ea+12>>2]=rb;q[rb+8>>2]=ea;L=rb}f=L>>2}while(0);if(0!=($a|0)){var ja=x+(b+20)|0,T=(q[ja>>2]<<2)+Y+304|0,fa=(db|0)==(q[T>>2]|0);do{if(fa){q[T>>2]=L;if(0!=(L|0)){break}q[Y+4>>2]&=1<>2]^-1;break c}$a>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));var qa=$a+16|0;(q[qa>>2]|0)==(db|0)?q[qa>>2]=L:q[$a+20>>2]=L;if(0==(L|0)){break c}}while(0);L>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));q[f+6]=$a;var ma=I[h+(j+2)];0!=(ma|0)&&(ma>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[f+4]=ma,q[ma+24>>2]=L);var na=I[h+(j+3)];0!=(na|0)&&(na>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[f+5]=na,q[na+24>>2]=L)}}}while(0);q[c+1]=Qa|1;q[Xa+Qa>>2]=Qa;if((J|0)!=(q[Y+20>>2]|0)){var va=Qa}else{q[Y+8>>2]=Qa;break a}}else{q[Eb>>2]=La&-2,q[c+1]=G|1,va=q[Xa+G>>2]=G}}while(0);if(256>va>>>0){var wa=va>>>2&1073741822,Ja=(wa<<2)+Y+40|0,Ra=I[Y>>2],W=1<<(va>>>3);if(0==(Ra&W|0)){q[Y>>2]=Ra|W;var U=Ja,ga=(wa+2<<2)+Y+40|0}else{var ha=(wa+2<<2)+Y+40|0,ia=I[ha>>2];ia>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));U=ia;ga=ha}q[ga>>2]=J;q[U+12>>2]=J;q[c+2]=U;q[c+3]=Ja;break a}var X=J,Ea=va>>>8;if(0==(Ea|0)){var eb=0}else{if(16777215>>0){eb=31}else{var Fb=(Ea+1048320|0)>>>16&8,ab=Ea<>>16&4,tb=ab<>>16&2,lb=14-(sb|Fb|ub)+(tb<>>15)|0,eb=va>>>((lb+7|0)>>>0)&1|lb<<1}}var mb=(eb<<2)+Y+304|0;q[c+7]=eb;q[c+5]=0;q[c+4]=0;var fb=q[Y+4>>2],Sa=1<>2]=fb|Sa,q[mb>>2]=X,q[c+6]=mb,q[c+3]=J,q[c+2]=J}else{for(var Ba=va<<(31==(eb|0)?0:25-(eb>>>1)|0),za=q[mb>>2];;){if((q[za+4>>2]&-8|0)==(va|0)){var gb=za+8|0,Gb=I[gb>>2],Hb=I[Y+16>>2],vb=za>>>0>>0;do{if(!vb&&Gb>>>0>=Hb>>>0){q[Gb+12>>2]=X;q[gb>>2]=X;q[c+2]=Gb;q[c+3]=za;q[c+6]=0;break c}}while(0);Li();a("Reached an unreachable!")}var xb=(Ba>>>31<<2)+za+16|0,nb=I[xb>>2];if(0!=(nb|0)){Ba<<=1,za=nb}else{if(xb>>>0>=I[Y+16>>2]>>>0){q[xb>>2]=X;q[c+6]=za;q[c+3]=J;q[c+2]=J;break c}Li();a("Reached an unreachable!")}}}}while(0);var Ib=q[Y+32>>2]-1|0;q[Y+32>>2]=Ib;if(0!=(Ib|0)){break a}for(var zb=Y+452|0;;){var Jb=q[zb>>2];if(0==(Jb|0)){break}zb=Jb+8|0}q[Y+32>>2]=-1;break a}}}}}while(0);Li();a("Reached an unreachable!")}}while(0)}yg.X=1;function el(b){var f,d=Y+444|0;for(f=d>>2;;){var c=I[f];if(c>>>0<=b>>>0&&(c+q[f+1]|0)>>>0>b>>>0){var e=d;break}f=I[f+2];if(0==(f|0)){e=0;break}d=f;f=d>>2}return e}function gl(b,f){var d=b+8|0,d=0==(d&7|0)?0:-d&7,c=f-d|0;q[Y+24>>2]=b+d|0;q[Y+12>>2]=c;q[d+(b+4)>>2]=c|1;q[f+(b+4)>>2]=40;q[Y+28>>2]=q[cl+16>>2]}function dl(){if(0==(q[cl>>2]|0)){var b=ll();0==(b-1&b|0)?(q[cl+8>>2]=b,q[cl+4>>2]=b,q[cl+12>>2]=-1,q[cl+16>>2]=2097152,q[cl+20>>2]=0,q[Y+440>>2]=0,q[cl>>2]=Math.floor(Date.now()/1e3)&-16^1431655768):(Li(),a("Reached an unreachable!"))}}function hl(b,f,d){var c,e,g,h=f>>2,j=b>>2,i,k=b+8|0,k=0==(k&7|0)?0:-k&7;e=f+8|0;var p=0==(e&7|0)?0:-e&7;g=p>>2;var s=f+p|0,u=k+d|0;e=u>>2;var n=b+u|0,t=s-(b+k)-d|0;q[(k+4>>2)+j]=d|3;d=(s|0)==(q[Y+24>>2]|0);a:do{if(d){var r=q[Y+12>>2]+t|0;q[Y+12>>2]=r;q[Y+24>>2]=n;q[e+(j+1)]=r|1}else{if((s|0)==(q[Y+20>>2]|0)){r=q[Y+8>>2]+t|0,q[Y+8>>2]=r,q[Y+20>>2]=n,q[e+(j+1)]=r|1,q[(b+r+u|0)>>2]=r}else{var x=I[g+(h+1)];if(1==(x&3|0)){var r=x&-8,v=x>>>3,y=256>x>>>0;b:do{if(y){var A=I[((p|8)>>2)+h],B=I[g+(h+3)];if((A|0)==(B|0)){q[Y>>2]&=1<>>2&1073741822)<<2)+Y+40|0;i=(A|0)==(F|0)?16:A>>>0>2]>>>0?19:16;do{if(16==i&&!((B|0)!=(F|0)&&B>>>0>2]>>>0)){q[A+12>>2]=B;q[B+8>>2]=A;break b}}while(0);Li();a("Reached an unreachable!")}}else{i=s;A=I[((p|24)>>2)+h];B=I[g+(h+3)];F=(B|0)==(i|0);do{if(F){c=p|16;var H=c+(f+4)|0,z=q[H>>2];if(0==(z|0)){if(c=f+c|0,z=q[c>>2],0==(z|0)){z=0;c=z>>2;break}}else{c=H}for(;;){var H=z+20|0,w=q[H>>2];if(0==(w|0)&&(H=z+16|0,w=I[H>>2],0==(w|0))){break}c=H;z=w}c>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));q[c>>2]=0}else{c=I[((p|8)>>2)+h],c>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[c+12>>2]=B,q[B+8>>2]=c,z=B}c=z>>2}while(0);if(0!=(A|0)){B=p+(f+28)|0;F=(q[B>>2]<<2)+Y+304|0;H=(i|0)==(q[F>>2]|0);do{if(H){q[F>>2]=z;if(0!=(z|0)){break}q[Y+4>>2]&=1<>2]^-1;break b}A>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));w=A+16|0;(q[w>>2]|0)==(i|0)?q[w>>2]=z:q[A+20>>2]=z;if(0==(z|0)){break b}}while(0);z>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));q[c+6]=A;i=p|16;A=I[(i>>2)+h];0!=(A|0)&&(A>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[c+4]=A,q[A+24>>2]=z);i=I[(i+4>>2)+h];0!=(i|0)&&(i>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[c+5]=i,q[i+24>>2]=z)}}}while(0);x=f+(r|p)|0;r=r+t|0}else{x=s,r=t}x=x+4|0;q[x>>2]&=-2;q[e+(j+1)]=r|1;q[(r>>2)+j+e]=r;if(256>r>>>0){v=r>>>2&1073741822,x=(v<<2)+Y+40|0,y=I[Y>>2],r=1<<(r>>>3),0==(y&r|0)?(q[Y>>2]=y|r,r=x,v=(v+2<<2)+Y+40|0):(v=(v+2<<2)+Y+40|0,r=I[v>>2],r>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"))),q[v>>2]=n,q[r+12>>2]=n,q[e+(j+2)]=r,q[e+(j+3)]=x}else{if(x=n,y=r>>>8,0==(y|0)?v=0:16777215>>0?v=31:(v=(y+1048320|0)>>>16&8,i=y<>>16&4,i<<=y,A=(i+245760|0)>>>16&2,v=14-(y|v|A)+(i<>>15)|0,v=r>>>((v+7|0)>>>0)&1|v<<1),y=(v<<2)+Y+304|0,q[e+(j+7)]=v,i=u+(b+16)|0,q[e+(j+5)]=0,q[i>>2]=0,i=q[Y+4>>2],A=1<>2]=i|A,q[y>>2]=x,q[e+(j+6)]=y,q[e+(j+3)]=x,q[e+(j+2)]=x}else{v=r<<(31==(v|0)?0:25-(v>>>1)|0);for(y=q[y>>2];;){if((q[y+4>>2]&-8|0)==(r|0)){i=y+8|0;A=I[i>>2];B=I[Y+16>>2];F=y>>>0>>0;do{if(!F&&A>>>0>=B>>>0){q[A+12>>2]=x;q[i>>2]=x;q[e+(j+2)]=A;q[e+(j+3)]=y;q[e+(j+6)]=0;break a}}while(0);Li();a("Reached an unreachable!")}i=(v>>>31<<2)+y+16|0;A=I[i>>2];if(0!=(A|0)){v<<=1,y=A}else{if(i>>>0>=I[Y+16>>2]>>>0){q[i>>2]=x;q[e+(j+6)]=y;q[e+(j+3)]=x;q[e+(j+2)]=x;break a}Li();a("Reached an unreachable!")}}}}}}}while(0);return b+(k|8)|0}hl.X=1;function il(b,f){var d,c,e=I[Y+24>>2];c=e>>2;var g=el(e),h=q[g>>2];d=q[g+4>>2];var g=h+d|0,j=h+(d-39)|0,h=h+(d-47)+(0==(j&7|0)?0:-j&7)|0,h=h>>>0<(e+16|0)>>>0?e:h,j=h+8|0;d=j>>2;gl(b,f-40|0);q[(h+4|0)>>2]=27;q[d]=q[Y+444>>2];q[d+1]=q[Y+448>>2];q[d+2]=q[Y+452>>2];q[d+3]=q[Y+456>>2];q[Y+444>>2]=b;q[Y+448>>2]=f;q[Y+456>>2]=0;q[Y+452>>2]=j;d=h+28|0;q[d>>2]=7;j=(h+32|0)>>>0>>0;a:do{if(j){for(var i=d;;){var k=i+4|0;q[k>>2]=7;if((i+8|0)>>>0>=g>>>0){break a}i=k}}}while(0);g=(h|0)==(e|0);a:do{if(!g){if(d=h-e|0,j=e+d|0,i=d+(e+4)|0,q[i>>2]&=-2,q[c+1]=d|1,q[j>>2]=d,256>d>>>0){i=d>>>2&1073741822,j=(i<<2)+Y+40|0,k=I[Y>>2],d=1<<(d>>>3),0==(k&d|0)?(q[Y>>2]=k|d,d=j,i=(i+2<<2)+Y+40|0):(i=(i+2<<2)+Y+40|0,d=I[i>>2],d>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"))),q[i>>2]=e,q[d+12>>2]=e,q[c+2]=d,q[c+3]=j}else{j=e;k=d>>>8;if(0==(k|0)){i=0}else{if(16777215>>0){i=31}else{var i=(k+1048320|0)>>>16&8,p=k<>>16&4,p=p<>>16&2,i=14-(k|i|s)+(p<>>15)|0,i=d>>>((i+7|0)>>>0)&1|i<<1}}k=(i<<2)+Y+304|0;q[c+7]=i;q[c+5]=0;q[c+4]=0;p=q[Y+4>>2];s=1<>2]=p|s,q[k>>2]=j,q[c+6]=k,q[c+3]=e,q[c+2]=e}else{i=d<<(31==(i|0)?0:25-(i>>>1)|0);for(k=q[k>>2];;){if((q[k+4>>2]&-8|0)==(d|0)){var p=k+8|0,s=I[p>>2],u=I[Y+16>>2],n=k>>>0>>0;do{if(!n&&s>>>0>=u>>>0){q[s+12>>2]=j;q[p>>2]=j;q[c+2]=s;q[c+3]=k;q[c+6]=0;break a}}while(0);Li();a("Reached an unreachable!")}p=(i>>>31<<2)+k+16|0;s=I[p>>2];if(0!=(s|0)){i<<=1,k=s}else{if(p>>>0>=I[Y+16>>2]>>>0){q[p>>2]=j;q[c+6]=k;q[c+3]=e;q[c+2]=e;break a}Li();a("Reached an unreachable!")}}}}}}while(0)}il.X=1;function zd(b,f){var d=0;if(20<=f){for(var c=b+f;b%4;){m[b++]=d}0>d&&(d+=256);for(var e=b>>2,g=c>>2,h=d|d<<8|d<<16|d<<24;e>2,b=b>>2,c=d>>2;f>=1;b>>=1;for(c=d>>1;f>2]=b}var jl,tl=0,ul=0,vl=0,wl=2,Sh=[sa],xl=da;function yl(b,f){if("string"!==typeof b){return sa}f===aa&&(f="/");b&&"/"==b[0]&&(f="");for(var d=(f+"/"+b).split("/").reverse(),c=[""];d.length;){var e=d.pop();""==e||"."==e||(".."==e?1>2]=438,Ec),c=q[d>>2],d=f&3,e=0!=d,g=1!=d,h=Boolean(f&512),j=Boolean(f&2048),i=Boolean(f&1024),k=Boolean(f&8),b=zl(ed(b));if(!b.n){return Th(b.error),-1}if(d=b.object||sa){if(h&&j){return Th(nl),-1}if((e||h||i)&&d.d){return Th(pl),-1}if(g&&!d.w||e&&!d.write){return Th(ml),-1}if(i&&!d.b){d.a=[]}else{c=d;if(c.b||c.d||c.link||c.a){c=da}else{h=da;if("undefined"!==typeof XMLHttpRequest){Gc("Cannot do synchronous binary XHRs in modern browsers. Use --embed-file or --preload-file in emcc")}else{if(l.read){try{c.a=Te(l.read(c.url),da)}catch(p){h=ua}}else{a(Error("Cannot load without read() or XMLHttpRequest."))}}h||Th(ol);c=h}if(!c){return Th(ol),-1}}c=b.path}else{if(!h){return Th(ql),-1}if(!b.i.write){return Th(ml),-1}d=Hl(b.i,b.name,[],c&256,c&128);c=b.v+"/"+b.name}h=Sh.length;if(d.d){e=0;Ll&&(e=yd(Ll.ka));var g=[],s;for(s in d.a){g.push(s)}Sh[h]={path:c,object:d,position:-2,f:da,g:ua,m:ua,error:ua,k:ua,c:[],a:g,K:e}}else{Sh[h]={path:c,object:d,position:0,f:g,g:e,m:k,error:ua,k:ua,c:[]}}return h}function Lh(b){if(Sh[b]){return Sh[b].K&&yg(Sh[b].K),delete Sh[b],0}Th(Vh);return-1}function Ml(b,f,d,c){var e=Sh[b];if(!e||e.object.b){return Th(Vh),-1}if(e.f){if(e.object.d){return Th(pl),-1}if(0>d||0>c){return Th(Uh),-1}for(b=0;e.c.length&&0d){return Th(Uh),-1}if(c.object.b){if(c.object.input){for(b=0;c.c.length&&0>2];Ol||(Ol=yd(256));var f=Ol;if(b in Nl){if(255d){return Th(Uh),-1}if(c.object.b){if(c.object.h){for(var e=0;ed||0>e){Th(Uh),f=-1}else{for(var h=b.object.a;h.length>12<<12,Pl=da);var f=Rb;0!=b&&Ob(b);return f}var Pl;function ki(b){return(b&255)<<24|(b>>8&255)<<16|(b>>16&255)<<8|b>>>24}var Ql=ua,cn,dn,en,fn;Ye.unshift({u:(function(){if(!l.noFSInit&&!Jl){var b,f,d,c=(function(b){b===sa||10===b?(f.o(f.buffer.join("")),f.buffer=[]):f.buffer.push(j.M(b))});Gc(!Jl,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");Jl=da;Cl();b=b||l.stdin;f=f||l.stdout;d=d||l.stderr;var e=da,g=da,h=da;b||(e=ua,b=(function(){if(!b.t||!b.t.length){var c;"undefined"!=typeof window&&"function"==typeof window.prompt?(c=window.prompt("Input: "),c===sa&&(c=String.fromCharCode(0))):"function"==typeof readline&&(c=readline());c||(c="");b.t=Te(c+"\n",da)}return b.t.shift()}));var j=new Lb;f||(g=ua,f=c);f.o||(f.o=l.print);f.buffer||(f.buffer=[]);d||(h=ua,d=c);d.o||(d.o=l.print);d.buffer||(d.buffer=[]);try{El("/","tmp",da,da)}catch(i){}var c=El("/","dev",da,da),k=Il(c,"stdin",b),p=Il(c,"stdout",sa,f);d=Il(c,"stderr",sa,d);Il(c,"tty",b,f);Sh[1]={path:"/dev/stdin",object:k,position:0,f:da,g:ua,m:ua,L:!e,error:ua,k:ua,c:[]};Sh[2]={path:"/dev/stdout",object:p,position:0,f:ua,g:da,m:ua,L:!g,error:ua,k:ua,c:[]};Sh[3]={path:"/dev/stderr",object:d,position:0,f:ua,g:da,m:ua,L:!h,error:ua,k:ua,c:[]};tl=xd([1],"void*",wd);ul=xd([2],"void*",wd);vl=xd([3],"void*",wd);Fl("/","dev/shm/tmp",da,da);Sh[tl]=Sh[1];Sh[ul]=Sh[2];Sh[vl]=Sh[3];xd([xd([0,0,0,0,tl,0,0,0,ul,0,0,0,vl,0,0,0],"void*",wd)],"void*",wd)}})});Ze.push({u:(function(){xl=ua})});$e.push({u:(function(){Jl&&(Sh[2]&&0b;b++){c.push(0)}}var d=b.length+1,c=[xd(Te("/bin/this.program"),"i8",wd)];f();for(var e=0;e>2]=Ai|0;q[dg+4>>2]=Gi|0;q[eg>>2]=Bi|0;q[eg+4>>2]=Ii|0;q[fg+4>>2]=gn|0;Bd=[0,0,(function(b,f,d){return yd(d*f|0)}),0,(function(b,f){yg(f)}),0,tg,0,vg,0,wg,0,xg,0,Oh,0,Wh,0,gi,0];l.FUNCTION_TABLE=Bd;function Wf(b){function f(){var d=0;sf=da;l._main&&(Xe(Ze),d=l.da(b),l.noExitRuntime||Xe($e));if(l.postRun){for("function"==typeof l.postRun&&(l.postRun=[l.postRun]);0>2<<2;return c}function Bb(a){var c=Cb;Cb+=a;Cb=Cb+3>>2<<2;if(Cb>=Db){for(;Db<=Cb;){Db=2*Db+4095>>12<<12}var a=n,d=new ArrayBuffer(Db);n=new Int8Array(d);Rb=new Int16Array(d);p=new Int32Array(d);w=new Uint8Array(d);Sb=new Uint16Array(d);x=new Uint32Array(d);Ub=new Float32Array(d);Vb=new Float64Array(d);n.set(a)}return c}var ob=4,Wb={},Xb,z,C,Yb;function ac(a){print(a+":\n"+Error().stack);b("Assertion: "+a)}function qb(a,c){a||ac("Assertion failed: "+c)}var bc=this;Module.ccall=(function(a,c,d,e){try{var f=eval("_"+a)}catch(g){try{f=bc.Module["_"+a]}catch(h){}}qb(f,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");var i=0,a=e?e.map((function(a){if("string"==d[i++]){var c=m;zb(a.length+1);cc(a,c);a=c}return a})):[];return(function(a,c){return"string"==c?dc(a):a})(f.apply(ca,a),c)});function ec(a,c,d){d=d||"i8";"*"===d[d.length-1]&&(d="i32");switch(d){case"i1":n[a]=c;break;case"i8":n[a]=c;break;case"i16":Rb[a>>1]=c;break;case"i32":p[a>>2]=c;break;case"i64":p[a>>2]=c;break;case"float":Ub[a>>2]=c;break;case"double":fc[0]=c;p[a>>2]=jc[0];p[a+4>>2]=jc[1];break;default:ac("invalid type for setValue: "+d)}}Module.setValue=ec;Module.getValue=(function(a,c){c=c||"i8";"*"===c[c.length-1]&&(c="i32");switch(c){case"i1":return n[a];case"i8":return n[a];case"i16":return Rb[a>>1];case"i32":return p[a>>2];case"i64":return p[a>>2];case"float":return Ub[a>>2];case"double":return jc[0]=p[a>>2],jc[1]=p[a+4>>2],fc[0];default:ac("invalid type for setValue: "+c)}return ca});var kc=1,E=2;Module.ALLOC_NORMAL=0;Module.ALLOC_STACK=kc;Module.ALLOC_STATIC=E;function F(a,c,d){var e,f;"number"===typeof a?(e=k,f=a):(e=l,f=a.length);var g="string"===typeof c?c:ca,d=[nc,zb,Bb][d===aa?E:d](Math.max(f,g?1:c.length));if(e){return oc(d,0,f),d}e=0;for(var h;e>2);Ub.subarray(xc>>2);var fc=Vb.subarray(xc>>3);rc=xc+8;Cb=rc+4095>>12<<12;function yc(a){for(;0=c?2*Math.abs(1<=a){return a}var d=32>=c?Math.abs(1<=d&&(32>=c||a>d)){a=-2*d+a}return a}function Hc(a,c,d){var e=0>(d|0)?-1:0,f=(d>>>0)+4294967296*(e|0)+(a>>>0)+4294967296*(c|0)>>>0,a=Math.min(Math.floor(((d>>>0)+4294967296*(e|0)+(a>>>0)+4294967296*(c|0))/4294967296),4294967295);return[f,a]}function Ic(a,c,d){var e=0>(d|0)?-1:0,f=(d>>>0)+4294967296*(e|0)+(a>>>0)+4294967296*(c|0)>>>0,a=Math.min(Math.floor(((d>>>0)+4294967296*(e|0)+(a>>>0)+4294967296*(c|0))/4294967296),4294967295);return[f,a]}function Jc(a,c,d){var e=0<(d|0);a:do{if(e){for(var f=0,g=p[a>>2];;){if(g=p[Kc+((w[c+f|0]&255^g&255)<<2)>>2]^g>>>8,p[a>>2]=g,f=f+1|0,(f|0)==(d|0)){break a}}}}while(0)}function Lc(a,c,d){n[a+12|0]=c&255;n[a+13|0]=(c>>>8|d<<24)&255;n[a+14|0]=(c>>>16|d<<16)&255;n[a+15|0]=(c>>>24|d<<8)&255;n[a+16|0]=d&255;n[a+17|0]=(d>>>8|0)&255;n[a+18|0]=(d>>>16|0)&255;n[a+19|0]=(d>>>24|0)&255}function Mc(a){var c=n[a+11|0],d=n[a+10|0]|c<<8|0,e=n[a+9|0]|d<<8|0,f=n[a+8|0]|e<<8|0,g=n[a+7|0]|f<<8|0,h=n[a+6|0]|g<<8|0,i=n[a+5|0]|h<<8|0;return[n[a+4|0]|i<<8|0,0|((((((0|c>>>24)<<8|d>>>24)<<8|e>>>24)<<8|f>>>24)<<8|g>>>24)<<8|h>>>24)<<8|i>>>24]}Mc.X=1;function Nc(a){var c=n[a+19|0],d=n[a+18|0]|c<<8|0,e=n[a+17|0]|d<<8|0,f=n[a+16|0]|e<<8|0,g=n[a+15|0]|f<<8|0,h=n[a+14|0]|g<<8|0,i=n[a+13|0]|h<<8|0;return[n[a+12|0]|i<<8|0,0|((((((0|c>>>24)<<8|d>>>24)<<8|e>>>24)<<8|f>>>24)<<8|g>>>24)<<8|h>>>24)<<8|i>>>24]}Nc.X=1;function Oc(a,c,d){p[Pc>>2]=0;var e=d;a:for(;;){var f=c+(d-e)|0;if(0>=(e|0)){var g=0;break}for(;;){p[Pc>>2]=0;var h=Qc(a,f,e);if(0<(h|0)){break}if(0==(h|0)){g=e;break a}if(4!=(p[Pc>>2]|0)&&11!=(p[Pc>>2]|0)){g=e;break a}}e=e-h|0}return d-g|0}function Rc(a,c,d){p[Pc>>2]=0;var e=d;a:for(;;){var f=c+(d-e)|0;if(0>=(e|0)){var g=0;break}for(;;){p[Pc>>2]=0;var h=Sc(a,f,e);if(0<(h|0)){break}if(0!=(p[Pc>>2]|0)&&4!=(p[Pc>>2]|0)&&11!=(p[Pc>>2]|0)){g=e;break a}}e=e-h|0}return d-g|0}function Tc(a){var c,d;d=(a+20|0)>>2;c=(a+24|0)>>2;var e=p[c],f=p[d]-e|0;if(0<(f|0)){var g=a+16|0;Jc(a+28|0,p[g>>2]+e|0,f);e=p[a+32>>2];-1<(e|0)&&(Rc(e,p[g>>2]+p[c]|0,f)|0)!=(f|0)&&Uc(-1);f=p[d];if((f|0)<(p[a+12>>2]|0)){d=f}else{var g=0>(f|0)?-1:0,a=(a|0)>>2,h=p[a],i=p[a+1],e=(h>>>0)+4294967296*(i|0)+(f>>>0)+4294967296*(g|0)>>>0,f=Math.min(Math.floor(((h>>>0)+4294967296*(i|0)+(f>>>0)+4294967296*(g|0))/4294967296),4294967295);p[a]=e;p[a+1]=f;d=p[d]=0}p[c]=d}}function Vc(a){var c,d=m;m+=20;var e=a+36|0,f=0<(p[e>>2]|0)?20:12;c=(a+40|0)>>2;for(var g=p[c],h=g|0,g=Hc(p[h>>2],p[h+4>>2],p[g+12>>2]),h=g[0],i=g[1],j=0>(f|0)?-1:0,g=(h>>>0)+4294967296*(i|0)+(f>>>0)+4294967296*(j|0)>>>0,h=Math.min(Math.floor(((h>>>0)+4294967296*(i|0)+(f>>>0)+4294967296*(j|0))/4294967296),4294967295),j=i=0;(i|0)<(f|0);){if(0!=(j&1)<<24>>24){break}if(Wc(p[c])){oc(d+i|0,0,f-i|0),i=f,j=1}else{var o=Xc(p[c]);n[d+i|0]=o}i=i+1|0}0==(p[e>>2]|0)&&Lc(d,g,h);0==(p[p[c]+20>>2]|0)?c=j:(Yc(K.L|0),c=1);e=(w[d|0]&255|(w[d+1|0]&255|(w[d+2|0]&255|(w[d+3|0]&255)<<8)<<8)<<8|0)==(p[a+28>>2]^-1|0);i=Mc(d);f=i[0];i=i[1];j=a|0;a=Ic(p[j>>2],p[j+4>>2],p[a+20>>2]);j=Nc(d);a=(j[0]==g&&j[1]==h)&(f==a[0]&&i==a[1])&e&0==(c&1)<<24>>24;m=d;return a}Vc.X=1;function Wc(a){var c;if((p[a+12>>2]|0)<(p[a+16>>2]|0)){c=0}else{var d=a+32|0;if(0==(n[d]&1)<<24>>24){c=Oc(p[a+28>>2],p[a+8>>2],16384);var e=a+16|0;p[e>>2]=c;16384!=(c|0)&&0!=(p[Pc>>2]|0)&&Uc(-1);c=x[e>>2];n[d]=16384>(c|0)&1;var d=a+12|0,e=p[d>>2],f=0>(e|0)?-1:0,a=(a|0)>>2,g=p[a],h=p[a+1],i=(g>>>0)+4294967296*(h|0)+(e>>>0)+4294967296*(f|0)>>>0,e=Math.min(Math.floor(((g>>>0)+4294967296*(h|0)+(e>>>0)+4294967296*(f|0))/4294967296),4294967295);p[a]=i;p[a+1]=e;d=p[d>>2]=0}else{d=p[a+12>>2],c=p[a+16>>2]}c=(d|0)<(c|0)^1}return c}function Xc(a){if(Wc(a)){a=85}else{var c=a+12|0,d=p[c>>2];p[c>>2]=d+1|0;a=n[p[a+8>>2]+d|0]}return a}function Zc(a){var c,d=m;m+=29280;for(var e,f=d+192,g=d+240,h=d+288,i=d+336,j=d+384,o=d+576,u=d+1600,q=d+2060,t=d+2124,s=d+3412,B=d+4700,v=d+29276,y=d+192|0,A=d|0;;){T(A);var r=A+4|0;if((r|0)==(y|0)){break}A=r}T(f|0);T(f+4|0);T(f+8|0);T(f+12|0);T(f+16|0);T(f+20|0);T(f+24|0);T(f+28|0);T(f+32|0);T(f+36|0);T(f+40|0);T(f+44|0);T(g|0);T(g+4|0);T(g+8|0);T(g+12|0);T(g+16|0);T(g+20|0);T(g+24|0);T(g+28|0);T(g+32|0);T(g+36|0);T(g+40|0);T(g+44|0);T(h|0);T(h+4|0);T(h+8|0);T(h+12|0);T(h+16|0);T(h+20|0);T(h+24|0);T(h+28|0);T(h+32|0);T(h+36|0);T(h+40|0);T(h+44|0);T(i|0);T(i+4|0);T(i+8|0);T(i+12|0);T(i+16|0);T(i+20|0);T(i+24|0);T(i+28|0);T(i+32|0);T(i+36|0);T(i+40|0);T(i+44|0);for(var D=j+192|0,L=j|0;;){T(L);var H=L+4|0;if((H|0)==(D|0)){break}L=H}for(var P=o+1024|0,J=o|0;;){T(J);var G=J+4|0;if((G|0)==(P|0)){break}J=G}for(var I=u+460|0,M=u|0;;){T(M);var O=M+4|0;if((O|0)==(I|0)){break}M=O}var N=q|0;T(N);T(q+4|0);T(q+8|0);T(q+12|0);T(q+16|0);T(q+20|0);T(q+24|0);T(q+28|0);T(q+32|0);T(q+36|0);T(q+40|0);T(q+44|0);T(q+48|0);T(q+52|0);T(q+56|0);T(q+60|0);$c(t);$c(s);for(var Q=B+24576|0,$=B|0;;){T($);var ha=$+4|0;if((ha|0)==(Q|0)){break}$=ha}n[v|0]=0;c=(a+40|0)>>2;ad(p[c]);var ba=a+8|0,R=a+20|0,Sa=a|0,fa=v|0,U=0,qa=0,Aa=0,da=0;a:for(;;){b:for(;;){if(Wc(p[c])){Tc(a);var Ea=2;break a}var ra=Sa|0,pb=Sa+4|0,bb=Ic(p[ra>>2],p[pb>>2],p[R>>2])[0]&3,Eb=w[fa],sa=Eb&255;if(0==(bd(p[c],(sa<<4)+(bb<<2)+d|0)|0)){var Fa,Zb=p[a+20>>2];Fa=n[p[a+16>>2]+((0<(Zb|0)?Zb:p[a+12>>2])-1)|0];var ga=p[c];if(7>(Eb&255)){var ta=fd(ga,B+3072*((Fa&255)>>5)|0,8)&255;gd(a,ta)}else{for(var ia=p[a+20>>2]-U-1|0,La=ga,cb=B+3072*((Fa&255)>>5)|0,db=n[p[a+16>>2]+(0>(ia|0)?p[a+12>>2]+ia|0:ia)|0]&255,Fb=aa,ja=7,rb=1;;){if(-1>=(ja|0)){var Ga=rb,Fb=7;break}var sb=db>>>(ja>>>0)&1,tb=bd(La,((sb<<8)+rb+256<<2)+cb|0),Ta=tb|rb<<1;if((sb|0)!=(tb|0)){Fb=4;break}ja=ja-1|0;rb=Ta}c:do{if(4==Fb){if(0<(ja|0)){for(var Ma=Ta,Ua=ja;;){var ub=Ua-1|0,eb=Ma<<1,vb=bd(La,(Ma<<2)+cb|0)|eb;if(0>=(ub|0)){Ga=vb;break c}Ma=vb;Ua=ub}}else{Ga=Ta}}}while(0);gd(a,Ga&255)}hd(v)}else{var Na=bd(p[c],(sa<<2)+f|0),Va=x[c];if(1==(Na|0)){var Nb=1==(bd(Va,(sa<<2)+g|0)|0),Gb=p[c];do{if(!Nb){if(0!=(bd(Gb,(sa<<4)+(bb<<2)+j|0)|0)){var Hb=U,Ib=qa,Wa=Aa,Y=da;break}id(v);var na=U,ka=qa,ua=Aa,va=da,fb=1;e=37;break b}if(0==(bd(Gb,(sa<<2)+h|0)|0)){Hb=qa,Ib=U,Wa=Aa,Y=da}else{var Oa=0==(bd(p[c],(sa<<2)+i|0)|0),gb=Oa?da:Aa,Hb=Oa?Aa:da,Ib=U,Wa=qa,Y=gb}}while(0);jd(v);var Ob=kd(s,p[c],bb),na=Hb,ka=Ib,ua=Wa,va=Y,fb=Ob+2|0;e=37;break}var S=kd(t,Va,bb),oa=S+2|0,Xa=fd(p[c],(ld(oa)<<8)+o|0,6);if(4>(Xa|0)){var la=Xa;e=33;break}var wa=Xa>>1,ma=wa-1|0,Ya=(Xa&1|2)<(Xa|0)){la=md(Jb,(Ya-Xa<<2)+u|0,ma)+Ya|0;e=33;break}var wb=Jb,Za=wa-5|0,Ha=aa,Ia=aa,Pa=0<(Za|0);c:do{if(Pa){for(var Ia=(wb+24|0)>>2,Ha=(wb+20|0)>>2,hb=0,ib=Za,Qa=p[Ia];;){var xa=hb<<1;if(16777216>Qa>>>0){p[Ia]=Qa<<7;var Ja=p[Ha]<<8,jb=Xc(wb)&255|Ja;p[Ha]=jb;var Ba=x[Ia];if(jb>>>0>>0){var $a=xa,xb=Ba}else{p[Ha]=jb-Ba|0,$a=xa|1,xb=Ba}}else{var kb=Qa>>>1;p[Ia]=kb;var yb=x[Ha];yb>>>0>>0?$a=xa:(p[Ha]=yb-kb|0,$a=xa|1);xb=kb}var Kb=ib-1|0;if(0>=(Kb|0)){var Lb=$a;break c}hb=$a;ib=Kb;Qa=xb}}else{Lb=0}}while(0);var Pb=Lb<<4,Qb=md(p[c],N,4),Ka=Pb+Ya+Qb|0;if(-1!=(Ka|0)){la=Ka;e=33;break}nd(p[c]);Tc(a);if(0==(S|0)){Ea=Vc(a)?0:3;break a}if(3!=(oa|0)){Ea=4;break a}ad(p[c])}}do{if(33==e){od(v);if(la>>>0>2]>>>0){if(la>>>0>2]>>>0){na=la;ka=U;ua=qa;va=Aa;fb=oa;break}ra=Sa|0;pb=Sa+4|0;if(!(0==p[ra>>2]&&0==p[pb>>2])){na=la;ka=U;ua=qa;va=Aa;fb=oa;break}}Tc(a);Ea=1;break a}}while(0);pd(a,na,fb);U=na;qa=ka;Aa=ua;da=va}m=d;return Ea}Zc.X=1;function ad(a){var c;c=(a+20|0)>>2;p[c]=0;p[a+24>>2]=-1;var d=Xc(a)&255;p[c]=d;d=Xc(a)&255|d<<8;p[c]=d;d=Xc(a)&255|d<<8;p[c]=d;d=Xc(a)&255|d<<8;p[c]=d;d<<=8;a=Xc(a);p[c]=a&255|d}function ld(a){a=a-2|0;return 3<(a|0)?3:a}function hd(a){a|=0;n[a]=n[K.J+(w[a]&255)|0]}function id(a){a|=0;n[a]=n[K.H+(w[a]&255)|0]}function jd(a){a|=0;n[a]=n[K.I+(w[a]&255)|0]}function od(a){a|=0;n[a]=n[K.K+(w[a]&255)|0]}function T(a){p[a>>2]=1024}function bd(a,c){var d,e;nd(a);e=(a+24|0)>>2;var f=x[e];d=(c|0)>>2;var g=(f>>>11)*p[d]|0,h=a+20|0,i=x[h>>2];i>>>0>>0?(p[e]=g,f=x[d],e=0,f=((2048-f|0)>>>5)+f|0):(p[e]=f-g|0,p[h>>2]=i-g|0,f=x[d],e=1,f=f-(f>>>5)|0);p[d]=f;return e}function gd(a,c){var d;d=(a+20|0)>>2;n[p[a+16>>2]+p[d]|0]=c;var e=p[d]+1|0;p[d]=e;(e|0)<(p[a+12>>2]|0)||Tc(a)}function kd(a,c,d){return 0==(bd(c,a|0)|0)?fd(c,(d<<5)+a+8|0,3):0==(bd(c,a+4|0)|0)?fd(c,(d<<5)+a+136|0,3)+8|0:fd(c,a+264|0,8)+16|0}function fd(a,c,d){var e=0<(d|0);a:do{if(e){for(var f=1,g=d;;){var h=f<<1,f=bd(a,(f<<2)+c|0)|h,g=g-1|0;if(0>=(g|0)){var i=f;break a}}}else{i=1}}while(0);return i-(1<>2];16777216>d>>>0&&(p[c>>2]=d<<8,c=a+20|0,d=p[c>>2]<<8,a=Xc(a)&255|d,p[c>>2]=a)}function pd(a,c,d){var e,f;e=(a+20|0)>>2;var g=p[e],h=g-c-1|0,c=(a+12|0)>>2;f=p[c];h=h+(0>(h|0)?f:0)|0;(f-((g|0)>(h|0)?g:h)|0)>(d|0)?(f=g-h|0,((-1<(f|0)?f:-f|0)|0)<(d|0)?f=3:(f=p[a+16>>2],qd(f+g|0,f+h|0,d),p[e]=p[e]+d|0,f=10)):f=3;a:do{if(3==f&&0<(d|0)){for(var i=a+16|0,j=d,o=h,u=g;;){var q=p[i>>2];n[q+u|0]=n[q+o|0];u=p[e]+1|0;p[e]=u;q=p[c];(u|0)<(q|0)?u=q:(Tc(a),u=p[c]);o=o+1|0;j=j-1|0;if(0>=(j|0)){break a}o=(o|0)<(u|0)?o:0;u=p[e]}}}while(0)}pd.X=1;function $c(a){T(a|0);T(a+4|0);T(a+8|0);T(a+12|0);T(a+16|0);T(a+20|0);T(a+24|0);T(a+28|0);T(a+32|0);T(a+36|0);T(a+40|0);T(a+44|0);T(a+48|0);T(a+52|0);T(a+56|0);T(a+60|0);T(a+64|0);T(a+68|0);T(a+72|0);T(a+76|0);T(a+80|0);T(a+84|0);T(a+88|0);T(a+92|0);T(a+96|0);T(a+100|0);T(a+104|0);T(a+108|0);T(a+112|0);T(a+116|0);T(a+120|0);T(a+124|0);T(a+128|0);T(a+132|0);T(a+136|0);T(a+140|0);T(a+144|0);T(a+148|0);T(a+152|0);T(a+156|0);T(a+160|0);T(a+164|0);T(a+168|0);T(a+172|0);T(a+176|0);T(a+180|0);T(a+184|0);T(a+188|0);T(a+192|0);T(a+196|0);T(a+200|0);T(a+204|0);T(a+208|0);T(a+212|0);T(a+216|0);T(a+220|0);T(a+224|0);T(a+228|0);T(a+232|0);T(a+236|0);T(a+240|0);T(a+244|0);T(a+248|0);T(a+252|0);T(a+256|0);T(a+260|0);for(var c=a+1288|0,a=a+264|0;!(T(a),a=a+4|0,(a|0)==(c|0));){}}$c.X=1;function rd(a,c,d,e){var f,g=a>>2,h=a|0;p[h>>2]=0;p[h+4>>2]=0;var h=a+12|0,i=sd(5505024);p[h>>2]=i;p[g+7]=0;p[g+8]=0;i=a+36|0;p[i>>2]=0;p[g+11]=d;p[g+12]=273>(d|0)?d/2+16|0:256;p[g+13]=e;e=a+56|0;n[e]=0;var j=(c<<1)+4370|0;f=65536>(c|0)?65536:c;d=(a+24|0)>>2;p[d]=f;var o=nc(f);f=(a+8|0)>>2;p[f]=o;0==(o|0)&&Uc(-1);td(a)&&0==(n[e]&1)<<24>>24&&(p[d]|0)<(j|0)&&(p[d]=j,j=0==(p[f]|0)?nc(j):ud(p[f],j),p[f]=j,0==(j|0)&&Uc(-1),td(a));0==(n[e]&1)<<24>>24?(p[g+5]=c,a=p[d]-273|0):(a=p[i>>2],(a|0)<(c|0)&&(c=4096>(a|0)?4096:a),p[g+5]=c,a=p[d]);p[g+10]=a;c=sd(4*(c<<1));p[g+4]=c;for(g=0;!(p[((g<<2)+p[h>>2]|0)>>2]=-1,g=g+1|0,1376256==(g|0));){}}rd.X=1;function td(a){var c,d=a+56|0,e=0==(n[d]&1)<<24>>24;c=(a+36|0)>>2;if(e){var f=p[c],e=p[a+24>>2];if((f|0)<(e|0)){e=e-f|0;f=Oc(p[a+52>>2],p[a+8>>2]+f|0,e);p[c]=p[c]+f|0;if((f|0)!=(e|0)&&0!=(p[Pc>>2]|0)){var g=nc(4);p[g>>2]=K.ea|0;vd(g,wd,0);b("Reached an unreachable!")}n[d]=(f|0)<(e|0)&1}}return(p[a+28>>2]|0)<(p[c]|0)}function xd(a){var c,d,e,f;e=(a+32|0)>>2;var g=p[e]+1|0;p[e]=g;f=(a+20|0)>>2;(g|0)<(p[f]|0)||(p[e]=0);e=(a+28|0)>>2;g=p[e]+1|0;p[e]=g;var h=(g|0)<(p[a+40>>2]|0);do{if(!h&&(d=(a+36|0)>>2,(g|0)>(p[d]|0)&&yd(K.O|0),0==(n[a+56|0]&1)<<24>>24)){var i=p[e]-p[f]-4097|0;c=p[a+8>>2];zd(c,c+i|0,p[d]-i|0);var j=i,o=0>(i|0)?-1:0;c=(a|0)>>2;var u=p[c],q=p[c+1],t=(u>>>0)+4294967296*(q|0)+(j>>>0)+4294967296*(o|0)>>>0,j=Math.min(Math.floor(((u>>>0)+4294967296*(q|0)+(j>>>0)+4294967296*(o|0))/4294967296),4294967295);p[c]=t;p[c+1]=j;p[e]=p[e]-i|0;p[d]=p[d]-i|0;d=a+12|0;for(c=0;!(t=(c<<2)+p[d>>2]|0,j=p[t>>2],-1<(j|0)&&(p[t>>2]=j-i|0),c=c+1|0,1376256==(c|0));){}d=p[f];c=0<(d<<1|0);a:do{if(c){t=a+16|0;j=0;for(o=d;;){if(u=(j<<2)+p[t>>2]|0,q=p[u>>2],-1<(q|0)&&(p[u>>2]=q-i|0,o=p[f]),j=j+1|0,(j|0)>=(o<<1|0)){break a}}}}while(0);td(a)}}while(0)}xd.X=1;function Ad(a,c){var d,e,f,g,h,i=c>>2,j;j=p[a+44>>2];h=(a+28|0)>>2;var o=x[h];g=p[a+36>>2]-o|0;if((j|0)>(g|0)){if(4>(g|0)){var u=0;j=38}else{var q=g;j=3}}else{q=j,j=3}do{if(3==j){u=a+20|0;g=p[u>>2];var t=o+1|0,s=(o|0)<(g|0)?0:t-g|0;g=(a+8|0)>>2;var B=x[g],v=B+o|0,y=w[v],A=w[B+t|0]&255,t=A|(y&255)<<8|1310720,y=p[Kc+((y&255)<<2)>>2]^A^(w[o+(B+2)|0]&255)<<8,A=y&262143|1048576,r=(y^p[Kc+((n[o+(B+3)|0]&255)<<2)>>2]<<5)&1048575,y=0!=(c|0);f=(a+12|0)>>2;if(y){j=p[p[f]+(t<<2)>>2];if((j|0)<(s|0)){p[i+2]=2147483647;var D=1}else{p[i+2]=o-1-j|0,D=2}j=p[p[f]+(A<<2)>>2];if((j|0)<(s|0)){j=10}else{if(n[p[g]+j|0]<<24>>24!=n[v]<<24>>24){j=10}else{p[i+3]=p[h]+(j^-1)|0;var L=3;j=11}}10==j&&(p[i+3]=2147483647,L=D);p[i+4]=2147483647;D=L;v=p[h]}else{D=1,v=o}p[((t<<2)+p[f]|0)>>2]=v;p[((A<<2)+p[f]|0)>>2]=p[h];var t=(r<<2)+p[f]|0,H=p[t>>2];p[t>>2]=p[h];t=a+16|0;e=p[t>>2];var v=a+32|0,P=p[v>>2]<<1,A=p[a+48>>2],J=r=f=0,G=((P|1)<<2)+e|0;e=(P<<2)+e|0;e>>=2;var I=H;a:for(;;){var M=A,H=f,O=D,N=J,P=G;d=P>>2;var Q=I;b:for(;;){var $=(Q|0)<(s|0);do{if(!$){var ha=M-1|0;if(0<=(ha|0)){for(M=p[g];;){var ba=(N|0)<(q|0);if(!ba){break}if(n[M+N+Q|0]<<24>>24!=n[B+N+o|0]<<24>>24){break}N=N+1|0}var $=p[h]-Q|0,R=y&(O|0)<(N|0);c:do{if(R){for(var Sa=$-1|0,fa=O;;){if(fa=fa+1|0,p[(fa<<2>>2)+i]=Sa,(fa|0)==(N|0)){var U=N;break c}}}else{U=O}}while(0);O=x[t>>2];R=p[v>>2];R=R-$+((R|0)<($|0)?p[u>>2]:0)<<1;$=(R<<2)+O|0;if(!ba){p[e]=p[$>>2];p[d]=p[O+((R|1)<<2)>>2];var qa=U;break a}if((w[M+N+Q|0]&255)<(w[B+N+o|0]&255)){p[e]=Q;e=((R|1)<<2)+O|0;d=p[e>>2];if((H|0)>=(N|0)){A=ha;f=H;D=U;J=r=N;G=P;e>>=2;I=d;continue a}A=ha;f=H;D=U;r=N;J=H;G=P;e>>=2;I=d;continue a}p[d]=Q;Q=p[$>>2];if((r|0)>=(N|0)){M=ha;H=N;O=U;P=$;d=P>>2;continue b}M=ha;H=N;O=U;N=r;P=$;d=P>>2;continue b}}}while(0);p[d]=-1;p[e]=-1;qa=O;break a}}y&&(u=c+12|0,g=p[u>>2],s=p[i+4],u=(g|0)>(s|0)?p[u>>2]=s:g,g=c+8|0,(p[g>>2]|0)>(u|0)&&(p[g>>2]=u));u=qa}}while(0);return u}Ad.X=1;function Bd(a,c,d,e){var f=d-2|0,g=a|0;8>(f|0)?(Cd(c,g,0),Dd(c,(e<<5)+a+8|0,f,3)):(Cd(c,g,1),g=a+4|0,16>(f|0)?(Cd(c,g,0),Dd(c,(e<<5)+a+136|0,d-10|0,3)):(Cd(c,g,1),Dd(c,a+264|0,d-18|0,8)));c=(e<<2)+a+5644|0;d=p[c>>2]-1|0;p[c>>2]=d;1>(d|0)&&Ed(a,e)}function Cd(a,c,d){var e;e=(a+24|0)>>2;var f=x[e],c=(c|0)>>2,g=(f>>>11)*p[c]|0;if(0==(d|0)){p[e]=g,f=x[c],f=((2048-f|0)>>>5)+f|0}else{var d=(a|0)>>2,h=p[d],i=p[d+1],j=(h>>>0)+4294967296*(i|0)+(g>>>0)+0>>>0,h=Math.min(Math.floor(((h>>>0)+4294967296*(i|0)+(g>>>0)+0)/4294967296),4294967295);p[d]=j;p[d+1]=h;p[e]=f-g|0;f=x[c];f=f-(f>>>5)|0}p[c]=f;c=x[e];16777216>c>>>0&&(p[e]=c<<8,Fd(a))}function Dd(a,c,d,e){var f=0<(e|0);a:do{if(f){for(var g=1<=(i|0)){break a}g>>=1}}}while(0)}function Ed(a,c){var d,e=a>>2,f=a|0,g=Gd(p[f>>2]);d=(a+5640|0)>>2;for(var h=(c<<5)+a+8|0,i=0;8>(i|0);){if((i|0)>=(p[d]|0)){break}p[((i<<2)+1288>>2)+e+(272*c|0)]=Hd(h,i,3)+g|0;i=i+1|0}f=Qd(p[f>>2]);h=(c<<5)+a+136|0;for(g=a+4|0;;){var j=p[d],o=(i|0)<(j|0);if(!(16>(i|0)&o)){break}p[((i<<2)+1288>>2)+e+(272*c|0)]=Gd(p[g>>2])+f+Hd(h,i-8|0,3)|0;i=i+1|0}a:do{if(o){for(var h=a+264|0,u=i;;){var q=Qd(p[g>>2])+f+Hd(h,u-16|0,8)|0;p[((u<<2)+1288>>2)+e]=q;p[((u<<2)+2376>>2)+e]=q;p[((u<<2)+3464>>2)+e]=q;p[((u<<2)+4552>>2)+e]=q;u=u+1|0;q=p[d];if((u|0)>=(q|0)){var t=q;break a}}}else{t=j}}while(0);p[((c<<2)+5644>>2)+e]=t}Ed.X=1;function Rd(a){var c=a>>2,a=a+2068|0;p[c+43305]=Sd(a,0,4);p[c+43306]=Sd(a,1,4);p[c+43307]=Sd(a,2,4);p[c+43308]=Sd(a,3,4);p[c+43309]=Sd(a,4,4);p[c+43310]=Sd(a,5,4);p[c+43311]=Sd(a,6,4);p[c+43312]=Sd(a,7,4);p[c+43313]=Sd(a,8,4);p[c+43314]=Sd(a,9,4);p[c+43315]=Sd(a,10,4);p[c+43316]=Sd(a,11,4);p[c+43317]=Sd(a,12,4);p[c+43318]=Sd(a,13,4);p[c+43319]=Sd(a,14,4);p[c+43320]=Sd(a,15,4);p[c+43321]=16}Rd.X=1;function Sd(a,c,d){var e=0<(d|0);a:do{if(e){for(var f=0,g=1,h=c,i=d;;){var j=h&1,h=h>>1,f=Td((g<<2)+a|0,j)+f|0,i=i-1|0;if(0>=(i|0)){var o=f;break a}g=j|g<<1}}else{o=0}}while(0);return o}function Ud(a){for(var c=a>>2,d=4;;){var e=n[V+d|0]&255,f=(e>>>1)-1|0,g=(e&1|2)<>2)+c]=e;p[((d<<2)+171684>>2)+c]=e;p[((d<<2)+172196>>2)+c]=e;p[((d<<2)+172708>>2)+c]=e;d=d+1|0;if(128==(d|0)){break}}d=a+38072|0;for(e=0;;){f=(e<<8)+a+584|0;for(g=0;;){var h=(g|0)<(p[d>>2]|0);if(!(14>(g|0)&h)){break}p[((g<<2)+170244>>2)+c+(58*e|0)]=Hd(f,g,6);g=g+1|0}a:do{if(h){for(var i=g;;){if(p[((i<<2)+170244>>2)+c+(58*e|0)]=Hd(f,i,6)+((i<<5)-320&-64)|0,i=i+1|0,(i|0)>=(p[d>>2]|0)){break a}}}}while(0);p[((e<<9)+171172>>2)+c]=p[c+(58*e|0)+42561];p[((e<<9)+171176>>2)+c]=p[c+(58*e|0)+42562];p[((e<<9)+171180>>2)+c]=p[c+(58*e|0)+42563];p[((e<<9)+171184>>2)+c]=p[c+(58*e|0)+42564];for(f=4;!(g=(e<<9)+(f<<2)+a+171172|0,p[g>>2]=p[g>>2]+p[(((n[V+f|0]&255)<<2)+170244>>2)+c+(58*e|0)]|0,f=f+1|0,128==(f|0));){}e=e+1|0;if(4==(e|0)){break}}}Ud.X=1;function Hd(a,c,d){c|=1<>1,f=Td((g<<2)+a|0,e&1)+f|0;if(1>=(g|0)){var h=f;break a}e=g}}else{h=0}}while(0);return h}function Vd(a){var c;c=(a+20|0)>>2;var d=p[c];if(0<(d|0)){var e=p[a+32>>2],f=-1<(e|0);do{if(f){var g=Rc(e,p[a+16>>2],d),h=p[c];if((g|0)==(h|0)){g=h;break}g=nc(4);p[g>>2]=K.W|0;vd(g,wd,0);b("Reached an unreachable!")}g=d}while(0);d=g;e=0>(g|0)?-1:0;a=(a+8|0)>>2;g=p[a];h=p[a+1];f=(g>>>0)+4294967296*(h|0)+(d>>>0)+4294967296*(e|0)>>>0;d=Math.min(Math.floor(((g>>>0)+4294967296*(h|0)+(d>>>0)+4294967296*(e|0))/4294967296),4294967295);p[a]=f;p[a+1]=d;p[c]=0}}function Wd(a,c,d){var e=0>(d|0)?-1:0,f=(d>>>0)+4294967296*(e|0)+(a>>>0)+4294967296*(c|0)>>>0,a=Math.min(Math.floor(((d>>>0)+4294967296*(e|0)+(a>>>0)+4294967296*(c|0))/4294967296),4294967295);return[f,a]}function Xd(a,c,d,e){var f=a+12|0;(p[f>>2]|0)>(e|0)&&(p[a+4>>2]=c,p[a+8>>2]=d,p[f>>2]=e)}function Yd(a,c,d){return p[((c-2<<2)+a+1288>>2)+(272*d|0)]}function Zd(a,c){var d=(c<<5)+a+39176|0,e=0<(c|0);a:do{if(e){for(var f=c;;){var g=p[a+(f<<5)+39180>>2];p[((g<<5)+a+39184|0)>>2]=f-g|0;var f=p[d>>2],h=(g<<5)+a+39176|0;p[d>>2]=p[h>>2];p[h>>2]=f;if(0>=(g|0)){break a}f=g}}}while(0)}function $d(a,c){var d=c>>2,e=3<(a|0);do{if(e){var f=c+8|0;p[d+3]=p[f>>2];var g=c+4|0;p[f>>2]=p[g>>2];p[g>>2]=p[d];p[d]=a-4|0}else{if(0<(a|0)){f=p[(a<<2>>2)+d];for(g=a;;){var h=g-1|0;p[(g<<2>>2)+d]=p[(h<<2>>2)+d];if(0>=(h|0)){break}g=h}p[d]=f}}}while(0)}function ae(a,c,d){var e,f,g,h,i,j=a>>2,o=m;m+=16;i=o>>2;h=(a|0)>>2;var u=p[h];if(0<(u|0)){p[h]=0;var q=u}else{q=be(a)}g=(a+2132|0)>>2;var t=x[g];f=t>>2;var s=x[c>>2],B=x[f+2],v=x[f+7],y=x[f+9],A=ce(B,v,y,0,s+1|0,273);p[i]=A;var r=c+4|0,D=ce(B,v,y,0,p[r>>2]+1|0,273);p[i+1]=D;var L=(D|0)>(A|0)&1,H=c+8|0,P=ce(B,v,y,0,p[H>>2]+1|0,273);p[i+2]=P;var J=(P|0)>(p[(L<<2>>2)+i]|0)?2:L,G=c+12|0,I=ce(B,v,y,0,p[G>>2]+1|0,273);p[i+3]=I;var M=(I|0)>(p[(J<<2>>2)+i]|0)?3:J,O=x[(M<<2>>2)+i],N=p[f+11],Q=(O|0)<(N|0);a:do{if(Q){if((q|0)<(N|0)){var $=t|0,ha=Wd(p[$>>2],p[$+4>>2],v)[0],ba=n[B+v+ -1|0],R=n[B+v+0|0],Sa=n[B+v+(s^-1)|0],fa=d|0;n[a+39172|0]=n[fa];p[j+9797]=p[c>>2];p[j+9798]=p[r>>2];p[j+9799]=p[H>>2];p[j+9800]=p[G>>2];var U=ha&3,qa=a+39204|0,Aa=a+39208|0;p[Aa>>2]=-1;p[j+9803]=0;var da=Gd(p[(((n[fa]&255)<<4)+(U<<2)+8>>2)+j]),Ea=a+39216|0;p[Ea>>2]=da;var ra=a+13496|0;p[Ea>>2]=(7>(n[fa]&255)?Hd(ra+3072*((ba&255)>>>5)|0,R&255,8):de(ra+3072*((ba&255)>>>5)|0,R&255,Sa&255))+da|0;var pb=w[fa],bb=pb&255,Eb=Qd(p[((bb<<4)+(U<<2)+8>>2)+j]),sa=Qd(p[((bb<<2)+200>>2)+j])+Eb|0;Sa<<24>>24==R<<24>>24&&Xd(qa,0,0,ee(a,pb,U)+sa|0);if(2>(q|0)){p[j+9794]=p[Aa>>2];p[j+9796]=1;xd(p[g]);var Fa=1}else{var Zb=(q|0)>(O|0);b:do{if(Zb){for(var ga=Gd(p[(((n[fa]&255)<<2)+200>>2)+j])+Eb|0,ta=q+1|0,ia=2;;){var La=(ia<<2)+a+38076|0;p[((ia<<5)+39176>>2)+j]=p[La>>2]+4|0;p[((ia<<5)+39180>>2)+j]=0;p[((ia<<5)+39184>>2)+j]=ga+(3>(ia|0)&127<(p[La>>2]|0)?268435455:fe(a,p[La>>2],ld(ia))+Yd(a+2176|0,ia,U)|0)|0;var cb=ia+1|0;if((cb|0)==(ta|0)){var db=q;break b}ia=cb}}else{if(2>(O|0)){db=O}else{for(var Fb=O+1|0,ja=2;;){p[((ja<<5)+39184>>2)+j]=268435455;var rb=ja+1|0;if((rb|0)==(Fb|0)){db=O;break b}ja=rb}}}}while(0);var Ga=a+7836|0,sb=2>(A|0);b:do{if(!sb){for(var tb=ge(a,0,n[fa],U)+sa|0,Ta=2;;){Xd((Ta<<5)+a+39172|0,0,0,tb+Yd(Ga,Ta,U)|0);var Ma=Ta+1|0;if((Ma|0)>(A|0)){break b}Ta=Ma}}}while(0);var Ua=2>(D|0);b:do{if(!Ua){for(var ub=ge(a,1,n[fa],U)+sa|0,eb=2;;){Xd((eb<<5)+a+39172|0,1,0,ub+Yd(Ga,eb,U)|0);var vb=eb+1|0;if((vb|0)>(D|0)){break b}eb=vb}}}while(0);var Na=2>(P|0);b:do{if(!Na){for(var Va=ge(a,2,n[fa],U)+sa|0,Nb=2;;){Xd((Nb<<5)+a+39172|0,2,0,Va+Yd(Ga,Nb,U)|0);var Gb=Nb+1|0;if((Gb|0)>(P|0)){break b}Nb=Gb}}}while(0);var Hb=2>(I|0);b:do{if(!Hb){for(var Ib=ge(a,3,n[fa],U)+sa|0,Wa=2;;){Xd((Wa<<5)+a+39172|0,3,0,Ib+Yd(Ga,Wa,U)|0);var Y=Wa+1|0;if((Y|0)>(I|0)){break b}Wa=Y}}}while(0);xd(p[g]);var na=a+38084|0,ka=a+2176|0,ua=db,va=0;b:for(;;){for(var fb=va+1|0,Oa=va,gb=fb,Ob=0;;){var S=Oa+1|0;if((S|0)>=(ua|0)){Zd(a,S);Fa=S;break a}var oa=be(a);if((oa|0)>=(p[p[g]+44>>2]|0)){p[h]=oa;Zd(a,S);Fa=S;break a}var Xa=(S<<5)+a+39172|0,la=p[((S<<5)+39180>>2)+j],wa=Xa|0;n[wa]=n[(la<<5)+a+39172|0];var ma=(S<<5)+a+39188|0;p[ma>>2]=p[((la<<5)+39188>>2)+j];p[((S<<5)+39192>>2)+j]=p[((la<<5)+39192>>2)+j];p[((S<<5)+39196>>2)+j]=p[((la<<5)+39196>>2)+j];p[((S<<5)+39200>>2)+j]=p[((la<<5)+39200>>2)+j];var Ya=Xa|0,Jb=(S<<5)+a+39176|0,wb=p[Jb>>2];(la|0)==(Oa|0)?0==(wb|0)?id(Ya):hd(Ya):(4>(wb|0)?jd(Ya):od(Ya),$d(p[Jb>>2],ma));var Za=x[g],Ha=Za|0,Ia=p[Za+28>>2],Pa=Wd(p[Ha>>2],p[Ha+4>>2],Ia)[0]&3,hb=p[Za+8>>2],ib=n[hb+Ia+ -1|0],Qa=n[hb+Ia+0|0],xa=n[hb+Ia+(p[ma>>2]^-1)|0],Ja=(S<<5)+a+39184|0,jb=w[wa],Ba=Gd(p[(((jb&255)<<4)+(Pa<<2)+8>>2)+j])+p[Ja>>2]+(7>(jb&255)?Hd(ra+3072*((ib&255)>>>5)|0,Qa&255,8):de(ra+3072*((ib&255)>>>5)|0,Qa&255,xa&255))|0;xd(Za);var $a=Oa+2|0,xb=($a<<5)+a+39172|0;Xd(xb,-1,S,Ba);var kb=w[wa],yb=kb&255,Kb=Qd(p[((yb<<4)+(Pa<<2)+8>>2)+j])+p[Ja>>2]|0,Lb=Kb+Qd(p[((yb<<2)+200>>2)+j])|0;xa<<24>>24==Qa<<24>>24&&0!=(p[(($a<<5)+39176>>2)+j]|0)&&Xd(xb,0,S,ee(a,kb,Pa)+Lb|0);var Pb=4094-Oa|0,Qb=p[g];e=Qb>>2;var Ka=p[e+7],gc=p[e+9]-Ka|0,Tb=(Pb|0)<(gc|0)?Pb:gc,lb=p[e+11],hc=(Tb|0)<(lb|0)?Tb:lb;if(2<=(hc|0)){var mb=ua,Mb=0,lc=Qb,$b=Ka;break}Oa=S;gb=gb+1|0;Ob=Ob+1|0}for(;;){for(var mc=p[lc+8>>2]+$b|0,cd=-2-p[((S<<5)+(Mb<<2)+39188>>2)+j]|0,Ab=0;(Ab|0)<(hc|0);){if(n[mc+(Ab-1)|0]<<24>>24!=n[mc+cd+Ab|0]<<24>>24){break}Ab=Ab+1|0}var fg=1<(Ab|0);c:do{if(fg){var gg=ge(a,Mb,n[wa],Pa),hg=(mb|0)<(Ab+S|0);d:do{if(hg){for(var Ze=Ob+fb+Ab|0,$e=mb;;){var Id=$e+1|0;p[((Id<<5)+39184>>2)+j]=268435455;if((Id|0)==(Ze|0)){var af=Ze;break d}$e=Id}}else{af=mb}}while(0);for(var ig=gg+Lb|0,dd=Ab;;){Xd((dd+S<<5)+a+39172|0,Mb,S,ig+Yd(Ga,dd,Pa)|0);var bf=dd-1|0;if(1>=(bf|0)){var ic=af;break c}dd=bf}}else{ic=mb}}while(0);var cf=Mb+1|0;if(4==(cf|0)){break}var df=x[g],mb=ic,Mb=cf,lc=df,$b=p[df+28>>2]}if((oa|0)>(hc|0)){ua=ic,va=S}else{if(2>=(oa|0)){if(2!=(oa|0)){ua=ic;va=S;continue}if(128<=(p[na>>2]|0)){ua=ic;va=S;continue}}var ef=Gd(p[(((n[wa]&255)<<2)+200>>2)+j])+Kb|0,jg=(ic|0)<(oa+S|0);c:do{if(jg){for(var ff=oa+gb|0,gf=ic;;){var Jd=gf+1|0;p[((Jd<<5)+39184>>2)+j]=268435455;if((Jd|0)==(ff|0)){var Kd=ff;break c}gf=Jd}}else{Kd=ic}}while(0);var ed=x[na>>2],hf=ld(2);128>(ed|0)&&Xd((Oa+3<<5)+a+39172|0,ed+4|0,S,p[((hf<<9)+(ed<<2)+171172>>2)+j]+ef+Yd(ka,2,Pa)|0);if(3>(oa|0)){ua=Kd,va=S}else{for(var kg=oa+1|0,Ld=ed,Md=hf,jf=268435455,zc=3;;){var Nd=p[((zc<<2)+38076>>2)+j];if((Ld|0)!=(Nd|0)|3>(Md|0)){var kf=ld(zc),Od=fe(a,Nd,kf),lf=kf,Pd=Nd}else{Od=jf,lf=Md,Pd=Ld}Xd((zc+S<<5)+a+39172|0,Pd+4|0,S,Od+ef+Yd(ka,zc,Pa)|0);var mf=zc+1|0;if((mf|0)==(kg|0)){ua=Kd;va=S;continue b}Ld=Pd;Md=lf;jf=Od;zc=mf}}}}}}else{p[j+9794]=p[((N<<2)+38076>>2)+j]+4|0,p[j+9796]=q,he(a,q,1),Fa=q}}else{p[j+9794]=M,p[j+9796]=O,he(a,O,1),Fa=O}}while(0);m=o;return Fa}ae.X=1;function be(a){var c;c=a+2132|0;var d=Ad(p[c>>2],a+38076|0);c=p[c>>2]>>2;return(d|0)==(p[c+11]|0)?ce(p[c+2],p[c+7],p[c+9],d,p[a+(d<<2)+38076>>2]+1|0,273-d|0)+d|0:d}function ce(a,c,d,e,f,g){d=d-c|0;g=(g+e|0)>(d|0)?d-e|0:g;c=c+e|0;f=c-f|0;for(e=0;(e|0)<(g|0);){if(n[a+f+e|0]<<24>>24!=n[a+e+c|0]<<24>>24){break}e=e+1|0}return e}function he(a,c,d){var e=0<(c|0);a:do{if(e){for(var f=a+2132|0,g=d&1,h=c;;){if(h=h-1|0,0==(g&1)<<24>>24?Ad(p[f>>2],0):g=0,xd(p[f>>2]),0>=(h|0)){break a}}}}while(0)}function Qd(a){return Gd(2048-a|0)}function ee(a,c,d){c&=255;return Gd(p[a+(c<<4)+(d<<2)+392>>2])+Gd(p[a+(c<<2)+248>>2])|0}function ge(a,c,d,e){var d=d&255,f=x[a+(d<<2)+248>>2];0==(c|0)?a=Qd(p[a+(d<<4)+(e<<2)+392>>2])+Gd(f)|0:(e=Qd(f),f=p[a+(d<<2)+296>>2],a=1==(c|0)?Gd(f)+e|0:Qd(f)+e+Td((d<<2)+a+344|0,c-2|0)|0);return a}function ie(a,c,d,e){var f=0>(d|0)?-1:0,g=0>(e|0)?-1:0,h=(d>>>0)+4294967296*(f|0)+(a>>>0)+4294967296*(c|0)>>>0,c=Math.min(Math.floor(((d>>>0)+4294967296*(f|0)+(a>>>0)+4294967296*(c|0))/4294967296),4294967295),a=(h>>>0)+4294967296*(c|0)+(e>>>0)+4294967296*(g|0)>>>0,e=Math.min(Math.floor(((h>>>0)+4294967296*(c|0)+(e>>>0)+4294967296*(g|0))/4294967296),4294967295);return[a,e]}function je(a){for(var c=1,d=0,e=1;;){var f=0==(e&a|0)?d:c,c=c+1|0;if(32==(c|0)){break}d=f;e<<=1}return f}function ke(a){return 0==(n[a+56|0]&1)<<24>>24?0:(p[a+28>>2]|0)>=(p[a+36>>2]|0)}function le(a,c){var d=x[a>>2];p[a>>2]=p[Kc+((d&255^c&255)<<2)>>2]^d>>>8}function fe(a,c,d){return 128>(c|0)?p[a+(d<<9)+(c<<2)+171172>>2]:p[a+((c&15)<<2)+173220>>2]+p[((me(c)<<2)+a+170244>>2)+(58*d|0)]|0}function ne(a,c){var d=m;m+=20;var e=a+2132|0,f=p[e>>2],g=f|0,g=Wd(p[g>>2],p[g+4>>2],p[f+28>>2])[0]&3,f=a+2136|0,h=c|0;Cd(f,((n[h]&255)<<4)+(g<<2)+a+8|0,1);Cd(f,((n[h]&255)<<2)+a+200|0,0);oe(a,-1,2,g);Fd(f);Fd(f);Fd(f);Fd(f);Fd(f);g=p[a+4>>2]^-1;n[d|0]=g&255;n[d+1|0]=g>>>8&255;n[d+2|0]=g>>>16&255;n[d+3|0]=g>>>24&255;e=p[e>>2];g=e|0;g=Wd(p[g>>2],p[g+4>>2],p[e+28>>2]);e=g[0];g=g[1];n[d+4|0]=e&255;n[d+5|0]=(e>>>8|g<<24)&255;n[d+6|0]=(e>>>16|g<<16)&255;n[d+7|0]=(e>>>24|g<<8)&255;n[d+8|0]=g&255;n[d+9|0]=(g>>>8|0)&255;n[d+10|0]=(g>>>16|0)&255;n[d+11|0]=(g>>>24|0)&255;e=a+2144|0;g=ie(p[e>>2],p[e+4>>2],p[a+2156>>2],p[a+2164>>2]);e=g[0];h=g[1];g=20+(e>>>0)+4294967296*(h|0)>>>0;e=Math.min(Math.floor((20+(e>>>0)+4294967296*(h|0))/4294967296),4294967295);Lc(d,g,e);a:do{for(e=0;;){if(pe(f,n[d+e|0]),e=e+1|0,20==(e|0)){break a}}}while(0);Vd(f);m=d}ne.X=1;function pe(a,c){var d;d=(a+20|0)>>2;n[p[a+16>>2]+p[d]|0]=c;var e=p[d]+1|0;p[d]=e;65535<(e|0)&&Vd(a)}function qe(a,c,d,e){var f;p[a>>2]=0;p[a+4>>2]=-1;f=a+200|0;for(var g=a+8|0;!(T(g),g=g+4|0,(g|0)==(f|0));){}T(a+200|0);T(a+204|0);T(a+208|0);T(a+212|0);T(a+216|0);T(a+220|0);T(a+224|0);T(a+228|0);T(a+232|0);T(a+236|0);T(a+240|0);T(a+244|0);T(a+248|0);T(a+252|0);T(a+256|0);T(a+260|0);T(a+264|0);T(a+268|0);T(a+272|0);T(a+276|0);T(a+280|0);T(a+284|0);T(a+288|0);T(a+292|0);T(a+296|0);T(a+300|0);T(a+304|0);T(a+308|0);T(a+312|0);T(a+316|0);T(a+320|0);T(a+324|0);T(a+328|0);T(a+332|0);T(a+336|0);T(a+340|0);T(a+344|0);T(a+348|0);T(a+352|0);T(a+356|0);T(a+360|0);T(a+364|0);T(a+368|0);T(a+372|0);T(a+376|0);T(a+380|0);T(a+384|0);T(a+388|0);f=a+584|0;for(g=a+392|0;!(T(g),g=g+4|0,(g|0)==(f|0));){}f=a+1608|0;for(g=a+584|0;!(T(g),g=g+4|0,(g|0)==(f|0));){}f=a+2068|0;for(g=a+1608|0;!(T(g),g=g+4|0,(g|0)==(f|0));){}T(a+2068|0);T(a+2072|0);T(a+2076|0);T(a+2080|0);T(a+2084|0);T(a+2088|0);T(a+2092|0);T(a+2096|0);T(a+2100|0);T(a+2104|0);T(a+2108|0);T(a+2112|0);T(a+2116|0);T(a+2120|0);T(a+2124|0);T(a+2128|0);f=(a+2132|0)>>2;p[f]=c;c=a+2136|0;g=c|0;p[g>>2]=0;p[g+4>>2]=0;g=c+8|0;p[g>>2]=0;p[g+4>>2]=0;var g=c+16|0,h=sd(65536);p[g>>2]=h;p[c+20>>2]=0;p[c+24>>2]=-1;p[c+28>>2]=0;p[c+32>>2]=e;n[c+36|0]=0;re(a+2176|0,p[p[f]+44>>2]);re(a+7836|0,p[p[f]+44>>2]);g=a+13496|0;e=g+24576|0;for(g|=0;!(T(g),g=g+4|0,(g|0)==(e|0));){}p[(a+38072|0)>>2]=je(p[p[f]+20>>2]-1|0)<<1;e=a+170244|0;for(f=a+39172|0;!(n[f|0]=0,f=f+32|0,(f|0)==(e|0));){}Rd(a);for(a=0;6>(a|0);){pe(c,n[d+a|0]);a=a+1|0}}qe.X=1;function se(a,c,d){var e,f,g,h=m;m+=16;g=h>>2;var i=m;m+=1;m=m+3>>2<<2;var j=(c>>>0)+4294967296*(d|0)+ -16>>>0,o=Math.min(Math.floor(((c>>>0)+4294967296*(d|0)+ -16)/4294967296),4294967295),c=(a+2132|0)>>2,d=12<(p[p[c]+44>>2]|0);n[i|0]=0;p[g]=0;p[g+1]=0;p[g+2]=0;p[g+3]=0;g=(j>>>0)+4294967296*(o|0)-20>>>0;j=Math.min(Math.floor(((j>>>0)+4294967296*(o|0)-20)/4294967296),4294967295);d=d?512:2048;o=p[c];f=o|0;var u=p[o+28>>2];f=Wd(p[f>>2],p[f+4>>2],u);var q=0==f[0]&&0==f[1];a:do{if(q){var t=a+2136|0;f=(a+2144|0)>>2;var s=a+2156|0,B=a+2164|0,v=ie(p[f],p[f+1],p[s>>2],p[B>>2]);if(6==v[0]&&0==v[1]){if(ke(o)){var v=a+4|0,y=a+13496|0,A=i|0}else{v=n[p[o+8>>2]+u+0|0];A=i|0;Cd(t,((n[A]&255)<<4)+a+8|0,0);y=a+13496|0;Dd(t,y+0|0,v&255,8);var r=a+4|0;le(r,v);he(a,1,0);v=r}var r=h|0,D=a+7836|0,L=0;b:for(;;){if(ke(p[c])){ne(a,i);R=1;break a}1>(L|0)&&(Ud(a),L=d);var H=ae(a,r,i);if(1>(H|0)){R=0;break a}for(var L=L-H|0,P=0;;){var J=p[c],G=J|0,G=Wd(p[G>>2],p[G+4>>2],p[J+28>>2]),J=G[0],G=G[1],I=H,M=(J>>>0)+4294967296*(G|0)-((I>>>0)+0)>>>0;Math.min(Math.floor(((J>>>0)+4294967296*(G|0)-((I>>>0)+0))/4294967296),4294967295);var I=M&3,M=x[a+(P<<5)+39176>>2],J=x[a+(P<<5)+39184>>2],O=1==(J|0),N=0>(M|0)&O,G=w[A],Q=G&255;Cd(t,(Q<<4)+(I<<2)+a+8|0,N&1^1);e=x[c]>>2;if(N){O=H^-1;M=p[e+2];Q=p[e+7];I=n[M+Q+O|0];M=n[M+Q+(-H|0)|0];le(v,M);if(7>(G&255)){Dd(t,y+3072*((I&255)>>>5)|0,M&255,8)}else{Q=p[c];G=t;I=y+3072*((I&255)>>>5)|0;M&=255;e=n[p[Q+8>>2]+p[Q+28>>2]+(O-p[r>>2]|0)|0]&255;O=aa;Q=7;for(N=1;;){if(-1>=(Q|0)){O=7;break}var $=e>>>(Q>>>0)&1,ha=M>>>(Q>>>0)&1;Cd(G,(($<<8)+N+256<<2)+I|0,ha);var ba=ha|N<<1;if(($|0)!=(ha|0)){O=4;break}Q=Q-1|0;N=ba}c:do{if(4==O&&0<(Q|0)){e=ba;for(N=Q;;){N=N-1|0;$=M>>>(N>>>0)&1;Cd(G,(e<<2)+I|0,$);if(0>=(N|0)){break c}e=$|e<<1}}}while(0)}hd(i)}else{Jc(v,(p[e+2]+p[e+7]|0)+ -H|0,J),$d(M,r),G=4>(M|0),Cd(t,(Q<<2)+a+200|0,G&1),G?(G=0==(M|0),Cd(t,(Q<<2)+a+248|0,G&1^1),G?Cd(t,(Q<<4)+(I<<2)+a+392|0,1<(J|0)&1):(G=1<(M|0),Cd(t,(Q<<2)+a+296|0,G&1),G&&Cd(t,(Q<<2)+a+344|0,2<(M|0)&1)),O?id(i):(Bd(D,t,J,I),jd(i))):(oe(a,M-4|0,J,I),od(i))}G=H-J|0;H=ie(p[f],p[f+1],p[s>>2],p[B>>2]);I=H[1];if(!((I|0)<(j|0)||(I|0)==(j|0)&&H[0]>>>0>>0)){break}if(1>(G|0)){continue b}P=J+P|0;H=G}ba=p[c];R=G;c=aa;0>(R|0)?ba=0:(c=ba+28|0,g=p[c>>2],(g|0)<(R|0)?ba=0:(p[c>>2]=g-R|0,c=(ba+32|0)>>2,R=p[c]-R|0,p[c]=R,0>(R|0)&&(p[c]=p[ba+20>>2]+R|0),ba=1));if(!ba){R=0;break a}ne(a,i);R=1;break a}}else{var R=0}}else{R=0}}while(0);m=h;return R}se.X=1;function oe(a,c,d,e){var f=a+2136|0;Bd(a+2176|0,f,d,e);e=me(c);Dd(f,(ld(d)<<8)+a+584|0,e,6);if(3<(e|0)){var d=e>>1,g=d-1|0,h=(e&1|2)<(e|0)){te(f,(h-e<<2)+a+1608|0,c,g)}else{var e=c>>>4,d=d-5|0,i=0<(d|0);a:do{if(i){for(var h=(f+24|0)>>2,g=(f|0)>>2,j=d;;){var j=j-1|0,o=x[h],u=o>>>1;p[h]=u;if(0!=(1<>>0)+4294967296*(s|0)+(q>>>0)+0>>>0,q=Math.min(Math.floor(((t>>>0)+4294967296*(s|0)+(q>>>0)+0)/4294967296),4294967295);p[g]=u;p[g+1]=q}33554432>o>>>0&&(p[h]=o<<7&-256,Fd(f));if(0>=(j|0)){break a}}}}while(0);te(f,a+2068|0,c,4);f=a+173284|0;c=p[f>>2]-1|0;p[f>>2]=c;1>(c|0)&&Rd(a)}}}function me(a){return 4096>a>>>0?w[V+a|0]&255:8388608>a>>>0?(w[V+(a>>>11)|0]&255)+22|0:(w[V+(a>>>22)|0]&255)+44|0}function Gd(a){return p[ue+(a>>2<<2)>>2]}function re(a,c){T(a|0);T(a+4|0);T(a+8|0);T(a+12|0);T(a+16|0);T(a+20|0);T(a+24|0);T(a+28|0);T(a+32|0);T(a+36|0);T(a+40|0);T(a+44|0);T(a+48|0);T(a+52|0);T(a+56|0);T(a+60|0);T(a+64|0);T(a+68|0);T(a+72|0);T(a+76|0);T(a+80|0);T(a+84|0);T(a+88|0);T(a+92|0);T(a+96|0);T(a+100|0);T(a+104|0);T(a+108|0);T(a+112|0);T(a+116|0);T(a+120|0);T(a+124|0);T(a+128|0);T(a+132|0);T(a+136|0);T(a+140|0);T(a+144|0);T(a+148|0);T(a+152|0);T(a+156|0);T(a+160|0);T(a+164|0);T(a+168|0);T(a+172|0);T(a+176|0);T(a+180|0);T(a+184|0);T(a+188|0);T(a+192|0);T(a+196|0);T(a+200|0);T(a+204|0);T(a+208|0);T(a+212|0);T(a+216|0);T(a+220|0);T(a+224|0);T(a+228|0);T(a+232|0);T(a+236|0);T(a+240|0);T(a+244|0);T(a+248|0);T(a+252|0);T(a+256|0);T(a+260|0);for(var d=a+1288|0,e=a+264|0;!(T(e),e=e+4|0,(e|0)==(d|0));){}p[a+5640>>2]=c-1|0;Ed(a,0);Ed(a,1);Ed(a,2);Ed(a,3)}re.X=1;function Fd(a){var c,d;d=(a|0)>>2;var e=p[d],f=x[d+1];if((0>f>>>0||0==f>>>0&&4278190080>e>>>0)|1==(f|0)){e=a+36|0;pe(a,(w[e]&255)+f&255);c=(a+28|0)>>2;var g=0<(p[c]|0);a:do{if(g){for(var h=f+255&255;;){pe(a,h);var i=p[c]-1|0;p[c]=i;if(0>=(i|0)){break a}}}}while(0);f=x[d];a=x[d+1];n[e]=(f>>>24|a<<8)&255}else{a=a+28|0,p[a>>2]=p[a>>2]+1|0,a=f,f=e}p[d]=(f<<8|0)&-256;p[d+1]=(a<<8|f>>>24)&0}Fd.X=1;function te(a,c,d,e){var f=0<(e|0);a:do{if(f){for(var g=d,h=1,i=e;;){var j=g&1;Cd(a,(h<<2)+c|0,j);h=h<<1|j;i=i-1|0;if(0>=(i|0)){break a}g>>=1}}}while(0)}function Td(a,c){var d=p[a>>2];return 0==(c|0)?Gd(d):Qd(d)}function de(a,c,d){for(var e,f=7,g=1,h=0;;){if(-1>=(f|0)){var i=h;e=7;break}var j=d>>>(f>>>0)&1,o=c>>>(f>>>0)&1,u=Td(((j<<8)+g+256<<2)+a|0,o)+h|0,q=o|g<<1;if((j|0)!=(o|0)){e=4;break}f=f-1|0;g=q;h=u}a:do{if(4==e){if(0<(f|0)){g=u;d=q;for(h=f;;){h=h-1|0;j=c>>>(h>>>0)&1;g=Td((d<<2)+a|0,j)+g|0;if(0>=(h|0)){i=g;break a}d=j|d<<1}}else{i=u}}}while(0);return i}function Yc(a){0!=(a|0)&&Sc(p[p[ve>>2]+12>>2],a,Dc(a))}function we(a,c,d){if(-1<(p[xe>>2]|0)){if(0!=(a|0)&&0!=n[a]<<24>>24){ye(p[p[ve>>2]+12>>2],K.sa|0,(z=m,m+=8,p[z>>2]=K.i|0,p[z+4>>2]=a,z));if(0<(c|0)){var a=p[p[ve>>2]+12>>2],e;ze||(ze=nc(256));e=ze;if(c in Ae){if(255>2]=e,z))}De(p[p[ve>>2]+12>>2])}a=p[Ee>>2];0!=(a|0)&d&&0!=n[a]<<24>>24&&ye(p[p[ve>>2]+12>>2],K.na|0,(z=m,m+=4,p[z>>2]=a,z))}}function yd(a){-1<(p[xe>>2]|0)&&ye(p[p[ve>>2]+12>>2],K.oa|0,(z=m,m+=8,p[z>>2]=K.i|0,p[z+4>>2]=a,z));Uc(3)}function Fe(a,c){var d=m;m+=8;p[d>>2]=8388608;p[d+4>>2]=36;p[Ee>>2]=p[c>>2];var e=1,f=0;a:for(;;){if((e|0)>=(a|0)){if(e=2==(f|0)){n[Ge]=0}else{if(0==(f|0)){n[V|0]=0;n[V+1|0]=1;n[V+2|0]=2;n[V+3|0]=3;C=1028;n[V+4|0]=C&255;C>>=8;n[(V+4|0)+1]=C&255;C=1285;n[V+6|0]=C&255;C>>=8;n[(V+6|0)+1]=C&255;C=101058054;n[V+8|0]=C&255;C>>=8;n[(V+8|0)+1]=C&255;C>>=8;n[(V+8|0)+2]=C&255;C>>=8;n[(V+8|0)+3]=C&255;C=117901063;n[V+12|0]=C&255;C>>=8;n[(V+12|0)+1]=C&255;C>>=8;n[(V+12|0)+2]=C&255;C>>=8;n[(V+12|0)+3]=C&255;var g=V+16|0,h=g|0;C=134744072;n[h]=C&255;C>>=8;n[h+1]=C&255;C>>=8;n[h+2]=C&255;C>>=8;n[h+3]=C&255;g=g+4|0;C=134744072;n[g]=C&255;C>>=8;n[g+1]=C&255;C>>=8;n[g+2]=C&255;C>>=8;n[g+3]=C&255;g=V+24|0;h=g|0;C=151587081;n[h]=C&255;C>>=8;n[h+1]=C&255;C>>=8;n[h+2]=C&255;C>>=8;n[h+3]=C&255;g=g+4|0;C=151587081;n[g]=C&255;C>>=8;n[g+1]=C&255;C>>=8;n[g+2]=C&255;C>>=8;n[g+3]=C&255;g=V+32|0;for(h=g+16;g>2]=704;for(var g=1,h=2,i=8;;){var j=(g|0)<(h|0);b:do{if(j){for(var o=i<<6,u=8-i|0,q=g;;){if(p[ue+(q<<2)>>2]=(h-q<<6>>u)+o|0,q=q+1|0,(q|0)==(h|0)){var t=h;break b}}}else{t=g}}while(0);if(0>=(i|0)){break}g=t;h<<=1;i=i-1|0}}}n[Ge]=1;t=f;g=aa;if(0==(t|0)&w[Ge]){if(0==(He(2)|0)){g=4}else{we(K.ha|0,0,1);var s=0,g=7}}else{g=4}4==g&&(2>(t-1|0)>>>0?0==(He(1)|0)?s=1:(we(K.ia|0,0,1),s=0):s=1);if(!s){g=1;break}f=0==(f|0)?Ie(d):Je(e);f=0<(f|0)?f:0;if(!w[Ge]){g=f;break}Ke[2]?(Ke[2].bb&&Le(Ke[2].bb),delete Ke[2],s=0):(W(Me),s=-1);if(0==(s|0)){g=f;break}we(K.ua|0,p[Pc>>2],0);if(1<=(f|0)){g=f;break}g=1;break}h=n[p[c+(e<<2)>>2]+1|0]<<24>>24;do{if(99==(h|0)||107==(h|0)){i=f}else{if(100==(h|0)){i=1}else{if(104==(h|0)){f=m;Ne(K.qa|0,(z=m,m+=4,p[z>>2]=K.p|0,z));Oe(K.ya|0);s=p[Ee>>2];Ne(K.ra|0,(z=m,m+=4,p[z>>2]=s,z));Oe(K.za|0);Oe(K.Ka|0);Oe(K.Ta|0);Oe(K.Ua|0);Oe(K.Va|0);Oe(K.Wa|0);Oe(K.Xa|0);Oe(K.Ya|0);Oe(K.Za|0);Oe(K.Aa|0);Oe(K.Ba|0);Oe(K.Ca|0);Oe(K.Da|0);Oe(K.Ea|0);Oe(K.Fa|0);Oe(K.Ga|0);Oe(K.Ha|0);Oe(K.Ia|0);Oe(K.Ja|0);Ne(K.va|0,(z=m,m+=4,p[z>>2]=K.i|0,z));Oe(K.La|0);Oe(K.Ma|0);Oe(K.Na|0);Oe(K.Oa|0);Oe(K.Pa|0);m=f;g=0;break a}else{if(113==(h|0)){p[xe>>2]=-1,i=f}else{if(118==(h|0)){i=p[xe>>2],4>(i|0)&&(p[xe>>2]=i+1|0),i=f}else{if(86==(h|0)){f=m;Ne(K.ja|0,(z=m,m+=8,p[z>>2]=K.p|0,p[z+4>>2]=K.ka|0,z));Ne(K.la|0,(z=m,m+=4,p[z>>2]=K.pa|0,z));Oe(K.Qa|0);Oe(K.Ra|0);Oe(K.Sa|0);m=f;g=0;break a}else{yd(K.ta|0),i=f}}}}}}}while(0);e=e+1|0;f=i}m=d;return g}Module._main=Fe;Fe.X=1;function Ie(a){var c=m;m+=173356;var d,e=c+8,f=c+68;C=1346984524;n[c]=C&255;C>>=8;n[c+1]=C&255;C>>=8;n[c+2]=C&255;C>>=8;n[c+3]=C&255;n[c+4|0]=1;d=Pe(c,p[a>>2]);a=a+4|0;if(d){if(d=x[a>>2],268<(d-5|0)>>>0){d=3}else{var g=d;d=4}}else{d=3}3==d&&(yd(K.ca|0),g=p[a>>2]);rd(e,Qe(n[c+5|0]),g,1);Pe(c,p[e+20>>2]);for(var g=e|0,a=e+28|0,h=0,i=0,j=0,o=0,u=0,q=0;;){qe(f,e,c,w[Ge]?2:-1);d=4294967295+2147483647*4294967296-((i>>>0)+4294967296*(h|0))>>>0;var t=Math.min(Math.floor((4294967295+2147483647*4294967296-((i>>>0)+4294967296*(h|0)))/4294967296),4294967295);if(!se(f,d,t)){Yc(K.da|0);var s=j,B=o,v=u,y=q,A=1;break}d=Wd(p[g>>2],p[g+4>>2],p[a>>2]);var t=d[0],r=d[1];d=(t>>>0)+4294967296*(r|0)+(q>>>0)+4294967296*(u|0)>>>0;u=Math.min(Math.floor(((t>>>0)+4294967296*(r|0)+(q>>>0)+4294967296*(u|0))/4294967296),4294967295);q=f+2144|0;q=ie(p[q>>2],p[q+4>>2],p[f+2156>>2],p[f+2164>>2]);q=[q[0],q[1]];t=q[0];r=q[1];q=(t>>>0)+4294967296*(r|0)+(o>>>0)+4294967296*(j|0)>>>0;j=Math.min(Math.floor(((t>>>0)+4294967296*(r|0)+(o>>>0)+4294967296*(j|0))/4294967296),4294967295);if(ke(e)){s=j;B=q;v=u;y=d;A=0;break}var o=(t>>>0)+4294967296*(r|0)+(i>>>0)+4294967296*(h|0)>>>0,h=Math.min(Math.floor(((t>>>0)+4294967296*(r|0)+(i>>>0)+4294967296*(h|0))/4294967296),4294967295),i=e,r=t=aa,r=(i+36|0)>>2,D=p[r],t=(i+28|0)>>2,L=p[t],H=D-L|0;0<(H|0)&&(D=p[i+8>>2],zd(D,D+L|0,H),L=p[t],D=p[r]);H=i|0;p[H>>2]=0;p[H+4>>2]=0;p[r]=D-L|0;p[t]=0;p[i+32>>2]=0;t=i+12|0;for(r=0;!(p[((r<<2)+p[t>>2]|0)>>2]=-1,r=r+1|0,1376256==(r|0));){}td(i);o=(i=2147483647<(h|0)||2147483647==(h|0)&&4294963198>>0)?0:o;h=i?0:h;i=p[f+2152>>2];0!=(i|0)&&Re(i);i=o;o=q;q=d}f=p[f+2152>>2];0!=(f|0)&&Re(f);0==(A|0)&0<(p[xe>>2]|0)&&(f=p[p[ve>>2]+12>>2],(0>(v|0)||0==(v|0)&&1>y>>>0)|(0>(s|0)||0==(s|0)&&1>B>>>0)?Se(K.fa|0,20,1,f):(g=y+4294967296*v,a=B+4294967296*s,ye(f,K.ga|0,(z=m,m+=40,fc[0]=g/a,p[z>>2]=jc[0],p[z+4>>2]=jc[1],fc[0]=8*a/g,p[z+8>>2]=jc[0],p[z+12>>2]=jc[1],fc[0]=100*(1-a/g),p[z+16>>2]=jc[0],p[z+20>>2]=jc[1],p[z+24>>2]=y,p[z+28>>2]=v,p[z+32>>2]=B,p[z+36>>2]=s,z))));s=p[e+16>>2];0!=(s|0)&&Re(s);s=p[e+12>>2];0!=(s|0)&&Re(s);Le(p[e+8>>2]);m=c;return A}Ie.X=1;function Qe(a){var a=a&255,c=1<<(a&31);return 536866816>(c-4097|0)>>>0?c-c/16*(a>>>5)|0:c}function Te(a,c,d){var e=a+16|0,f=p[e>>2];0==(f|0)?(p[e>>2]=c,p[a+24>>2]=d,p[a+36>>2]=1):(f|0)==(c|0)?(a=a+24|0,2==(p[a>>2]|0)&&(p[a>>2]=d)):(d=a+36|0,p[d>>2]=p[d>>2]+1|0,p[a+24>>2]=2,n[a+54|0]=1)}function Ue(a,c,d,e){var f=a>>2;n[a+53|0]=1;d=(p[f+1]|0)==(d|0);do{if(d){n[a+52|0]=1;var g=a+16|0,h=p[g>>2];if(0==(h|0)){if(p[g>>2]=c,p[f+6]=e,p[f+9]=1,!(1==(p[f+12]|0)&1==(e|0))){break}}else{if((h|0)==(c|0)){if(g=a+24|0,h=p[g>>2],g=2==(h|0)?p[g>>2]=e:h,!(1==(p[f+12]|0)&1==(g|0))){break}}else{g=a+36|0,p[g>>2]=p[g>>2]+1|0}}n[a+54|0]=1}}while(0)}Ue.X=1;function Ve(a,c,d){(p[a+4>>2]|0)==(c|0)&&(a=a+28|0,1!=(p[a>>2]|0)&&(p[a>>2]=d))}function Je(a){var c=m;m+=88;var d,e=c+36,f=c+44,g=c>>2,h=c|0;p[h>>2]=0;p[h+4>>2]=0;var h=c+8|0,i=sd(16384);p[h>>2]=i;p[g+3]=0;p[g+4]=0;p[g+5]=0;p[g+6]=-1;p[g+7]=1;n[c+32|0]=0;for(var h=e+4|0,i=e+5|0,j=c|0,o=c+12|0,g=f+16|0,u=0,q=0,t=1;;){d=-p[c+12>>2]|0;var s=0>(d|0)?-1:0,B=c|0;p[B>>2]=d;p[B+4>>2]=s;for(d=0;6>(d|0);){if(Wc(c)){break}s=Xc(c);n[e+d|0]=s;d=d+1|0}if(Wc(c)){if(!t){d=41;break}Yc(K.wa|0);var v=1;d=45;break}a:{d=K.z|0;for(s=0;4>s;s++){var B=n[(e|0)+s],y=n[d+s];if(B!=y){d=B>y?1:-1;break a}}d=0}if(0!=(d|0)){if(!t){d=41;break}Yc(K.xa|0);v=2;d=45;break}s=w[h];if(2<=(s&255)){if(-1>=(p[xe>>2]|0)){v=2;d=45;break}Yc(0);v=s&255;ye(p[p[ve>>2]+12>>2],K.M|0,(z=m,m+=4,p[z>>2]=v,z));v=2;d=45;break}y=Qe(n[i]);if(536866816<(y-4096|0)>>>0){Yc(K.N|0);v=2;d=45;break}d=p[xe>>2];d=1<(d|0)?25:1!=(d|0)|t^1?27:25;if(25==d&&(Yc(0),1<(p[xe>>2]|0))){for(var t=p[p[ve>>2]+12>>2],B=0>(y|0)?-1:0,A=We|0,r=0;8>(r|0);){var D=-1<(B|0)||-1==(B|0)&&4294967295>>0,L=0-((y>>>0)+4294967296*(B|0))>>>0,H=Math.min(Math.floor((0-((y>>>0)+4294967296*(B|0)))/4294967296),4294967295),L=D?y:L,D=D?B:H;if(!(0<(D|0)||0==(D|0)&&9999>>0)){if(!((0<(D|0)||0==(D|0)&&1023>>0)&(0==(y&1023)&&0==(B&0)))){break}}A=(Yb=((y>>>0)+4294967296*(B|0))/1024,0<=Yb?Math.floor(Yb):Math.ceil(Yb))>>>0;B=Math.min(Math.floor((Yb=((y>>>0)+4294967296*(B|0))/1024,0<=Yb?Math.floor(Yb):Math.ceil(Yb))/4294967296),4294967295);y=A;A=p[Xe+(r<<2)>>2];r=r+1|0}r=Ye|0;B=(z=m,m+=12,p[z>>2]=y,p[z+4>>2]=B,p[z+8>>2]=A,z);B=nf(K.ba|0,B);y=Math.min(B.length,15);for(A=0;A>2]=s,p[z+4>>2]=Ye|0,z))}t=f;s=e;B=c;y=w[Ge]?2:-1;A=t>>2;r=t|0;p[r>>2]=0;p[r+4>>2]=0;D=Qe(n[s+5|0]);p[(t+8|0)>>2]=D;r=t+12|0;H=65536>(D|0)?65536:D;p[r>>2]=H;D=t+16|0;H=sd(-1<(H|0)?H:-1);p[D>>2]=H;p[A+5]=0;p[A+6]=0;p[A+7]=-1;p[A+8]=y;p[(t+36|0)>>2]=n[s+4|0]&255;p[A+10]=B;n[H+(p[r>>2]-1)|0]=0;s=Zc(f);t=Hc(p[j>>2],p[j+4>>2],p[o>>2]);B=t[0];y=t[1];t=(B>>>0)+4294967296*(y|0)+(q>>>0)+4294967296*(u|0)>>>0;u=Math.min(Math.floor(((B>>>0)+4294967296*(y|0)+(q>>>0)+4294967296*(u|0))/4294967296),4294967295);q=x[xe>>2];if(0!=(s|0)){-1<(q|0)&3>(s|0)&&(Yc(0),v=p[p[ve>>2]+12>>2],2==(s|0)?ye(v,K.Q|0,(z=m,m+=8,p[z>>2]=t,p[z+4>>2]=u,z)):ye(v,K.R|0,(z=m,m+=8,p[z>>2]=t,p[z+4>>2]=u,z)));v=p[g>>2];0!=(v|0)&&Re(v);v=2;d=45;break}1<(q|0)&&(q=p[p[ve>>2]+12>>2],a?Se(K.n|0,3,1,q):Se(K.o|0,5,1,q));q=p[g>>2];0!=(q|0)&&Re(q);q=t;t=0}41==d&&(1==(p[xe>>2]|0)&&(v=p[p[ve>>2]+12>>2],a?Se(K.n|0,3,1,v):Se(K.o|0,5,1,v)),v=0);a=p[c+8>>2];0!=(a|0)&&Re(a);m=c;return v}Je.X=1;function Pe(a,c){var d=536866817>(c-4096|0)>>>0;a:do{if(d){var e=je(c-1|0),f=a+5|0;n[f]=e&255;if(4096<(c|0)){for(var g=1<<(e&255),h=g/16|0,i=7;;){if(0>=(i|0)){e=1;break a}if((g-i*h|0)>=(c|0)){break}i=i-1|0}n[f]=(e|i<<5)&255}e=1}else{e=0}}while(0);return e}function of(a){pf(a|0)}function qf(a,c){var d,e=m;m+=56;d=e>>2;var f=p[a>>2],g=a+p[f-8>>2]|0,f=p[f-4>>2];p[d]=c;p[d+1]=a;p[d+2]=rf;p[d+3]=-1;for(var h=e+16|0,i=e+20|0,j=e+24|0,o=e+28|0,u=e+32|0,q=e+40|0,t=(f|0)==(c|0),s=h>>2,B=s+9;s>1]=0;n[h+38]=0;do{if(t){p[d+12]=1,pc[p[p[f>>2]+12>>2]](f,e,g,g,1),s=1!=(p[j>>2]|0)?0:g}else{if(s=e+36|0,pc[p[p[f>>2]+16>>2]](f,e,g,1),s=p[s>>2],0==(s|0)){s=1!=(p[q>>2]|0)?0:1!=(p[o>>2]|0)?0:1!=(p[u>>2]|0)?0:p[i>>2]}else{if(1==(s|0)){if(1!=(p[j>>2]|0)){if(0!=(p[q>>2]|0)){s=0;break}if(1!=(p[o>>2]|0)){s=0;break}if(1!=(p[u>>2]|0)){s=0;break}}s=p[h>>2]}else{s=0}}}}while(0);m=e;return s}qf.X=1;function sf(a,c,d,e){var f=c>>2,g=a|0,h=(g|0)==(p[f+2]|0);a:do{if(h){Ve(c,d,e)}else{if((g|0)==(p[f]|0)){var i=(p[f+4]|0)==(d|0);do{if(!i){var j=c+20|0;if((p[j>>2]|0)!=(d|0)){p[f+8]=e;e=(c+44|0)>>2;if(4==(p[e]|0)){break a}g=c+52|0;n[g]=0;h=c+53|0;n[h]=0;a=p[a+8>>2];pc[p[p[a>>2]+12>>2]](a,c,d,d,1);if(0==(n[h]&1)<<24>>24){var o=0,a=11}else{0==(n[g]&1)<<24>>24?(o=1,a=11):a=15}b:do{if(11==a){p[j>>2]=d;a=c+40|0;p[a>>2]=p[a>>2]+1|0;g=1==(p[f+9]|0);do{if(g){if(2!=(p[f+6]|0)){a=14}else{n[c+54|0]=1;if(o){break b}a=16}}else{a=14}}while(0);if(!(14==a&&o)){p[e]=4;break a}}}while(0);p[e]=3;break a}}}while(0);1==(e|0)&&(p[f+8]=1)}else{j=p[a+8>>2],pc[p[p[j>>2]+16>>2]](j,c,d,e)}}}while(0)}sf.X=1;function nc(a){var c,d=245>a>>>0;do{if(d){var e=11>a>>>0?16:a+11&-8,f=e>>>3;c=x[X>>2];var g=c>>>(f>>>0);if(0!=(g&3|0)){var a=(g&1^1)+f|0,e=a<<1,d=(e<<2)+X+40|0,f=(e+2<<2)+X+40|0,h=x[f>>2],e=h+8|0,g=x[e>>2];(d|0)==(g|0)?p[X>>2]=c&(1<>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[f>>2]=g,p[g+12>>2]=d);c=a<<3;p[h+4>>2]=c|3;c=h+(c|4)|0;p[c>>2]|=1;h=e;c=38;break}if(e>>>0<=x[X+8>>2]>>>0){var i=e;c=30;break}if(0!=(g|0)){var a=2<>>12&16,h=d>>>(a>>>0),d=h>>>5&8,f=h>>>(d>>>0),h=f>>>2&4,g=f>>>(h>>>0),f=g>>>1&2,g=g>>>(f>>>0),j=g>>>1&1,h=(d|a|h|f|j)+(g>>>(j>>>0))|0,a=h<<1,f=(a<<2)+X+40|0,g=(a+2<<2)+X+40|0,d=x[g>>2],a=d+8|0,j=x[a>>2];(f|0)==(j|0)?p[X>>2]=c&(1<>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[g>>2]=j,p[j+12>>2]=f);h<<=3;c=h-e|0;p[d+4>>2]=e|3;f=d;d=f+e|0;p[f+(e|4)>>2]=c|1;p[f+h>>2]=c;j=x[X+8>>2];0!=(j|0)&&(e=p[X+20>>2],f=j>>>2&1073741822,h=(f<<2)+X+40|0,g=x[X>>2],j=1<<(j>>>3),0==(g&j|0)?(p[X>>2]=g|j,g=h,f=(f+2<<2)+X+40|0):(f=(f+2<<2)+X+40|0,g=x[f>>2],g>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"))),p[f>>2]=e,p[g+12>>2]=e,p[(e+8|0)>>2]=g,p[(e+12|0)>>2]=h);p[X+8>>2]=c;p[X+20>>2]=d;h=a;c=38;break}if(0==(p[X+4>>2]|0)){i=e;c=30;break}c=tf(e);if(0==(c|0)){i=e;c=30;break}h=c}else{if(4294967231>>0){i=-1;c=30;break}c=a+11&-8;if(0==(p[X+4>>2]|0)){i=c;c=30;break}e=uf(c);if(0==(e|0)){i=c;c=30;break}h=e}c=38}while(0);30==c&&(e=x[X+8>>2],i>>>0>e>>>0?(c=x[X+12>>2],i>>>0>>0?(c=c-i|0,p[X+12>>2]=c,e=x[X+24>>2],p[X+24>>2]=e+i|0,p[i+(e+4)>>2]=c|1,p[e+4>>2]=i|3,h=e+8|0):h=vf(i)):(a=e-i|0,c=x[X+20>>2],15>>0?(p[X+20>>2]=c+i|0,p[X+8>>2]=a,p[i+(c+4)>>2]=a|1,p[c+e>>2]=a,p[c+4>>2]=i|3):(p[X+8>>2]=0,p[X+20>>2]=0,p[c+4>>2]=e|3,i=e+(c+4)|0,p[i>>2]|=1),h=c+8|0));return h}Module._malloc=nc;nc.X=1;function tf(a){var c,d,e=p[X+4>>2],f=(e&-e)-1|0,e=f>>>12&16,g=f>>>(e>>>0),f=g>>>5&8;d=g>>>(f>>>0);var g=d>>>2&4,h=d>>>(g>>>0);d=h>>>1&2;var h=h>>>(d>>>0),i=h>>>1&1,e=f=x[X+((f|e|g|d|i)+(h>>>(i>>>0))<<2)+304>>2];d=e>>2;f=(p[f+4>>2]&-8)-a|0;a:for(;;){for(g=e;;){h=p[g+16>>2];if(0==(h|0)){if(g=p[g+20>>2],0==(g|0)){break a}}else{g=h}h=(p[g+4>>2]&-8)-a|0;if(h>>>0>>0){e=g;d=e>>2;f=h;continue a}}}var h=e,j=x[X+16>>2],i=h>>>0>>0;do{if(!i){var o=h+a|0,g=o;if(h>>>0>>0){var i=x[d+6],o=x[d+3],u=(o|0)==(e|0);do{if(u){c=e+20|0;var q=p[c>>2];if(0==(q|0)&&(c=e+16|0,q=p[c>>2],0==(q|0))){q=0;c=q>>2;break}for(;;){var t=q+20|0,s=p[t>>2];if(0==(s|0)&&(t=q+16|0,s=x[t>>2],0==(s|0))){break}c=t;q=s}c>>>0>>0&&(Z(),b("Reached an unreachable!"));p[c>>2]=0}else{c=x[d+2],c>>>0>>0&&(Z(),b("Reached an unreachable!")),p[c+12>>2]=o,p[o+8>>2]=c,q=o}c=q>>2}while(0);j=0==(i|0);a:do{if(!j){o=e+28|0;u=(p[o>>2]<<2)+X+304|0;t=(e|0)==(p[u>>2]|0);do{if(t){p[u>>2]=q;if(0!=(q|0)){break}p[X+4>>2]&=1<>2]^-1;break a}i>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));s=i+16|0;(p[s>>2]|0)==(e|0)?p[s>>2]=q:p[i+20>>2]=q;if(0==(q|0)){break a}}while(0);q>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));p[c+6]=i;o=x[d+4];0!=(o|0)&&(o>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[c+4]=o,p[o+24>>2]=q);o=x[d+5];0!=(o|0)&&(o>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[c+5]=o,p[o+24>>2]=q)}}while(0);16>f>>>0?(a=f+a|0,p[d+1]=a|3,a=a+(h+4)|0,p[a>>2]|=1):(p[d+1]=a|3,p[a+(h+4)>>2]=f|1,p[h+f+a>>2]=f,j=x[X+8>>2],0!=(j|0)&&(a=x[X+20>>2],h=j>>>2&1073741822,d=(h<<2)+X+40|0,i=x[X>>2],j=1<<(j>>>3),0==(i&j|0)?(p[X>>2]=i|j,i=d,h=(h+2<<2)+X+40|0):(h=(h+2<<2)+X+40|0,i=x[h>>2],i>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"))),p[h>>2]=a,p[i+12>>2]=a,p[a+8>>2]=i,p[a+12>>2]=d),p[X+8>>2]=f,p[X+20>>2]=g);return e+8|0}}}while(0);Z();b("Reached an unreachable!")}tf.X=1;function vf(a){var c,d;0==(p[wf>>2]|0)&&xf();var e=0==(p[X+440>>2]&4|0);do{if(e){d=p[X+24>>2];if(0==(d|0)){d=6}else{if(d=yf(d),0==(d|0)){d=6}else{var f=p[wf+8>>2],f=a+47-p[X+12>>2]+f&-f;if(2147483647>f>>>0){var g=zf(f);if((g|0)==(p[d>>2]+p[d+4>>2]|0)){var h=g,i=f;c=g;d=13}else{var j=g,o=f;d=15}}else{d=14}}}if(6==d){if(d=zf(0),-1==(d|0)){d=14}else{var f=p[wf+8>>2],f=f+(a+47)&-f,g=d,u=p[wf+4>>2],q=u-1|0,f=0==(q&g|0)?f:f-g+(q+g&-u)|0;2147483647>f>>>0?(g=zf(f),(g|0)==(d|0)?(h=d,i=f,c=g,d=13):(j=g,o=f,d=15)):d=14}}if(13==d){if(-1!=(h|0)){var t=i,s=h;d=26;break}j=c;o=i}else{if(14==d){p[X+440>>2]|=4;d=23;break}}d=-o|0;if(-1!=(j|0)&2147483647>o>>>0){if(o>>>0<(a+48|0)>>>0){f=p[wf+8>>2],f=a+47-o+f&-f,2147483647>f>>>0?-1==(zf(f)|0)?(zf(d),d=22):(B=f+o|0,d=21):(B=o,d=21)}else{var B=o;d=21}}else{B=o,d=21}21==d&&-1!=(j|0)?(t=B,s=j,d=26):(p[X+440>>2]|=4,d=23)}else{d=23}}while(0);23==d&&(e=p[wf+8>>2],e=e+(a+47)&-e,2147483647>e>>>0?(e=zf(e),h=zf(0),-1!=(h|0)&-1!=(e|0)&e>>>0>>0?(h=h-e|0,h>>>0<=(a+40|0)>>>0|-1==(e|0)?d=49:(t=h,s=e,d=26)):d=49):d=49);a:do{if(26==d){e=p[X+432>>2]+t|0;p[X+432>>2]=e;e>>>0>x[X+436>>2]>>>0&&(p[X+436>>2]=e);e=x[X+24>>2];h=0==(e|0);b:do{if(h){i=x[X+16>>2];0==(i|0)|s>>>0>>0&&(p[X+16>>2]=s);p[X+444>>2]=s;p[X+448>>2]=t;p[X+456>>2]=0;p[X+36>>2]=p[wf>>2];p[X+32>>2]=-1;for(i=0;!(c=i<<1,j=(c<<2)+X+40|0,p[X+(c+3<<2)+40>>2]=j,p[X+(c+2<<2)+40>>2]=j,i=i+1|0,32==(i|0));){}Af(s,t-40|0)}else{j=X+444|0;for(c=j>>2;0!=(j|0);){i=x[c];j=j+4|0;o=x[j>>2];B=i+o|0;if((s|0)==(B|0)){if(0!=(p[c+3]&8|0)){break}c=e;if(!(c>>>0>=i>>>0&c>>>0>>0)){break}p[j>>2]=o+t|0;Af(p[X+24>>2],p[X+12>>2]+t|0);break b}j=p[c+2];c=j>>2}s>>>0>2]>>>0&&(p[X+16>>2]=s);c=s+t|0;for(j=X+444|0;0!=(j|0);){o=j|0;i=x[o>>2];if((i|0)==(c|0)){if(0!=(p[j+12>>2]&8|0)){break}p[o>>2]=s;var v=j+4|0;p[v>>2]=p[v>>2]+t|0;v=Bf(s,i,a);d=50;break a}j=p[j+8>>2]}Cf(s,t)}}while(0);e=x[X+12>>2];e>>>0>a>>>0?(v=e-a|0,p[X+12>>2]=v,h=e=x[X+24>>2],p[X+24>>2]=h+a|0,p[a+(h+4)>>2]=v|1,p[e+4>>2]=a|3,v=e+8|0,d=50):d=49}}while(0);49==d&&(p[Pc>>2]=12,v=0);return v}vf.X=1;function uf(a){var c,d,e,f,g,h=a>>2,i=-a|0,j=a>>>8;if(0==(j|0)){var o=0}else{if(16777215>>0){o=31}else{var u=(j+1048320|0)>>>16&8,q=j<>>16&4,s=q<>>16&2,v=14-(t|u|B)+(s<>>15)|0,o=a>>>((v+7|0)>>>0)&1|v<<1}}var y=x[X+(o<<2)+304>>2],A=0==(y|0);a:do{if(A){var r=0,D=i,L=0}else{var H=31==(o|0)?0:25-(o>>>1)|0,P=0,J=i,G=y;g=G>>2;for(var I=a<>>0>>0){if((O|0)==(a|0)){r=G;D=N;L=G;break a}var Q=G,$=N}else{Q=P,$=J}var ha=x[g+5],ba=x[((I>>>31<<2)+16>>2)+g],R=0==(ha|0)|(ha|0)==(ba|0)?M:ha;if(0==(ba|0)){r=Q;D=$;L=R;break a}P=Q;J=$;G=ba;g=G>>2;I<<=1;M=R}}}while(0);if(0==(L|0)&0==(r|0)){var Sa=2<>2]&(Sa|-Sa);if(0==(fa|0)){var U=L}else{var qa=(fa&-fa)-1|0,Aa=qa>>>12&16,da=qa>>>(Aa>>>0),Ea=da>>>5&8,ra=da>>>(Ea>>>0),pb=ra>>>2&4,bb=ra>>>(pb>>>0),Eb=bb>>>1&2,sa=bb>>>(Eb>>>0),Fa=sa>>>1&1,U=p[X+((Ea|Aa|pb|Eb|Fa)+(sa>>>(Fa>>>0))<<2)+304>>2]}}else{U=L}var Zb=0==(U|0);a:do{if(Zb){var ga=D,ta=r;f=ta>>2}else{var ia=U;e=ia>>2;for(var La=D,cb=r;;){var db=(p[e+1]&-8)-a|0,Fb=db>>>0>>0,ja=Fb?db:La,rb=Fb?ia:cb,Ga=x[e+4];if(0!=(Ga|0)){ia=Ga}else{var sb=x[e+5];if(0==(sb|0)){ga=ja;ta=rb;f=ta>>2;break a}ia=sb}e=ia>>2;La=ja;cb=rb}}}while(0);var tb=0==(ta|0);a:do{if(tb){var Ta=0}else{if(ga>>>0<(p[X+8>>2]-a|0)>>>0){var Ma=ta;d=Ma>>2;var Ua=x[X+16>>2],ub=Ma>>>0>>0;do{if(!ub){var eb=Ma+a|0,vb=eb;if(Ma>>>0>>0){var Na=x[f+6],Va=x[f+3],Nb=(Va|0)==(ta|0);do{if(Nb){var Gb=ta+20|0,Hb=p[Gb>>2];if(0==(Hb|0)){var Ib=ta+16|0,Wa=p[Ib>>2];if(0==(Wa|0)){var Y=0;c=Y>>2;break}var na=Ib,ka=Wa}else{na=Gb,ka=Hb}for(;;){var ua=ka+20|0,va=p[ua>>2];if(0!=(va|0)){na=ua,ka=va}else{var fb=ka+16|0,Oa=x[fb>>2];if(0==(Oa|0)){break}na=fb;ka=Oa}}na>>>0>>0&&(Z(),b("Reached an unreachable!"));p[na>>2]=0;Y=ka}else{var gb=x[f+2];gb>>>0>>0&&(Z(),b("Reached an unreachable!"));p[gb+12>>2]=Va;p[Va+8>>2]=gb;Y=Va}c=Y>>2}while(0);var Ob=0==(Na|0);b:do{if(!Ob){var S=ta+28|0,oa=(p[S>>2]<<2)+X+304|0,Xa=(ta|0)==(p[oa>>2]|0);do{if(Xa){p[oa>>2]=Y;if(0!=(Y|0)){break}p[X+4>>2]&=1<>2]^-1;break b}Na>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));var la=Na+16|0;(p[la>>2]|0)==(ta|0)?p[la>>2]=Y:p[Na+20>>2]=Y;if(0==(Y|0)){break b}}while(0);Y>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));p[c+6]=Na;var wa=x[f+4];0!=(wa|0)&&(wa>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[c+4]=wa,p[wa+24>>2]=Y);var ma=x[f+5];0!=(ma|0)&&(ma>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[c+5]=ma,p[ma+24>>2]=Y)}}while(0);var Ya=16>ga>>>0;b:do{if(Ya){var Jb=ga+a|0;p[f+1]=Jb|3;var wb=Jb+(Ma+4)|0;p[wb>>2]|=1}else{if(p[f+1]=a|3,p[h+(d+1)]=ga|1,p[(ga>>2)+d+h]=ga,256>ga>>>0){var Za=ga>>>2&1073741822,Ha=(Za<<2)+X+40|0,Ia=x[X>>2],Pa=1<<(ga>>>3);if(0==(Ia&Pa|0)){p[X>>2]=Ia|Pa;var hb=Ha,ib=(Za+2<<2)+X+40|0}else{var Qa=(Za+2<<2)+X+40|0,xa=x[Qa>>2];xa>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));hb=xa;ib=Qa}p[ib>>2]=vb;p[hb+12>>2]=vb;p[h+(d+2)]=hb;p[h+(d+3)]=Ha}else{var Ja=eb,jb=ga>>>8;if(0==(jb|0)){var Ba=0}else{if(16777215>>0){Ba=31}else{var $a=(jb+1048320|0)>>>16&8,xb=jb<<$a,kb=(xb+520192|0)>>>16&4,yb=xb<>>16&2,Lb=14-(kb|$a|Kb)+(yb<>>15)|0,Ba=ga>>>((Lb+7|0)>>>0)&1|Lb<<1}}var Pb=(Ba<<2)+X+304|0;p[h+(d+7)]=Ba;var Qb=a+(Ma+16)|0;p[h+(d+5)]=0;p[Qb>>2]=0;var Ka=p[X+4>>2],gc=1<>2]=Ka|gc,p[Pb>>2]=Ja,p[h+(d+6)]=Pb,p[h+(d+3)]=Ja,p[h+(d+2)]=Ja}else{for(var Tb=ga<<(31==(Ba|0)?0:25-(Ba>>>1)|0),lb=p[Pb>>2];;){if((p[lb+4>>2]&-8|0)==(ga|0)){var hc=lb+8|0,mb=x[hc>>2],Mb=x[X+16>>2],lc=lb>>>0>>0;do{if(!lc&&mb>>>0>=Mb>>>0){p[mb+12>>2]=Ja;p[hc>>2]=Ja;p[h+(d+2)]=mb;p[h+(d+3)]=lb;p[h+(d+6)]=0;break b}}while(0);Z();b("Reached an unreachable!")}var $b=(Tb>>>31<<2)+lb+16|0,mc=x[$b>>2];if(0==(mc|0)){if($b>>>0>=x[X+16>>2]>>>0){p[$b>>2]=Ja;p[h+(d+6)]=lb;p[h+(d+3)]=Ja;p[h+(d+2)]=Ja;break b}Z();b("Reached an unreachable!")}Tb<<=1;lb=mc}}}}}while(0);Ta=ta+8|0;break a}}}while(0);Z();b("Reached an unreachable!")}Ta=0}}while(0);return Ta}uf.X=1;function Df(){var a;0==(p[wf>>2]|0)&&xf();var c=x[X+24>>2],d=0==(c|0);a:do{if(!d){var e=x[X+12>>2],f=40>>0;do{if(f){var g=x[wf+8>>2],h=(Math.floor(((e-41+g|0)>>>0)/(g>>>0))-1)*g|0,i=yf(c);if(0==(p[i+12>>2]&8|0)){var j=zf(0);a=(i+4|0)>>2;if((j|0)==(p[i>>2]+p[a]|0)&&(h=zf(-(2147483646>>0?-2147483648-g|0:h)|0),g=zf(0),-1!=(h|0)&g>>>0>>0&&(h=j-g|0,(j|0)!=(g|0)))){p[a]=p[a]-h|0;p[X+432>>2]=p[X+432>>2]-h|0;Af(p[X+24>>2],p[X+12>>2]-h|0);break a}}}}while(0);x[X+12>>2]>>>0>x[X+28>>2]>>>0&&(p[X+28>>2]=-1)}}while(0)}Df.X=1;function Le(a){var c,d,e,f,g,h,i=a>>2,j,o=0==(a|0);a:do{if(!o){var u=a-8|0,q=u,t=x[X+16>>2],s=u>>>0>>0;b:do{if(!s){var B=x[a-4>>2],v=B&3;if(1!=(v|0)){var y=B&-8;h=y>>2;var A=a+(y-8)|0,r=A,D=0==(B&1|0);c:do{if(D){var L=x[u>>2];if(0==(v|0)){break a}var H=-8-L|0;g=H>>2;var P=a+H|0,J=P,G=L+y|0;if(P>>>0>>0){break b}if((J|0)==(p[X+20>>2]|0)){f=(a+(y-4)|0)>>2;if(3!=(p[f]&3|0)){var I=J;e=I>>2;var M=G;break}p[X+8>>2]=G;p[f]&=-2;p[g+(i+1)]=G|1;p[A>>2]=G;break a}if(256>L>>>0){var O=x[g+(i+2)],N=x[g+(i+3)];if((O|0)==(N|0)){p[X>>2]&=1<<(L>>>3)^-1,I=J,e=I>>2,M=G}else{var Q=((L>>>2&1073741822)<<2)+X+40|0,$=(O|0)!=(Q|0)&O>>>0>>0;do{if(!$&&(N|0)==(Q|0)|N>>>0>=t>>>0){p[O+12>>2]=N;p[N+8>>2]=O;I=J;e=I>>2;M=G;break c}}while(0);Z();b("Reached an unreachable!")}}else{var ha=P,ba=x[g+(i+6)],R=x[g+(i+3)],Sa=(R|0)==(ha|0);do{if(Sa){var fa=H+(a+20)|0,U=p[fa>>2];if(0==(U|0)){var qa=H+(a+16)|0,Aa=p[qa>>2];if(0==(Aa|0)){var da=0;d=da>>2;break}var Ea=qa,ra=Aa}else{Ea=fa,ra=U,j=21}for(;;){var pb=ra+20|0,bb=p[pb>>2];if(0!=(bb|0)){Ea=pb,ra=bb}else{var Eb=ra+16|0,sa=x[Eb>>2];if(0==(sa|0)){break}Ea=Eb;ra=sa}}Ea>>>0>>0&&(Z(),b("Reached an unreachable!"));p[Ea>>2]=0;da=ra}else{var Fa=x[g+(i+2)];Fa>>>0>>0&&(Z(),b("Reached an unreachable!"));p[Fa+12>>2]=R;p[R+8>>2]=Fa;da=R}d=da>>2}while(0);if(0!=(ba|0)){var Zb=H+(a+28)|0,ga=(p[Zb>>2]<<2)+X+304|0,ta=(ha|0)==(p[ga>>2]|0);do{if(ta){p[ga>>2]=da;if(0!=(da|0)){break}p[X+4>>2]&=1<>2]^-1;I=J;e=I>>2;M=G;break c}ba>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));var ia=ba+16|0;(p[ia>>2]|0)==(ha|0)?p[ia>>2]=da:p[ba+20>>2]=da;if(0==(da|0)){I=J;e=I>>2;M=G;break c}}while(0);da>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));p[d+6]=ba;var La=x[g+(i+4)];0!=(La|0)&&(La>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[d+4]=La,p[La+24>>2]=da);var cb=x[g+(i+5)];0!=(cb|0)&&(cb>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[d+5]=cb,p[cb+24>>2]=da)}I=J;e=I>>2;M=G}}else{I=q,e=I>>2,M=y}}while(0);var db=I;if(db>>>0>>0){var Fb=a+(y-4)|0,ja=x[Fb>>2];if(0!=(ja&1|0)){var rb=0==(ja&2|0);do{if(rb){if((r|0)==(p[X+24>>2]|0)){var Ga=p[X+12>>2]+M|0;p[X+12>>2]=Ga;p[X+24>>2]=I;p[e+1]=Ga|1;(I|0)==(p[X+20>>2]|0)&&(p[X+20>>2]=0,p[X+8>>2]=0);if(Ga>>>0<=x[X+28>>2]>>>0){break a}Df();break a}if((r|0)==(p[X+20>>2]|0)){var sb=p[X+8>>2]+M|0;p[X+8>>2]=sb;p[X+20>>2]=I;p[e+1]=sb|1;p[(db+sb|0)>>2]=sb;break a}var tb=(ja&-8)+M|0,Ta=ja>>>3,Ma=256>ja>>>0;c:do{if(Ma){var Ua=x[i+h],ub=x[((y|4)>>2)+i];if((Ua|0)==(ub|0)){p[X>>2]&=1<>>2&1073741822)<<2)+X+40|0;j=(Ua|0)==(eb|0)?63:Ua>>>0>2]>>>0?66:63;do{if(63==j&&!((ub|0)!=(eb|0)&&ub>>>0>2]>>>0)){p[Ua+12>>2]=ub;p[ub+8>>2]=Ua;break c}}while(0);Z();b("Reached an unreachable!")}}else{var vb=A,Na=x[h+(i+4)],Va=x[((y|4)>>2)+i],Nb=(Va|0)==(vb|0);do{if(Nb){var Gb=y+(a+12)|0,Hb=p[Gb>>2];if(0==(Hb|0)){var Ib=y+(a+8)|0,Wa=p[Ib>>2];if(0==(Wa|0)){var Y=0;c=Y>>2;break}var na=Ib,ka=Wa}else{na=Gb,ka=Hb,j=73}for(;;){var ua=ka+20|0,va=p[ua>>2];if(0!=(va|0)){na=ua,ka=va}else{var fb=ka+16|0,Oa=x[fb>>2];if(0==(Oa|0)){break}na=fb;ka=Oa}}na>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));p[na>>2]=0;Y=ka}else{var gb=x[i+h];gb>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));p[gb+12>>2]=Va;p[Va+8>>2]=gb;Y=Va}c=Y>>2}while(0);if(0!=(Na|0)){var Ob=y+(a+20)|0,S=(p[Ob>>2]<<2)+X+304|0,oa=(vb|0)==(p[S>>2]|0);do{if(oa){p[S>>2]=Y;if(0!=(Y|0)){break}p[X+4>>2]&=1<>2]^-1;break c}Na>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));var Xa=Na+16|0;(p[Xa>>2]|0)==(vb|0)?p[Xa>>2]=Y:p[Na+20>>2]=Y;if(0==(Y|0)){break c}}while(0);Y>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));p[c+6]=Na;var la=x[h+(i+2)];0!=(la|0)&&(la>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[c+4]=la,p[la+24>>2]=Y);var wa=x[h+(i+3)];0!=(wa|0)&&(wa>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[c+5]=wa,p[wa+24>>2]=Y)}}}while(0);p[e+1]=tb|1;p[db+tb>>2]=tb;if((I|0)!=(p[X+20>>2]|0)){var ma=tb}else{p[X+8>>2]=tb;break a}}else{p[Fb>>2]=ja&-2,p[e+1]=M|1,ma=p[db+M>>2]=M}}while(0);if(256>ma>>>0){var Ya=ma>>>2&1073741822,Jb=(Ya<<2)+X+40|0,wb=x[X>>2],Za=1<<(ma>>>3);if(0==(wb&Za|0)){p[X>>2]=wb|Za;var Ha=Jb,Ia=(Ya+2<<2)+X+40|0}else{var Pa=(Ya+2<<2)+X+40|0,hb=x[Pa>>2];hb>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));Ha=hb;Ia=Pa}p[Ia>>2]=I;p[Ha+12>>2]=I;p[e+2]=Ha;p[e+3]=Jb;break a}var ib=I,Qa=ma>>>8;if(0==(Qa|0)){var xa=0}else{if(16777215>>0){xa=31}else{var Ja=(Qa+1048320|0)>>>16&8,jb=Qa<>>16&4,$a=jb<>>16&2,kb=14-(Ba|Ja|xb)+($a<>>15)|0,xa=ma>>>((kb+7|0)>>>0)&1|kb<<1}}var yb=(xa<<2)+X+304|0;p[e+7]=xa;p[e+5]=0;p[e+4]=0;var Kb=p[X+4>>2],Lb=1<>2]=Kb|Lb,p[yb>>2]=ib,p[e+6]=yb,p[e+3]=I,p[e+2]=I}else{for(var Qb=ma<<(31==(xa|0)?0:25-(xa>>>1)|0),Ka=p[yb>>2];;){if((p[Ka+4>>2]&-8|0)==(ma|0)){var gc=Ka+8|0,Tb=x[gc>>2],lb=x[X+16>>2],hc=Ka>>>0>>0;do{if(!hc&&Tb>>>0>=lb>>>0){p[Tb+12>>2]=ib;p[gc>>2]=ib;p[e+2]=Tb;p[e+3]=Ka;p[e+6]=0;break c}}while(0);Z();b("Reached an unreachable!")}var mb=(Qb>>>31<<2)+Ka+16|0,Mb=x[mb>>2];if(0==(Mb|0)){if(mb>>>0>=x[X+16>>2]>>>0){p[mb>>2]=ib;p[e+6]=Ka;p[e+3]=I;p[e+2]=I;break c}Z();b("Reached an unreachable!")}Qb<<=1;Ka=Mb}}}while(0);var lc=p[X+32>>2]-1|0;p[X+32>>2]=lc;if(0!=(lc|0)){break a}var $b=p[X+452>>2],mc=0==($b|0);c:do{if(!mc){for(var cd=$b;;){var Ab=p[cd+8>>2];if(0==(Ab|0)){break c}cd=Ab}}}while(0);p[X+32>>2]=-1;break a}}}}}while(0);Z();b("Reached an unreachable!")}}while(0)}Module._free=Le;Le.X=1;function yf(a){var c,d=X+444|0;for(c=d>>2;;){var e=x[c];if(e>>>0<=a>>>0&&(e+p[c+1]|0)>>>0>a>>>0){var f=d;break}c=x[c+2];if(0==(c|0)){f=0;break}d=c;c=d>>2}return f}function Af(a,c){var d=a+8|0,d=0==(d&7|0)?0:-d&7,e=c-d|0;p[X+24>>2]=a+d|0;p[X+12>>2]=e;p[d+(a+4)>>2]=e|1;p[c+(a+4)>>2]=40;p[X+28>>2]=p[wf+16>>2]}function ud(a,c){var d,e,f,g=4294967231>>0;a:do{if(g){p[Pc>>2]=12;var h=0}else{f=d=a-8|0;e=(a-4|0)>>2;var i=x[e],j=i&-8,o=j-8|0,u=a+o|0,q=d>>>0>2]>>>0;do{if(!q){var t=i&3;if(1!=(t|0)&-8<(o|0)&&(d=(a+(j-4)|0)>>2,0!=(p[d]&1|0))){g=11>c>>>0?16:c+11&-8;if(0==(t|0)){var s=0,B,i=p[f+4>>2]&-8;B=256>g>>>0?0:i>>>0>=(g+4|0)>>>0&&(i-g|0)>>>0<=p[wf+8>>2]<<1>>>0?f:0;f=17}else{j>>>0>>0?(u|0)!=(p[X+24>>2]|0)?f=21:(d=p[X+12>>2]+j|0,d>>>0>g>>>0?(s=d-g|0,B=a+(g-8)|0,p[e]=g|i&1|2,p[a+(g-4)>>2]=s|1,p[X+24>>2]=B,p[X+12>>2]=s,s=0,B=f,f=17):f=21):(s=j-g|0,15>>0?(p[e]=g|i&1|2,p[a+(g-4)>>2]=s|3,p[d]|=1,s=a+g|0):s=0,B=f,f=17)}do{if(17==f&&0!=(B|0)){0!=(s|0)&&Le(s);h=B+8|0;break a}}while(0);f=nc(c);if(0==(f|0)){h=0;break a}e=j-(0==(p[e]&3|0)?8:4)|0;qd(f,a,e>>>0>>0?e:c);Le(a);h=f;break a}}}while(0);Z();b("Reached an unreachable!")}}while(0);return h}ud.X=1;function xf(){if(0==(p[wf>>2]|0)){var a=Ef();0==(a-1&a|0)?(p[wf+8>>2]=a,p[wf+4>>2]=a,p[wf+12>>2]=-1,p[wf+16>>2]=2097152,p[wf+20>>2]=0,p[X+440>>2]=0,p[wf>>2]=Math.floor(Date.now()/1e3)&-16^1431655768):(Z(),b("Reached an unreachable!"))}}function Bf(a,c,d){var e,f,g,h=c>>2,i=a>>2,j,o=a+8|0,o=0==(o&7|0)?0:-o&7;f=c+8|0;var u=0==(f&7|0)?0:-f&7;g=u>>2;var q=c+u|0,t=o+d|0;f=t>>2;var s=a+t|0,B=q-(a+o)-d|0;p[(o+4>>2)+i]=d|3;d=(q|0)==(p[X+24>>2]|0);a:do{if(d){var v=p[X+12>>2]+B|0;p[X+12>>2]=v;p[X+24>>2]=s;p[f+(i+1)]=v|1}else{if((q|0)==(p[X+20>>2]|0)){v=p[X+8>>2]+B|0,p[X+8>>2]=v,p[X+20>>2]=s,p[f+(i+1)]=v|1,p[(a+v+t|0)>>2]=v}else{var y=x[g+(h+1)];if(1==(y&3|0)){var v=y&-8,A=y>>>3,r=256>y>>>0;b:do{if(r){var D=x[((u|8)>>2)+h],L=x[g+(h+3)];if((D|0)==(L|0)){p[X>>2]&=1<>>2&1073741822)<<2)+X+40|0;j=(D|0)==(H|0)?15:D>>>0>2]>>>0?18:15;do{if(15==j&&!((L|0)!=(H|0)&&L>>>0>2]>>>0)){p[D+12>>2]=L;p[L+8>>2]=D;break b}}while(0);Z();b("Reached an unreachable!")}}else{j=q;D=x[((u|24)>>2)+h];L=x[g+(h+3)];H=(L|0)==(j|0);do{if(H){e=u|16;var P=e+(c+4)|0,J=p[P>>2];if(0==(J|0)){if(e=c+e|0,J=p[e>>2],0==(J|0)){J=0;e=J>>2;break}}else{e=P}for(;;){var P=J+20|0,G=p[P>>2];if(0==(G|0)&&(P=J+16|0,G=x[P>>2],0==(G|0))){break}e=P;J=G}e>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));p[e>>2]=0}else{e=x[((u|8)>>2)+h],e>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[e+12>>2]=L,p[L+8>>2]=e,J=L}e=J>>2}while(0);if(0!=(D|0)){L=u+(c+28)|0;H=(p[L>>2]<<2)+X+304|0;P=(j|0)==(p[H>>2]|0);do{if(P){p[H>>2]=J;if(0!=(J|0)){break}p[X+4>>2]&=1<>2]^-1;break b}D>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));G=D+16|0;(p[G>>2]|0)==(j|0)?p[G>>2]=J:p[D+20>>2]=J;if(0==(J|0)){break b}}while(0);J>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"));p[e+6]=D;j=u|16;D=x[(j>>2)+h];0!=(D|0)&&(D>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[e+4]=D,p[D+24>>2]=J);j=x[(j+4>>2)+h];0!=(j|0)&&(j>>>0>2]>>>0&&(Z(),b("Reached an unreachable!")),p[e+5]=j,p[j+24>>2]=J)}}}while(0);y=c+(v|u)|0;v=v+B|0}else{y=q,v=B}y=y+4|0;p[y>>2]&=-2;p[f+(i+1)]=v|1;p[(v>>2)+i+f]=v;if(256>v>>>0){A=v>>>2&1073741822,y=(A<<2)+X+40|0,r=x[X>>2],v=1<<(v>>>3),0==(r&v|0)?(p[X>>2]=r|v,v=y,A=(A+2<<2)+X+40|0):(A=(A+2<<2)+X+40|0,v=x[A>>2],v>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"))),p[A>>2]=s,p[v+12>>2]=s,p[f+(i+2)]=v,p[f+(i+3)]=y}else{if(y=s,r=v>>>8,0==(r|0)?A=0:16777215>>0?A=31:(A=(r+1048320|0)>>>16&8,j=r<>>16&4,j<<=r,D=(j+245760|0)>>>16&2,A=14-(r|A|D)+(j<>>15)|0,A=v>>>((A+7|0)>>>0)&1|A<<1),r=(A<<2)+X+304|0,p[f+(i+7)]=A,j=t+(a+16)|0,p[f+(i+5)]=0,p[j>>2]=0,j=p[X+4>>2],D=1<>2]=j|D,p[r>>2]=y,p[f+(i+6)]=r,p[f+(i+3)]=y,p[f+(i+2)]=y}else{A=v<<(31==(A|0)?0:25-(A>>>1)|0);for(r=p[r>>2];;){if((p[r+4>>2]&-8|0)==(v|0)){j=r+8|0;D=x[j>>2];L=x[X+16>>2];H=r>>>0>>0;do{if(!H&&D>>>0>=L>>>0){p[D+12>>2]=y;p[j>>2]=y;p[f+(i+2)]=D;p[f+(i+3)]=r;p[f+(i+6)]=0;break a}}while(0);Z();b("Reached an unreachable!")}j=(A>>>31<<2)+r+16|0;D=x[j>>2];if(0==(D|0)){if(j>>>0>=x[X+16>>2]>>>0){p[j>>2]=y;p[f+(i+6)]=r;p[f+(i+3)]=y;p[f+(i+2)]=y;break a}Z();b("Reached an unreachable!")}A<<=1;r=D}}}}}}while(0);return a+(o|8)|0}Bf.X=1;function Re(a){0!=(a|0)&&Le(a)}function Ff(a){Gf(a|0)}function Cf(a,c){var d,e,f=x[X+24>>2];e=f>>2;var g=yf(f),h=p[g>>2];d=p[g+4>>2];var g=h+d|0,i=h+(d-39)|0,h=h+(d-47)+(0==(i&7|0)?0:-i&7)|0,h=h>>>0<(f+16|0)>>>0?f:h,i=h+8|0;d=i>>2;Af(a,c-40|0);p[(h+4|0)>>2]=27;p[d]=p[X+444>>2];p[d+1]=p[X+448>>2];p[d+2]=p[X+452>>2];p[d+3]=p[X+456>>2];p[X+444>>2]=a;p[X+448>>2]=c;p[X+456>>2]=0;p[X+452>>2]=i;d=h+28|0;p[d>>2]=7;i=(h+32|0)>>>0>>0;a:do{if(i){for(var j=d;;){var o=j+4|0;p[o>>2]=7;if((j+8|0)>>>0>=g>>>0){break a}j=o}}}while(0);g=(h|0)==(f|0);a:do{if(!g){if(d=h-f|0,i=f+d|0,j=d+(f+4)|0,p[j>>2]&=-2,p[e+1]=d|1,p[i>>2]=d,256>d>>>0){j=d>>>2&1073741822,i=(j<<2)+X+40|0,o=x[X>>2],d=1<<(d>>>3),0==(o&d|0)?(p[X>>2]=o|d,d=i,j=(j+2<<2)+X+40|0):(j=(j+2<<2)+X+40|0,d=x[j>>2],d>>>0>2]>>>0&&(Z(),b("Reached an unreachable!"))),p[j>>2]=f,p[d+12>>2]=f,p[e+2]=d,p[e+3]=i}else{i=f;o=d>>>8;if(0==(o|0)){j=0}else{if(16777215>>0){j=31}else{var j=(o+1048320|0)>>>16&8,u=o<>>16&4,u=u<>>16&2,j=14-(o|j|q)+(u<>>15)|0,j=d>>>((j+7|0)>>>0)&1|j<<1}}o=(j<<2)+X+304|0;p[e+7]=j;p[e+5]=0;p[e+4]=0;u=p[X+4>>2];q=1<>2]=u|q,p[o>>2]=i,p[e+6]=o,p[e+3]=f,p[e+2]=f}else{j=d<<(31==(j|0)?0:25-(j>>>1)|0);for(o=p[o>>2];;){if((p[o+4>>2]&-8|0)==(d|0)){var u=o+8|0,q=x[u>>2],t=x[X+16>>2],s=o>>>0>>0;do{if(!s&&q>>>0>=t>>>0){p[q+12>>2]=i;p[u>>2]=i;p[e+2]=q;p[e+3]=o;p[e+6]=0;break a}}while(0);Z();b("Reached an unreachable!")}u=(j>>>31<<2)+o+16|0;q=x[u>>2];if(0==(q|0)){if(u>>>0>=x[X+16>>2]>>>0){p[u>>2]=i;p[e+6]=o;p[e+3]=f;p[e+2]=f;break a}Z();b("Reached an unreachable!")}j<<=1;o=q}}}}}while(0)}Cf.X=1;function sd(a){for(a=0==(a|0)?1:a;;){var c=nc(a);if(0==(c|0)){c=(Xb=p[Hf>>2],p[Hf>>2]=Xb,Xb);if(0==(c|0)){var d=nc(4);p[d>>2]=If+8|0;vd(d,Jf,2);b("Reached an unreachable!")}pc[c]()}else{return c}}return ca}function W(a){Pc||(Pc=F([0],"i32",E));p[Pc>>2]=a}var Pc,Kf=13,Me=9,Ce=22,Lf=5,Mf=21,Nf=25,Of=6,Be=34,Pf=0,Qf=0,Rf=0,ve=0,Sf=2,Ke=[ca],Tf=k;function Uf(a,c){if("string"!==typeof a){return ca}c===aa&&(c="/");a&&"/"==a[0]&&(c="");for(var d=(c+"/"+a).split("/").reverse(),e=[""];d.length;){var f=d.pop();""==f||"."==f||(".."==f?1d||0>e){return W(Ce),-1}for(a=0;f.b.length&&0d){return W(Ce),-1}if(e.object.d){if(e.object.input){for(a=0;e.b.length&&0d){return W(Ce),-1}if(e.object.d){if(e.object.e){for(var f=0;fd||0>f){W(Ce),c=-1}else{for(var h=a.object.a;h.length>2,a=a>>2,e=d>>2;c>=1;a>>=1;for(e=d>>1;c>2]=0}catch(e){}try{p[ng>>2]=1}catch(f){}try{p[og>>2]=2}catch(g){}mg=k}print("Compiled code throwing an exception, "+[a,c,d]+", at "+Error().stack);p[pg>>2]=a;p[pg+4>>2]=c;p[pg+8>>2]=d;"uncaught_exception"in lg?lg.w++:lg.w=1;b(a)}var mg;function zd(a,c,d){if(c>2],jc[1]=p[c+f+4>>2],fc[0]):"i64"==a?d=[p[c+f>>2],p[c+f+4>>2]]:(a="i32",d=p[c+f>>2]);f+=Math.max(nb(a),ob);return d}for(var e=a,f=0,g=[],h,i;;){var j=e;h=n[e];if(0===h){break}i=n[e+1];if(37==h){var o=l,u=l,q=l,t=l;a:for(;;){switch(i){case 43:o=k;break;case 45:u=k;break;case 35:q=k;break;case 48:if(t){break a}else{t=k;break};default:break a}e++;i=n[e+1]}var s=0;if(42==i){s=d("i32"),e++,i=n[e+1]}else{for(;48<=i&&57>=i;){s=10*s+(i-48),e++,i=n[e+1]}}var B=l;if(46==i){var v=0,B=k;e++;i=n[e+1];if(42==i){v=d("i32"),e++}else{for(;;){i=n[e+1];if(48>i||57>>0)+4294967296*(h[1]>>>0):(h[0]>>>0)+4294967296*(h[1]|0));4>=y&&(h=(j?Gc:Fc)(h&Math.pow(256,y)-1,8*y));var A=Math.abs(h),r,j="";if(100==i||105==i){r=Gc(h,8*y).toString(10)}else{if(117==i){r=Fc(h,8*y).toString(10),h=Math.abs(h)}else{if(111==i){r=(q?"0":"")+A.toString(8)}else{if(120==i||88==i){j=q?"0x":"";if(0>h){h=-h;r=(A-1).toString(16);q=[];for(A=0;Ah?"-"+j:"+"+j);j.length+r.lengthy&&-4<=y?(i=(103==i?"f":"F").charCodeAt(0),v-=y+1):(i=(103==i?"e":"E").charCodeAt(0),v--),y=Math.min(v,20)}if(101==i||69==i){r=h.toExponential(y),/[eE][-+]\d$/.test(r)&&(r=r.slice(0,-1)+"0"+r.slice(-1))}else{if(102==i||70==i){r=h.toFixed(y)}}j=r.split("e");if(B&&!q){for(;1y++;){j[0]+="0"}}r=j[0]+(1h?"-":"")+"inf",t=l}}for(;r.lengthi&&(r=r.toUpperCase());r.split("").forEach((function(a){g.push(a.charCodeAt(0))}))}else{if(115==i){(o=d("i8*"))?(o=Ec(o),B&&o.length>v&&(o=o.slice(0,v))):o=uc("(null)",k);if(!u){for(;o.length>2]=g.length}else{if(37==i){g.push(h)}else{for(A=j;Ac&&(c+=256);for(var a=a>>2,e=d>>2,f=c|c<<8|c<<16|c<<24;a>2],a,c)}var pf;function Z(){b("ABORT: undefined, at "+Error().stack)}function Ef(){switch(8){case 8:return qc;case 54:case 56:case 21:case 61:case 63:case 22:case 67:case 23:case 24:case 25:case 26:case 27:case 69:case 28:case 101:case 70:case 71:case 29:case 30:case 199:case 75:case 76:case 32:case 43:case 44:case 80:case 46:case 47:case 45:case 48:case 49:case 42:case 82:case 33:case 7:case 108:case 109:case 107:case 112:case 119:case 121:return 200809;case 13:case 104:case 94:case 95:case 34:case 35:case 77:case 81:case 83:case 84:case 85:case 86:case 87:case 88:case 89:case 90:case 91:case 94:case 95:case 110:case 111:case 113:case 114:case 115:case 116:case 117:case 118:case 120:case 40:case 16:case 79:case 19:return-1;case 92:case 93:case 5:case 72:case 6:case 74:case 92:case 93:case 96:case 97:case 98:case 99:case 102:case 103:case 105:return 1;case 38:case 66:case 50:case 51:case 4:return 1024;case 15:case 64:case 41:return 32;case 55:case 37:case 17:return 2147483647;case 18:case 1:return 47839;case 59:case 57:return 99;case 68:case 58:return 2048;case 0:return 2097152;case 3:return 65536;case 14:return 32768;case 73:return 32767;case 39:return 16384;case 60:return 1e3;case 106:return 700;case 52:return 256;case 62:return 255;case 2:return 100;case 65:return 64;case 36:return 20;case 100:return 16;case 20:return 6;case 53:return 4}W(Ce);return-1}function zf(a){qg||(Cb=Cb+4095>>12<<12,qg=k);var c=Cb;0!=a&&Bb(a);return c}var qg,Gf;function De(a){n[rg]=Fc(10);-1==Sc(a,rg,1)&&a in Ke&&(Ke[a].error=k)}function Oe(a){var c=p[Qf>>2];0>Sc(c,a,Dc(a))||De(c)}W(0);Ac.unshift({l:(function(){Tf=l;dg||cg()})});Bc.push({l:(function(){dg&&(Ke[2]&&0a;a++){e.push(0)}}var d=a.length+1,e=[F(uc("/bin/this.program"),"i8",E)];c();for(var f=0;f>>1,c=0==(a&1|0)?c:c^-306674912,d=c>>>1,c=0==(c&1|0)?d:d^-306674912,d=c>>>1,c=0==(c&1|0)?d:d^-306674912,d=c>>>1,c=0==(c&1|0)?d:d^-306674912,d=c>>>1,c=0==(c&1|0)?d:d^-306674912,d=c>>>1,c=0==(c&1|0)?d:d^-306674912,d=c>>>1,c=0==(c&1|0)?d:d^-306674912,d=c>>>1;p[Kc+(a<<2)>>2]=0==(c&1|0)?d:d^-306674912;a=a+1|0;if(256==(a|0)){break}}})}]),V,ue,wd,xe,Ee,Ge,Xe,Ye,We,rf,sg,ng,og,tg,X,wf,Hf,If,Jf;Kc=F(1024,"i32",E);K.L=F([82,97,110,103,101,32,100,101,99,111,100,101,114,32,102,105,110,97,108,32,99,111,100,101,32,105,115,32,110,111,116,32,122,101,114,111,0],"i8",E);K.K=F([7,7,7,7,7,7,7,10,10,10,10,10],"i8",E);K.I=F([8,8,8,8,8,8,8,11,11,11,11,11],"i8",E);K.H=F([9,9,9,9,9,9,9,11,11,11,11,11],"i8",E);K.J=F([0,0,0,0,1,2,3,4,5,6,4,5],"i8",E);V=F(4096,"i8",E);ue=F(2048,"i32",E);K.A=F([53,69,114,114,111,114,0],"i8",E);wd=F(8,"*",E);K.O=F([112,111,115,32,62,32,115,116,114,101,97,109,95,112,111,115,32,105,110,32,77,97,116,99,104,102,105,110,100,101,114,58,58,109,111,118,101,95,112,111,115,0],"i8",E);K.W=F([87,114,105,116,101,32,101,114,114,111,114,0],"i8",E);K.ea=F([82,101,97,100,32,101,114,114,111,114,0],"i8",E);xe=F(1,"i32",E);K.sa=F([37,115,58,32,37,115,0],"i8",E);K.S=F([58,32,37,115,0],"i8",E);Ee=F(1,"i8*",E);K.na=F([84,114,121,32,96,37,115,32,45,45,104,101,108,112,39,32,102,111,114,32,109,111,114,101,32,105,110,102,111,114,109,97,116,105,111,110,46,10,0],"i8",E);K.oa=F([37,115,58,32,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,37,115,46,10,0],"i8",E);K.ta=F([117,110,99,97,117,103,104,116,32,111,112,116,105,111,110,0],"i8",E);Ge=F(1,"i1",E);K.ua=F([67,97,110,39,116,32,99,108,111,115,101,32,115,116,100,111,117,116,0],"i8",E);K.wa=F([69,114,114,111,114,32,114,101,97,100,105,110,103,32,109,101,109,98,101,114,32,104,101,97,100,101,114,0],"i8",E);K.xa=F([66,97,100,32,109,97,103,105,99,32,110,117,109,98,101,114,32,40,102,105,108,101,32,110,111,116,32,105,110,32,108,122,105,112,32,102,111,114,109,97,116,41,0],"i8",E);K.M=F([86,101,114,115,105,111,110,32,37,100,32,109,101,109,98,101,114,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,46,10,0],"i8",E);K.N=F([73,110,118,97,108,105,100,32,100,105,99,116,105,111,110,97,114,121,32,115,105,122,101,32,105,110,32,109,101,109,98,101,114,32,104,101,97,100,101,114,0],"i8",E);K.P=F([118,101,114,115,105,111,110,32,37,100,44,32,100,105,99,116,105,111,110,97,114,121,32,115,105,122,101,32,37,55,115,66,46,32,32,0],"i8",E);K.Q=F([70,105,108,101,32,101,110,100,115,32,117,110,101,120,112,101,99,116,101,100,108,121,32,97,116,32,112,111,115,32,37,108,108,100,10,0],"i8",E);K.R=F([68,101,99,111,100,101,114,32,101,114,114,111,114,32,97,116,32,112,111,115,32,37,108,108,100,10,0],"i8",E);K.n=F([111,107,10,0],"i8",E);K.o=F([100,111,110,101,10,0],"i8",E);Xe=F(32,"*",E);K.T=F([75,105,0],"i8",E);K.U=F([77,105,0],"i8",E);K.V=F([71,105,0],"i8",E);K.Y=F([84,105,0],"i8",E);K.Z=F([69,105,0],"i8",E);K.$=F([90,105,0],"i8",E);K.aa=F([89,105,0],"i8",E);Ye=F(16,"i8",E);We=F(1,"i8",E);K.ba=F([37,108,108,100,32,37,115,0],"i8",E);K.z=F([76,90,73,80],"i8",E);K.ca=F([105,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,32,116,111,32,101,110,99,111,100,101,114,0],"i8",E);K.da=F([69,110,99,111,100,101,114,32,101,114,114,111,114,0],"i8",E);K.fa=F([78,111,32,100,97,116,97,32,99,111,109,112,114,101,115,115,101,100,46,10,0],"i8",E);K.ga=F([37,54,46,51,102,58,49,44,32,37,54,46,51,102,32,98,105,116,115,47,98,121,116,101,44,32,37,53,46,50,102,37,37,32,115,97,118,101,100,44,32,37,108,108,100,32,105,110,44,32,37,108,108,100,32,111,117,116,46,10,0],"i8",E);K.ha=F([73,32,119,111,110,39,116,32,119,114,105,116,101,32,99,111,109,112,114,101,115,115,101,100,32,100,97,116,97,32,116,111,32,97,32,116,101,114,109,105,110,97,108,46,0],"i8",E);K.ia=F([73,32,119,111,110,39,116,32,114,101,97,100,32,99,111,109,112,114,101,115,115,101,100,32,100,97,116,97,32,102,114,111,109,32,97,32,116,101,114,109,105,110,97,108,46,0],"i8",E);K.ja=F([37,115,32,37,115,10,0],"i8",E);K.ka=F([49,46,49,50,0],"i8",E);K.la=F([67,111,112,121,114,105,103,104,116,32,40,67,41,32,37,115,32,65,110,116,111,110,105,111,32,68,105,97,122,32,68,105,97,122,46,10,0],"i8",E);K.pa=F([50,48,49,49,0],"i8",E);K.p=F([76,122,105,112,0],"i8",E);K.qa=F([37,115,32,45,32,68,97,116,97,32,99,111,109,112,114,101,115,115,111,114,32,98,97,115,101,100,32,111,110,32,116,104,101,32,76,90,77,65,32,97,108,103,111,114,105,116,104,109,46,10,0],"i8",E);K.ra=F([10,85,115,97,103,101,58,32,37,115,32,91,111,112,116,105,111,110,115,93,32,91,102,105,108,101,115,93,10,0],"i8",E);K.va=F([73,102,32,110,111,32,102,105,108,101,32,110,97,109,101,115,32,97,114,101,32,103,105,118,101,110,44,32,37,115,32,99,111,109,112,114,101,115,115,101,115,32,111,114,32,100,101,99,111,109,112,114,101,115,115,101,115,10,0],"i8",E);K.i=F([108,122,105,112,0],"i8",E);K.B=F([78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0],"i8",E);rf=F(12,"*",E);K.C=F([78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0],"i8",E);sg=F(12,"*",E);ng=F([0,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0],["*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0],E);F(1,"void*",E);K.F=F([80,105,0],"i8",E);og=F([0,0,0,0,0,0,0,0,4,0,0,0,16,0,0,0,8,0,0,0,18,0,0,0,20,0,0,0,22,0,0,0],["*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0],E);F(1,"void*",E);K.D=F([78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0],"i8",E);tg=F(12,"*",E);X=F(468,["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"i32",0,0,0,"*",0,0,0,"i32",0,0,0,"*",0,0,0,"i32",0,0,0],E);wf=F(24,"i32",E);Hf=F(1,"void ()*",E);If=F([0,0,0,0,0,0,0,0,2,0,0,0,24,0,0,0,26,0,0,0],["*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0],E);F(1,"void*",E);K.ma=F([115,116,100,58,58,98,97,100,95,97,108,108,111,99,0],"i8",E);K.G=F([83,116,57,98,97,100,95,97,108,108,111,99,0],"i8",E);Jf=F(12,"*",E);K.ya=F([60,60,32,77,111,115,116,32,111,102,32,116,104,101,115,101,32,97,114,101,32,117,110,115,117,112,112,111,114,116,101,100,46,32,67,111,109,112,114,101,115,115,105,110,103,47,100,101,99,111,109,112,114,101,115,115,105,110,103,32,102,114,111,109,32,115,116,100,105,110,32,116,111,32,115,116,100,111,117,116,32,105,115,32,116,104,101,32,114,105,103,104,116,32,119,97,121,33,32,62,62,0],"i8",E);K.za=F([10,79,112,116,105,111,110,115,58,0],"i8",E);K.Ka=F([32,32,45,104,44,32,45,45,104,101,108,112,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,105,115,112,108,97,121,32,116,104,105,115,32,104,101,108,112,32,97,110,100,32,101,120,105,116,0],"i8",E);K.Ta=F([32,32,45,86,44,32,45,45,118,101,114,115,105,111,110,32,32,32,32,32,32,32,32,32,32,32,32,32,32,111,117,116,112,117,116,32,118,101,114,115,105,111,110,32,105,110,102,111,114,109,97,116,105,111,110,32,97,110,100,32,101,120,105,116,0],"i8",E);K.Ua=F([32,32,45,98,44,32,45,45,109,101,109,98,101,114,45,115,105,122,101,61,60,110,62,32,32,32,32,32,32,115,101,116,32,109,101,109,98,101,114,32,115,105,122,101,32,108,105,109,105,116,32,105,110,32,98,121,116,101,115,0],"i8",E);K.Va=F([32,32,45,99,44,32,45,45,115,116,100,111,117,116,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101,110,100,32,111,117,116,112,117,116,32,116,111,32,115,116,97,110,100,97,114,100,32,111,117,116,112,117,116,0],"i8",E);K.Wa=F([32,32,45,100,44,32,45,45,100,101,99,111,109,112,114,101,115,115,32,32,32,32,32,32,32,32,32,32,32,100,101,99,111,109,112,114,101,115,115,0],"i8",E);K.Xa=F([32,32,45,102,44,32,45,45,102,111,114,99,101,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,111,118,101,114,119,114,105,116,101,32,101,120,105,115,116,105,110,103,32,111,117,116,112,117,116,32,102,105,108,101,115,0],"i8",E);K.Ya=F([32,32,45,70,44,32,45,45,114,101,99,111,109,112,114,101,115,115,32,32,32,32,32,32,32,32,32,32,32,102,111,114,99,101,32,114,101,99,111,109,112,114,101,115,115,105,111,110,32,111,102,32,99,111,109,112,114,101,115,115,101,100,32,102,105,108,101,115,0],"i8",E);K.Za=F([32,32,45,107,44,32,45,45,107,101,101,112,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,107,101,101,112,32,40,100,111,110,39,116,32,100,101,108,101,116,101,41,32,105,110,112,117,116,32,102,105,108,101,115,0],"i8",E);K.Aa=F([32,32,45,109,44,32,45,45,109,97,116,99,104,45,108,101,110,103,116,104,61,60,110,62,32,32,32,32,32,115,101,116,32,109,97,116,99,104,32,108,101,110,103,116,104,32,108,105,109,105,116,32,105,110,32,98,121,116,101,115,32,91,51,54,93,0],"i8",E);K.Ba=F([32,32,45,111,44,32,45,45,111,117,116,112,117,116,61,60,102,105,108,101,62,32,32,32,32,32,32,32,32,105,102,32,114,101,97,100,105,110,103,32,115,116,100,105,110,44,32,112,108,97,99,101,32,116,104,101,32,111,117,116,112,117,116,32,105,110,116,111,32,60,102,105,108,101,62,0],"i8",E);K.Ca=F([32,32,45,113,44,32,45,45,113,117,105,101,116,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,117,112,112,114,101,115,115,32,97,108,108,32,109,101,115,115,97,103,101,115,0],"i8",E);K.Da=F([32,32,45,115,44,32,45,45,100,105,99,116,105,111,110,97,114,121,45,115,105,122,101,61,60,110,62,32,32,115,101,116,32,100,105,99,116,105,111,110,97,114,121,32,115,105,122,101,32,108,105,109,105,116,32,105,110,32,98,121,116,101,115,32,91,56,77,105,66,93,0],"i8",E);K.Ea=F([32,32,45,83,44,32,45,45,118,111,108,117,109,101,45,115,105,122,101,61,60,110,62,32,32,32,32,32,32,115,101,116,32,118,111,108,117,109,101,32,115,105,122,101,32,108,105,109,105,116,32,105,110,32,98,121,116,101,115,0],"i8",E);K.Fa=F([32,32,45,116,44,32,45,45,116,101,115,116,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,101,115,116,32,99,111,109,112,114,101,115,115,101,100,32,102,105,108,101,32,105,110,116,101,103,114,105,116,121,0],"i8",E);K.Ga=F([32,32,45,118,44,32,45,45,118,101,114,98,111,115,101,32,32,32,32,32,32,32,32,32,32,32,32,32,32,98,101,32,118,101,114,98,111,115,101,32,40,97,32,50,110,100,32,45,118,32,103,105,118,101,115,32,109,111,114,101,41,0],"i8",E);K.Ha=F([32,32,45,48,32,46,46,32,45,57,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,101,116,32,99,111,109,112,114,101,115,115,105,111,110,32,108,101,118,101,108,32,91,100,101,102,97,117,108,116,32,54,93,0],"i8",E);K.Ia=F([32,32,32,32,32,32,45,45,102,97,115,116,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,108,105,97,115,32,102,111,114,32,45,48,0],"i8",E);K.Ja=F([32,32,32,32,32,32,45,45,98,101,115,116,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,108,105,97,115,32,102,111,114,32,45,57,0],"i8",E);K.La=F([102,114,111,109,32,115,116,97,110,100,97,114,100,32,105,110,112,117,116,32,116,111,32,115,116,97,110,100,97,114,100,32,111,117,116,112,117,116,46,0],"i8",E);K.Ma=F([78,117,109,98,101,114,115,32,109,97,121,32,98,101,32,102,111,108,108,111,119,101,100,32,98,121,32,97,32,109,117,108,116,105,112,108,105,101,114,58,32,107,32,61,32,107,66,32,61,32,49,48,94,51,32,61,32,49,48,48,48,44,0],"i8",E);K.Na=F([75,105,32,61,32,75,105,66,32,61,32,50,94,49,48,32,61,32,49,48,50,52,44,32,77,32,61,32,49,48,94,54,44,32,77,105,32,61,32,50,94,50,48,44,32,71,32,61,32,49,48,94,57,44,32,71,105,32,61,32,50,94,51,48,44,32,101,116,99,46,46,46,0],"i8",E);K.Oa=F([10,82,101,112,111,114,116,32,98,117,103,115,32,116,111,32,108,122,105,112,45,98,117,103,64,110,111,110,103,110,117,46,111,114,103,0],"i8",E);K.Pa=F([76,122,105,112,32,104,111,109,101,32,112,97,103,101,58,32,104,116,116,112,58,47,47,119,119,119,46,110,111,110,103,110,117,46,111,114,103,47,108,122,105,112,47,108,122,105,112,46,104,116,109,108,0],"i8",E);K.Qa=F([76,105,99,101,110,115,101,32,71,80,76,118,51,43,58,32,71,78,85,32,71,80,76,32,118,101,114,115,105,111,110,32,51,32,111,114,32,108,97,116,101,114,32,60,104,116,116,112,58,47,47,103,110,117,46,111,114,103,47,108,105,99,101,110,115,101,115,47,103,112,108,46,104,116,109,108,62,0],"i8",E);K.Ra=F([84,104,105,115,32,105,115,32,102,114,101,101,32,115,111,102,116,119,97,114,101,58,32,121,111,117,32,97,114,101,32,102,114,101,101,32,116,111,32,99,104,97,110,103,101,32,97,110,100,32,114,101,100,105,115,116,114,105,98,117,116,101,32,105,116,46,0],"i8",E);K.Sa=F([84,104,101,114,101,32,105,115,32,78,79,32,87,65,82,82,65,78,84,89,44,32,116,111,32,116,104,101,32,101,120,116,101,110,116,32,112,101,114,109,105,116,116,101,100,32,98,121,32,108,97,119,46,0],"i8",E);p[wd>>2]=ng+8|0;p[wd+4>>2]=K.A|0;p[Xe>>2]=K.T|0;p[Xe+4>>2]=K.U|0;p[Xe+8>>2]=K.V|0;p[Xe+12>>2]=K.Y|0;p[Xe+16>>2]=K.F|0;p[Xe+20>>2]=K.Z|0;p[Xe+24>>2]=K.$|0;p[Xe+28>>2]=K.aa|0;p[rf>>2]=og+8|0;p[rf+4>>2]=K.B|0;p[rf+8>>2]=aa;p[sg>>2]=og+8|0;p[sg+4>>2]=K.C|0;p[sg+8>>2]=rf;p[ng+4>>2]=sg;p[og+4>>2]=tg;p[tg>>2]=og+8|0;p[tg+4>>2]=K.D|0;p[tg+8>>2]=sg;p[If+4>>2]=Jf;p[Jf>>2]=og+8|0;p[Jf+4>>2]=K.G|0;p[Jf+8>>2]=aa;pc=[0,0,Ff,0,of,0,(function(a){of(a|0);Re(a)}),0,(function(a,c,d){var e,f=m;m+=56;e=f>>2;if((a|0)==(c|0)){a=1}else{if(0==(c|0)){a=0}else{if(c=qf(c,sg),0==(c|0)){a=0}else{for(var g=f>>2,h=g+14;g>2]+20>>2]](c,f,p[d>>2],1);1!=(p[e+6]|0)?a=0:(p[d>>2]=p[e+4],a=1)}}}m=f;return a}),0,(function(a,c,d,e,f){(p[c+8>>2]|0)==(a|0)&&Ue(c,d,e,f)}),0,(function(a,c,d,e){var f=c>>2,g=(p[f+2]|0)==(a|0);a:do{if(g){Ve(c,d,e)}else{if((p[f]|0)==(a|0)){var h=(p[f+4]|0)==(d|0);do{if(!h){var i=c+20|0;if((p[i>>2]|0)!=(d|0)){p[f+8]=e;p[i>>2]=d;a=c+40|0;p[a>>2]=p[a>>2]+1|0;1==(p[f+9]|0)&&2==(p[f+6]|0)&&(n[c+54|0]=1);p[f+11]=4;break a}}}while(0);1==(e|0)&&(p[f+8]=1)}}}while(0)}),0,(function(a,c,d,e){(p[c+8>>2]|0)==(a|0)&&Te(c,d,e)}),0,(function(a){of(a|0);Re(a)}),0,(function(a,c,d,e,f){(a|0)==(p[c+8>>2]|0)?Ue(c,d,e,f):(a=p[a+8>>2],pc[p[p[a>>2]+12>>2]](a,c,d,e,f))}),0,sf,0,(function(a,c,d,e){(a|0)==(p[c+8>>2]|0)?Te(c,d,e):(a=p[a+8>>2],pc[p[p[a>>2]+20>>2]](a,c,d,e))}),0,(function(a){Ff(a);Re(a)}),0,(function(){return K.ma|0}),0];Module.FUNCTION_TABLE=pc;function ug(a){a=a||Module.arguments;yc(Ac);var c=ca;Module._main&&(c=Module.ab(a),Module.noExitRuntime||yc(Bc));return c}Module.run=ug;Module.preRun&&Module.preRun();ug();Module.postRun&&Module.postRun() + + return returnValue; + }, + + compress: function(data) { + return this.run(data); + }, + + decompress: function(data) { + return this.run(data, true); + } +}; + +onmessage = function(event) { + postMessage({ data: LZMA.decompress(event.data.data), id: event.data.id }); +}; + +*/ + +var Zee = (function() { + +function a(b){throw b}var aa=void 0,da=!0,sa=null,ua=!1,l={noExitRuntime:da};try{this.Module=l}catch(Ca){this.Module=l={}}var Ha="object"===typeof process,Ia="object"===typeof window,Na="function"===typeof importScripts,ob=!Ia&&!Ha&&!Na;if(Ha){l.print=(function(b){process.stdout.write(b+"\n")});l.printErr=(function(b){process.stderr.write(b+"\n")});var pb=require("fs"),Ab=require("path");l.read=(function(b){var b=Ab.normalize(b),f=pb.readFileSync(b).toString();!f&&b!=Ab.resolve(b)&&(b=path.join(__dirname,"..","src",b),f=pb.readFileSync(b).toString());return f});l.load=(function(b){Bb(read(b))});l.arguments||(l.arguments=process.argv.slice(2))}else{ob?(l.print=print,"undefined"!=typeof printErr&&(l.printErr=printErr),l.read="undefined"!=typeof read?read:(function(b){snarf(b)}),l.arguments||("undefined"!=typeof scriptArgs?l.arguments=scriptArgs:"undefined"!=typeof arguments&&(l.arguments=arguments))):Ia?(l.print||(l.print=(function(b){console.log(b)})),l.printErr||(l.printErr=(function(b){console.log(b)})),l.read=(function(b){var f=new XMLHttpRequest;f.open("GET",b,ua);f.send(sa);return f.responseText}),l.arguments||"undefined"!=typeof arguments&&(l.arguments=arguments)):Na?l.load=importScripts:a("Unknown runtime environment. Where are we?")}function Bb(b){eval.call(sa,b)}"undefined"==!l.load&&l.read&&(l.load=(function(b){Bb(l.read(b))}));l.print||(l.print=(function(){}));l.printErr||(l.printErr=l.print);l.arguments||(l.arguments=[]);l.print=l.print;l.ma=l.printErr;l.preRun||(l.preRun=[]);l.postRun||(l.postRun=[]);function Lb(){var b=[],f=0;this.M=(function(d){d&=255;f&&(b.push(d),f--);if(0==b.length){if(128>d){return String.fromCharCode(d)}b.push(d);f=191d?1:2;return""}if(0d?String.fromCharCode((d&31)<<6|c&63):String.fromCharCode((d&15)<<12|(c&63)<<6|e&63);b.length=0;return d});this.ha=(function(b){for(var b=unescape(encodeURIComponent(b)),c=[],e=0;e>2<<2;return f}function Ob(b){var f=Rb;Rb+=b;Rb=Rb+3>>2<<2;if(Rb>=Zb){for(;Zb<=Rb;){Zb=2*Zb+4095>>12<<12}var b=m,d=new ArrayBuffer(Zb);m=new Int8Array(d);o=new Int16Array(d);q=new Int32Array(d);D=new Uint8Array(d);E=new Uint16Array(d);I=new Uint32Array(d);cc=new Float32Array(d);gc=new Float64Array(d);m.set(b)}return f}var ic=4,sc={},Ec;function Fc(b){l.print(b+":\n"+Error().stack);a("Assertion: "+b)}function Gc(b,f){b||Fc("Assertion failed: "+f)}var Pc=this;function Qc(b,f,d,c){function e(b,c){if("string"==c){if(b===sa||b===aa||0===b){return 0}g||(g=Nb);var d=Mb(b.length+1);Rc(b,d);return d}return"array"==c?(g||(g=Nb),d=Mb(b.length),Sc(b,d),d):b}var g=0;try{var h=eval("_"+b)}catch(j){try{h=Pc.Module["_"+b]}catch(i){}}Gc(h,"Cannot call unknown function "+b+" (perhaps LLVM optimizations or closure removed it?)");var k=0,b=c?c.map((function(b){return e(b,d[k++])})):[],f=(function(b,c){if("string"==c){return ed(b)}Gc("array"!=c);return b})(h.apply(sa,b),f);g&&(Nb=g);return f}l.ccall=Qc;l.cwrap=(function(b,f,d){return(function(){return Qc(b,f,d,Array.prototype.slice.call(arguments))})});function fd(b,f,d){d=d||"i8";"*"===d[d.length-1]&&(d="i32");switch(d){case"i1":m[b]=f;break;case"i8":m[b]=f;break;case"i16":o[b>>1]=f;break;case"i32":q[b>>2]=f;break;case"i64":q[b>>2]=f;break;case"float":cc[b>>2]=f;break;case"double":jd[0]=f;q[b>>2]=kd[0];q[b+4>>2]=kd[1];break;default:Fc("invalid type for setValue: "+d)}}l.setValue=fd;l.getValue=(function(b,f){f=f||"i8";"*"===f[f.length-1]&&(f="i32");switch(f){case"i1":return m[b];case"i8":return m[b];case"i16":return o[b>>1];case"i32":return q[b>>2];case"i64":return q[b>>2];case"float":return cc[b>>2];case"double":return kd[0]=q[b>>2],kd[1]=q[b+4>>2],jd[0];default:Fc("invalid type for setValue: "+f)}return sa});var wd=2;l.ALLOC_NORMAL=0;l.ALLOC_STACK=1;l.ALLOC_STATIC=wd;function xd(b,f,d){var c,e;"number"===typeof b?(c=da,e=b):(c=ua,e=b.length);var g="string"===typeof f?f:sa,d=[yd,Mb,Ob][d===aa?wd:d](Math.max(e,g?1:f.length));if(c){return zd(d,e),d}for(var h=0;h>2);cc.subarray(We>>2);var jd=gc.subarray(We>>3);de=We+8;Rb=de+4095>>12<<12;function Xe(b){for(;0>>16,b=b&65535,g=1==(d|0);do{if(g){var h=(D[f]&255)+b|0,h=65520>>0?h-65521|0:h;c=h+e|0;h|=(65520>>0?c+15|0:c)<<16}else{if(0==(f|0)){h=1}else{if(16>d>>>0){h=0==(d|0);a:do{if(h){var j=e,i=b}else{var k=e,p=d;c=f;for(var s=b;;){p=p-1|0;s=(D[c]&255)+s|0;k=s+k|0;if(0==(p|0)){j=k;i=s;break a}c=c+1|0}}}while(0);h=(j>>>0)%65521<<16|(65520>>0?i-65521|0:i)}else{h=5551>>0;do{if(h){k=e;p=d;c=f;for(s=b;;){for(var u=p-5552|0,p=s,n=c,t=k,r=347;;){var x=(D[n]&255)+p|0,k=x+(D[n+1|0]&255)|0,p=k+(D[n+2|0]&255)|0,s=p+(D[n+3|0]&255)|0,v=s+(D[n+4|0]&255)|0,y=v+(D[n+5|0]&255)|0,A=y+(D[n+6|0]&255)|0,B=A+(D[n+7|0]&255)|0,F=B+(D[n+8|0]&255)|0,H=F+(D[n+9|0]&255)|0,z=H+(D[n+10|0]&255)|0,w=z+(D[n+11|0]&255)|0,J=w+(D[n+12|0]&255)|0,G=J+(D[n+13|0]&255)|0,S=G+(D[n+14|0]&255)|0,C=S+(D[n+15|0]&255)|0,x=x+t+k+p+s+v+y+A+B+F+H+z+w+J+G+S+C|0,r=r-1|0;if(0==(r|0)){break}p=C;n=n+16|0;t=x}n=c+5552|0;t=(C>>>0)%65521;r=(x>>>0)%65521;if(5551>=u>>>0){break}k=r;p=u;c=n;s=t}if(0==(u|0)){var ka=t,ra=r;c=19}else{if(15>>0){var N=r,oa=u,K=n,Q=t;c=16}else{var Ka=r,Aa=u,P=n,hb=t;c=17}}}else{N=e,oa=d,K=f,Q=b,c=16}}while(0);do{if(16==c){for(;;){var ya=oa-16|0,Fa=(D[K]&255)+Q|0,Da=Fa+(D[K+1|0]&255)|0,h=Da+(D[K+2|0]&255)|0;c=h+(D[K+3|0]&255)|0;var k=c+(D[K+4|0]&255)|0,p=k+(D[K+5|0]&255)|0,s=p+(D[K+6|0]&255)|0,v=s+(D[K+7|0]&255)|0,y=v+(D[K+8|0]&255)|0,A=y+(D[K+9|0]&255)|0,B=A+(D[K+10|0]&255)|0,F=B+(D[K+11|0]&255)|0,H=F+(D[K+12|0]&255)|0,z=H+(D[K+13|0]&255)|0,w=z+(D[K+14|0]&255)|0,Ma=w+(D[K+15|0]&255)|0,Fa=Fa+N+Da+h+c+k+p+s+v+y+A+B+F+H+z+w+Ma|0,Da=K+16|0;if(15>=ya>>>0){break}N=Fa;oa=ya;K=Da;Q=Ma}if(0==(ya|0)){var ib=Fa,bb=Ma;c=18}else{Ka=Fa,Aa=ya,P=Da,hb=Ma,c=17}}}while(0);a:do{if(17==c){for(;;){h=Aa-1|0;k=(D[P]&255)+hb|0;p=k+Ka|0;if(0==(h|0)){ib=p;bb=k;c=18;break a}Ka=p;Aa=h;P=P+1|0;hb=k}}}while(0);18==c&&(ka=(bb>>>0)%65521,ra=(ib>>>0)%65521);h=ka|ra<<16}}}}while(0);return h}Xf.X=1;function Yf(b,f,d){for(var c,e,b=b^-1;;){if(0==(d|0)){var g=b;e=13;break}if(0==(f&3|0)){e=6;break}b=q[Zf+((D[f]&255^b&255)<<2)>>2]^b>>>8;f=f+1|0;d=d-1|0}a:do{if(6==e){var h=f,j=31>>0;b:do{if(j){var i=b,k=d,p=h;for(c=p>>2;;){i^=q[c];i=q[Zf+((i>>>8&255)<<2)+2048>>2]^q[Zf+((i&255)<<2)+3072>>2]^q[Zf+((i>>>16&255)<<2)+1024>>2]^q[Zf+(i>>>24<<2)>>2]^q[c+1];i=q[Zf+((i>>>8&255)<<2)+2048>>2]^q[Zf+((i&255)<<2)+3072>>2]^q[Zf+((i>>>16&255)<<2)+1024>>2]^q[Zf+(i>>>24<<2)>>2]^q[c+2];i=q[Zf+((i>>>8&255)<<2)+2048>>2]^q[Zf+((i&255)<<2)+3072>>2]^q[Zf+((i>>>16&255)<<2)+1024>>2]^q[Zf+(i>>>24<<2)>>2]^q[c+3];i=q[Zf+((i>>>8&255)<<2)+2048>>2]^q[Zf+((i&255)<<2)+3072>>2]^q[Zf+((i>>>16&255)<<2)+1024>>2]^q[Zf+(i>>>24<<2)>>2]^q[c+4];i=q[Zf+((i>>>8&255)<<2)+2048>>2]^q[Zf+((i&255)<<2)+3072>>2]^q[Zf+((i>>>16&255)<<2)+1024>>2]^q[Zf+(i>>>24<<2)>>2]^q[c+5];i=q[Zf+((i>>>8&255)<<2)+2048>>2]^q[Zf+((i&255)<<2)+3072>>2]^q[Zf+((i>>>16&255)<<2)+1024>>2]^q[Zf+(i>>>24<<2)>>2]^q[c+6];p=p+32|0;c=q[Zf+((i>>>8&255)<<2)+2048>>2]^q[Zf+((i&255)<<2)+3072>>2]^q[Zf+((i>>>16&255)<<2)+1024>>2]^q[Zf+(i>>>24<<2)>>2]^q[c+7];c=q[Zf+((c>>>8&255)<<2)+2048>>2]^q[Zf+((c&255)<<2)+3072>>2]^q[Zf+((c>>>16&255)<<2)+1024>>2]^q[Zf+(c>>>24<<2)>>2];k=k-32|0;if(31>=k>>>0){var s=c,u=k,n=p;break b}i=c;c=p>>2}}else{s=b,u=d,n=h}}while(0);h=3>>0;b:do{if(h){c=s;k=u;for(p=n;;){j=p+4|0;c^=q[p>>2];c=q[Zf+((c>>>8&255)<<2)+2048>>2]^q[Zf+((c&255)<<2)+3072>>2]^q[Zf+((c>>>16&255)<<2)+1024>>2]^q[Zf+(c>>>24<<2)>>2];k=k-4|0;if(3>=k>>>0){var t=c,r=k,x=j;break b}p=j}}else{t=s,r=u,x=n}}while(0);if(0==(r|0)){g=t}else{h=x;j=r;for(k=t;;){k=q[Zf+((D[h]&255^k&255)<<2)>>2]^k>>>8;j=j-1|0;if(0==(j|0)){g=k;break a}h=h+1|0}}}}while(0);return g^-1}Yf.X=1;function $f(b,f,d){return 0==(f|0)?0:Yf(b,f,d)}function ag(b,f,d){var c,e,g,h=0==(b|0);a:do{if(h){var j=-2}else{j=b+24|0;q[j>>2]=0;g=(b+32|0)>>2;var i=q[g];if(0==(i|0)){q[g]=2;q[b+40>>2]=0;var k=2}else{k=i}i=b+36|0;0==(q[i>>2]|0)&&(q[i>>2]=4);i=-1==(f|0)?6:f;if(9>>0|4>>0){j=-2}else{e=(b+40|0)>>2;k=Bd[k](q[e],1,5828);if(0!=(k|0)){q[b+28>>2]=k;q[k>>2]=b;q[(k+24|0)>>2]=2;q[(k+28|0)>>2]=0;q[(k+48|0)>>2]=15;c=(k+44|0)>>2;q[c]=32768;q[(k+52|0)>>2]=32767;q[(k+80|0)>>2]=15;var p=k+76|0;q[p>>2]=32768;q[(k+84|0)>>2]=32767;q[(k+88|0)>>2]=5;var s=Bd[q[g]](q[e],32768,2),u=k+56|0;q[u>>2]=s;var n=Bd[q[g]](q[e],q[c],2),s=k+64|0;q[s>>2]=n;zd(n,q[c]<<1);p=Bd[q[g]](q[e],q[p>>2],2);c=k+68|0;q[c>>2]=p;q[(k+5824|0)>>2]=0;p=k+5788|0;q[p>>2]=16384;e=g=Bd[q[g]](q[e],16384,4);q[(k+8|0)>>2]=g;p=I[p>>2];q[(k+12|0)>>2]=p<<2;u=0==(q[u>>2]|0);do{if(!u&&0!=(q[s>>2]|0)&&!(0==(q[c>>2]|0)|0==(g|0))){q[(k+5796|0)>>2]=(p>>>1<<1)+e|0;q[(k+5784|0)>>2]=g+3*p|0;q[(k+132|0)>>2]=i;q[(k+136|0)>>2]=d;m[k+36|0]=8;j=bg(b);break a}}while(0);q[(k+4|0)>>2]=666;q[j>>2]=O.W|0;cg(b)}j=-4}}}while(0);return j}ag.X=1;function cg(b){var f,d,c=b>>2;if(0!=(b|0)&&(d=(b+28|0)>>2,f=q[d],0!=(f|0))){var e=q[f+4>>2];if(666==(e|0)||113==(e|0)||103==(e|0)||91==(e|0)||73==(e|0)||69==(e|0)||42==(e|0)){e=q[f+8>>2];0!=(e|0)&&(Bd[q[c+9]](q[c+10],e),f=q[d]);e=q[f+68>>2];0==(e|0)?e=f:(Bd[q[c+9]](q[c+10],e),e=q[d]);var g=q[e+64>>2];f=(b+36|0)>>2;0!=(g|0)&&(Bd[q[f]](q[c+10],g),e=q[d]);c=q[e+56>>2];0==(c|0)?(c=e,b=b+40|0):(b=b+40|0,Bd[q[f]](q[b>>2],c),c=q[d]);Bd[q[f]](q[b>>2],c);q[d]=0}}}cg.X=1;function bg(b){var f=b>>2;if(0==(b|0)){f=-2}else{if(b=q[f+7],0==(b|0)){f=-2}else{if(0==(q[f+8]|0)){f=-2}else{if(0==(q[f+9]|0)){f=-2}else{q[f+5]=0;q[f+2]=0;q[f+6]=0;q[f+11]=2;q[(b+20|0)>>2]=0;q[(b+16|0)>>2]=q[b+8>>2];var d=b+24|0,c=q[d>>2];0>(c|0)&&(c=-c|0,q[d>>2]=c);d=c;q[(b+4|0)>>2]=0!=(d|0)?42:113;q[f+12]=2==(d|0)?$f(0,0,0):Xf(0,0,0);q[(b+40|0)>>2]=0;q[b+2840>>2]=b+148|0;q[b+2848>>2]=dg;q[b+2852>>2]=b+2440|0;q[b+2860>>2]=eg;q[b+2864>>2]=b+2684|0;q[b+2872>>2]=fg;o[b+5816>>1]=0;q[b+5820>>2]=0;q[b+5812>>2]=8;gg(b);hg(b);f=0}}}}return f}bg.X=1;function hg(b){var f=b>>2;q[f+15]=q[f+11]<<1;var d=b+76|0,b=b+68|0;o[q[b>>2]+(q[d>>2]-1<<1)>>1]=0;zd(q[b>>2],(q[d>>2]<<1)-2|0);d=I[f+33];q[f+32]=E[(ig+2>>1)+(6*d|0)]&65535;q[f+35]=E[(ig>>1)+(6*d|0)]&65535;q[f+36]=E[(ig+4>>1)+(6*d|0)]&65535;q[f+31]=E[(ig+6>>1)+(6*d|0)]&65535;q[f+27]=0;q[f+23]=0;q[f+29]=0;q[f+30]=2;q[f+24]=2;q[f+28]=0;q[f+26]=0;q[f+18]=0}hg.X=1;function jg(b,f){var d,c,e,g,h,j,i,k,p,s,u,n,t,r,x,v,y,A,B,F,H,z,w,J,G,S,C,ka,ra,N,oa,K=b>>2,Q,Ka=0==(b|0);a:do{if(Ka){var Aa=-2}else{var P=I[K+7];oa=P>>2;if(!(0==(P|0)|5>>0)){var hb=0==(q[K+3]|0);do{if(!hb&&!(0==(q[K]|0)&&0!=(q[K+1]|0))){N=(P+4|0)>>2;var ya=I[N],Fa=4==(f|0);if(666!=(ya|0)|Fa){ra=(b+16|0)>>2;if(0==(q[ra]|0)){q[K+6]=O.s|0;Aa=-5;break a}q[oa]=b;ka=(P+40|0)>>2;var Da=q[ka];q[ka]=f;if(42==(ya|0)){if(2!=(q[oa+6]|0)){var Ma=(q[oa+12]<<12)-30720|0;if(1<(q[oa+34]|0)){var ib=0}else{var bb=q[oa+33],ib=2>(bb|0)?0:6>(bb|0)?64:6==(bb|0)?128:192}var Cb=ib|Ma,Oa=P+108|0,Pa=0==(q[Oa>>2]|0)?Cb:Cb|32,jb=(Pa|(Pa>>>0)%31)^31;q[N]=113;kg(P,jb);C=(b+48|0)>>2;0!=(q[Oa>>2]|0)&&(kg(P,I[C]>>>16),kg(P,q[C]&65535));q[C]=Xf(0,0,0);var Db=q[N];Q=33}else{var xa=$f(0,0,0);S=(b+48|0)>>2;q[S]=xa;G=(P+20|0)>>2;var ta=q[G];q[G]=ta+1|0;J=(P+8|0)>>2;m[q[J]+ta|0]=31;var Va=q[G];q[G]=Va+1|0;m[q[J]+Va|0]=-117;var Xa=q[G];q[G]=Xa+1|0;m[q[J]+Xa|0]=8;var Eb=P+28|0;w=Eb>>2;var La=I[w];z=La>>2;if(0==(La|0)){var wb=q[G];q[G]=wb+1|0;m[q[J]+wb|0]=0;var Ya=q[G];q[G]=Ya+1|0;m[q[J]+Ya|0]=0;var cb=q[G];q[G]=cb+1|0;m[q[J]+cb|0]=0;var Qa=q[G];q[G]=Qa+1|0;m[q[J]+Qa|0]=0;var qb=q[G];q[G]=qb+1|0;m[q[J]+qb|0]=0;var Ga=q[oa+33],Ua=9==(Ga|0)?2:1<(q[oa+34]|0)?4:2>(Ga|0)?4:0,Za=q[G];q[G]=Za+1|0;m[q[J]+Za|0]=Ua;var Wa=q[G];q[G]=Wa+1|0;m[q[J]+Wa|0]=3;q[N]=113;Q=94}else{var db=(0!=(q[z+11]|0)?2:0)|0!=(q[z]|0)&1|(0==(q[z+4]|0)?0:4)|(0==(q[z+7]|0)?0:8)|(0==(q[z+9]|0)?0:16),$a=q[G];q[G]=$a+1|0;m[q[J]+$a|0]=db;var rb=q[q[w]+4>>2]&255,kb=q[G];q[G]=kb+1|0;m[q[J]+kb|0]=rb;var R=I[q[w]+4>>2]>>>8&255,$=I[G];q[G]=$+1|0;m[q[J]+$|0]=R;var ba=I[q[w]+4>>2]>>>16&255,la=I[G];q[G]=la+1|0;m[q[J]+la|0]=ba;var L=I[q[w]+4>>2]>>>24&255,Z=I[G];q[G]=Z+1|0;m[q[J]+Z|0]=L;var V=q[oa+33],M=9==(V|0)?2:1<(q[oa+34]|0)?4:2>(V|0)?4:0,pa=q[G];q[G]=pa+1|0;m[q[J]+pa|0]=M;var yb=q[q[w]+12>>2]&255,ca=q[G];q[G]=ca+1|0;m[q[J]+ca|0]=yb;var ea=I[w];if(0==(q[ea+16>>2]|0)){var ja=ea}else{var T=q[ea+20>>2]&255,fa=q[G];q[G]=fa+1|0;m[q[J]+fa|0]=T;var qa=I[q[w]+20>>2]>>>8&255,ma=I[G];q[G]=ma+1|0;m[q[J]+ma|0]=qa;ja=q[w]}0!=(q[ja+44>>2]|0)&&(q[S]=$f(q[S],q[J],q[G]));q[oa+8]=0;q[N]=69;var na=Eb;H=na>>2;Q=35}}}else{Db=ya,Q=33}if(33==Q){if(69!=(Db|0)){var va=Db;Q=52}else{na=P+28|0,H=na>>2,Q=35}}do{if(35==Q){var wa=I[H];if(0==(q[wa+16>>2]|0)){q[N]=73;var Ja=wa;Q=54}else{F=(P+20|0)>>2;B=(P+32|0)>>2;var Ra=P+12|0;A=(b+48|0)>>2;y=(P+8|0)>>2;for(var W=q[F],U=q[B],ga=wa;;){if(U>>>0>=(q[ga+20>>2]&65535)>>>0){var ha=W,ia=ga;break}var X=I[F];if((X|0)==(q[Ra>>2]|0)){0!=(q[ga+44>>2]|0)&X>>>0>W>>>0&&(q[A]=$f(q[A],q[y]+W|0,X-W|0));lg(b);var Ea=I[F];if((Ea|0)==(q[Ra>>2]|0)){ha=Ea;ia=q[H];break}var eb=Ea,Fb=Ea,ab=q[B],sb=q[H]}else{eb=W,Fb=X,ab=U,sb=ga}var tb=m[q[sb+16>>2]+ab|0];q[F]=Fb+1|0;m[q[y]+Fb|0]=tb;var ub=q[B]+1|0;q[B]=ub;W=eb;U=ub;ga=q[H]}if(0==(q[ia+44>>2]|0)){var lb=ia}else{var mb=I[F];mb>>>0>ha>>>0?(q[A]=$f(q[A],q[y]+ha|0,mb-ha|0),lb=q[H]):lb=ia}(q[B]|0)==(q[lb+20>>2]|0)?(q[B]=0,q[N]=73,Ja=lb,Q=54):(va=q[N],Q=52)}}}while(0);if(52==Q){if(73!=(va|0)){var fb=va;Q=69}else{Ja=q[oa+7],Q=54}}do{if(54==Q){var Sa=P+28|0;v=Sa>>2;if(0==(q[Ja+28>>2]|0)){q[N]=91;var Ta=Sa;x=Ta>>2;Q=71}else{r=(P+20|0)>>2;var Ba=q[r],za=P+12|0;t=(b+48|0)>>2;n=(P+8|0)>>2;u=(P+32|0)>>2;for(var gb=Ba,Gb=Ba;;){if((Gb|0)==(q[za>>2]|0)){0!=(q[q[v]+44>>2]|0)&Gb>>>0>gb>>>0&&(q[t]=$f(q[t],q[n]+gb|0,Gb-gb|0));lg(b);var Hb=I[r];if((Hb|0)==(q[za>>2]|0)){var vb=1,xb=Hb;break}var nb=Hb,Ib=Hb}else{nb=gb,Ib=Gb}var zb=q[u];q[u]=zb+1|0;var Jb=D[q[q[v]+28>>2]+zb|0],Kb=Jb&255;q[r]=Ib+1|0;m[q[n]+Ib|0]=Jb;if(0==Jb<<24>>24){vb=Kb;xb=nb;break}gb=nb;Gb=q[r]}if(0!=(q[q[v]+44>>2]|0)){var Pb=I[r];Pb>>>0>xb>>>0&&(q[t]=$f(q[t],q[n]+xb|0,Pb-xb|0))}0==(vb|0)?(q[u]=0,q[N]=91,Ta=Sa,x=Ta>>2,Q=71):(fb=q[N],Q=69)}}}while(0);if(69==Q){if(91!=(fb|0)){var Tb=fb;Q=86}else{Ta=P+28|0,x=Ta>>2,Q=71}}do{if(71==Q){if(0==(q[q[x]+36>>2]|0)){q[N]=103;var Vb=Ta;Q=88}else{s=(P+20|0)>>2;var Wb=q[s],Ub=P+12|0;p=(b+48|0)>>2;k=(P+8|0)>>2;for(var Sb=P+32|0,Qb=Wb,Xb=Wb;;){if((Xb|0)==(q[Ub>>2]|0)){0!=(q[q[x]+44>>2]|0)&Xb>>>0>Qb>>>0&&(q[p]=$f(q[p],q[k]+Qb|0,Xb-Qb|0));lg(b);var $b=I[s];if(($b|0)==(q[Ub>>2]|0)){var dc=1,ac=$b;break}var tc=$b,mc=$b}else{tc=Qb,mc=Xb}var gd=q[Sb>>2];q[Sb>>2]=gd+1|0;var bc=D[q[q[x]+36>>2]+gd|0],nc=bc&255;q[s]=mc+1|0;m[q[k]+mc|0]=bc;if(0==bc<<24>>24){dc=nc;ac=tc;break}Qb=tc;Xb=q[s]}if(0!=(q[q[x]+44>>2]|0)){var uc=I[s];uc>>>0>ac>>>0&&(q[p]=$f(q[p],q[k]+ac|0,uc-ac|0))}0==(dc|0)?(q[N]=103,Vb=Ta,Q=88):(Tb=q[N],Q=86)}}}while(0);86==Q&&(103!=(Tb|0)?Q=94:(Vb=P+28|0,Q=88));if(88==Q){if(0==(q[q[Vb>>2]+44>>2]|0)){q[N]=113}else{i=(P+20|0)>>2;var vc=I[i],Hc=P+12|0,Ic=I[Hc>>2];if((vc+2|0)>>>0>Ic>>>0){lg(b);var wc=q[i],oc=q[Hc>>2]}else{wc=vc,oc=Ic}if((wc+2|0)>>>0<=oc>>>0){j=(b+48|0)>>2;var xc=q[j]&255;q[i]=wc+1|0;var jc=P+8|0;m[q[jc>>2]+wc|0]=xc;var yc=I[j]>>>8&255,kc=I[i];q[i]=kc+1|0;m[q[jc>>2]+kc|0]=yc;q[j]=$f(0,0,0);q[N]=113}}}h=(P+20|0)>>2;var hd=0==(q[h]|0);do{if(hd){var zc=q[K+1];if(0!=(zc|0)){var pc=zc;break}if(!((Da|0)>=(f|0)&4!=(f|0))){pc=0;break}q[K+6]=O.s|0;Aa=-5;break a}lg(b);if(0==(q[ra]|0)){q[ka]=-1;Aa=0;break a}pc=q[K+1]}while(0);var Ac=666==(q[N]|0),Jc=0==(pc|0);do{if(Ac){if(Jc){Q=105;break}q[K+6]=O.s|0;Aa=-5;break a}Q=Jc?105:108}while(0);do{if(105==Q){if(0!=(q[oa+29]|0)){Q=108}else{if(0==(f|0)){Aa=0;break a}Q=Ac?124:108}}}while(0);do{if(108==Q){var Kc=q[oa+34],Yb=2==(Kc|0)?mg(P,f):3==(Kc|0)?ng(P,f):Bd[q[(ig+8>>2)+(3*q[oa+33]|0)]](P,f);2>(Yb-2|0)>>>0?q[N]=666:Q=114;if(2==(Yb|0)||0==(Yb|0)){if(0!=(q[ra]|0)){Aa=0;break a}q[ka]=-1;Aa=0;break a}else{if(1==(Yb|0)){if(1==(f|0)){og(P)}else{if(5!=(f|0)&&(pg(P,0,0,0),3==(f|0))){var Lc=P+76|0,ec=P+68|0;o[q[ec>>2]+(q[Lc>>2]-1<<1)>>1]=0;zd(q[ec>>2],(q[Lc>>2]<<1)-2|0);0==(q[oa+29]|0)&&(q[oa+27]=0,q[oa+23]=0)}}lg(b);if(0==(q[ra]|0)){q[ka]=-1;Aa=0;break a}}}}}while(0);if(!Fa){Aa=0;break a}g=(P+24|0)>>2;var Bc=q[g];if(1>(Bc|0)){Aa=1;break a}e=(b+48|0)>>2;var Mc=I[e];if(2==(Bc|0)){var fc=Mc&255,qc=q[h];q[h]=qc+1|0;c=(P+8|0)>>2;m[q[c]+qc|0]=fc;var rc=I[e]>>>8&255,lc=I[h];q[h]=lc+1|0;m[q[c]+lc|0]=rc;var fe=I[e]>>>16&255,Tc=I[h];q[h]=Tc+1|0;m[q[c]+Tc|0]=fe;var df=I[e]>>>24&255,ge=I[h];q[h]=ge+1|0;m[q[c]+ge|0]=df;d=(b+8|0)>>2;var ef=q[d]&255,he=q[h];q[h]=he+1|0;m[q[c]+he|0]=ef;var id=I[d]>>>8&255,Nc=I[h];q[h]=Nc+1|0;m[q[c]+Nc|0]=id;var ie=I[d]>>>16&255,Ad=I[h];q[h]=Ad+1|0;m[q[c]+Ad|0]=ie;var Uc=I[d]>>>24&255,Vc=I[h];q[h]=Vc+1|0;m[q[c]+Vc|0]=Uc}else{kg(P,Mc>>>16),kg(P,q[e]&65535)}lg(b);var Cc=q[g];0<(Cc|0)&&(q[g]=-Cc|0);Aa=0==(q[h]|0)&1;break a}}}while(0);q[K+6]=O.T|0}Aa=-2}}while(0);return Aa}jg.X=1;function kg(b,f){var d;d=(b+20|0)>>2;var c=I[d];q[d]=c+1|0;var e=b+8|0;m[q[e>>2]+c|0]=f>>>8&255;c=q[d];q[d]=c+1|0;m[q[e>>2]+c|0]=f&255}function lg(b){var f,d,c;c=(b+28|0)>>2;var e=I[c],g=I[e+20>>2];d=(b+16|0)>>2;f=I[d];g=g>>>0>f>>>0?f:g;0!=(g|0)&&(f=(b+12|0)>>2,qg(q[f],q[e+16>>2],g),q[f]=q[f]+g|0,e=q[c]+16|0,q[e>>2]=q[e>>2]+g|0,b=b+20|0,q[b>>2]=q[b>>2]+g|0,q[d]=q[d]-g|0,d=q[c]+20|0,q[d>>2]=q[d>>2]-g|0,c=q[c],0==(q[c+20>>2]|0)&&(q[(c+16|0)>>2]=q[c+8>>2]))}function mg(b,f){var d,c,e,g,h,j;j=(b+116|0)>>2;var i=b+96|0;h=(b+108|0)>>2;g=(b+56|0)>>2;e=(b+5792|0)>>2;var k=b+5796|0,p=b+5784|0,s=b+5788|0;c=(b+92|0)>>2;d=(b|0)>>2;a:for(;;){var u=0==(q[j]|0);do{if(u&&(rg(b),0==(q[j]|0))){if(0==(f|0)){var n=0;break a}e=q[c];j=4==(f|0);sg(b,-1<(e|0)?q[g]+e|0:0,q[h]-e|0,j&1);q[c]=q[h];lg(q[d]);if(0==(q[q[d]+16>>2]|0)){n=j?2:0;break a}n=j?3:1;break a}}while(0);q[i>>2]=0;u=D[q[g]+q[h]|0];o[q[k>>2]+(q[e]<<1)>>1]=0;var t=q[e];q[e]=t+1|0;m[q[p>>2]+t|0]=u;u=((u&255)<<2)+b+148|0;o[u>>1]=o[u>>1]+1&65535;t=(q[e]|0)==(q[s>>2]-1|0);q[j]=q[j]-1|0;u=q[h]+1|0;q[h]=u;if(t&&(t=q[c],sg(b,-1<(t|0)?q[g]+t|0:0,u-t|0,0),q[c]=q[h],lg(q[d]),0==(q[q[d]+16>>2]|0))){n=0;break}}return n}mg.X=1;function ng(b,f){var d,c,e,g,h,j,i,k;i=(b+116|0)>>2;var p=0==(f|0);j=(b+96|0)>>2;h=(b+108|0)>>2;g=(b+5792|0)>>2;var s=b+5796|0,u=b+5784|0,n=b+2440|0,t=b+5788|0;e=(b+56|0)>>2;c=(b+92|0)>>2;d=(b|0)>>2;a:for(;;){var r=I[i],x=258>r>>>0;do{if(x){rg(b);k=I[i];if(258>k>>>0&p){var v=0;break a}if(0!=(k|0)){if(q[j]=0,2>>0){A=k,k=9}else{var y=q[h];k=24}}else{g=q[c];j=4==(f|0);sg(b,-1<(g|0)?q[e]+g|0:0,q[h]-g|0,j&1);q[c]=q[h];lg(q[d]);if(0==(q[q[d]+16>>2]|0)){v=j?2:0;break a}v=j?3:1;break a}}else{q[j]=0;var A=r;k=9}}while(0);do{if(9==k){if(r=I[h],0==(r|0)){y=0,k=24}else{if(k=I[e],x=D[k+(r-1)|0],x<<24>>24!=m[k+r|0]<<24>>24){y=r,k=24}else{if(x<<24>>24!=m[r+(k+1)|0]<<24>>24){y=r,k=24}else{var B=r+(k+2)|0;if(x<<24>>24!=m[B]<<24>>24){y=r,k=24}else{for(k=r+(k+258)|0;;){var F=B+1|0;if(x<<24>>24!=m[F]<<24>>24){var H=F;break}F=B+2|0;if(x<<24>>24!=m[F]<<24>>24){H=F;break}F=B+3|0;if(x<<24>>24!=m[F]<<24>>24){H=F;break}F=B+4|0;if(x<<24>>24!=m[F]<<24>>24){H=F;break}F=B+5|0;if(x<<24>>24!=m[F]<<24>>24){H=F;break}F=B+6|0;if(x<<24>>24!=m[F]<<24>>24){H=F;break}F=B+7|0;if(x<<24>>24!=m[F]<<24>>24){H=F;break}B=B+8|0;if(!(x<<24>>24==m[B]<<24>>24&B>>>0>>0)){H=B;break}}x=H-k+258|0;x=x>>>0>A>>>0?A:x;q[j]=x;if(2>>0){var z=x+253|0,w=z&255;o[q[s>>2]+(q[g]<<1)>>1]=1;r=q[g];q[g]=r+1|0;m[q[u>>2]+r|0]=w;z=((D[O.j+(z&255)|0]&255|256)+1<<2)+b+148|0;o[z>>1]=o[z>>1]+1&65535;o[n>>1]=o[n>>1]+1&65535;z=(q[g]|0)==(q[t>>2]-1|0)&1;w=q[j];q[i]=q[i]-w|0;w=q[h]+w|0;q[h]=w;q[j]=0;k=25}else{y=r,k=24}}}}}}}while(0);24==k&&(z=D[q[e]+y|0],o[q[s>>2]+(q[g]<<1)>>1]=0,w=q[g],q[g]=w+1|0,m[q[u>>2]+w|0]=z,z=((z&255)<<2)+b+148|0,o[z>>1]=o[z>>1]+1&65535,z=(q[g]|0)==(q[t>>2]-1|0)&1,q[i]=q[i]-1|0,w=q[h]+1|0,q[h]=w);if(0!=(z|0)&&(r=q[c],sg(b,-1<(r|0)?q[e]+r|0:0,w-r|0,0),q[c]=q[h],lg(q[d]),0==(q[q[d]+16>>2]|0))){v=0;break}}return v}ng.X=1;function rg(b){var f,d,c,e,g=b+44|0,h=I[g>>2],j=b+60|0;c=(b+116|0)>>2;d=(b+108|0)>>2;var i=h-262|0,k=b|0;f=(b+56|0)>>2;var p=b+72|0,s=b+88|0,u=b+84|0,n=b+112|0,t=b+92|0,r=b+76|0,x=b+68|0,v=b+64|0,y=q[c];e=h;a:for(;;){var A=I[d],y=q[j>>2]-y-A|0;if(A>>>0<(i+e|0)>>>0){A=y}else{e=I[f];qg(e,e+h|0,h);q[n>>2]=q[n>>2]-h|0;q[d]=q[d]-h|0;q[t>>2]=q[t>>2]-h|0;e=A=q[r>>2];for(A=(A<<1)+q[x>>2]|0;;){var A=A-2|0,B=E[A>>1]&65535;o[A>>1]=B>>>0>>0?0:B-h&65535;e=e-1|0;if(0==(e|0)){break}}e=h;for(A=(h<<1)+q[v>>2]|0;!(A=A-2|0,B=E[A>>1]&65535,o[A>>1]=B>>>0>>0?0:B-h&65535,e=e-1|0,0==(e|0));){}A=y+h|0}y=q[k>>2];if(0==(q[y+4>>2]|0)){break}e=q[f]+q[c]+q[d]|0;var B=y+4|0,F=I[B>>2],A=F>>>0>A>>>0?A:F;0==(A|0)?y=0:(q[B>>2]=F-A|0,B=q[q[y+28>>2]+24>>2],1==(B|0)?(B=y+48|0,F=q[y>>2],q[B>>2]=Xf(q[B>>2],F,A),B=F):2==(B|0)?(B=y+48|0,F=q[y>>2],q[B>>2]=$f(q[B>>2],F,A),B=F):B=q[y>>2],F=y|0,qg(e,B,A),q[F>>2]=q[F>>2]+A|0,y=y+8|0,q[y>>2]=q[y>>2]+A|0,y=A);y=q[c]+y|0;q[c]=y;2>>0?(e=I[d],A=I[f],B=D[A+e|0]&255,q[p>>2]=B,q[p>>2]=(D[e+(A+1)|0]&255^B<>2])&q[u>>2],e=262>y>>>0?16:18):e=16;do{if(16==e&&0!=(q[q[k>>2]+4>>2]|0)){e=q[g>>2];continue a}}while(0);b=(b+5824|0)>>2;c=I[b];j=I[j>>2];if(c>>>0>=j>>>0){break}d=y+q[d]|0;if(c>>>0>>0){j=j-d|0;j=258>>0?258:j;zd(q[f]+d|0,j);q[b]=j+d|0;break}d=d+258|0;if(c>>>0>=d>>>0){break}d=d-c|0;j=j-c|0;d=d>>>0>j>>>0?j:d;zd(q[f]+c|0,d);q[b]=q[b]+d|0;break}}rg.X=1;function tg(b,f){var d,c,e,g,h;d=q[b+12>>2]-5|0;var j=65535>d>>>0?d:65535;h=(b+116|0)>>2;g=(b+108|0)>>2;e=(b+92|0)>>2;var i=b+44|0;c=(b+56|0)>>2;d=(b|0)>>2;a:for(;;){var k=I[h],p=2>k>>>0;do{if(p){rg(b);var s=I[h];if(0==(s|f|0)){var u=0;break a}if(0==(s|0)){u=q[e];h=4==(f|0);sg(b,-1<(u|0)?q[c]+u|0:0,q[g]-u|0,h&1);q[e]=q[g];lg(q[d]);if(0==(q[q[d]+16>>2]|0)){u=h?2:0;break a}u=h?3:1;break a}}else{s=k}}while(0);p=q[g]+s|0;q[g]=p;q[h]=0;k=I[e];s=k+j|0;if(!(0!=(p|0)&p>>>0>>0)){q[h]=p-s|0;q[g]=s;sg(b,-1<(k|0)?q[c]+k|0:0,j,0);q[e]=q[g];lg(q[d]);if(0==(q[q[d]+16>>2]|0)){u=0;break}p=q[g];k=q[e]}p=p-k|0;if(p>>>0>=(q[i>>2]-262|0)>>>0&&(sg(b,-1<(k|0)?q[c]+k|0:0,p,0),q[e]=q[g],lg(q[d]),0==(q[q[d]+16>>2]|0))){u=0;break}}return u}tg.X=1;function ug(b,f){var d=b>>2,c=I[d+31],e=I[d+14],g=I[d+27],h=e+g|0,j=I[d+30],i=I[d+36],k=q[d+11]-262|0,k=g>>>0>k>>>0?g-k|0:0,p=q[d+16],s=q[d+13],u=g+(e+258)|0,n=I[d+29],i=i>>>0>n>>>0?n:i,t=b+112|0,r=g+(e+1)|0,x=g+(e+2)|0,v=g+257|0,y=m[e+j+g|0],A=f,d=j>>>0>>0?c:c>>>2,c=m[e+(g-1)+j|0];a:for(;;){var B=e+A|0,F=m[e+A+j|0]<<24>>24==y<<24>>24;do{if(F){if(m[e+(j-1)+A|0]<<24>>24!=c<<24>>24){var H=y,z=c,w=j}else{if(m[B]<<24>>24!=m[h]<<24>>24){H=y,z=c,w=j}else{if(m[A+(e+1)|0]<<24>>24!=m[r]<<24>>24){H=y,z=c,w=j}else{H=x;for(z=A+(e+2)|0;;){w=H+1|0;if(m[w]<<24>>24!=m[z+1|0]<<24>>24){var J=w;break}w=H+2|0;if(m[w]<<24>>24!=m[z+2|0]<<24>>24){J=w;break}w=H+3|0;if(m[w]<<24>>24!=m[z+3|0]<<24>>24){J=w;break}w=H+4|0;if(m[w]<<24>>24!=m[z+4|0]<<24>>24){J=w;break}w=H+5|0;if(m[w]<<24>>24!=m[z+5|0]<<24>>24){J=w;break}w=H+6|0;if(m[w]<<24>>24!=m[z+6|0]<<24>>24){J=w;break}w=H+7|0;if(m[w]<<24>>24!=m[z+7|0]<<24>>24){J=w;break}H=H+8|0;z=z+8|0;if(!(m[H]<<24>>24==m[z]<<24>>24&H>>>0>>0)){J=H;break}}z=J-u|0;w=z+258|0;if((w|0)>(j|0)){q[t>>2]=A;if((w|0)>=(i|0)){var G=w;break a}H=m[e+w+g|0];z=m[e+v+z|0]}else{H=y,z=c,w=j}}}}}else{H=y,z=c,w=j}}while(0);A=E[p+((A&s)<<1)>>1]&65535;if(A>>>0<=k>>>0){G=w;break}d=d-1|0;if(0==(d|0)){G=w;break}y=H;c=z;j=w}return G>>>0>n>>>0?n:G}ug.X=1;function vg(b,f){var d,c,e,g,h,j,i,k,p,s,u,n;u=(b+116|0)>>2;var t=0==(f|0);s=(b+72|0)>>2;p=(b+88|0)>>2;k=(b+108|0)>>2;i=(b+56|0)>>2;j=(b+84|0)>>2;h=(b+68|0)>>2;var r=b+52|0,x=b+64|0,v=b+44|0;g=(b+96|0)>>2;var y=b+112|0;e=(b+5792|0)>>2;var A=b+5796|0,B=b+5784|0,F=b+5788|0,H=b+128|0;c=(b+92|0)>>2;d=(b|0)>>2;a:for(;;){var z=262>I[u]>>>0;do{if(z){rg(b);n=I[u];if(262>n>>>0&t){var w=0;break a}if(0==(n|0)){e=q[c];g=4==(f|0);sg(b,-1<(e|0)?q[i]+e|0:0,q[k]-e|0,g&1);q[c]=q[k];lg(q[d]);if(0==(q[q[d]+16>>2]|0)){w=g?2:0;break a}w=g?3:1;break a}else{n=2>>0?7:10}}else{n=7}}while(0);if(7==n){if(z=I[k],n=(D[q[i]+z+2|0]&255^q[s]<>1],o[q[x>>2]+((q[r>>2]&z)<<1)>>1]=n,z=n&65535,o[q[h]+(q[s]<<1)>>1]=q[k]&65535,0==n<<16>>16){n=10}else{if((q[k]-z|0)>>>0>(q[v>>2]-262|0)>>>0){n=10}else{var J=ug(b,z);q[g]=J;n=11}}}10==n&&(J=q[g]);if(2>>0){z=J+253|0;n=q[k]-q[y>>2]&65535;o[q[A>>2]+(q[e]<<1)>>1]=n;var G=q[e];q[e]=G+1|0;m[q[B>>2]+G|0]=z&255;n=n-1&65535;z=((D[O.j+(z&255)|0]&255|256)+1<<2)+b+148|0;o[z>>1]=o[z>>1]+1&65535;z=n&65535;z=((D[O.p+(256>(n&65535)?z:(z>>>7)+256|0)|0]&255)<<2)+b+2440|0;o[z>>1]=o[z>>1]+1&65535;z=(q[e]|0)==(q[F>>2]-1|0)&1;n=I[g];G=q[u]-n|0;q[u]=G;if(n>>>0<=I[H>>2]>>>0&2>>0){for(q[g]=n-1|0;!(G=I[k],n=G+1|0,q[k]=n,G=(D[q[i]+G+3|0]&255^q[s]<>2]+((q[r>>2]&n)<<1)>>1]=o[q[h]+(G<<1)>>1],o[q[h]+(q[s]<<1)>>1]=q[k]&65535,n=q[g]-1|0,q[g]=n,0==(n|0));){}n=q[k]+1|0;q[k]=n}else{n=q[k]+n|0;q[k]=n;q[g]=0;var G=I[i],S=D[G+n|0]&255;q[s]=S;q[s]=(D[n+(G+1)|0]&255^S<>2]+(q[e]<<1)>>1]=0,n=q[e],q[e]=n+1|0,m[q[B>>2]+n|0]=z,z=((z&255)<<2)+b+148|0,o[z>>1]=o[z>>1]+1&65535,z=(q[e]|0)==(q[F>>2]-1|0)&1,q[u]=q[u]-1|0,n=q[k]+1|0,q[k]=n}if(0!=(z|0)&&(z=q[c],sg(b,-1<(z|0)?q[i]+z|0:0,n-z|0,0),q[c]=q[k],lg(q[d]),0==(q[q[d]+16>>2]|0))){w=0;break}}return w}vg.X=1;function wg(b,f){var d,c,e,g,h,j,i,k,p,s,u,n,t,r,x,v;x=(b+116|0)>>2;var y=0==(f|0);r=(b+72|0)>>2;var A=b+88|0;t=(b+108|0)>>2;n=(b+56|0)>>2;var B=b+84|0;u=(b+68|0)>>2;var F=b+52|0,H=b+64|0;s=(b+96|0)>>2;p=(b+120|0)>>2;k=(b+112|0)>>2;i=(b+100|0)>>2;j=(b+5792|0)>>2;h=(b+5796|0)>>2;g=(b+5784|0)>>2;var z=b+5788|0;e=(b+104|0)>>2;c=(b+92|0)>>2;d=(b|0)>>2;var w=b+128|0,J=b+44|0,G=b+136|0;a:for(;;){for(var S=q[x];;){S=262>S>>>0;do{if(S){rg(b);v=I[x];if(262>v>>>0&y){var C=0;break a}if(0!=(v|0)){if(2>>0){v=9}else{q[p]=q[s];q[i]=q[k];var ka=q[s]=2;v=17}}else{0!=(q[e]|0)&&(i=D[q[n]+(q[t]-1)|0],o[q[h]+(q[j]<<1)>>1]=0,h=q[j],q[j]=h+1|0,m[q[g]+h|0]=i,g=((i&255)<<2)+b+148|0,o[g>>1]=o[g>>1]+1&65535,q[e]=0);e=I[c];g=4==(f|0);sg(b,-1<(e|0)?q[n]+e|0:0,q[t]-e|0,g&1);q[c]=q[t];lg(q[d]);if(0==(q[q[d]+16>>2]|0)){C=g?2:0;break a}C=g?3:1;break a}}else{v=9}}while(0);do{if(9==v){v=I[t];S=(D[q[n]+v+2|0]&255^q[r]<>2])&q[B>>2];q[r]=S;S=E[q[u]+(S<<1)>>1];o[q[H>>2]+((q[F>>2]&v)<<1)>>1]=S;v=S&65535;o[q[u]+(q[r]<<1)>>1]=q[t]&65535;var ra=I[s];q[p]=ra;q[i]=q[k];q[s]=2;if(0==S<<16>>16){ka=2,v=17}else{if(ra>>>0>2]>>>0){if((q[t]-v|0)>>>0>(q[J>>2]-262|0)>>>0){ka=2}else{if(ka=ug(b,v),q[s]=ka,6>ka>>>0){if(1!=(q[G>>2]|0)){if(3!=(ka|0)){v=17;break}if(4096>=(q[t]-q[k]|0)>>>0){ka=3;v=17;break}}ka=q[s]=2}}v=17}else{var N=ra,oa=2;v=18}}}}while(0);17==v&&(N=q[p],oa=ka);if(!(3>N>>>0|oa>>>0>N>>>0)){break}if(0==(q[e]|0)){q[e]=1,q[t]=q[t]+1|0,S=q[x]-1|0,q[x]=S}else{if(S=D[q[n]+(q[t]-1)|0],o[q[h]+(q[j]<<1)>>1]=0,v=q[j],q[j]=v+1|0,m[q[g]+v|0]=S,S=((S&255)<<2)+b+148|0,o[S>>1]=o[S>>1]+1&65535,(q[j]|0)==(q[z>>2]-1|0)&&(S=q[c],sg(b,-1<(S|0)?q[n]+S|0:0,q[t]-S|0,0),q[c]=q[t],lg(q[d])),q[t]=q[t]+1|0,S=q[x]-1|0,q[x]=S,0==(q[q[d]+16>>2]|0)){C=0;break a}}}ra=I[t];S=ra-3+q[x]|0;v=N+253|0;ra=ra+65535-q[i]&65535;o[q[h]+(q[j]<<1)>>1]=ra;var K=q[j];q[j]=K+1|0;m[q[g]+K|0]=v&255;ra=ra-1&65535;v=((D[O.j+(v&255)|0]&255|256)+1<<2)+b+148|0;o[v>>1]=o[v>>1]+1&65535;v=ra&65535;v=((D[O.p+(256>(ra&65535)?v:(v>>>7)+256|0)|0]&255)<<2)+b+2440|0;o[v>>1]=o[v>>1]+1&65535;v=q[j];ra=q[z>>2]-1|0;K=q[p];q[x]=1-K+q[x]|0;for(var K=K-2|0,Q=q[p]=K;;){var Ka=I[t],K=Ka+1|0;q[t]=K;K>>>0>S>>>0?K=Q:(Q=(D[q[n]+Ka+3|0]&255^q[r]<>2])&q[B>>2],q[r]=Q,o[q[H>>2]+((q[F>>2]&K)<<1)>>1]=o[q[u]+(Q<<1)>>1],o[q[u]+(q[r]<<1)>>1]=q[t]&65535,K=q[p]);K=K-1|0;q[p]=K;if(0==(K|0)){break}Q=K}v=(v|0)==(ra|0);q[e]=0;q[s]=2;S=q[t]+1|0;q[t]=S;if(v&&(v=q[c],sg(b,-1<(v|0)?q[n]+v|0:0,S-v|0,0),q[c]=q[t],lg(q[d]),0==(q[q[d]+16>>2]|0))){C=0;break}}return C}wg.X=1;function xg(b){if(0==(b|0)){b=-2}else{if(7247==(q[b>>2]|0)){var f=b>>2;if(0==(b|0)){b=-2}else{if(7247!=(q[f]|0)){b=-2}else{if(0!=(q[f+4]|0)){var d=b+84|0,c;if(0!=(d|0)){c=(d+28|0)>>2;var e=q[c];if(0!=(e|0)){var g=d+36|0,h=q[g>>2];if(0!=(h|0)){var j=q[e+52>>2],d=d+40|0;0==(j|0)?g=h:(Bd[h](q[d>>2],j),g=q[g>>2],e=q[c]);Bd[g](q[d>>2],e);q[c]=0}}}yg(q[f+7]);yg(q[f+6])}Mg(b,0,0);yg(q[f+2]);f=Lh(q[f+1]);yg(b);b=(0!=(f|0))<<31>>31}}}else{f=b>>2,0==(b|0)?b=-2:31153!=(q[f]|0)?b=-2:(c=b+72|0,0==(q[c>>2]|0)?c=0:(q[c>>2]=0,c=Mh(b,q[f+17])),c=Nh(b,4)+c|0,cg(b+84|0),yg(q[f+7]),yg(q[f+6]),Mg(b,0,0),yg(q[f+2]),f=Lh(q[f+1]),yg(b),b=((c|0)!=(-f|0))<<31>>31)}}return b}l._gzclose=xg;function Oh(b,f){return Ph(b,f)}l._gzopen=Oh;function Ph(b,f){var d,c,e,g=yd(140);e=g>>2;var h=0==(g|0);a:do{if(h){var j=0}else{q[e+4]=0;q[e+5]=8192;q[e+20]=0;c=g>>2;q[c]=0;var i=g+60|0;q[i>>2]=-1;d=(g+64|0)>>2;q[d]=0;for(var k=f,p=0;;){var s=m[k];if(0==s<<24>>24){if(0==(p|0)){yg(g);j=0;break a}h=yd(af(b)+1|0);d=g+8|0;q[d>>2]=h;if(0==(h|0)){yg(g);j=0;break a}Qh(h,b);h=q[c];h=Rh(b,7247==(h|0)?0:31153==(h|0)?1537:521);q[e+1]=h;if(-1==(h|0)){yg(q[d>>2]);yg(g);j=0;break a}e=q[c];1==(e|0)?q[c]=31153:7247==(e|0)&&(Sh[h]&&!Sh[h].object.b?(c=Sh[h],e=0,e+=c.position,0>e?(Th(Uh),c=-1):(c.c=[],c=c.position=e)):(Th(Vh),c=-1),e=g+44|0,q[e>>2]=c,-1==(c|0)&&(q[e>>2]=0));c=g;e=c>>2;7247==(q[e]|0)&&(q[e+9]=0,q[e+10]=0,q[e+13]=0,q[e+14]=1);q[e+18]=0;Mg(c,0,0);q[e+3]=0;q[e+22]=0;j=g;break a}else{var u=s<<24>>24,s=10>(s-48&255);do{if(s){q[i>>2]=u-48|0;var n=p}else{if(114==(u|0)){n=q[c]=7247}else{if(119==(u|0)){n=q[c]=31153}else{if(97==(u|0)){n=q[c]=1}else{if(43==(u|0)){yg(g);j=0;break a}else{70==(u|0)?q[d]=4:102==(u|0)?q[d]=1:104==(u|0)?q[d]=2:82==(u|0)&&(q[d]=3),n=p}}}}}}while(0);k=k+1|0;p=n}}}}while(0);return j}Ph.X=1;function Mg(b,f,d){var c,e;e=(b+80|0)>>2;var g=q[e];c=(b+76|0)>>2;0!=(g|0)&&(-4!=(q[c]|0)&&yg(g),q[e]=0);q[c]=f;if(0!=(d|0)){if(-4==(f|0)){q[e]=d}else{if(b=b+8|0,f=yd(af(d)+(af(q[b>>2])+3)|0),q[e]=f,0==(f|0)){q[c]=-4,q[e]=O.e|0}else{Qh(f,q[b>>2]);c=q[e];c=c+af(c)|0;m[c]=m[O.r|0];m[c+1]=m[(O.r|0)+1];m[c+2]=m[(O.r|0)+2];e=q[e];c=af(e);b=0;do{m[e+c+b]=m[d+b],b++}while(0!=m[d+(b-1)])}}}}function Wh(b,f,d){var c,e,g,h=Nb;Nb+=4;var j;g=h>>2;var i=0==(b|0);a:do{if(i){var k=-1}else{var p=b;if(7247!=(q[b>>2]|0)){k=-1}else{if(0!=(q[b+76>>2]|0)){k=-1}else{if(0>(d|0)){Mg(p,-5,O.F|0),k=-1}else{if(0==(d|0)){k=0}else{c=b+72|0;if(0!=(q[c>>2]|0)){q[c>>2]=0;c=p;e=c+36|0;var s=c+40|0,u=c+88|0,n=c+32|0,t=c+12|0,r=q[b+68>>2];b:for(;;){if(0==(r|0)){var x=0;break}for(;;){var v=q[e>>2];if(0!=(v|0)){break}if(0!=(q[s>>2]|0)&&0==(q[u>>2]|0)){x=0;break b}var y=-1==(Xh(c)|0);if(y){x=y<<31>>31;break b}}y=0>(v|0)|(v|0)>(r|0)?r:v;q[e>>2]=v-y|0;q[n>>2]=q[n>>2]+y|0;q[t>>2]=q[t>>2]+y|0;r=r-y|0}if(-1==(x|0)){k=-1;break}}s=b+88|0;u=b+100|0;e=(b+36|0)>>2;var n=b+40|0,t=b+52|0,r=b+16|0,y=b+96|0,A=b+12|0;c=(b+32|0)>>2;for(var B=0,F=f,H=d;;){var z=I[e],w=0==(z|0);b:do{if(w){if(0!=(q[n>>2]|0)&&0==(q[s>>2]|0)){k=B;break a}j=I[t>>2];var J=0==(j|0);do{if(!J&&H>>>0>=q[r>>2]<<1>>>0){if(1==(j|0)){if(-1==(Yh(p,F,H,h)|0)){k=-1;break a}ka=q[g];j=23;break b}q[u>>2]=H;q[y>>2]=F;if(-1==(Zh(p)|0)){k=-1;break a}ka=q[e];q[g]=ka;q[e]=0;j=23;break b}}while(0);if(-1==(Xh(p)|0)){k=-1;break a}var G=B,S=F,C=H;j=24}else{ka=z>>>0>H>>>0?H:z;q[g]=ka;qg(F,q[c],ka);ka=I[g];q[c]=q[c]+ka|0;q[e]=q[e]-ka|0;var ka=ka;j=23}}while(0);23==j&&(q[A>>2]=q[A>>2]+ka|0,G=ka+B|0,S=F+ka|0,C=H-ka|0);if(0==(C|0)){k=G;break a}B=G;F=S;H=C}}}}}}}while(0);Nb=h;return k}l._gzread=Wh;Wh.X=1;function Xh(b){var f=b>>2,d;d=b+52|0;var c=q[d>>2];if(0==(c|0)){if(-1==($h(b)|0)){var e=-1;d=11}else{if(0!=(q[f+9]|0)){e=0,d=11}else{var g=q[d>>2];d=6}}}else{g=c,d=6}do{if(6==d){if(1==(g|0)){e=b+28|0;if(-1==(Yh(b,q[e>>2],q[f+4]<<1,b+36|0)|0)){e=-1;break}q[f+8]=q[e>>2]}else{if(2==(g|0)&&(q[f+25]=q[f+4]<<1,q[f+24]=q[f+7],-1==(Zh(b)|0))){e=-1;break}}e=0}}while(0);return e}function Yh(b,f,d,c){q[c>>2]=0;for(var e=b+4|0,g=0;;){if(g=ai(q[e>>2],f+g|0,d-g|0),1>(g|0)){if(0>(g|0)){f=bi();Mg(b,-1,f);var h=-1;break}if(0!=(g|0)){h=0;break}q[b+40>>2]=1;h=0;break}else{if(g=q[c>>2]+g|0,q[c>>2]=g,g>>>0>=d>>>0){h=0;break}}}return h}function Zh(b){var f,d=b>>2,c=Nb;Nb+=8;var e=c+4;f=b+84|0;var g=b+100|0,h=q[g>>2],j=b+88|0;a:for(;;){var i=0==(q[j>>2]|0);do{if(i){if(-1==(ci(b)|0)){var k=-1;break a}if(0==(q[j>>2]|0)){Mg(b,-3,O.I|0);k=-1;break a}}}while(0);i=di(f);if(-2==(i|0)||2==(i|0)){Mg(b,-2,O.Y|0);k=-1;break}else{if(-4==(i|0)){Mg(b,-4,O.e|0);k=-1;break}else{if(-3==(i|0)){d=q[d+27];Mg(b,-3,0==(d|0)?O.$|0:d);k=-1;break}else{var p=q[g>>2],i=1==(i|0);if(0==(p|0)|i){g=h-p|0;q[d+9]=g;h=q[d+24]+ -g|0;q[d+8]=h;f=(b+132|0)>>2;q[f]=$f(q[f],h,g);if(!i){k=0;break}i=-1==(ei(b,c)|0);do{if(!i&&-1!=(ei(b,e)|0)){if((q[c>>2]|0)!=(q[f]|0)){Mg(b,-3,O.D|0);k=-1;break a}if((q[e>>2]|0)==(q[d+26]|0)){k=q[d+13]=0;break a}Mg(b,-3,O.G|0);k=-1;break a}}while(0);Mg(b,-3,O.I|0);k=-1;break}}}}}Nb=c;return k}Zh.X=1;function $h(b){var f,d,c,e,g,h,j=b>>2,i,k=b+84|0;h=(b+16|0)>>2;if(0==(q[h]|0)){e=(b+20|0)>>2;var p=yd(q[e]);c=(b+24|0)>>2;q[c]=p;var s=yd(q[e]<<1),u=b+28|0;q[u>>2]=s;var n=q[c],t=0==(s|0);if(0==(n|0)|t){if(t){var r=n}else{yg(s),r=q[c]}0!=(r|0)&&yg(r);Mg(b,-4,O.e|0);var x=-1;i=100}else{q[h]=q[e];q[j+29]=0;q[j+30]=0;q[j+31]=0;var v=b+88|0;q[v>>2]=0;q[k>>2]=0;var y;if(0==(k|0)){var A=-2}else{q[k+24>>2]=0;var B=k+32|0,F=q[B>>2];if(0==(F|0)){q[B>>2]=2;q[k+40>>2]=0;var H=2}else{H=F}y=(k+36|0)>>2;0==(q[y]|0)&&(q[y]=4);var z=k+40|0,w=Bd[H](q[z>>2],1,7116);if(0==(w|0)){A=-4}else{var J=k+28|0;q[J>>2]=w;q[(w+52|0)>>2]=0;var G;if(0==(k|0)){var S=-2}else{var C=q[k+28>>2];if(0==(C|0)){S=-2}else{var ka=C+52|0,ra=q[ka>>2],N=C+36|0;0!=(ra|0)&&15!=(q[N>>2]|0)&&(Bd[q[k+36>>2]](q[k+40>>2],ra),q[(ka|0)>>2]=0);q[(C+8|0)>>2]=0;q[N>>2]=15;S=fi(k)}}G=S;0==(G|0)?A=0:(Bd[q[y]](q[z>>2],w),q[J>>2]=0,A=G)}}0==(A|0)?(oa=v,g=oa>>2,i=12):(yg(q[u>>2]),yg(q[c]),q[h]=0,Mg(b,-4,O.e|0),x=-1,i=100)}}else{var oa=b+88|0;g=oa>>2;i=12}a:do{if(12==i){var K=q[g];if(0==(K|0)){if(-1==(ci(b)|0)){x=-1;break}var Q=q[g];if(0==(Q|0)){x=0;break}var Ka=Q}else{Ka=K}d=(k|0)>>2;var Aa=q[d];if(31==m[Aa]<<24>>24){var P=Ka-1|0;q[g]=P;var hb=Aa+1|0;q[d]=hb;var ya=0==(P|0);do{if(ya){if(-1==(ci(b)|0)){x=-1;break a}var Fa=q[g];if(0==(Fa|0)){i=96}else{var Da=Fa,Ma=q[d];i=21}}else{Da=P,Ma=hb,i=21}}while(0);do{if(21==i&&-117==m[Ma]<<24>>24){var ib=Da-1|0;q[g]=ib;var bb=Ma+1|0;q[d]=bb;if(0==(ib|0)){if(-1==(ci(b)|0)){i=27}else{var Cb=q[g];if(0==(Cb|0)){i=27}else{var Oa=Cb,Pa=q[d];i=26}}}else{Oa=ib,Pa=bb,i=26}do{if(26==i){var jb=Oa-1|0;q[g]=jb;var Db=Pa+1|0;q[d]=Db;if(8==m[Pa]<<24>>24){if(0==(jb|0)){if(-1==(ci(b)|0)){i=33}else{var xa=q[g];if(0==(xa|0)){i=33}else{var ta=xa,Va=q[d];i=32}}}else{ta=jb,Va=Db,i=32}do{if(32==i){var Xa=ta-1|0;q[g]=Xa;var Eb=Va+1|0;q[d]=Eb;var La=D[Va]&255;if(0==(La&224|0)){if(0==(Xa|0)){var wb=ci(b),Ya=I[g];if(-1==(wb|0)){var cb=Ya;i=39}else{if(0==(Ya|0)){i=40}else{var Qa=Ya,qb=q[d];i=38}}}else{Qa=Xa,qb=Eb,i=38}if(38==i){var Ga=Qa-1|0;q[g]=Ga;q[d]=qb+1|0;cb=Ga;i=39}if(39==i){if(0==(cb|0)){i=40}else{var Ua=cb;i=42}}if(40==i){var Za=ci(b),Wa=q[g];if(-1==(Za|0)){var db=Wa;i=43}else{0==(Wa|0)?i=44:(Ua=Wa,i=42)}}if(42==i){var $a=Ua-1|0;q[g]=$a;q[d]=q[d]+1|0;db=$a;i=43}if(43==i){if(0==(db|0)){i=44}else{var rb=db;i=46}}if(44==i){var kb=ci(b),R=q[g];if(-1==(kb|0)){var $=R;i=47}else{0==(R|0)?i=48:(rb=R,i=46)}}if(46==i){var ba=rb-1|0;q[g]=ba;q[d]=q[d]+1|0;$=ba;i=47}if(47==i){if(0==($|0)){i=48}else{var la=$;i=50}}if(48==i){var L=ci(b),Z=q[g];if(-1==(L|0)){var V=Z;i=51}else{0==(Z|0)?i=52:(la=Z,i=50)}}if(50==i){var M=la-1|0;q[g]=M;q[d]=q[d]+1|0;V=M;i=51}if(51==i){if(0==(V|0)){i=52}else{var pa=V;i=54}}if(52==i){var yb=ci(b),ca=q[g];if(-1==(yb|0)){var ea=ca;i=55}else{0==(ca|0)?i=56:(pa=ca,i=54)}}if(54==i){var ja=pa-1|0;q[g]=ja;q[d]=q[d]+1|0;ea=ja;i=55}if(55==i){if(0==(ea|0)){i=56}else{var T=ea;i=58}}if(56==i){if(-1==(ci(b)|0)){i=59}else{var fa=q[g];0==(fa|0)?i=59:(T=fa,i=58)}}58==i&&(q[g]=T-1|0,q[d]=q[d]+1|0);var qa=0==(La&4|0);b:do{if(!qa){var ma=q[g];if(0==(ma|0)){var na=ci(b),va=I[g];if(-1==(na|0)){var wa=-1,Ja=va;i=64}else{if(0==(va|0)){var Ra=-1;i=65}else{var W=va;i=63}}}else{W=ma,i=63}if(63==i){var U=W-1|0;q[g]=U;var ga=q[d];q[d]=ga+1|0;wa=D[ga]&255;Ja=U;i=64}if(64==i){if(0==(Ja|0)){Ra=wa,i=65}else{var ha=Ja,ia=wa;i=67}}if(65==i){if(-1==(ci(b)|0)){var X=-256,Ea=Ra;i=68}else{var eb=q[g];0==(eb|0)?(X=-256,Ea=Ra,i=68):(ha=eb,ia=Ra,i=67)}}if(67==i){q[g]=ha-1|0;var Fb=q[d];q[d]=Fb+1|0;X=(D[Fb]&255)<<8;Ea=ia}for(var ab=X+Ea|0;;){var sb=ab-1|0;if(0==(ab|0)){break b}var tb=q[g];if(0==(tb|0)){if(-1==(ci(b)|0)){break b}var ub=q[g];if(0==(ub|0)){break b}var lb=ub}else{lb=tb}q[g]=lb-1|0;q[d]=q[d]+1|0;ab=sb}}}while(0);var mb=0==(La&8|0);b:do{if(!mb){for(var fb=q[g];;){if(0==(fb|0)){if(-1==(ci(b)|0)){break b}var Sa=q[g];if(0==(Sa|0)){break b}var Ta=Sa}else{Ta=fb}var Ba=Ta-1|0;q[g]=Ba;var za=q[d];q[d]=za+1|0;if(0==m[za]<<24>>24){break b}fb=Ba}}}while(0);var gb=0==(La&16|0);b:do{if(!gb){for(var Gb=q[g];;){if(0==(Gb|0)){if(-1==(ci(b)|0)){break b}var Hb=q[g];if(0==(Hb|0)){break b}var vb=Hb}else{vb=Gb}var xb=vb-1|0;q[g]=xb;var nb=q[d];q[d]=nb+1|0;if(0==m[nb]<<24>>24){break b}Gb=xb}}}while(0);var Ib=0==(La&2|0);do{if(!Ib){var zb=q[g];if(0==(zb|0)){var Jb=ci(b),Kb=q[g];if(-1==(Jb|0)){var Pb=Kb;i=91}else{if(0==(Kb|0)){i=92}else{var Tb=Kb;i=90}}}else{Tb=zb,i=90}if(90==i){var Vb=Tb-1|0;q[g]=Vb;q[d]=q[d]+1|0;Pb=Vb;i=91}if(91==i){if(0==(Pb|0)){i=92}else{var Wb=Pb;i=94}}if(92==i){if(-1==(ci(b)|0)){break}var Ub=q[g];if(0==(Ub|0)){break}Wb=Ub}q[g]=Wb-1|0;q[d]=q[d]+1|0}}while(0);fi(k);q[j+33]=$f(0,0,0);q[j+13]=2;x=q[j+14]=0;break a}}}while(0);Mg(b,-3,O.H|0);x=-1;break a}}}while(0);Mg(b,-3,O.q|0);x=-1;break a}}while(0);var Sb=b+28|0;m[q[Sb>>2]]=31;q[j+9]=1;var Qb=q[g],Xb=Sb}else{Qb=Ka,Xb=b+28|0}q[j+12]=q[j+3];var $b=q[Xb>>2];q[j+8]=$b;0!=(Qb|0)&&(f=(b+36|0)>>2,qg($b+q[f]|0,q[d],Qb),q[f]=q[f]+q[g]|0,q[g]=0);q[j+13]=1;q[j+14]=1;x=0}}while(0);return x}$h.X=1;function ci(b){if(0==(q[b+76>>2]|0)){if(0!=(q[b+40>>2]|0)){b=0}else{var f=b+24|0;-1==(Yh(b,q[f>>2],q[b+16>>2],b+88|0)|0)?b=-1:(q[b+84>>2]=q[f>>2],b=0)}}else{b=-1}return b}function ei(b,f){var d,c,e=b+84|0;d=(b+88|0)>>2;c=q[d];if(0==(c|0)){c=ci(b);var g=I[d];if(-1==(c|0)){var h=-1,j=g;c=6}else{if(0==(g|0)){var i=-1;c=7}else{var k=g;c=5}}}else{k=c,c=5}5==c&&(j=k-1|0,q[d]=j,h=e|0,k=q[h>>2],q[h>>2]=k+1|0,h=D[k]&255,c=6);if(6==c){if(0==(j|0)){i=h,c=7}else{var p=j,s=h;c=10}}if(7==c){if(h=ci(b),j=I[d],-1==(h|0)){var u=-256,n=i,t=j;c=11}else{if(0!=(j|0)){p=j,s=i,c=10}else{var r=i-256|0;c=12}}}10==c&&(t=p-1|0,q[d]=t,u=e|0,n=q[u>>2],q[u>>2]=n+1|0,u=(D[n]&255)<<8,n=s,c=11);if(11==c){if(s=u+n|0,0==(t|0)){r=s,c=12}else{var x=t,v=s;c=15}}if(12==c){if(s=ci(b),u=I[d],-1==(s|0)){var y=-65536,A=r,B=u;c=16}else{if(0!=(u|0)){x=u,v=r,c=15}else{var F=r-65536|0;c=17}}}15==c&&(B=x-1|0,q[d]=B,y=e|0,A=q[y>>2],q[y>>2]=A+1|0,y=(D[A]&255)<<16,A=v,c=16);if(16==c){if(v=y+A|0,0==(B|0)){F=v,c=17}else{var H=B,z=v;c=19}}if(17==c){if(-1==(ci(b)|0)){var w=-1;c=20}else{v=q[d],0==(v|0)?(w=-1,c=20):(H=v,z=F,c=19)}}19==c&&(q[d]=H-1|0,d=e|0,e=q[d>>2],q[d>>2]=e+1|0,q[f>>2]=((D[e]&255)<<24)+z|0,w=0);return w}ei.X=1;function gi(b,f,d){var c,e,g=0==(b|0);a:do{if(g){e=0}else{var h=b,j=b+84|0;if(31153!=(q[b>>2]|0)){e=0}else{if(0!=(q[b+76>>2]|0)){e=0}else{if(0>(d|0)){Mg(h,-5,O.F|0),e=0}else{if(0==(d|0)){e=0}else{if(e=(b+16|0)>>2,0==(q[e]|0)&&-1==(hi(h)|0)){e=0}else{c=b+72|0;if(0!=(q[c>>2]|0)&&(q[c>>2]=0,-1==(Mh(h,q[b+68>>2])|0))){e=0;break}var i=I[e]>>>0>d>>>0;c=(b+88|0)>>2;b:do{if(i){for(var k=b+24|0,p=j,s=b+12|0,u=f,n=d;;){var t=I[c];if(0==(t|0)){var r=q[k>>2];q[p>>2]=r}else{r=q[p>>2]}var x=q[e]-t|0,x=x>>>0>n>>>0?n:x;qg(r+t|0,u,x);q[c]=q[c]+x|0;q[s>>2]=q[s>>2]+x|0;if((n|0)==(x|0)){break b}n=n-x|0;u=u+x|0;if(-1==(Nh(h,0)|0)){e=0;break a}}}else{if(0!=(q[c]|0)&&-1==(Nh(h,0)|0)){e=0;break a}q[c]=d;q[j>>2]=f;k=b+12|0;q[k>>2]=q[k>>2]+d|0;if(-1==(Nh(h,0)|0)){e=0;break a}}}while(0);e=d}}}}}}}while(0);return e}l._gzwrite=gi;gi.X=1;function ii(b,f){var d,c,e=I[b+28>>2];d=e>>2;var g=b|0,h=q[g>>2],j=b+4|0,i=h+(q[j>>2]-6)|0,k=b+12|0,p=q[k>>2],s=b+16|0,u=q[s>>2],n=p+(u-258)|0,t=I[d+11],r=I[d+12],x=I[d+13],v=e+56|0,y=e+60|0,A=q[d+19],B=q[d+20],F=(1<>2],Ka=q[v>>2];a:for(;;){if(15>Q>>>0){var Aa=oa+2|0,P=Aa,hb=Q+16|0,ya=((D[oa+1|0]&255)<>1],Cb=D[(Ma<<2)+A+1|0]&255,Oa=Da>>>(Cb>>>0),Pa=Fa-Cb|0,jb=ib&255;if(0==ib<<24>>24){var Db=K+1|0;m[Db]=bb&255;var xa=P,ta=Db,Va=Pa,Xa=Oa;c=59;break}if(0!=(jb&16|0)){c=9;break}if(0==(jb&64|0)){var Eb=(Oa&(1<>2]=O.A|0;q[d]=29;var La=P,wb=K,Ya=Pa,cb=Oa;break a}q[d]=11;La=P;wb=K;Ya=Pa;cb=Oa;break a}}do{if(9==c){var Qa=bb&65535,qb=jb&15;if(0==(qb|0)){var Ga=Qa,Ua=P,Za=Pa,Wa=Oa}else{if(Pa>>>0>>0){var db=P+1|0,$a=db,rb=Pa+8|0,kb=((D[db]&255)<>>(qb>>>0)}if(15>Za>>>0){var R=Ua+2|0,$=R,ba=Za+16|0,la=((D[Ua+1|0]&255)<>1],pa=D[(V<<2)+B+1|0]&255,yb=Z>>>(pa>>>0),ca=L-pa|0,ea=D[(V<<2)+B|0]&255;if(0!=(ea&16|0)){break}if(0!=(ea&64|0)){q[b+24>>2]=O.B|0;q[d]=29;La=$;wb=K;Ya=ca;cb=yb;break a}var ja=(yb&(1<>>0>>0){var qa=$+1|0,ma=((D[qa]&255)<>>0>>0){var va=$+2|0,wa=va,Ja=ca+16|0,Ra=((D[va]&255)<>>(fa>>>0),ha=Ja-fa|0,ia=K,X=ia-z|0;if(U>>>0>X>>>0){var Ea=U-X|0,eb=Ea>>>0>t>>>0;do{if(eb){if(0==(q[w>>2]|0)){break}q[b+24>>2]=O.C|0;q[d]=29;La=wa;wb=K;Ya=ha;cb=ga;break a}c=24}while(0);do{if(G){var Fb=x+(S-Ea)|0;if(Ea>>>0>>0){for(var ab=Ga-Ea|0,sb=W-ia|0,tb=ra+sb|0,ub=Fb,lb=Ea,mb=K;;){var fb=ub+1|0,Sa=mb+1|0;m[Sa]=m[fb];var Ta=lb-1|0;if(0==(Ta|0)){break}ub=fb;lb=Ta;mb=Sa}Ba=K+tb+T+(1-U)|0;za=ab;gb=K+z+sb+T|0}else{var Ba=Fb,za=Ga,gb=K}}else{if(r>>>0>>0){var Gb=x+(C-Ea)|0,Hb=Ea-r|0;if(Hb>>>0>>0){for(var vb=Ga-Hb|0,xb=W-ia|0,nb=Gb,Ib=Hb,zb=K;;){var Jb=nb+1|0,Kb=zb+1|0;m[Kb]=m[Jb];var Pb=Ib-1|0;if(0==(Pb|0)){break}nb=Jb;Ib=Pb;zb=Kb}var Tb=K+N+xb+T|0;if(r>>>0>>0){for(var Vb=vb-r|0,Wb=ra+xb|0,Ub=J,Sb=r,Qb=Tb;;){var Xb=Ub+1|0,$b=Qb+1|0;m[$b]=m[Xb];var dc=Sb-1|0;if(0==(dc|0)){break}Ub=Xb;Sb=dc;Qb=$b}Ba=K+Wb+T+(1-U)|0;za=Vb;gb=K+z+xb+T|0}else{Ba=J,za=vb,gb=Tb}}else{Ba=Gb,za=Ga,gb=K}}else{var ac=x+(ka-Ea)|0;if(Ea>>>0>>0){for(var tc=Ga-Ea|0,mc=W-ia|0,gd=ra+mc|0,bc=ac,nc=Ea,uc=K;;){var vc=bc+1|0,Hc=uc+1|0;m[Hc]=m[vc];var Ic=nc-1|0;if(0==(Ic|0)){break}bc=vc;nc=Ic;uc=Hc}Ba=K+gd+T+(1-U)|0;za=tc;gb=K+z+mc+T|0}else{Ba=ac,za=Ga,gb=K}}}}while(0);var wc=2>>0;b:do{if(wc){for(var oc=gb,xc=za,jc=Ba;;){m[oc+1|0]=m[jc+1|0];m[oc+2|0]=m[jc+2|0];var yc=jc+3|0,kc=oc+3|0;m[kc]=m[yc];var hd=xc-3|0;if(2>=hd>>>0){var zc=kc,pc=hd,Ac=yc;break b}oc=kc;xc=hd;jc=yc}}else{zc=gb,pc=za,Ac=Ba}}while(0);if(0==(pc|0)){xa=wa,ta=zc}else{var Jc=zc+1|0;m[Jc]=m[Ac+1|0];if(1>>0){var Kc=zc+2|0;m[Kc]=m[Ac+2|0];xa=wa;ta=Kc}else{xa=wa,ta=Jc}}}else{for(var Yb=K+ -U|0,Lc=Ga,ec=K;;){m[ec+1|0]=m[Yb+1|0];m[ec+2|0]=m[Yb+2|0];var Bc=Yb+3|0,Mc=ec+3|0;m[Mc]=m[Bc];var fc=Lc-3|0;if(2>=fc>>>0){break}Yb=Bc;Lc=fc;ec=Mc}if(0==(fc|0)){xa=wa,ta=Mc}else{var qc=ec+4|0;m[qc]=m[Yb+4|0];if(1>>0){var rc=ec+5|0;m[rc]=m[Yb+5|0];xa=wa;ta=rc}else{xa=wa,ta=qc}}}Va=ha;Xa=ga}}while(0);if(!(xa>>>0>>0&ta>>>0>>0)){La=xa;wb=ta;Ya=Va;cb=Xa;break}oa=xa;K=ta;Q=Va;Ka=Xa}var lc=Ya>>>3,fe=La+ -lc|0,Tc=Ya&7;q[g>>2]=La+(1-lc)|0;q[k>>2]=wb+1|0;q[j>>2]=(i-fe|0)+5|0;q[s>>2]=(n-wb|0)+257|0;q[v>>2]=(1<>2]=Tc}ii.X=1;function hi(b){var f,d,c=b>>2;d=(b+20|0)>>2;var e=yd(q[d]);f=(b+24|0)>>2;q[f]=e;var g=yd(q[d]),e=b+28|0;q[e>>2]=g;var h=q[f],j=0==(g|0);0==(h|0)|j?(j?c=h:(yg(g),c=q[f]),0!=(c|0)&&yg(c),Mg(b,-4,O.e|0),c=-1):(q[c+29]=0,q[c+30]=0,q[c+31]=0,0==(ag(b+84|0,q[c+15],q[c+16])|0)?(b=q[d],q[c+4]=b,q[c+25]=b,b=q[e>>2],q[c+24]=b,q[c+8]=b,c=0):(yg(q[f]),Mg(b,-4,O.e|0),c=-1));return c}hi.X=1;function Mh(b,f){var d,c=b+88|0;if(0==(q[c>>2]|0)){d=4}else{if(-1==(Nh(b,0)|0)){var e=-1;d=9}else{d=4}}a:do{if(4==d){for(var g=b+16|0,h=b+24|0,j=b+84|0,i=b+12|0,k=1,p=f;;){if(0==(p|0)){e=0;break a}var s=q[g>>2],s=0>(s|0)|(s|0)>(p|0)?p:s;0!=(k|0)&&zd(q[h>>2],s);q[c>>2]=s;q[j>>2]=q[h>>2];q[i>>2]=q[i>>2]+s|0;if(-1==(Nh(b,0)|0)){e=-1;break a}k=0;p=p-s|0}}}while(0);return e}function Nh(b,f){var d,c,e,g,h,j=b+84|0;g=(b+16|0)>>2;if(0==(q[g]|0)){if(-1==(hi(b)|0)){var i=-1;h=30}else{h=4}}else{h=4}do{if(4==h){e=(b+100|0)>>2;c=(b+96|0)>>2;d=(b+32|0)>>2;var k=b+28|0,p=b+4|0,s=j,u=0==(f|0),n=q[e];a:do{if(u){for(var t=n;;){if(0==(t|0)){h=q[c];var t=q[d],r=h-t|0,x=(h|0)==(t|0);do{if(x){h=13}else{h=ji(q[p>>2],t,r);if(!(-1<(h|0)&(h|0)==(r|0))){h=20;break a}h=q[e];if(0==(h|0)){h=13}else{var v=h,y=q[c];h=8}}}while(0);13==h&&(v=q[g],q[e]=v,y=q[k>>2],q[c]=y);q[d]=y;t=v}if(-2==(jg(s,0)|0)){h=26;break a}r=q[e];if((t|0)==(r|0)){h=28;break a}t=r}}else{r=0;for(t=n;;){if(0==(t|0)){h=17}else{if(0==(f|0)){var A=t;h=25}else{4!=(f|0)?h=17:1==(r|0)?h=17:(A=t,h=25)}}if(17==h){var x=q[c],B=q[d],r=x-B|0;if((x|0)==(B|0)){A=t}else{t=ji(q[p>>2],B,r);if(!(-1<(t|0)&(t|0)==(r|0))){h=20;break a}A=q[e]}0==(A|0)?(t=q[g],q[e]=t,A=q[k>>2],q[c]=A):(t=A,A=q[c]);q[d]=A;A=t}r=jg(s,f);if(-2==(r|0)){h=26;break a}t=q[e];if((A|0)==(t|0)){h=28;break a}}}}while(0);20==h?(d=bi(),Mg(b,-1,d),i=-1):26==h?(Mg(b,-2,O.O|0),i=-1):28==h&&(4==(f|0)&&bg(s),i=0)}}while(0);return i}Nh.X=1;function fi(b){var f=b>>2;0==(b|0)?f=-2:(b=q[f+7],0==(b|0)?f=-2:(q[(b+28|0)>>2]=0,q[f+5]=0,q[f+2]=0,q[f+6]=0,q[f+12]=1,q[(b|0)>>2]=0,q[(b+4|0)>>2]=0,q[(b+12|0)>>2]=0,q[(b+20|0)>>2]=32768,q[(b+32|0)>>2]=0,q[(b+40|0)>>2]=0,q[(b+44|0)>>2]=0,q[(b+48|0)>>2]=0,q[(b+56|0)>>2]=0,q[(b+60|0)>>2]=0,f=b+1328|0,q[(b+108|0)>>2]=f,q[(b+80|0)>>2]=f,q[(b+76|0)>>2]=f,q[(b+7104|0)>>2]=1,q[(b+7108|0)>>2]=-1,f=0));return f}fi.X=1;function di(b){var f,d,c,e,g,h,j,i,k,p,s,u,n,t,r,x,v,y,A,B,F,H,z,w,J,G,S=Nb;Nb+=4;var C,ka=0==(b|0);a:do{if(ka){var ra=-2}else{var N=q[b+28>>2];if(0==(N|0)){ra=-2}else{G=(b+12|0)>>2;var oa=q[G];if(0==(oa|0)){ra=-2}else{J=(b|0)>>2;var K=q[J];if(0==(K|0)&&0!=(q[b+4>>2]|0)){ra=-2}else{var Q=N;w=(N|0)>>2;var Ka=q[w];if(11==(Ka|0)){q[w]=12;var Aa=q[G],P=q[J],hb=12}else{Aa=oa,P=K,hb=Ka}z=(b+16|0)>>2;var ya=q[z];H=(b+4|0)>>2;var Fa=I[H];F=(N+56|0)>>2;B=(N+60|0)>>2;A=(N+8|0)>>2;y=(N+24|0)>>2;var Da=S|0,Ma=S+1|0;v=(N+16|0)>>2;x=(N+32|0)>>2;r=(b+24|0)>>2;var ib=N+36|0,bb=N+20|0;t=(b+48|0)>>2;n=(N+64|0)>>2;var Cb=N+12|0;u=(N+4|0)>>2;s=(N+7108|0)>>2;var Oa=N+84|0;p=Oa>>2;var Pa=N+76|0;k=(N+72|0)>>2;var jb=N+7112|0;i=(N+68|0)>>2;var Db=N+44|0,xa=N+7104|0,ta=N+48|0,Va=N+52|0,Xa=N+40|0;j=(b+20|0)>>2;h=(N+28|0)>>2;var Eb=S+2|0,La=S+3|0;g=(N+96|0)>>2;e=(N+100|0)>>2;var wb=N+92|0;c=(N+104|0)>>2;var Ya=N+112|0;d=Ya>>1;var cb=N+108|0,Qa=cb,qb=cb|0,Ga=N+1328|0,Ua=N+76|0,Za=Ya,Wa=N+752|0,db=N+624|0,$a=N+80|0,rb=N+88|0,kb=N+80|0,R=0,$=P,ba=Aa,la=Fa,L=ya,Z=q[F],V=q[B],M=ya,pa=hb;b:for(;;){c:do{if(0==(pa|0)){var yb=I[A];if(0==(yb|0)){q[w]=12;var ca=R,ea=$,ja=ba,T=la,fa=L,qa=Z,ma=V,na=M}else{for(var va=$,wa=la,Ja=Z,Ra=V;16>Ra>>>0;){if(0==(wa|0)){var W=R,U=va,ga=0,ha=Ja,ia=Ra,X=M;break b}var Ea=((D[va]&255)<>2]=-1,Fb=q[A]}var ab=0==(Fb&1|0);do{if(!ab&&0==((((Ja<<8&65280)+(Ja>>>8)|0)>>>0)%31|0)){if(8==(Ja&15|0)){var sb=Ja>>>4,tb=Ra-4|0,ub=(sb&15)+8|0,lb=I[ib>>2],mb=0==(lb|0);do{if(!mb){if(ub>>>0<=lb>>>0){break}q[r]=O.S|0;q[w]=29;ca=R;ea=va;ja=ba;T=wa;fa=L;qa=sb;ma=tb;na=M;C=266;break c}q[ib>>2]=ub}while(0);q[bb>>2]=1<>>12&2^11;ca=R;ea=va;ja=ba;T=wa;fa=L;ma=qa=0;na=M;C=266;break c}q[r]=O.q|0;q[w]=29;ca=R;ea=va;ja=ba;T=wa;fa=L;qa=Ja;ma=Ra;na=M;C=266;break c}}while(0);q[r]=O.R|0;q[w]=29;ca=R;ea=va;ja=ba;T=wa;fa=L;qa=Ja;ma=Ra}na=M}C=266}else{if(1==(pa|0)){for(var Sa=$,Ta=la,Ba=Z,za=V;16>za>>>0;){if(0==(Ta|0)){W=R;U=Sa;ga=0;ha=Ba;ia=za;X=M;break b}var gb=((D[Sa]&255)<>2]=Ba>>>8&1,Hb=q[v]}0!=(Hb&512|0)&&(m[Da]=Ba&255,m[Ma]=Ba>>>8&255,q[y]=$f(q[y],Da,2));q[w]=2;var vb=Sa,xb=Ta,nb=0,Ib=0;C=45}else{q[r]=O.H|0,q[w]=29,ca=R,ea=Sa,ja=ba,T=Ta,fa=L,qa=Ba,ma=za,na=M,C=266}}}else{if(2==(pa|0)){vb=$,xb=la,nb=Z,Ib=V,C=45}else{if(3==(pa|0)){var zb=$,Jb=la,Kb=Z,Pb=V;C=53}else{if(4==(pa|0)){var Tb=$,Vb=la,Wb=Z,Ub=V;C=61}else{if(5==(pa|0)){var Sb=$,Qb=la,Xb=Z,$b=V;C=72}else{if(6==(pa|0)){var dc=$,ac=la,tc=Z,mc=V,gd=q[v];C=82}else{if(7==(pa|0)){var bc=$,nc=la,uc=Z,vc=V;C=95}else{if(8==(pa|0)){var Hc=$,Ic=la,wc=Z,oc=V;C=108}else{if(9==(pa|0)){for(var xc=$,jc=la,yc=Z,kc=V;32>kc>>>0;){if(0==(jc|0)){W=R;U=xc;ga=0;ha=yc;ia=kc;X=M;break b}var hd=((D[xc]&255)<>>(Mc>>>0),lc=V-Mc|0;32>lc>>>0;){if(0==(qc|0)){W=R;U=fc;ga=0;ha=rc;ia=lc;X=M;break b}var fe=((D[fc]&255)<>>16^65535|0)){q[n]=Tc;q[w]=14;var df=fc,ge=qc,ef=0,he=0;C=142}else{q[r]=O.Z|0,q[w]=29,ca=R,ea=fc,ja=ba,T=qc,fa=L,qa=rc,ma=lc,na=M,C=266}}else{if(14==(pa|0)){df=$,ge=la,ef=Z,he=V,C=142}else{if(15==(pa|0)){var id=$,Nc=la,ie=Z,Ad=V;C=143}else{if(16==(pa|0)){for(var Uc=$,Vc=la,Cc=Z,Dd=V;14>Dd>>>0;){if(0==(Vc|0)){W=R;U=Uc;ga=0;ha=Cc;ia=Dd;X=M;break b}var Rl=((D[Uc]&255)<>>5&31)+1|0;q[e]=Ni;q[wb>>2]=(Cc>>>10&15)+4|0;var Oi=Cc>>>14,Pi=Dd-14|0;if(286>>0|30>>0){q[r]=O.aa|0,q[w]=29,ca=R,ea=Uc,ja=ba,T=Vc,fa=L,qa=Oi,ma=Pi,na=M,C=266}else{q[c]=0;q[w]=17;var je=Uc,ke=Vc,le=Oi,me=Pi;C=153}}else{if(17==(pa|0)){je=$,ke=la,le=Z,me=V,C=153}else{if(18==(pa|0)){var Dc=R,Qi=$,Ri=la,Si=Z,Ti=V;C=163}else{if(19==(pa|0)){var Ui=R,Vi=$,Wi=la,Xi=Z,Yi=V;C=204}else{if(20==(pa|0)){var Wc=R,zg=$,ff=la,Ag=Z,Bg=V;C=205}else{if(21==(pa|0)){var Cg=R,Dg=$,Eg=la,Fg=Z,Gg=V,ld=q[k];C=226}else{if(22==(pa|0)){var ne=R,Zi=$,$i=la,aj=Z,bj=V;C=233}else{if(23==(pa|0)){var Hg=R,Ig=$,Jg=la,Kg=Z,Lg=V,md=q[k];C=247}else{if(24==(pa|0)){var gf=R,hf=$,jf=la,kf=Z,lf=V;C=253}else{if(25==(pa|0)){if(0==(L|0)){W=R;U=$;ga=la;ha=Z;ia=V;X=M;break b}m[ba]=q[n]&255;q[w]=20;ca=R;ea=$;ja=ba+1|0;T=la;fa=L-1|0;qa=Z;ma=V;na=M;C=266}else{if(26==(pa|0)){var Sl=0==(q[A]|0);do{if(!Sl){for(var Ed=$,oe=la,Fd=Z,Gd=V;32>Gd>>>0;){if(0==(oe|0)){W=R;U=Ed;ga=0;ha=Fd;ia=Gd;X=M;break b}var Tl=((D[Ed]&255)<Ib>>>0;){if(0==(xb|0)){W=R;U=vb;ga=0;ha=nb;ia=Ib;X=M;break b}var Ul=((D[vb]&255)<>2]=nb);0!=(q[v]&512|0)&&(m[Da]=nb&255,m[Ma]=nb>>>8&255,m[Eb]=nb>>>16&255,m[La]=nb>>>24&255,q[y]=$f(q[y],Da,4));q[w]=3;zb=vb;Jb=xb;Pb=Kb=0;C=53}else{if(121==C){if(0==(q[Cb>>2]|0)){q[G]=ba;q[z]=L;q[J]=pc;q[H]=Ac;q[F]=Jc;q[B]=Kc;ra=2;break a}var lj=Xf(0,0,0);q[y]=lj;q[t]=lj;q[w]=11;Yb=pc;Lc=Ac;ec=Jc;Bc=Kc;C=124}else{if(142==C){q[w]=15,id=df,Nc=ge,ie=ef,Ad=he,C=143}else{if(153==C){for(;;){var qe=I[c];if(qe>>>0>=I[wb>>2]>>>0){break}for(var re=je,rf=ke,se=le,Hd=me;3>Hd>>>0;){if(0==(rf|0)){W=R;U=re;ga=0;ha=se;ia=Hd;X=M;break b}var Vl=((D[re]&255)<>1]&65535)<<1>>1)+d]=se&7;je=re;ke=rf;le=se>>>3;me=Hd-3|0}var Wl=19>qe>>>0;d:do{if(Wl){for(var Ng=qe;;){q[c]=Ng+1|0;o[((E[li+(Ng<<1)>>1]&65535)<<1>>1)+d]=0;var mj=I[c];if(19<=mj>>>0){break d}Ng=mj}}}while(0);q[qb>>2]=Ga;q[Ua>>2]=Ga;q[p]=7;var nj=mi(0,Za,19,Qa,Oa,Wa);0==(nj|0)?(q[c]=0,q[w]=18,Dc=0,Qi=je,Ri=ke,Si=le,Ti=me,C=163):(q[r]=O.ba|0,q[w]=29,ca=nj,ea=je,ja=ba,T=ke,fa=L,qa=le,ma=me,na=M,C=266)}else{if(284==C){var Xl=0==(q[A]|0);do{if(!Xl){if(0==(q[v]|0)){var Og=mf,Pg=nf,Qg=of,Rg=pf;break}for(var Id=mf,te=nf,ue=of,Jd=pf;32>Jd>>>0;){if(0==(te|0)){W=R;U=Id;ga=0;ha=ue;ia=Jd;X=qf;break b}var Yl=((D[Id]&255)<Pb>>>0;){if(0==(Jb|0)){W=R;U=zb;ga=0;ha=Kb;ia=Pb;X=M;break b}var Zl=((D[zb]&255)<>2]=Kb&255,q[(q[x]+12|0)>>2]=Kb>>>8);0!=(q[v]&512|0)&&(m[Da]=Kb&255,m[Ma]=Kb>>>8&255,q[y]=$f(q[y],Da,2));q[w]=4;Tb=zb;Vb=Jb;Ub=Wb=0;C=61}else{if(124==C){if(0==(q[u]|0)){for(var ve=Yb,tf=Lc,Kd=ec,Ld=Bc;3>Ld>>>0;){if(0==(tf|0)){W=R;U=ve;ga=0;ha=Kd;ia=Ld;X=M;break b}var $l=((D[ve]&255)<>>1&3;if(0==(uf|0)){q[w]=13}else{if(1==(uf|0)){var vf=Q;q[vf+76>>2]=ni|0;q[vf+84>>2]=9;q[vf+80>>2]=oi|0;q[vf+88>>2]=5;q[w]=19}else{2==(uf|0)?q[w]=16:3==(uf|0)&&(q[r]=O.V|0,q[w]=29)}}ca=R;ea=ve;ja=ba;T=tf;fa=L;qa=Kd>>>3;ma=Ld-3|0}else{var rj=Bc&7;q[w]=26;ca=R;ea=Yb;ja=ba;T=Lc;fa=L;qa=ec>>>(rj>>>0);ma=Bc-rj|0}na=M;C=266}else{if(143==C){var Sg=I[n];if(0==(Sg|0)){q[w]=11,ca=R,ea=id,ja=ba,T=Nc,fa=L}else{var sj=Sg>>>0>Nc>>>0?Nc:Sg,nd=sj>>>0>L>>>0?L:sj;if(0==(nd|0)){W=R;U=id;ga=Nc;ha=ie;ia=Ad;X=M;break b}qg(ba,id,nd);var am=Nc-nd|0,bm=id+nd|0,cm=L-nd|0,dm=ba+nd|0;q[n]=q[n]-nd|0;ca=R;ea=bm;ja=dm;T=am;fa=cm}qa=ie;ma=Ad;na=M;C=266}else{if(163==C){var Xc=Qi,Yc=Ri,Zc=Si,$c=Ti;d:for(;;){var od=I[c],tj=I[g],uj=q[e]+tj|0;if(od>>>0>>0){for(var em=(1<>2],ad=Xc,pd=Yc,bd=Zc,Oc=$c;;){var wj=em&bd,hc=D[(wj<<2)+vj+1|0]&255;if(hc>>>0<=Oc>>>0){break}if(0==(pd|0)){W=Dc;U=ad;ga=0;ha=bd;ia=Oc;X=M;break b}var fm=((D[ad]&255)<>1];if(16>(wf&65535)){for(var we=ad,xf=pd,yf=bd,Md=Oc;Md>>>0>>0;){if(0==(xf|0)){W=Dc;U=we;ga=0;ha=yf;ia=Md;X=M;break b}var gm=((D[we]&255)<>>(hc>>>0),im=Md-hc|0;q[c]=od+1|0;o[(od<<1>>1)+d]=wf;Xc=we;Yc=xf;Zc=hm;$c=im}else{if(16==wf<<16>>16){for(var jm=hc+2|0,Nd=ad,xe=pd,zf=bd,Od=Oc;Od>>>0>>0;){if(0==(xe|0)){W=Dc;U=Nd;ga=0;ha=zf;ia=Od;X=M;break b}var km=((D[Nd]&255)<>>(hc>>>0),xj=Od-hc|0;if(0==(od|0)){q[r]=O.z|0;q[w]=29;ca=Dc;ea=Nd;ja=ba;T=xe;fa=L;qa=Tg;ma=xj;na=M;C=266;break c}var Ug=o[(od-1<<1>>1)+d],Af=Nd,Bf=xe,Cf=Tg>>>2,Df=xj-2|0,Ef=(Tg&3)+3|0}else{if(17==wf<<16>>16){for(var lm=hc+3|0,ye=ad,Ff=pd,Gf=bd,Pd=Oc;Pd>>>0>>0;){if(0==(Ff|0)){W=Dc;U=ye;ga=0;ha=Gf;ia=Pd;X=M;break b}var mm=((D[ye]&255)<>>(hc>>>0),Ug=0,Af=ye,Bf=Ff,Cf=yj>>>3,Df=-3-hc+Pd|0,Ef=(yj&7)+3|0}else{for(var nm=hc+7|0,ze=ad,Hf=pd,If=bd,Qd=Oc;Qd>>>0>>0;){if(0==(Hf|0)){W=Dc;U=ze;ga=0;ha=If;ia=Qd;X=M;break b}var om=((D[ze]&255)<>>(hc>>>0),Ug=0,Af=ze,Bf=Hf,Cf=zj>>>7,Df=-7-hc+Qd|0,Ef=(zj&127)+11|0}}if((od+Ef|0)>>>0>uj>>>0){q[r]=O.z|0;q[w]=29;ca=Dc;ea=Af;ja=ba;T=Bf;fa=L;qa=Cf;ma=Df;na=M;C=266;break c}for(var Aj=Ef,Vg=od;;){var Bj=Aj-1|0;q[c]=Vg+1|0;o[(Vg<<1>>1)+d]=Ug;if(0==(Bj|0)){Xc=Af;Yc=Bf;Zc=Cf;$c=Df;continue d}Aj=Bj;Vg=q[c]}}}else{if(29==(q[w]|0)){ca=Dc;ea=Xc;ja=ba;T=Yc;fa=L;qa=Zc;ma=$c;na=M;C=266;break c}if(0==o[db>>1]<<16>>16){q[r]=O.N|0;q[w]=29;ca=Dc;ea=Xc;ja=ba;T=Yc;fa=L;qa=Zc;ma=$c;na=M;C=266;break c}q[qb>>2]=Ga;q[Ua>>2]=Ga;q[p]=9;var Cj=mi(1,Za,tj,Qa,Oa,Wa);if(0!=(Cj|0)){q[r]=O.P|0;q[w]=29;ca=Cj;ea=Xc;ja=ba;T=Yc;fa=L;qa=Zc;ma=$c;na=M;C=266;break c}q[$a>>2]=q[Qa>>2];q[rb>>2]=6;var Dj=mi(2,(q[g]<<1)+Za|0,q[e],Qa,rb,Wa);if(0==(Dj|0)){q[w]=19;Ui=0;Vi=Xc;Wi=Yc;Xi=Zc;Yi=$c;C=204;break c}q[r]=O.Q|0;q[w]=29;ca=Dj;ea=Xc;ja=ba;T=Yc;fa=L;qa=Zc;ma=$c;na=M;C=266;break c}}}}}}}while(0);do{if(61==C){var Ej=I[v],pm=0==(Ej&1024|0);do{if(pm){var Fj=q[x];if(0==(Fj|0)){var Wg=Tb,Xg=Vb,Yg=Wb,Zg=Ub}else{q[(Fj+16|0)>>2]=0,Wg=Tb,Xg=Vb,Yg=Wb,Zg=Ub}}else{for(var Ae=Tb,Jf=Vb,qd=Wb,Be=Ub;16>Be>>>0;){if(0==(Jf|0)){W=R;U=Ae;ga=0;ha=qd;ia=Be;X=M;break b}var qm=((D[Ae]&255)<>2]=qd,Hj=q[v]}0!=(Hj&512|0)&&(m[Da]=qd&255,m[Ma]=qd>>>8&255,q[y]=$f(q[y],Da,2));Wg=Ae;Xg=Jf;Zg=Yg=0}}while(0);q[w]=5;Sb=Wg;Qb=Xg;Xb=Yg;$b=Zg;C=72}else{204==C&&(q[w]=20,Wc=Ui,zg=Vi,ff=Wi,Ag=Xi,Bg=Yi,C=205)}}while(0);do{if(72==C){var Ce=I[v];if(0==(Ce&1024|0)){var Ij=Sb,Jj=Qb,Kj=Ce}else{var Kf=I[n],rd=Kf>>>0>Qb>>>0?Qb:Kf;if(0==(rd|0)){var $g=Sb,ah=Qb,Lj=Kf,Mj=Ce}else{var Nj=I[x];f=Nj>>2;if(0==(Nj|0)){var Lf=Ce}else{var Oj=q[f+4];if(0==(Oj|0)){Lf=Ce}else{var bh=q[f+5]-Kf|0,Pj=I[f+6];qg(Oj+bh|0,Sb,(bh+rd|0)>>>0>Pj>>>0?Pj-bh|0:rd);Lf=q[v]}}0!=(Lf&512|0)&&(q[y]=$f(q[y],Sb,rd));var rm=Qb-rd|0,sm=Sb+rd|0,Qj=q[n]-rd|0;q[n]=Qj;$g=sm;ah=rm;Lj=Qj;Mj=Lf}if(0!=(Lj|0)){W=R;U=$g;ga=ah;ha=Xb;ia=$b;X=M;break b}Ij=$g;Jj=ah;Kj=Mj}q[n]=0;q[w]=6;dc=Ij;ac=Jj;tc=Xb;mc=$b;gd=Kj;C=82}else{if(205==C){if(5>>0&257>>0){q[G]=ba;q[z]=L;q[J]=zg;q[H]=ff;q[F]=Ag;q[B]=Bg;ii(b,M);var tm=q[G],um=q[z],vm=q[J],wm=q[H],xm=q[F],ym=q[B];11==(q[w]|0)&&(q[s]=-1);ca=Wc;ea=vm;ja=tm;T=wm;fa=um;qa=xm;ma=ym;na=M;C=266}else{q[s]=0;for(var zm=(1<>2],sd=zg,Sd=ff,td=Ag,cd=Bg;;){var ch=zm&td,dh=D[(ch<<2)+Rd+1|0],dd=dh&255;if(dd>>>0<=cd>>>0){break}if(0==(Sd|0)){W=Wc;U=sd;ga=0;ha=td;ia=cd;X=M;break b}var Am=((D[sd]&255)<>1],Rj=eh&255,Bm=0==eh<<24>>24;do{if(Bm){var Td=sd,Ud=Sd,gh=td,hh=cd,Mf=0,ih=dh,jh=fh,kh=0}else{if(0!=(Rj&240|0)){Td=sd,Ud=Sd,gh=td,hh=cd,Mf=eh,ih=dh,jh=fh,kh=0}else{for(var Cm=fh&65535,Dm=(1<>>(dd>>>0))+Cm|0,Sj=D[(lh<<2)+Rd+1|0];if(((Sj&255)+dd|0)>>>0<=Vd>>>0){break}if(0==(Nf|0)){W=Wc;U=De;ga=0;ha=Ee;ia=Vd;X=M;break b}var Em=((D[De]&255)<>1],Gm=m[(lh<<2)+Rd|0],Hm=Ee>>>(dd>>>0),Im=Vd-dd|0;q[s]=dd;Td=De;Ud=Nf;gh=Hm;hh=Im;Mf=Gm;ih=Sj;jh=Fm;kh=dd}}}while(0);var mh=ih&255,Of=gh>>>(mh>>>0),Pf=hh-mh|0;q[s]=kh+mh|0;q[n]=jh&65535;var nh=Mf&255;if(0==Mf<<24>>24){q[w]=25,ca=Wc,ea=Td,ja=ba,T=Ud,fa=L,qa=Of,ma=Pf,na=M,C=266}else{if(0!=(nh&32|0)){q[s]=-1,q[w]=11,ca=Wc,ea=Td,ja=ba,T=Ud,fa=L,qa=Of,ma=Pf,na=M,C=266}else{if(0==(nh&64|0)){var Tj=nh&15;q[k]=Tj;q[w]=21;Cg=Wc;Dg=Td;Eg=Ud;Fg=Of;Gg=Pf;ld=Tj;C=226}else{q[r]=O.A|0,q[w]=29,ca=Wc,ea=Td,ja=ba,T=Ud,fa=L,qa=Of,ma=Pf,na=M,C=266}}}}}}}while(0);do{if(82==C){var Jm=0==(gd&2048|0);do{if(Jm){var Uj=q[x];if(0==(Uj|0)){var oh=dc,ph=ac}else{q[(Uj+28|0)>>2]=0,oh=dc,ph=ac}}else{if(0==(ac|0)){W=R;U=dc;ga=0;ha=tc;ia=mc;X=M;break b}for(var qh=0;;){var Fe=qh+1|0,Vj=m[dc+qh|0],rh=q[x];if(0!=(rh|0)){var Wj=rh+28|0;if(0!=(q[Wj>>2]|0)){var sh=I[n];sh>>>0>2]>>>0&&(q[n]=sh+1|0,m[q[Wj>>2]+sh|0]=Vj)}}var Xj=0!=Vj<<24>>24;if(!(Xj&Fe>>>0>>0)){break}qh=Fe}0!=(q[v]&512|0)&&(q[y]=$f(q[y],dc,Fe));var Yj=ac-Fe|0,Zj=dc+Fe|0;if(Xj){W=R;U=Zj;ga=Yj;ha=tc;ia=mc;X=M;break b}oh=Zj;ph=Yj}}while(0);q[n]=0;q[w]=7;bc=oh;nc=ph;uc=tc;vc=mc;C=95}else{if(226==C){if(0==(ld|0)){var $j=Dg,ak=Eg,bk=Fg,ck=Gg,dk=q[n]}else{for(var Ge=Dg,Qf=Eg,He=Fg,Wd=Gg;Wd>>>0>>0;){if(0==(Qf|0)){W=Cg;U=Ge;ga=0;ha=He;ia=Wd;X=M;break b}var Km=((D[Ge]&255)<>>(ld>>>0);ck=Wd-ld|0;dk=ek}q[jb>>2]=dk;q[w]=22;ne=Cg;Zi=$j;$i=ak;aj=bk;bj=ck;C=233}}}while(0);do{if(95==C){var Lm=0==(q[v]&4096|0);do{if(Lm){var fk=q[x];if(0==(fk|0)){var th=bc,uh=nc}else{q[(fk+36|0)>>2]=0,th=bc,uh=nc}}else{if(0==(nc|0)){W=R;U=bc;ga=0;ha=uc;ia=vc;X=M;break b}for(var vh=0;;){var Ie=vh+1|0,gk=m[bc+vh|0],wh=q[x];if(0!=(wh|0)){var hk=wh+36|0;if(0!=(q[hk>>2]|0)){var xh=I[n];xh>>>0>2]>>>0&&(q[n]=xh+1|0,m[q[hk>>2]+xh|0]=gk)}}var ik=0!=gk<<24>>24;if(!(ik&Ie>>>0>>0)){break}vh=Ie}0!=(q[v]&512|0)&&(q[y]=$f(q[y],bc,Ie));var jk=nc-Ie|0,kk=bc+Ie|0;if(ik){W=R;U=kk;ga=jk;ha=uc;ia=vc;X=M;break b}th=kk;uh=jk}}while(0);q[w]=8;Hc=th;Ic=uh;wc=uc;oc=vc;C=108}else{if(233==C){for(var Mm=(1<>2])-1|0,Xd=I[kb>>2],Yd=Zi,Je=$i,Zd=aj,ud=bj;;){var yh=Mm&Zd,lk=D[(yh<<2)+Xd+1|0],vd=lk&255;if(vd>>>0<=ud>>>0){break}if(0==(Je|0)){W=ne;U=Yd;ga=0;ha=Zd;ia=ud;X=M;break b}var Nm=((D[Yd]&255)<>1],ok=mk&255;if(0==(ok&240|0)){for(var Om=nk&65535,Pm=(1<>>(vd>>>0))+Om|0,pk=D[(zh<<2)+Xd+1|0];if(((pk&255)+vd|0)>>>0<=$d>>>0){break}if(0==(Rf|0)){W=ne;U=Ke;ga=0;ha=Le;ia=$d;X=M;break b}var Qm=((D[Ke]&255)<<$d)+Le|0,Ke=Ke+1|0,Rf=Rf-1|0,Le=Qm,$d=$d+8|0}var Rm=o[Xd+(zh<<2)+2>>1],Sm=m[(zh<<2)+Xd|0],Tm=Le>>>(vd>>>0),Um=$d-vd|0,qk=q[s]+vd|0;q[s]=qk;var Ah=Ke,Bh=Rf,rk=Tm,sk=Um,tk=Sm,uk=pk,vk=Rm,wk=qk}else{Ah=Yd,Bh=Je,rk=Zd,sk=ud,tk=mk,uk=lk,vk=nk,wk=q[s]}var Ch=uk&255,xk=rk>>>(Ch>>>0),yk=sk-Ch|0;q[s]=wk+Ch|0;var zk=tk&255;if(0==(zk&64|0)){q[i]=vk&65535;var Ak=zk&15;q[k]=Ak;q[w]=23;Hg=ne;Ig=Ah;Jg=Bh;Kg=xk;Lg=yk;md=Ak;C=247}else{q[r]=O.B|0,q[w]=29,ca=ne,ea=Ah,ja=ba,T=Bh,fa=L,qa=xk,ma=yk,na=M,C=266}}}}while(0);c:do{if(108==C){var Bk=I[v],Vm=0==(Bk&512|0);do{if(!Vm){for(var ae=Hc,Me=Ic,Ne=wc,be=oc;16>be>>>0;){if(0==(Me|0)){W=R;U=ae;ga=0;ha=Ne;ia=be;X=M;break b}var Wm=((D[ae]&255)<>2]=Bk>>>9&1,q[(q[x]+48|0)>>2]=1);var Hk=$f(0,0,0);q[y]=Hk;q[t]=Hk;q[w]=11;ca=R;ea=Ck;ja=ba;T=Dk;fa=L;qa=Ek;ma=Fk;na=M;C=266}else{if(247==C){if(0==(md|0)){var Ik=Ig,Jk=Jg,Kk=Kg,Lk=Lg}else{for(var Oe=Ig,Sf=Jg,Pe=Kg,ce=Lg;ce>>>0>>0;){if(0==(Sf|0)){W=Hg;U=Oe;ga=0;ha=Pe;ia=ce;X=M;break b}var Xm=((D[Oe]&255)<>>(md>>>0);Lk=ce-md|0}q[w]=24;gf=Hg;hf=Ik;jf=Jk;kf=Kk;lf=Lk;C=253}}}while(0);c:do{if(253==C){if(0==(L|0)){W=gf;U=hf;ga=jf;ha=kf;ia=lf;X=M;break b}var Mk=M-L|0,Dh=I[i];if(Dh>>>0>Mk>>>0){var Qe=Dh-Mk|0,Ym=Qe>>>0>I[Db>>2]>>>0;do{if(Ym&&0!=(q[xa>>2]|0)){q[r]=O.C|0;q[w]=29;ca=gf;ea=hf;ja=ba;T=jf;fa=L;qa=kf;ma=lf;na=M;break c}}while(0);var Eh=I[ta>>2];if(Qe>>>0>Eh>>>0){var Nk=Qe-Eh|0,Ok=q[Va>>2]+(q[Xa>>2]-Nk)|0,Fh=Nk}else{Ok=q[Va>>2]+(Eh-Qe)|0,Fh=Qe}var Gh=I[n],Pk=Ok,Tf=Fh>>>0>Gh>>>0?Gh:Fh,Qk=Gh}else{var Zm=q[n],Pk=ba+ -Dh|0,Qk=Tf=Zm}var Hh=Tf>>>0>L>>>0?L:Tf;q[n]=Qk-Hh|0;for(var Rk=L^-1,Sk=Tf^-1,$m=Rk>>>0>Sk>>>0?Rk:Sk,Ih=Pk,Jh=ba,Tk=Hh;;){m[Jh]=m[Ih];var Uk=Tk-1|0;if(0==(Uk|0)){break}Ih=Ih+1|0;Jh=Jh+1|0;Tk=Uk}var an=L-Hh|0,bn=ba+($m^-1)|0;0==(q[n]|0)&&(q[w]=20);ca=gf;ea=hf;ja=bn;T=jf;fa=an;qa=kf;ma=lf;na=M}}while(0);R=ca;$=ea;ba=ja;la=T;L=fa;Z=qa;V=ma;M=na;pa=q[w]}q[G]=ba;q[z]=L;q[J]=U;q[H]=ga;q[F]=ha;q[B]=ia;C=0==(q[Xa>>2]|0)?26>I[w]>>>0?(X|0)==(q[z]|0)?298:296:298:296;do{if(296==C&&0!=(pi(b,X)|0)){q[w]=30;ra=-4;break a}}while(0);var Wk=I[H],Xk=I[z],Re=X-Xk|0,Yk=b+8|0;q[Yk>>2]=Fa-Wk+q[Yk>>2]|0;q[j]=q[j]+Re|0;q[h]=q[h]+Re|0;var Zk=(X|0)==(Xk|0);if(!(0==(q[A]|0)|Zk)){var $k=q[y],al=q[G]+ -Re|0,bl=0==(q[v]|0)?Xf($k,al,Re):$f($k,al,Re);q[y]=bl;q[t]=bl}var Kh=q[w];q[b+44>>2]=(0!=(q[u]|0)?64:0)+q[B]+(11==(Kh|0)?128:0)+(19==(Kh|0)?256:14==(Kh|0)?256:0)|0;ra=(Fa|0)==(Wk|0)&Zk&0==(W|0)?-5:W}}}}}while(0);Nb=S;return ra}di.X=1;function gg(b){for(var f=0;!(o[b+(f<<2)+148>>1]=0,f=f+1|0,286==(f|0));){}o[b+2440>>1]=0;o[b+2444>>1]=0;o[b+2448>>1]=0;o[b+2452>>1]=0;o[b+2456>>1]=0;o[b+2460>>1]=0;o[b+2464>>1]=0;o[b+2468>>1]=0;o[b+2472>>1]=0;o[b+2476>>1]=0;o[b+2480>>1]=0;o[b+2484>>1]=0;o[b+2488>>1]=0;o[b+2492>>1]=0;o[b+2496>>1]=0;o[b+2500>>1]=0;o[b+2504>>1]=0;o[b+2508>>1]=0;o[b+2512>>1]=0;o[b+2516>>1]=0;o[b+2520>>1]=0;o[b+2524>>1]=0;o[b+2528>>1]=0;o[b+2532>>1]=0;o[b+2536>>1]=0;o[b+2540>>1]=0;o[b+2544>>1]=0;o[b+2548>>1]=0;o[b+2552>>1]=0;o[b+2556>>1]=0;o[b+2684>>1]=0;o[b+2688>>1]=0;o[b+2692>>1]=0;o[b+2696>>1]=0;o[b+2700>>1]=0;o[b+2704>>1]=0;o[b+2708>>1]=0;o[b+2712>>1]=0;o[b+2716>>1]=0;o[b+2720>>1]=0;o[b+2724>>1]=0;o[b+2728>>1]=0;o[b+2732>>1]=0;o[b+2736>>1]=0;o[b+2740>>1]=0;o[b+2744>>1]=0;o[b+2748>>1]=0;o[b+2752>>1]=0;o[b+2756>>1]=0;o[b+1172>>1]=1;q[b+5804>>2]=0;q[b+5800>>2]=0;q[b+5808>>2]=0;q[b+5792>>2]=0}gg.X=1;function pi(b,f){var d,c,e;d=b>>2;var g=I[d+7];e=g>>2;var h=g+52|0;c=q[h>>2];if(0==(c|0)){if(c=Bd[q[d+8]](q[d+10],1<>2]=c,0==(c|0)){var j=1;c=14}else{var i=c;c=4}}else{i=c,c=4}if(4==c){c=(g+40|0)>>2;j=q[c];if(0==(j|0)){j=1<>>0>>0){d=(g+48|0)>>2;var p=I[d],k=k-p|0,k=k>>>0>j>>>0?j:k,s=b+12|0;qg(i+p|0,q[s>>2]+ -j|0,k);i=j-k|0;(j|0)==(k|0)?(h=q[d]+j|0,q[d]=h,e=I[c],(h|0)==(e|0)&&(q[d]=0),g=g+44|0,h=I[g>>2],h>>>0>>0&&(q[g>>2]=h+j|0)):(qg(q[h>>2],q[s>>2]+ -i|0,i),q[d]=i,q[e+11]=q[c])}else{qg(i,q[d+3]+ -k|0,k),q[e+12]=0,q[e+11]=q[c]}j=0}return j}pi.X=1;function mi(b,f,d,c,e,g){var h,j,i=c>>2,k=Nb;Nb+=32;var p;j=k>>1;var s=Nb;h=s>>1;Nb+=32;zd(k,32);var u=0==(d|0);a:do{if(!u){for(var n=0;;){var t=((E[f+(n<<1)>>1]&65535)<<1)+k|0;o[t>>1]=o[t>>1]+1&65535;var r=n+1|0;if((r|0)==(d|0)){break a}n=r}}}while(0);for(var x=I[e>>2],v=15;;){if(0==(v|0)){var y=I[i];q[i]=y+4|0;m[y|0]=64;m[y+1|0]=1;o[y+2>>1]=0;var A=q[i];q[i]=A+4|0;m[A|0]=64;m[A+1|0]=1;o[A+2>>1]=0;q[e>>2]=1;var B=0;p=56;break}if(0!=o[(v<<1>>1)+j]<<16>>16){p=7;break}v=v-1|0}a:do{if(7==p){for(var F=x>>>0>v>>>0?v:x,H=1;H>>>0>>0&&0==o[(H<<1>>1)+j]<<16>>16;){H=H+1|0}for(var z=F>>>0>>0?H:F,w=1,J=1;16>w>>>0;){var G=(J<<1)-(E[(w<<1>>1)+j]&65535)|0;if(0>(G|0)){B=-1;break a}w=w+1|0;J=G}if(0<(J|0)&&!(0!=(b|0)&1==(v|0))){B=-1}else{o[h+1]=0;var S=o[j+1];o[h+2]=S;var C=o[j+2]+S&65535;o[h+3]=C;var ka=o[j+3]+C&65535;o[h+4]=ka;var ra=o[j+4]+ka&65535;o[h+5]=ra;var N=o[j+5]+ra&65535;o[h+6]=N;var oa=o[j+6]+N&65535;o[h+7]=oa;var K=o[j+7]+oa&65535;o[h+8]=K;var Q=o[j+8]+K&65535;o[h+9]=Q;var Ka=o[j+9]+Q&65535;o[h+10]=Ka;var Aa=o[j+10]+Ka&65535;o[h+11]=Aa;var P=o[j+11]+Aa&65535;o[h+12]=P;var hb=o[j+12]+P&65535;o[h+13]=hb;var ya=o[j+13]+hb&65535;o[h+14]=ya;o[h+15]=o[j+14]+ya&65535;b:do{if(u){p=20}else{for(var Fa=0;;){var Da=E[f+(Fa<<1)>>1];if(0!=Da<<16>>16){var Ma=((Da&65535)<<1)+s|0,ib=E[Ma>>1];o[Ma>>1]=ib+1&65535;o[g+((ib&65535)<<1)>>1]=Fa&65535}var bb=Fa+1|0;if((bb|0)==(d|0)){break b}Fa=bb}}}while(0);if(0==(b|0)){var Cb=0,Oa=1<>>0){B=1;break}var wb=2==(b|0);if(wb&591>>0){B=1;break}Cb=La;Oa=Eb;Pa=ta;jb=Va;Db=Xa;xa=wb}var Ya=Oa-1|0,cb=z&255,Qa=q[i],qb=-1,Ga=H,Ua=0,Za=z,Wa=0,db=Oa,$a=0;b:for(;;){for(var rb=1<>1],Z=L&65535;if((Z|0)<(Pa|0)){var V=0,M=L}else{(Z|0)>(Pa|0)?(V=o[jb+(Z<<1)>>1]&255,M=o[Db+(Z<<1)>>1]):(V=96,M=0)}for(var pa=1<>>(Wa>>>0),ca=rb;;){var ea=ca-pa|0,ja=ea+yb|0;m[(ja<<2)+Qa|0]=V;m[(ja<<2)+Qa+1|0]=la;o[Qa+(ja<<2)+2>>1]=M;if((ca|0)==(pa|0)){break}ca=ea}for(var T=1<>>=1}var fa=0==(T|0)?0:(T-1&$)+T|0,qa=R+1|0,ma=(kb<<1)+k|0,na=o[ma>>1]-1&65535;o[ma>>1]=na;if(0==na<<16>>16){if((kb|0)==(v|0)){break b}var va=E[f+((E[g+(qa<<1)>>1]&65535)<<1)>>1]&65535}else{va=kb}if(va>>>0>z>>>0){var wa=fa&Ya;if((wa|0)!=(qb|0)){break}}kb=va;R=qa;$=fa}for(var Ja=0==(Wa|0)?z:Wa,Ra=(rb<<2)+Qa|0,W=va-Ja|0,U=W,ga=1<>>0>=v>>>0){break}var ia=ga-(E[(ha<<1>>1)+j]&65535)|0;if(1>(ia|0)){break}var X=ia<<1,U=U+1|0,ga=X}var Ea=(1<>>0|xa&591>>0){B=1;break a}m[(wa<<2)+q[i]|0]=U&255;m[(wa<<2)+q[i]+1|0]=cb;var eb=I[i];o[eb+(wa<<2)+2>>1]=(Ra-eb|0)>>>2&65535;Qa=Ra;qb=wa;Ga=va;Ua=qa;Za=U;Wa=Ja;db=Ea;$a=fa}var Fb=0==(fa|0);b:do{if(!Fb){for(var ab=la,sb=fa,tb=Wa,ub=v,lb=Qa;;){if(0==(tb|0)){var mb=lb,fb=ub,Sa=0,Ta=ab}else{(sb&Ya|0)==(qb|0)?(mb=lb,fb=ub,Sa=tb,Ta=ab):(mb=q[i],fb=z,Sa=0,Ta=cb)}var Ba=sb>>>(Sa>>>0);m[(Ba<<2)+mb|0]=64;m[(Ba<<2)+mb+1|0]=Ta;o[mb+(Ba<<2)+2>>1]=0;for(var za=1<>>=1}if(0==(za|0)){break b}var gb=(za-1&sb)+za|0;if(0==(gb|0)){break b}ab=Ta;sb=gb;tb=Sa;ub=fb;lb=mb}}}while(0);q[i]=(db<<2)+q[i]|0;q[e>>2]=z;B=0}}}while(0);Nb=k;return B}mi.X=1;function pg(b,f,d,c){var e,g;g=(b+5820|0)>>2;e=I[g];var h=c&65535,c=(b+5816|0)>>1,j=E[c]&65535|h<>2;var i=q[e];q[e]=i+1|0;var k=b+8|0;m[q[k>>2]+i|0]=j&255;j=(E[c]&65535)>>>8&255;i=I[e];q[e]=i+1|0;m[q[k>>2]+i|0]=j;e=I[g];o[c]=h>>>((16-e|0)>>>0)&65535;c=e-13|0}else{c=e+3|0}q[g]=c;ui(b,f,d)}function ui(b,f,d){var c;vi(b);q[b+5812>>2]=8;c=(b+20|0)>>2;var e=q[c];q[c]=e+1|0;b=(b+8|0)>>2;m[q[b]+e|0]=d&255;e=I[c];q[c]=e+1|0;m[q[b]+e|0]=d>>>8&255;var e=d&65535^65535,g=q[c];q[c]=g+1|0;m[q[b]+g|0]=e&255;g=I[c];q[c]=g+1|0;m[q[b]+g|0]=e>>>8&255;e=0==(d|0);a:do{if(!e){for(var g=f,h=d;;){var h=h-1|0,j=m[g],i=q[c];q[c]=i+1|0;m[q[b]+i|0]=j;if(0==(h|0)){break a}g=g+1|0}}}while(0)}ui.X=1;function wi(b){var f,d,c;c=(b+5820|0)>>2;f=I[c];if(16==(f|0)){d=(b+5816|0)>>1;var e=o[d]&255;f=(b+20|0)>>2;var g=q[f];q[f]=g+1|0;b=b+8|0;m[q[b>>2]+g|0]=e;e=(E[d]&65535)>>>8&255;g=I[f];q[f]=g+1|0;m[q[b>>2]+g|0]=e;o[d]=0;q[c]=0}else{7<(f|0)&&(f=(b+5816|0)>>1,d=o[f]&255,e=b+20|0,g=q[e>>2],q[e>>2]=g+1|0,m[q[b+8>>2]+g|0]=d,o[f]=(E[f]&65535)>>>8,q[c]=q[c]-8|0)}}function og(b){var f,d,c,e;e=(b+5820|0)>>2;var g=I[e];c=(b+5816|0)>>1;f=E[c]&65535|2<>2;var h=q[d];q[d]=h+1|0;g=b+8|0;m[q[g>>2]+h|0]=f&255;f=(E[c]&65535)>>>8&255;h=I[d];q[d]=h+1|0;m[q[g>>2]+h|0]=f;f=I[e];d=2>>>((16-f|0)>>>0)&65535;o[c]=d;f=f-13|0}else{f=g+3|0}g=d;q[e]=f;9<(f|0)?(d=(b+20|0)>>2,h=q[d],q[d]=h+1|0,f=b+8|0,m[q[f>>2]+h|0]=g&255,g=(E[c]&65535)>>>8&255,h=I[d],q[d]=h+1|0,m[q[f>>2]+h|0]=g,o[c]=0,d=q[e]-9|0):d=f+7|0;q[e]=d;wi(b);d=b+5812|0;h=I[e];if(9>(q[d>>2]+11-h|0)){g=E[c]&65535|2<>2;var j=q[f];q[f]=j+1|0;h=b+8|0;m[q[h>>2]+j|0]=g&255;g=(E[c]&65535)>>>8&255;j=I[f];q[f]=j+1|0;m[q[h>>2]+j|0]=g;g=I[e];f=2>>>((16-g|0)>>>0)&65535;o[c]=f;g=g-13|0}else{g=h+3|0}h=f;q[e]=g;9<(g|0)?(f=(b+20|0)>>2,j=q[f],q[f]=j+1|0,g=b+8|0,m[q[g>>2]+j|0]=h&255,h=(E[c]&65535)>>>8&255,j=I[f],q[f]=j+1|0,m[q[g>>2]+j|0]=h,o[c]=0,c=q[e]-9|0):c=g+7|0;q[e]=c;wi(b)}q[d>>2]=7}og.X=1;function sg(b,f,d,c){var e,g;g=b>>2;if(0<(q[g+33]|0)){var h=q[g]+44|0;if(2==(q[h>>2]|0)){for(var j=b>>1,i=0,k=-201342849;;){if(32<=(i|0)){e=7;break}if(0!=(k&1|0)&&0!=o[((i<<2)+148>>1)+j]<<16>>16){var p=0;e=12;break}i=i+1|0;k>>>=1}a:do{if(7==e){if(0!=o[j+92]<<16>>16){p=1}else{if(0!=o[j+94]<<16>>16){p=1}else{if(0!=o[j+100]<<16>>16){p=1}else{for(i=32;;){if(256<=(i|0)){p=0;break a}if(0!=o[((i<<2)+148>>1)+j]<<16>>16){p=1;break a}i=i+1|0}}}}}}while(0);q[h>>2]=p}xi(b,b+2840|0);xi(b,b+2852|0);yi(b,b+148|0,q[b+2844>>2]);yi(b,b+2440|0,q[b+2856>>2]);xi(b,b+2864|0);for(h=18;2<(h|0)&&0==o[b+((D[O.J+h|0]&255)<<2)+2686>>1]<<16>>16;){h=h-1|0}j=b+5800|0;q[j>>2]=3*h+q[j>>2]+17|0;e=(q[g+1450]+10|0)>>>3;p=(q[g+1451]+10|0)>>>3;h=h+1|0;j=p;i=p>>>0>e>>>0?e:p}else{e=d+5|0,h=1,i=j=e}(d+4|0)>>>0>i>>>0|0==(f|0)?(f=(b+5820|0)>>2,e=I[f],p=13<(e|0),4==(q[g+34]|0)|(j|0)==(i|0)?(h=c+2&65535,g=(b+5816|0)>>1,j=E[g]&65535|h<>2,p=q[d],q[d]=p+1|0,e=b+8|0,m[q[e>>2]+p|0]=j&255,j=(E[g]&65535)>>>8&255,p=I[d],q[d]=p+1|0,m[q[e>>2]+p|0]=j,d=I[f],o[g]=h>>>((16-d|0)>>>0)&65535,g=d-13|0):g=e+3|0,q[f]=g,zi(b,Ai|0,Bi|0)):(j=c+4&65535,d=(b+5816|0)>>1,i=E[d]&65535|j<>2,k=q[e],q[e]=k+1|0,p=b+8|0,m[q[p>>2]+k|0]=i&255,i=(E[d]&65535)>>>8&255,k=I[e],q[e]=k+1|0,m[q[p>>2]+k|0]=i,e=I[f],o[d]=j>>>((16-e|0)>>>0)&65535,d=e-13|0):d=e+3|0,q[f]=d,Ci(b,q[g+711]+1|0,q[g+714]+1|0,h),zi(b,b+148|0,b+2440|0))):pg(b,f,d,c);gg(b);0!=(c|0)&&vi(b)}sg.X=1;function xi(b,f){var d,c,e,g,h,j,i=f|0,k=I[i>>2];h=k>>1;var p=f+8|0;e=q[p>>2];var s=q[e>>2],u=I[e+12>>2];g=(b+5200|0)>>2;q[g]=0;e=(b+5204|0)>>2;q[e]=573;c=0<(u|0);do{if(c){j=0;for(var n=-1;;){if(0==o[(j<<2>>1)+h]<<16>>16){o[((j<<2)+2>>1)+h]=0;var t=n}else{t=q[g]+1|0,q[g]=t,q[((t<<2)+b+2908|0)>>2]=j,m[b+(j+5208)|0]=0,t=j}j=j+1|0;if((j|0)==(u|0)){break}n=t}j=q[g];if(2>(j|0)){d=j;var r=t;j=4}else{var x=t;j=11}}else{d=0,r=-1,j=4}}while(0);a:do{if(4==j){if(c=(b+5800|0)>>2,t=b+5804|0,0==(s|0)){t=r;for(n=d;;){var v=2>(t|0),y=t+1|0,t=v?y:t,v=v?y:0,n=n+1|0;q[g]=n;q[b+(n<<2)+2908>>2]=v;o[(v<<2>>1)+h]=1;m[b+(v+5208)|0]=0;q[c]=q[c]-1|0;n=q[g];if(2<=(n|0)){x=t;break a}}}else{n=r;for(v=d;;){var y=2>(n|0),A=n+1|0,n=y?A:n,y=y?A:0,v=v+1|0;q[g]=v;q[b+(v<<2)+2908>>2]=y;o[(y<<2>>1)+h]=1;m[b+(y+5208)|0]=0;q[c]=q[c]-1|0;q[t>>2]=q[t>>2]-(E[s+(y<<2)+2>>1]&65535)|0;v=I[g];if(2<=(v|0)){x=n;break a}}}}}while(0);s=f+4|0;q[s>>2]=x;d=q[g];if(1<(d|0)){for(d=(d|0)/2&-1;!(Di(b,k,d),d=d-1|0,0>=(d|0));){}r=q[g]}else{r=d}d=(b+2912|0)>>2;for(j=r;;){r=I[d];q[g]=j-1|0;q[d]=q[b+(j<<2)+2908>>2];Di(b,k,1);j=I[d];c=q[e]-1|0;q[e]=c;q[((c<<2)+b+2908|0)>>2]=r;c=q[e]-1|0;q[e]=c;q[((c<<2)+b+2908|0)>>2]=j;o[(u<<2>>1)+h]=o[(j<<2>>1)+h]+o[(r<<2>>1)+h]&65535;c=D[b+(r+5208)|0];t=D[b+(j+5208)|0];m[b+(u+5208)|0]=((c&255)<(t&255)?t:c)+1&255;c=u&65535;o[((j<<2)+2>>1)+h]=c;o[((r<<2)+2>>1)+h]=c;r=u+1|0;q[d]=u;Di(b,k,1);j=I[g];if(1>=(j|0)){break}u=r}h=q[d];g=q[e]-1|0;q[e]=g;q[((g<<2)+b+2908|0)>>2]=h;Ei(b,q[i>>2],q[s>>2],q[p>>2]);Fi(k,x,b+2876|0)}xi.X=1;function zi(b,f,d){var c,e,g,h,j,i,k=f>>1,p=b+5792|0,s=0==(q[p>>2]|0);a:do{if(s){var u=q[b+5820>>2],n=o[b+5816>>1]}else{var t=b+5796|0,r=b+5784|0;i=(b+5820|0)>>2;j=(b+5816|0)>>1;h=(b+20|0)>>2;g=(b+8|0)>>2;for(var x=0;;){var v=E[q[t>>2]+(x<<1)>>1],y=v&65535,A=x+1|0,B=D[q[r>>2]+x|0]&255;if(0==v<<16>>16){var F=E[((B<<2)+2>>1)+k]&65535,H=I[i],z=(H|0)>(16-F|0),w=E[(B<<2>>1)+k]&65535,J=E[j]&65535|w<>>8&255,ra=I[h];q[h]=ra+1|0;m[q[g]+ra|0]=ka;var N=I[i],oa=w>>>((16-N|0)>>>0)&65535;o[j]=oa;var K=F-16+N|0,Q=q[i]=K,Ka=oa}else{var Aa=H+F|0,Q=q[i]=Aa,Ka=G}}else{var P=D[O.j+B|0]&255,hb=(P|256)+1|0,ya=E[((hb<<2)+2>>1)+k]&65535,Fa=I[i],Da=(Fa|0)>(16-ya|0),Ma=E[(hb<<2>>1)+k]&65535,ib=E[j]&65535|Ma<>>8&255,jb=I[h];q[h]=jb+1|0;m[q[g]+jb|0]=Pa;var Db=I[i],xa=Ma>>>((16-Db|0)>>>0)&65535;o[j]=xa;var ta=ya-16+Db|0,Va=xa}else{ta=Fa+ya|0,Va=bb}q[i]=ta;var Xa=I[Gi+(P<<2)>>2];if(20>(P-8|0)>>>0){var Eb=(ta|0)>(16-Xa|0),La=B-q[Hi+(P<<2)>>2]&65535,wb=La<>>8&255,Ga=I[h];q[h]=Ga+1|0;m[q[g]+Ga|0]=qb;var Ua=I[i],Za=La>>>((16-Ua|0)>>>0)&65535;o[j]=Za;var Wa=Xa-16+Ua|0,db=q[i]=Wa,$a=Za}else{var rb=ta+Xa|0,db=q[i]=rb,$a=Ya}}else{db=ta,$a=Va}var kb=y-1|0,R=D[O.p+(256>kb>>>0?kb:(kb>>>7)+256|0)|0]&255,$=E[d+(R<<2)+2>>1]&65535,ba=(db|0)>(16-$|0),la=E[d+(R<<2)>>1]&65535,L=$a&65535|la<>>8&255,yb=I[h];q[h]=yb+1|0;m[q[g]+yb|0]=pa;var ca=I[i],ea=la>>>((16-ca|0)>>>0)&65535;o[j]=ea;var ja=$-16+ca|0,T=ea}else{ja=db+$|0,T=Z}q[i]=ja;var fa=I[Ii+(R<<2)>>2];if(26>(R-4|0)>>>0){var qa=(ja|0)>(16-fa|0),ma=kb-q[Ji+(R<<2)>>2]&65535,na=ma<>>8&255,W=I[h];q[h]=W+1|0;m[q[g]+W|0]=Ra;var U=I[i],ga=ma>>>((16-U|0)>>>0)&65535;o[j]=ga;var ha=fa-16+U|0,Q=q[i]=ha,Ka=ga}else{var ia=ja+fa|0,Q=q[i]=ia,Ka=va}}else{Q=ja,Ka=T}}if(A>>>0>=I[p>>2]>>>0){u=Q;n=Ka;break a}x=A}}}while(0);var X=f+1026|0,Ea=E[X>>1]&65535,eb=b+5820|0,Fb=(u|0)>(16-Ea|0),ab=E[k+512]&65535;e=(b+5816|0)>>1;var sb=n&65535|ab<>2;var ub=q[c];q[c]=ub+1|0;var lb=b+8|0;m[q[lb>>2]+ub|0]=tb;var mb=(E[e]&65535)>>>8&255,fb=I[c];q[c]=fb+1|0;m[q[lb>>2]+fb|0]=mb;var Sa=I[eb>>2];o[e]=ab>>>((16-Sa|0)>>>0)&65535;var Ta=Ea-16+Sa|0}else{Ta=u+Ea|0}q[eb>>2]=Ta;q[b+5812>>2]=E[X>>1]&65535}zi.X=1;function vi(b){var f,d=b+5820|0,c=I[d>>2];if(8<(c|0)){var c=b+5816|0,e=o[c>>1]&255;f=(b+20|0)>>2;var g=q[f];q[f]=g+1|0;b=b+8|0;m[q[b>>2]+g|0]=e;e=(E[c>>1]&65535)>>>8&255;g=I[f];q[f]=g+1|0;m[q[b>>2]+g|0]=e;b=c}else{f=b+5816|0,0<(c|0)&&(c=o[f>>1]&255,e=b+20|0,g=q[e>>2],q[e>>2]=g+1|0,m[q[b+8>>2]+g|0]=c),b=f}o[b>>1]=0;q[d>>2]=0}function Ci(b,f,d,c){var e,g,h;h=(b+5820|0)>>2;e=I[h];var j=f+65279&65535;g=(b+5816|0)>>1;var i=E[g]&65535|j<>2;var p=q[e];q[e]=p+1|0;k=b+8|0;m[q[k>>2]+p|0]=i&255;i=(E[g]&65535)>>>8&255;p=I[e];q[e]=p+1|0;m[q[k>>2]+p|0]=i;e=I[h];j=j>>>((16-e|0)>>>0)&65535;o[g]=j;e=e-11|0;i=j}else{e=e+5|0,i=k}q[h]=e;d=d-1|0;j=d&65535;i=i&65535|j<>2,p=q[e],q[e]=p+1|0,k=b+8|0,m[q[k>>2]+p|0]=i&255,i=(E[g]&65535)>>>8&255,p=I[e],q[e]=p+1|0,m[q[k>>2]+p|0]=i,e=I[h],j=j>>>((16-e|0)>>>0)&65535,o[g]=j,e=e-11|0,i=j):(e=e+5|0,i=k);q[h]=e;j=c+65532&65535;i=i&65535|j<>2,p=q[e],q[e]=p+1|0,k=b+8|0,m[q[k>>2]+p|0]=i&255,i=(E[g]&65535)>>>8&255,p=I[e],q[e]=p+1|0,m[q[k>>2]+p|0]=i,e=I[h],i=j>>>((16-e|0)>>>0)&65535,o[g]=i,j=e-12|0):(j=e+4|0,i=k);q[h]=j;k=0<(c|0);a:do{if(k){e=(b+20|0)>>2;for(var p=b+8|0,s=0,u=j,n=i;;){var t=E[b+((D[O.J+s|0]&255)<<2)+2686>>1]&65535,r=n&65535|t<>2]+n|0]=u,u=(E[g]&65535)>>>8&255,n=I[e],q[e]=n+1|0,m[q[p>>2]+n|0]=u,u=I[h],n=t>>>((16-u|0)>>>0)&65535,o[g]=n,t=u-13|0):t=u+3|0;q[h]=t;s=s+1|0;if((s|0)==(c|0)){break a}u=t}}}while(0);Ki(b,b+148|0,f-1|0);Ki(b,b+2440|0,d)}Ci.X=1;function Ki(b,f,d){var c,e,g,h,j=E[f+2>>1],i=0==j<<16>>16,k=i?138:7,p=i?3:4,s=b+2754|0;h=(b+5820|0)>>2;var u=b+2752|0;g=(b+5816|0)>>1;e=(b+20|0)>>2;c=(b+8|0)>>2;var n=b+2758|0,t=b+2756|0,r=b+2750|0,x=b+2748|0,v=p,y=k,A=0,B=-1,F=j&65535;a:for(;;){for(var H=0,z=A,w=F;;){if((z|0)>(d|0)){break a}var J=z+1|0,G=E[f+(J<<2)+2>>1],S=G&65535,C=H+1|0,ka=(w|0)==(S|0);if(!((C|0)<(y|0)&ka)){break}H=C;z=J;w=S}var ra=(C|0)<(v|0);b:do{if(ra){for(var N=(w<<2)+b+2686|0,oa=(w<<2)+b+2684|0,K=C,Q=q[h],Ka=o[g];;){var Aa=E[N>>1]&65535,P=(Q|0)>(16-Aa|0),hb=E[oa>>1]&65535,ya=Ka&65535|hb<>>8&255,bb=I[e];q[e]=bb+1|0;m[q[c]+bb|0]=ib;var Cb=I[h],Oa=hb>>>((16-Cb|0)>>>0)&65535;o[g]=Oa;var Pa=Aa-16+Cb|0,jb=Oa}else{Pa=Q+Aa|0,jb=Fa}q[h]=Pa;var Db=K-1|0;if(0==(Db|0)){break b}K=Db;Q=Pa;Ka=jb}}else{if(0==(w|0)){if(11>(C|0)){var xa=E[s>>1]&65535,ta=I[h],Va=(ta|0)>(16-xa|0),Xa=E[u>>1]&65535,Eb=E[g]&65535|Xa<>>8&255,Qa=I[e];q[e]=Qa+1|0;m[q[c]+Qa|0]=cb;var qb=I[h],Ga=Xa>>>((16-qb|0)>>>0)&65535;o[g]=Ga;var Ua=xa-16+qb|0,Za=Ga}else{Ua=ta+xa|0,Za=La}q[h]=Ua;var Wa=H+65534&65535,db=Za&65535|Wa<>>8&255,kb=I[e];q[e]=kb+1|0;m[q[c]+kb|0]=rb;var R=I[h];o[g]=Wa>>>((16-R|0)>>>0)&65535;q[h]=R-13|0}else{q[h]=Ua+3|0}}else{var $=E[n>>1]&65535,ba=I[h],la=(ba|0)>(16-$|0),L=E[t>>1]&65535,Z=E[g]&65535|L<>>8&255,ca=I[e];q[e]=ca+1|0;m[q[c]+ca|0]=yb;var ea=I[h],ja=L>>>((16-ea|0)>>>0)&65535;o[g]=ja;var T=$-16+ea|0,fa=ja}else{T=ba+$|0,fa=V}q[h]=T;var qa=H+65526&65535,ma=fa&65535|qa<>>8&255,wa=I[e];q[e]=wa+1|0;m[q[c]+wa|0]=va;var Ja=I[h];o[g]=qa>>>((16-Ja|0)>>>0)&65535;q[h]=Ja-9|0}else{q[h]=T+7|0}}}else{if((w|0)==(B|0)){var Ra=C,W=q[h],U=o[g]}else{var ga=E[b+(w<<2)+2686>>1]&65535,ha=I[h],ia=(ha|0)>(16-ga|0),X=E[b+(w<<2)+2684>>1]&65535,Ea=E[g]&65535|X<>>8&255,tb=I[e];q[e]=tb+1|0;m[q[c]+tb|0]=sb;var ub=I[h],lb=X>>>((16-ub|0)>>>0)&65535;o[g]=lb;var mb=ga-16+ub|0,fb=lb}else{mb=ha+ga|0,fb=eb}q[h]=mb;Ra=H;W=mb;U=fb}var Sa=E[r>>1]&65535,Ta=(W|0)>(16-Sa|0),Ba=E[x>>1]&65535,za=U&65535|Ba<>>8&255,xb=I[e];q[e]=xb+1|0;m[q[c]+xb|0]=vb;var nb=I[h],Ib=Ba>>>((16-nb|0)>>>0)&65535;o[g]=Ib;var zb=Sa-16+nb|0,Jb=Ib}else{zb=W+Sa|0,Jb=gb}q[h]=zb;var Kb=Ra+65533&65535,Pb=Jb&65535|Kb<>>8&255,Wb=I[e];q[e]=Wb+1|0;m[q[c]+Wb|0]=Vb;var Ub=I[h];o[g]=Kb>>>((16-Ub|0)>>>0)&65535;q[h]=Ub-14|0}else{q[h]=zb+2|0}}}}while(0);if(0==G<<16>>16){v=3,y=138}else{var Sb=ka?6:7,v=ka?3:4,y=Sb}A=J;B=w;F=S}}Ki.X=1;function yi(b,f,d){var c=E[f+2>>1],e=0==c<<16>>16;o[f+(d+1<<2)+2>>1]=-1;var g=b+2752|0,h=b+2756|0,j=b+2748|0,i=e?3:4,e=e?138:7,k=0,p=-1,c=c&65535;a:for(;;){for(var s=0;;){if((k|0)>(d|0)){break a}var u=k+1|0,n=E[f+(u<<2)+2>>1],t=n&65535,r=s+1|0,x=(c|0)==(t|0);if(!((r|0)<(e|0)&x)){break}s=r;k=u;c=t}(r|0)<(i|0)?(i=(c<<2)+b+2684|0,o[i>>1]=(E[i>>1]&65535)+r&65535):0==(c|0)?11>(r|0)?o[g>>1]=o[g>>1]+1&65535:o[h>>1]=o[h>>1]+1&65535:((c|0)!=(p|0)&&(i=(c<<2)+b+2684|0,o[i>>1]=o[i>>1]+1&65535),o[j>>1]=o[j>>1]+1&65535);0==n<<16>>16?(i=3,e=138):(e=x?6:7,i=x?3:4);k=u;p=c;c=t}}yi.X=1;function Di(b,f,d){for(var c=b>>2,e=I[((d<<2)+2908>>2)+c],g=b+(e+5208)|0,h=b+5200|0,j=(e<<2)+f|0;;){var i=d<<1,k=q[h>>2];if((i|0)>(k|0)){break}k=(i|0)<(k|0);do{if(k){var p=i|1,s=I[((p<<2)+2908>>2)+c],u=E[f+(s<<2)>>1],n=I[((i<<2)+2908>>2)+c],t=E[f+(n<<2)>>1];if((u&65535)>=(t&65535)){if(u<<16>>16!=t<<16>>16){p=i;break}if((D[b+(s+5208)|0]&255)>(D[b+(n+5208)|0]&255)){p=i;break}}}else{p=i}}while(0);i=E[j>>1];k=I[((p<<2)+2908>>2)+c];s=E[f+(k<<2)>>1];if((i&65535)<(s&65535)){break}if(i<<16>>16==s<<16>>16&&(D[g]&255)<=(D[b+(k+5208)|0]&255)){break}q[((d<<2)+2908>>2)+c]=k;d=p}q[((d<<2)+2908>>2)+c]=e}Di.X=1;function Ei(b,f,d,c){var e,g=f>>1,h=I[c>>2],j=I[c+4>>2],i=I[c+8>>2],c=I[c+16>>2];zd(b+2876|0,32);e=b+5204|0;o[((q[b+(q[e>>2]<<2)+2908>>2]<<2)+2>>1)+g]=0;var k=q[e>>2]+1|0,p=573>(k|0);a:do{if(p){e=(b+5800|0)>>2;var s=0==(h|0),u=b+5804|0;b:do{if(s){for(var n=0,t=k;;){var r=I[b+(t<<2)+2908>>2],x=(r<<2)+f+2|0,v=(E[(((E[x>>1]&65535)<<2)+2>>1)+g]&65535)+1|0,y=(v|0)>(c|0),v=y?c:v,n=(y&1)+n|0;o[x>>1]=v&65535;(r|0)>(d|0)||(x=(v<<1)+b+2876|0,o[x>>1]=o[x>>1]+1&65535,q[e]=(E[(r<<2>>1)+g]&65535)*(((r|0)<(i|0)?0:q[j+(r-i<<2)>>2])+v)+q[e]|0);t=t+1|0;if(573==(t|0)){var A=n;break b}}}else{x=0;for(t=k;;){if(r=I[b+(t<<2)+2908>>2],v=(r<<2)+f+2|0,n=(E[(((E[v>>1]&65535)<<2)+2>>1)+g]&65535)+1|0,n=(y=(n|0)>(c|0))?c:n,x=(y&1)+x|0,o[v>>1]=n&65535,(r|0)>(d|0)||(v=(n<<1)+b+2876|0,o[v>>1]=o[v>>1]+1&65535,v=(r|0)<(i|0)?0:q[j+(r-i<<2)>>2],y=E[(r<<2>>1)+g]&65535,q[e]=y*(v+n)+q[e]|0,q[u>>2]=((E[h+(r<<2)+2>>1]&65535)+v)*y+q[u>>2]|0),t=t+1|0,573==(t|0)){A=x;break b}}}}while(0);if(0!=(A|0)){s=(c<<1)+b+2876|0;for(u=A;;){for(var B=c;;){var t=B-1|0,F=(t<<1)+b+2876|0,H=o[F>>1];if(0!=H<<16>>16){break}B=t}o[F>>1]=H-1&65535;B=(B<<1)+b+2876|0;o[B>>1]=o[B>>1]+2&65535;B=o[s>>1]-1&65535;o[s>>1]=B;u=u-2|0;if(0>=(u|0)){break}}if(0!=(c|0)){r=573;s=c;for(t=B;;){u=s&65535;for(t&=65535;0!=(t|0);){for(;;){var z=r-1|0,w=I[b+(z<<2)+2908>>2];if((w|0)<=(d|0)){break}r=z}r=(w<<2)+f+2|0;n=E[r>>1]&65535;(n|0)!=(s|0)&&(q[e]=(E[(w<<2>>1)+g]&65535)*(s-n)+q[e]|0,o[r>>1]=u);t=t-1|0;r=z}s=s-1|0;if(0==(s|0)){break a}t=u=o[b+(s<<1)+2876>>1]}}}}}while(0)}Ei.X=1;function Fi(b,f,d){var c,e=d>>1,d=Nb;Nb+=32;c=d>>1;var g=o[e]<<1;o[c+1]=g;g=(o[e+1]+g&65535)<<1;o[c+2]=g;g=(o[e+2]+g&65535)<<1;o[c+3]=g;g=(o[e+3]+g&65535)<<1;o[c+4]=g;g=(o[e+4]+g&65535)<<1;o[c+5]=g;g=(o[e+5]+g&65535)<<1;o[c+6]=g;g=(o[e+6]+g&65535)<<1;o[c+7]=g;g=(o[e+7]+g&65535)<<1;o[c+8]=g;g=(o[e+8]+g&65535)<<1;o[c+9]=g;g=(o[e+9]+g&65535)<<1;o[c+10]=g;g=(o[e+10]+g&65535)<<1;o[c+11]=g;g=(o[e+11]+g&65535)<<1;o[c+12]=g;g=(o[e+12]+g&65535)<<1;o[c+13]=g;g=(o[e+13]+g&65535)<<1;o[c+14]=g;o[c+15]=(o[e+14]+g&65535)<<1;c=0>(f|0);a:do{if(!c){e=f+1|0;for(g=0;;){var h=E[b+(g<<2)+2>>1],j=h&65535;if(0!=h<<16>>16){var h=(j<<1)+d|0,i=E[h>>1];o[h>>1]=i+1&65535;h=i&65535;for(i=0;;){var k=h&1|i,i=k<<1,j=j-1|0;if(0>=(j|0)){break}h>>>=1}o[b+(g<<2)>>1]=k&65535}g=g+1|0;if((g|0)==(e|0)){break a}}}}while(0);Nb=d}Fi.X=1;function yd(b){if(245>b>>>0){var f=11>b>>>0?16:b+11&-8,d=f>>>3,b=I[Y>>2],c=b>>>(d>>>0);if(0!=(c&3|0)){var e=(c&1^1)+d|0,f=e<<1,d=(f<<2)+Y+40|0,g=(f+2<<2)+Y+40|0,c=I[g>>2],f=c+8|0,h=I[f>>2];(d|0)==(h|0)?q[Y>>2]=b&(1<>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[g>>2]=h,q[h+12>>2]=d);b=e<<3;q[c+4>>2]=b|3;b=c+(b|4)|0;q[b>>2]|=1;e=f;b=39}else{if(f>>>0>I[Y+8>>2]>>>0){if(0!=(c|0)){var e=2<>>12&16,c=d>>>(e>>>0),d=c>>>5&8,g=c>>>(d>>>0),c=g>>>2&4,h=g>>>(c>>>0),g=h>>>1&2,h=h>>>(g>>>0),j=h>>>1&1,d=(d|e|c|g|j)+(h>>>(j>>>0))|0,e=d<<1,g=(e<<2)+Y+40|0,h=(e+2<<2)+Y+40|0,c=I[h>>2],e=c+8|0,j=I[e>>2];(g|0)==(j|0)?q[Y>>2]=b&(1<>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[h>>2]=j,q[j+12>>2]=g);g=d<<3;b=g-f|0;q[c+4>>2]=f|3;d=c+f|0;q[c+(f|4)>>2]=b|1;q[c+g>>2]=b;j=I[Y+8>>2];0!=(j|0)&&(f=q[Y+20>>2],g=j>>>2&1073741822,c=(g<<2)+Y+40|0,h=I[Y>>2],j=1<<(j>>>3),0==(h&j|0)?(q[Y>>2]=h|j,h=c,g=(g+2<<2)+Y+40|0):(g=(g+2<<2)+Y+40|0,h=I[g>>2],h>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"))),q[g>>2]=f,q[h+12>>2]=f,q[(f+8|0)>>2]=h,q[(f+12|0)>>2]=c);q[Y+8>>2]=b;q[Y+20>>2]=d;b=39}else{0==(q[Y+4>>2]|0)?(i=f,b=31):(b=pj(f),0==(b|0)?(i=f,b=31):(e=b,b=39))}}else{var i=f,b=31}}}else{4294967231>>0?(i=-1,b=31):(b=b+11&-8,0==(q[Y+4>>2]|0)?(i=b,b=31):(f=qj(b),0==(f|0)?(i=b,b=31):(e=f,b=39)))}31==b&&(f=I[Y+8>>2],i>>>0>f>>>0?(b=I[Y+12>>2],i>>>0>>0?(b=b-i|0,q[Y+12>>2]=b,f=I[Y+24>>2],q[Y+24>>2]=f+i|0,q[i+(f+4)>>2]=b|1,q[f+4>>2]=i|3,e=f+8|0):e=Vk(i)):(e=f-i|0,b=I[Y+20>>2],15>>0?(q[Y+20>>2]=b+i|0,q[Y+8>>2]=e,q[i+(b+4)>>2]=e|1,q[b+f>>2]=e,q[b+4>>2]=i|3):(q[Y+8>>2]=0,q[Y+20>>2]=0,q[b+4>>2]=f|3,i=f+(b+4)|0,q[i>>2]|=1),e=b+8|0));return e}yd.X=1;function pj(b){var f,d,c=q[Y+4>>2],e=(c&-c)-1|0,c=e>>>12&16,g=e>>>(c>>>0),e=g>>>5&8;d=g>>>(e>>>0);var g=d>>>2&4,h=d>>>(g>>>0);d=h>>>1&2;var h=h>>>(d>>>0),j=h>>>1&1,c=g=e=I[Y+((e|c|g|d|j)+(h>>>(j>>>0))<<2)+304>>2];d=c>>2;for(e=(q[e+4>>2]&-8)-b|0;;){h=q[g+16>>2];if(0==(h|0)){if(g=q[g+20>>2],0==(g|0)){break}}else{g=h}h=(q[g+4>>2]&-8)-b|0;e=(d=h>>>0>>0)?h:e;c=d?g:c;d=c>>2}var h=c,i=I[Y+16>>2],j=h>>>0>>0;do{if(!j){var k=h+b|0,g=k;if(h>>>0>>0){var j=I[d+6],k=I[d+3],p=(k|0)==(c|0);do{if(p){f=c+20|0;var s=q[f>>2];if(0==(s|0)&&(f=c+16|0,s=q[f>>2],0==(s|0))){s=0;f=s>>2;break}for(;;){var u=s+20|0,n=q[u>>2];if(0==(n|0)&&(u=s+16|0,n=I[u>>2],0==(n|0))){break}f=u;s=n}f>>>0>>0&&(Li(),a("Reached an unreachable!"));q[f>>2]=0}else{f=I[d+2],f>>>0>>0&&(Li(),a("Reached an unreachable!")),q[f+12>>2]=k,q[k+8>>2]=f,s=k}f=s>>2}while(0);i=0==(j|0);a:do{if(!i){k=c+28|0;p=(q[k>>2]<<2)+Y+304|0;u=(c|0)==(q[p>>2]|0);do{if(u){q[p>>2]=s;if(0!=(s|0)){break}q[Y+4>>2]&=1<>2]^-1;break a}j>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));n=j+16|0;(q[n>>2]|0)==(c|0)?q[n>>2]=s:q[j+20>>2]=s;if(0==(s|0)){break a}}while(0);s>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));q[f+6]=j;k=I[d+4];0!=(k|0)&&(k>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[f+4]=k,q[k+24>>2]=s);k=I[d+5];0!=(k|0)&&(k>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[f+5]=k,q[k+24>>2]=s)}}while(0);16>e>>>0?(b=e+b|0,q[d+1]=b|3,b=b+(h+4)|0,q[b>>2]|=1):(q[d+1]=b|3,q[b+(h+4)>>2]=e|1,q[h+e+b>>2]=e,i=I[Y+8>>2],0!=(i|0)&&(b=I[Y+20>>2],h=i>>>2&1073741822,d=(h<<2)+Y+40|0,j=I[Y>>2],i=1<<(i>>>3),0==(j&i|0)?(q[Y>>2]=j|i,j=d,h=(h+2<<2)+Y+40|0):(h=(h+2<<2)+Y+40|0,j=I[h>>2],j>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"))),q[h>>2]=b,q[j+12>>2]=b,q[b+8>>2]=j,q[b+12>>2]=d),q[Y+8>>2]=e,q[Y+20>>2]=g);return c+8|0}}}while(0);Li();a("Reached an unreachable!")}pj.X=1;function Vk(b){var f,d;0==(q[cl>>2]|0)&&dl();var c=0==(q[Y+440>>2]&4|0);a:do{if(c){d=q[Y+24>>2];if(0==(d|0)){d=7}else{if(d=el(d),0==(d|0)){d=7}else{var e=q[cl+8>>2],e=b+47-q[Y+12>>2]+e&-e;if(2147483647>e>>>0){var g=fl(e),h=(f=(g|0)==(q[d>>2]+q[d+4>>2]|0))?g:-1;f=f?e:0;var j=e;d=14}else{var i=0;d=22}}}if(7==d){if(d=fl(0),-1==(d|0)){i=0,d=22}else{var e=q[cl+8>>2],e=e+(b+47)&-e,k=d,p=q[cl+4>>2],s=p-1|0,e=0==(s&k|0)?e:e-k+(s+k&-p)|0;2147483647>e>>>0?(g=fl(e),f=(h=(g|0)==(d|0))?e:0,h=h?d:-1,j=e,d=14):(i=0,d=22)}}b:do{if(14==d){i=-j|0;if(-1!=(h|0)){var u=f,n=h;d=27;break a}d=-1!=(g|0)&2147483647>j>>>0;do{if(d){if(j>>>0<(b+48|0)>>>0){if(e=q[cl+8>>2],e=b+47-j+e&-e,2147483647>e>>>0){if(-1==(fl(e)|0)){fl(i);i=f;break b}e=e+j|0}else{e=j}}else{e=j}}else{e=j}}while(0);if(-1!=(g|0)){u=e;n=g;d=27;break a}q[Y+440>>2]|=4;var t=f;d=24;break a}}while(0);q[Y+440>>2]|=4;t=i}else{t=0}d=24}while(0);24==d&&(c=q[cl+8>>2],c=c+(b+47)&-c,2147483647>c>>>0?(c=fl(c),h=fl(0),-1!=(h|0)&-1!=(c|0)&c>>>0>>0?(f=h-c|0,t=(h=f>>>0>(b+40|0)>>>0)?f:t,c=h?c:-1,-1==(c|0)?d=50:(u=t,n=c,d=27)):d=50):d=50);a:do{if(27==d){t=q[Y+432>>2]+u|0;q[Y+432>>2]=t;t>>>0>I[Y+436>>2]>>>0&&(q[Y+436>>2]=t);t=I[Y+24>>2];c=0==(t|0);b:do{if(c){h=I[Y+16>>2];0==(h|0)|n>>>0>>0&&(q[Y+16>>2]=n);q[Y+444>>2]=n;q[Y+448>>2]=u;q[Y+456>>2]=0;q[Y+36>>2]=q[cl>>2];q[Y+32>>2]=-1;for(h=0;!(f=h<<1,j=(f<<2)+Y+40|0,q[Y+(f+3<<2)+40>>2]=j,q[Y+(f+2<<2)+40>>2]=j,h=h+1|0,32==(h|0));){}gl(n,u-40|0)}else{j=Y+444|0;for(f=j>>2;0!=(j|0);){h=I[f];j=j+4|0;g=I[j>>2];if((n|0)==(h+g|0)){if(0!=(q[f+3]&8|0)){break}f=t;if(!(f>>>0>=h>>>0&f>>>0>>0)){break}q[j>>2]=g+u|0;gl(q[Y+24>>2],q[Y+12>>2]+u|0);break b}j=q[f+2];f=j>>2}n>>>0>2]>>>0&&(q[Y+16>>2]=n);h=n+u|0;for(f=Y+444|0;0!=(f|0);){j=f|0;if((q[j>>2]|0)==(h|0)){if(0!=(q[f+12>>2]&8|0)){break}q[j>>2]=n;var r=f+4|0;q[r>>2]=q[r>>2]+u|0;r=hl(n,h,b);d=51;break a}f=q[f+8>>2]}il(n,u)}}while(0);t=I[Y+12>>2];t>>>0>b>>>0?(r=t-b|0,q[Y+12>>2]=r,c=t=I[Y+24>>2],q[Y+24>>2]=c+b|0,q[b+(c+4)>>2]=r|1,q[t+4>>2]=b|3,r=t+8|0,d=51):d=50}}while(0);50==d&&(q[jl>>2]=12,r=0);return r}Vk.X=1;function qj(b){var f,d,c,e,g,h=b>>2,j,i=-b|0,k=b>>>8;if(0==(k|0)){var p=0}else{if(16777215>>0){p=31}else{var s=(k+1048320|0)>>>16&8,u=k<>>16&4,t=u<>>16&2,x=14-(n|s|r)+(t<>>15)|0,p=b>>>((x+7|0)>>>0)&1|x<<1}}var v=I[Y+(p<<2)+304>>2],y=0==(v|0);a:do{if(y){var A=0,B=i,F=0}else{var H=31==(p|0)?0:25-(p>>>1)|0,z=0,w=i,J=v;g=J>>2;for(var G=b<>>0>>0){if((C|0)==(b|0)){A=J;B=ka;F=J;break a}var ra=J,N=ka}else{ra=z,N=w}var oa=I[g+5],K=I[((G>>>31<<2)+16>>2)+g],Q=0==(oa|0)|(oa|0)==(K|0)?S:oa;if(0==(K|0)){A=ra;B=N;F=Q;break a}z=ra;w=N;J=K;g=J>>2;G<<=1;S=Q}}}while(0);if(0==(F|0)&0==(A|0)){var Ka=2<>2]&(Ka|-Ka);if(0==(Aa|0)){var P=0;j=80}else{var hb=(Aa&-Aa)-1|0,ya=hb>>>12&16,Fa=hb>>>(ya>>>0),Da=Fa>>>5&8,Ma=Fa>>>(Da>>>0),ib=Ma>>>2&4,bb=Ma>>>(ib>>>0),Cb=bb>>>1&2,Oa=bb>>>(Cb>>>0),Pa=Oa>>>1&1,jb=q[Y+((Da|ya|ib|Cb|Pa)+(Oa>>>(Pa>>>0))<<2)+304>>2];j=15}}else{jb=F,j=15}a:do{if(15==j){var Db=0==(jb|0);b:do{if(Db){var xa=B,ta=A;e=ta>>2}else{var Va=jb;c=Va>>2;for(var Xa=B,Eb=A;;){var La=(q[c+1]&-8)-b|0,wb=La>>>0>>0,Ya=wb?La:Xa,cb=wb?Va:Eb,Qa=I[c+4];if(0!=(Qa|0)){Va=Qa}else{var qb=I[c+5];if(0==(qb|0)){xa=Ya;ta=cb;e=ta>>2;break b}Va=qb}c=Va>>2;Xa=Ya;Eb=cb}}}while(0);if(0!=(ta|0)&&xa>>>0<(q[Y+8>>2]-b|0)>>>0){var Ga=ta;d=Ga>>2;var Ua=I[Y+16>>2],Za=Ga>>>0>>0;do{if(!Za){var Wa=Ga+b|0,db=Wa;if(Ga>>>0>>0){var $a=I[e+6],rb=I[e+3],kb=(rb|0)==(ta|0);do{if(kb){var R=ta+20|0,$=q[R>>2];if(0==($|0)){var ba=ta+16|0,la=q[ba>>2];if(0==(la|0)){var L=0;f=L>>2;break}var Z=ba,V=la}else{Z=R,V=$,j=28}for(;;){var M=V+20|0,pa=q[M>>2];if(0!=(pa|0)){Z=M,V=pa}else{var yb=V+16|0,ca=I[yb>>2];if(0==(ca|0)){break}Z=yb;V=ca}}Z>>>0>>0&&(Li(),a("Reached an unreachable!"));q[Z>>2]=0;L=V}else{var ea=I[e+2];ea>>>0>>0&&(Li(),a("Reached an unreachable!"));q[ea+12>>2]=rb;q[rb+8>>2]=ea;L=rb}f=L>>2}while(0);var ja=0==($a|0);b:do{if(ja){var T=ta}else{var fa=ta+28|0,qa=(q[fa>>2]<<2)+Y+304|0,ma=(ta|0)==(q[qa>>2]|0);do{if(ma){q[qa>>2]=L;if(0!=(L|0)){break}q[Y+4>>2]&=1<>2]^-1;T=ta;break b}$a>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));var na=$a+16|0;(q[na>>2]|0)==(ta|0)?q[na>>2]=L:q[$a+20>>2]=L;if(0==(L|0)){T=ta;break b}}while(0);L>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));q[f+6]=$a;var va=I[e+4];0!=(va|0)&&(va>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[f+4]=va,q[va+24>>2]=L);var wa=I[e+5];0!=(wa|0)&&(wa>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[f+5]=wa,q[wa+24>>2]=L);T=ta}}while(0);var Ja=16>xa>>>0;b:do{if(Ja){var Ra=xa+b|0;q[T+4>>2]=Ra|3;var W=Ra+(Ga+4)|0;q[W>>2]|=1}else{if(q[T+4>>2]=b|3,q[h+(d+1)]=xa|1,q[(xa>>2)+d+h]=xa,256>xa>>>0){var U=xa>>>2&1073741822,ga=(U<<2)+Y+40|0,ha=I[Y>>2],ia=1<<(xa>>>3);if(0==(ha&ia|0)){q[Y>>2]=ha|ia;var X=ga,Ea=(U+2<<2)+Y+40|0}else{var eb=(U+2<<2)+Y+40|0,Fb=I[eb>>2];Fb>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));X=Fb;Ea=eb}q[Ea>>2]=db;q[X+12>>2]=db;q[h+(d+2)]=X;q[h+(d+3)]=ga}else{var ab=Wa,sb=xa>>>8;if(0==(sb|0)){var tb=0}else{if(16777215>>0){tb=31}else{var ub=(sb+1048320|0)>>>16&8,lb=sb<>>16&4,fb=lb<>>16&2,Ta=14-(mb|ub|Sa)+(fb<>>15)|0,tb=xa>>>((Ta+7|0)>>>0)&1|Ta<<1}}var Ba=(tb<<2)+Y+304|0;q[h+(d+7)]=tb;var za=b+(Ga+16)|0;q[h+(d+5)]=0;q[za>>2]=0;var gb=q[Y+4>>2],Gb=1<>2]=gb|Gb,q[Ba>>2]=ab,q[h+(d+6)]=Ba,q[h+(d+3)]=ab,q[h+(d+2)]=ab}else{for(var Hb=xa<<(31==(tb|0)?0:25-(tb>>>1)|0),vb=q[Ba>>2];;){if((q[vb+4>>2]&-8|0)==(xa|0)){var xb=vb+8|0,nb=I[xb>>2],Ib=I[Y+16>>2],zb=vb>>>0>>0;do{if(!zb&&nb>>>0>=Ib>>>0){q[nb+12>>2]=ab;q[xb>>2]=ab;q[h+(d+2)]=nb;q[h+(d+3)]=vb;q[h+(d+6)]=0;break b}}while(0);Li();a("Reached an unreachable!")}var Jb=(Hb>>>31<<2)+vb+16|0,Kb=I[Jb>>2];if(0!=(Kb|0)){Hb<<=1,vb=Kb}else{if(Jb>>>0>=I[Y+16>>2]>>>0){q[Jb>>2]=ab;q[h+(d+6)]=vb;q[h+(d+3)]=ab;q[h+(d+2)]=ab;break b}Li();a("Reached an unreachable!")}}}}}}while(0);P=T+8|0;break a}}}while(0);Li();a("Reached an unreachable!")}P=0}}while(0);return P}qj.X=1;function kl(){var b;0==(q[cl>>2]|0)&&dl();var f=I[Y+24>>2],d=0==(f|0);a:do{if(!d){var c=I[Y+12>>2],e=40>>0;do{if(e){var g=I[cl+8>>2],h=(Math.floor(((c-41+g|0)>>>0)/(g>>>0))-1)*g|0,j=el(f);if(0==(q[j+12>>2]&8|0)){var i=fl(0);b=(j+4|0)>>2;if((i|0)==(q[j>>2]+q[b]|0)&&(h=fl(-(2147483646>>0?-2147483648-g|0:h)|0),g=fl(0),-1!=(h|0)&g>>>0>>0&&(h=i-g|0,(i|0)!=(g|0)))){q[b]=q[b]-h|0;q[Y+432>>2]=q[Y+432>>2]-h|0;gl(q[Y+24>>2],q[Y+12>>2]-h|0);break a}}}}while(0);I[Y+12>>2]>>>0>I[Y+28>>2]>>>0&&(q[Y+28>>2]=-1)}}while(0)}kl.X=1;function yg(b){var f,d,c,e,g,h,j=b>>2,i,k=0==(b|0);a:do{if(!k){var p=b-8|0,s=p,u=I[Y+16>>2],n=p>>>0>>0;b:do{if(!n){var t=I[b-4>>2],r=t&3;if(1!=(r|0)){var x=t&-8;h=x>>2;var v=b+(x-8)|0,y=v,A=0==(t&1|0);c:do{if(A){var B=I[p>>2];if(0==(r|0)){break a}var F=-8-B|0;g=F>>2;var H=b+F|0,z=H,w=B+x|0;if(H>>>0>>0){break b}if((z|0)==(q[Y+20>>2]|0)){e=(b+(x-4)|0)>>2;if(3!=(q[e]&3|0)){var J=z;c=J>>2;var G=w;break}q[Y+8>>2]=w;q[e]&=-2;q[g+(j+1)]=w|1;q[v>>2]=w;break a}if(256>B>>>0){var S=I[g+(j+2)],C=I[g+(j+3)];if((S|0)==(C|0)){q[Y>>2]&=1<<(B>>>3)^-1,J=z,c=J>>2,G=w}else{var ka=((B>>>2&1073741822)<<2)+Y+40|0,ra=(S|0)!=(ka|0)&S>>>0>>0;do{if(!ra&&(C|0)==(ka|0)|C>>>0>=u>>>0){q[S+12>>2]=C;q[C+8>>2]=S;J=z;c=J>>2;G=w;break c}}while(0);Li();a("Reached an unreachable!")}}else{var N=H,oa=I[g+(j+6)],K=I[g+(j+3)],Q=(K|0)==(N|0);do{if(Q){var Ka=F+(b+20)|0,Aa=q[Ka>>2];if(0==(Aa|0)){var P=F+(b+16)|0,hb=q[P>>2];if(0==(hb|0)){var ya=0;d=ya>>2;break}var Fa=P,Da=hb}else{Fa=Ka,Da=Aa,i=22}for(;;){var Ma=Da+20|0,ib=q[Ma>>2];if(0!=(ib|0)){Fa=Ma,Da=ib}else{var bb=Da+16|0,Cb=I[bb>>2];if(0==(Cb|0)){break}Fa=bb;Da=Cb}}Fa>>>0>>0&&(Li(),a("Reached an unreachable!"));q[Fa>>2]=0;ya=Da}else{var Oa=I[g+(j+2)];Oa>>>0>>0&&(Li(),a("Reached an unreachable!"));q[Oa+12>>2]=K;q[K+8>>2]=Oa;ya=K}d=ya>>2}while(0);if(0!=(oa|0)){var Pa=F+(b+28)|0,jb=(q[Pa>>2]<<2)+Y+304|0,Db=(N|0)==(q[jb>>2]|0);do{if(Db){q[jb>>2]=ya;if(0!=(ya|0)){break}q[Y+4>>2]&=1<>2]^-1;J=z;c=J>>2;G=w;break c}oa>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));var xa=oa+16|0;(q[xa>>2]|0)==(N|0)?q[xa>>2]=ya:q[oa+20>>2]=ya;if(0==(ya|0)){J=z;c=J>>2;G=w;break c}}while(0);ya>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));q[d+6]=oa;var ta=I[g+(j+4)];0!=(ta|0)&&(ta>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[d+4]=ta,q[ta+24>>2]=ya);var Va=I[g+(j+5)];0!=(Va|0)&&(Va>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[d+5]=Va,q[Va+24>>2]=ya)}J=z;c=J>>2;G=w}}else{J=s,c=J>>2,G=x}}while(0);var Xa=J;if(Xa>>>0>>0){var Eb=b+(x-4)|0,La=I[Eb>>2];if(0!=(La&1|0)){var wb=0==(La&2|0);do{if(wb){if((y|0)==(q[Y+24>>2]|0)){var Ya=q[Y+12>>2]+G|0;q[Y+12>>2]=Ya;q[Y+24>>2]=J;q[c+1]=Ya|1;(J|0)==(q[Y+20>>2]|0)&&(q[Y+20>>2]=0,q[Y+8>>2]=0);if(Ya>>>0<=I[Y+28>>2]>>>0){break a}kl();break a}if((y|0)==(q[Y+20>>2]|0)){var cb=q[Y+8>>2]+G|0;q[Y+8>>2]=cb;q[Y+20>>2]=J;q[c+1]=cb|1;q[(Xa+cb|0)>>2]=cb;break a}var Qa=(La&-8)+G|0,qb=La>>>3,Ga=256>La>>>0;c:do{if(Ga){var Ua=I[j+h],Za=I[((x|4)>>2)+j];if((Ua|0)==(Za|0)){q[Y>>2]&=1<>>2&1073741822)<<2)+Y+40|0;i=(Ua|0)==(Wa|0)?64:Ua>>>0>2]>>>0?67:64;do{if(64==i&&!((Za|0)!=(Wa|0)&&Za>>>0>2]>>>0)){q[Ua+12>>2]=Za;q[Za+8>>2]=Ua;break c}}while(0);Li();a("Reached an unreachable!")}}else{var db=v,$a=I[h+(j+4)],rb=I[((x|4)>>2)+j],kb=(rb|0)==(db|0);do{if(kb){var R=x+(b+12)|0,$=q[R>>2];if(0==($|0)){var ba=x+(b+8)|0,la=q[ba>>2];if(0==(la|0)){var L=0;f=L>>2;break}var Z=ba,V=la}else{Z=R,V=$,i=74}for(;;){var M=V+20|0,pa=q[M>>2];if(0!=(pa|0)){Z=M,V=pa}else{var yb=V+16|0,ca=I[yb>>2];if(0==(ca|0)){break}Z=yb;V=ca}}Z>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));q[Z>>2]=0;L=V}else{var ea=I[j+h];ea>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));q[ea+12>>2]=rb;q[rb+8>>2]=ea;L=rb}f=L>>2}while(0);if(0!=($a|0)){var ja=x+(b+20)|0,T=(q[ja>>2]<<2)+Y+304|0,fa=(db|0)==(q[T>>2]|0);do{if(fa){q[T>>2]=L;if(0!=(L|0)){break}q[Y+4>>2]&=1<>2]^-1;break c}$a>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));var qa=$a+16|0;(q[qa>>2]|0)==(db|0)?q[qa>>2]=L:q[$a+20>>2]=L;if(0==(L|0)){break c}}while(0);L>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));q[f+6]=$a;var ma=I[h+(j+2)];0!=(ma|0)&&(ma>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[f+4]=ma,q[ma+24>>2]=L);var na=I[h+(j+3)];0!=(na|0)&&(na>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[f+5]=na,q[na+24>>2]=L)}}}while(0);q[c+1]=Qa|1;q[Xa+Qa>>2]=Qa;if((J|0)!=(q[Y+20>>2]|0)){var va=Qa}else{q[Y+8>>2]=Qa;break a}}else{q[Eb>>2]=La&-2,q[c+1]=G|1,va=q[Xa+G>>2]=G}}while(0);if(256>va>>>0){var wa=va>>>2&1073741822,Ja=(wa<<2)+Y+40|0,Ra=I[Y>>2],W=1<<(va>>>3);if(0==(Ra&W|0)){q[Y>>2]=Ra|W;var U=Ja,ga=(wa+2<<2)+Y+40|0}else{var ha=(wa+2<<2)+Y+40|0,ia=I[ha>>2];ia>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));U=ia;ga=ha}q[ga>>2]=J;q[U+12>>2]=J;q[c+2]=U;q[c+3]=Ja;break a}var X=J,Ea=va>>>8;if(0==(Ea|0)){var eb=0}else{if(16777215>>0){eb=31}else{var Fb=(Ea+1048320|0)>>>16&8,ab=Ea<>>16&4,tb=ab<>>16&2,lb=14-(sb|Fb|ub)+(tb<>>15)|0,eb=va>>>((lb+7|0)>>>0)&1|lb<<1}}var mb=(eb<<2)+Y+304|0;q[c+7]=eb;q[c+5]=0;q[c+4]=0;var fb=q[Y+4>>2],Sa=1<>2]=fb|Sa,q[mb>>2]=X,q[c+6]=mb,q[c+3]=J,q[c+2]=J}else{for(var Ba=va<<(31==(eb|0)?0:25-(eb>>>1)|0),za=q[mb>>2];;){if((q[za+4>>2]&-8|0)==(va|0)){var gb=za+8|0,Gb=I[gb>>2],Hb=I[Y+16>>2],vb=za>>>0>>0;do{if(!vb&&Gb>>>0>=Hb>>>0){q[Gb+12>>2]=X;q[gb>>2]=X;q[c+2]=Gb;q[c+3]=za;q[c+6]=0;break c}}while(0);Li();a("Reached an unreachable!")}var xb=(Ba>>>31<<2)+za+16|0,nb=I[xb>>2];if(0!=(nb|0)){Ba<<=1,za=nb}else{if(xb>>>0>=I[Y+16>>2]>>>0){q[xb>>2]=X;q[c+6]=za;q[c+3]=J;q[c+2]=J;break c}Li();a("Reached an unreachable!")}}}}while(0);var Ib=q[Y+32>>2]-1|0;q[Y+32>>2]=Ib;if(0!=(Ib|0)){break a}for(var zb=Y+452|0;;){var Jb=q[zb>>2];if(0==(Jb|0)){break}zb=Jb+8|0}q[Y+32>>2]=-1;break a}}}}}while(0);Li();a("Reached an unreachable!")}}while(0)}yg.X=1;function el(b){var f,d=Y+444|0;for(f=d>>2;;){var c=I[f];if(c>>>0<=b>>>0&&(c+q[f+1]|0)>>>0>b>>>0){var e=d;break}f=I[f+2];if(0==(f|0)){e=0;break}d=f;f=d>>2}return e}function gl(b,f){var d=b+8|0,d=0==(d&7|0)?0:-d&7,c=f-d|0;q[Y+24>>2]=b+d|0;q[Y+12>>2]=c;q[d+(b+4)>>2]=c|1;q[f+(b+4)>>2]=40;q[Y+28>>2]=q[cl+16>>2]}function dl(){if(0==(q[cl>>2]|0)){var b=ll();0==(b-1&b|0)?(q[cl+8>>2]=b,q[cl+4>>2]=b,q[cl+12>>2]=-1,q[cl+16>>2]=2097152,q[cl+20>>2]=0,q[Y+440>>2]=0,q[cl>>2]=Math.floor(Date.now()/1e3)&-16^1431655768):(Li(),a("Reached an unreachable!"))}}function hl(b,f,d){var c,e,g,h=f>>2,j=b>>2,i,k=b+8|0,k=0==(k&7|0)?0:-k&7;e=f+8|0;var p=0==(e&7|0)?0:-e&7;g=p>>2;var s=f+p|0,u=k+d|0;e=u>>2;var n=b+u|0,t=s-(b+k)-d|0;q[(k+4>>2)+j]=d|3;d=(s|0)==(q[Y+24>>2]|0);a:do{if(d){var r=q[Y+12>>2]+t|0;q[Y+12>>2]=r;q[Y+24>>2]=n;q[e+(j+1)]=r|1}else{if((s|0)==(q[Y+20>>2]|0)){r=q[Y+8>>2]+t|0,q[Y+8>>2]=r,q[Y+20>>2]=n,q[e+(j+1)]=r|1,q[(b+r+u|0)>>2]=r}else{var x=I[g+(h+1)];if(1==(x&3|0)){var r=x&-8,v=x>>>3,y=256>x>>>0;b:do{if(y){var A=I[((p|8)>>2)+h],B=I[g+(h+3)];if((A|0)==(B|0)){q[Y>>2]&=1<>>2&1073741822)<<2)+Y+40|0;i=(A|0)==(F|0)?16:A>>>0>2]>>>0?19:16;do{if(16==i&&!((B|0)!=(F|0)&&B>>>0>2]>>>0)){q[A+12>>2]=B;q[B+8>>2]=A;break b}}while(0);Li();a("Reached an unreachable!")}}else{i=s;A=I[((p|24)>>2)+h];B=I[g+(h+3)];F=(B|0)==(i|0);do{if(F){c=p|16;var H=c+(f+4)|0,z=q[H>>2];if(0==(z|0)){if(c=f+c|0,z=q[c>>2],0==(z|0)){z=0;c=z>>2;break}}else{c=H}for(;;){var H=z+20|0,w=q[H>>2];if(0==(w|0)&&(H=z+16|0,w=I[H>>2],0==(w|0))){break}c=H;z=w}c>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));q[c>>2]=0}else{c=I[((p|8)>>2)+h],c>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[c+12>>2]=B,q[B+8>>2]=c,z=B}c=z>>2}while(0);if(0!=(A|0)){B=p+(f+28)|0;F=(q[B>>2]<<2)+Y+304|0;H=(i|0)==(q[F>>2]|0);do{if(H){q[F>>2]=z;if(0!=(z|0)){break}q[Y+4>>2]&=1<>2]^-1;break b}A>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));w=A+16|0;(q[w>>2]|0)==(i|0)?q[w>>2]=z:q[A+20>>2]=z;if(0==(z|0)){break b}}while(0);z>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"));q[c+6]=A;i=p|16;A=I[(i>>2)+h];0!=(A|0)&&(A>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[c+4]=A,q[A+24>>2]=z);i=I[(i+4>>2)+h];0!=(i|0)&&(i>>>0>2]>>>0&&(Li(),a("Reached an unreachable!")),q[c+5]=i,q[i+24>>2]=z)}}}while(0);x=f+(r|p)|0;r=r+t|0}else{x=s,r=t}x=x+4|0;q[x>>2]&=-2;q[e+(j+1)]=r|1;q[(r>>2)+j+e]=r;if(256>r>>>0){v=r>>>2&1073741822,x=(v<<2)+Y+40|0,y=I[Y>>2],r=1<<(r>>>3),0==(y&r|0)?(q[Y>>2]=y|r,r=x,v=(v+2<<2)+Y+40|0):(v=(v+2<<2)+Y+40|0,r=I[v>>2],r>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"))),q[v>>2]=n,q[r+12>>2]=n,q[e+(j+2)]=r,q[e+(j+3)]=x}else{if(x=n,y=r>>>8,0==(y|0)?v=0:16777215>>0?v=31:(v=(y+1048320|0)>>>16&8,i=y<>>16&4,i<<=y,A=(i+245760|0)>>>16&2,v=14-(y|v|A)+(i<>>15)|0,v=r>>>((v+7|0)>>>0)&1|v<<1),y=(v<<2)+Y+304|0,q[e+(j+7)]=v,i=u+(b+16)|0,q[e+(j+5)]=0,q[i>>2]=0,i=q[Y+4>>2],A=1<>2]=i|A,q[y>>2]=x,q[e+(j+6)]=y,q[e+(j+3)]=x,q[e+(j+2)]=x}else{v=r<<(31==(v|0)?0:25-(v>>>1)|0);for(y=q[y>>2];;){if((q[y+4>>2]&-8|0)==(r|0)){i=y+8|0;A=I[i>>2];B=I[Y+16>>2];F=y>>>0>>0;do{if(!F&&A>>>0>=B>>>0){q[A+12>>2]=x;q[i>>2]=x;q[e+(j+2)]=A;q[e+(j+3)]=y;q[e+(j+6)]=0;break a}}while(0);Li();a("Reached an unreachable!")}i=(v>>>31<<2)+y+16|0;A=I[i>>2];if(0!=(A|0)){v<<=1,y=A}else{if(i>>>0>=I[Y+16>>2]>>>0){q[i>>2]=x;q[e+(j+6)]=y;q[e+(j+3)]=x;q[e+(j+2)]=x;break a}Li();a("Reached an unreachable!")}}}}}}}while(0);return b+(k|8)|0}hl.X=1;function il(b,f){var d,c,e=I[Y+24>>2];c=e>>2;var g=el(e),h=q[g>>2];d=q[g+4>>2];var g=h+d|0,j=h+(d-39)|0,h=h+(d-47)+(0==(j&7|0)?0:-j&7)|0,h=h>>>0<(e+16|0)>>>0?e:h,j=h+8|0;d=j>>2;gl(b,f-40|0);q[(h+4|0)>>2]=27;q[d]=q[Y+444>>2];q[d+1]=q[Y+448>>2];q[d+2]=q[Y+452>>2];q[d+3]=q[Y+456>>2];q[Y+444>>2]=b;q[Y+448>>2]=f;q[Y+456>>2]=0;q[Y+452>>2]=j;d=h+28|0;q[d>>2]=7;j=(h+32|0)>>>0>>0;a:do{if(j){for(var i=d;;){var k=i+4|0;q[k>>2]=7;if((i+8|0)>>>0>=g>>>0){break a}i=k}}}while(0);g=(h|0)==(e|0);a:do{if(!g){if(d=h-e|0,j=e+d|0,i=d+(e+4)|0,q[i>>2]&=-2,q[c+1]=d|1,q[j>>2]=d,256>d>>>0){i=d>>>2&1073741822,j=(i<<2)+Y+40|0,k=I[Y>>2],d=1<<(d>>>3),0==(k&d|0)?(q[Y>>2]=k|d,d=j,i=(i+2<<2)+Y+40|0):(i=(i+2<<2)+Y+40|0,d=I[i>>2],d>>>0>2]>>>0&&(Li(),a("Reached an unreachable!"))),q[i>>2]=e,q[d+12>>2]=e,q[c+2]=d,q[c+3]=j}else{j=e;k=d>>>8;if(0==(k|0)){i=0}else{if(16777215>>0){i=31}else{var i=(k+1048320|0)>>>16&8,p=k<>>16&4,p=p<>>16&2,i=14-(k|i|s)+(p<>>15)|0,i=d>>>((i+7|0)>>>0)&1|i<<1}}k=(i<<2)+Y+304|0;q[c+7]=i;q[c+5]=0;q[c+4]=0;p=q[Y+4>>2];s=1<>2]=p|s,q[k>>2]=j,q[c+6]=k,q[c+3]=e,q[c+2]=e}else{i=d<<(31==(i|0)?0:25-(i>>>1)|0);for(k=q[k>>2];;){if((q[k+4>>2]&-8|0)==(d|0)){var p=k+8|0,s=I[p>>2],u=I[Y+16>>2],n=k>>>0>>0;do{if(!n&&s>>>0>=u>>>0){q[s+12>>2]=j;q[p>>2]=j;q[c+2]=s;q[c+3]=k;q[c+6]=0;break a}}while(0);Li();a("Reached an unreachable!")}p=(i>>>31<<2)+k+16|0;s=I[p>>2];if(0!=(s|0)){i<<=1,k=s}else{if(p>>>0>=I[Y+16>>2]>>>0){q[p>>2]=j;q[c+6]=k;q[c+3]=e;q[c+2]=e;break a}Li();a("Reached an unreachable!")}}}}}}while(0)}il.X=1;function zd(b,f){var d=0;if(20<=f){for(var c=b+f;b%4;){m[b++]=d}0>d&&(d+=256);for(var e=b>>2,g=c>>2,h=d|d<<8|d<<16|d<<24;e>2,b=b>>2,c=d>>2;f>=1;b>>=1;for(c=d>>1;f>2]=b}var jl,tl=0,ul=0,vl=0,wl=2,Sh=[sa],xl=da;function yl(b,f){if("string"!==typeof b){return sa}f===aa&&(f="/");b&&"/"==b[0]&&(f="");for(var d=(f+"/"+b).split("/").reverse(),c=[""];d.length;){var e=d.pop();""==e||"."==e||(".."==e?1>2]=438,Ec),c=q[d>>2],d=f&3,e=0!=d,g=1!=d,h=Boolean(f&512),j=Boolean(f&2048),i=Boolean(f&1024),k=Boolean(f&8),b=zl(ed(b));if(!b.n){return Th(b.error),-1}if(d=b.object||sa){if(h&&j){return Th(nl),-1}if((e||h||i)&&d.d){return Th(pl),-1}if(g&&!d.w||e&&!d.write){return Th(ml),-1}if(i&&!d.b){d.a=[]}else{c=d;if(c.b||c.d||c.link||c.a){c=da}else{h=da;if("undefined"!==typeof XMLHttpRequest){Gc("Cannot do synchronous binary XHRs in modern browsers. Use --embed-file or --preload-file in emcc")}else{if(l.read){try{c.a=Te(l.read(c.url),da)}catch(p){h=ua}}else{a(Error("Cannot load without read() or XMLHttpRequest."))}}h||Th(ol);c=h}if(!c){return Th(ol),-1}}c=b.path}else{if(!h){return Th(ql),-1}if(!b.i.write){return Th(ml),-1}d=Hl(b.i,b.name,[],c&256,c&128);c=b.v+"/"+b.name}h=Sh.length;if(d.d){e=0;Ll&&(e=yd(Ll.ka));var g=[],s;for(s in d.a){g.push(s)}Sh[h]={path:c,object:d,position:-2,f:da,g:ua,m:ua,error:ua,k:ua,c:[],a:g,K:e}}else{Sh[h]={path:c,object:d,position:0,f:g,g:e,m:k,error:ua,k:ua,c:[]}}return h}function Lh(b){if(Sh[b]){return Sh[b].K&&yg(Sh[b].K),delete Sh[b],0}Th(Vh);return-1}function Ml(b,f,d,c){var e=Sh[b];if(!e||e.object.b){return Th(Vh),-1}if(e.f){if(e.object.d){return Th(pl),-1}if(0>d||0>c){return Th(Uh),-1}for(b=0;e.c.length&&0d){return Th(Uh),-1}if(c.object.b){if(c.object.input){for(b=0;c.c.length&&0>2];Ol||(Ol=yd(256));var f=Ol;if(b in Nl){if(255d){return Th(Uh),-1}if(c.object.b){if(c.object.h){for(var e=0;ed||0>e){Th(Uh),f=-1}else{for(var h=b.object.a;h.length>12<<12,Pl=da);var f=Rb;0!=b&&Ob(b);return f}var Pl;function ki(b){return(b&255)<<24|(b>>8&255)<<16|(b>>16&255)<<8|b>>>24}var Ql=ua,cn,dn,en,fn;Ye.unshift({u:(function(){if(!l.noFSInit&&!Jl){var b,f,d,c=(function(b){b===sa||10===b?(f.o(f.buffer.join("")),f.buffer=[]):f.buffer.push(j.M(b))});Gc(!Jl,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");Jl=da;Cl();b=b||l.stdin;f=f||l.stdout;d=d||l.stderr;var e=da,g=da,h=da;b||(e=ua,b=(function(){if(!b.t||!b.t.length){var c;"undefined"!=typeof window&&"function"==typeof window.prompt?(c=window.prompt("Input: "),c===sa&&(c=String.fromCharCode(0))):"function"==typeof readline&&(c=readline());c||(c="");b.t=Te(c+"\n",da)}return b.t.shift()}));var j=new Lb;f||(g=ua,f=c);f.o||(f.o=l.print);f.buffer||(f.buffer=[]);d||(h=ua,d=c);d.o||(d.o=l.print);d.buffer||(d.buffer=[]);try{El("/","tmp",da,da)}catch(i){}var c=El("/","dev",da,da),k=Il(c,"stdin",b),p=Il(c,"stdout",sa,f);d=Il(c,"stderr",sa,d);Il(c,"tty",b,f);Sh[1]={path:"/dev/stdin",object:k,position:0,f:da,g:ua,m:ua,L:!e,error:ua,k:ua,c:[]};Sh[2]={path:"/dev/stdout",object:p,position:0,f:ua,g:da,m:ua,L:!g,error:ua,k:ua,c:[]};Sh[3]={path:"/dev/stderr",object:d,position:0,f:ua,g:da,m:ua,L:!h,error:ua,k:ua,c:[]};tl=xd([1],"void*",wd);ul=xd([2],"void*",wd);vl=xd([3],"void*",wd);Fl("/","dev/shm/tmp",da,da);Sh[tl]=Sh[1];Sh[ul]=Sh[2];Sh[vl]=Sh[3];xd([xd([0,0,0,0,tl,0,0,0,ul,0,0,0,vl,0,0,0],"void*",wd)],"void*",wd)}})});Ze.push({u:(function(){xl=ua})});$e.push({u:(function(){Jl&&(Sh[2]&&0b;b++){c.push(0)}}var d=b.length+1,c=[xd(Te("/bin/this.program"),"i8",wd)];f();for(var e=0;e>2]=Ai|0;q[dg+4>>2]=Gi|0;q[eg>>2]=Bi|0;q[eg+4>>2]=Ii|0;q[fg+4>>2]=gn|0;Bd=[0,0,(function(b,f,d){return yd(d*f|0)}),0,(function(b,f){yg(f)}),0,tg,0,vg,0,wg,0,xg,0,Oh,0,Wh,0,gi,0];l.FUNCTION_TABLE=Bd;function Wf(b){function f(){var d=0;sf=da;l._main&&(Xe(Ze),d=l.da(b),l.noExitRuntime||Xe($e));if(l.postRun){for("function"==typeof l.postRun&&(l.postRun=[l.postRun]);0 - - - - - ::APP_TITLE:: - - - - - - -
- -
- - - - ::if DEBUG::::end:: - - - - - + + + + + + ::APP_TITLE:: + + + + + + +
+ +
+ + + + ::if DEBUG::::end:: + + + + + \ No newline at end of file diff --git a/buildfiles/emscripten/template/webgl-debug.js b/buildfiles/emscripten/template/webgl-debug.js index a7bf9ea9c..e2422761d 100644 --- a/buildfiles/emscripten/template/webgl-debug.js +++ b/buildfiles/emscripten/template/webgl-debug.js @@ -1,798 +1,798 @@ -//Copyright (c) 2009 The Chromium Authors. All rights reserved. -//Use of this source code is governed by a BSD-style license that can be -//found in the LICENSE file. - -// Various functions for helping debug WebGL apps. - -WebGLDebugUtils = function() { - -/** - * Wrapped logging function. - * @param {string} msg Message to log. - */ -var log = function(msg) { - if (window.console && window.console.log) { - window.console.log(msg); - } -}; - -/** - * Which arguements are enums. - * @type {!Object.} - */ -var glValidEnumContexts = { - - // Generic setters and getters - - 'enable': { 0:true }, - 'disable': { 0:true }, - 'getParameter': { 0:true }, - - // Rendering - - 'drawArrays': { 0:true }, - 'drawElements': { 0:true, 2:true }, - - // Shaders - - 'createShader': { 0:true }, - 'getShaderParameter': { 1:true }, - 'getProgramParameter': { 1:true }, - - // Vertex attributes - - 'getVertexAttrib': { 1:true }, - 'vertexAttribPointer': { 2:true }, - - // Textures - - 'bindTexture': { 0:true }, - 'activeTexture': { 0:true }, - 'getTexParameter': { 0:true, 1:true }, - 'texParameterf': { 0:true, 1:true }, - 'texParameteri': { 0:true, 1:true, 2:true }, - 'texImage2D': { 0:true, 2:true, 6:true, 7:true }, - 'texSubImage2D': { 0:true, 6:true, 7:true }, - 'copyTexImage2D': { 0:true, 2:true }, - 'copyTexSubImage2D': { 0:true }, - 'generateMipmap': { 0:true }, - - // Buffer objects - - 'bindBuffer': { 0:true }, - 'bufferData': { 0:true, 2:true }, - 'bufferSubData': { 0:true }, - 'getBufferParameter': { 0:true, 1:true }, - - // Renderbuffers and framebuffers - - 'pixelStorei': { 0:true, 1:true }, - 'readPixels': { 4:true, 5:true }, - 'bindRenderbuffer': { 0:true }, - 'bindFramebuffer': { 0:true }, - 'checkFramebufferStatus': { 0:true }, - 'framebufferRenderbuffer': { 0:true, 1:true, 2:true }, - 'framebufferTexture2D': { 0:true, 1:true, 2:true }, - 'getFramebufferAttachmentParameter': { 0:true, 1:true, 2:true }, - 'getRenderbufferParameter': { 0:true, 1:true }, - 'renderbufferStorage': { 0:true, 1:true }, - - // Frame buffer operations (clear, blend, depth test, stencil) - - 'clear': { 0:true }, - 'depthFunc': { 0:true }, - 'blendFunc': { 0:true, 1:true }, - 'blendFuncSeparate': { 0:true, 1:true, 2:true, 3:true }, - 'blendEquation': { 0:true }, - 'blendEquationSeparate': { 0:true, 1:true }, - 'stencilFunc': { 0:true }, - 'stencilFuncSeparate': { 0:true, 1:true }, - 'stencilMaskSeparate': { 0:true }, - 'stencilOp': { 0:true, 1:true, 2:true }, - 'stencilOpSeparate': { 0:true, 1:true, 2:true, 3:true }, - - // Culling - - 'cullFace': { 0:true }, - 'frontFace': { 0:true }, -}; - -/** - * Map of numbers to names. - * @type {Object} - */ -var glEnums = null; - -/** - * Initializes this module. Safe to call more than once. - * @param {!WebGLRenderingContext} ctx A WebGL context. If - * you have more than one context it doesn't matter which one - * you pass in, it is only used to pull out constants. - */ -function init(ctx) { - if (glEnums == null) { - glEnums = { }; - for (var propertyName in ctx) { - if (typeof ctx[propertyName] == 'number') { - glEnums[ctx[propertyName]] = propertyName; - } - } - } -} - -/** - * Checks the utils have been initialized. - */ -function checkInit() { - if (glEnums == null) { - throw 'WebGLDebugUtils.init(ctx) not called'; - } -} - -/** - * Returns true or false if value matches any WebGL enum - * @param {*} value Value to check if it might be an enum. - * @return {boolean} True if value matches one of the WebGL defined enums - */ -function mightBeEnum(value) { - checkInit(); - return (glEnums[value] !== undefined); -} - -/** - * Gets an string version of an WebGL enum. - * - * Example: - * var str = WebGLDebugUtil.glEnumToString(ctx.getError()); - * - * @param {number} value Value to return an enum for - * @return {string} The string version of the enum. - */ -function glEnumToString(value) { - checkInit(); - var name = glEnums[value]; - return (name !== undefined) ? name : - ("*UNKNOWN WebGL ENUM (0x" + value.toString(16) + ")"); -} - -/** - * Returns the string version of a WebGL argument. - * Attempts to convert enum arguments to strings. - * @param {string} functionName the name of the WebGL function. - * @param {number} argumentIndx the index of the argument. - * @param {*} value The value of the argument. - * @return {string} The value as a string. - */ -function glFunctionArgToString(functionName, argumentIndex, value) { - var funcInfo = glValidEnumContexts[functionName]; - if (funcInfo !== undefined) { - if (funcInfo[argumentIndex]) { - return glEnumToString(value); - } - } - return value.toString(); -} - -function makePropertyWrapper(wrapper, original, propertyName) { - //log("wrap prop: " + propertyName); - wrapper.__defineGetter__(propertyName, function() { - return original[propertyName]; - }); - // TODO(gmane): this needs to handle properties that take more than - // one value? - wrapper.__defineSetter__(propertyName, function(value) { - //log("set: " + propertyName); - original[propertyName] = value; - }); -} - -// Makes a function that calls a function on another object. -function makeFunctionWrapper(original, functionName) { - //log("wrap fn: " + functionName); - var f = original[functionName]; - return function() { - //log("call: " + functionName); - var result = f.apply(original, arguments); - return result; - }; -} - -/** - * Given a WebGL context returns a wrapped context that calls - * gl.getError after every command and calls a function if the - * result is not gl.NO_ERROR. - * - * @param {!WebGLRenderingContext} ctx The webgl context to - * wrap. - * @param {!function(err, funcName, args): void} opt_onErrorFunc - * The function to call when gl.getError returns an - * error. If not specified the default function calls - * console.log with a message. - */ -function makeDebugContext(ctx, opt_onErrorFunc) { - init(ctx); - opt_onErrorFunc = opt_onErrorFunc || function(err, functionName, args) { - // apparently we can't do args.join(","); - var argStr = ""; - for (var ii = 0; ii < args.length; ++ii) { - argStr += ((ii == 0) ? '' : ', ') + - glFunctionArgToString(functionName, ii, args[ii]); - } - log("WebGL error "+ glEnumToString(err) + " in "+ functionName + - "(" + argStr + ")"); - }; - - // Holds booleans for each GL error so after we get the error ourselves - // we can still return it to the client app. - var glErrorShadow = { }; - - // Makes a function that calls a WebGL function and then calls getError. - function makeErrorWrapper(ctx, functionName) { - return function() { - var result = ctx[functionName].apply(ctx, arguments); - var err = ctx.getError(); - if (err != 0) { - glErrorShadow[err] = true; - opt_onErrorFunc(err, functionName, arguments); - } - return result; - }; - } - - // Make a an object that has a copy of every property of the WebGL context - // but wraps all functions. - var wrapper = {}; - for (var propertyName in ctx) { - if (typeof ctx[propertyName] == 'function') { - wrapper[propertyName] = makeErrorWrapper(ctx, propertyName); - } else { - makePropertyWrapper(wrapper, ctx, propertyName); - } - } - - // Override the getError function with one that returns our saved results. - wrapper.getError = function() { - for (var err in glErrorShadow) { - if (glErrorShadow[err]) { - glErrorShadow[err] = false; - return err; - } - } - return ctx.NO_ERROR; - }; - - return wrapper; -} - -function resetToInitialState(ctx) { - var numAttribs = ctx.getParameter(ctx.MAX_VERTEX_ATTRIBS); - var tmp = ctx.createBuffer(); - ctx.bindBuffer(ctx.ARRAY_BUFFER, tmp); - for (var ii = 0; ii < numAttribs; ++ii) { - ctx.disableVertexAttribArray(ii); - ctx.vertexAttribPointer(ii, 4, ctx.FLOAT, false, 0, 0); - ctx.vertexAttrib1f(ii, 0); - } - ctx.deleteBuffer(tmp); - - var numTextureUnits = ctx.getParameter(ctx.MAX_TEXTURE_IMAGE_UNITS); - for (var ii = 0; ii < numTextureUnits; ++ii) { - ctx.activeTexture(ctx.TEXTURE0 + ii); - ctx.bindTexture(ctx.TEXTURE_CUBE_MAP, null); - ctx.bindTexture(ctx.TEXTURE_2D, null); - } - - ctx.activeTexture(ctx.TEXTURE0); - ctx.useProgram(null); - ctx.bindBuffer(ctx.ARRAY_BUFFER, null); - ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, null); - ctx.bindFramebuffer(ctx.FRAMEBUFFER, null); - ctx.bindRenderbuffer(ctx.RENDERBUFFER, null); - ctx.disable(ctx.BLEND); - ctx.disable(ctx.CULL_FACE); - ctx.disable(ctx.DEPTH_TEST); - ctx.disable(ctx.DITHER); - ctx.disable(ctx.SCISSOR_TEST); - ctx.blendColor(0, 0, 0, 0); - ctx.blendEquation(ctx.FUNC_ADD); - ctx.blendFunc(ctx.ONE, ctx.ZERO); - ctx.clearColor(0, 0, 0, 0); - ctx.clearDepth(1); - ctx.clearStencil(-1); - ctx.colorMask(true, true, true, true); - ctx.cullFace(ctx.BACK); - ctx.depthFunc(ctx.LESS); - ctx.depthMask(true); - ctx.depthRange(0, 1); - ctx.frontFace(ctx.CCW); - ctx.hint(ctx.GENERATE_MIPMAP_HINT, ctx.DONT_CARE); - ctx.lineWidth(1); - ctx.pixelStorei(ctx.PACK_ALIGNMENT, 4); - ctx.pixelStorei(ctx.UNPACK_ALIGNMENT, 4); - ctx.pixelStorei(ctx.UNPACK_FLIP_Y_WEBGL, false); - ctx.pixelStorei(ctx.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false); - // TODO: Delete this IF. - if (ctx.UNPACK_COLORSPACE_CONVERSION_WEBGL) { - ctx.pixelStorei(ctx.UNPACK_COLORSPACE_CONVERSION_WEBGL, ctx.BROWSER_DEFAULT_WEBGL); - } - ctx.polygonOffset(0, 0); - ctx.sampleCoverage(1, false); - ctx.scissor(0, 0, ctx.canvas.width, ctx.canvas.height); - ctx.stencilFunc(ctx.ALWAYS, 0, 0xFFFFFFFF); - ctx.stencilMask(0xFFFFFFFF); - ctx.stencilOp(ctx.KEEP, ctx.KEEP, ctx.KEEP); - ctx.viewport(0, 0, ctx.canvas.width, ctx.canvas.height); - ctx.clear(ctx.COLOR_BUFFER_BIT | ctx.DEPTH_BUFFER_BIT | ctx.STENCIL_BUFFER_BIT); - - // TODO: This should NOT be needed but Firefox fails with 'hint' - while(ctx.getError()); -} - -function makeLostContextSimulatingCanvas(canvas) { - var unwrappedContext_; - var wrappedContext_; - var onLost_ = []; - var onRestored_ = []; - var wrappedContext_ = {}; - var contextId_ = 1; - var contextLost_ = false; - var resourceId_ = 0; - var resourceDb_ = []; - var numCallsToLoseContext_ = 0; - var numCalls_ = 0; - var canRestore_ = false; - var restoreTimeout_ = 0; - - // Holds booleans for each GL error so can simulate errors. - var glErrorShadow_ = { }; - - canvas.getContext = function(f) { - return function() { - var ctx = f.apply(canvas, arguments); - // Did we get a context and is it a WebGL context? - if (ctx instanceof WebGLRenderingContext) { - if (ctx != unwrappedContext_) { - if (unwrappedContext_) { - throw "got different context" - } - unwrappedContext_ = ctx; - wrappedContext_ = makeLostContextSimulatingContext(unwrappedContext_); - } - return wrappedContext_; - } - return ctx; - } - }(canvas.getContext); - - function wrapEvent(listener) { - if (typeof(listener) == "function") { - return listener; - } else { - return function(info) { - listener.handleEvent(info); - } - } - } - - var addOnContextLostListener = function(listener) { - onLost_.push(wrapEvent(listener)); - }; - - var addOnContextRestoredListener = function(listener) { - onRestored_.push(wrapEvent(listener)); - }; - - - function wrapAddEventListener(canvas) { - var f = canvas.addEventListener; - canvas.addEventListener = function(type, listener, bubble) { - switch (type) { - case 'webglcontextlost': - addOnContextLostListener(listener); - break; - case 'webglcontextrestored': - addOnContextRestoredListener(listener); - break; - default: - f.apply(canvas, arguments); - } - }; - } - - wrapAddEventListener(canvas); - - canvas.loseContext = function() { - if (!contextLost_) { - contextLost_ = true; - numCallsToLoseContext_ = 0; - ++contextId_; - while (unwrappedContext_.getError()); - clearErrors(); - glErrorShadow_[unwrappedContext_.CONTEXT_LOST_WEBGL] = true; - var event = makeWebGLContextEvent("context lost"); - var callbacks = onLost_.slice(); - setTimeout(function() { - //log("numCallbacks:" + callbacks.length); - for (var ii = 0; ii < callbacks.length; ++ii) { - //log("calling callback:" + ii); - callbacks[ii](event); - } - if (restoreTimeout_ >= 0) { - setTimeout(function() { - canvas.restoreContext(); - }, restoreTimeout_); - } - }, 0); - } - }; - - canvas.restoreContext = function() { - if (contextLost_) { - if (onRestored_.length) { - setTimeout(function() { - if (!canRestore_) { - throw "can not restore. webglcontestlost listener did not call event.preventDefault"; - } - freeResources(); - resetToInitialState(unwrappedContext_); - contextLost_ = false; - numCalls_ = 0; - canRestore_ = false; - var callbacks = onRestored_.slice(); - var event = makeWebGLContextEvent("context restored"); - for (var ii = 0; ii < callbacks.length; ++ii) { - callbacks[ii](event); - } - }, 0); - } - } - }; - - canvas.loseContextInNCalls = function(numCalls) { - if (contextLost_) { - throw "You can not ask a lost contet to be lost"; - } - numCallsToLoseContext_ = numCalls_ + numCalls; - }; - - canvas.getNumCalls = function() { - return numCalls_; - }; - - canvas.setRestoreTimeout = function(timeout) { - restoreTimeout_ = timeout; - }; - - function isWebGLObject(obj) { - //return false; - return (obj instanceof WebGLBuffer || - obj instanceof WebGLFramebuffer || - obj instanceof WebGLProgram || - obj instanceof WebGLRenderbuffer || - obj instanceof WebGLShader || - obj instanceof WebGLTexture); - } - - function checkResources(args) { - for (var ii = 0; ii < args.length; ++ii) { - var arg = args[ii]; - if (isWebGLObject(arg)) { - return arg.__webglDebugContextLostId__ == contextId_; - } - } - return true; - } - - function clearErrors() { - var k = Object.keys(glErrorShadow_); - for (var ii = 0; ii < k.length; ++ii) { - delete glErrorShadow_[k]; - } - } - - function loseContextIfTime() { - ++numCalls_; - if (!contextLost_) { - if (numCallsToLoseContext_ == numCalls_) { - canvas.loseContext(); - } - } - } - - // Makes a function that simulates WebGL when out of context. - function makeLostContextFunctionWrapper(ctx, functionName) { - var f = ctx[functionName]; - return function() { - // log("calling:" + functionName); - // Only call the functions if the context is not lost. - loseContextIfTime(); - if (!contextLost_) { - //if (!checkResources(arguments)) { - // glErrorShadow_[wrappedContext_.INVALID_OPERATION] = true; - // return; - //} - var result = f.apply(ctx, arguments); - return result; - } - }; - } - - function freeResources() { - for (var ii = 0; ii < resourceDb_.length; ++ii) { - var resource = resourceDb_[ii]; - if (resource instanceof WebGLBuffer) { - unwrappedContext_.deleteBuffer(resource); - } else if (resource instanceof WebGLFramebuffer) { - unwrappedContext_.deleteFramebuffer(resource); - } else if (resource instanceof WebGLProgram) { - unwrappedContext_.deleteProgram(resource); - } else if (resource instanceof WebGLRenderbuffer) { - unwrappedContext_.deleteRenderbuffer(resource); - } else if (resource instanceof WebGLShader) { - unwrappedContext_.deleteShader(resource); - } else if (resource instanceof WebGLTexture) { - unwrappedContext_.deleteTexture(resource); - } - } - } - - function makeWebGLContextEvent(statusMessage) { - return { - statusMessage: statusMessage, - preventDefault: function() { - canRestore_ = true; - } - }; - } - - return canvas; - - function makeLostContextSimulatingContext(ctx) { - // copy all functions and properties to wrapper - for (var propertyName in ctx) { - if (typeof ctx[propertyName] == 'function') { - wrappedContext_[propertyName] = makeLostContextFunctionWrapper( - ctx, propertyName); - } else { - makePropertyWrapper(wrappedContext_, ctx, propertyName); - } - } - - // Wrap a few functions specially. - wrappedContext_.getError = function() { - loseContextIfTime(); - if (!contextLost_) { - var err; - while (err = unwrappedContext_.getError()) { - glErrorShadow_[err] = true; - } - } - for (var err in glErrorShadow_) { - if (glErrorShadow_[err]) { - delete glErrorShadow_[err]; - return err; - } - } - return wrappedContext_.NO_ERROR; - }; - - var creationFunctions = [ - "createBuffer", - "createFramebuffer", - "createProgram", - "createRenderbuffer", - "createShader", - "createTexture" - ]; - for (var ii = 0; ii < creationFunctions.length; ++ii) { - var functionName = creationFunctions[ii]; - wrappedContext_[functionName] = function(f) { - return function() { - loseContextIfTime(); - if (contextLost_) { - return null; - } - var obj = f.apply(ctx, arguments); - obj.__webglDebugContextLostId__ = contextId_; - resourceDb_.push(obj); - return obj; - }; - }(ctx[functionName]); - } - - var functionsThatShouldReturnNull = [ - "getActiveAttrib", - "getActiveUniform", - "getBufferParameter", - "getContextAttributes", - "getAttachedShaders", - "getFramebufferAttachmentParameter", - "getParameter", - "getProgramParameter", - "getProgramInfoLog", - "getRenderbufferParameter", - "getShaderParameter", - "getShaderInfoLog", - "getShaderSource", - "getTexParameter", - "getUniform", - "getUniformLocation", - "getVertexAttrib" - ]; - for (var ii = 0; ii < functionsThatShouldReturnNull.length; ++ii) { - var functionName = functionsThatShouldReturnNull[ii]; - wrappedContext_[functionName] = function(f) { - return function() { - loseContextIfTime(); - if (contextLost_) { - return null; - } - return f.apply(ctx, arguments); - } - }(wrappedContext_[functionName]); - } - - var isFunctions = [ - "isBuffer", - "isEnabled", - "isFramebuffer", - "isProgram", - "isRenderbuffer", - "isShader", - "isTexture" - ]; - for (var ii = 0; ii < isFunctions.length; ++ii) { - var functionName = isFunctions[ii]; - wrappedContext_[functionName] = function(f) { - return function() { - loseContextIfTime(); - if (contextLost_) { - return false; - } - return f.apply(ctx, arguments); - } - }(wrappedContext_[functionName]); - } - - wrappedContext_.checkFramebufferStatus = function(f) { - return function() { - loseContextIfTime(); - if (contextLost_) { - return wrappedContext_.FRAMEBUFFER_UNSUPPORTED; - } - return f.apply(ctx, arguments); - }; - }(wrappedContext_.checkFramebufferStatus); - - wrappedContext_.getAttribLocation = function(f) { - return function() { - loseContextIfTime(); - if (contextLost_) { - return -1; - } - return f.apply(ctx, arguments); - }; - }(wrappedContext_.getAttribLocation); - - wrappedContext_.getVertexAttribOffset = function(f) { - return function() { - loseContextIfTime(); - if (contextLost_) { - return 0; - } - return f.apply(ctx, arguments); - }; - }(wrappedContext_.getVertexAttribOffset); - - wrappedContext_.isContextLost = function() { - return contextLost_; - }; - - return wrappedContext_; - } -} - -return { - /** - * Initializes this module. Safe to call more than once. - * @param {!WebGLRenderingContext} ctx A WebGL context. If - } - * you have more than one context it doesn't matter which one - * you pass in, it is only used to pull out constants. - */ - 'init': init, - - /** - * Returns true or false if value matches any WebGL enum - * @param {*} value Value to check if it might be an enum. - * @return {boolean} True if value matches one of the WebGL defined enums - */ - 'mightBeEnum': mightBeEnum, - - /** - * Gets an string version of an WebGL enum. - * - * Example: - * WebGLDebugUtil.init(ctx); - * var str = WebGLDebugUtil.glEnumToString(ctx.getError()); - * - * @param {number} value Value to return an enum for - * @return {string} The string version of the enum. - */ - 'glEnumToString': glEnumToString, - - /** - * Converts the argument of a WebGL function to a string. - * Attempts to convert enum arguments to strings. - * - * Example: - * WebGLDebugUtil.init(ctx); - * var str = WebGLDebugUtil.glFunctionArgToString('bindTexture', 0, gl.TEXTURE_2D); - * - * would return 'TEXTURE_2D' - * - * @param {string} functionName the name of the WebGL function. - * @param {number} argumentIndx the index of the argument. - * @param {*} value The value of the argument. - * @return {string} The value as a string. - */ - 'glFunctionArgToString': glFunctionArgToString, - - /** - * Given a WebGL context returns a wrapped context that calls - * gl.getError after every command and calls a function if the - * result is not NO_ERROR. - * - * You can supply your own function if you want. For example, if you'd like - * an exception thrown on any GL error you could do this - * - * function throwOnGLError(err, funcName, args) { - * throw WebGLDebugUtils.glEnumToString(err) + " was caused by call to" + - * funcName; - * }; - * - * ctx = WebGLDebugUtils.makeDebugContext( - * canvas.getContext("webgl"), throwOnGLError); - * - * @param {!WebGLRenderingContext} ctx The webgl context to wrap. - * @param {!function(err, funcName, args): void} opt_onErrorFunc The function - * to call when gl.getError returns an error. If not specified the default - * function calls console.log with a message. - */ - 'makeDebugContext': makeDebugContext, - - /** - * Given a canvas element returns a wrapped canvas element that will - * simulate lost context. The canvas returned adds the following functions. - * - * loseContext: - * simulates a lost context event. - * - * restoreContext: - * simulates the context being restored. - * - * lostContextInNCalls: - * loses the context after N gl calls. - * - * getNumCalls: - * tells you how many gl calls there have been so far. - * - * setRestoreTimeout: - * sets the number of milliseconds until the context is restored - * after it has been lost. Defaults to 0. Pass -1 to prevent - * automatic restoring. - * - * @param {!Canvas} canvas The canvas element to wrap. - */ - 'makeLostContextSimulatingCanvas': makeLostContextSimulatingCanvas, - - /** - * Resets a context to the initial state. - * @param {!WebGLRenderingContext} ctx The webgl context to - * reset. - */ - 'resetToInitialState': resetToInitialState -}; - -}(); - +//Copyright (c) 2009 The Chromium Authors. All rights reserved. +//Use of this source code is governed by a BSD-style license that can be +//found in the LICENSE file. + +// Various functions for helping debug WebGL apps. + +WebGLDebugUtils = function() { + +/** + * Wrapped logging function. + * @param {string} msg Message to log. + */ +var log = function(msg) { + if (window.console && window.console.log) { + window.console.log(msg); + } +}; + +/** + * Which arguements are enums. + * @type {!Object.} + */ +var glValidEnumContexts = { + + // Generic setters and getters + + 'enable': { 0:true }, + 'disable': { 0:true }, + 'getParameter': { 0:true }, + + // Rendering + + 'drawArrays': { 0:true }, + 'drawElements': { 0:true, 2:true }, + + // Shaders + + 'createShader': { 0:true }, + 'getShaderParameter': { 1:true }, + 'getProgramParameter': { 1:true }, + + // Vertex attributes + + 'getVertexAttrib': { 1:true }, + 'vertexAttribPointer': { 2:true }, + + // Textures + + 'bindTexture': { 0:true }, + 'activeTexture': { 0:true }, + 'getTexParameter': { 0:true, 1:true }, + 'texParameterf': { 0:true, 1:true }, + 'texParameteri': { 0:true, 1:true, 2:true }, + 'texImage2D': { 0:true, 2:true, 6:true, 7:true }, + 'texSubImage2D': { 0:true, 6:true, 7:true }, + 'copyTexImage2D': { 0:true, 2:true }, + 'copyTexSubImage2D': { 0:true }, + 'generateMipmap': { 0:true }, + + // Buffer objects + + 'bindBuffer': { 0:true }, + 'bufferData': { 0:true, 2:true }, + 'bufferSubData': { 0:true }, + 'getBufferParameter': { 0:true, 1:true }, + + // Renderbuffers and framebuffers + + 'pixelStorei': { 0:true, 1:true }, + 'readPixels': { 4:true, 5:true }, + 'bindRenderbuffer': { 0:true }, + 'bindFramebuffer': { 0:true }, + 'checkFramebufferStatus': { 0:true }, + 'framebufferRenderbuffer': { 0:true, 1:true, 2:true }, + 'framebufferTexture2D': { 0:true, 1:true, 2:true }, + 'getFramebufferAttachmentParameter': { 0:true, 1:true, 2:true }, + 'getRenderbufferParameter': { 0:true, 1:true }, + 'renderbufferStorage': { 0:true, 1:true }, + + // Frame buffer operations (clear, blend, depth test, stencil) + + 'clear': { 0:true }, + 'depthFunc': { 0:true }, + 'blendFunc': { 0:true, 1:true }, + 'blendFuncSeparate': { 0:true, 1:true, 2:true, 3:true }, + 'blendEquation': { 0:true }, + 'blendEquationSeparate': { 0:true, 1:true }, + 'stencilFunc': { 0:true }, + 'stencilFuncSeparate': { 0:true, 1:true }, + 'stencilMaskSeparate': { 0:true }, + 'stencilOp': { 0:true, 1:true, 2:true }, + 'stencilOpSeparate': { 0:true, 1:true, 2:true, 3:true }, + + // Culling + + 'cullFace': { 0:true }, + 'frontFace': { 0:true }, +}; + +/** + * Map of numbers to names. + * @type {Object} + */ +var glEnums = null; + +/** + * Initializes this module. Safe to call more than once. + * @param {!WebGLRenderingContext} ctx A WebGL context. If + * you have more than one context it doesn't matter which one + * you pass in, it is only used to pull out constants. + */ +function init(ctx) { + if (glEnums == null) { + glEnums = { }; + for (var propertyName in ctx) { + if (typeof ctx[propertyName] == 'number') { + glEnums[ctx[propertyName]] = propertyName; + } + } + } +} + +/** + * Checks the utils have been initialized. + */ +function checkInit() { + if (glEnums == null) { + throw 'WebGLDebugUtils.init(ctx) not called'; + } +} + +/** + * Returns true or false if value matches any WebGL enum + * @param {*} value Value to check if it might be an enum. + * @return {boolean} True if value matches one of the WebGL defined enums + */ +function mightBeEnum(value) { + checkInit(); + return (glEnums[value] !== undefined); +} + +/** + * Gets an string version of an WebGL enum. + * + * Example: + * var str = WebGLDebugUtil.glEnumToString(ctx.getError()); + * + * @param {number} value Value to return an enum for + * @return {string} The string version of the enum. + */ +function glEnumToString(value) { + checkInit(); + var name = glEnums[value]; + return (name !== undefined) ? name : + ("*UNKNOWN WebGL ENUM (0x" + value.toString(16) + ")"); +} + +/** + * Returns the string version of a WebGL argument. + * Attempts to convert enum arguments to strings. + * @param {string} functionName the name of the WebGL function. + * @param {number} argumentIndx the index of the argument. + * @param {*} value The value of the argument. + * @return {string} The value as a string. + */ +function glFunctionArgToString(functionName, argumentIndex, value) { + var funcInfo = glValidEnumContexts[functionName]; + if (funcInfo !== undefined) { + if (funcInfo[argumentIndex]) { + return glEnumToString(value); + } + } + return value.toString(); +} + +function makePropertyWrapper(wrapper, original, propertyName) { + //log("wrap prop: " + propertyName); + wrapper.__defineGetter__(propertyName, function() { + return original[propertyName]; + }); + // TODO(gmane): this needs to handle properties that take more than + // one value? + wrapper.__defineSetter__(propertyName, function(value) { + //log("set: " + propertyName); + original[propertyName] = value; + }); +} + +// Makes a function that calls a function on another object. +function makeFunctionWrapper(original, functionName) { + //log("wrap fn: " + functionName); + var f = original[functionName]; + return function() { + //log("call: " + functionName); + var result = f.apply(original, arguments); + return result; + }; +} + +/** + * Given a WebGL context returns a wrapped context that calls + * gl.getError after every command and calls a function if the + * result is not gl.NO_ERROR. + * + * @param {!WebGLRenderingContext} ctx The webgl context to + * wrap. + * @param {!function(err, funcName, args): void} opt_onErrorFunc + * The function to call when gl.getError returns an + * error. If not specified the default function calls + * console.log with a message. + */ +function makeDebugContext(ctx, opt_onErrorFunc) { + init(ctx); + opt_onErrorFunc = opt_onErrorFunc || function(err, functionName, args) { + // apparently we can't do args.join(","); + var argStr = ""; + for (var ii = 0; ii < args.length; ++ii) { + argStr += ((ii == 0) ? '' : ', ') + + glFunctionArgToString(functionName, ii, args[ii]); + } + log("WebGL error "+ glEnumToString(err) + " in "+ functionName + + "(" + argStr + ")"); + }; + + // Holds booleans for each GL error so after we get the error ourselves + // we can still return it to the client app. + var glErrorShadow = { }; + + // Makes a function that calls a WebGL function and then calls getError. + function makeErrorWrapper(ctx, functionName) { + return function() { + var result = ctx[functionName].apply(ctx, arguments); + var err = ctx.getError(); + if (err != 0) { + glErrorShadow[err] = true; + opt_onErrorFunc(err, functionName, arguments); + } + return result; + }; + } + + // Make a an object that has a copy of every property of the WebGL context + // but wraps all functions. + var wrapper = {}; + for (var propertyName in ctx) { + if (typeof ctx[propertyName] == 'function') { + wrapper[propertyName] = makeErrorWrapper(ctx, propertyName); + } else { + makePropertyWrapper(wrapper, ctx, propertyName); + } + } + + // Override the getError function with one that returns our saved results. + wrapper.getError = function() { + for (var err in glErrorShadow) { + if (glErrorShadow[err]) { + glErrorShadow[err] = false; + return err; + } + } + return ctx.NO_ERROR; + }; + + return wrapper; +} + +function resetToInitialState(ctx) { + var numAttribs = ctx.getParameter(ctx.MAX_VERTEX_ATTRIBS); + var tmp = ctx.createBuffer(); + ctx.bindBuffer(ctx.ARRAY_BUFFER, tmp); + for (var ii = 0; ii < numAttribs; ++ii) { + ctx.disableVertexAttribArray(ii); + ctx.vertexAttribPointer(ii, 4, ctx.FLOAT, false, 0, 0); + ctx.vertexAttrib1f(ii, 0); + } + ctx.deleteBuffer(tmp); + + var numTextureUnits = ctx.getParameter(ctx.MAX_TEXTURE_IMAGE_UNITS); + for (var ii = 0; ii < numTextureUnits; ++ii) { + ctx.activeTexture(ctx.TEXTURE0 + ii); + ctx.bindTexture(ctx.TEXTURE_CUBE_MAP, null); + ctx.bindTexture(ctx.TEXTURE_2D, null); + } + + ctx.activeTexture(ctx.TEXTURE0); + ctx.useProgram(null); + ctx.bindBuffer(ctx.ARRAY_BUFFER, null); + ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, null); + ctx.bindFramebuffer(ctx.FRAMEBUFFER, null); + ctx.bindRenderbuffer(ctx.RENDERBUFFER, null); + ctx.disable(ctx.BLEND); + ctx.disable(ctx.CULL_FACE); + ctx.disable(ctx.DEPTH_TEST); + ctx.disable(ctx.DITHER); + ctx.disable(ctx.SCISSOR_TEST); + ctx.blendColor(0, 0, 0, 0); + ctx.blendEquation(ctx.FUNC_ADD); + ctx.blendFunc(ctx.ONE, ctx.ZERO); + ctx.clearColor(0, 0, 0, 0); + ctx.clearDepth(1); + ctx.clearStencil(-1); + ctx.colorMask(true, true, true, true); + ctx.cullFace(ctx.BACK); + ctx.depthFunc(ctx.LESS); + ctx.depthMask(true); + ctx.depthRange(0, 1); + ctx.frontFace(ctx.CCW); + ctx.hint(ctx.GENERATE_MIPMAP_HINT, ctx.DONT_CARE); + ctx.lineWidth(1); + ctx.pixelStorei(ctx.PACK_ALIGNMENT, 4); + ctx.pixelStorei(ctx.UNPACK_ALIGNMENT, 4); + ctx.pixelStorei(ctx.UNPACK_FLIP_Y_WEBGL, false); + ctx.pixelStorei(ctx.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false); + // TODO: Delete this IF. + if (ctx.UNPACK_COLORSPACE_CONVERSION_WEBGL) { + ctx.pixelStorei(ctx.UNPACK_COLORSPACE_CONVERSION_WEBGL, ctx.BROWSER_DEFAULT_WEBGL); + } + ctx.polygonOffset(0, 0); + ctx.sampleCoverage(1, false); + ctx.scissor(0, 0, ctx.canvas.width, ctx.canvas.height); + ctx.stencilFunc(ctx.ALWAYS, 0, 0xFFFFFFFF); + ctx.stencilMask(0xFFFFFFFF); + ctx.stencilOp(ctx.KEEP, ctx.KEEP, ctx.KEEP); + ctx.viewport(0, 0, ctx.canvas.width, ctx.canvas.height); + ctx.clear(ctx.COLOR_BUFFER_BIT | ctx.DEPTH_BUFFER_BIT | ctx.STENCIL_BUFFER_BIT); + + // TODO: This should NOT be needed but Firefox fails with 'hint' + while(ctx.getError()); +} + +function makeLostContextSimulatingCanvas(canvas) { + var unwrappedContext_; + var wrappedContext_; + var onLost_ = []; + var onRestored_ = []; + var wrappedContext_ = {}; + var contextId_ = 1; + var contextLost_ = false; + var resourceId_ = 0; + var resourceDb_ = []; + var numCallsToLoseContext_ = 0; + var numCalls_ = 0; + var canRestore_ = false; + var restoreTimeout_ = 0; + + // Holds booleans for each GL error so can simulate errors. + var glErrorShadow_ = { }; + + canvas.getContext = function(f) { + return function() { + var ctx = f.apply(canvas, arguments); + // Did we get a context and is it a WebGL context? + if (ctx instanceof WebGLRenderingContext) { + if (ctx != unwrappedContext_) { + if (unwrappedContext_) { + throw "got different context" + } + unwrappedContext_ = ctx; + wrappedContext_ = makeLostContextSimulatingContext(unwrappedContext_); + } + return wrappedContext_; + } + return ctx; + } + }(canvas.getContext); + + function wrapEvent(listener) { + if (typeof(listener) == "function") { + return listener; + } else { + return function(info) { + listener.handleEvent(info); + } + } + } + + var addOnContextLostListener = function(listener) { + onLost_.push(wrapEvent(listener)); + }; + + var addOnContextRestoredListener = function(listener) { + onRestored_.push(wrapEvent(listener)); + }; + + + function wrapAddEventListener(canvas) { + var f = canvas.addEventListener; + canvas.addEventListener = function(type, listener, bubble) { + switch (type) { + case 'webglcontextlost': + addOnContextLostListener(listener); + break; + case 'webglcontextrestored': + addOnContextRestoredListener(listener); + break; + default: + f.apply(canvas, arguments); + } + }; + } + + wrapAddEventListener(canvas); + + canvas.loseContext = function() { + if (!contextLost_) { + contextLost_ = true; + numCallsToLoseContext_ = 0; + ++contextId_; + while (unwrappedContext_.getError()); + clearErrors(); + glErrorShadow_[unwrappedContext_.CONTEXT_LOST_WEBGL] = true; + var event = makeWebGLContextEvent("context lost"); + var callbacks = onLost_.slice(); + setTimeout(function() { + //log("numCallbacks:" + callbacks.length); + for (var ii = 0; ii < callbacks.length; ++ii) { + //log("calling callback:" + ii); + callbacks[ii](event); + } + if (restoreTimeout_ >= 0) { + setTimeout(function() { + canvas.restoreContext(); + }, restoreTimeout_); + } + }, 0); + } + }; + + canvas.restoreContext = function() { + if (contextLost_) { + if (onRestored_.length) { + setTimeout(function() { + if (!canRestore_) { + throw "can not restore. webglcontestlost listener did not call event.preventDefault"; + } + freeResources(); + resetToInitialState(unwrappedContext_); + contextLost_ = false; + numCalls_ = 0; + canRestore_ = false; + var callbacks = onRestored_.slice(); + var event = makeWebGLContextEvent("context restored"); + for (var ii = 0; ii < callbacks.length; ++ii) { + callbacks[ii](event); + } + }, 0); + } + } + }; + + canvas.loseContextInNCalls = function(numCalls) { + if (contextLost_) { + throw "You can not ask a lost contet to be lost"; + } + numCallsToLoseContext_ = numCalls_ + numCalls; + }; + + canvas.getNumCalls = function() { + return numCalls_; + }; + + canvas.setRestoreTimeout = function(timeout) { + restoreTimeout_ = timeout; + }; + + function isWebGLObject(obj) { + //return false; + return (obj instanceof WebGLBuffer || + obj instanceof WebGLFramebuffer || + obj instanceof WebGLProgram || + obj instanceof WebGLRenderbuffer || + obj instanceof WebGLShader || + obj instanceof WebGLTexture); + } + + function checkResources(args) { + for (var ii = 0; ii < args.length; ++ii) { + var arg = args[ii]; + if (isWebGLObject(arg)) { + return arg.__webglDebugContextLostId__ == contextId_; + } + } + return true; + } + + function clearErrors() { + var k = Object.keys(glErrorShadow_); + for (var ii = 0; ii < k.length; ++ii) { + delete glErrorShadow_[k]; + } + } + + function loseContextIfTime() { + ++numCalls_; + if (!contextLost_) { + if (numCallsToLoseContext_ == numCalls_) { + canvas.loseContext(); + } + } + } + + // Makes a function that simulates WebGL when out of context. + function makeLostContextFunctionWrapper(ctx, functionName) { + var f = ctx[functionName]; + return function() { + // log("calling:" + functionName); + // Only call the functions if the context is not lost. + loseContextIfTime(); + if (!contextLost_) { + //if (!checkResources(arguments)) { + // glErrorShadow_[wrappedContext_.INVALID_OPERATION] = true; + // return; + //} + var result = f.apply(ctx, arguments); + return result; + } + }; + } + + function freeResources() { + for (var ii = 0; ii < resourceDb_.length; ++ii) { + var resource = resourceDb_[ii]; + if (resource instanceof WebGLBuffer) { + unwrappedContext_.deleteBuffer(resource); + } else if (resource instanceof WebGLFramebuffer) { + unwrappedContext_.deleteFramebuffer(resource); + } else if (resource instanceof WebGLProgram) { + unwrappedContext_.deleteProgram(resource); + } else if (resource instanceof WebGLRenderbuffer) { + unwrappedContext_.deleteRenderbuffer(resource); + } else if (resource instanceof WebGLShader) { + unwrappedContext_.deleteShader(resource); + } else if (resource instanceof WebGLTexture) { + unwrappedContext_.deleteTexture(resource); + } + } + } + + function makeWebGLContextEvent(statusMessage) { + return { + statusMessage: statusMessage, + preventDefault: function() { + canRestore_ = true; + } + }; + } + + return canvas; + + function makeLostContextSimulatingContext(ctx) { + // copy all functions and properties to wrapper + for (var propertyName in ctx) { + if (typeof ctx[propertyName] == 'function') { + wrappedContext_[propertyName] = makeLostContextFunctionWrapper( + ctx, propertyName); + } else { + makePropertyWrapper(wrappedContext_, ctx, propertyName); + } + } + + // Wrap a few functions specially. + wrappedContext_.getError = function() { + loseContextIfTime(); + if (!contextLost_) { + var err; + while (err = unwrappedContext_.getError()) { + glErrorShadow_[err] = true; + } + } + for (var err in glErrorShadow_) { + if (glErrorShadow_[err]) { + delete glErrorShadow_[err]; + return err; + } + } + return wrappedContext_.NO_ERROR; + }; + + var creationFunctions = [ + "createBuffer", + "createFramebuffer", + "createProgram", + "createRenderbuffer", + "createShader", + "createTexture" + ]; + for (var ii = 0; ii < creationFunctions.length; ++ii) { + var functionName = creationFunctions[ii]; + wrappedContext_[functionName] = function(f) { + return function() { + loseContextIfTime(); + if (contextLost_) { + return null; + } + var obj = f.apply(ctx, arguments); + obj.__webglDebugContextLostId__ = contextId_; + resourceDb_.push(obj); + return obj; + }; + }(ctx[functionName]); + } + + var functionsThatShouldReturnNull = [ + "getActiveAttrib", + "getActiveUniform", + "getBufferParameter", + "getContextAttributes", + "getAttachedShaders", + "getFramebufferAttachmentParameter", + "getParameter", + "getProgramParameter", + "getProgramInfoLog", + "getRenderbufferParameter", + "getShaderParameter", + "getShaderInfoLog", + "getShaderSource", + "getTexParameter", + "getUniform", + "getUniformLocation", + "getVertexAttrib" + ]; + for (var ii = 0; ii < functionsThatShouldReturnNull.length; ++ii) { + var functionName = functionsThatShouldReturnNull[ii]; + wrappedContext_[functionName] = function(f) { + return function() { + loseContextIfTime(); + if (contextLost_) { + return null; + } + return f.apply(ctx, arguments); + } + }(wrappedContext_[functionName]); + } + + var isFunctions = [ + "isBuffer", + "isEnabled", + "isFramebuffer", + "isProgram", + "isRenderbuffer", + "isShader", + "isTexture" + ]; + for (var ii = 0; ii < isFunctions.length; ++ii) { + var functionName = isFunctions[ii]; + wrappedContext_[functionName] = function(f) { + return function() { + loseContextIfTime(); + if (contextLost_) { + return false; + } + return f.apply(ctx, arguments); + } + }(wrappedContext_[functionName]); + } + + wrappedContext_.checkFramebufferStatus = function(f) { + return function() { + loseContextIfTime(); + if (contextLost_) { + return wrappedContext_.FRAMEBUFFER_UNSUPPORTED; + } + return f.apply(ctx, arguments); + }; + }(wrappedContext_.checkFramebufferStatus); + + wrappedContext_.getAttribLocation = function(f) { + return function() { + loseContextIfTime(); + if (contextLost_) { + return -1; + } + return f.apply(ctx, arguments); + }; + }(wrappedContext_.getAttribLocation); + + wrappedContext_.getVertexAttribOffset = function(f) { + return function() { + loseContextIfTime(); + if (contextLost_) { + return 0; + } + return f.apply(ctx, arguments); + }; + }(wrappedContext_.getVertexAttribOffset); + + wrappedContext_.isContextLost = function() { + return contextLost_; + }; + + return wrappedContext_; + } +} + +return { + /** + * Initializes this module. Safe to call more than once. + * @param {!WebGLRenderingContext} ctx A WebGL context. If + } + * you have more than one context it doesn't matter which one + * you pass in, it is only used to pull out constants. + */ + 'init': init, + + /** + * Returns true or false if value matches any WebGL enum + * @param {*} value Value to check if it might be an enum. + * @return {boolean} True if value matches one of the WebGL defined enums + */ + 'mightBeEnum': mightBeEnum, + + /** + * Gets an string version of an WebGL enum. + * + * Example: + * WebGLDebugUtil.init(ctx); + * var str = WebGLDebugUtil.glEnumToString(ctx.getError()); + * + * @param {number} value Value to return an enum for + * @return {string} The string version of the enum. + */ + 'glEnumToString': glEnumToString, + + /** + * Converts the argument of a WebGL function to a string. + * Attempts to convert enum arguments to strings. + * + * Example: + * WebGLDebugUtil.init(ctx); + * var str = WebGLDebugUtil.glFunctionArgToString('bindTexture', 0, gl.TEXTURE_2D); + * + * would return 'TEXTURE_2D' + * + * @param {string} functionName the name of the WebGL function. + * @param {number} argumentIndx the index of the argument. + * @param {*} value The value of the argument. + * @return {string} The value as a string. + */ + 'glFunctionArgToString': glFunctionArgToString, + + /** + * Given a WebGL context returns a wrapped context that calls + * gl.getError after every command and calls a function if the + * result is not NO_ERROR. + * + * You can supply your own function if you want. For example, if you'd like + * an exception thrown on any GL error you could do this + * + * function throwOnGLError(err, funcName, args) { + * throw WebGLDebugUtils.glEnumToString(err) + " was caused by call to" + + * funcName; + * }; + * + * ctx = WebGLDebugUtils.makeDebugContext( + * canvas.getContext("webgl"), throwOnGLError); + * + * @param {!WebGLRenderingContext} ctx The webgl context to wrap. + * @param {!function(err, funcName, args): void} opt_onErrorFunc The function + * to call when gl.getError returns an error. If not specified the default + * function calls console.log with a message. + */ + 'makeDebugContext': makeDebugContext, + + /** + * Given a canvas element returns a wrapped canvas element that will + * simulate lost context. The canvas returned adds the following functions. + * + * loseContext: + * simulates a lost context event. + * + * restoreContext: + * simulates the context being restored. + * + * lostContextInNCalls: + * loses the context after N gl calls. + * + * getNumCalls: + * tells you how many gl calls there have been so far. + * + * setRestoreTimeout: + * sets the number of milliseconds until the context is restored + * after it has been lost. Defaults to 0. Pass -1 to prevent + * automatic restoring. + * + * @param {!Canvas} canvas The canvas element to wrap. + */ + 'makeLostContextSimulatingCanvas': makeLostContextSimulatingCanvas, + + /** + * Resets a context to the initial state. + * @param {!WebGLRenderingContext} ctx The webgl context to + * reset. + */ + 'resetToInitialState': resetToInitialState +}; + +}(); + diff --git a/buildfiles/haxe/ApplicationMain.hx b/buildfiles/haxe/ApplicationMain.hx index c20d9a8cb..e67791b52 100644 --- a/buildfiles/haxe/ApplicationMain.hx +++ b/buildfiles/haxe/ApplicationMain.hx @@ -24,9 +24,7 @@ class ApplicationMain { fps : ::WIN_FPS::, width : ::WIN_WIDTH::, height : ::WIN_HEIGHT::, - title : "::APP_TITLE::", - x : ::WIN_X::, - y : ::WIN_Y:: + title : "::APP_TITLE::" }; //Start up diff --git a/buildfiles/haxe/NMEPreloader.hx b/buildfiles/haxe/limePreloader.hx similarity index 100% rename from buildfiles/haxe/NMEPreloader.hx rename to buildfiles/haxe/limePreloader.hx diff --git a/buildfiles/iphone/PROJ.xcodeproj/project.pbxproj b/buildfiles/iphone/PROJ.xcodeproj/project.pbxproj index 942e17018..febe86370 100644 --- a/buildfiles/iphone/PROJ.xcodeproj/project.pbxproj +++ b/buildfiles/iphone/PROJ.xcodeproj/project.pbxproj @@ -1,483 +1,503 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 1E2E17AD131E8B5D0048F3C7 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 1E2E17A5131E8B5D0048F3C7 /* Data */; }; - 1EEEBA9B121AF1C60048A9DF /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBA9A121AF1C60048A9DF /* UIKit.framework */; }; - 1EEEBAA3121AF2210048A9DF /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBAA2121AF2210048A9DF /* OpenAL.framework */; }; - 1EEEBAA5121AF2210048A9DF /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBAA4121AF2210048A9DF /* OpenGLES.framework */; }; - 1EEEBAA7121AF2210048A9DF /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBAA6121AF2210048A9DF /* QuartzCore.framework */; }; - 1EEEBAB3121AF2880048A9DF /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBAB2121AF2880048A9DF /* CoreAudio.framework */; }; - 1EEEBAB5121AF2880048A9DF /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBAB4121AF2880048A9DF /* CoreGraphics.framework */; }; - 1EEEBAFC121BE2980048A9DF /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBAFB121BE2980048A9DF /* AudioToolbox.framework */; }; - 1EEEBAFE121BE2980048A9DF /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBAFD121BE2980048A9DF /* AVFoundation.framework */; }; - 1EEEBB00121BE2B30048A9DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBAFF121BE2B30048A9DF /* Foundation.framework */; }; - ::if (HAS_ICON):: - 1EF0A83A000000001C000001 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000001 /* Icon.png */; }; - 1EF0A83A000000001C000002 /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000002 /* Icon@2x.png */; }; - 1EF0A83A000000001C000003 /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000003 /* Icon-72.png */; }; - 1EF0A83A000000001C000004 /* Icon-72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000004 /* Icon-72@2x.png */; }; - ::end:: - ::if (HAS_LAUNCH_IMAGE):: - 1EF0A83A000000001C000005 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000005 /* Default.png */; }; - 1EF0A83A000000001C000006 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000006 /* Default@2x.png */; }; - 1EF0A83A000000001C000007 /* Default-Portrait~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000007 /* Default-Portrait~ipad.png */; }; - 1EF0A83A000000001C000008 /* Default-Portrait@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000008 /* Default-Portrait@2x~ipad.png */; }; - 1EF0A83A000000001C000009 /* Default-Landscape~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000009 /* Default-Landscape~ipad.png */; }; - 1EF0A83A000000001C000010 /* Default-Landscape@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000010 /* Default-Landscape@2x~ipad.png */; }; - ::end:: - 1EF0A83A121ADB8E003F2F59 /* Main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1EF0A839121ADB8E003F2F59 /* Main.mm */; }; - 1EF0A83B121ADB8E003F2F59 /* haxe in Sources */ = {isa = PBXBuildFile; fileRef = 1E2E17A5141E8B5D0048F3C7 /* haxe */; }; - ::ADDL_PBX_BUILD_FILE:: - -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 1EF0A882121AE1D2003F2F59 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1EF0A87F121AE1CE003F2F59; - remoteInfo = "Build Haxe"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 1D6058910D05DD3D006BFB54 /* "::APP_TITLE::.app" */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "::APP_TITLE::.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 1E2E17A5131E8B5D0048F3C7 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "::APP_FILE::/assets"; sourceTree = ""; }; - 1EEEBA9A121AF1C60048A9DF /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 1EEEBAA2121AF2210048A9DF /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; - 1EEEBAA4121AF2210048A9DF /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; - 1EEEBAA6121AF2210048A9DF /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - 1EEEBAB2121AF2880048A9DF /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; - 1EEEBAB4121AF2880048A9DF /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - 1EEEBAFB121BE2980048A9DF /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; - 1EEEBAFD121BE2980048A9DF /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; - 1EEEBAFF121BE2B30048A9DF /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - ::if (HAS_ICON):: - 1EF0A83900000001C0000001 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Icon.png"; sourceTree = SOURCE_ROOT; }; - 1EF0A83900000001C0000002 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Icon@2x.png"; sourceTree = SOURCE_ROOT; }; - 1EF0A83900000001C0000003 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Icon-72.png"; sourceTree = SOURCE_ROOT; }; - 1EF0A83900000001C0000004 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Icon-72@2x.png"; sourceTree = SOURCE_ROOT; }; - ::end:: - ::if (HAS_LAUNCH_IMAGE):: - 1EF0A83900000001C0000005 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Default.png"; sourceTree = SOURCE_ROOT; }; - 1EF0A83900000001C0000006 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Default@2x.png"; sourceTree = SOURCE_ROOT; }; - 1EF0A83900000001C0000007 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Default-Portrait~ipad.png"; sourceTree = SOURCE_ROOT; }; - 1EF0A83900000001C0000008 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Default-Portrait@2x~ipad.png"; sourceTree = SOURCE_ROOT; }; - 1EF0A83900000001C0000009 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Default-Landscape~ipad.png"; sourceTree = SOURCE_ROOT; }; - 1EF0A83900000001C0000010 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Default-Landscape@2x~ipad.png"; sourceTree = SOURCE_ROOT; }; - ::end:: - 1EF0A839121ADB8E003F2F59 /* Main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Main.mm; path = "::APP_FILE::/Classes/Main.mm"; sourceTree = SOURCE_ROOT; }; - 1E2E17A5141E8B5D0048F3C7 /* haxe */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "::APP_FILE::/haxe/build"; sourceTree = SOURCE_ROOT; }; - ::ADDL_PBX_FILE_REFERENCE:: - - 8D1107310486CEB800E47090 /* ::APP_FILE::-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "::APP_FILE::/::APP_FILE::-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; }; -/* End PBXFileReference section */ - - -/* Begin PBXFrameworksBuildPhase section */ - 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ::if ARMV6::1EF0A888121AE2F0003F2F59 /* lib/ApplicationMain.a in lib */,::end:: - ::if ARMV7::1EF0A888121AE2F0003F2F5A /* lib/ApplicationMain-v7.a in lib */,::end:: - 1EEEBA9B121AF1C60048A9DF /* UIKit.framework in Frameworks */, - 1EEEBAA3121AF2210048A9DF /* OpenAL.framework in Frameworks */, - 1EEEBAA5121AF2210048A9DF /* OpenGLES.framework in Frameworks */, - 1EEEBAA7121AF2210048A9DF /* QuartzCore.framework in Frameworks */, - 1EEEBAB3121AF2880048A9DF /* CoreAudio.framework in Frameworks */, - 1EEEBAB5121AF2880048A9DF /* CoreGraphics.framework in Frameworks */, - 1EEEBAFC121BE2980048A9DF /* AudioToolbox.framework in Frameworks */, - 1EEEBAFE121BE2980048A9DF /* AVFoundation.framework in Frameworks */, - 1EEEBB00121BE2B30048A9DF /* Foundation.framework in Frameworks */, - ::ADDL_PBX_FRAMEWORKS_BUILD_PHASE:: - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 080E96DDFE201D6D7F000001 /* Classes */ = { - isa = PBXGroup; - children = ( - 1EF0A839121ADB8E003F2F59 /* Main.mm */, - ); - path = Classes; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 1D6058910D05DD3D006BFB54 /* "::APP_TITLE::.app" */, - ); - name = Products; - sourceTree = ""; - }; - 1EEEBA99121AF18B0048A9DF /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1EEEBA9A121AF1C60048A9DF /* UIKit.framework */, - 1EEEBAA2121AF2210048A9DF /* OpenAL.framework */, - 1EEEBAA4121AF2210048A9DF /* OpenGLES.framework */, - 1EEEBAA6121AF2210048A9DF /* QuartzCore.framework */, - 1EEEBAB2121AF2880048A9DF /* CoreAudio.framework */, - 1EEEBAB4121AF2880048A9DF /* CoreGraphics.framework */, - 1EEEBAFF121BE2B30048A9DF /* Foundation.framework */, - 1EEEBAFB121BE2980048A9DF /* AudioToolbox.framework */, - 1EEEBAFD121BE2980048A9DF /* AVFoundation.framework */, - ::ADDL_PBX_FRAMEWORK_GROUP:: - ); - name = Frameworks; - sourceTree = ""; - }; - - 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { - isa = PBXGroup; - children = ( - 1EEEBA99121AF18B0048A9DF /* Frameworks */, - 080E96DDFE201D6D7F000001 /* Classes */, - 29B97315FDCFA39411CA2CEA /* Other Sources */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 19C28FACFE9D520D11CA2CBB /* Products */, - ); - name = CustomTemplate; - sourceTree = ""; - }; - 29B97315FDCFA39411CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - 1E2E17A5141E8B5D0048F3C7 /* haxe */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - 8D1107310486CEB800E47090 /* ::APP_FILE::-Info.plist */, - 1E2E17A5131E8B5D0048F3C7 /* assets */, - ::if (HAS_ICON):: - 1EF0A83900000001C0000001 /* Icon.png */, - 1EF0A83900000001C0000002 /* Icon@2x.png */, - 1EF0A83900000001C0000003 /* Icon-72.png */, - 1EF0A83900000001C0000004 /* Icon-72@2x.png */, - ::end:: - ::if (HAS_LAUNCH_IMAGE):: - 1EF0A83900000001C0000005 /* Default.png */, - 1EF0A83900000001C0000006 /* Default@2x.png */, - 1EF0A83900000001C0000007 /* Default-Portrait~ipad.png */, - 1EF0A83900000001C0000008 /* Default-Portrait@2x~ipad.png */, - 1EF0A83900000001C0000009 /* Default-Landscape~ipad.png */, - 1EF0A83900000001C0000010 /* Default-Landscape@2x~ipad.png */, - ::end:: - ); - name = Resources; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 1D6058900D05DD3D006BFB54 /* "::APP_TITLE::" */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "::APP_TITLE::" */; - buildPhases = ( - 1D60588D0D05DD3D006BFB54 /* Resources */, - 1D60588E0D05DD3D006BFB54 /* Sources */, - 1D60588F0D05DD3D006BFB54 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 1EF0A883121AE1D2003F2F59 /* PBXTargetDependency */, - ); - name = "::APP_FILE::"; /* HMMM */ - productName = "::APP_TITLE::"; - productReference = 1D6058910D05DD3D006BFB54 /* "::APP_TITLE::.app" */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXLegacyTarget section */ - 1EF0A87F121AE1CE003F2F59 /* Build Haxe */ = { - isa = PBXLegacyTarget; - buildArgumentsString = ""; - buildConfigurationList = 1EF0A885121AE21C003F2F59 /* Build configuration list for PBXLegacyTarget "Build Haxe" */; - buildPhases = ( - ); - buildToolPath = make; - buildWorkingDirectory = "::APP_FILE::/haxe"; - dependencies = ( - ); - name = "Build Haxe"; - passBuildSettingsInEnvironment = 1; - productName = "Build Haxe"; - }; -/* End PBXLegacyTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "::APP_TITLE::" */; - compatibilityVersion = "Xcode 3.2"; - hasScannedForEncodings = 1; - mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 1D6058900D05DD3D006BFB54 /* "::APP_TITLE::" */, - 1EF0A87F121AE1CE003F2F59 /* Build Haxe */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 1D60588D0D05DD3D006BFB54 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1E2E17AD131E8B5D0048F3C7 /* assets in Resources */, - ::if (HAS_ICON):: - 1EF0A83A000000001C000001 /* Icon.png */, - 1EF0A83A000000001C000002 /* Icon@2x.png */, - 1EF0A83A000000001C000003 /* Icon-72.png */, - 1EF0A83A000000001C000004 /* Icon-72@2x.png */, - ::end:: - ::if (HAS_LAUNCH_IMAGE):: - 1EF0A83A000000001C000005 /* Default.png */, - 1EF0A83A000000001C000006 /* Default@2x.png */, - 1EF0A83A000000001C000007 /* Default-Portrait~ipad.png */, - 1EF0A83A000000001C000008 /* Default-Portrait@2x~ipad.png */, - 1EF0A83A000000001C000009 /* Default-Landscape~ipad.png */, - 1EF0A83A000000001C000010 /* Default-Landscape@2x~ipad.png */, - ::end:: - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 1D60588E0D05DD3D006BFB54 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1EF0A83A121ADB8E003F2F59 /* Main.mm in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 1EF0A883121AE1D2003F2F59 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1EF0A87F121AE1CE003F2F59 /* Build Haxe */; - targetProxy = 1EF0A882121AE1D2003F2F59 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - C01FCF4F08A954540054247B /* Debug */ = {/* Build configuration list for PBXProject "::APP_TITLE::" */ - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = ::CURRENT_ARCHS::; - ::if (OBJC_ARC):: - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - ::end:: - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = ::DEPLOYMENT::; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "::TARGET_DEVICES::"; - ::THUMB_SUPPORT:: - VALID_ARCHS = "::VALID_ARCHS::"; - }; - name = Debug; - }; - C01FCF5008A954540054247B /* Release */ = {/* Build configuration list for PBXProject "::APP_TITLE::" */ - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = ::CURRENT_ARCHS::; - ::if (OBJC_ARC):: - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - ::end:: - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - /* COMPRESS_PNG_FILES = NO; */ - COPY_PHASE_STRIP = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - /* GCC_ENABLE_SYMBOL_SEPARATION = YES; */ - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = ::DEPLOYMENT::; - OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; - /* PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES; */ - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "::TARGET_DEVICES::"; - ::THUMB_SUPPORT:: - VALID_ARCHS = "::VALID_ARCHS::"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 1D6058940D05DD3E006BFB54 /* Debug */ = {/* Build configuration list for PBXNativeTarget "::APP_TITLE::" */ - isa = XCBuildConfiguration; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "::APP_FILE::/::APP_FILE::-Prefix.pch"; - INFOPLIST_FILE = "::APP_FILE::/::APP_FILE::-Info.plist"; - PRODUCT_NAME = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - - "LIBRARY_SEARCH_PATHS[arch=armv6]" = ( - "$(inherited)", - "\"$(SRCROOT)/::APP_FILE::/lib/armv6-debug\"", - "\"$(SRCROOT)/::APP_FILE::/lib/armv6\"", - ); - "LIBRARY_SEARCH_PATHS[arch=armv7]" = ( - "$(inherited)", - "\"$(SRCROOT)/::APP_FILE::/lib/armv7-debug\"", - "\"$(SRCROOT)/::APP_FILE::/lib/armv7\"", - ); - "LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]" = ( - "$(inherited)", - "\"$(SRCROOT)/::APP_FILE::/lib/i386-debug\"", - "\"$(SRCROOT)/::APP_FILE::/lib/i386\"", - ); - OTHER_LDFLAGS = ( - ::foreach ndlls:: "-l::name::", - ::end:: - ::foreach linkedLibraries:: "-l::__current__::", - ::end:: - "-lApplicationMain", - ::IOS_LINKER_FLAGS:: - ); - }; - name = Debug; - }; - 1D6058950D05DD3E006BFB54 /* Release */ = {/* Build configuration list for PBXNativeTarget "::APP_TITLE::" */ - isa = XCBuildConfiguration; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "::APP_FILE::/::APP_FILE::-Prefix.pch"; - INFOPLIST_FILE = "::APP_FILE::/::APP_FILE::-Info.plist"; - PRODUCT_NAME = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - - "LIBRARY_SEARCH_PATHS[arch=armv6]" = ( - "$(inherited)", - "\"$(SRCROOT)/::APP_FILE::/lib/armv6\"", - ); - "LIBRARY_SEARCH_PATHS[arch=armv7]" = ( - "$(inherited)", - "\"$(SRCROOT)/::APP_FILE::/lib/armv7\"", - ); - "LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]" = ( - "$(inherited)", - "\"$(SRCROOT)/::APP_FILE::/lib/i386\"", - ); - OTHER_LDFLAGS = ( - ::foreach ndlls:: "-l::name::", - ::end:: - ::foreach linkedLibraries:: "-l::__current__::", - ::end:: - "-lApplicationMain", - ::IOS_LINKER_FLAGS:: - ); - }; - name = Release; - }; - 1EF0A880121AE1CE003F2F59 /* Debug */ = {/* Build configuration list for PBXLegacyTarget "Build Haxe" */ - isa = XCBuildConfiguration; - buildSettings = { - ::if (OBJC_ARC):: - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - ::end:: - COPY_PHASE_STRIP = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - }; - name = Debug; - }; - 1EF0A881121AE1CE003F2F59 /* Release */ = {/* Build configuration list for PBXLegacyTarget "Build Haxe" */ - isa = XCBuildConfiguration; - buildSettings = { - ::if (OBJC_ARC):: - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - ::end:: - COPY_PHASE_STRIP = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - ZERO_LINK = NO; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "::APP_TITLE::" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4F08A954540054247B /* Debug */, - C01FCF5008A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "::APP_TITLE::" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1D6058940D05DD3E006BFB54 /* Debug */, - 1D6058950D05DD3E006BFB54 /* Release */, - ); - defaultConfigurationIsVisible = 0; - }; - 1EF0A885121AE21C003F2F59 /* Build configuration list for PBXLegacyTarget "Build Haxe" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1EF0A880121AE1CE003F2F59 /* Debug */, - 1EF0A881121AE1CE003F2F59 /* Release */, - ); - defaultConfigurationIsVisible = 0; - }; -/* End XCConfigurationList section */ - }; /* end objects */ - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 1E2E17AD131E8B5D0048F3C7 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 1E2E17A5131E8B5D0048F3C7 /* Data */; }; + 1EEEBA9B121AF1C60048A9DF /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBA9A121AF1C60048A9DF /* UIKit.framework */; }; + 1EEEBAA3121AF2210048A9DF /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBAA2121AF2210048A9DF /* OpenAL.framework */; }; + 1EEEBAA5121AF2210048A9DF /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBAA4121AF2210048A9DF /* OpenGLES.framework */; }; + 1EEEBAA7121AF2210048A9DF /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBAA6121AF2210048A9DF /* QuartzCore.framework */; }; + 1EEEBAB3121AF2880048A9DF /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBAB2121AF2880048A9DF /* CoreAudio.framework */; }; + 1EEEBAB5121AF2880048A9DF /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBAB4121AF2880048A9DF /* CoreGraphics.framework */; }; + 1EEEBAFC121BE2980048A9DF /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBAFB121BE2980048A9DF /* AudioToolbox.framework */; }; + 1EEEBAFE121BE2980048A9DF /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBAFD121BE2980048A9DF /* AVFoundation.framework */; }; + 1EEEBB00121BE2B30048A9DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEEBAFF121BE2B30048A9DF /* Foundation.framework */; }; + ::if (HAS_ICON):: + 1EF0A83A000000001C000001 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000001 /* Icon.png */; }; + 1EF0A83A000000001C000002 /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000002 /* Icon@2x.png */; }; + 1EF0A83A000000001C000003 /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000003 /* Icon-72.png */; }; + 1EF0A83A000000001C000004 /* Icon-72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000004 /* Icon-72@2x.png */; }; + 1EF0A83A000000001C000012 /* Icon-60.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000012 /* Icon-60.png */; }; + 1EF0A83A000000001C000013 /* Icon-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000013 /* Icon-60@2x.png */; }; + 1EF0A83A000000001C000014 /* Icon-76.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000014 /* Icon-76.png */; }; + 1EF0A83A000000001C000015 /* Icon-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000015 /* Icon-76@2x.png */; }; + ::end:: + ::if (HAS_LAUNCH_IMAGE):: + 1EF0A83A000000001C000005 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000005 /* Default.png */; }; + 1EF0A83A000000001C000006 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000006 /* Default@2x.png */; }; + 1EF0A83A000000001C000007 /* Default-Portrait.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000007 /* Default-Portrait.png */; }; + 1EF0A83A000000001C000008 /* Default-Portrait@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000008 /* Default-Portrait@2x.png */; }; + 1EF0A83A000000001C000009 /* Default-Landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000009 /* Default-Landscape.png */; }; + 1EF0A83A000000001C000010 /* Default-Landscape@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000010 /* Default-Landscape@2x.png */; }; + 1EF0A83A000000001C000011 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1EF0A83900000001C0000011 /* Default-568h@2x.png */; }; + ::end:: + 1EF0A83A121ADB8E003F2F59 /* Main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1EF0A839121ADB8E003F2F59 /* Main.mm */; }; + 1EF0A83B121ADB8E003F2F59 /* haxe in Sources */ = {isa = PBXBuildFile; fileRef = 1E2E17A5141E8B5D0048F3C7 /* haxe */; }; + ::ADDL_PBX_BUILD_FILE:: + +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 1EF0A882121AE1D2003F2F59 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1EF0A87F121AE1CE003F2F59; + remoteInfo = "Build Haxe"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 1D6058910D05DD3D006BFB54 /* "::APP_TITLE::.app" */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "::APP_TITLE::.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1E2E17A5131E8B5D0048F3C7 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "::APP_FILE::/assets"; sourceTree = ""; }; + 1EEEBA9A121AF1C60048A9DF /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 1EEEBAA2121AF2210048A9DF /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; + 1EEEBAA4121AF2210048A9DF /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + 1EEEBAA6121AF2210048A9DF /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 1EEEBAB2121AF2880048A9DF /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + 1EEEBAB4121AF2880048A9DF /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 1EEEBAFB121BE2980048A9DF /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 1EEEBAFD121BE2980048A9DF /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 1EEEBAFF121BE2B30048A9DF /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + ::if (HAS_ICON):: + 1EF0A83900000001C0000001 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Icon.png"; sourceTree = SOURCE_ROOT; }; + 1EF0A83900000001C0000002 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Icon@2x.png"; sourceTree = SOURCE_ROOT; }; + 1EF0A83900000001C0000003 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Icon-72.png"; sourceTree = SOURCE_ROOT; }; + 1EF0A83900000001C0000004 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Icon-72@2x.png"; sourceTree = SOURCE_ROOT; }; + 1EF0A83900000001C0000012 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Icon-60.png"; sourceTree = SOURCE_ROOT; }; + 1EF0A83900000001C0000013 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Icon-60@2x.png"; sourceTree = SOURCE_ROOT; }; + 1EF0A83900000001C0000014 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Icon-76.png"; sourceTree = SOURCE_ROOT; }; + 1EF0A83900000001C0000015 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Icon-76@2x.png"; sourceTree = SOURCE_ROOT; }; + ::end:: + ::if (HAS_LAUNCH_IMAGE):: + 1EF0A83900000001C0000005 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Default.png"; sourceTree = SOURCE_ROOT; }; + 1EF0A83900000001C0000006 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Default@2x.png"; sourceTree = SOURCE_ROOT; }; + 1EF0A83900000001C0000007 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Default-Portrait.png"; sourceTree = SOURCE_ROOT; }; + 1EF0A83900000001C0000008 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Default-Portrait@2x.png"; sourceTree = SOURCE_ROOT; }; + 1EF0A83900000001C0000009 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Default-Landscape.png"; sourceTree = SOURCE_ROOT; }; + 1EF0A83900000001C0000010 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Default-Landscape@2x.png"; sourceTree = SOURCE_ROOT; }; + 1EF0A83900000001C0000011 = {isa = PBXFileReference; lastKnownFileType = image.png; path = "::APP_FILE::/Default-568h@2x.png"; sourceTree = SOURCE_ROOT; }; + ::end:: + 1EF0A839121ADB8E003F2F59 /* Main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Main.mm; path = "::APP_FILE::/Classes/Main.mm"; sourceTree = SOURCE_ROOT; }; + 1E2E17A5141E8B5D0048F3C7 /* haxe */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "::APP_FILE::/haxe/build"; sourceTree = SOURCE_ROOT; }; + ::ADDL_PBX_FILE_REFERENCE:: + + 8D1107310486CEB800E47090 /* ::APP_FILE::-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "::APP_FILE::/::APP_FILE::-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; }; +/* End PBXFileReference section */ + + +/* Begin PBXFrameworksBuildPhase section */ + 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ::if ARMV6::1EF0A888121AE2F0003F2F59 /* lib/ApplicationMain.a in lib */,::end:: + ::if ARMV7::1EF0A888121AE2F0003F2F5A /* lib/ApplicationMain-v7.a in lib */,::end:: + 1EEEBA9B121AF1C60048A9DF /* UIKit.framework in Frameworks */, + 1EEEBAA3121AF2210048A9DF /* OpenAL.framework in Frameworks */, + 1EEEBAA5121AF2210048A9DF /* OpenGLES.framework in Frameworks */, + 1EEEBAA7121AF2210048A9DF /* QuartzCore.framework in Frameworks */, + 1EEEBAB3121AF2880048A9DF /* CoreAudio.framework in Frameworks */, + 1EEEBAB5121AF2880048A9DF /* CoreGraphics.framework in Frameworks */, + 1EEEBAFC121BE2980048A9DF /* AudioToolbox.framework in Frameworks */, + 1EEEBAFE121BE2980048A9DF /* AVFoundation.framework in Frameworks */, + 1EEEBB00121BE2B30048A9DF /* Foundation.framework in Frameworks */, + ::ADDL_PBX_FRAMEWORKS_BUILD_PHASE:: + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 080E96DDFE201D6D7F000001 /* Classes */ = { + isa = PBXGroup; + children = ( + 1EF0A839121ADB8E003F2F59 /* Main.mm */, + ); + path = Classes; + sourceTree = ""; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 1D6058910D05DD3D006BFB54 /* "::APP_TITLE::.app" */, + ); + name = Products; + sourceTree = ""; + }; + 1EEEBA99121AF18B0048A9DF /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1EEEBA9A121AF1C60048A9DF /* UIKit.framework */, + 1EEEBAA2121AF2210048A9DF /* OpenAL.framework */, + 1EEEBAA4121AF2210048A9DF /* OpenGLES.framework */, + 1EEEBAA6121AF2210048A9DF /* QuartzCore.framework */, + 1EEEBAB2121AF2880048A9DF /* CoreAudio.framework */, + 1EEEBAB4121AF2880048A9DF /* CoreGraphics.framework */, + 1EEEBAFF121BE2B30048A9DF /* Foundation.framework */, + 1EEEBAFB121BE2980048A9DF /* AudioToolbox.framework */, + 1EEEBAFD121BE2980048A9DF /* AVFoundation.framework */, + ::ADDL_PBX_FRAMEWORK_GROUP:: + ); + name = Frameworks; + sourceTree = ""; + }; + + 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { + isa = PBXGroup; + children = ( + 1EEEBA99121AF18B0048A9DF /* Frameworks */, + 080E96DDFE201D6D7F000001 /* Classes */, + 29B97315FDCFA39411CA2CEA /* Other Sources */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 19C28FACFE9D520D11CA2CBB /* Products */, + ); + name = CustomTemplate; + sourceTree = ""; + }; + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + 1E2E17A5141E8B5D0048F3C7 /* haxe */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 8D1107310486CEB800E47090 /* ::APP_FILE::-Info.plist */, + 1E2E17A5131E8B5D0048F3C7 /* assets */, + ::if (HAS_ICON):: + 1EF0A83900000001C0000001 /* Icon.png */, + 1EF0A83900000001C0000002 /* Icon@2x.png */, + 1EF0A83900000001C0000003 /* Icon-72.png */, + 1EF0A83900000001C0000004 /* Icon-72@2x.png */, + 1EF0A83900000001C0000012 /* Icon-60.png */, + 1EF0A83900000001C0000013 /* Icon-60@2x.png */, + 1EF0A83900000001C0000014 /* Icon-76.png */, + 1EF0A83900000001C0000015 /* Icon-76@2x.png */, + ::end:: + ::if (HAS_LAUNCH_IMAGE):: + 1EF0A83900000001C0000005 /* Default.png */, + 1EF0A83900000001C0000006 /* Default@2x.png */, + 1EF0A83900000001C0000007 /* Default-Portrait.png */, + 1EF0A83900000001C0000008 /* Default-Portrait@2x.png */, + 1EF0A83900000001C0000009 /* Default-Landscape.png */, + 1EF0A83900000001C0000010 /* Default-Landscape@2x.png */, + 1EF0A83900000001C0000011 /* Default-568h@2x.png */, + ::end:: + ); + name = Resources; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1D6058900D05DD3D006BFB54 /* "::APP_TITLE::" */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "::APP_TITLE::" */; + buildPhases = ( + 1D60588D0D05DD3D006BFB54 /* Resources */, + 1D60588E0D05DD3D006BFB54 /* Sources */, + 1D60588F0D05DD3D006BFB54 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 1EF0A883121AE1D2003F2F59 /* PBXTargetDependency */, + ); + name = "::APP_FILE::"; /* HMMM */ + productName = "::APP_TITLE::"; + productReference = 1D6058910D05DD3D006BFB54 /* "::APP_TITLE::.app" */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXLegacyTarget section */ + 1EF0A87F121AE1CE003F2F59 /* Build Haxe */ = { + isa = PBXLegacyTarget; + buildArgumentsString = ""; + buildConfigurationList = 1EF0A885121AE21C003F2F59 /* Build configuration list for PBXLegacyTarget "Build Haxe" */; + buildPhases = ( + ); + buildToolPath = make; + buildWorkingDirectory = "::APP_FILE::/haxe"; + dependencies = ( + ); + name = "Build Haxe"; + passBuildSettingsInEnvironment = 1; + productName = "Build Haxe"; + }; +/* End PBXLegacyTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "::APP_TITLE::" */; + compatibilityVersion = "Xcode 3.2"; + hasScannedForEncodings = 1; + mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 1D6058900D05DD3D006BFB54 /* "::APP_TITLE::" */, + 1EF0A87F121AE1CE003F2F59 /* Build Haxe */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 1D60588D0D05DD3D006BFB54 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1E2E17AD131E8B5D0048F3C7 /* assets in Resources */, + ::if (HAS_ICON):: + 1EF0A83A000000001C000001 /* Icon.png */, + 1EF0A83A000000001C000002 /* Icon@2x.png */, + 1EF0A83A000000001C000003 /* Icon-72.png */, + 1EF0A83A000000001C000004 /* Icon-72@2x.png */, + 1EF0A83A000000001C000012 /* Icon-60.png */, + 1EF0A83A000000001C000013 /* Icon-60@2x.png */, + 1EF0A83A000000001C000014 /* Icon-76.png */, + 1EF0A83A000000001C000015 /* Icon-76@2x.png */, + ::end:: + ::if (HAS_LAUNCH_IMAGE):: + 1EF0A83A000000001C000005 /* Default.png */, + 1EF0A83A000000001C000006 /* Default@2x.png */, + 1EF0A83A000000001C000007 /* Default-Portrait.png */, + 1EF0A83A000000001C000008 /* Default-Portrait@2x.png */, + 1EF0A83A000000001C000009 /* Default-Landscape.png */, + 1EF0A83A000000001C000010 /* Default-Landscape@2x.png */, + 1EF0A83A000000001C000011 /* Default-568h@2x.png */, + ::end:: + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 1D60588E0D05DD3D006BFB54 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1EF0A83A121ADB8E003F2F59 /* Main.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 1EF0A883121AE1D2003F2F59 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 1EF0A87F121AE1CE003F2F59 /* Build Haxe */; + targetProxy = 1EF0A882121AE1D2003F2F59 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + C01FCF4F08A954540054247B /* Debug */ = {/* Build configuration list for PBXProject "::APP_TITLE::" */ + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ::CURRENT_ARCHS::; + ::if (OBJC_ARC):: + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + ::end:: + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "::KEY_STORE_IDENTITY::"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = ::DEPLOYMENT::; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "::TARGET_DEVICES::"; + ::THUMB_SUPPORT:: + VALID_ARCHS = "::VALID_ARCHS::"; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = {/* Build configuration list for PBXProject "::APP_TITLE::" */ + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ::CURRENT_ARCHS::; + ::if (OBJC_ARC):: + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + ::end:: + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "::KEY_STORE_IDENTITY::"; + /* COMPRESS_PNG_FILES = NO; */ + COPY_PHASE_STRIP = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + /* GCC_ENABLE_SYMBOL_SEPARATION = YES; */ + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = ::DEPLOYMENT::; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + /* PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES; */ + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "::TARGET_DEVICES::"; + ::THUMB_SUPPORT:: + VALID_ARCHS = "::VALID_ARCHS::"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 1D6058940D05DD3E006BFB54 /* Debug */ = {/* Build configuration list for PBXNativeTarget "::APP_TITLE::" */ + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "::APP_FILE::/::APP_FILE::-Prefix.pch"; + INFOPLIST_FILE = "::APP_FILE::/::APP_FILE::-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + + "LIBRARY_SEARCH_PATHS[arch=armv6]" = ( + "$(inherited)", + "\"$(SRCROOT)/::APP_FILE::/lib/armv6-debug\"", + "\"$(SRCROOT)/::APP_FILE::/lib/armv6\"", + ); + "LIBRARY_SEARCH_PATHS[arch=armv7]" = ( + "$(inherited)", + "\"$(SRCROOT)/::APP_FILE::/lib/armv7-debug\"", + "\"$(SRCROOT)/::APP_FILE::/lib/armv7\"", + ); + "LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]" = ( + "$(inherited)", + "\"$(SRCROOT)/::APP_FILE::/lib/i386-debug\"", + "\"$(SRCROOT)/::APP_FILE::/lib/i386\"", + ); + OTHER_LDFLAGS = ( + ::foreach ndlls:: "-l::name::", + ::end:: + ::foreach linkedLibraries:: "-l::__current__::", + ::end:: + "-lApplicationMain", + ::IOS_LINKER_FLAGS:: + ); + }; + name = Debug; + }; + 1D6058950D05DD3E006BFB54 /* Release */ = {/* Build configuration list for PBXNativeTarget "::APP_TITLE::" */ + isa = XCBuildConfiguration; + buildSettings = { + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "::APP_FILE::/::APP_FILE::-Prefix.pch"; + INFOPLIST_FILE = "::APP_FILE::/::APP_FILE::-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + + "LIBRARY_SEARCH_PATHS[arch=armv6]" = ( + "$(inherited)", + "\"$(SRCROOT)/::APP_FILE::/lib/armv6\"", + ); + "LIBRARY_SEARCH_PATHS[arch=armv7]" = ( + "$(inherited)", + "\"$(SRCROOT)/::APP_FILE::/lib/armv7\"", + ); + "LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]" = ( + "$(inherited)", + "\"$(SRCROOT)/::APP_FILE::/lib/i386\"", + ); + OTHER_LDFLAGS = ( + ::foreach ndlls:: "-l::name::", + ::end:: + ::foreach linkedLibraries:: "-l::__current__::", + ::end:: + "-lApplicationMain", + ::IOS_LINKER_FLAGS:: + ); + }; + name = Release; + }; + 1EF0A880121AE1CE003F2F59 /* Debug */ = {/* Build configuration list for PBXLegacyTarget "Build Haxe" */ + isa = XCBuildConfiguration; + buildSettings = { + ::if (OBJC_ARC):: + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + ::end:: + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + }; + name = Debug; + }; + 1EF0A881121AE1CE003F2F59 /* Release */ = {/* Build configuration list for PBXLegacyTarget "Build Haxe" */ + isa = XCBuildConfiguration; + buildSettings = { + ::if (OBJC_ARC):: + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + ::end:: + COPY_PHASE_STRIP = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ZERO_LINK = NO; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "::APP_TITLE::" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + C01FCF5008A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "::APP_TITLE::" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1D6058940D05DD3E006BFB54 /* Debug */, + 1D6058950D05DD3E006BFB54 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; + 1EF0A885121AE21C003F2F59 /* Build configuration list for PBXLegacyTarget "Build Haxe" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1EF0A880121AE1CE003F2F59 /* Debug */, + 1EF0A881121AE1CE003F2F59 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; /* end objects */ + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/buildfiles/iphone/PROJ/Classes/Main.mm b/buildfiles/iphone/PROJ/Classes/Main.mm index 9116667ab..f6e262420 100644 --- a/buildfiles/iphone/PROJ/Classes/Main.mm +++ b/buildfiles/iphone/PROJ/Classes/Main.mm @@ -1,41 +1,41 @@ -/* - * Main.mm - * - * Boot code for NME. - * - */ - -#include - -extern "C" const char *hxRunLibrary(); -extern "C" void hxcpp_set_top_of_stack(); - -::foreach ndlls:: - ::if (registerStatics):: - extern "C" int ::name::_register_prims(); - ::end:: -::end:: - -extern "C" int main(int argc, char *argv[]) -{ - //printf("Starting ...\n" ); - hxcpp_set_top_of_stack(); - - ::foreach ndlls:: - ::if (registerStatics):: - ::name::_register_prims(); - ::end:: - ::end:: - - //printf("Running\n"); - - const char *err = NULL; - err = hxRunLibrary(); - if (err) { - printf(" Error %s\n", err ); - return -1; - } - - //printf("Done!\n"); - return 0; -} +/* + * Main.mm + * + * Boot code for NME. + * + */ + +#include + +extern "C" const char *hxRunLibrary(); +extern "C" void hxcpp_set_top_of_stack(); + +::foreach ndlls:: + ::if (registerStatics):: + extern "C" int ::name::_register_prims(); + ::end:: +::end:: + +extern "C" int main(int argc, char *argv[]) +{ + //printf("Starting ...\n" ); + hxcpp_set_top_of_stack(); + + ::foreach ndlls:: + ::if (registerStatics):: + ::name::_register_prims(); + ::end:: + ::end:: + + //printf("Running\n"); + + const char *err = NULL; + err = hxRunLibrary(); + if (err) { + printf(" Error %s\n", err ); + return -1; + } + + //printf("Done!\n"); + return 0; +} diff --git a/buildfiles/iphone/PROJ/PROJ-Entitlements.plist b/buildfiles/iphone/PROJ/PROJ-Entitlements.plist index 6cdf6ed58..929c4e96d 100644 --- a/buildfiles/iphone/PROJ/PROJ-Entitlements.plist +++ b/buildfiles/iphone/PROJ/PROJ-Entitlements.plist @@ -1,8 +1,8 @@ - - - - - get-task-allow - - + + + + + get-task-allow + + \ No newline at end of file diff --git a/buildfiles/iphone/PROJ/PROJ-Info.plist b/buildfiles/iphone/PROJ/PROJ-Info.plist index d73bd49b0..99f0cace9 100644 --- a/buildfiles/iphone/PROJ/PROJ-Info.plist +++ b/buildfiles/iphone/PROJ/PROJ-Info.plist @@ -1,67 +1,99 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - ${PRODUCT_NAME} - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - Icon.png - CFBundleIcons - - CFBundlePrimaryIcon - - CFBundleIconFiles - - ::if (HAS_ICON):: - Icon.png - Icon@2x.png - Icon-72.png - Icon-72@2x.png - ::end:: - ::if (HAS_LAUNCH_IMAGE):: - Default.png - Default@2x.png - Default-Portrait~ipad.png - Default-Portrait@2x~ipad.png - Default-Landscape~ipad.png - Default-Landscape@2x~ipad.png - ::end:: - - UIPrerenderedIcon - <::PRERENDERED_ICON::/> - - - CFBundleIdentifier - ::APP_PACKAGE:: - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleSignature - ???? - CFBundleVersion - ::APP_BUILD_NUMBER:: - CFBundleShortVersionString - ::APP_VERSION:: - LSRequiresIPhoneOS - - UIStatusBarHidden - <::WIN_FULLSCREEN::/> - ::if (IOS_APP_ORIENTATION != null):: - UISupportedInterfaceOrientations - ::IOS_APP_ORIENTATION::::end:: - UIRequiredDeviceCapabilities - - ::foreach REQUIRED_CAPABILITY:: - ::name:: - ::if value::::else::::end:: - ::end:: - - - + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ::APP_TITLE:: + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + Icon.png + CFBundleIcons + + CFBundlePrimaryIcon + + CFBundleIconFiles + + ::if (HAS_ICON):: + Icon.png + Icon@2x.png + Icon-60.png + Icon-60@2x.png + Icon-72.png + Icon-72@2x.png + Icon-76.png + Icon-76@2x.png + ::end:: + ::if (HAS_LAUNCH_IMAGE):: + Default.png + Default@2x.png + Default-568h@2x.png + Default-Portrait.png + Default-Portrait@2x.png + Default-Landscape.png + Default-Landscape@2x.png + ::end:: + + UIPrerenderedIcon + <::PRERENDERED_ICON::/> + + + CFBundleIdentifier + ::APP_PACKAGE:: + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + ::APP_BUILD_NUMBER:: + CFBundleShortVersionString + ::APP_VERSION:: + LSRequiresIPhoneOS + + UIStatusBarHidden + <::WIN_FULLSCREEN::/> + UIViewControllerBasedStatusBarAppearance + <::!WIN_FULLSCREEN::/> + ::if (IOS_APP_ORIENTATION != null):: + UISupportedInterfaceOrientations + ::IOS_APP_ORIENTATION::::end:: + ::if (HAS_LAUNCH_IMAGE):: + UILaunchImages~ipad + + + UILaunchImageMinimumOSVersion + 7.0 + UILaunchImageName + Default-Landscape + UILaunchImageOrientation + Landscape + UILaunchImageSize + {768, 1024} + + + UILaunchImageMinimumOSVersion + 7.0 + UILaunchImageName + Default-Portrait + UILaunchImageOrientation + Portrait + UILaunchImageSize + {768, 1024} + + + ::end:: + UIRequiredDeviceCapabilities + + ::foreach REQUIRED_CAPABILITY:: + ::name:: + ::if value::::else::::end:: + ::end:: + + + diff --git a/buildfiles/iphone/PROJ/PROJ-Prefix.pch b/buildfiles/iphone/PROJ/PROJ-Prefix.pch index 1494dd4fb..615bee923 100644 --- a/buildfiles/iphone/PROJ/PROJ-Prefix.pch +++ b/buildfiles/iphone/PROJ/PROJ-Prefix.pch @@ -1,14 +1,14 @@ -// -// Prefix header for all source files of the '::APP_FILE::' target in the '::APP_FILE::' project -// - -#import - -#ifndef __IPHONE_3_0 -#warning "This project uses features only available in iOS SDK 3.0 and later." -#endif - -#ifdef __OBJC__ - #import - #import -#endif +// +// Prefix header for all source files of the '::APP_FILE::' target in the '::APP_FILE::' project +// + +#import + +#ifndef __IPHONE_3_0 +#warning "This project uses features only available in iOS SDK 3.0 and later." +#endif + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/buildfiles/iphone/PROJ/haxe/Build.hxml b/buildfiles/iphone/PROJ/haxe/Build.hxml index 368036ed2..432d1f0c8 100644 --- a/buildfiles/iphone/PROJ/haxe/Build.hxml +++ b/buildfiles/iphone/PROJ/haxe/Build.hxml @@ -1,4 +1,5 @@ --main ApplicationMain ::HAXE_FLAGS:: --D iphone --D ios ---macro allowPackage("flash") \ No newline at end of file +-main ApplicationMain ::HAXE_FLAGS:: +-D iphone +-D ios +--macro allowPackage("flash") +--macro keep("::APP_MAIN::") \ No newline at end of file diff --git a/buildfiles/iphone/PROJ/haxe/makefile b/buildfiles/iphone/PROJ/haxe/makefile index c2b06816b..68c64e150 100644 --- a/buildfiles/iphone/PROJ/haxe/makefile +++ b/buildfiles/iphone/PROJ/haxe/makefile @@ -1,67 +1,67 @@ - -ifeq ("$(ARCHS)","normal") - ARCHS = armv6 armv7 i386 -endif - -HAXE_BUILDS := $(ARCHS:%=build-haxe-%) - -ifeq ("$(ACTION)","clean") -default: clean -else -default: $(HAXE_BUILDS) -endif - -ifeq ("$(CONFIGURATION)","Debug") - BUILD_STYLE := Debug -endif - -default: debug_print - -ifeq ("$(BUILD_STYLE)","Debug") - DEBUG := -debug - CONFIG := Debug -else - DEBUG := - CONFIG := Release -endif - -ifeq ("$(CLANG_ENABLE_OBJC_ARC)", "YES") - HXCPP_CLANG := -D HXCPP_CLANG -D OBJC_ARC -else - HXCPP_CLANG := -endif - -HAXE_OS := $(PLATFORM_NAME) -ifeq ("$(HAXE_OS)","iphonesimulator") - HAXE_OS := iphonesim -endif -CONFIG := $(CONFIG)-$(HAXE_OS) - -debug_print: - @echo "Make $(HAXE_BUILDS)" - -LIB_BASE := build/$(CONFIG)/ApplicationMain$(DEBUG) -LIB_DEST := $(DEBUG)/libApplicationMain.a - -export HXCPP_COMPILE_THREADS := 2 - -build-haxe-i386: - @echo "Haxe simulator build CONFIG : $(CONFIG)" - haxe Build.hxml -D simulator -cpp build/$(CONFIG) $(DEBUG) $(HXCPP_CLANG) - cp $(LIB_BASE).iphonesim.a ../lib/i386$(LIB_DEST) - touch ../Classes/Main.mm - -build-haxe-armv6: - @echo "Haxe armv6 build CONFIG : $(CONFIG)" - haxe Build.hxml -D HXCPP_ARMV6 -cpp build/$(CONFIG) $(DEBUG) $(HXCPP_CLANG) - cp $(LIB_BASE).iphoneos.a ../lib/armv6$(LIB_DEST) - touch ../Classes/Main.mm - -build-haxe-armv7: - @echo "Haxe armv7 build CONFIG : $(CONFIG)" - haxe Build.hxml -D HXCPP_ARMV7 -cpp build/$(CONFIG) $(DEBUG) $(HXCPP_CLANG) - cp $(LIB_BASE).iphoneos-v7.a ../lib/armv7$(LIB_DEST) - touch ../Classes/Main.mm - -clean: - rm -rf build + +ifeq ("$(ARCHS)","normal") + ARCHS = armv6 armv7 i386 +endif + +HAXE_BUILDS := $(ARCHS:%=build-haxe-%) + +ifeq ("$(ACTION)","clean") +default: clean +else +default: $(HAXE_BUILDS) +endif + +ifeq ("$(CONFIGURATION)","Debug") + BUILD_STYLE := Debug +endif + +default: debug_print + +ifeq ("$(BUILD_STYLE)","Debug") + DEBUG := -debug + CONFIG := Debug +else + DEBUG := + CONFIG := Release +endif + +ifeq ("$(CLANG_ENABLE_OBJC_ARC)", "YES") + HXCPP_CLANG := -D HXCPP_CLANG -D OBJC_ARC +else + HXCPP_CLANG := +endif + +HAXE_OS := $(PLATFORM_NAME) +ifeq ("$(HAXE_OS)","iphonesimulator") + HAXE_OS := iphonesim +endif +CONFIG := $(CONFIG)-$(HAXE_OS) + +debug_print: + @echo "Make $(HAXE_BUILDS)" + +LIB_BASE := build/$(CONFIG)/ApplicationMain$(DEBUG) +LIB_DEST := $(DEBUG)/libApplicationMain.a + +export HXCPP_COMPILE_THREADS := 2 + +build-haxe-i386: + @echo "Haxe simulator build CONFIG : $(CONFIG)" + haxe Build.hxml -D simulator -cpp build/$(CONFIG) $(DEBUG) $(HXCPP_CLANG) + cp $(LIB_BASE).iphonesim.a ../lib/i386$(LIB_DEST) + touch ../Classes/Main.mm + +build-haxe-armv6: + @echo "Haxe armv6 build CONFIG : $(CONFIG)" + haxe Build.hxml -D HXCPP_ARMV6 -cpp build/$(CONFIG) $(DEBUG) $(HXCPP_CLANG) + cp $(LIB_BASE).iphoneos.a ../lib/armv6$(LIB_DEST) + touch ../Classes/Main.mm + +build-haxe-armv7: + @echo "Haxe armv7 build CONFIG : $(CONFIG)" + haxe Build.hxml -D HXCPP_ARMV7 -cpp build/$(CONFIG) $(DEBUG) $(HXCPP_CLANG) + cp $(LIB_BASE).iphoneos-v7.a ../lib/armv7$(LIB_DEST) + touch ../Classes/Main.mm + +clean: + rm -rf build diff --git a/buildfiles/mac/Entitlements.plist b/buildfiles/mac/Entitlements.plist new file mode 100644 index 000000000..0cfed71ef --- /dev/null +++ b/buildfiles/mac/Entitlements.plist @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + \ No newline at end of file diff --git a/buildfiles/mac/Info.plist b/buildfiles/mac/Info.plist index 7266bf056..adebd581a 100644 --- a/buildfiles/mac/Info.plist +++ b/buildfiles/mac/Info.plist @@ -1,28 +1,30 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ::APP_FILE:: - CFBundleIconFile - icon.icns - CFBundleIdentifier - ::APP_PACKAGE:: - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ::APP_TITLE:: - CFBundlePackageType - APPL - CFBundleShortVersionString - ::APP_VERSION:: - CFBundleSignature - haxe - CFBundleVersion - ::APP_BUILD_NUMBER:: - NSAppleScriptEnabled - NO - - + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ::APP_FILE:: + CFBundleIconFile + icon.icns + CFBundleIdentifier + ::APP_PACKAGE:: + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ::APP_TITLE:: + CFBundlePackageType + APPL + CFBundleShortVersionString + ::APP_VERSION:: + CFBundleSignature + haxe + CFBundleVersion + ::APP_BUILD_NUMBER:: + NSAppleScriptEnabled + NO + LSApplicationCategoryType + public.app-category.games + + diff --git a/buildfiles/neko/bin/neko-mac b/buildfiles/neko/bin/neko-mac index ca2b1bf68..fff2acee5 100644 Binary files a/buildfiles/neko/bin/neko-mac and b/buildfiles/neko/bin/neko-mac differ diff --git a/buildfiles/neko/hxml/debug.hxml b/buildfiles/neko/hxml/debug.hxml index a550ca1e7..faf6f21ac 100644 --- a/buildfiles/neko/hxml/debug.hxml +++ b/buildfiles/neko/hxml/debug.hxml @@ -1,5 +1,6 @@ --main ApplicationMain ::HAXE_FLAGS:: --cp ::BUILD_DIR::/neko/haxe --neko ::NEKO_FILE:: ---macro allowPackage("flash") +-main ApplicationMain ::HAXE_FLAGS:: +-cp ::BUILD_DIR::/neko/haxe +-neko ::NEKO_FILE:: +--macro allowPackage("flash") +--macro keep("::APP_MAIN::") -debug \ No newline at end of file diff --git a/buildfiles/neko/hxml/release.hxml b/buildfiles/neko/hxml/release.hxml index b6fe264d7..9202486ed 100644 --- a/buildfiles/neko/hxml/release.hxml +++ b/buildfiles/neko/hxml/release.hxml @@ -1,4 +1,5 @@ --main ApplicationMain ::HAXE_FLAGS:: --cp ::BUILD_DIR::/neko/haxe --neko ::NEKO_FILE:: ---macro allowPackage("flash") \ No newline at end of file +-main ApplicationMain ::HAXE_FLAGS:: +-cp ::BUILD_DIR::/neko/haxe +-neko ::NEKO_FILE:: +--macro allowPackage("flash") +--macro keep("::APP_MAIN::") \ No newline at end of file diff --git a/buildfiles/neko/ndll/mac/libneko.dylib b/buildfiles/neko/ndll/mac/libneko.dylib old mode 100644 new mode 100755 diff --git a/buildfiles/neko/ndll/mac/regexp.ndll b/buildfiles/neko/ndll/mac/regexp.ndll old mode 100644 new mode 100755 diff --git a/buildfiles/neko/ndll/mac/sqlite.ndll b/buildfiles/neko/ndll/mac/sqlite.ndll old mode 100644 new mode 100755 diff --git a/buildfiles/neko/ndll/mac/std.ndll b/buildfiles/neko/ndll/mac/std.ndll old mode 100644 new mode 100755 diff --git a/buildfiles/neko/ndll/mac/zlib.ndll b/buildfiles/neko/ndll/mac/zlib.ndll old mode 100644 new mode 100755 diff --git a/buildfiles/neko/ndll/mac64/libneko.dylib b/buildfiles/neko/ndll/mac64/libneko.dylib new file mode 100755 index 000000000..a99af4810 Binary files /dev/null and b/buildfiles/neko/ndll/mac64/libneko.dylib differ diff --git a/buildfiles/neko/ndll/mac64/regexp.ndll b/buildfiles/neko/ndll/mac64/regexp.ndll new file mode 100755 index 000000000..eb8e4da3e Binary files /dev/null and b/buildfiles/neko/ndll/mac64/regexp.ndll differ diff --git a/buildfiles/neko/ndll/mac64/sqlite.ndll b/buildfiles/neko/ndll/mac64/sqlite.ndll new file mode 100755 index 000000000..0a8905ea0 Binary files /dev/null and b/buildfiles/neko/ndll/mac64/sqlite.ndll differ diff --git a/buildfiles/neko/ndll/mac64/std.ndll b/buildfiles/neko/ndll/mac64/std.ndll new file mode 100755 index 000000000..2a66f52ae Binary files /dev/null and b/buildfiles/neko/ndll/mac64/std.ndll differ diff --git a/buildfiles/neko/ndll/mac64/zlib.ndll b/buildfiles/neko/ndll/mac64/zlib.ndll new file mode 100755 index 000000000..6dd4562d5 Binary files /dev/null and b/buildfiles/neko/ndll/mac64/zlib.ndll differ diff --git a/buildfiles/webos/hxml/debug.hxml b/buildfiles/webos/hxml/debug.hxml index 6a118d856..65fbfeab8 100644 --- a/buildfiles/webos/hxml/debug.hxml +++ b/buildfiles/webos/hxml/debug.hxml @@ -1,8 +1,9 @@ --main ApplicationMain ::HAXE_FLAGS:: --cp ::BUILD_DIR::/webos/haxe --cpp ::CPP_DIR:: ---macro allowPackage("flash") --D webos --D HXCPP_LOAD_DEBUG --D HXCPP_RTLD_LAZY +-main ApplicationMain ::HAXE_FLAGS:: +-cp ::BUILD_DIR::/webos/haxe +-cpp ::CPP_DIR:: +--macro allowPackage("flash") +--macro keep("::APP_MAIN::") +-D webos +-D HXCPP_LOAD_DEBUG +-D HXCPP_RTLD_LAZY -debug \ No newline at end of file diff --git a/buildfiles/webos/hxml/release.hxml b/buildfiles/webos/hxml/release.hxml index 51ff7fa2f..2c3f0835d 100644 --- a/buildfiles/webos/hxml/release.hxml +++ b/buildfiles/webos/hxml/release.hxml @@ -1,6 +1,7 @@ --main ApplicationMain ::HAXE_FLAGS:: --cp ::BUILD_DIR::/webos/haxe --cpp ::CPP_DIR:: ---macro allowPackage("flash") --D webos +-main ApplicationMain ::HAXE_FLAGS:: +-cp ::BUILD_DIR::/webos/haxe +-cpp ::CPP_DIR:: +--macro allowPackage("flash") +--macro keep("::APP_MAIN::") +-D webos -D HXCPP_RTLD_LAZY \ No newline at end of file diff --git a/buildfiles/webos/template/appinfo.json b/buildfiles/webos/template/appinfo.json index 95cc2617c..8cce7a7e5 100644 --- a/buildfiles/webos/template/appinfo.json +++ b/buildfiles/webos/template/appinfo.json @@ -1,10 +1,10 @@ -{ - "title": "::APP_TITLE::", - "id": "::APP_PACKAGE::", - "type": "pdk", - "version": "::APP_VERSION::", - "vendor": "::APP_COMPANY::", - "icon": "::APP_ICON::", - "main": "::APP_FILE::", - "requiredMemory": 40 -} +{ + "title": "::APP_TITLE::", + "id": "::APP_PACKAGE::", + "type": "pdk", + "version": "::APP_VERSION::", + "vendor": "::APP_COMPANY::", + "icon": "::APP_ICON::", + "main": "::APP_FILE::", + "requiredMemory": 40 +} diff --git a/buildfiles/webos/template/package.properties b/buildfiles/webos/template/package.properties index a69df1f5d..7e64b8c11 100644 --- a/buildfiles/webos/template/package.properties +++ b/buildfiles/webos/template/package.properties @@ -1 +1 @@ -filemode.755=::APP_FILE:: +filemode.755=::APP_FILE:: diff --git a/examples/SimpleOpenGL/src/Main.hx b/examples/SimpleOpenGL/src/Main.hx index 284386f69..dabb9d912 100644 --- a/examples/SimpleOpenGL/src/Main.hx +++ b/examples/SimpleOpenGL/src/Main.hx @@ -71,6 +71,17 @@ class Main { //Called by lime public function onkeydown(_event:Dynamic) { // trace(_event); + //49 + + if(_event.value == 49) { + trace( "selected : " + lib.window.fileDialogOpen('open file!!!',' oenenenfelkes') ); + } + if(_event.value == 50) { + trace( "selected : " + lib.window.fileDialogSave('select a save file','saveeeee') ); + } + if(_event.value == 51) { + trace( "selected : " + lib.window.fileDialogFolder('Select folder2222','select a folder!!') ); + } } //Called by lime diff --git a/include.xml b/include.xml index 8cf2e7aa9..5f2527450 100644 --- a/include.xml +++ b/include.xml @@ -5,17 +5,26 @@ - - - - - - - - -
+ + + + + + + + + + + + + + + + + +
diff --git a/lime/utils/ArrayBufferView.hx b/lime/utils/ArrayBufferView.hx index 00352476c..76e24463c 100644 --- a/lime/utils/ArrayBufferView.hx +++ b/lime/utils/ArrayBufferView.hx @@ -76,7 +76,7 @@ package lime.utils; #end } - + public function getByteBuffer ():ByteArray { diff --git a/lime/utils/Float32Array.hx b/lime/utils/Float32Array.hx index 7b698a97e..127c75b32 100644 --- a/lime/utils/Float32Array.hx +++ b/lime/utils/Float32Array.hx @@ -74,6 +74,11 @@ package lime.utils; } } + + public function clear() { + // this.buffer.writeBytes(haxe.io.Bytes.alloc(0), 0, 0); + length = 0; + } public static function fromMatrix (matrix:Matrix3D):Float32Array { return new Float32Array (matrix.rawData); diff --git a/lime/utils/native/ByteArray.hx b/lime/utils/native/ByteArray.hx index bfa3527ca..84a17e66e 100644 --- a/lime/utils/native/ByteArray.hx +++ b/lime/utils/native/ByteArray.hx @@ -121,7 +121,7 @@ class ByteArray extends Bytes #if !haxe3 , #end implements ArrayAccess #if } #if !lime_html5 -//todo- sven + //todo- sven public function compress(algorithm:CompressionAlgorithm = null) { diff --git a/ndll/Android/libnme-7.so b/ndll/Android/libnme-7.so deleted file mode 100755 index fe61fabf7..000000000 Binary files a/ndll/Android/libnme-7.so and /dev/null differ diff --git a/ndll/Android/libnme-debug-7.so b/ndll/Android/libnme-debug-v7.so old mode 100755 new mode 100644 similarity index 51% rename from ndll/Android/libnme-debug-7.so rename to ndll/Android/libnme-debug-v7.so index 6fab5dd4d..d5d9ca66b Binary files a/ndll/Android/libnme-debug-7.so and b/ndll/Android/libnme-debug-v7.so differ diff --git a/ndll/Android/libnme-debug.so b/ndll/Android/libnme-debug.so old mode 100755 new mode 100644 index b02e6c6a7..b32adbd32 Binary files a/ndll/Android/libnme-debug.so and b/ndll/Android/libnme-debug.so differ diff --git a/ndll/Android/libnme-v7.so b/ndll/Android/libnme-v7.so new file mode 100644 index 000000000..178faac68 Binary files /dev/null and b/ndll/Android/libnme-v7.so differ diff --git a/ndll/Android/libnme.so b/ndll/Android/libnme.so old mode 100755 new mode 100644 index e09af35ac..db45064f0 Binary files a/ndll/Android/libnme.so and b/ndll/Android/libnme.so differ diff --git a/ndll/Android/libopenal-v7.so b/ndll/Android/libopenal-v7.so new file mode 100755 index 000000000..b911bce76 Binary files /dev/null and b/ndll/Android/libopenal-v7.so differ diff --git a/ndll/Android/libopenal.so b/ndll/Android/libopenal.so new file mode 100755 index 000000000..d7339c8f1 Binary files /dev/null and b/ndll/Android/libopenal.so differ diff --git a/ndll/Mac/nme-debug.ndll b/ndll/Mac/nme-debug.ndll index 5b91c8164..72765241f 100755 Binary files a/ndll/Mac/nme-debug.ndll and b/ndll/Mac/nme-debug.ndll differ diff --git a/ndll/Mac/nme.ndll b/ndll/Mac/nme.ndll index 04314b51d..75da37db4 100755 Binary files a/ndll/Mac/nme.ndll and b/ndll/Mac/nme.ndll differ diff --git a/ndll/Mac64/nme-debug.ndll b/ndll/Mac64/nme-debug.ndll index f347bf7bc..38fb35c41 100755 Binary files a/ndll/Mac64/nme-debug.ndll and b/ndll/Mac64/nme-debug.ndll differ diff --git a/ndll/Mac64/nme.ndll b/ndll/Mac64/nme.ndll index 74df528a1..0ebd11913 100755 Binary files a/ndll/Mac64/nme.ndll and b/ndll/Mac64/nme.ndll differ diff --git a/ndll/iPhone/libnme-debug.iphoneos-v7.a b/ndll/iPhone/libnme-debug.iphoneos-v7.a index f9fee493d..5f5cfa2ff 100644 Binary files a/ndll/iPhone/libnme-debug.iphoneos-v7.a and b/ndll/iPhone/libnme-debug.iphoneos-v7.a differ diff --git a/ndll/iPhone/libnme-debug.iphonesim.a b/ndll/iPhone/libnme-debug.iphonesim.a index 86f613ef8..dc2881d3a 100644 Binary files a/ndll/iPhone/libnme-debug.iphonesim.a and b/ndll/iPhone/libnme-debug.iphonesim.a differ diff --git a/ndll/iPhone/libnme.iphoneos-v7.a b/ndll/iPhone/libnme.iphoneos-v7.a index dec515540..5455fa541 100644 Binary files a/ndll/iPhone/libnme.iphoneos-v7.a and b/ndll/iPhone/libnme.iphoneos-v7.a differ diff --git a/ndll/iPhone/libnme.iphonesim.a b/ndll/iPhone/libnme.iphonesim.a index 5e3b928c6..c982bab98 100644 Binary files a/ndll/iPhone/libnme.iphonesim.a and b/ndll/iPhone/libnme.iphonesim.a differ diff --git a/ndll/iPhone/libogg.iphoneos-v7.a b/ndll/iPhone/libogg.iphoneos-v7.a new file mode 100644 index 000000000..77736b63e Binary files /dev/null and b/ndll/iPhone/libogg.iphoneos-v7.a differ diff --git a/ndll/iPhone/libogg.iphoneos.a b/ndll/iPhone/libogg.iphoneos.a new file mode 100644 index 000000000..3abf7989a Binary files /dev/null and b/ndll/iPhone/libogg.iphoneos.a differ diff --git a/ndll/iPhone/libogg.iphonesim.a b/ndll/iPhone/libogg.iphonesim.a new file mode 100644 index 000000000..7cd1d4088 Binary files /dev/null and b/ndll/iPhone/libogg.iphonesim.a differ diff --git a/ndll/iPhone/libvorbis.iphoneos-v7.a b/ndll/iPhone/libvorbis.iphoneos-v7.a new file mode 100644 index 000000000..10e6ecc1c Binary files /dev/null and b/ndll/iPhone/libvorbis.iphoneos-v7.a differ diff --git a/ndll/iPhone/libvorbis.iphoneos.a b/ndll/iPhone/libvorbis.iphoneos.a new file mode 100644 index 000000000..43a76a151 Binary files /dev/null and b/ndll/iPhone/libvorbis.iphoneos.a differ diff --git a/ndll/iPhone/libvorbis.iphonesim.a b/ndll/iPhone/libvorbis.iphonesim.a new file mode 100644 index 000000000..80b6cce53 Binary files /dev/null and b/ndll/iPhone/libvorbis.iphonesim.a differ