diff --git a/Source/Plugins/Plugin_nJoy_SDL/Plugin_nJoy_SDL.vcproj b/Source/Plugins/Plugin_nJoy_SDL/Plugin_nJoy_SDL.vcproj
new file mode 100644
index 0000000000..315b60edfd
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/Plugin_nJoy_SDL.vcproj
@@ -0,0 +1,581 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Res/controller.bmp b/Source/Plugins/Plugin_nJoy_SDL/Res/controller.bmp
new file mode 100644
index 0000000000..71af2c83b0
Binary files /dev/null and b/Source/Plugins/Plugin_nJoy_SDL/Res/controller.bmp differ
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Res/njoy.bmp b/Source/Plugins/Plugin_nJoy_SDL/Res/njoy.bmp
new file mode 100644
index 0000000000..7720162f6b
Binary files /dev/null and b/Source/Plugins/Plugin_nJoy_SDL/Res/njoy.bmp differ
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Src/Config.cpp b/Source/Plugins/Plugin_nJoy_SDL/Src/Config.cpp
new file mode 100644
index 0000000000..f60bf86dd1
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/Src/Config.cpp
@@ -0,0 +1,275 @@
+
+// Project description
+// -------------------
+// Name: nJoy
+// Description: A Dolphin Compatible Input Plugin
+//
+// Author: Falcon4ever (nJoy@falcon4ever.com)
+// Site: www.multigesture.net
+// Copyright (C) 2003 Dolphin Project.
+//
+
+//
+// Licensetype: GNU General Public License (GPL)
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+//
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+//
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+//
+
+// Include
+// ---------
+#include "nJoy.h"
+#include "Common.h"
+
+Config g_Config;
+#if defined(HAVE_WX) && HAVE_WX
+extern PADConfigDialognJoy* m_ConfigFrame;
+#endif
+
+
+
+// Run when created
+// -----------------
+Config::Config()
+{
+ // Clear the memory
+ //memset(this, 0, sizeof(Config));
+}
+
+
+// Enable output log
+// -----------------
+void DEBUG_INIT()
+{
+ if (pFile)
+ return;
+
+ #ifdef _WIN32
+ char dateStr [9];
+ _strdate( dateStr);
+ char timeStr [9];
+ _strtime( timeStr );
+ #endif
+
+ pFile = fopen ("nJoy-debug.txt","wt");
+ fprintf(pFile, "nJoy Debug\n");
+ #ifdef _WIN32
+ fprintf(pFile, "Date: %s\nTime: %s\n", dateStr, timeStr);
+ #endif
+ fprintf(pFile, "---------------\n");
+}
+
+// Disable output log
+// ------------------
+void DEBUG_QUIT()
+{
+ if (!pFile)
+ return;
+
+ #ifdef _WIN32
+ char timeStr [9];
+ _strtime(timeStr);
+
+ fprintf(pFile, "_______________\n");
+ fprintf(pFile, "Time: %s", timeStr);
+ #endif
+ fclose(pFile);
+}
+
+
+
+// Save settings to file
+// ---------------------
+void Config::Save(int Slot)
+{
+ // If there are no good pads don't save
+ if (NumGoodPads == 0) return;
+
+ // Load ini file
+ IniFile file;
+ file.Load(FULL_CONFIG_DIR "nJoy.ini");
+
+ // ==================================================================
+ // Global settings
+ // -----------------
+ file.Set("General", "ShowAdvanced", g_Config.bShowAdvanced);
+ file.Set("General", "SaveByID", g_Config.bSaveByID);
+ file.Set("General", "CheckForFocus", g_Config.bCheckFocus);
+ file.Set("General", "NoTriggerFilter", g_Config.bNoTriggerFilter);
+ file.Set("General", "RumbleStrength", g_Config.RumbleStrength);
+#ifdef RERECORDING
+ file.Set("General", "Recording", g_Config.bRecording);
+ file.Set("General", "Playback", g_Config.bPlayback);
+#endif
+ // ========================
+
+ for (int i = 0; i < 4; i++)
+ {
+ // Should we save this slot?
+ if (Slot != -1 && Slot != i) continue;
+
+ // ==================================================================
+ // Slot specific settings only
+ // -----------------
+ std::string SectionName = StringFromFormat("PAD%i", i+1);
+
+ // Save the physical device ID
+ file.Set(SectionName.c_str(), "joy_id", PadMapping[i].ID);
+ file.Set(SectionName.c_str(), "enable", PadMapping[i].enable);
+ // ===================
+
+ // ==================================================================
+ // Joypad or slot specific settings
+ // -----------------
+ // Current joypad device ID: PadMapping[i].ID
+ // Current joypad name: joyinfo[PadMapping[i].ID].Name
+ if(g_Config.bSaveByID)
+ {
+ /* Save joypad specific settings. Check for "PadMapping[i].ID < SDL_NumJoysticks()" to
+ avoid reading a joyinfo that does't exist */
+ if((u32)PadMapping[i].ID >= joyinfo.size()) continue;
+
+ // Create a new section name after the joypad name
+ SectionName = joyinfo[PadMapping[i].ID].Name;
+ }
+
+ file.Set(SectionName.c_str(), "l_shoulder", PadMapping[i].buttons[InputCommon::CTL_L_SHOULDER]);
+ file.Set(SectionName.c_str(), "r_shoulder", PadMapping[i].buttons[InputCommon::CTL_R_SHOULDER]);
+ file.Set(SectionName.c_str(), "a_button", PadMapping[i].buttons[InputCommon::CTL_A_BUTTON]);
+ file.Set(SectionName.c_str(), "b_button", PadMapping[i].buttons[InputCommon::CTL_B_BUTTON]);
+ file.Set(SectionName.c_str(), "x_button", PadMapping[i].buttons[InputCommon::CTL_X_BUTTON]);
+ file.Set(SectionName.c_str(), "y_button", PadMapping[i].buttons[InputCommon::CTL_Y_BUTTON]);
+ file.Set(SectionName.c_str(), "z_trigger", PadMapping[i].buttons[InputCommon::CTL_Z_TRIGGER]);
+ file.Set(SectionName.c_str(), "start_button", PadMapping[i].buttons[InputCommon::CTL_START]);
+ file.Set(SectionName.c_str(), "dpad", PadMapping[i].dpad);
+ file.Set(SectionName.c_str(), "dpad_up", PadMapping[i].dpad2[InputCommon::CTL_D_PAD_UP]);
+ file.Set(SectionName.c_str(), "dpad_down", PadMapping[i].dpad2[InputCommon::CTL_D_PAD_DOWN]);
+ file.Set(SectionName.c_str(), "dpad_left", PadMapping[i].dpad2[InputCommon::CTL_D_PAD_LEFT]);
+ file.Set(SectionName.c_str(), "dpad_right", PadMapping[i].dpad2[InputCommon::CTL_D_PAD_RIGHT]);
+ file.Set(SectionName.c_str(), "main_x", PadMapping[i].axis[InputCommon::CTL_MAIN_X]);
+ file.Set(SectionName.c_str(), "main_y", PadMapping[i].axis[InputCommon::CTL_MAIN_Y]);
+ file.Set(SectionName.c_str(), "sub_x", PadMapping[i].axis[InputCommon::CTL_SUB_X]);
+ file.Set(SectionName.c_str(), "sub_y", PadMapping[i].axis[InputCommon::CTL_SUB_Y]);
+
+ file.Set(SectionName.c_str(), "deadzone", PadMapping[i].deadzone);
+ file.Set(SectionName.c_str(), "halfpress", PadMapping[i].halfpress);
+
+ file.Set(SectionName.c_str(), "controllertype", PadMapping[i].controllertype);
+ file.Set(SectionName.c_str(), "TriggerType", PadMapping[i].triggertype);
+ file.Set(SectionName.c_str(), "eventnum", PadMapping[i].eventnum);
+ file.Set(SectionName.c_str(), "use_rumble", PadMapping[i].rumble);
+
+ file.Set(SectionName.c_str(), "Radius", PadMapping[i].SRadius);
+ file.Set(SectionName.c_str(), "RadiusOnOff", PadMapping[i].bRadiusOnOff);
+ file.Set(SectionName.c_str(), "Diagonal", PadMapping[i].SDiagonal);
+ file.Set(SectionName.c_str(), "SquareToCircle", PadMapping[i].bSquareToCircle);
+ file.Set(SectionName.c_str(), "RadiusC", PadMapping[i].SRadiusC);
+ file.Set(SectionName.c_str(), "RadiusOnOffC", PadMapping[i].bRadiusOnOffC);
+ file.Set(SectionName.c_str(), "DiagonalC", PadMapping[i].SDiagonalC);
+ file.Set(SectionName.c_str(), "SquareToCircleC", PadMapping[i].bSquareToCircleC);
+ }
+
+ INFO_LOG(CONSOLE, "%i: Save: %i\n", 0, PadMapping[0].halfpress);
+
+ file.Save(FULL_CONFIG_DIR "nJoy.ini");
+}
+
+// Load settings from file
+// -----------------------
+void Config::Load(bool ChangePad, bool ChangeSaveByID)
+{
+ // Load file
+ IniFile file;
+ file.Load(FULL_CONFIG_DIR "nJoy.ini");
+ bool Tmp;
+
+ // ==================================================================
+ // Global settings
+ // -----------------
+ file.Get("General", "ShowAdvanced", &g_Config.bShowAdvanced, false);
+ file.Get("General", "CheckForFocus", &g_Config.bCheckFocus, false);
+ file.Get("General", "NoTriggerFilter", &g_Config.bNoTriggerFilter, false);
+ file.Get("General", "RumbleStrength", &g_Config.RumbleStrength, 8);
+
+ if(!ChangeSaveByID)
+ {
+ file.Get("General", "SaveByID", &Tmp, false); g_Config.bSaveByID = Tmp;
+ }
+ // =============
+
+ for (int i = 0; i < 4; i++)
+ {
+ std::string SectionName = StringFromFormat("PAD%i", i+1);
+
+ // Don't update this when we are loading settings from the PADConfigDialognJoy
+ if (!ChangePad)
+ {
+ file.Get(SectionName.c_str(), "joy_id", &PadMapping[i].ID, 0);
+ file.Get(SectionName.c_str(), "enable", &PadMapping[i].enable, false);
+ }
+
+ // ==================================================================
+ // Joypad or slot specific settings
+ // -----------------
+ // Current joypad device ID: PadMapping[i].ID
+ // Current joypad name: joyinfo[PadMapping[i].ID].Name
+ if(g_Config.bSaveByID)
+ {
+ // Prevent a crash from illegal access to joyinfo that will only have values for
+ // the current amount of connected pads
+ if((u32)PadMapping[i].ID >= joyinfo.size()) continue;
+
+ // Create a section name
+ SectionName = joyinfo[PadMapping[i].ID].Name;
+ }
+
+ file.Get(SectionName.c_str(), "l_shoulder", &PadMapping[i].buttons[InputCommon::CTL_L_SHOULDER], 4);
+ file.Get(SectionName.c_str(), "r_shoulder", &PadMapping[i].buttons[InputCommon::CTL_R_SHOULDER], 5);
+ file.Get(SectionName.c_str(), "a_button", &PadMapping[i].buttons[InputCommon::CTL_A_BUTTON], 0);
+ file.Get(SectionName.c_str(), "b_button", &PadMapping[i].buttons[InputCommon::CTL_B_BUTTON], 1);
+ file.Get(SectionName.c_str(), "x_button", &PadMapping[i].buttons[InputCommon::CTL_X_BUTTON], 3);
+ file.Get(SectionName.c_str(), "y_button", &PadMapping[i].buttons[InputCommon::CTL_Y_BUTTON], 2);
+ file.Get(SectionName.c_str(), "z_trigger", &PadMapping[i].buttons[InputCommon::CTL_Z_TRIGGER], 7);
+ file.Get(SectionName.c_str(), "start_button", &PadMapping[i].buttons[InputCommon::CTL_START], 9);
+ file.Get(SectionName.c_str(), "dpad", &PadMapping[i].dpad, 0);
+ file.Get(SectionName.c_str(), "dpad_up", &PadMapping[i].dpad2[InputCommon::CTL_D_PAD_UP], 0);
+ file.Get(SectionName.c_str(), "dpad_down", &PadMapping[i].dpad2[InputCommon::CTL_D_PAD_DOWN], 0);
+ file.Get(SectionName.c_str(), "dpad_left", &PadMapping[i].dpad2[InputCommon::CTL_D_PAD_LEFT], 0);
+ file.Get(SectionName.c_str(), "dpad_right", &PadMapping[i].dpad2[InputCommon::CTL_D_PAD_RIGHT], 0);
+ file.Get(SectionName.c_str(), "main_x", &PadMapping[i].axis[InputCommon::CTL_MAIN_X], 0);
+ file.Get(SectionName.c_str(), "main_y", &PadMapping[i].axis[InputCommon::CTL_MAIN_Y], 1);
+ file.Get(SectionName.c_str(), "sub_x", &PadMapping[i].axis[InputCommon::CTL_SUB_X], 2);
+ file.Get(SectionName.c_str(), "sub_y", &PadMapping[i].axis[InputCommon::CTL_SUB_Y], 3);
+
+ file.Get(SectionName.c_str(), "deadzone", &PadMapping[i].deadzone, 9);
+ file.Get(SectionName.c_str(), "halfpress", &PadMapping[i].halfpress, -1);
+ file.Get(SectionName.c_str(), "controllertype", &PadMapping[i].controllertype, 0);
+ file.Get(SectionName.c_str(), "TriggerType", &PadMapping[i].triggertype, 0);
+ file.Get(SectionName.c_str(), "eventnum", &PadMapping[i].eventnum, 0);
+ file.Get(SectionName.c_str(), "use_rumble", &PadMapping[i].rumble, false);
+
+ file.Get(SectionName.c_str(), "Radius", &PadMapping[i].SRadius, "100%");
+ file.Get(SectionName.c_str(), "RadiusOnOff", &Tmp, false); PadMapping[i].bRadiusOnOff = Tmp;
+ file.Get(SectionName.c_str(), "Diagonal", &PadMapping[i].SDiagonal, "100%");
+ file.Get(SectionName.c_str(), "SquareToCircle", &Tmp, false); PadMapping[i].bSquareToCircle = Tmp;
+ file.Get(SectionName.c_str(), "RadiusC", &PadMapping[i].SRadiusC, "100%");
+ file.Get(SectionName.c_str(), "RadiusOnOffC", &Tmp, false); PadMapping[i].bRadiusOnOffC = Tmp;
+ file.Get(SectionName.c_str(), "DiagonalC", &PadMapping[i].SDiagonalC, "100%");
+ file.Get(SectionName.c_str(), "SquareToCircleC", &Tmp, false); PadMapping[i].bSquareToCircleC = Tmp;
+ }
+
+ INFO_LOG(CONSOLE, "%i: Load: %i\n", 0, PadMapping[0].halfpress);
+}
+
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Src/Config.h b/Source/Plugins/Plugin_nJoy_SDL/Src/Config.h
new file mode 100644
index 0000000000..5bef49ae48
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/Src/Config.h
@@ -0,0 +1,42 @@
+// Copyright (C) 2003 Dolphin Project.
+
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+
+#ifndef _PLUGIN_NJOY_SDL_CONFIG_H
+#define _PLUGIN_NJOY_SDL_CONFIG_H
+
+struct Config
+{
+ Config();
+ void Load(bool ChangePad = false, bool ChangeSaveByID = false);
+ void Save(int Slot = -1);
+ int CheckForDuplicateJoypads(bool OK);
+
+ // General
+ bool bShowAdvanced; // Only allow one of these
+ bool bSaveByID;
+ bool bCheckFocus;
+ bool bNoTriggerFilter;
+ int RumbleStrength;
+#ifdef RERECORDING
+ bool bRecording;
+ bool bPlayback;
+#endif
+};
+
+extern Config g_Config;
+
+#endif // _PLUGIN_NJOY_SDL_CONFIG_H
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/AboutBox.cpp b/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/AboutBox.cpp
new file mode 100644
index 0000000000..d440fa6505
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/AboutBox.cpp
@@ -0,0 +1,91 @@
+
+// Project description
+// -------------------
+// Name: nJoy
+// Description: A Dolphin Compatible Input Plugin
+//
+// Author: Falcon4ever (nJoy@falcon4ever.com)
+// Site: www.multigesture.net
+// Copyright (C) 2003 Dolphin Project.
+//
+
+//
+// Licensetype: GNU General Public License (GPL)
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+//
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+//
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+//
+
+
+#include "AboutBox.h"
+#include "../nJoy.h"
+#include "Images/njoy.xpm"
+
+BEGIN_EVENT_TABLE(AboutBox,wxDialog)
+ EVT_CLOSE(AboutBox::OnClose)
+ EVT_BUTTON(ID_OK, AboutBox::OKClick)
+END_EVENT_TABLE()
+
+AboutBox::AboutBox(wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &position, const wxSize& size, long style)
+: wxDialog(parent, id, title, position, size, style)
+{
+ CreateGUIControls();
+}
+
+AboutBox::~AboutBox()
+{
+ // empty
+}
+
+void AboutBox::CreateGUIControls()
+{
+ SetTitle(wxT("About: nJoy Input Plugin"));
+ SetIcon(wxNullIcon);
+ //SetSize(8,8,200,399);
+ SetClientSize(200,376);
+ Center();
+
+#ifndef _WIN32
+ // Force a 8pt font so that it looks more or less "correct" regardless of the default font setting
+ wxFont f(8,wxFONTFAMILY_DEFAULT,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_NORMAL);
+ SetFont(f);
+#endif
+
+ m_thankyoutext = new wxStaticText(this, ID_THANKYOU, THANKYOU, wxPoint(18,196), wxDefaultSize, 0, wxEmptyString);
+ m_thankyoutext->Wrap(167);
+ m_specialthanks = new wxStaticText(this, ID_SPECIALTHANKS, wxT("F|RES and ector."), wxPoint(18,153), wxDefaultSize, 0, wxEmptyString);
+ m_pluginversion = new wxStaticText(this, ID_PLUGINVERSION, PLUGIN_VER_STR, wxPoint(18,80), wxDefaultSize, 0, wxEmptyString);
+ m_OK = new wxButton(this, ID_OK, wxT("OK"), wxPoint(116,343), wxSize(75,25), 0, wxDefaultValidator, wxEmptyString);
+ m_version = new wxStaticText(this, ID_STATUSV, wxT("PUBLIC RELEASE"), wxPoint(14,349), wxDefaultSize, 0, wxEmptyString);
+ m_thankyougroup = new wxStaticBox(this, IDG_THANKYOU, wxT("Greetings to:"), wxPoint(10,180), wxSize(180,160));
+ m_specialthanksgroup = new wxStaticBox(this, IDG_SPECIALTHANKS, wxT("Special thanks to:"), wxPoint(10,135), wxSize(180,39));
+ m_pluginversiongroup = new wxStaticBox(this, IDG_PLUGINVERSION, wxT("Plugin info:"), wxPoint(10,61), wxSize(180,68));
+
+ wxBitmap WxStaticBitmap1_BITMAP(AboutBox_WxStaticBitmap1_XPM);
+ m_njoylogo = new wxStaticBitmap(this, ID_AWESOMEPICTURE, WxStaticBitmap1_BITMAP, wxPoint(-1,-2), wxSize(200,60));
+}
+
+void AboutBox::OnClose(wxCloseEvent& /*event*/)
+{
+ EndModal(0);
+}
+
+void AboutBox::OKClick(wxCommandEvent& event)
+{
+ if (event.GetId() == ID_OK)
+ {
+ Close();
+ }
+}
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/AboutBox.h b/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/AboutBox.h
new file mode 100644
index 0000000000..c72b5b35d6
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/AboutBox.h
@@ -0,0 +1,91 @@
+
+// Project description
+// -------------------
+// Name: nJoy
+// Description: A Dolphin Compatible Input Plugin
+//
+// Author: Falcon4ever (nJoy@falcon4ever.com)
+// Site: www.multigesture.net
+// Copyright (C) 2003 Dolphin Project.
+//
+
+//
+// Licensetype: GNU General Public License (GPL)
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+//
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+//
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+//
+
+
+#ifndef __ABOUTBOX_h__
+#define __ABOUTBOX_h__
+
+#ifndef WX_PRECOMP
+ #include
+ #include
+#else
+ #include
+#endif
+
+#include
+#include
+#include
+#include
+
+
+class AboutBox : public wxDialog
+{
+ private:
+ DECLARE_EVENT_TABLE();
+
+ public:
+ AboutBox(wxWindow *parent, wxWindowID id = 1, const wxString &title = wxT("About: nJoy Input Plugin"),
+ const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~AboutBox();
+ void OKClick(wxCommandEvent& event);
+
+ private:
+ wxStaticText *m_thankyoutext;
+ wxStaticText *m_specialthanks;
+ wxStaticText *m_pluginversion;
+ wxButton *m_OK;
+ wxStaticText *m_version;
+ wxStaticBox *m_thankyougroup;
+ wxStaticBox *m_specialthanksgroup;
+ wxStaticBox *m_pluginversiongroup;
+ wxStaticBitmap *m_njoylogo;
+
+ private:
+ enum
+ {
+ ID_THANKYOU = 1009,
+ ID_SPECIALTHANKS = 1008,
+ ID_PLUGINVERSION = 1007,
+ ID_OK = 1006,
+ ID_STATUSV = 1005,
+ IDG_THANKYOU = 1004,
+ IDG_SPECIALTHANKS = 1003,
+ IDG_PLUGINVERSION = 1002,
+ ID_AWESOMEPICTURE = 1001,
+
+ ID_DUMMY_VALUE_ //don't remove this value unless you have other enum values
+ };
+
+ private:
+ void OnClose(wxCloseEvent& event);
+ void CreateGUIControls();
+};
+
+#endif
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/ConfigAdvanced.cpp b/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/ConfigAdvanced.cpp
new file mode 100644
index 0000000000..a4dc1d17da
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/ConfigAdvanced.cpp
@@ -0,0 +1,373 @@
+
+// Project description
+// -------------------
+// Name: nJoy
+// Description: A Dolphin Compatible Input Plugin
+//
+// Author: Falcon4ever (nJoy@falcon4ever.com)
+// Site: www.multigesture.net
+// Copyright (C) 2003 Dolphin Project.
+//
+
+//
+// Licensetype: GNU General Public License (GPL)
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+//
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+//
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+//
+
+// Include
+// ---------
+#include "ConfigBox.h"
+#include "../nJoy.h"
+#include "Images/controller.xpm"
+
+extern bool g_EmulatorRunning;
+
+// Set PAD status
+// --------------
+void PADConfigDialognJoy::PadGetStatus()
+{
+ // Return if it's not detected. The ID should never be less than zero here, it can only be that
+ // because of a manual ini file change, but we make that check anway.
+ if(PadMapping[notebookpage].ID < 0 || PadMapping[notebookpage].ID >= SDL_NumJoysticks())
+ {
+ m_TStatusIn[notebookpage]->SetLabel(wxT("Not connected")); m_TStatusOut[notebookpage]->SetLabel(wxT("Not connected"));
+ m_TStatusInC[notebookpage]->SetLabel(wxT("Not connected")); m_TStatusOutC[notebookpage]->SetLabel(wxT("Not connected"));
+ m_TStatusTriggers[notebookpage]->SetLabel(wxT("Not connected"));
+ return;
+ }
+
+ // Get physical device status
+ int PhysicalDevice = PadMapping[notebookpage].ID;
+ int TriggerType = PadMapping[notebookpage].triggertype;
+
+ // Get original values
+ int main_x = PadState[notebookpage].axis[InputCommon::CTL_MAIN_X];
+ int main_y = PadState[notebookpage].axis[InputCommon::CTL_MAIN_Y];
+ int sub_x = PadState[notebookpage].axis[InputCommon::CTL_SUB_X];
+ int sub_y = PadState[notebookpage].axis[InputCommon::CTL_SUB_Y];
+
+ // Get adjusted values
+ int main_x_after = main_x, main_y_after = main_y;
+ if(PadMapping[notebookpage].bSquareToCircle) InputCommon::Square2Circle(main_x_after, main_y_after, notebookpage, PadMapping[notebookpage].SDiagonal);
+ // Adjust radius
+ if(PadMapping[notebookpage].bRadiusOnOff) InputCommon::RadiusAdjustment(main_x_after, main_y_after, notebookpage, PadMapping[notebookpage].SRadius);
+ // C-stick
+ int sub_x_after = sub_x, sub_y_after = sub_y;
+ if(PadMapping[notebookpage].bSquareToCircleC) InputCommon::Square2Circle(sub_x_after, sub_y_after, notebookpage, PadMapping[notebookpage].SDiagonalC);
+ if(PadMapping[notebookpage].bRadiusOnOffC) InputCommon::RadiusAdjustment(sub_x_after, sub_y_after, notebookpage, PadMapping[notebookpage].SRadiusC);
+
+ // Convert values
+ float f_x = main_x / 32767.0;
+ float f_y = main_y / 32767.0;
+ float f_x_aft = main_x_after / 32767.0;
+ float f_y_aft = main_y_after / 32767.0;
+ // C-stick
+ float f_x_c = sub_x / 32767.0;
+ float f_y_c = sub_y / 32767.0;
+ float f_x_aft_c = sub_x_after / 32767.0;
+ float f_y_aft_c = sub_y_after / 32767.0;
+ // Print values
+ m_TStatusIn[notebookpage]->SetLabel(wxString::Format(wxT("x:%1.2f y:%1.2f"), f_x, f_y));
+ m_TStatusOut[notebookpage]->SetLabel(wxString::Format(wxT("x:%1.2f y:%1.2f"), f_x_aft, f_y_aft));
+ m_TStatusInC[notebookpage]->SetLabel(wxString::Format(wxT("x:%1.2f y:%1.2f"), f_x_c, f_y_c));
+ m_TStatusOutC[notebookpage]->SetLabel(wxString::Format(wxT("x:%1.2f y:%1.2f"), f_x_aft_c, f_y_aft_c));
+
+ // Adjust the values for the plot
+ // Border adjustment
+ int BoxW_ = BoxW - 2; int BoxH_ = BoxH - 2;
+ main_x = (BoxW_ / 2) + (main_x * BoxW_ / (32767 * 2));
+ main_y = (BoxH_ / 2) + (main_y * BoxH_ / (32767 * 2));
+ int main_x_out = (BoxW_ / 2) + (main_x_after * BoxW_ / (32767 * 2));
+ int main_y_out = (BoxH_ / 2) + (main_y_after * BoxH_ / (32767 * 2));
+ // Adjust the dot
+ m_bmpDot[notebookpage]->SetPosition(wxPoint(main_x, main_y));
+ m_bmpDotOut[notebookpage]->SetPosition(wxPoint(main_x_out, main_y_out));
+ // C-stick
+ sub_x = (BoxW_ / 2) + (sub_x * BoxW_ / (32767 * 2));
+ sub_y = (BoxH_ / 2) + (sub_y * BoxH_ / (32767 * 2));
+ int sub_x_out = (BoxW_ / 2) + (sub_x_after * BoxW_ / (32767 * 2));
+ int sub_y_out = (BoxH_ / 2) + (sub_y_after * BoxH_ / (32767 * 2));
+ m_bmpDotC[notebookpage]->SetPosition(wxPoint(sub_x, sub_y));
+ m_bmpDotOutC[notebookpage]->SetPosition(wxPoint(sub_x_out, sub_y_out));
+ ///////////////////// Analog stick
+
+
+
+ // Triggers
+ // -----------------
+ int TriggerValue = 255;
+ if (PadState[notebookpage].halfpress) TriggerValue = 100;
+
+ // Get the selected keys
+ long Left, Right;
+ m_JoyShoulderL[notebookpage]->GetValue().ToLong(&Left);
+ m_JoyShoulderR[notebookpage]->GetValue().ToLong(&Right);
+
+ // Get the trigger values
+ int TriggerLeft = PadState[notebookpage].axis[InputCommon::CTL_L_SHOULDER];
+ int TriggerRight = PadState[notebookpage].axis[InputCommon::CTL_R_SHOULDER];
+
+ // Convert the triggers values
+ if (PadMapping[notebookpage].triggertype == InputCommon::CTL_TRIGGER_SDL)
+ {
+ TriggerLeft = InputCommon::Pad_Convert(TriggerLeft);
+ TriggerRight = InputCommon::Pad_Convert(TriggerRight);
+ }
+
+ // If we don't have any axis selected for the shoulder buttons
+ if(Left < 1000) TriggerLeft = 0;
+ if(Right < 1000) TriggerRight = 0;
+
+ // Get the digital values
+ if(Left < 1000 && PadState[notebookpage].buttons[InputCommon::CTL_L_SHOULDER]) TriggerLeft = TriggerValue;
+ if(Right < 1000 && PadState[notebookpage].buttons[InputCommon::CTL_R_SHOULDER]) TriggerRight = TriggerValue;
+
+ m_TStatusTriggers[notebookpage]->SetLabel(wxString::Format(
+ wxT("Left:%03i Right:%03i"),
+ TriggerLeft, TriggerRight
+ ));
+ ///////////////////// Triggers
+}
+
+// Show the current pad status
+// -----------------
+std::string ShowStatus(int VirtualController)
+{
+ // Save the physical device
+ int PhysicalDevice = PadMapping[VirtualController].ID;
+
+ // Make local shortcut
+ SDL_Joystick *joy = PadState[VirtualController].joy;
+
+ // Make shortcuts for all pads
+ SDL_Joystick *joy0 = PadState[0].joy;
+ SDL_Joystick *joy1 = PadState[1].joy;
+ SDL_Joystick *joy2 = PadState[2].joy;
+ SDL_Joystick *joy3 = PadState[3].joy;
+
+ // Temporary storage
+ std::string StrAxes, StrHats, StrBut;
+ int value;
+
+ // Get status
+ int Axes = joyinfo[PhysicalDevice].NumAxes;
+ int Balls = joyinfo[PhysicalDevice].NumBalls;
+ int Hats = joyinfo[PhysicalDevice].NumHats;
+ int Buttons = joyinfo[PhysicalDevice].NumButtons;
+
+ // Update the internal values
+ SDL_JoystickUpdate();
+
+ // Go through all axes and read out their values
+ for(int i = 0; i < Axes; i++)
+ {
+ value = SDL_JoystickGetAxis(joy, i);
+ StrAxes += StringFromFormat(" %i:%06i", i, value);
+ }
+ for(int i = 0;i < Hats; i++)
+ {
+ value = SDL_JoystickGetHat(joy, i);
+ StrHats += StringFromFormat(" %i:%i", i, value);
+ }
+ for(int i = 0;i < Buttons; i++)
+ {
+ value = SDL_JoystickGetButton(joy, i);
+ StrBut += StringFromFormat(" %i:%i", i+1, value);
+ }
+
+ return StringFromFormat(
+ "All pads:\n"
+ "ID: %i %i %i %i\n"
+ "Controllertype: %i %i %i %i\n"
+ "SquareToCircle: %i %i %i %i\n\n"
+ #ifdef _WIN32
+ "Handles: %i %i %i %i\n"
+ "XInput: %i %i %i\n"
+ #endif
+
+ "This pad:\n"
+ "Axes: %s\n"
+ "Hats: %s\n"
+ "But: %s\n"
+ "Device: Ax: %i Balls:%i Hats:%i But:%i",
+ PadMapping[0].ID, PadMapping[1].ID, PadMapping[2].ID, PadMapping[3].ID,
+ PadMapping[0].controllertype, PadMapping[1].controllertype, PadMapping[2].controllertype, PadMapping[3].controllertype,
+ PadMapping[0].bSquareToCircle, PadMapping[1].bSquareToCircle, PadMapping[2].bSquareToCircle, PadMapping[3].bSquareToCircle,
+ #ifdef _WIN32
+ joy0, joy1, joy2, joy3,
+ //PadState[PadMapping[0].ID].joy, PadState[PadMapping[1].ID].joy, PadState[PadMapping[2].ID].joy, PadState[PadMapping[3].ID].joy,
+ XInput::IsConnected(0), XInput::GetXI(0, InputCommon::XI_TRIGGER_L), XInput::GetXI(0, InputCommon::XI_TRIGGER_R),
+ #endif
+ StrAxes.c_str(), StrHats.c_str(), StrBut.c_str(),
+ Axes, Balls, Hats, Buttons
+ );
+}
+
+// Populate the advanced tab
+// -----------------
+void PADConfigDialognJoy::Update()
+{
+ // Check that Dolphin is in focus, otherwise don't update the pad status
+ /* If the emulator is running and unpaused GetJoyState() is run a little more often than needed,
+ but I allow that since it can confuse the user if the input status in the configuration window
+ is not update when the emulator is paused. */
+ if (g_Config.bCheckFocus || IsFocus()) // && !g_EmulatorRunning)
+ {
+ for (int i = 0; (u32)i < joyinfo.size(); i++)
+ InputCommon::GetJoyState(PadState[i], PadMapping[i], i, joyinfo[PadMapping[i].ID].NumButtons);
+ }
+
+ // Show the current status in a window in the wxPanel
+ #ifdef SHOW_PAD_STATUS
+ m_pStatusBar->SetLabel(wxString::Format(
+ "%s", ShowStatus(notebookpage).c_str()
+ ));
+ #endif
+}
+
+
+// Populate the advanced tab
+// -----------------
+void PADConfigDialognJoy::CreateAdvancedControls(int i)
+{
+ // Main-stick
+ m_TStatusIn[i] = new wxStaticText(m_Controller[i], IDT_STATUS_IN, wxT("In"));
+ m_TStatusOut[i] = new wxStaticText(m_Controller[i], IDT_STATUS_OUT, wxT("Out"));
+ m_gStatusIn[i] = new wxStaticBoxSizer( wxHORIZONTAL, m_Controller[i], wxT("Main-stick (In) (Out)"));
+ // C-stick
+ m_TStatusInC[i] = new wxStaticText(m_Controller[i], IDT_STATUS_IN, wxT("In"));
+ m_TStatusOutC[i] = new wxStaticText(m_Controller[i], IDT_STATUS_OUT, wxT("Out"));
+ m_gStatusInC[i] = new wxStaticBoxSizer( wxHORIZONTAL, m_Controller[i], wxT("C-stick (In) (Out)"));
+
+ // Main-stick In-Out
+ m_pInStatus[i] = new wxPanel(m_Controller[i], ID_INSTATUS1 + i, wxDefaultPosition, wxDefaultSize);
+ m_bmpSquare[i] = new wxStaticBitmap(m_pInStatus[i], ID_STATUSBMP1 + i, CreateBitmap(),
+ //wxPoint(4, 15), wxSize(70,70));
+ //wxPoint(4, 20), wxDefaultSize);
+ wxDefaultPosition, wxDefaultSize);
+ m_bmpDot[i] = new wxStaticBitmap(m_pInStatus[i], ID_STATUSDOTBMP1 + i, CreateBitmapDot(),
+ wxPoint(BoxW / 2, BoxH / 2), wxDefaultSize);
+
+ m_pOutStatus[i] = new wxPanel(m_Controller[i], ID_INSTATUS1 + i, wxDefaultPosition, wxDefaultSize);
+ m_bmpSquareOut[i] = new wxStaticBitmap(m_pOutStatus[i], ID_STATUSBMP1 + i, CreateBitmap(),
+ //wxPoint(4, 15), wxSize(70,70));
+ //wxPoint(4, 20), wxDefaultSize);
+ wxDefaultPosition, wxDefaultSize);
+ // Yes the diagonals for the original GC controller are this narrow (i.e. around 80% of the full radius),
+ // it's not a perfect octagon. Some third party GC controllers has a diagonal at 90% however,
+ // i.e. at around 63,63 rather than 55,55.
+ m_bmpAreaOut[i] = new wxStaticBitmap(m_pOutStatus[i], wxID_ANY, CreateBitmapArea(100,55),
+ wxPoint(1, 1), wxDefaultSize);
+ m_bmpDotOut[i] = new wxStaticBitmap(m_pOutStatus[i], ID_STATUSDOTBMP1 + i, CreateBitmapDot(),
+ wxPoint(BoxW / 2, BoxH / 2), wxDefaultSize);
+
+ // C-stick In-Out
+ m_pInStatusC[i] = new wxPanel(m_Controller[i], ID_INSTATUS1 + i, wxDefaultPosition, wxDefaultSize);
+ m_bmpSquareC[i] = new wxStaticBitmap(m_pInStatusC[i], wxID_ANY, CreateBitmap(),
+ //wxPoint(4, 15), wxSize(70,70));
+ //wxPoint(4, 20), wxDefaultSize);
+ wxDefaultPosition, wxDefaultSize);
+ m_bmpDotC[i] = new wxStaticBitmap(m_pInStatusC[i], wxID_ANY, CreateBitmapDot(),
+ wxPoint(BoxW / 2, BoxH / 2), wxDefaultSize);
+
+ m_pOutStatusC[i] = new wxPanel(m_Controller[i], ID_INSTATUS1 + i, wxDefaultPosition, wxDefaultSize);
+ m_bmpSquareOutC[i] = new wxStaticBitmap(m_pOutStatusC[i], wxID_ANY, CreateBitmap(),
+ //wxPoint(4, 15), wxSize(70,70));
+ //wxPoint(4, 20), wxDefaultSize);
+ wxDefaultPosition, wxDefaultSize);
+ m_bmpAreaOutC[i] = new wxStaticBitmap(m_pOutStatusC[i], wxID_ANY, CreateBitmapArea(85,46),
+ wxPoint(1, 1), wxDefaultSize);
+ m_bmpDotOutC[i] = new wxStaticBitmap(m_pOutStatusC[i], wxID_ANY, CreateBitmapDot(),
+ wxPoint(BoxW / 2, BoxH / 2), wxDefaultSize);
+}
+
+
+wxBitmap PADConfigDialognJoy::CreateBitmap() // Create box
+{
+ BoxW = 70, BoxH = 70;
+ wxBitmap bitmap(BoxW, BoxH);
+ wxMemoryDC dc;
+ dc.SelectObject(bitmap);
+
+ // Set outline and fill colors
+ //wxBrush LightBlueBrush(_T("#0383f0"));
+ //wxPen LightBluePen(_T("#80c5fd"));
+ //wxPen LightGrayPen(_T("#909090"));
+ wxPen LightBluePen(_T("#7f9db9")); // Windows XP color
+ dc.SetPen(LightBluePen);
+ dc.SetBrush(*wxWHITE_BRUSH);
+
+ dc.Clear();
+ dc.DrawRectangle(0, 0, BoxW, BoxH);
+ dc.SelectObject(wxNullBitmap);
+ return bitmap;
+}
+
+// Create dot
+wxBitmap PADConfigDialognJoy::CreateBitmapDot()
+{
+ int w = 2, h = 2;
+ wxBitmap bitmap(w, h);
+ wxMemoryDC dc;
+ dc.SelectObject(bitmap);
+
+ // Set outline and fill colors
+ //wxBrush RedBrush(_T("#0383f0"));
+ //wxPen RedPen(_T("#80c5fd"));
+ //wxPen LightGrayPen(_T("#909090"));
+ dc.SetPen(*wxRED_PEN);
+ dc.SetBrush(*wxRED_BRUSH);
+
+ dc.Clear();
+ dc.DrawRectangle(0, 0, w, h);
+ dc.SelectObject(wxNullBitmap);
+ return bitmap;
+}
+wxBitmap PADConfigDialognJoy::CreateBitmapArea(int Max, int Diagonal)
+{
+ wxBitmap bitmap(BoxW - 2, BoxH - 2);
+ wxMemoryDC dc;
+ dc.SelectObject(bitmap);
+
+ // Set outline and fill colors
+ // wxMEDIUM_GREY_PEN, wxLIGHT_GREY_BRUSH
+ wxBrush LightGrayBrush(_T("#dddddd"));
+ wxPen LightGrayPen(_T("#bfbfbf"));
+ dc.SetBrush(LightGrayBrush);
+ dc.SetPen(LightGrayPen);
+
+ // Clear bitmap
+ dc.Clear();
+
+ // Create offset for polygon
+ float Adj = (float)(BoxW-2) / 256.0;
+ float iAdj = 127.0 * Adj;
+ // The polygon corners
+ wxPoint Points[8];
+ Points[0].x = (int)(0.0 * Adj + iAdj); Points[0].y = (int)(Max * Adj + iAdj);
+ Points[1].x = (int)(Diagonal * Adj + iAdj); Points[1].y = (int)(Diagonal * Adj + iAdj);
+ Points[2].x = (int)(Max * Adj + iAdj); Points[2].y = (int)(0.0 * Adj + iAdj);
+ Points[3].x = (int)(Diagonal * Adj + iAdj); Points[3].y = (int)(-Diagonal * Adj + iAdj);
+ Points[4].x = (int)(0.0 * Adj + iAdj); Points[4].y = (int)(-Max * Adj + iAdj);
+ Points[5].x = (int)(-Diagonal * Adj + iAdj); Points[5].y = (int)(-Diagonal * Adj + iAdj);
+ Points[6].x = (int)(-Max * Adj + iAdj); Points[6].y = (int)(0.0 * Adj + iAdj);
+ Points[7].x = (int)(-Diagonal * Adj + iAdj); Points[7].y = (int)(Diagonal * Adj + iAdj);
+ // Draw polygon
+ dc.DrawPolygon(8, Points);
+
+ return bitmap;
+}
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/ConfigBox.cpp b/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/ConfigBox.cpp
new file mode 100644
index 0000000000..fac63aff71
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/ConfigBox.cpp
@@ -0,0 +1,1013 @@
+// Project description
+// -------------------
+// Name: nJoy
+// Description: A Dolphin Compatible Input Plugin
+//
+// Author: Falcon4ever (nJoy@falcon4ever.com)
+// Site: www.multigesture.net
+// Copyright (C) 2003 Dolphin Project.
+//
+// Licensetype: GNU General Public License (GPL)
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+//
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+//
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+//
+
+#include "math.h" // System
+
+#include "ConfigBox.h" // Local
+#include "../nJoy.h"
+#include "Images/controller.xpm"
+
+extern bool g_EmulatorRunning;
+
+// D-Pad type
+static const char* DPadType[] =
+{
+ "Hat",
+ "Custom",
+};
+
+// Trigger type
+static const char* TriggerType[] =
+{
+ "SDL", // -0x8000 to 0x7fff
+ "XInput", // 0x00 to 0xff
+};
+
+
+// The wxWidgets class
+BEGIN_EVENT_TABLE(PADConfigDialognJoy,wxDialog)
+ EVT_CLOSE(PADConfigDialognJoy::OnClose)
+ EVT_BUTTON(ID_ABOUT, PADConfigDialognJoy::AboutClick)
+ EVT_BUTTON(ID_OK, PADConfigDialognJoy::OKClick)
+ EVT_BUTTON(ID_CANCEL, PADConfigDialognJoy::CancelClick)
+ EVT_NOTEBOOK_PAGE_CHANGED(ID_NOTEBOOK, PADConfigDialognJoy::NotebookPageChanged)
+
+ // Change gamepad
+ EVT_COMBOBOX(IDC_JOYNAME, PADConfigDialognJoy::ChangeSettings)
+ EVT_CHECKBOX(IDC_ENABLE, PADConfigDialognJoy::ChangeSettings)
+
+ // Other settings
+ EVT_CHECKBOX(IDC_SAVEBYID, PADConfigDialognJoy::ChangeSettings)
+ EVT_CHECKBOX(IDC_SHOWADVANCED, PADConfigDialognJoy::ChangeSettings)
+ EVT_CHECKBOX(IDCB_CHECKFOCUS, PADConfigDialognJoy::ChangeSettings)
+ EVT_COMBOBOX(IDCB_MAINSTICK_DIAGONAL, PADConfigDialognJoy::ChangeSettings)
+ EVT_COMBOBOX(IDC_CONTROLTYPE, PADConfigDialognJoy::ChangeSettings)
+ EVT_COMBOBOX(IDC_TRIGGERTYPE, PADConfigDialognJoy::ChangeSettings)
+ EVT_COMBOBOX(IDC_DEADZONE, PADConfigDialognJoy::ChangeSettings)
+
+ // Rumble settings
+ EVT_CHECKBOX(IDC_ENABLERUMBLE, PADConfigDialognJoy::ChangeSettings)
+ EVT_COMBOBOX(IDC_RUMBLESTRENGTH, PADConfigDialognJoy::ChangeSettings)
+
+ // Advanced settings
+ EVT_COMBOBOX(IDCB_MAINSTICK_RADIUS, PADConfigDialognJoy::ChangeSettings)
+ EVT_CHECKBOX(IDCB_MAINSTICK_CB_RADIUS, PADConfigDialognJoy::ChangeSettings)
+ EVT_COMBOBOX(IDCB_MAINSTICK_DIAGONAL, PADConfigDialognJoy::ChangeSettings)
+ EVT_CHECKBOX(IDCB_MAINSTICK_S_TO_C, PADConfigDialognJoy::ChangeSettings)
+ // C-stick
+ EVT_COMBOBOX(IDCB_CSTICK_RADIUS, PADConfigDialognJoy::ChangeSettings)
+ EVT_CHECKBOX(IDCB_CSTICK_CB_RADIUS, PADConfigDialognJoy::ChangeSettings)
+ EVT_COMBOBOX(IDCB_CSTICK_DIAGONAL, PADConfigDialognJoy::ChangeSettings)
+ EVT_CHECKBOX(IDCB_CSTICK_S_TO_C, PADConfigDialognJoy::ChangeSettings)
+ EVT_CHECKBOX(IDCB_FILTER_SETTINGS, PADConfigDialognJoy::ChangeSettings)
+
+ EVT_BUTTON(IDB_SHOULDER_L, PADConfigDialognJoy::GetButtons)
+ EVT_BUTTON(IDB_SHOULDER_R, PADConfigDialognJoy::GetButtons)
+ EVT_BUTTON(IDB_BUTTON_A, PADConfigDialognJoy::GetButtons)
+ EVT_BUTTON(IDB_BUTTON_B, PADConfigDialognJoy::GetButtons)
+ EVT_BUTTON(IDB_BUTTON_X, PADConfigDialognJoy::GetButtons)
+ EVT_BUTTON(IDB_BUTTON_Y, PADConfigDialognJoy::GetButtons)
+ EVT_BUTTON(IDB_BUTTON_Z, PADConfigDialognJoy::GetButtons)
+ EVT_BUTTON(IDB_BUTTONSTART, PADConfigDialognJoy::GetButtons)
+ EVT_BUTTON(IDB_BUTTONHALFPRESS, PADConfigDialognJoy::GetButtons)
+ EVT_BUTTON(IDB_DPAD_UP, PADConfigDialognJoy::GetButtons)
+ EVT_BUTTON(IDB_DPAD_DOWN, PADConfigDialognJoy::GetButtons)
+ EVT_BUTTON(IDB_DPAD_LEFT, PADConfigDialognJoy::GetButtons)
+ EVT_BUTTON(IDB_DPAD_RIGHT, PADConfigDialognJoy::GetButtons)
+ EVT_BUTTON(IDB_ANALOG_MAIN_X, PADConfigDialognJoy::GetButtons)
+ EVT_BUTTON(IDB_ANALOG_MAIN_Y, PADConfigDialognJoy::GetButtons)
+ EVT_BUTTON(IDB_ANALOG_SUB_X, PADConfigDialognJoy::GetButtons)
+ EVT_BUTTON(IDB_ANALOG_SUB_Y, PADConfigDialognJoy::GetButtons)
+
+ #if wxUSE_TIMER
+ EVT_TIMER(IDTM_CONSTANT, PADConfigDialognJoy::OnTimer)
+ EVT_TIMER(IDTM_BUTTON, PADConfigDialognJoy::OnButtonTimer)
+ #endif
+END_EVENT_TABLE()
+
+PADConfigDialognJoy::PADConfigDialognJoy(wxWindow *parent, wxWindowID id, const wxString &title,
+ const wxPoint &position, const wxSize& size, long style)
+ : wxDialog(parent, id, title, position, size, style)
+{
+ // Define values
+ notebookpage = 0;
+ g_Pressed = 0;
+ Debugging = false;
+ m_TCDebugging = NULL;
+ ControlsCreated = false;
+
+ // Create controls
+ CreateGUIControls();
+
+ #if wxUSE_TIMER
+ m_ConstantTimer = new wxTimer(this, IDTM_CONSTANT);
+ m_ButtonMappingTimer = new wxTimer(this, IDTM_BUTTON);
+
+ // Reset values
+ GetButtonWaitingID = 0; GetButtonWaitingTimer = 0;
+ if (NumGoodPads)
+ {
+ // Start the constant timer
+ int TimesPerSecond = 10;
+ m_ConstantTimer->Start(1000 / TimesPerSecond);
+ }
+ #endif
+
+ // wxEVT_KEY_DOWN is blocked for enter, tab and the directional keys
+ wxTheApp->Connect(wxID_ANY, wxEVT_KEY_UP,
+ wxKeyEventHandler(PADConfigDialognJoy::OnKeyDown),
+ (wxObject*)0, this);
+}
+
+PADConfigDialognJoy::~PADConfigDialognJoy()
+{
+// The statbar sample has this so I add this to
+#if wxUSE_TIMER
+ if (m_ConstantTimer->IsRunning()) m_ConstantTimer->Stop();
+#endif
+}
+
+void PADConfigDialognJoy::OnKeyDown(wxKeyEvent& event)
+{
+ g_Pressed = event.GetKeyCode();
+}
+
+// Close window
+void PADConfigDialognJoy::OnClose(wxCloseEvent& event)
+{
+ // Allow wxWidgets to close the window
+ //event.Skip();
+
+ // Stop the timer
+ m_ConstantTimer->Stop();
+
+ // Close pads, unless we are running a game
+ //if (!g_EmulatorRunning) Shutdown();
+
+ EndModal(wxID_CLOSE);
+}
+
+// Call about dialog
+void PADConfigDialognJoy::AboutClick(wxCommandEvent& event)
+{
+ #ifdef _WIN32
+ wxWindow win;
+ win.SetHWND((WXHWND)this->GetHWND());
+ win.Enable(false);
+
+ AboutBox frame(&win);
+ frame.ShowModal();
+
+ win.Enable(true);
+ win.SetHWND(0);
+ #else
+ AboutBox frame(NULL);
+ frame.ShowModal();
+ #endif
+}
+
+// Click OK
+void PADConfigDialognJoy::OKClick(wxCommandEvent& event)
+{
+ if (event.GetId() == ID_OK)
+ {
+ DoSave(); // Save settings
+ if (Debugging) PanicAlert("Done");
+ Close(); // Call OnClose()
+ }
+}
+
+// Click Cancel
+void PADConfigDialognJoy::CancelClick(wxCommandEvent& event)
+{
+ if (event.GetId() == ID_CANCEL)
+ {
+ // Forget all potential changes to PadMapping by loading the last saved settings
+ g_Config.Load();
+ Close(); // Call OnClose()
+ }
+}
+
+// Debugging
+void PADConfigDialognJoy::LogMsg(const char* format, ...)
+{
+ #ifdef _WIN32
+ if (Debugging)
+ {
+ const int MaxMsgSize = 1024*2;
+ char buffer[MaxMsgSize];
+ va_list args;
+ va_start(args, format);
+ CharArrayFromFormatV(buffer, MaxMsgSize, format, args);
+ va_end(args);
+
+ // Add timestamp
+ std::string StrTmp = buffer;
+ //StrTmp += Common::Timer::GetTimeFormatted();
+
+ if(m_TCDebugging) m_TCDebugging->AppendText(wxString::FromAscii(StrTmp.c_str()));
+ }
+ #endif
+}
+
+
+
+// Save Settings
+/*
+
+ Saving is currently done when:
+
+ 1. Closing the configuration window
+ 2. Changing the gamepad
+ 3. When the gamepad is enabled or disbled
+ 4. When we change saving mode (by Id or by slot)
+
+ Input: ChangePad needs to be used when we change the pad for a slot. Slot needs to be used when
+ we only want to save changes to one slot.
+*/
+void PADConfigDialognJoy::DoSave(bool ChangePad, int Slot)
+{
+ // Replace "" with "-1" before we are saving
+ ToBlank(false);
+
+ if (ChangePad)
+ {
+ // Since we are selecting the pad to save to by the Id we can't update it when we change the pad
+ for(int i = 0; i < 4; i++)
+ SaveButtonMapping(i, true);
+
+ // Now we can update the ID
+ PadMapping[notebookpage].ID = m_Joyname[notebookpage]->GetSelection();
+ PadState[notebookpage].joy = joyinfo.at(PadMapping[notebookpage].ID).joy;
+
+ g_Config.Save(Slot);
+ }
+ else
+ {
+ // Update PadMapping[] from the GUI controls
+ for(int i = 0; i < 4; i++)
+ SaveButtonMapping(i);
+
+ g_Config.Save(Slot);
+ }
+
+ // Then change it back to ""
+ ToBlank();
+}
+
+// On changing the SaveById option we update all pages
+void PADConfigDialognJoy::OnSaveById()
+{
+ // Save current settings
+ DoSave(false, notebookpage);
+
+ // Update the SaveByID setting and load the settings
+ g_Config.bSaveByID = m_CBSaveByID[notebookpage]->IsChecked();
+ g_Config.Load(false, true);
+
+ // Update the GUI from the now updated PadMapping[]
+ UpdateGUIAll(-1);
+}
+
+// Change Joystick
+/* Function: When changing the joystick we save and load the settings and update the PadMapping
+ and PadState array. PadState[].joy is the gamepad handle that is used to access the pad throughout
+ the plugin. Joyinfo[].joy is only used the first time the pads are checked. */
+void PADConfigDialognJoy::DoChangeJoystick()
+{
+ // Before changing the pad we save potential changes to the current pad (to support SaveByID)
+ DoSave(true);
+
+ // Load the settings for the new Id
+ g_Config.Load(true);
+ UpdateGUI(notebookpage); // Update the GUI
+}
+
+// Notebook page changed
+void PADConfigDialognJoy::NotebookPageChanged(wxNotebookEvent& event)
+{
+ // Save current settings now, don't wait for OK
+ if (ControlsCreated && !g_Config.bSaveByID)
+ DoSave(false, notebookpage);
+
+ // Update the global variable
+ notebookpage = event.GetSelection();
+
+ // Update GUI
+ if (ControlsCreated)
+ UpdateGUI(notebookpage);
+}
+
+// Replace the harder to understand -1 with "" for the sake of user friendliness
+void PADConfigDialognJoy::ToBlank(bool ToBlank)
+{
+ if (!ControlsCreated) return;
+
+ for (int j = 0; j < 4; j++)
+ {
+ if(ToBlank)
+ {
+ for(int i = IDB_ANALOG_MAIN_X; i <= IDB_BUTTONHALFPRESS; i++)
+ #ifndef _WIN32
+ if(!strcmp(GetButtonText(i, j).mb_str(), "-1")) SetButtonText(i, "", j);
+ #else
+ if(GetButtonText(i, j) == wxT("-1")) SetButtonText(i, "", j);
+ #endif
+ }
+ else
+ {
+ for(int i = IDB_ANALOG_MAIN_X; i <= IDB_BUTTONHALFPRESS; i++)
+ if(GetButtonText(i, j).IsEmpty()) SetButtonText(i, "-1", j);
+ }
+ }
+}
+
+
+// Change settings
+void PADConfigDialognJoy::SetButtonTextAll(int id, const char *text)
+{
+ for (int i = 0; i < 4; i++)
+ {
+ // Safety check to avoid crash
+ if (joyinfo.size() > (u32)PadMapping[i].ID)
+ if (joyinfo[PadMapping[i].ID].Name == joyinfo[PadMapping[notebookpage].ID].Name)
+ SetButtonText(id, text, i);
+ };
+}
+
+void PADConfigDialognJoy::SaveButtonMappingAll(int Slot)
+{
+ for (int i = 0; i < 4; i++)
+ {
+ // This can occur when no gamepad is detected
+ if (joyinfo.size() > (u32)PadMapping[i].ID)
+ if (joyinfo[PadMapping[i].ID].Name == joyinfo[PadMapping[Slot].ID].Name)
+ SaveButtonMapping(i, false, Slot);
+ }
+}
+
+void PADConfigDialognJoy::UpdateGUIAll(int Slot)
+{
+ if (Slot == -1)
+ {
+ for (int i = 0; i < 4; i++)
+ UpdateGUI(i);
+ }
+ else
+ {
+ for (int i = 0; i < 4; i++)
+ {
+ // Safety check to avoid crash
+ if (joyinfo.size() > (u32)PadMapping[i].ID)
+ if (joyinfo[PadMapping[i].ID].Name == joyinfo[PadMapping[Slot].ID].Name)
+ UpdateGUI(i);
+ }
+ }
+}
+
+void PADConfigDialognJoy::ChangeSettings( wxCommandEvent& event )
+{
+ switch(event.GetId())
+ {
+ case IDC_SAVEBYID:
+ OnSaveById();
+ break;
+
+ case IDC_SHOWADVANCED:
+ g_Config.bShowAdvanced = m_CBShowAdvanced[notebookpage]->IsChecked();
+ for(int i = 0; i < 4; i++)
+ m_CBShowAdvanced[i]->SetValue(g_Config.bShowAdvanced);
+ UpdateGUI(notebookpage);
+ // Resize the window without the need of any weird hack
+ SetSizerAndFit(m_MainSizer);
+ break;
+
+ // Advanced settings
+ case IDCB_CHECKFOCUS:
+ g_Config.bCheckFocus = m_CBCheckFocus[notebookpage]->IsChecked();
+ for(int i = 0; i < 4; i++)
+ m_CBCheckFocus[i]->SetValue(g_Config.bCheckFocus);
+ break;
+ case IDCB_FILTER_SETTINGS:
+ g_Config.bNoTriggerFilter = m_AdvancedMapFilter[notebookpage]->IsChecked();
+ for(int i = 0; i < 4; i++)
+ m_AdvancedMapFilter[i]->SetValue(g_Config.bNoTriggerFilter);
+ break;
+
+ case IDC_CONTROLTYPE:
+ if(!g_Config.bSaveByID)
+ {
+ PadMapping[notebookpage].controllertype = m_ControlType[notebookpage]->GetSelection();
+ UpdateGUI(notebookpage);
+ }
+ case IDC_TRIGGERTYPE:
+ if(!g_Config.bSaveByID)
+ {
+ PadMapping[notebookpage].triggertype = m_TriggerType[notebookpage]->GetSelection();
+ UpdateGUI(notebookpage);
+ }
+ break;
+ case IDC_ENABLERUMBLE:
+ PadMapping[notebookpage].rumble = m_Rumble[notebookpage]->IsChecked();
+ break;
+ case IDC_RUMBLESTRENGTH:
+ g_Config.RumbleStrength = m_RStrength[notebookpage]->GetSelection();
+ break;
+ case IDC_JOYNAME:
+ DoChangeJoystick();
+ break;
+ case IDC_ENABLE:
+ PadMapping[notebookpage].enable = m_Enable[notebookpage]->IsChecked();
+ UpdateGUI(notebookpage);
+ // Resize the window without the need of any weird hack
+ SetSizerAndFit(m_MainSizer);
+ break;
+ }
+
+ // Update all slots that use this device
+ if(g_Config.bSaveByID) SaveButtonMappingAll(notebookpage);
+ //if(g_Config.bSaveByID) UpdateGUIAll(notebookpage);
+}
+
+
+// Update GUI
+// Called from: CreateGUIControls(), ChangeControllertype()
+void PADConfigDialognJoy::UpdateGUI(int _notebookpage)
+{
+ // If there are no good pads disable the entire notebook
+ if (NumGoodPads == 0)
+ {
+ m_Notebook->Enable(false);
+ return;
+ }
+
+ // Update the GUI from PadMapping[]
+ UpdateGUIButtonMapping(_notebookpage);
+
+ // Collect status
+ bool Hat = (PadMapping[_notebookpage].controllertype == InputCommon::CTL_DPAD_HAT);
+ long Left, Right;
+ m_JoyShoulderL[_notebookpage]->GetValue().ToLong(&Left);
+ m_JoyShoulderR[_notebookpage]->GetValue().ToLong(&Right);
+ bool AnalogTrigger = (Left >= 1000 || Right >= 1000);
+ #ifdef _WIN32
+ bool XInput = XInput::IsConnected(PadMapping[_notebookpage].ID);
+ #endif
+
+ // Hat type selection
+ m_JoyDpadUp[_notebookpage]->Show(!Hat);
+ m_JoyDpadLeft[_notebookpage]->Show(!Hat);
+ m_JoyDpadRight[_notebookpage]->Show(!Hat);
+
+ m_bJoyDpadUp[_notebookpage]->Show(!Hat);
+ m_bJoyDpadLeft[_notebookpage]->Show(!Hat);
+ m_bJoyDpadRight[_notebookpage]->Show(!Hat);
+
+ m_textDpadUp[_notebookpage]->Show(!Hat);
+ m_textDpadLeft[_notebookpage]->Show(!Hat);
+ m_textDpadRight[_notebookpage]->Show(!Hat);
+
+ m_textDpadDown[_notebookpage]->SetLabel(Hat ? wxT("Select hat") : wxT("Down"));
+ m_bJoyDpadDown[_notebookpage]->SetToolTip(Hat ?
+ wxT("Select a hat by pressing the hat in any direction") : wxT(""));
+
+ // General settings
+ m_CBSaveByID[_notebookpage]->SetValue(g_Config.bSaveByID);
+ m_CBShowAdvanced[_notebookpage]->SetValue(g_Config.bShowAdvanced);
+ m_CBCheckFocus[_notebookpage]->SetValue(g_Config.bCheckFocus);
+ m_AdvancedMapFilter[_notebookpage]->SetValue(g_Config.bNoTriggerFilter);
+ m_RStrength[_notebookpage]->SetSelection(g_Config.RumbleStrength);
+
+ // Replace the harder to understand -1 with "" for the sake of user friendliness
+ ToBlank();
+
+ // Advanced settings
+ if (g_Config.bShowAdvanced)
+ {
+ if (PadMapping[_notebookpage].bRadiusOnOff) m_CoBRadius[_notebookpage]->Enable(true);
+ else m_CoBRadius[_notebookpage]->Enable(false);
+ if (PadMapping[_notebookpage].bSquareToCircle) m_CoBDiagonal[_notebookpage]->Enable(true);
+ else m_CoBDiagonal[_notebookpage]->Enable(false);
+ if (PadMapping[_notebookpage].bRadiusOnOffC) m_CoBRadiusC[_notebookpage]->Enable(true);
+ else m_CoBRadiusC[_notebookpage]->Enable(false);
+ if (PadMapping[_notebookpage].bSquareToCircleC) m_CoBDiagonalC[_notebookpage]->Enable(true);
+ else m_CoBDiagonalC[_notebookpage]->Enable(false);
+ }
+
+ m_sKeys[_notebookpage]->Show(PadMapping[_notebookpage].enable);
+ m_sSettings[_notebookpage]->Show(PadMapping[_notebookpage].enable);
+ m_sMainRight[_notebookpage]->Show(g_Config.bShowAdvanced && PadMapping[_notebookpage].enable);
+
+ // Repaint the background
+ m_Controller[_notebookpage]->Refresh();
+}
+
+
+// Paint the background
+void PADConfigDialognJoy::OnPaint(wxPaintEvent &event)
+{
+ event.Skip();
+
+ wxPaintDC dcWin(m_pKeys[notebookpage]);
+ PrepareDC( dcWin );
+ dcWin.DrawBitmap( WxStaticBitmap1_BITMAP, 94, 0, true );
+}
+
+// Populate the config window
+void PADConfigDialognJoy::CreateGUIControls()
+{
+ INFO_LOG(PAD, "CreateGUIControls()");
+
+ #ifndef _DEBUG
+ SetTitle(wxT("Configure: nJoy Input Plugin"));
+ #else
+ SetTitle(wxT("Configure: nJoy (Debug) Input Plugin"));
+ #endif
+
+ SetIcon(wxNullIcon);
+
+#ifndef _WIN32
+ // Force a 8pt font so that it looks more or less "correct" regardless of the default font setting
+ wxFont f(8, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);
+ SetFont(f);
+#endif
+
+ // Buttons
+ m_About = new wxButton(this, ID_ABOUT, wxT("About"), wxDefaultPosition, wxSize(75, 25), 0, wxDefaultValidator, wxT("About"));
+ m_OK = new wxButton(this, ID_OK, wxT("OK"), wxDefaultPosition, wxSize(75, 25), 0, wxDefaultValidator, wxT("OK"));
+ m_Cancel = new wxButton(this, ID_CANCEL, wxT("Cancel"), wxDefaultPosition, wxSize(75, 25), 0, wxDefaultValidator, wxT("Cancel"));
+ m_OK->SetToolTip(
+ wxT("Save your settings and close this window.")
+ );
+ m_Cancel->SetToolTip(
+ wxT("Close this window without saving your changes.")
+ );
+
+ // Notebook
+ m_Notebook = new wxNotebook(this, ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize);
+
+ // Controller pages
+ m_Controller[0] = new wxPanel(m_Notebook, ID_CONTROLLERPAGE1, wxDefaultPosition, wxDefaultSize);
+ m_Notebook->AddPage(m_Controller[0], wxT("Controller 1"));
+ m_Controller[1] = new wxPanel(m_Notebook, ID_CONTROLLERPAGE2, wxDefaultPosition, wxDefaultSize);
+ m_Notebook->AddPage(m_Controller[1], wxT("Controller 2"));
+ m_Controller[2] = new wxPanel(m_Notebook, ID_CONTROLLERPAGE3, wxDefaultPosition, wxDefaultSize);
+ m_Notebook->AddPage(m_Controller[2], wxT("Controller 3"));
+ m_Controller[3] = new wxPanel(m_Notebook, ID_CONTROLLERPAGE4, wxDefaultPosition, wxDefaultSize);
+ m_Notebook->AddPage(m_Controller[3], wxT("Controller 4"));
+
+
+ // Define bitmap for EVT_PAINT
+ WxStaticBitmap1_BITMAP = wxBitmap(ConfigBox_WxStaticBitmap1_XPM);
+
+ // Search for devices and add them to the device list
+ wxArrayString arrayStringFor_Joyname; // The string array
+ if (NumGoodPads > 0)
+ {
+ for(int x = 0; (u32)x < joyinfo.size(); x++)
+ {
+ arrayStringFor_Joyname.Add(wxString::FromAscii(joyinfo[x].Name.c_str()));
+ }
+ }
+ else
+ {
+ arrayStringFor_Joyname.Add(wxString::FromAscii(""));
+ }
+
+ // Populate the DPad type and Trigger type list
+ wxArrayString wxAS_DPadType;
+ wxAS_DPadType.Add(wxString::FromAscii(DPadType[InputCommon::CTL_DPAD_HAT]));
+ wxAS_DPadType.Add(wxString::FromAscii(DPadType[InputCommon::CTL_DPAD_CUSTOM]));
+
+ wxArrayString wxAS_TriggerType;
+ wxAS_TriggerType.Add(wxString::FromAscii(TriggerType[InputCommon::CTL_TRIGGER_SDL]));
+ wxAS_TriggerType.Add(wxString::FromAscii(TriggerType[InputCommon::CTL_TRIGGER_XINPUT]));
+
+ // Populate the deadzone list and the Rumble Strength
+
+ char buffer[8];
+
+ wxArrayString wxAS_RumbleStrength;
+ for (int i = 1; i < 11; i++)
+ {
+ sprintf (buffer, "%d %%", i*10);
+ wxAS_RumbleStrength.Add(wxString::FromAscii(buffer));
+ }
+
+ wxArrayString arrayStringFor_Deadzone;
+ for(int x = 1; x <= 100; x++)
+ {
+ sprintf (buffer, "%d %%", x);
+ arrayStringFor_Deadzone.Add(wxString::FromAscii(buffer));
+ }
+
+ // Populate all four pages
+ for(int i = 0; i < 4; i++)
+ {
+ // Populate keys sizer
+ // Set relative values for the keys
+ int t = -75; // Top
+ int l = -4; // Left
+ m_sKeys[i] = new wxStaticBoxSizer( wxVERTICAL, m_Controller[i], wxT("Keys"));
+ m_pKeys[i] = new wxPanel(m_Controller[i], ID_KEYSPANEL1 + i, wxDefaultPosition, wxSize(600, 400), 0);
+ //m_sKeys[i] = new wxStaticBox (m_Controller[i], IDG_JOYSTICK, wxT("Keys"), wxDefaultPosition, wxSize(608, 500));
+ m_sKeys[i]->Add(m_pKeys[i], 0, (wxALL), 0); // margin = 0
+
+ // GameCube controller picture
+ // TODO: Controller image
+ // Placeholder instead of bitmap
+ // m_PlaceholderBMP[i] = new wxTextCtrl(m_Controller[i], ID_CONTROLLERPICTURE, wxT("BITMAP HERE PLZ KTHX!"), wxPoint(98, 75), wxSize(423, 306), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("BITMAP HERE PLZ KTHX!"));
+ // m_PlaceholderBMP[i]->Enable(false);
+
+ /* You can enable the bitmap here. But it loads überslow on init... (only in windows, linux
+ seems to load it fast!) AAaaand the XPM file (256 colours) looks crappier than the real bitmap...
+ so maybe we can find a way to use a bitmap? */
+ //m_controllerimage[i] = new wxStaticBitmap(m_pKeys[i], ID_CONTROLLERPICTURE, WxStaticBitmap1_BITMAP, wxPoint(l + 98, t + 75), wxSize(421,304));
+ //m_controllerimage[i] = new wxBitmap( WxStaticBitmap1_BITMAP );
+
+ // Paint background. This allows objects to be visible on top of the picture
+ m_pKeys[i]->Connect(wxID_ANY, wxEVT_PAINT,
+ wxPaintEventHandler(PADConfigDialognJoy::OnPaint),
+ (wxObject*)0, this);
+
+
+ // Keys objects
+ // Left and right shoulder buttons
+ m_JoyShoulderL[i] = new wxTextCtrl(m_pKeys[i], ID_SHOULDER_L, wxT("0"), wxPoint(l + 6, t + 80), wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyShoulderL[i]->Enable(false);
+ m_bJoyShoulderL[i] = new wxButton(m_pKeys[i], IDB_SHOULDER_L, wxEmptyString, wxPoint(l + 70, t + 82), wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+ m_JoyShoulderR[i] = new wxTextCtrl(m_pKeys[i], ID_SHOULDER_R, wxT("0"), wxPoint(l + 552, t + 106), wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyShoulderR[i]->Enable(false);
+ m_bJoyShoulderR[i] = new wxButton(m_pKeys[i], IDB_SHOULDER_R, wxEmptyString, wxPoint(l + 526, t + 108), wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+ // Left analog
+ int ALt = 169; int ALw = ALt + 14; int ALb = ALw + 2; // Set offset
+ m_JoyAnalogMainX[i] = new wxTextCtrl(m_pKeys[i], ID_ANALOG_MAIN_X, wxT("0"), wxPoint(l + 6, t + ALw), wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyAnalogMainX[i]->Enable(false);
+ m_JoyAnalogMainY[i] = new wxTextCtrl(m_pKeys[i], ID_ANALOG_MAIN_Y, wxT("0"), wxPoint(l + 6, t + ALw + 36), wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyAnalogMainY[i]->Enable(false);
+ m_bJoyAnalogMainX[i] = new wxButton(m_pKeys[i], IDB_ANALOG_MAIN_X, wxEmptyString, wxPoint(l + 70, t + ALb), wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+ m_bJoyAnalogMainY[i] = new wxButton(m_pKeys[i], IDB_ANALOG_MAIN_Y, wxEmptyString, wxPoint(l + 70, t + ALb + 36), wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+ m_textMainX[i] = new wxStaticText(m_pKeys[i], IDT_ANALOG_MAIN_X, wxT("X-axis"), wxPoint(l + 6, t + ALt), wxDefaultSize, 0, wxT("X-axis"));
+ m_textMainY[i] = new wxStaticText(m_pKeys[i], IDT_ANALOG_MAIN_Y, wxT("Y-axis"), wxPoint(l + 6, t + ALt + 36), wxDefaultSize, 0, wxT("Y-axis"));
+
+ // D-Pad
+ int DPt = 250; int DPw = DPt + 14; int DPb = DPw + 2; // Set offset
+ m_JoyDpadUp[i] = new wxTextCtrl(m_pKeys[i], ID_DPAD_UP, wxT("0"), wxPoint(l + 6, t + DPw), wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyDpadDown[i] = new wxTextCtrl(m_pKeys[i], ID_DPAD_DOWN, wxT("0"), wxPoint(l + 6, t + DPw + 36*1), wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyDpadLeft[i] = new wxTextCtrl(m_pKeys[i], ID_DPAD_LEFT, wxT("0"), wxPoint(l + 6, t + DPw + 36*2), wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyDpadRight[i] = new wxTextCtrl(m_pKeys[i], ID_DPAD_RIGHT, wxT("0"), wxPoint(l + 6, t + DPw + 36*3), wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyDpadUp[i]->Enable(false);
+ m_JoyDpadDown[i]->Enable(false);
+ m_JoyDpadLeft[i]->Enable(false);
+ m_JoyDpadRight[i]->Enable(false);
+ m_bJoyDpadUp[i] = new wxButton(m_pKeys[i], IDB_DPAD_UP, wxEmptyString, wxPoint(l + 70, t + DPb + 36*0), wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+ m_bJoyDpadDown[i] = new wxButton(m_pKeys[i], IDB_DPAD_DOWN, wxEmptyString, wxPoint(l + 70, t + DPb + 36*1), wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+ m_bJoyDpadLeft[i] = new wxButton(m_pKeys[i], IDB_DPAD_LEFT, wxEmptyString, wxPoint(l + 70, t + DPb + 36*2), wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+ m_bJoyDpadRight[i] = new wxButton(m_pKeys[i], IDB_DPAD_RIGHT, wxEmptyString, wxPoint(l + 70, t + DPb + 36*3), wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+ m_textDpadUp[i] = new wxStaticText(m_pKeys[i], IDT_DPAD_UP, wxT("Up"), wxPoint(l + 6, t + DPt + 36*0), wxDefaultSize, 0, wxT("Up"));
+ m_textDpadDown[i] = new wxStaticText(m_pKeys[i], IDT_DPAD_DOWN, wxT("Down"), wxPoint(l + 6, t + DPt + 36*1), wxDefaultSize, 0, wxT("Down"));
+ m_textDpadLeft[i] = new wxStaticText(m_pKeys[i], IDT_DPAD_LEFT, wxT("Left"), wxPoint(l + 6, t + DPt + 36*2), wxDefaultSize, 0, wxT("Left"));
+ m_textDpadRight[i] = new wxStaticText(m_pKeys[i], IDT_DPAD_RIGHT, wxT("Right"), wxPoint(l + 6, t + DPt + 36*3), wxDefaultSize, 0, wxT("Right"));
+
+ // Buttons
+ m_JoyButtonA[i] = new wxTextCtrl(m_pKeys[i], ID_BUTTON_A, wxT("0"), wxPoint(l + 552, t + 280), wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyButtonA[i]->Enable(false);
+ m_JoyButtonB[i] = new wxTextCtrl(m_pKeys[i], ID_BUTTON_B, wxT("0"), wxPoint(l + 552, t + 80), wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyButtonB[i]->Enable(false);
+ m_JoyButtonX[i] = new wxTextCtrl(m_pKeys[i], ID_BUTTON_X, wxT("0"), wxPoint(l + 552, t + 242), wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyButtonX[i]->Enable(false);
+ m_JoyButtonY[i] = new wxTextCtrl(m_pKeys[i], ID_BUTTON_Y, wxT("0"), wxPoint(l + 552, t + 171), wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyButtonY[i]->Enable(false);
+ m_JoyButtonZ[i] = new wxTextCtrl(m_pKeys[i], ID_BUTTON_Z, wxT("0"), wxPoint(l + 552, t + 145), wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyButtonZ[i]->Enable(false);
+ m_bJoyButtonA[i] = new wxButton(m_pKeys[i], IDB_BUTTON_A, wxEmptyString, wxPoint(l + 526, t + 282), wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+ m_bJoyButtonB[i] = new wxButton(m_pKeys[i], IDB_BUTTON_B, wxEmptyString, wxPoint(l + 526, t + 82), wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+ m_bJoyButtonX[i] = new wxButton(m_pKeys[i], IDB_BUTTON_X, wxEmptyString, wxPoint(l + 526, t + 244), wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+ m_bJoyButtonY[i] = new wxButton(m_pKeys[i], IDB_BUTTON_Y, wxEmptyString, wxPoint(l + 526, t + 173), wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+ m_bJoyButtonZ[i] = new wxButton(m_pKeys[i], IDB_BUTTON_Z, wxEmptyString, wxPoint(l + 526, t + 147), wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+
+ // C-buttons
+ m_JoyAnalogSubX[i] = new wxTextCtrl(m_pKeys[i], ID_ANALOG_SUB_X, wxT("0"), wxPoint(l + 552, t + 336), wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyAnalogSubX[i]->Enable(false);
+ m_JoyAnalogSubY[i] = new wxTextCtrl(m_pKeys[i], ID_ANALOG_SUB_Y, wxT("0"), wxPoint(l + 552, t + 373), wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyAnalogSubY[i]->Enable(false);
+ m_bJoyAnalogSubX[i] = new wxButton(m_pKeys[i], IDB_ANALOG_SUB_X, wxEmptyString, wxPoint(l + 526, t + 338), wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+ m_bJoyAnalogSubY[i] = new wxButton(m_pKeys[i], IDB_ANALOG_SUB_Y, wxEmptyString, wxPoint(l + 526, t + 375), wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+ m_textSubX[i] = new wxStaticText(m_pKeys[i], IDT_ANALOG_SUB_X, wxT("X-axis"), wxPoint(l + 552, t + 321), wxDefaultSize, 0, wxT("X-axis"));
+ m_textSubY[i] = new wxStaticText(m_pKeys[i], IDT_ANALOG_SUB_Y, wxT("Y-axis"), wxPoint(l + 552, t + 358), wxDefaultSize, 0, wxT("Y-axis"));
+
+ // Start button
+ m_bJoyButtonStart[i] = new wxButton(m_pKeys[i], IDB_BUTTONSTART, wxEmptyString, wxPoint(l + 284, t + 365), wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+ m_JoyButtonStart[i] = new wxTextCtrl(m_pKeys[i], ID_BUTTONSTART, wxT("0"), wxPoint(l + 220, t + 363), wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyButtonStart[i]->Enable(false);
+
+ // Website text
+ #ifdef _WIN32
+ m_textWebsite[i] = new wxStaticText(m_pKeys[i], IDT_WEBSITE, wxT("www.multigesture.net"), wxPoint(l + 400, t + 380), wxDefaultSize, 0, wxT("www.multigesture.net"));
+ #else
+ m_textWebsite[i] = new wxStaticText(m_Controller[i], IDT_WEBSITE, wxT("www.multigesture.net"), wxPoint(l + 480, t + 418), wxDefaultSize, 0, wxT("www.multigesture.net"));
+ #endif
+
+
+ // Populate Controller sizer
+ // Groups
+ #ifdef _WIN32
+ m_Joyname[i] = new wxComboBox(m_Controller[i], IDC_JOYNAME, arrayStringFor_Joyname[0], wxDefaultPosition, wxSize(300, 25), arrayStringFor_Joyname, wxCB_READONLY);
+ #else
+ m_Joyname[i] = new wxComboBox(m_Controller[i], IDC_JOYNAME, arrayStringFor_Joyname[0], wxDefaultPosition, wxSize(300, 25), arrayStringFor_Joyname, 0, wxDefaultValidator, wxT("m_Joyname"));
+ #endif
+ m_Joyname[i]->SetToolTip(wxT("Save your settings and configure another joypad"));
+
+ m_Enable[i] = new wxCheckBox(m_Controller[i], IDC_ENABLE, wxT("Pad Enabled"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
+ m_Enable[i]->SetToolTip(wxT("Enable this pad to send input events to game"));
+
+ m_gJoyname[i] = new wxStaticBoxSizer (wxHORIZONTAL, m_Controller[i], wxT("Controller"));
+ m_gJoyname[i]->Add(m_Joyname[i], 0, wxEXPAND | (wxLEFT | wxRIGHT), 5);
+ m_gJoyname[i]->Add(m_Enable[i], 0, wxEXPAND | (wxLEFT | wxRIGHT), 5);
+
+ // General settings
+
+ // General settings 1
+ m_JoyButtonHalfpress[i] = new wxTextCtrl(m_Controller[i], ID_BUTTONHALFPRESS, wxT("0"), wxDefaultPosition, wxSize(59, 19), wxTE_READONLY | wxTE_CENTRE, wxDefaultValidator, wxT("0"));
+ m_JoyButtonHalfpress[i]->Enable(false);
+ m_bJoyButtonHalfpress[i] = new wxButton(m_Controller[i], IDB_BUTTONHALFPRESS, wxEmptyString, wxDefaultPosition, wxSize(21, 14), 0, wxDefaultValidator, wxEmptyString);
+ #ifdef _WIN32
+ m_Deadzone[i] = new wxComboBox(m_Controller[i], IDC_DEADZONE, wxEmptyString, wxDefaultPosition, wxSize(59, 21), arrayStringFor_Deadzone, wxCB_READONLY, wxDefaultValidator, wxT("m_Deadzone"));
+ m_textDeadzone[i] = new wxStaticText(m_Controller[i], IDT_DEADZONE, wxT("Deadzone"));
+ m_textHalfpress[i] = new wxStaticText(m_Controller[i], IDT_BUTTONHALFPRESS, wxT("Half press"));
+ #else
+ m_Deadzone[i] = new wxComboBox(m_Controller[i], IDC_DEADZONE, wxEmptyString, wxPoint(167, 398), wxSize(80, 25), arrayStringFor_Deadzone, wxCB_READONLY, wxDefaultValidator, wxT("m_Deadzone"));
+ m_textDeadzone[i] = new wxStaticText(m_Controller[i], IDT_DEADZONE, wxT("Deadzone"), wxPoint(105, 404), wxDefaultSize, 0, wxT("Deadzone"));
+ m_textHalfpress[i] = new wxStaticText(m_Controller[i], IDT_BUTTONHALFPRESS, wxT("Half press"), wxPoint(105, 428), wxDefaultSize, 0, wxT("Half press"));
+ #endif
+
+ // Populate general settings 1
+ m_gExtrasettings[i] = new wxStaticBoxSizer( wxVERTICAL, m_Controller[i], wxT("Extra settings"));
+ m_gGBExtrasettings[i] = new wxGridBagSizer(0, 0);
+ m_gGBExtrasettings[i]->Add(m_textDeadzone[i], wxGBPosition(0, 0), wxGBSpan(1, 1), (wxRIGHT | wxTOP), 3);
+ m_gGBExtrasettings[i]->Add(m_Deadzone[i], wxGBPosition(0, 1), wxGBSpan(1, 1), (wxBOTTOM), 2);
+ m_gGBExtrasettings[i]->Add(m_textHalfpress[i], wxGBPosition(1, 0), wxGBSpan(1, 1), (wxRIGHT | wxTOP), 3);
+ m_gGBExtrasettings[i]->Add(m_JoyButtonHalfpress[i], wxGBPosition(1, 1), wxGBSpan(1, 1), (wxALL), 0);
+ m_gGBExtrasettings[i]->Add(m_bJoyButtonHalfpress[i], wxGBPosition(1, 2), wxGBSpan(1, 1), (wxLEFT | wxTOP), 2);
+ m_gExtrasettings[i]->Add(m_gGBExtrasettings[i], 0, wxEXPAND | wxALL, 3);
+
+ // Create general settings 2 (controller typ)
+ m_TSControltype[i] = new wxStaticText(m_Controller[i], IDT_DPADTYPE, wxT("D-Pad"));
+ m_TSTriggerType[i] = new wxStaticText(m_Controller[i], IDT_TRIGGERTYPE, wxT("Trigger"));
+ m_ControlType[i] = new wxComboBox(m_Controller[i], IDC_CONTROLTYPE, wxAS_DPadType[0], wxDefaultPosition, wxDefaultSize, wxAS_DPadType, wxCB_READONLY);
+ m_TriggerType[i] = new wxComboBox(m_Controller[i], IDC_TRIGGERTYPE, wxAS_TriggerType[0], wxDefaultPosition, wxDefaultSize, wxAS_TriggerType, wxCB_READONLY);
+
+ // Populate general settings 2 (controller typ)
+ m_gGenSettings[i] = new wxStaticBoxSizer( wxVERTICAL, m_Controller[i], wxT("D-pad and trigger"));
+ m_gGBGenSettings[i] = new wxGridBagSizer(0, 0);
+ m_gGBGenSettings[i]->Add(m_TSControltype[i], wxGBPosition(0, 0), wxGBSpan(1, 1), (wxTOP), 4);
+ m_gGBGenSettings[i]->Add(m_ControlType[i], wxGBPosition(0, 1), wxGBSpan(1, 1), (wxBOTTOM | wxLEFT), 2);
+ m_gGBGenSettings[i]->Add(m_TSTriggerType[i], wxGBPosition(1, 0), wxGBSpan(1, 1), (wxTOP), 4);
+ m_gGBGenSettings[i]->Add(m_TriggerType[i], wxGBPosition(1, 1), wxGBSpan(1, 1), (wxLEFT), 2);
+ m_gGenSettings[i]->Add(m_gGBGenSettings[i], 0, wxEXPAND | wxALL, 3);
+
+ // Create objects for general settings 3
+ m_gGenSettingsID[i] = new wxStaticBoxSizer( wxVERTICAL, m_Controller[i], wxT("Settings") );
+ m_CBSaveByID[i] = new wxCheckBox(m_Controller[i], IDC_SAVEBYID, wxT("Save by ID"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
+ m_CBSaveByID[i]->Enable(false);
+ m_CBShowAdvanced[i] = new wxCheckBox(m_Controller[i], IDC_SHOWADVANCED, wxT("Show advanced settings"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
+
+ // Populate general settings 3
+ m_gGenSettingsID[i]->Add(m_CBSaveByID[i], 0, wxEXPAND | wxALL, 3);
+ m_gGenSettingsID[i]->Add(m_CBShowAdvanced[i], 0, wxEXPAND | wxALL, 3);
+
+ // Create objects for Rumble settings (general 4)
+ m_RStrength[i] = new wxComboBox(m_Controller[i], IDC_RUMBLESTRENGTH, wxAS_RumbleStrength[0], wxDefaultPosition, wxSize(85, 20), wxAS_RumbleStrength, wxCB_READONLY);
+ m_Rumble[i] = new wxCheckBox(m_Controller[i], IDC_ENABLERUMBLE, wxT("Enable Rumble"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
+#if !SDL_VERSION_ATLEAST(1, 3, 0) && !defined(_WIN32)
+ m_Rumble[i]->Disable();
+#endif
+
+ // Populate general settings 4
+ m_gRumble[i] = new wxStaticBoxSizer( wxVERTICAL, m_Controller[i], wxT("Rumble settings"));
+ m_gGBRumble[i] = new wxGridBagSizer(0, 0);
+ m_gGBRumble[i]->Add(m_Rumble[i], wxGBPosition(0, 0), wxGBSpan(1, 1), (wxTOP), 1);
+ m_gGBRumble[i]->Add(m_RStrength[i], wxGBPosition(1, 0), wxGBSpan(1, 1), (wxTOP), 6);
+ m_gRumble[i]->Add(m_gGBRumble[i], 0, wxEXPAND | wxALL, 3);
+
+ // Create tooltips
+ m_ControlType[i]->SetToolTip(wxT(
+ "Use a 'hat' on your gamepad or configure a custom button for each direction."
+ ));
+ m_TriggerType[i]->SetToolTip(wxT(
+ "Select XInput if you want the triggers to work with the XBox 360 pad."
+ ));
+ m_CBSaveByID[i]->SetToolTip(wxString::Format(
+ wxT("Map these settings to the selected controller device instead of to the")
+ wxT("\nselected slot (1, 2, 3 or 4). This may be a more convenient way")
+ wxT("\nto save your settings if you have multiple controllers.")
+ , i+1
+ ));
+
+ // Populate settings
+ m_sSettings[i] = new wxBoxSizer ( wxHORIZONTAL );
+ m_sSettings[i]->Add(m_gExtrasettings[i], 0, wxEXPAND | wxALL, 0);
+ m_sSettings[i]->Add(m_gGenSettings[i], 0, wxEXPAND | wxLEFT, 5);
+ m_sSettings[i]->Add(m_gGenSettingsID[i], 0, wxEXPAND | wxLEFT, 5);
+ m_sSettings[i]->Add(m_gRumble[i], 0, wxEXPAND | wxLEFT, 5);
+
+ // Advanced settings
+
+ // Input status controls
+
+ // Input status text
+ CreateAdvancedControls(i);
+
+ // Main-stick sizers
+ m_GBAdvancedMainStick[i] = new wxGridBagSizer(0, 0);
+ m_GBAdvancedMainStick[i]->Add(m_pInStatus[i], wxGBPosition(0, 0), wxGBSpan(1, 1), wxALL, 0);
+ m_GBAdvancedMainStick[i]->Add(m_pOutStatus[i], wxGBPosition(0, 1), wxGBSpan(1, 1), wxLEFT, 5);
+ m_GBAdvancedMainStick[i]->Add(m_TStatusIn[i], wxGBPosition(1, 0), wxGBSpan(1, 1), wxALL, 0);
+ m_GBAdvancedMainStick[i]->Add(m_TStatusOut[i], wxGBPosition(1, 1), wxGBSpan(1, 1), wxLEFT, 5);
+ // Cstick sizers
+ m_GBAdvancedCStick[i] = new wxGridBagSizer(0, 0);
+ m_GBAdvancedCStick[i]->Add(m_pInStatusC[i], wxGBPosition(0, 0), wxGBSpan(1, 1), wxALL, 0);
+ m_GBAdvancedCStick[i]->Add(m_pOutStatusC[i], wxGBPosition(0, 1), wxGBSpan(1, 1), wxLEFT, 5);
+ m_GBAdvancedCStick[i]->Add(m_TStatusInC[i], wxGBPosition(1, 0), wxGBSpan(1, 1), wxALL, 0);
+ m_GBAdvancedCStick[i]->Add(m_TStatusOutC[i], wxGBPosition(1, 1), wxGBSpan(1, 1), wxLEFT, 5);
+ // Add sizers
+ m_gStatusIn[i]->Add(m_GBAdvancedMainStick[i], 0, wxLEFT, 5);
+ m_gStatusInC[i]->Add(m_GBAdvancedCStick[i], 0, wxLEFT, 5);
+
+ // Populate input status settings
+
+ // The drop down menu
+ m_gStatusInSettings[i] = new wxStaticBoxSizer( wxVERTICAL, m_Controller[i], wxT("Main-stick settings"));
+ m_gStatusInSettingsRadiusH[i] = new wxBoxSizer(wxHORIZONTAL);
+ m_gStatusInSettingsC[i] = new wxStaticBoxSizer( wxVERTICAL, m_Controller[i], wxT("C-stick settings"));
+ m_gStatusInSettingsRadiusHC[i] = new wxBoxSizer(wxHORIZONTAL);
+ wxArrayString asRadius;
+ asRadius.Add(wxT("100%"));
+ asRadius.Add(wxT("90%"));
+ asRadius.Add(wxT("80%"));
+ asRadius.Add(wxT("70%"));
+ asRadius.Add(wxT("60%"));
+ asRadius.Add(wxT("50%"));
+ asRadius.Add(wxT("40%"));
+ m_CoBRadius[i] = new wxComboBox(m_Controller[i], IDCB_MAINSTICK_RADIUS, asRadius[0], wxDefaultPosition, wxDefaultSize, asRadius, wxCB_READONLY);
+ m_CoBRadiusC[i] = new wxComboBox(m_Controller[i], IDCB_CSTICK_RADIUS, asRadius[0], wxDefaultPosition, wxDefaultSize, asRadius, wxCB_READONLY);
+
+ // The checkbox
+ m_CBRadius[i] = new wxCheckBox(m_Controller[i], IDCB_MAINSTICK_CB_RADIUS, wxT("Radius"));
+ m_CBRadiusC[i] = new wxCheckBox(m_Controller[i], IDCB_CSTICK_CB_RADIUS, wxT("Radius"));
+ wxString CBRadiusToolTip = wxT("This will reduce the stick radius.");
+ m_CBRadius[i]->SetToolTip(CBRadiusToolTip);
+ m_CBRadiusC[i]->SetToolTip(CBRadiusToolTip);
+
+ // The drop down menu);
+ m_gStatusInSettingsH[i] = new wxBoxSizer(wxHORIZONTAL);
+ m_gStatusInSettingsHC[i] = new wxBoxSizer(wxHORIZONTAL);
+ wxArrayString asStatusInSet;
+ asStatusInSet.Add(wxT("100%"));
+ asStatusInSet.Add(wxT("95%"));
+ asStatusInSet.Add(wxT("90%"));
+ asStatusInSet.Add(wxT("85%"));
+ asStatusInSet.Add(wxT("80%"));
+ asStatusInSet.Add(wxT("75%"));
+ m_CoBDiagonal[i] = new wxComboBox(m_Controller[i], IDCB_MAINSTICK_DIAGONAL, asStatusInSet[0], wxDefaultPosition, wxDefaultSize, asStatusInSet, wxCB_READONLY);
+ m_CoBDiagonalC[i] = new wxComboBox(m_Controller[i], IDCB_CSTICK_DIAGONAL, asStatusInSet[0], wxDefaultPosition, wxDefaultSize, asStatusInSet, wxCB_READONLY);
+
+ // The checkbox
+ m_CBS_to_C[i] = new wxCheckBox(m_Controller[i], IDCB_MAINSTICK_S_TO_C, wxT("Diagonal"));
+ m_CBS_to_CC[i] = new wxCheckBox(m_Controller[i], IDCB_CSTICK_S_TO_C, wxT("Diagonal"));
+ wxString CBS_to_CToolTip =
+ wxT("This will convert a square stick radius to a circle stick radius similar to the octagonal area that the original GameCube pad produce.")
+ wxT(" To produce a smooth circle in the 'Out' window you have to manually set")
+ wxT(" your diagonal values from the 'In' window in the drop down menu.");
+ m_CBS_to_C[i]->SetToolTip(CBS_to_CToolTip);
+ m_CBS_to_CC[i]->SetToolTip(CBS_to_CToolTip);
+
+ // Populate sizers
+ m_gStatusInSettings[i]->Add(m_gStatusInSettingsRadiusH[i], 0, (wxLEFT | wxRIGHT | wxBOTTOM), 4);
+ m_gStatusInSettings[i]->Add(m_gStatusInSettingsH[i], 0, (wxLEFT | wxRIGHT | wxBOTTOM), 4);
+ // C-stick
+ m_gStatusInSettingsC[i]->Add(m_gStatusInSettingsRadiusHC[i], 0, (wxLEFT | wxRIGHT | wxBOTTOM), 4);
+ m_gStatusInSettingsC[i]->Add(m_gStatusInSettingsHC[i], 0, (wxLEFT | wxRIGHT | wxBOTTOM), 4);
+
+ m_gStatusInSettingsRadiusH[i]->Add(m_CBRadius[i], 0, wxLEFT | wxTOP, 3);
+ m_gStatusInSettingsRadiusH[i]->Add(m_CoBRadius[i], 0, wxLEFT, 3);
+ m_gStatusInSettingsH[i]->Add(m_CBS_to_C[i], 0, wxLEFT | wxTOP, 3);
+ m_gStatusInSettingsH[i]->Add(m_CoBDiagonal[i], 0, wxLEFT, 3);
+ // C-stick
+ m_gStatusInSettingsRadiusHC[i]->Add(m_CBRadiusC[i], 0, wxLEFT | wxTOP, 3);
+ m_gStatusInSettingsRadiusHC[i]->Add(m_CoBRadiusC[i], 0, wxLEFT, 3);
+ m_gStatusInSettingsHC[i]->Add(m_CBS_to_CC[i], 0, wxLEFT | wxTOP, 3);
+ m_gStatusInSettingsHC[i]->Add(m_CoBDiagonalC[i], 0, wxLEFT, 3);
+
+ // The trigger values
+ m_gStatusTriggers[i] = new wxStaticBoxSizer( wxVERTICAL, m_Controller[i], wxT("Trigger values"));
+ m_TStatusTriggers[i] = new wxStaticText(m_Controller[i], IDT_TRIGGERS, wxT("Left: Right:"));
+ m_gStatusTriggers[i]->Add(m_TStatusTriggers[i], 0, (wxALL), 4);
+
+ m_gStatusAdvancedSettings[i] = new wxStaticBoxSizer( wxVERTICAL, m_Controller[i], wxT("Advanced settings"));
+ m_CBCheckFocus[i] = new wxCheckBox(m_Controller[i], IDCB_CHECKFOCUS, wxT("Allow out of focus input"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
+ m_AdvancedMapFilter[i] = new wxCheckBox(m_Controller[i], IDCB_FILTER_SETTINGS , wxT("No trigger filter"));
+ m_gStatusAdvancedSettings[i]->Add(m_CBCheckFocus[i], 0, (wxALL), 4);
+ m_gStatusAdvancedSettings[i]->Add(m_AdvancedMapFilter[i], 0, (wxALL), 4);
+
+ // Tool tips
+ m_CBCheckFocus[i]->SetToolTip(wxT(
+ "Allow gamepad input even when Dolphin is not in focus. Out of focus keyboard input is never allowed."));
+ m_AdvancedMapFilter[i]->SetToolTip(
+ wxT("This will allow you to map a digital axis to the main stick or the C-stick. If you don't have")
+ wxT(" any analog triggers that will be automatically set when the trigger filter is off.")
+ );
+
+
+ // Populate sizers
+
+ // Populate main left sizer
+ m_sMainLeft[i] = new wxBoxSizer(wxVERTICAL);
+ m_sMainLeft[i]->Add(m_gJoyname[i], 0, wxEXPAND | (wxALL), 5);
+ m_sMainLeft[i]->Add(m_sKeys[i], 1, wxEXPAND | (wxLEFT | wxRIGHT), 5);
+ m_sMainLeft[i]->Add(m_sSettings[i], 0, wxEXPAND | (wxALL), 5);
+
+ // Populate main right sizer
+ m_sMainRight[i] = new wxBoxSizer(wxVERTICAL);
+ m_sMainRight[i]->Add(m_gStatusIn[i], 0, wxEXPAND | (wxLEFT), 2);
+ m_sMainRight[i]->Add(m_gStatusInSettings[i], 0, wxEXPAND | (wxLEFT | wxTOP), 2);
+ m_sMainRight[i]->Add(m_gStatusInC[i], 0, wxEXPAND | (wxLEFT), 2);
+ m_sMainRight[i]->Add(m_gStatusInSettingsC[i], 0, wxEXPAND | (wxLEFT | wxTOP), 2);
+ m_sMainRight[i]->Add(m_gStatusTriggers[i], 0, wxEXPAND | (wxLEFT | wxTOP), 2);
+ m_sMainRight[i]->Add(m_gStatusAdvancedSettings[i], 0, wxEXPAND | (wxLEFT | wxTOP), 2);
+#ifdef RERECORDING
+ m_sMainRight[i]->Add(m_SizeRecording[i], 0, wxEXPAND | (wxLEFT | wxTOP), 2);
+#endif
+
+ // Populate main sizer
+ m_sMain[i] = new wxBoxSizer(wxHORIZONTAL);
+ m_sMain[i]->Add(m_sMainLeft[i], 0, wxEXPAND | (wxALL), 0);
+ m_sMain[i]->Add(m_sMainRight[i], 0, wxEXPAND | (wxRIGHT | wxTOP), 5);
+ m_Controller[i]->SetSizerAndFit(m_sMain[i]); // Set the main sizer
+
+ // Show or hide it. We have to do this after we add it to its sizer
+ m_sMainRight[i]->Show(g_Config.bShowAdvanced);
+
+ // Update GUI
+ UpdateGUI(i);
+ } // end of loop
+
+ // Populate buttons sizer.
+ wxBoxSizer * m_sButtons = new wxBoxSizer(wxHORIZONTAL);
+ m_sButtons->Add(m_About, 0, (wxBOTTOM), 0);
+ m_sButtons->AddStretchSpacer(1);
+ m_sButtons->Add(m_OK, 0, wxALIGN_RIGHT | (wxBOTTOM), 0);
+ m_sButtons->Add(m_Cancel, 0, wxALIGN_RIGHT | (wxLEFT), 5);
+
+
+ // Populate master sizer.
+ m_MainSizer = new wxBoxSizer(wxVERTICAL);
+ m_MainSizer->Add(m_Notebook, 0, wxEXPAND | wxALL, 5);
+ m_MainSizer->Add(m_sButtons, 1, wxEXPAND | ( wxLEFT | wxRIGHT | wxBOTTOM), 5);
+ SetSizerAndFit(m_MainSizer);
+
+ // Debugging
+ #ifdef SHOW_PAD_STATUS
+ m_pStatusBar = new wxStaticText(this, IDT_DEBUGGING, wxT("Debugging"), wxPoint(135, 100), wxDefaultSize);
+ #endif
+
+ // Set window size
+ SetSizer(m_MainSizer);
+ Layout();
+ Fit();
+ // Center the window if there is room for it
+ #ifdef _WIN32
+ if (GetSystemMetrics(SM_CYFULLSCREEN) > 600)
+ Center();
+ #endif
+
+ // All done
+ ControlsCreated = true;
+
+ // Replace the harder to understand -1 with "" for the sake of user friendliness
+ ToBlank();
+}
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/ConfigBox.h b/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/ConfigBox.h
new file mode 100644
index 0000000000..807b7c6d52
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/ConfigBox.h
@@ -0,0 +1,358 @@
+
+// Project description
+// -------------------
+// Name: nJoy
+// Description: A Dolphin Compatible Input Plugin
+//
+// Author: Falcon4ever (nJoy@falcon4ever.com)
+// Site: www.multigesture.net
+// Copyright (C) 2003 Dolphin Project.
+//
+
+//
+// Licensetype: GNU General Public License (GPL)
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+//
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+//
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+//
+
+
+
+#ifndef __CONFIGBOX_h__
+#define __CONFIGBOX_h__
+
+#ifndef WX_PRECOMP
+ #include
+ #include
+#else
+ #include
+#endif
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include "../nJoy.h"
+
+class PADConfigDialognJoy : public wxDialog
+{
+ private:
+ DECLARE_EVENT_TABLE();
+
+ public:
+ PADConfigDialognJoy(wxWindow *parent, wxWindowID id = 1,
+ const wxString &title = wxT("Configure: nJoy Input Plugin"),
+ const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_DIALOG_STYLE);
+ virtual ~PADConfigDialognJoy();
+
+ #if wxUSE_TIMER
+ void OnTimer(wxTimerEvent& WXUNUSED(event)) { Update(); }
+ void OnButtonTimer(wxTimerEvent& WXUNUSED(event)) { DoGetButtons(GetButtonWaitingID); }
+ wxTimer *m_ConstantTimer, *m_ButtonMappingTimer;
+ #endif
+
+ // Debugging
+ wxStaticText* m_pStatusBar, * m_pStatusBar2;
+ wxTextCtrl* m_TCDebugging;
+ bool Debugging;
+ void LogMsg(const char* format, ...);
+
+ // Status window
+ int BoxW, BoxH;
+
+ // Configure buttons
+ int GetButtonWaitingID, GetButtonWaitingTimer;
+
+ private:
+ wxButton *m_About;
+ wxButton *m_OK;
+ wxButton *m_Cancel;
+
+ wxPanel *m_Controller[4]; // Main containers
+ wxNotebook *m_Notebook;
+ wxBoxSizer * m_MainSizer;
+
+ wxPanel *m_pKeys[4], *m_pInStatus[4], *m_pOutStatus[4], *m_pInStatusC[4], *m_pOutStatusC[4];
+ wxBitmap WxStaticBitmap1_BITMAP;
+ wxStaticBoxSizer * m_sKeys[4];
+ wxBoxSizer *m_sMain[4], *m_sMainLeft[4], *m_sMainRight[4];
+
+
+ // Settings
+ // ---------
+
+ wxComboBox *m_Joyname[4];
+ wxCheckBox *m_Enable[4];
+ wxComboBox *m_ControlType[4], *m_TriggerType[4];
+ wxComboBox *m_Deadzone[4];
+
+ wxStaticBoxSizer *m_gJoyname[4];
+
+ wxStaticBoxSizer *m_gExtrasettings[4]; // Extra settings
+ wxGridBagSizer * m_gGBExtrasettings[4];
+
+ wxBoxSizer* m_sSettings[4]; // General settings 2
+ wxStaticBoxSizer *m_gGenSettings[4];
+
+ wxStaticBoxSizer *m_gGenSettingsID[4];
+ wxGridBagSizer *m_gGBGenSettings[4];
+ wxCheckBox *m_CBSaveByID[4], *m_CBShowAdvanced[4];
+ wxStaticText *m_TSControltype[4], *m_TSTriggerType[4];
+
+ wxStaticBoxSizer *m_gStatusIn[4], *m_gStatusInSettings[4], *m_gStatusInC[4], *m_gStatusInSettingsC[4], *m_gStatusAdvancedSettings[4]; // Advanced settings
+ wxBoxSizer *m_gStatusInSettingsH[4], *m_gStatusInSettingsRadiusH[4], *m_gStatusInSettingsHC[4], *m_gStatusInSettingsRadiusHC[4];
+ wxGridBagSizer *m_GBAdvancedMainStick[4], *m_GBAdvancedCStick[4];
+ wxStaticText *m_TStatusIn[4], *m_TStatusOut[4], *m_TStatusInC[4], *m_TStatusOutC[4];
+ wxComboBox *m_CoBRadius[4], *m_CoBRadiusC[4]; wxCheckBox *m_CBRadius[4], *m_CBRadiusC[4];
+ wxComboBox *m_CoBDiagonal[4], *m_CoBDiagonalC[4]; wxCheckBox *m_CBS_to_C[4], *m_CBS_to_CC[4];
+ wxCheckBox *m_CBCheckFocus[4], *m_AdvancedMapFilter[4];
+
+ wxCheckBox *m_Rumble[4]; // Rumble settings
+ wxComboBox *m_RStrength[4];
+ wxStaticBoxSizer *m_gRumble[4];
+ wxGridBagSizer *m_gGBRumble[4];
+
+ wxStaticBoxSizer *m_gStatusTriggers[4]; // Triggers
+ wxStaticText *m_TStatusTriggers[4];
+
+
+ // Keys
+ // ---------
+ int g_Pressed; // Keyboard input
+
+ wxTextCtrl *m_JoyShoulderL[4];
+ wxTextCtrl *m_JoyShoulderR[4];
+
+ wxButton *m_bJoyShoulderL[4];
+ wxButton *m_bJoyShoulderR[4];
+
+ wxTextCtrl *m_JoyButtonA[4];
+ wxTextCtrl *m_JoyButtonB[4];
+ wxTextCtrl *m_JoyButtonX[4];
+ wxTextCtrl *m_JoyButtonY[4];
+ wxTextCtrl *m_JoyButtonZ[4];
+ wxTextCtrl *m_JoyButtonStart[4];
+ wxTextCtrl *m_JoyButtonHalfpress[4];
+
+ wxButton *m_bJoyButtonA[4];
+ wxButton *m_bJoyButtonB[4];
+ wxButton *m_bJoyButtonX[4];
+ wxButton *m_bJoyButtonY[4];
+ wxButton *m_bJoyButtonZ[4];
+ wxButton *m_bJoyButtonStart[4];
+ wxButton *m_bJoyButtonHalfpress[4];
+
+ wxTextCtrl *m_JoyAnalogMainX[4];
+ wxTextCtrl *m_JoyAnalogMainY[4];
+ wxTextCtrl *m_JoyAnalogSubX[4];
+ wxTextCtrl *m_JoyAnalogSubY[4];
+
+ wxButton *m_bJoyAnalogMainX[4];
+ wxButton *m_bJoyAnalogMainY[4];
+ wxButton *m_bJoyAnalogSubX[4];
+ wxButton *m_bJoyAnalogSubY[4];
+
+ wxTextCtrl *m_JoyDpadUp[4];
+ wxTextCtrl *m_JoyDpadDown[4];
+ wxTextCtrl *m_JoyDpadLeft[4];
+ wxTextCtrl *m_JoyDpadRight[4];
+
+ wxButton *m_bJoyDpadUp[4];
+ wxButton *m_bJoyDpadDown[4];
+ wxButton *m_bJoyDpadLeft[4];
+ wxButton *m_bJoyDpadRight[4];
+
+ wxStaticText *m_textMainX[4];
+ wxStaticText *m_textMainY[4];
+ wxStaticText *m_textDpadUp[4];
+ wxStaticText *m_textDpadDown[4];
+ wxStaticText *m_textDpadLeft[4];
+ wxStaticText *m_textDpadRight[4];
+ wxStaticText *m_textDeadzone[4];
+ wxStaticText *m_textHalfpress[4];
+ wxStaticText *m_textSubX[4];
+ wxStaticText *m_textSubY[4];
+ wxStaticText *m_textWebsite[4];
+
+ wxTextCtrl *m_PlaceholderBMP[4];
+ wxStaticBitmap *m_controllerimage[4],
+ *m_bmpSquare[4], *m_bmpDot[4], *m_bmpSquareOut[4], *m_bmpDotOut[4], *m_bmpAreaOut[4],
+ *m_bmpSquareC[4], *m_bmpDotC[4], *m_bmpSquareOutC[4], *m_bmpDotOutC[4], *m_bmpAreaOutC[4];
+
+ int notebookpage; bool ControlsCreated;
+
+ private:
+ enum
+ {
+ ID_ABOUT = 1000,
+ ID_OK,
+ ID_CANCEL,
+ ID_NOTEBOOK,
+ ID_CONTROLLERPAGE1,
+ ID_CONTROLLERPAGE2,
+ ID_CONTROLLERPAGE3,
+ ID_CONTROLLERPAGE4,
+ ID_CONTROLLERPICTURE, // Background picture
+
+ ID_KEYSPANEL1, ID_KEYSPANEL2, ID_KEYSPANEL3, ID_KEYSPANEL4,
+
+ IDG_JOYSTICK, IDC_JOYNAME, IDC_ENABLE,
+
+ IDG_EXTRASETTINGS, IDC_DEADZONE, // Extra settings
+
+ IDG_CONTROLLERTYPE, IDC_CONTROLTYPE, IDC_TRIGGERTYPE, // Controller type
+
+ IDC_SAVEBYID, IDC_SHOWADVANCED, // Settings
+
+ IDC_ENABLERUMBLE, IDC_RUMBLESTRENGTH, IDT_RUMBLESTRENGTH, // Rumble
+
+ ID_INSTATUS1, ID_INSTATUS2, ID_INSTATUS3, ID_INSTATUS4, // Advanced status
+ ID_STATUSBMP1, ID_STATUSBMP2, ID_STATUSBMP3, ID_STATUSBMP4,
+ ID_STATUSDOTBMP1, ID_STATUSDOTBMP2, ID_STATUSDOTBMP3, ID_STATUSDOTBMP4,
+ IDT_STATUS_IN, IDT_STATUS_OUT,
+
+ // Advaced settings
+ IDCB_MAINSTICK_RADIUS, IDCB_MAINSTICK_CB_RADIUS, IDCB_MAINSTICK_DIAGONAL, IDCB_MAINSTICK_S_TO_C, IDT_MAINSTICK_DIAGONAL,
+ IDCB_CSTICK_RADIUS, IDCB_CSTICK_CB_RADIUS, IDCB_CSTICK_DIAGONAL, IDCB_CSTICK_S_TO_C, IDT_CSTICK_DIAGONAL,
+ IDT_TRIGGERS, IDCB_CHECKFOCUS, IDCB_FILTER_SETTINGS,
+
+ // Timers
+ IDTM_CONSTANT, IDTM_BUTTON,
+
+
+ // ==============================================
+ // Keys objects
+ // -----------------------------
+
+ // -------------------------------------
+ // Text controls that hold the mapped key value
+ // ----------
+ ID_ANALOG_MAIN_X = 2000,
+ ID_ANALOG_MAIN_Y,
+ ID_ANALOG_SUB_X,
+ ID_ANALOG_SUB_Y,
+ ID_SHOULDER_L,
+ ID_SHOULDER_R,
+
+ ID_DPAD_UP,
+ ID_DPAD_DOWN,
+ ID_DPAD_LEFT,
+ ID_DPAD_RIGHT,
+
+ ID_BUTTON_A,
+ ID_BUTTON_B,
+ ID_BUTTON_X,
+ ID_BUTTON_Y,
+ ID_BUTTON_Z,
+ ID_BUTTONSTART,
+
+ ID_BUTTONHALFPRESS,
+ // ------------------ Keep this order
+
+ // -------------------------------------
+ // Buttons controls (it's important that they are kept in this order)
+ // --------
+ IDB_ANALOG_MAIN_X = 3000,
+ IDB_ANALOG_MAIN_Y,
+ IDB_ANALOG_SUB_X,
+ IDB_ANALOG_SUB_Y,
+ IDB_SHOULDER_L,
+ IDB_SHOULDER_R,
+
+ IDB_DPAD_UP,
+ IDB_DPAD_DOWN,
+ IDB_DPAD_LEFT,
+ IDB_DPAD_RIGHT,
+
+ IDB_BUTTON_A,
+ IDB_BUTTON_B,
+ IDB_BUTTON_X,
+ IDB_BUTTON_Y,
+ IDB_BUTTON_Z,
+ IDB_BUTTONSTART,
+
+ IDB_BUTTONHALFPRESS,
+ // ------------------ Keep this order
+
+ // Statis text controls that hold the button label
+ IDT_ANALOG_MAIN_X = 4000,
+ IDT_ANALOG_MAIN_Y,
+ IDT_ANALOG_SUB_X,
+ IDT_ANALOG_SUB_Y,
+
+ IDT_DPAD_UP,
+ IDT_DPAD_DOWN,
+ IDT_DPAD_LEFT,
+ IDT_DPAD_RIGHT,
+ IDT_DEADZONE,
+ IDT_BUTTONHALFPRESS,
+
+ IDT_DPADTYPE, IDT_TRIGGERTYPE,
+ IDT_WEBSITE,
+ IDT_DEBUGGING, IDT_DEBUGGING2, IDT_DEBUGGING3,
+ // ============
+
+ ID_DUMMY_VALUE_ //don't remove this value unless you have other enum values
+ };
+
+ private:
+ void OnClose(wxCloseEvent& event);
+ void AboutClick(wxCommandEvent& event);
+ void OKClick(wxCommandEvent& event);
+ void CancelClick(wxCommandEvent& event);
+ void DoSave(bool ChangePad = false, int Slot = -1);
+
+ void DoChangeJoystick();
+
+ void UpdateGUI(int _notebookpage);
+
+ void ChangeSettings(wxCommandEvent& event);
+ void ComboChange(wxCommandEvent& event);
+
+ void CreateGUIControls();
+ void CreateAdvancedControls(int i);
+ wxBitmap CreateBitmap();
+ wxBitmap CreateBitmapDot();
+ wxBitmap CreateBitmapArea(int,int);
+ void PadGetStatus();
+ void Update();
+
+ void UpdateGUIButtonMapping(int controller);
+ void SaveButtonMapping(int controller, bool DontChangeId = false, int FromSlot = -1);
+ void SaveButtonMappingAll(int Slot);
+ void UpdateGUIAll(int Slot);
+ void ToBlank(bool ToBlank = true);
+ void OnSaveById();
+
+ void NotebookPageChanged(wxNotebookEvent& event);
+
+ void GetButtons(wxCommandEvent& event); void DoGetButtons(int);
+ void GetHats(int ID);
+ void GetAxis(wxCommandEvent& event);
+
+ void OnPaint(wxPaintEvent &event);
+
+ void SetButtonText(int id, const char *text, int Page = -1);
+ void SetButtonTextAll(int id, const char *text);
+ wxString GetButtonText(int id, int Page = -1);
+ void OnKeyDown(wxKeyEvent& event);
+};
+
+#endif
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/ConfigJoypad.cpp b/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/ConfigJoypad.cpp
new file mode 100644
index 0000000000..c25f8f39c0
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/ConfigJoypad.cpp
@@ -0,0 +1,425 @@
+
+// Project description
+// -------------------
+// Name: nJoy
+// Description: A Dolphin Compatible Input Plugin
+//
+// Author: Falcon4ever (nJoy@falcon4ever.com)
+// Site: www.multigesture.net
+// Copyright (C) 2003 Dolphin Project.
+//
+
+//
+// Licensetype: GNU General Public License (GPL)
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+//
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+//
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+//
+
+
+
+
+// Include
+// ---------
+#include "math.h" // System
+
+#include "ConfigBox.h" // Local
+#include "../nJoy.h"
+#include "Images/controller.xpm"
+
+extern bool g_EmulatorRunning;
+
+
+
+// Set dialog items from saved values
+// ----------------
+void PADConfigDialognJoy::UpdateGUIButtonMapping(int controller)
+{
+ // http://wiki.wxwidgets.org/Converting_everything_to_and_from_wxString
+ wxString tmp;
+
+ // Update selected gamepad
+ m_Joyname[controller]->SetSelection(PadMapping[controller].ID);
+ m_Enable[controller]->SetValue(PadMapping[controller].enable);
+
+ tmp << PadMapping[controller].buttons[InputCommon::CTL_L_SHOULDER]; m_JoyShoulderL[controller]->SetValue(tmp); tmp.clear();
+ tmp << PadMapping[controller].buttons[InputCommon::CTL_R_SHOULDER]; m_JoyShoulderR[controller]->SetValue(tmp); tmp.clear();
+
+ tmp << PadMapping[controller].buttons[InputCommon::CTL_A_BUTTON]; m_JoyButtonA[controller]->SetValue(tmp); tmp.clear();
+ tmp << PadMapping[controller].buttons[InputCommon::CTL_B_BUTTON]; m_JoyButtonB[controller]->SetValue(tmp); tmp.clear();
+ tmp << PadMapping[controller].buttons[InputCommon::CTL_X_BUTTON]; m_JoyButtonX[controller]->SetValue(tmp); tmp.clear();
+ tmp << PadMapping[controller].buttons[InputCommon::CTL_Y_BUTTON]; m_JoyButtonY[controller]->SetValue(tmp); tmp.clear();
+ tmp << PadMapping[controller].buttons[InputCommon::CTL_Z_TRIGGER]; m_JoyButtonZ[controller]->SetValue(tmp); tmp.clear();
+
+ tmp << PadMapping[controller].buttons[InputCommon::CTL_START]; m_JoyButtonStart[controller]->SetValue(tmp); tmp.clear();
+ tmp << PadMapping[controller].halfpress; m_JoyButtonHalfpress[controller]->SetValue(tmp); tmp.clear();
+
+ tmp << PadMapping[controller].axis[InputCommon::CTL_MAIN_X]; m_JoyAnalogMainX[controller]->SetValue(tmp); tmp.clear();
+ tmp << PadMapping[controller].axis[InputCommon::CTL_MAIN_Y]; m_JoyAnalogMainY[controller]->SetValue(tmp); tmp.clear();
+ tmp << PadMapping[controller].axis[InputCommon::CTL_SUB_X]; m_JoyAnalogSubX[controller]->SetValue(tmp); tmp.clear();
+ tmp << PadMapping[controller].axis[InputCommon::CTL_SUB_Y]; m_JoyAnalogSubY[controller]->SetValue(tmp); tmp.clear();
+
+ // Update the deadzone and controller type controls
+ m_ControlType[controller]->SetSelection(PadMapping[controller].controllertype);
+ m_TriggerType[controller]->SetSelection(PadMapping[controller].triggertype);
+ m_Deadzone[controller]->SetSelection(PadMapping[controller].deadzone);
+ m_CoBRadius[controller]->SetValue(wxString::FromAscii(PadMapping[controller].SRadius.c_str()));
+ m_CBRadius[controller]->SetValue(PadMapping[controller].bRadiusOnOff);
+ m_CoBDiagonal[controller]->SetValue(wxString::FromAscii(PadMapping[controller].SDiagonal.c_str()));
+ m_CBS_to_C[controller]->SetValue(PadMapping[controller].bSquareToCircle);
+ // C-stick
+ m_CoBRadiusC[controller]->SetValue(wxString::FromAscii(PadMapping[controller].SRadiusC.c_str()));
+ m_CBRadiusC[controller]->SetValue(PadMapping[controller].bRadiusOnOffC);
+ m_CoBDiagonalC[controller]->SetValue(wxString::FromAscii(PadMapping[controller].SDiagonalC.c_str()));
+ m_CBS_to_CC[controller]->SetValue(PadMapping[controller].bSquareToCircleC);
+ m_AdvancedMapFilter[controller]->SetValue(g_Config.bNoTriggerFilter);
+ // Update Rumble checkbox
+ m_Rumble[controller]->SetValue(PadMapping[controller].rumble);
+
+ // Update D-Pad
+ if(PadMapping[controller].controllertype == InputCommon::CTL_DPAD_HAT)
+ {
+ tmp << PadMapping[controller].dpad; m_JoyDpadDown[controller]->SetValue(tmp); tmp.clear();
+ }
+ else
+ {
+ tmp << PadMapping[controller].dpad2[InputCommon::CTL_D_PAD_UP]; m_JoyDpadUp[controller]->SetValue(tmp); tmp.clear();
+ tmp << PadMapping[controller].dpad2[InputCommon::CTL_D_PAD_DOWN]; m_JoyDpadDown[controller]->SetValue(tmp); tmp.clear();
+ tmp << PadMapping[controller].dpad2[InputCommon::CTL_D_PAD_LEFT]; m_JoyDpadLeft[controller]->SetValue(tmp); tmp.clear();
+ tmp << PadMapping[controller].dpad2[InputCommon::CTL_D_PAD_RIGHT]; m_JoyDpadRight[controller]->SetValue(tmp); tmp.clear();
+ }
+
+}
+
+/* Populate the PadMapping array with the dialog items settings (for example
+ selected joystick and so on) */
+void PADConfigDialognJoy::SaveButtonMapping(int controller, bool DontChangeId, int FromSlot)
+{
+ // Temporary storage
+ wxString tmp;
+ long value;
+
+ // Save from or to the same or different slots
+ if (FromSlot == -1) FromSlot = controller;
+
+ // Replace "" with "-1" in the GUI controls
+ ToBlank(false);
+
+ // Set other settings
+ if(!DontChangeId) PadMapping[controller].ID = m_Joyname[FromSlot]->GetSelection();
+ PadMapping[controller].enable = m_Enable[FromSlot]->IsChecked();
+ PadMapping[controller].controllertype = m_ControlType[FromSlot]->GetSelection();
+ PadMapping[controller].triggertype = m_TriggerType[FromSlot]->GetSelection();
+ PadMapping[controller].deadzone = m_Deadzone[FromSlot]->GetSelection();
+ PadMapping[controller].SRadius = m_CoBRadius[FromSlot]->GetLabel().mb_str();
+ PadMapping[controller].bRadiusOnOff = m_CBRadius[FromSlot]->IsChecked();
+ PadMapping[controller].SDiagonal = m_CoBDiagonal[FromSlot]->GetLabel().mb_str();
+ PadMapping[controller].bSquareToCircle = m_CBS_to_C[FromSlot]->IsChecked();
+ // C-stick
+ PadMapping[controller].SRadiusC = m_CoBRadiusC[FromSlot]->GetLabel().mb_str();
+ PadMapping[controller].bRadiusOnOffC = m_CBRadiusC[FromSlot]->IsChecked();
+ PadMapping[controller].SDiagonalC = m_CoBDiagonalC[FromSlot]->GetLabel().mb_str();
+ PadMapping[controller].bSquareToCircleC = m_CBS_to_CC[FromSlot]->IsChecked();
+
+ // The analog buttons
+ m_JoyAnalogMainX[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].axis[InputCommon::CTL_MAIN_X] = value; tmp.clear();
+ m_JoyAnalogMainY[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].axis[InputCommon::CTL_MAIN_Y] = value; tmp.clear();
+ m_JoyAnalogSubX[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].axis[InputCommon::CTL_SUB_X] = value; tmp.clear();
+ m_JoyAnalogSubY[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].axis[InputCommon::CTL_SUB_Y] = value; tmp.clear();
+
+ // The shoulder buttons
+ m_JoyShoulderL[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].buttons[InputCommon::CTL_L_SHOULDER] = value;
+ m_JoyShoulderR[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].buttons[InputCommon::CTL_R_SHOULDER] = value;
+
+ // The digital buttons
+ m_JoyButtonA[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].buttons[InputCommon::CTL_A_BUTTON] = value; tmp.clear();
+ m_JoyButtonB[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].buttons[InputCommon::CTL_B_BUTTON] = value; tmp.clear();
+ m_JoyButtonX[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].buttons[InputCommon::CTL_X_BUTTON] = value; tmp.clear();
+ m_JoyButtonY[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].buttons[InputCommon::CTL_Y_BUTTON] = value; tmp.clear();
+ m_JoyButtonZ[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].buttons[InputCommon::CTL_Z_TRIGGER] = value; tmp.clear();
+ m_JoyButtonStart[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].buttons[InputCommon::CTL_START] = value; tmp.clear();
+
+ // The halfpress button
+ m_JoyButtonHalfpress[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].halfpress = value; tmp.clear();
+
+ // The digital pad
+ if(PadMapping[controller].controllertype == InputCommon::CTL_DPAD_HAT)
+ {
+ m_JoyDpadDown[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].dpad = value; tmp.clear();
+ }
+ else
+ {
+ m_JoyDpadUp[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].dpad2[InputCommon::CTL_D_PAD_UP] = value; tmp.clear();
+ m_JoyDpadDown[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].dpad2[InputCommon::CTL_D_PAD_DOWN] = value; tmp.clear();
+ m_JoyDpadLeft[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].dpad2[InputCommon::CTL_D_PAD_LEFT] = value; tmp.clear();
+ m_JoyDpadRight[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].dpad2[InputCommon::CTL_D_PAD_RIGHT] = value; tmp.clear();
+ }
+
+ // Replace "-1" with ""
+ ToBlank();
+}
+
+// Update the textbox for the buttons
+// ----------------
+void PADConfigDialognJoy::SetButtonText(int id, const char *text, int Page)
+{
+ // Set controller value
+ int controller;
+ if (Page == -1) controller = notebookpage; else controller = Page;
+
+ switch(id)
+ {
+ case IDB_DPAD_RIGHT: m_JoyDpadRight[controller]->SetValue(wxString::FromAscii(text)); break;
+ case IDB_DPAD_UP: m_JoyDpadUp[controller]->SetValue(wxString::FromAscii(text)); break;
+ case IDB_DPAD_DOWN: m_JoyDpadDown[controller]->SetValue(wxString::FromAscii(text)); break;
+ case IDB_DPAD_LEFT: m_JoyDpadLeft[controller]->SetValue(wxString::FromAscii(text)); break;
+
+ case IDB_ANALOG_MAIN_X: m_JoyAnalogMainX[controller]->SetValue(wxString::FromAscii(text)); break;
+ case IDB_ANALOG_MAIN_Y: m_JoyAnalogMainY[controller]->SetValue(wxString::FromAscii(text)); break;
+ case IDB_ANALOG_SUB_X: m_JoyAnalogSubX[controller]->SetValue(wxString::FromAscii(text)); break;
+ case IDB_ANALOG_SUB_Y: m_JoyAnalogSubY[controller]->SetValue(wxString::FromAscii(text)); break;
+
+ case IDB_SHOULDER_L: m_JoyShoulderL[controller]->SetValue(wxString::FromAscii(text)); break;
+ case IDB_SHOULDER_R: m_JoyShoulderR[controller]->SetValue(wxString::FromAscii(text)); break;
+
+ case IDB_BUTTON_A: m_JoyButtonA[controller]->SetValue(wxString::FromAscii(text)); break;
+ case IDB_BUTTON_B: m_JoyButtonB[controller]->SetValue(wxString::FromAscii(text)); break;
+ case IDB_BUTTON_X: m_JoyButtonX[controller]->SetValue(wxString::FromAscii(text)); break;
+ case IDB_BUTTON_Y: m_JoyButtonY[controller]->SetValue(wxString::FromAscii(text)); break;
+ case IDB_BUTTON_Z: m_JoyButtonZ[controller]->SetValue(wxString::FromAscii(text)); break;
+ case IDB_BUTTONSTART: m_JoyButtonStart[controller]->SetValue(wxString::FromAscii(text)); break;
+
+ case IDB_BUTTONHALFPRESS: m_JoyButtonHalfpress[controller]->SetValue(wxString::FromAscii(text)); break;
+ default: break;
+ }
+}
+
+// Get the text in the textbox for the buttons
+// ----------------
+wxString PADConfigDialognJoy::GetButtonText(int id, int Page)
+{
+ // Set controller value
+ int controller;
+ if (Page == -1) controller = notebookpage; else controller = Page;
+
+ switch(id)
+ {
+ // D-Pad
+ case IDB_DPAD_RIGHT: return m_JoyDpadRight[controller]->GetValue();
+ case IDB_DPAD_UP: return m_JoyDpadUp[controller]->GetValue();
+ case IDB_DPAD_DOWN: return m_JoyDpadDown[controller]->GetValue();
+ case IDB_DPAD_LEFT: return m_JoyDpadLeft[controller]->GetValue();
+
+ // Analog Stick
+ case IDB_ANALOG_MAIN_X: return m_JoyAnalogMainX[controller]->GetValue();
+ case IDB_ANALOG_MAIN_Y: return m_JoyAnalogMainY[controller]->GetValue();
+ case IDB_ANALOG_SUB_X: return m_JoyAnalogSubX[controller]->GetValue();
+ case IDB_ANALOG_SUB_Y: return m_JoyAnalogSubY[controller]->GetValue();
+
+ // Shoulder Buttons
+ case IDB_SHOULDER_L: return m_JoyShoulderL[controller]->GetValue();
+ case IDB_SHOULDER_R: return m_JoyShoulderR[controller]->GetValue();
+
+ // Buttons
+ case IDB_BUTTON_A: return m_JoyButtonA[controller]->GetValue();
+ case IDB_BUTTON_B: return m_JoyButtonB[controller]->GetValue();
+ case IDB_BUTTON_X: return m_JoyButtonX[controller]->GetValue();
+ case IDB_BUTTON_Y: return m_JoyButtonY[controller]->GetValue();
+ case IDB_BUTTON_Z: return m_JoyButtonZ[controller]->GetValue();
+ case IDB_BUTTONSTART: return m_JoyButtonStart[controller]->GetValue();
+
+ case IDB_BUTTONHALFPRESS: return m_JoyButtonHalfpress[controller]->GetValue();
+ default: return wxString();
+ }
+}
+
+
+
+// Configure button mapping
+// ----------
+
+
+// Wait for button press
+// ---------------------
+/* Loop or timer: There are basically two ways to do this. With a while() or for() loop, or with a
+ timer. The downside with the while() or for() loop is that there is no way to stop it if the user
+ should select to configure another button while we are still in an old loop. What will happen then
+ is that we start another parallel loop (at least in Windows) that blocks the old loop. And our only
+ option to wait for the old loop to finish is with a new loop, and that will block the old loop for as
+ long as it's going on. Therefore a timer is easier to control. */
+void PADConfigDialognJoy::GetButtons(wxCommandEvent& event)
+{
+ DoGetButtons(event.GetId());
+}
+
+void PADConfigDialognJoy::DoGetButtons(int GetId)
+{
+ // =============================================
+ // Collect the starting values
+ // ----------------
+
+ // Get the current controller
+ int Controller = notebookpage;
+ int PadID = PadMapping[Controller].ID;
+
+ // Create a shortcut for the pad handle
+ SDL_Joystick *joy = PadState[Controller].joy;
+
+ // Get the number of axes, hats and buttons
+ int Buttons = SDL_JoystickNumButtons(joy);
+ int Axes = SDL_JoystickNumAxes(joy);
+ int Hats = SDL_JoystickNumHats(joy);
+
+ INFO_LOG(CONSOLE, "PadID: %i Axes: %i\n", PadID, joyinfo[PadID].NumAxes, joyinfo[PadID].joy);
+
+ // Get the controller and trigger type
+ int ControllerType = PadMapping[Controller].controllertype;
+ int TriggerType = PadMapping[Controller].triggertype;
+
+ // Collect the accepted buttons for this slot
+ bool LeftRight = (GetId == IDB_SHOULDER_L || GetId == IDB_SHOULDER_R);
+
+ bool Axis = (GetId >= IDB_ANALOG_MAIN_X && GetId <= IDB_SHOULDER_R)
+ // Don't allow SDL input for the triggers when XInput is selected
+ && !(TriggerType == InputCommon::CTL_TRIGGER_XINPUT && (GetId == IDB_SHOULDER_L || GetId == IDB_SHOULDER_R) );
+
+ bool XInput = (TriggerType == InputCommon::CTL_TRIGGER_XINPUT);
+
+ bool Button = (GetId >= IDB_BUTTON_A && GetId <= IDB_BUTTONHALFPRESS) // All digital buttons
+ || (GetId == IDB_SHOULDER_L || GetId == IDB_SHOULDER_R) // both shoulder buttons
+ || (GetId >= IDB_DPAD_UP && GetId <= IDB_DPAD_RIGHT && ControllerType == InputCommon::CTL_DPAD_CUSTOM); // Or the custom hat mode
+
+ bool Hat = (GetId >= IDB_DPAD_UP && GetId <= IDB_DPAD_RIGHT) // All DPads
+ && (PadMapping[Controller].controllertype == InputCommon::CTL_DPAD_HAT); // Not with the hat option defined
+
+ bool NoTriggerFilter = g_Config.bNoTriggerFilter;
+
+ // Values used in this function
+ char format[128];
+ int Seconds = 4; // Seconds to wait for
+ int TimesPerSecond = 40; // How often to run the check
+
+ // Values returned from InputCommon::GetButton()
+ int value; // Axis value
+ int type; // Button type
+ int pressed = 0;
+ bool Succeed = false;
+ bool Stop = false; // Stop the timer
+ // =======================
+
+ // If the Id has changed or the timer is not running we should start one
+ if( GetButtonWaitingID != GetId || !m_ButtonMappingTimer->IsRunning() )
+ {
+ if(m_ButtonMappingTimer->IsRunning())
+ {
+ m_ButtonMappingTimer->Stop();
+ GetButtonWaitingTimer = 0;
+
+ // Update the old textbox
+ SetButtonText(GetButtonWaitingID, "");
+ }
+
+ // Save the button Id
+ GetButtonWaitingID = GetId;
+
+ // Reset the key in case we happen to have an old one
+ g_Pressed = 0;
+
+ // Update the text box
+ sprintf(format, "[ %d ]", Seconds);
+ SetButtonText(GetId, format);
+
+ // Start the timer
+ #if wxUSE_TIMER
+ m_ButtonMappingTimer->Start(1000 / TimesPerSecond);
+ #endif
+ }
+
+ // ===============================================
+ // Check for buttons
+ // ----------------
+
+ // If there is a timer but we should not create a new one
+ else
+ {
+ InputCommon::GetButton(
+ joy, PadID, Buttons, Axes, Hats,
+ g_Pressed, value, type, pressed, Succeed, Stop,
+ LeftRight, Axis, XInput, Button, Hat, NoTriggerFilter);
+ }
+ // ========================= Check for keys
+
+
+ // ===============================================
+ // Process results
+ // ----------------
+
+ // Count each time
+ GetButtonWaitingTimer++;
+
+ // This is run every second
+ if(GetButtonWaitingTimer % TimesPerSecond == 0)
+ {
+ // Current time
+ int TmpTime = Seconds - (GetButtonWaitingTimer / TimesPerSecond);
+
+ // Update text
+ sprintf(format, "[ %d ]", TmpTime);
+ SetButtonText(GetId, format);
+ }
+
+ // Time's up
+ if( (GetButtonWaitingTimer / TimesPerSecond) >= Seconds )
+ {
+ Stop = true;
+ // Leave a blank mapping
+ if(g_Config.bSaveByID) SetButtonTextAll(GetId, "-1"); else SetButtonText(GetId, "-1");
+ }
+
+ // If we got a button
+ if(Succeed)
+ {
+ Stop = true;
+ // Write the number of the pressed button to the text box
+ sprintf(format, "%d", pressed);
+ if(g_Config.bSaveByID) SetButtonTextAll(GetId, format); else SetButtonText(GetId, format);
+ }
+
+ // Stop the timer
+ if(Stop)
+ {
+ m_ButtonMappingTimer->Stop();
+ GetButtonWaitingTimer = 0;
+
+ /* Update the button mapping for all slots that use this device. (It doesn't make sense to have several slots
+ controlled by the same device, but several DirectInput instances of different but identical devices may possible
+ have the same id, I don't know. So we have to do this. The user may also have selected the same device for
+ several disabled slots. */
+ if(g_Config.bSaveByID) SaveButtonMappingAll(Controller); else SaveButtonMapping(Controller);
+ }
+
+ // If we got a bad button
+ if(g_Pressed == -1)
+ {
+ // Update text
+ if(g_Config.bSaveByID) SetButtonTextAll(GetId, "-1"); else SetButtonText(GetId, "-1");
+
+ // Notify the user
+ wxMessageBox(wxString::Format(
+ wxT("You selected a key with a to low key code (%i), please")
+ wxT(" select another key with a higher key code."), pressed)
+ , wxT("Notice"), wxICON_INFORMATION);
+ }
+}
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/Images/controller.xpm b/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/Images/controller.xpm
new file mode 100644
index 0000000000..d04290311e
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/Images/controller.xpm
@@ -0,0 +1,566 @@
+/* XPM */
+static const char *ConfigBox_WxStaticBitmap1_XPM[]={
+/* ConfigBox_WxStaticBitmap1 */
+"421 304 256 2",
+" c black",
+". c #04040B",
+"X c #090916",
+"o c #141217",
+"O c #181828",
+"+ c #15152D",
+"@ c #271B2F",
+"# c #162730",
+"$ c #272738",
+"% c #312B33",
+"& c #251A19",
+"* c #50312F",
+"= c #6D3734",
+"- c #531A34",
+"; c #744736",
+": c #2A2846",
+"> c #383847",
+", c #38355A",
+"< c #312E51",
+"1 c #3B3565",
+"2 c #3C366A",
+"3 c #3C396C",
+"4 c #383866",
+"5 c #3D3B73",
+"6 c #3D3D7B",
+"7 c #393773",
+"8 c #333165",
+"9 c #1B2543",
+"0 c #4A354F",
+"q c #423A69",
+"w c #413D74",
+"e c #423E7B",
+"r c #4A3D79",
+"t c #54386A",
+"y c #6D2A49",
+"u c #3E427B",
+"i c #3D4376",
+"p c #36486C",
+"a c #01786A",
+"s c #097773",
+"d c #1C5956",
+"f c #484858",
+"g c #4D4C56",
+"h c #474669",
+"j c #565768",
+"k c #434275",
+"l c #43437D",
+"z c #45497D",
+"x c #4A4C7D",
+"c c #494678",
+"v c #585977",
+"b c #4E5175",
+"n c #576771",
+"m c #666779",
+"M c #6C6D77",
+"N c #6A535C",
+"B c #0E463B",
+"V c #94273C",
+"C c #8D5237",
+"Z c #996738",
+"A c #A56B37",
+"S c #A97439",
+"D c #B67937",
+"F c #B0722C",
+"G c #A25D30",
+"H c #B22C4B",
+"J c #912C4B",
+"K c #C6264B",
+"L c #C93859",
+"P c #CD2D54",
+"I c #CF315A",
+"U c #AC7743",
+"Y c #925845",
+"T c #CF4760",
+"R c #C36636",
+"E c #018B7B",
+"W c #028577",
+"Q c #01927D",
+"! c #088272",
+"~ c #34857B",
+"^ c #04A17D",
+"/ c #42857D",
+"( c #B98336",
+") c #CE9130",
+"_ c #DBA62E",
+"` c #E9B22D",
+"' c #E1A227",
+"] c #F6CA34",
+"[ c #FCE43E",
+"{ c #CC9447",
+"} c #EDB74B",
+"| c #DBA84F",
+" . c #F7C749",
+".. c #FCD64A",
+"X. c #F9CA55",
+"o. c #FDD955",
+"O. c #ECC44C",
+"+. c #FDE358",
+"@. c #FDE14A",
+"#. c #FDE96E",
+"$. c #F8D569",
+"%. c #BD874A",
+"&. c #3D3D84",
+"*. c #3D3892",
+"=. c #433E84",
+"-. c #483D99",
+";. c #3E4383",
+":. c #3D478A",
+">. c #3E4993",
+",. c #3C548E",
+"<. c #2F7F81",
+"1. c #454585",
+"2. c #494484",
+"3. c #454985",
+"4. c #494C84",
+"5. c #454689",
+"6. c #49468A",
+"7. c #464B8A",
+"8. c #494C8C",
+"9. c #4C5284",
+"0. c #47518C",
+"q. c #4A538D",
+"w. c #4D598D",
+"e. c #485586",
+"r. c #52548C",
+"t. c #535B8C",
+"y. c #565987",
+"u. c #444B92",
+"i. c #4B4E92",
+"p. c #454794",
+"a. c #4C5394",
+"s. c #4D5A94",
+"d. c #4E5599",
+"f. c #4E5A99",
+"g. c #455495",
+"h. c #515594",
+"j. c #525C94",
+"k. c #51559A",
+"l. c #525C9B",
+"z. c #5A5D97",
+"x. c #524B8D",
+"c. c #58628C",
+"v. c #4E6298",
+"b. c #536295",
+"n. c #54639B",
+"m. c #5B649C",
+"M. c #5B6A9D",
+"N. c #586797",
+"B. c #586F9A",
+"V. c #686987",
+"C. c #75768A",
+"Z. c #64699A",
+"A. c #69739B",
+"S. c #787997",
+"D. c #706F88",
+"F. c #545CA2",
+"G. c #4C58A3",
+"H. c #5364A1",
+"J. c #5C65A2",
+"K. c #5C6BA3",
+"L. c #576AA6",
+"P. c #5C72A8",
+"I. c #536AA8",
+"U. c #636CA3",
+"Y. c #656BA7",
+"T. c #6B74AB",
+"R. c #6774A7",
+"E. c #737BAC",
+"W. c #767AA6",
+"Q. c #6A79B2",
+"!. c #747CB3",
+"~. c #6E6FAE",
+"^. c #615E8D",
+"/. c #827D95",
+"(. c #E07A84",
+"). c #019482",
+"_. c #039986",
+"`. c #0C8F87",
+"'. c #398A84",
+"]. c #30928B",
+"[. c #03A593",
+"{. c #0BABA7",
+"}. c #458988",
+"|. c #7E8197",
+" X c #7983AA",
+".X c #7B84B4",
+"XX c #7986B7",
+"oX c #6D85AE",
+"OX c #55B0B5",
+"+X c #7D88C1",
+"@X c #85859A",
+"#X c #8D9098",
+"$X c #8C8DAB",
+"%X c #8688A7",
+"&X c #8C91AC",
+"*X c #9595AB",
+"=X c #838CBB",
+"-X c #868BB5",
+";X c #8B93BC",
+":X c #8992B7",
+">X c #9394B3",
+",X c #959ABB",
+" f f f f g g M |.7XVXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKX KXKXKXKXKX",
+"KXKXKXKXKX KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVXMX#XC.m j f f g h f f f f f f f > > > > > > > > f j |.MXFXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKX KXKXKXKXKX",
+"KXKXKXKXKX KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVXMX|.n j j g f f f g j f g f f f > > > % > $ $ $ $ $ $ % > g M 8XVXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKX",
+"KXKXKXKXKX KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXPXjX#Xm j j j g h g h g j g f f > > % > $ $ # # # @ # O O # $ $ $ > f M 8XHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSX5XM j j j g g j g g g g f > > > $ $ # O O O O O O o + + O X O O O # : > j #XVXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBX|.M j j g j j j j g f > > $ % $ $ # @ # O # O O # # O o X + X o + X + # $ > > M 8XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXkXtXtXtXtXtXtXtXtXtXtX",
+"tXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHX*XD.j j j j j j j j f > > % % $ $ $ : : > % > > > : $ : $ $ # O O + X X o X O # % f g 5XSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXkXtXtXtXtXtXtXtXtXtXtX",
+"tXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXjX#XM m j j j j j j g > > > $ % % f f j m M C.|.@XM M M M j g f % $ $ # + O + X o + O $ > f #XHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXyXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXjX@Xm j m n j j j g f > % $ $ > j C.5XCXVXHXKXKXKXKXJXJXHXFXCX8X*XC.j > > $ # + o X O o O $ > g #XFXKXKXKXKXKXKXKXKXKXKXKXKXKXyXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXMX|.n m m j n n j j g > % @ % j #XVXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXCX5XM g % % # o O X o O + > g #XHXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCX@Xm n m v j n j j f > % % j 5XVXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVX5XM f % $ # O O X + $ % j 5XKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCX@Xm m M j m m j g f $ % g *XFXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCX*Xj > > # O O X O # % n 8XKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFX|.m M M m m m v h f > > n MXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXjXM f > # + O o O % > M CXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVX#Xm n D.M m V.n j f $ > @XCXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX#Xj > $ + O O O % g S.VXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX*XM m D.D.m V.V.v f $ f #XVXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX#Xg > # O O O $ > j *XHXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCXn m m D.C.D.m j g > > #XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX*Xj > $ # o O $ > m 8XKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVXM n M M m C.D.n f % > #XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5Xg > $ O o O % g C.BXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX@Xj M C.C.D.D.j g > % #XHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX#Xg > $ o o $ % g 5XKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX8Xj j M D.C.C.m j > % C.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX@Xf % @ o O % f M VXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVXM j M M C.D.D.j g $ j VXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVXm > $ O o O > g #XKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX#Xj n D.C.S.C.m j > g BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX8Xj > O O O % g M CXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXMXm j M D.S.S.V.j f > 5XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVX|.f # O O $ > g *XKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX@Xj m M C.|.S.n > $ M KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCXj % $ O O > f M VXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKX KXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX8Xm j M D.C.|.D.j > f CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX#Xf $ O O % f j 5XKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKX KXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXM j n M C.S.C.n f % 5XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVXj > $ O % > g C.VXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKX KXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXeXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX8Xj j n D.|.|.m j % g HXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX@X% # O @ % g n CXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXIXC.j n M D.C.C.n f % *XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCXf % O O $ > j 5XKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KX KXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCXj j m D.D.C.M j > g CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXM % O O # % g M VXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKX KXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX*Xj n M C.C.C.n f $ #XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX*X> $ O O % g M MXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKX KXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXJXKXKXKXKXKXKXKXJXCXC.j m D.C.C.M j > > CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCXf % O O % f j 5XKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXFXHXHXHXFXFXFXJXJXFXKXKXKXCXCXBXjXgXaX7XeX>X$XS.j n M C.C.C.M j > f #X8X8XjXjXmXBXAXAXVXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXm % $ O % f g #XKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXAXZXBXmXhXgXpXdXtX $ # $ > g Y FXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXtXtXtXtXtXeXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXBXmXzXfXpXiX4X3XyX,XX,XeX>X;X;X,X;XeXwX,X;XeXeX,X;X-X XE.E.W.U.z.i.5.6 6 u l i 5 1 h j j m C.S.S.M g % < p i i 5 i u 3.w.Z.R.E. X-X=X;X=X=X=XrX;X:X-X-X;X;XwXwXeXeXeX>XeXiXlXmXAXHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXMXj % # O % f j 8XKXyXdXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXSXAXhXaXiX , h z x 9.c.N.Z.T.oX X.X:X;X;X:X;XrXrXwXrXwXwX=X=X;X;X=X;X;X;XrXwXwXeXeXyXyXgXMXCXFXHXHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVXn > $ O % > j 5XKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXFXCXxXgXyXyX:X,XeXeXeXwX,X;X;X;X;X,X,XwXeX,X,X;X;X;XeX,X,X;X:X:X:X;XwXwXwXrXwX;X;X;X-X.X.X.X.X X X XW.A.A.A.A.A.M.c.N.N.Z.A. XXXXX.X;X;X:X:X:X:X:X:X;X;X;X;XrXwX;XwXwX;X:X=X-X:X;X-X-X.X-X.X.X-X-X:X,X4X4X3XsXmXAXAXSXSXSXKXKXKXKXKXKXKXKXHX|.> $ O # > j #XKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXSXBXBXaX3X3X3XyX:X:X,X,X;X:X;X,XeX,XeX,XeXeX;X;X;X;X;X-X-X-X;X-X;X:X:X:X-X-X:X:X,X,X;X,XeXeXrXwXwXrXeXrXwX;X=XE.U.Z.M.Z.Z.M.Z.Z.A.oXXX;X=X:X=X=XwX=X;XwXwX;XwXwX;X;X:X:X:X;X;X;X;X:X=X-X.X-X-X-X=X-X-X:X=XXXXX=XXX=X=XwX>X j M VXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXCXjXjXpXiXyX,X;X-X-X-XrX;XwXwX:X-X-X=X=X=X=X-X-X:X:X:X:X-X;XrX=X=X=X=X.X!.Q.T.T.R.Y.K.K.m.n.n.h.f.j.s.s.w.w.t.j.n.n.n.n.l.n.n.K.U.K.K.K.K.K.K.U.N.B.Z.U.M.M.M.M.K.K.K.Z.M.U.Z.U.Z.U.R.T.T.E.W.E..X.X.X-X-X-X=X-X=X=X.X=X!..X.X.X X X XXX.X.XoX!.E.oX X X-X:X-X.X XA.y.h , : > g M CXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXAXBXzXsXpXdXyX,X;X:X=X=XrX=X=X-X=X=X=X;XXX.X=XrXrXXX=X=XXX.XE.E.T.U.M.m.N.j.t.w.w.a.s.g.s.a.f.f.n.n.H.K.K.Y.Q.T.T.E.E..XXXXX+XXX=X=X+X+X=XrXwX+X=X+X=X=XXXXXXXXX.X X.X.XoX XE.R.T.R.R.R.T.R.Y.Y.U.U.N.Z.Z.Z.Z.Z.A.T.Y.T.W.!.!..XE. X.X-X.X X XXXXXXXXXoXQ.T.E.T.T.R.T.T.R.A.Z.A.V.c.v v D.jXdXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXSXzXxXfXdXbXwX-X=X-X=X=X.X.X=X-X-X-X-X:XXX:XXXXX.X.XoXT.T.U.n.n.j.r.q.e.q.e.s.j.n.m.M.U.R.T.E..XXXXX=XwXwXeXyXyXuXuXuXuXuXuXlXkXkXlXuXlXlXlXlXkXlXlXlXlXvXvXlXNXvXvXvXNXxXvXlXlXlXkXtXkXdXyXyXyXeXwX:X-X=X.X!.E.T.R.A.Z.U.U.U.U.Z.U.U.U.R.R.T.E.E.E. X XE.E.E.E.E.!.T.T.T.T.U.P.U.B.R.R.R.W. X%XcXdXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXIXVXVXCXCXBXBXBXCXCXVXSXHXHXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAXzXaXiXdX>X-X-X-XrXrXrX-X=X-X.X=X;X=X-XXX.X XW.A.Z.M.b.t.w.q.q.q.w.s.b.m.U.R.T.!.XXXX+XrXrXwXwXwXyXyXyXeXeXwXeXeX;XwX;XwX=XwX=XXXXXXX=XXXXX-X-XXX=X.X=X=X=X:X:X;X;XwXwXeXyXtXtXkXlXlXlXkXkXlXlXlXxXxXvXNXxXlXlXvXvXkXtXyXyXeXrX=XXX.XE.T.T.U.P.M.M.K.K.K.Z.R.R.E.E.E.T.E.T.E.T.U.K.K.R.M.P.M.M.R.T.E.-XtXtXBXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXFXSXVXVXSXVXVXVXVXSXFXHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXBXnXnXnXnXjXcXcXjXnXjXjXnXnXnXBXBXVXSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXFXZXxXyXyX,X;X-X=X=X=X=X-X-X=X.X=X=X!.!.!.E.T.U.Z.n.j.w.q.w.w.j.l.J.Y.T.E.oXoXXXXXwXwXrX;X=X=XXX.X.XXX!.Q.T.R.U.K.J.n.H.l.l.f.a.a.s.a.s.a.s.a.s.q.a.q.q.q.0.8.8.q.q.a.s.a.a.s.j.j.k.k.k.z.m.m.n.n.m.J.Y.R.E.E..XXXrXwXwXyXyXkXlXlXlXxXvXvXlXlXkXyXeX:X:X.X X!.T.U.K.Z.Z.m.M.M.Z.M.A.U.R.U.U.U.U.Y.U.T.T.R.T.T.E.tXtX,X,XpXmXCXHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXSXVXBXBXBXBXnXBXnXBXBXnXBXVXCXVXSXHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXCXnXjXcXcXcX9X9X9X9X7X9XiX7X7X8X8XcXcXcXjXBXVXSXHXHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXAXzXgX6X,X>X-X-X-X=X.X=X=X=X.X.X!.E.E.T.R.Z.j.w.e.w.w.q.s.b.U.Y.Q.!.!.XX+X+XXXXXoX!.E.T.R.P.M.N.z.j.r.w.q.q.7.7.7.3.3.3.;.3.;.;.;.;.;.3.3.;.;.;.;.;.;.3.;.1.;.;.1.;.;.;.1.;.;.3.3.3.;.3.;.;.u u ;.l u u ;.;.;.;.u u :.3.4.w.s.h.j.m.U.Q.!.!.wXwXeXuXlXvXvXvXvXxXlXkXyX,XwX=X.XE.oXE.A.Z.M.M.M.J.J.J.J.Y.Y.R.R.T.E.E.!.tXtXoXE. X.X2X9XhXBXSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXVXBXnXjXnXjXjXjXcXcXaXcXcXhXcXhXzXzXnXBXSXHXHXJXHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXCXnXcXcX8X7X9X9X9X9X9X9X9X9X9X9X9X9X9X9X7X7X7X8XjXjXBXSXFXHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXAXmXfXiXX1X9X1X1X9X1X9X9X9X9X1X9X9XbX9X6X6X6X7XcXjXBXVXFXHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXSXBXsXeX>X-X-X=X-X.X=X=X=XXX!.Q.T.M.m.h.w.e.w.h.j.n.m.Y.T.Q.!.T.T.T.R.K.n.n.j.h.q.7.7.7.8.7.5.5.5.:.:.5.5.5.5.5.5.5.5.5.:.:.5.5.5.5.5.1.1.1.1.3.1.1.1.1.1.3.;.1.1.3.2.7.1.1.1.1.1.5.1.1.1.1.1.1.1.1.1.5.5.6.6.5.5.5.5.5.5.5.5.5.;.5.5.5.5.5.3.5.1.1.1.1.;.1.1.;.;.;.1.u.i.h.z.Y.E.!.wXeXkXlXvXNXNXNXNXNXNXlXyX:X XA.A.B.M.Z.U.K.U.tXtXQ.!.!.XX!..X.X X X.X-XbXhXAXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXCXjXgXcXgXpXdXdXbXiX9XbX9XeXbXeXbXbXbXdXdXbXbXdXsXsXcXjXBXSXDXHXHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXnX8X7X9X9X9X>X>X1X1X1X1X1X>X1X1X>X1X9X9XX>X2X%X2X*X9X>X>X1XeX>X>X>X9XeXeX9XeXbXbXeXeXiXiXiX6X6XpXcXjXnXVXFXKXKXKXKXKXKXJXSXmXsXyX,X:X=X-X-X.XXXXXXX!.T.Y.m.j.r.q.q.t.b.J.K.U.Y.U.K.J.J.n.k.a.s.a.a.8.7.7.3.3.1.;.1.3.7.7.5.3.1.1.1.5.6.5.7.5.5.1.1.1.5.7.7.7.1.1.1.1.1.1.1.1.1.5.1.1.5.1.1.1.1.1.1.1.1.2.1.1.1.1.2.1.1.1.1.1.1.1.1.7.5.5.6.6.6.2.1.1.5.5.5.1.1.5.7.5.7.3.3.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.5.5.5.=.5.&.;.1.;.1.4.e.h.m.T. XrXtXvXNXAXDXGXDXAXNXfX:XtXtXR.A.U.Y.K.U.T.E.E.E.E.XX.XXXE.W.-XeXfXZXJXKXKXKXGXNXvXlXlXxXxXxXxXmXkXuXeXeXeXeX,XeXyXyXeXtXbXeXbXeXeXdXbXX>X1X9X%XS.S.$X>X>X>X1X>XeX>X,X,X,X,X,X,XX>X>X>X1XiX>X%XS.$X>X2X>X>XeX1X1X1X,X,X,X,X.P.Q.G.>.*.>.>.>.>.>.>.>.>.>.,.,.,.G.G.P.oX+XXXrXeXeXkXbX%X2X;X>X/.-XbXdXsXsXhXnXBXCXVXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCX7X6XX>X>X>X1XyX>XW.S.$X>X>X>X>X>XeX>X>X,X,X,X,X,X,X,X3XX>XyX,X-X-X-X.X.X=X.XE.U.m.j.s.j.j.a.j.l.z.m.n.n.n.n.s.s.s.q.8.8.7.5.1.1.3.1.7.5.5.1.1.1.5.3.5.1.3.5.1.5.1.5.1.5.1.5.5.5.5.5.1.6.7.1.5.1.1.5.1.5.5.1.5.1.7.1.5.1.1.5.1.5.5.3.5.1.5.1.5.1.1.5.1.5.1.5.1.5.5.1.5.1.5.1.5.1.1.5.1.5.1.5.1.5.5.1.5.1.5.1.7.1.5.1.5.1.5.3.5.1.5.1.5.1.5.1.5.1.1.5.1.5.5.1.1.5.5.1.7.1.5.1.5.1.1.5.1.5.1.5.1.1.5.1.;.;.1.u u 4.r.Z.tXtXuXNXDXJXPXJXGXNXsX,X.XQ.Y.J.Z.Z.Z.R.T.E.E.!.T.f.:.g.f.>.>.>.G.>.g.,.g.g.G.g.g.G.G.g.,.>.>.>.>.G.I.Q.XXwXeX,XeXdXiX$X%X>XiXbXdXsXcXcXnXVXVXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSX7X*X>X*X*X2X*X>X>X>X>XyX>X%XS.-X1X>XeX>X>XeXeX1X,X,X,X,X,X,X,X3XX-X-X%XW.W.-X-X-X=XXXE.E.U.m.b.a.w.a.a.j.j.j.l.m.m.l.k.a.g.0.0.5.7.;.1.1.1.1.1.1.1.5.5.1.1.5.1.5.1.5.1.5.5.1.5.3.5.1.5.1.5.1.1.5.5.5.7.1.5.1.5.1.5.1.5.1.1.5.1.5.1.5.1.5.5.1.5.1.1.5.1.5.1.5.1.5.5.1.5.1.5.1.5.1.1.5.1.5.1.5.1.5.5.3.5.1.5.3.5.1.1.5.1.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.1.5.1.7.1.5.5.1.5.1.5.1.7.1.1.5.1.5.1.5.1.5.5.1.7.1.5.1.1.5.1.5.7.3.1.1.;.u u &.tXtXa.m.~.=XkXAXGXPXJXJXFXNXyX:XoXR.Z.U.Z.Z.T.!.Q.n.g.5.&.&.>.>.>.>.>.>.>.>.>.>.g.G.g.G.G.I.I.I.G.,.:.:.>.G.P.Q..XeXtX;X-X>X7XiXbXsXsXcXhXmXBXSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVX7X*X1X>X*X>X2X>X>X>X>X>XyX>X%XS.-XeX>X>XeXeX1X1XeX,X,X,X,X,X,XeX1X,X3XyX,X:X-X-X XW.W.E.-X=X=X.X!.T.U.m.h.s.w.a.a.f.k.F.J.l.k.j.h.a.q.8.q.7.5.;.;.;.1.1.1.1.1.1.1.1.5.7.1.5.5.1.1.5.1.5.3.1.5.1.5.1.5.1.5.1.1.7.5.7.2.7.5.7.5.1.5.1.5.1.5.7.1.5.1.7.1.5.1.1.5.3.5.5.1.5.3.5.1.5.1.1.5.1.5.1.7.1.5.5.1.5.1.5.1.7.1.1.5.1.5.1.5.1.5.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.1.1.7.1.5.1.5.1.5.5.1.5.1.5.1.7.1.1.5.1.5.1.5.5.1.5.1.1.1.1.7.7.8.1.1.tXtX&.u 1.3.q.U..XyXxXDXPXPXPXGXAXlX;XW.A.N.m.K.P.P.K.F.i.p.>.*.>.>.>.>.>.:.>.>.>.>.>.>.G.G.I.Q.oXXXoXT.f.*.-.G.F.I.Q.!.;XuXdXiXbXbXdXsXxXhXjXBXSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVX5X*X>X>X2X>X>X>X>X>X>X>X1XbXeX/.W.2X>X>X>X>X>XeX>XeX,X,XeX,XeXeX,X4X,X,X;X-X!.W.T.E.E..XXX.X!.~.Y.z.w.0.0.0.f.k.k.l.l.k.k.k.k.a.q.7.7.1.3.7.1.1.1.1.7.7.7.2.7.1.1.1.1.5.7.1.5.1.1.1.1.5.1.5.1.5.5.1.5.1.5.1.5.1.5.5.1.6.7.1.5.1.5.1.5.1.5.1.5.1.1.5.1.5.1.5.1.5.5.1.3.5.1.5.1.5.1.5.1.5.1.1.5.1.5.1.1.5.1.7.5.1.5.1.5.1.5.3.5.1.5.1.1.5.1.5.1.7.1.5.1.5.1.5.1.5.1.1.1.5.1.5.1.5.1.5.5.1.5.1.5.1.5.1.1.5.1.7.7.1.5.1.7.1.5.1.1.5.1.5.1.6.4.1.1.1.5.5.7.1.tXtX1.1.l ;.5.&.;.3.t.W.-XkXNXGXJXPXPXFXmXyX XA.B.K.M.U.Y.J.G.p.5.:.&.:.p.u.>.>.>.>.>.>.>.>.g.G.G.L.!.rXuXeX!.Y.>.:.g.Y.+XrXrXdXdXdXdXdXsXlXjXnXZXSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHX7X2X1X>X>X>X>X>X>X-X2X;X>X>X6XeX/.W.2X>X>XeXeXeX>XeX>X,X,XeX,X,X,X,X;X:X.XE.E.E.E.T.T.!.Q.R.J.k.h.8.8.0.w.w.s.j.j.j.f.h.a.0.q.7.7.7.1.1.1.5.5.1.1.5.1.5.5.1.1.1.1.1.1.1.1.5.1.1.5.5.1.5.3.5.1.5.3.1.5.1.7.1.1.1.5.5.5.5.3.5.1.7.1.1.5.1.5.1.5.1.5.5.1.5.1.5.1.5.1.1.5.5.1.5.1.5.1.5.1.7.1.5.3.1.5.1.5.5.1.5.1.1.5.1.5.1.5.1.5.1.5.1.5.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.7.5.1.7.1.5.1.5.1.1.5.1.5.1.5.1.7.5.1.5.1.1.5.1.5.1.5.1.5.7.1.5.1.5.1.1.1.1.1.5.5.1.3.tXtX1.7.1.1.5.5.5.5.&.1.5.k.Y.!.wXhXSXJXLXJXFXmX3X&XA.U.M.U.L.H.F.a.p.>.*.&.>.>.=.>.>.>.>.>.>.>.>.>.G.p.f.U.=XeXkXrXY.u.g.L.!.rXrXtXdXdXpXsXcXcXnXBXSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHX8X*X1X2X%X2X&X&X&X>X&X:X-X>X>XyXeX/./.2XrX>X>XrX>XeXeX>X;X,XeXeX;X:X-X XE.E.E.T.Q.!.T.U.J.l.f.q.0.h.a.a.j.j.j.j.w.w.w.0.0.7.3.5.5.5.;.5.5.5.5.5.5.5.5.5.5.5.1.1.2.1.6.2.2.5.7.5.5.1.1.1.1.5.1.5.1.5.1.1.5.1.1.1.5.5.5.5.5.5.5.1.6.1.1.1.5.5.1.1.5.5.1.5.1.5.1.1.1.3.5.3.1.1.3.5.1.5.1.1.1.5.1.1.1.1.5.1.5.5.5.1.5.1.5.1.5.1.5.1.5.1.1.1.1.5.1.1.5.1.1.5.1.1.1.5.1.5.1.1.1.1.1.1.5.5.5.1.5.1.5.1.1.1.5.1.1.1.1.5.5.1.5.1.5.1.5.1.1.5.1.5.5.1.2.5.5.5.=.=.5.5.tXtX5.5.5.5.l 3.1.1.5.p.&.l e 1.7.h.Y.rXgXBXJXPXJXGXAXuXoXT.R.U.R.K.Y.F.i.5.:.*.5.*.*.:.>.:.>.>.>.>.>.>.>.>.>.f.V.2XkXeXQ.f.a.h.U.=XeXkXsXpXcXcXzXnXCXHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX8X*X*X*X2X>X>X:X&X:X:X>X>X;X>X>X6XeX/./.-X/./.1X,X2X1XeX;X;X,X;X:X XE.E.T.E.Q.!.T.Y.K.f.a.s.q.q.s.a.k.j.j.j.h.h.a.8.7.7.5.3.5.1.1.1.5.5.1.1.1.5.1.5.5.1.5.1.1.5.1.5.1.1.5.7.1.1.1.1.5.5.1.5.1.5.3.5.1.5.7.1.1.3.7.1.5.5.5.4.2.4.1.6.8.5.5.8.7.5.5.7.1.5.1.5.1.5.7.5.1.;.;.7.1.5.5.1.1.7.1.8.3.1.1.1.3.3.l l 1.6.5.p.5.5.8.1.5.7.7.7.7.5.3.;.1.1.1.7.7.6.7.1.1.1.1.3.1.1.l 1.3.1.1.1.5.5.7.3.1.5.5.l 4.1.1.1.4.z 1.1.5.1.5.1.7.1.5.5.1.5.1.1.1.5.5.5.5.5.5.1.1.tXtX1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3.a.K.rXlXAXGXLXPXFXmX3X.XY.~.Z.Z.M.m.g.u.>.>.>.*.>.>.>.>.>.g.>.>.>.>.u.u.>.g.g.~.uXeXE.h.i.i.~.rXuXkXcXaXcXzXnXVXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCX1X*X2X2X2X2X&X>X-X>X:X>X>X>X>X,XyXX>X,X,X,X:X,X=X XoXE.E.E.E.T.R.J.l.j.a.q.s.a.f.j.j.f.a.h.a.a.q.7.7.7.7.7.5.5.1.1.5.1.5.1.5.1.5.1.5.1.5.1.5.5.1.5.1.5.1.5.1.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.1.2.7.5.5.i.5.1.l e 1.5.5.5.5.1.5.5.;.1.7.1.5.5.1.5.1.5.1.2.1.7.1.1.5.7.1.8.7.1.1.p.6.6.5.6.p.=.6.=.&.6.5.1.1.1.1.1.=.1.5.p.5.1.1.7.1.6.5.1.1.1.1.7.2.1.1.5.5.=.=.5.p.5.5.5.5.1.5.7.5.5.6.6.p.p.5.6.1.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.1.tXtX1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.5.&.=.3.Z.-XsXZXGXJXLXGXxX,XoXY.K.U.Y.J.j.u.p.>.-.>.>.>.>.*.*.>.>.p.>.p.g.p.>.:.:.J.+XrX!.F.:.w.E.wXdXlXxXfXjXBXVXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJX5X$X2X2X$X2X&X&X-X&X:X>X:X:X:X;X>XyX.>.>.>.>.>.>.>.>.:.u.p.>.>.g.f.!.+XQ.f.w.b.rXkXlXkXhXnXCXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX8X$X2X2X2X2X$X:X2X-X:X2X:X>X-X>X>X,X.>.:.>.>.>.>.p.>.>.:.u.>.>.>.>.-.>.:.q.Y.!.K.g.8.!.rXE.eXzXZXSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVX#X2X2X2X2X2X>X>X-X&X:X:X>X-X>X:X>X:X,XeXeXdXdXeX;X-X.XW.T.E.E.E.E.T.m.h.q.0.0.w.a.a.k.j.a.h.h.q.7.7.3.3.1.1.1.1.1.5.3.5.1.1.1.1.1.1.1.5.1.5.1.5.1.7.1.5.1.5.1.1.5.1.5.1.5.1.5.5.1.5.3.5.1.5.3.5.1.5.3.5.1.1.1.1.5.5.1.A.lX Xl y.eXz.=.5.5.1.1.1.3..X-Xl 5.5.1.1.5.1.r.eXeX9.3 rX!.l 5.1.3.l r.rXuX3XpXeXeXY.l e 5.5.w 9.-XeXuXkX!.7.l 1.1.1.=.r.eXeXh.5 -X-X=.1.1.1.1.1.Z.4XeXeXeXS.c 1.1.1.&.5.6 N.>XdXtX;XV.q z 6.5.5.1.5.1.5.1.5.1.5.1.5.1.7.1.5.1.7.1.5.1.1.1.tXtX1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.l l z l l 1.1.5.:.&.;.1.a.R.:XjXDXLXLXJXBX.>.p.u.:.*.>.>.>.>.>.>.>.>.g.G.I.d.d.a.k.z.W.xXZXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX6X@X2X2X$X$X-X2X>X:X2X:X2X:X:X&X:X:X:X,XeX;X,X;X-X XE.T.R.E.E.E.Y.K.j.0.4.0.s.a.j.j.a.a.a.7.8.7.7.5.1.5.7.1.1.1.1.1.1.7.1.1.5.5.5.1.5.1.1.5.1.5.1.5.1.5.1.5.1.5.5.1.5.1.7.1.5.1.3.5.1.5.1.5.1.5.3.5.1.5.5.1.5.1.5.p.5.6 -XAXdXy.y.vXz.w 6.5.1.1.l z eXtXu 1.1.5.5.1.1.z.zXZXW.1 bXrXl 1.1.4.l z U.U.,XlXS.Z.y.l 8.p.5.l XsX!.Z.Y.z.4.3.4.1.8.=.t.zXxX!.l 6X.p.p.>.p.p.>.>.>.>.>.>.:.:.>.G.f.f.G.G.u.:.J.dXSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCX#X$X2X2X$X$X$X-X-X:X-X:X2X:X>X:X>X:X:X:X;X:X%X|.A.R.R.E.E.E.M.b.w.0.4.8.s.k.l.j.j.a.a.7.7.5.1.1.5.1.5.1.1.1.1.1.1.1.1.1.1.1.5.1.1.5.7.5.5.1.5.5.5.1.5.1.5.1.5.1.1.7.1.5.1.5.1.5.5.1.5.1.5.3.5.1.5.1.5.1.1.5.1.;.7.&.5.l $X4XiXW.y.xXV.l 7.6.6.1.1.k rXyXz 1.5.1.1.5.1.z.7X6X>Xv bX-Xc 1.8.4.1.l 4.3 W.dXb 5 1.6.p.p.=.k >XeXq 6 l 1.1.1.1.1.7.=.^.7X*XkX9.*X1X&.1.1.1.1.1.T.7Xr.7 k sX!.=.z 1.5.&.6.lXS.7 5 !.kX4.&.p.6.1.1.5.5.5.1.7.1.5.1.5.1.5.1.5.5.5.1.5.1.1.1.tXtX1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.:.5.5.5.5.&.&.1.1.l u 1.1.l =.=.=.6.z./.kXAXJXLXJXvX=XW.U.U.U.m.l.a.>.:.*.-.p.>.:.:.>.>.>.>.:.>.>.G.,.>.,.G.G.g.G./.zXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX*X2X2X$X%X%X%X$X2X2X-X-X&X&X2X-X-X:X,X:X-X.XE.T.T.E.!.E.T.M.j.q.3.0.g.s.a.h.j.a.q.8.7.5.1.5.:.5.5.5.5.5.5.5.1.7.2.7.1.7.1.3.5.1.1.1.1.1.5.3.1.1.3.1.5.1.1.1.7.3.1.1.3.5.1.5.1.5.1.1.5.3.5.1.5.1.5.1.5.3.5.5.1.5.3.1.1.&.k -XX%X*X1X1.1.1.1.1.1.W.pXh.=.x dXS.u 1.5.7.2.l kXS.-.=.W.kX4.1.5.1.1.1.1.1.1.1.5.5.1.5.1.7.1.1.1.1.1.5.1.1.1.1.tXtX1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.&.1.1.3.1.1.;.=.=.1.&.1.2.i.z.-XxXJXLXJXBX5XW.Z.A.U.m.l.a.u.:.:.:.u.>.:.>.>.>.u.7.u.u.g.>.>.g.G.g.G.K.eXAXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCX$X%X$X2X:X&X-X$X-X:X-X&X&X-X-X&X-X:X-X X XA.R.T.Q.!.U.m.h.0.3.e.0.f.s.j.a.a.a.8.7.7.7.3.1.7.7.1.1.1.1.1.1.5.5.1.1.1.1.5.1.1.1.1.1.7.1.1.3.1.1.1.5.3.1.1.3.1.1.5.1.5.1.1.5.1.5.1.5.5.1.5.1.5.1.5.3.5.1.5.1.1.5.1.1.1.1.1.u ;XbXx ;X3XaXy.2.5.5.5.1.2.k ,XeXc 1.5.7.6.6.1.t.6Xz.Y..>.>.g.>.>.>.:.>.u.u.>.>.>.g.p.g.g.,.f..XmXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX*X@X%X$X$X$X$X$X-X$X-X2X:X-X$X-X;X-X XA.Z.R.E.E.T.U.l.q.0.7.0.a.l.l.q.a.8.8.3.1.1.1.2.2.=.1.2.1.1.1.1.1.1.1.1.1.1.1.1.6.1.1.1.1.1.1.1.1.1.1.1.1.5.1.1.5.5.1.1.1.1.1.5.1.5.1.7.1.7.1.3.5.1.5.3.5.1.5.5.1.5.1.5.1.5.1.5.1.1.5 ;XbXe z.hXmXy.1.=.5.5.5.1.k eXbXe 5.5.6.7.6.1.z.sXZ.5 >XZX-Xl 5.5.1.5.1.1.&.%XkX2.2.1.1.3.p.5.l -XdXc 7 3 k l 1.5.5.5.7 z.xX^.w eXZX$X=.1.2.1.1.2.W.gXx 8 y.kXW.&.5.1.6.1.r.kX/.=.q %XdX2.=.6.5.1.1.1.1.1.1.1.5.1.5.1.5.5.1.1.5.5.1.1.1.5.1.tXtX1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.&.l 1.1.2.2.2.2.2.2.2.2.2.2.2.=.=.r 5.=.6 e 2.h.~.dXSXPXJXNXeXW.Z.Y.J.J.F.d.>.>.>.>.p.p.>.>.*.>.>.>.5.u.p.p.g.,.>.K.yXDXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBX#X$X2X$X%X%X%X-X-X-X$X-X-X-X;X-XW.W.A.T.E..XE.K.s.3.7.7.a.k.l.k.f.a.4.3.1.1.e e e 2.2.=.e e =.e 1.1.1.1.1.1.&.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.3.1.1.1.1.3.5.1.7.3.1.1.5.1.5.1.5.5.1.5.1.5.1.5.1.1.7.1.5.1.5.1.7.7.1.1.1.rXdXx.6 &XzXZ.=.p.u.5.8.1.l eXdXx.1.1.5.2.7.1.z.xXZ.3 Z.xX;X1.1.5.1.5.1.1.1.-XdXx.1.1.1.3.5.5.l W.lXeX/.;XW.4.=.5.1.i.6 z.vXZ.5 Z.vX;X=.1.7.1.6.1.T.jX:X-X;XkXZ.&.7.&.5.1.l =XkX!.-XdX-X6.5.1.1.1.1.5.1.1.3.5.1.5.3.5.1.1.1.1.1.2.=.5.=.1.1.tXtX1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.&.6 l &.1.1.1.=.=.2.=.2.=.=.e e l l e 5 e e 1.1.1.6 7 =.4.^.2XzXDXDXBX.>.>.>.>.>.>.>.u.>.>.>.>.>.>.g.>.>.H.rXNXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5X%X$X2X2X%X-X-X-X$X-X$X-X-X-X.XR.Z.A.E..XT.U.s.3.3.7.s.a.h.k.j.a.7.5.3.3.1.1.2.2.2.1.=.e =.6 6 6 2.1.e =.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.3.1.1.1.1.1.1.5.5.1.5.1.1.5.3.5.1.5.3.5.5.1.5.1.7.1.5.1.1.5.=.&.Y.W.i.=.y.W.z.=.5.5.5.1.1.2.Y.~.l 5.1.5.5.7.5.h.E.z.w k E.Y.1.1.1.5.1.1.1.1.Z.E.l 2.1.5.1.7.8.6 e Y.-XrXrX~.7.6.6.5.2.=.x.E.y.2.1.E.A.&.1.1.1.1.1.h.%X-XrXE.Z.e 5.1.5.5.8.e r.W.;X;XW.9.&.5.6.1.5.1.7.1.3.5.1.5.1.5.1.5.5.1.1.5.1.5.1.1.1.1.tXtX1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.6 1.e e e w 6 e e l 4.4.8.r.r.z.c.c.j.z.m.Y.Y.Y.~.>XmXGXPXLXGXfX%XA.Z.Z.R.l.a.7.:.:.>.p.u.p.u.:.>.u.>.>.>.>.G.>.g.Q.xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHX$X%X$X-X-X2X-X%X%X%X-X-X-X XR.Z.U.!.E.R.m.d.8.5.7.s.s.s.f.s.s.h.l.m.M.Z.J.J.Z.U.U.U.J.U.m.z.z.h.r.1.1.u 6 6 6 u 2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.5.1.7.1.5.1.5.1.1.1.7.1.1.5.1.5.5.1.5.1.5.1.5.1.1.5.1.5.1.5.1.3.1.5.5.&.2.l &.6.5 5 2.6.=.1.5.;.7.4.2.l =.6.1.5.1.5.7.1.l 1.1.6 2.6 1.1.5.7.5.5.1.5.e 2.5 2.1.5.;.&.1.8.1.7 6 5 5 e =.5.5.6.2.1.5.4 k 2.5.5 l 1.1.1.1.1.1.1.5 7 w w u =.5.3.5.=.5.6.7 w e c w e p.5.4.1.1.1.1.1.1.1.5.3.5.1.5.3.5.5.=.1.1.5.=.1.1.1.tXtX1.1.1.1.1.1.1.1.1.1.1.1.;.1.1.&.l 1.1.1.1.1.6 &.6 6 6 u 2.8.h.z.Z.U.U.U.U.R.E.T.T.T.T.T.!.W.!.rXrX=XeXbXlXZXAXDXZXlX=XT.U.T.Y.l.u.:.>.>.>.>.>.>.:.>.>.>.>.>.>.g.g.>.K.kXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBX/.%X$X-X%X-X-X%X%X-X-X XA.Z.U.E.E.R.j.4.;.5.u.a.a.j.k.l.m.m.m.M.M.U.U.R.R.U.U.Y.R.Y.R.R.R.T.R.R.R.Y.~.Y.Z.h.2.l l =.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.7.1.1.7.1.1.1.3.5.5.1.5.1.5.1.5.1.5.3.5.1.5.7.1.5.1.5.1.1.7.;.6.p.5.=.e =.=.e &.*.=.1.6 p.i.5.8.=.=.1.=.5.1.1.6.1.&.6 1.3.5.5.5.5.5.1.=.1.5.=.&.=.6 &.1.=.&.&.:.1.7.5.=.1.=.e 1.=.=.=.&.l 5.&.u 6 p.5.1.l 1.=.&.1.1.1.&.*.;.e 6 &.5.=.&.1.5.&.5.=.=.=.&.e =.=.=.2.1.1.3.1.1.1.3.5.1.1.5.1.5.1.1.1.1.5.1.=.6.=.2.tXtX1.1.1.1.1.1.1.1.1.1.1.1.=.1.1.1.1.1.=.6 6 6 6 1.1.w.j.M.R.E.T.Y.R.R.U.K.M.M.M.m.m.m.m.m.m.m.z.c.c.z.z.z.^.Y.Y.W.-X=X=XE.Z.M.U.R.U.l.i.:.*.>.*.:.*.u.u.*.p.>.:.>.>.>.d.z.eXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX7X@X@X%X-X%X%X%X-X=X-XA.Z.Z.!.!.Y.z.3.1.1.7.e.h.z.n.m.U.Z.M.Z.M.M.M.M.m.J.K.K.K.U.J.U.U.Y.K.J.Y.Y.Y.Y.R.R.Y.T.~.R.m.t.4.6 6 2.1.5.1.2.1.1.1.=.5.1.5.1.1.1.1.1.1.1.1.1.1.5.1.5.1.5.3.5.1.5.3.5.1.5.1.5.1.1.5.1.5.1.1.5.z p.=.4.S.$X>X>X>X$X>X;X;XX>X;X,X&X&X>X:X>Xt.&.x. X&X&X2X1X:X>X1X%Xr.2. X6XA.5.5.7.;.&.A.1X%X4.-X>X>X1X>X2X-X>X2XW.2.h.;X*X2X,X>X2X$X>X,XW.e 1.5.1.5.5.5.5.1.5.5.3.5.1.5.1.1.1.1.1.1.1.1.5.tXtX1.1.1.1.1.1.1.1.1.1.6 =.e 1.l =.6 1.u 6 u 4.j.J.T.Q.T.R.U.M.Z.Z.M.M.M.M.U.U.Y.R.T.T.T.~.~.Y.Y.R.U.Z.U.U.Z.m.F.z.n.m.n.m.Z.H.K.K.K.Y.U.z.u.:.:.>.p.p.p.-.*.p.u.>.>.>.f.G.f.yXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXkXtXtXtXtXtXtXtXtXtXtX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX$X%X$X%X X%X-X;X XZ.Z.U.T.!.Y.z.r.7.8.h.z.m.M.M.M.Z.J.Z.M.U.Z.R.T.T.T.T.E.oX!.E.E.E.T.T.E.T.T.Y.U.U.Z.M.Z.U.R.R.U.U.T.E.Z.z.1.7 6 l =.1.=.5.=.1.1.1.=.=.1.1.1.1.1.1.5.1.3.1.1.5.1.5.1.5.1.5.1.5.1.5.3.5.5.1.5.1.5.1.1.l 6.=.A.jXMXvXzXBXzXBXBXzXZX.p.-.p.p.>.>.>.g.g.,.>.T.tXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXkXtXtXtXtXtXtXtXtXtXtX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSX@X@X%X%X$X%XW.A.Z.A.T.E.Y.z.r.r.h.z.J.U.Y.U.U.Y.U.U.Y.Y.T.!.oXXXXX+XwXrXyXyXyXyXyXyXtX,XwX,X;X:X%X XE.~.R.U.U.U.U.R.U.M.R.T.Y.m.8.2.l 6 6 &.1.1.1.1.1.1.1.1.1.1.6.5.4.1.1.1.5.3.5.1.5.3.5.1.5.3.5.1.5.1.1.5.1.5.1.7.1.4.5.=..XBX7XW.A.W.V.A.A.A.A.Z.6.p.=.y.X8.1.l >XjXMX,Xr.6 1.5.&.W.gXzX.>.>.>.>.:.>.p.A.SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCX X%X%X%X-XW.V.Z.R.W.U.n.j.z.j.l.m.U.Y.J.m.m.m.J.K.R.T.T.T.T.T.T.E.E.Q.E. X.X.XXX;XwXwXyXtXtXkXlXNXvXkXuXuXwX.XE.A.R.P.B.U.Y.Y.R.Y.Z.j.q.1.;.6 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.5.1.5.3.5.p.W.BX6X9.6 =.=.=.e 2.l l 2.5.l A.BXiXS.hXmXA.l x >XzXjXzXE.l 1.;.h.aXMX8X6Xy.>XjX,Xx c x.6.6.=.e =.1.%XCX5Xu 7 &.7 k XNXeXr.*XBX-X=.5.1.=.=./.jX.5.>.p.:.p.a.;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX8X X-X%XS.Z.A.T.!.E.R.N.j.l.z.j.j.j.l.l.m.J.K.K.K.Y.U.U.K.U.U.K.K.J.m.J.H.n.n.n.n.J.K.K.U.U.T.oXXXrXwXlXlXNXNXmXlXdXwXXXoXZ.N.N.U.U.U.R.U.m.w.;.u 6 6 &.1.1.1.1.1.1.1.1.1.1.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.7.1.5.1.1.5.5.l 5.p.W.CXaXh.e h.rXeX,X>X1X-X7.6 9.lXmXS.k &XBXpXx l -XzXcXzXsXy.5 1.rXmXjXMXdX9.>XBXxX.:.m.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5X%XS.Z.Z.W.!.!.E.R.m.b.f.a.7.0.s.j.l.n.J.J.K.K.K.J.H.n.j.l.l.f.k.f.s.a.f.G.F.G.F.F.F.F.H.F.l.F.H.I.L.U.T.oX;XtXlXNXNXNXlXtX:XW.Z.Z.Z.Z.R.T.U.m.a.1.1.6 1.1.1.1.1.1.1.1.1.1.1.1.1.1.5.1.5.1.7.1.5.1.5.1.5.1.5.1.5.5.1.5.1.5.1.W.CXiXh.5 V.xXZXzXzXCXsXr.5 -XZXiXr.6 Z.fXzX%X3 2XzXeX1XZX%X3 y.xXfX@XjXdXr.1XjXjXjXxXxXdXy.k 5.5.2.&XCX*X7.=.5.5.5.h.9.7.r.6XCX%X=.5.7.=.&.%XjXXCX X&.&.l =.7 W.MX4Xy.eXMXeXx 9.r.4.4.>XBX-X^.sXmXD.8.9.4.5.&.=.&.1.5.1.5.1.5.1.5.1.7.5.1.5.5.1.1.1.1.1.1.1.1.1.1.tXtX1.=.1.1.1.6 1.1.7.8.8.3.5.7.a.l.R.Q.XX+XwXrX=XE.U.z.h.q.5.;.1.:.1.1.1.1.1.1.l 1.7.1.1.1.1.1.1.2.3.4.1.1.1.1.;.7.7.5.;.;.u ;.1.r.Z.XmX7XzXhXh.v mXdX4.1XMXeXx.c 4.4.r.x.y.e 1.;XCX5Xy.9.y.x.y.-XZX3Xy.eXzX-Xy.9.x.r.y.@XMXiXy.Xc.z.dXgXhXvXzXjXjXjXmX>Xc 1.5.5.5.1.5.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.e tXtX6 6 ;.1.x.8.7.1.:.a.J.!.XX+X!.K.a.;.;.;.u ;.3.5.;.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3.2.7.1.1.1.5.1.1.2.5.7.1.7.5.7.7.7.7.5.7.7.7.7.7.6.1.l y..XxXGXGXmX%XZ.Z.Y.Y.!..X/.sXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCX$X-X;X;XXXU.a.0.7.q.k.l.l.k.f.a.a.a.7.7.q.7.u.q.7.q.u.q.7.a.0.a.7.a.q.q.a.a.q.a.a.a.d.a.d.s.d.d.d.f.d.f.l.f.l.l.l.f.f.l.l.H.F.F.F.F.H.H.H.H.M.R.yXmXGXJXmX XZ.L.Z.A.E.Z.1.5 1.4.1.&.1.1.1.1.1.5.1.1.7.1.1.6.3.1.5.1.5.1.5.1.7.6.6.5.1.4.z.y.Z.t.y.t.y.y.9.z z.^.y.y.y.z.8.=.l l r.z.r.^.y.=.&.x y.y.e *.z y.t.e r.^.t.y.z.t.t.y.y.t.k.5.e v c.t.4.y.y.t.z.r.1.7 1.t.V.y.y.z.h.r.y.b 2.6 z.y.t.r.y.t.y.y.y.c 6 8.z.v y.r.y.c.y.b c.h.;.1.5.1.1.5.1.7.1.1.1.1.;.1.1.1.1.1.1.e 1.1.1.=.tXtX1.1.8.8.1.3.3.q.l.R.!.!.T.m.7.;.;.3.1.1.1.3.7.3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.5.1.5.1.1.7.7.5.1.1.6.7.2.7.6.7.7.7.7.7.7.7.8.i.i.5.;.w.!.mXGXDXdXW.U.F.J.!.=X%X9XFXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXjX%XwXrXrX!.n.q.:.a.j.l.l.k.j.a.0.7.7.7.0.q.u.7.q.q.0.7.q.7.q.q.u.a.q.a.q.q.a.q.a.a.a.f.d.d.a.f.f.d.d.f.f.f.k.k.l.l.f.F.l.f.f.F.F.F.F.F.F.F.G.I.L.J.J.!.eXZXJXDXuXT.M.M.U.T.T.w.5 e 1.l 1.1.1.1.1.1.5.1.1.1.1.1.6.1.5.1.5.1.5.1.5.5.5.6.5.1.3.l 5.p.5.p.5.p.5.5.p.=.5.7.&.p.5.2.1.1.1.5.1.6 6 8.p.1.w l 6.p.1.l 2.1.1.l 5.5.&.5.p.p.5.2.5.p.5.i k 1.5.5.=.5.5.*.p.p.p.=.5.&.&.5.5.1.i k 7.5.8.l p.5.p.p.&.5.p.1.5.5.6 5 l 1.&.1.1.&.1.=.p.5.5.5.5.1.5.5.1.1.1.1.;.1.;.1.1.1.1.1.&.1.1.e tXtX1.7.8.7.;.3.s.Y.~.~.U.z.x.3.1.1.1.1.1.1.;.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.5.5.1.5.5.5.1.7.6.1.1.5.1.5.7.5.1.1.7.7.6.7.6.7.5.7.7.7.7.8.7.5.p.G.i.7.3.t..XNXGXNX:XA.K.J.T.-X-X1XSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgX%X,XrXrXR.w.7.7.s.k.l.h.a.i.a.8.a.8.7.7.7.a.8.a.u.i.a.i.u.0.q.u.q.7.u.u.q.a.7.a.q.a.a.g.a.f.f.a.a.f.d.f.d.f.f.f.l.k.f.l.f.f.f.f.F.F.F.F.F.F.f.G.F.L.L.L.Y.~.yXGXLXAXeX~.J.M.T.!.Z.3.6 2.1.1.1.1.1.1.2.1.7.2.2.7.1.1.1.7.1.5.1.5.1.1.=.1.1.=.5.5.1.1.1.1.1.1.1.1.1.5.3.1.5.7.5.6.1.5.1.5.7.5.1.1.1.8.5.1.5.p.8.4.1.2.5.6.1.5.3.3.1.1.1.6.5.6.7.1.1.7.1.1.5.8.7.1.5.8.5.5.7.5.5.7.1.1.3.7.5.=.8.5.1.1.1.&.1.7.1.5.5.5.6.7.5.7.8.1.1.1.7.1.1.5.1.5.1.5.1.5.;.1.1.1.1.1.1.1.1.1.&.1.l 1.1.6 tXtX7.5.1.;.0.M.T.Y.Z.h.8.8.5.1.7.7.1.=.1.1.1.1.1.1.1.1.1.1.1.1.1.1.6.2.1.2.1.6.6.5.1.1.1.5.1.6.1.1.5.1.5.1.1.6.7.6.7.6.6.7.7.5.7.7.5.5.8.7.q.7.5.u.p.i.q.7.5.j.wXZXDXlX-XU.z.Z..X-XwXSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX8X$XyXwX.Xm.e.3.s.k.j.a.w.q.0.7.8.8.8.8.7.7.7.7.7.8.8.a.a.0.7.0.q.q.u.0.a.a.g.a.a.a.a.a.d.a.a.f.d.f.d.a.f.d.d.f.f.f.a.d.f.f.f.F.F.f.l.l.f.f.F.d.F.l.f.l.f.g.f.I.P.XXMXPXLXxX!.K.M.T.!.T.x.e =.1.1.1.1.1.1.1.1.1.1.2.7.1.5.1.5.1.5.1.5.7.1.5.6.1.1.6.7.3.1.1.1.1.1.1.1.7.;.1.4.1.3.5.7.5.1.1.1.3.1.7.7.5.5.=.p.5.8.6.3.1.5.5.5.1.4.7.3.1.1.1.1.1.7.5.8.5.u 1.1.1.7.5.5.1.1.1.5.1.3.z l 7.5.3.7.7.5.5.;.3.1.3.1.7.1.5.5.5.5.5.5.7.3.1.1.1.5.3.3.1.5.1.5.1.5.1.1.1.1.;.1.1.1.1.;.1.=.1.1.&.1.1.tXtX1.1.7.s.M.R.K.j.8.4.l 1.1.1.2.2.1.6.2.5.5.5.1.1.1.1.1.1.1.1.5.6.8.p.6.5.5.5.*.5.8.8.5.5.7.6.5.1.1.5.1.1.5.5.2.5.6.7.6.6.7.5.5.7.7.7.7.8.3.4.7.7.u.a.u.7.7.u.i.U.uXDXAX4XT.Z.J.!.-X,XZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXjX%XeX;X.Xh.3.w.a.j.j.a.8.q.q.q.8.8.8.8.8.i.8.i.7.a.8.8.7.8.u.q.a.u.a.a.a.q.q.q.q.q.a.a.a.g.a.a.a.a.a.a.f.a.f.d.f.k.f.f.f.f.l.l.l.l.n.H.H.l.l.H.H.F.l.l.l.n.n.n.H.I.H.R.yXFXLXSX;XA.n.T.!.W.y.u 6 6 1.=.1.1.1.1.1.5.1.1.1.1.1.5.1.1.1.1.1.1.5.7.5.=.5.1.1.5.1.7.5.1.1.1.5.;.5.5.;.7.5.u.5.5.5.;.1.5.1.1.5.5.5.5.6.1.1.1.7.5.5.5.1.;.5.5.1.1.5.1.1.3.;.;.1.1.5.5.5.:.5.5.:.5.5.5.;.7.3.1.1.5.1.3.5.5.5.5.1.1.1.;.5.5.5.5.7.1.5.5.;.;.5.7.5.5.5.5.5.1.5.1.5.1.5.1.1.1.1.1.1.1.1.1.1.1.1.1.l 2.7.tXtX;.5.n.Y.U.j.q.3.4.1.e 1.6.2.1.1.1.6.1.2.l l 1.5.p.5.5.5.6.4.k 3 8 , < < < < < < < < , 2 k c 4.6.p.5.5.7.1.4.7.1.2.7.7.7.6.7.7.6.7.7.8.7.3.0.a.7.7.q.q.7.7.g.u.1.a.oXNXAXlXW.N.z.~.=XeXZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgX&XeXwXE.w.;.q.d.k.a.a.8.8.7.7.a.8.8.i.8.8.8.8.i.7.7.u.8.q.8.a.7.8.8.a.q.8.u.u.g.g.g.i.a.g.g.a.a.g.a.a.a.f.a.f.f.a.d.f.l.l.l.l.l.k.l.l.f.l.l.F.l.F.l.F.l.F.F.l.F.l.F.F.L.J.XXmXPXJXdXE.K.U.E.!.z.6 7 1.1.=.=.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.5.1.5.1.3.5.1.5.1.5.3.5.1.1.5.1.5.1.5.5.5.3.1.5.5.1.5.5.5.1.5.1.5.5.5.1.1.5.5.1.5.1.1.5.1.5.3.5.1.1.5.3.5.3.7.1.5.1.5.1.5.1.1.1.5.1.5.1.1.5.5.1.1.5.3.5.1.5.1.5.1.5.1.5.5.1.1.5.5.1.5.1.5.5.1.1.1.5.1.1.6.1.7.2.1.7.1.1.1.1.1.u 1.=.2.1.1.1.1.1.7.3.tXtX0.l.L.K.h.x.5.1.1.1.1.1.1.1.1.1.1.1.1.1.4.l u 5.p.i.7.l 8 : : < > 0 j j v m m j j g 0 > : : < 5 6.i.5.=.2.4.5.7.7.7.7.5.6.7.6.7.6.7.8.8.7.7.8.7.8.8.8.7.8.a.q.7.u.u.Z.eXZXNX-XN.z.T.XXeXAXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXjX&XeXrXM.q.3.s.k.a.a.a.8.8.7.7.i.i.7.8.8.8.8.8.a.7.8.7.7.8.7.7.a.a.7.8.8.i.a.a.q.u.a.g.q.g.a.a.a.a.a.a.a.a.f.d.f.d.f.d.d.d.d.f.f.d.l.l.F.F.f.l.l.l.l.l.l.l.l.l.l.l.k.F.F.F.H.n.A.4XFXLXmX.XT.~.Q./.Z.3.u 2.2.=.1.1.1.1.1.1.1.1.1.1.1.1.1.1.5.1.5.1.5.5.1.5.1.5.1.5.1.1.5.5.3.3.5.1.5.1.5.1.1.1.5.5.1.1.7.1.5.1.5.1.5.5.1.5.1.5.1.5.1.5.1.5.1.1.5.1.5.1.5.1.5.1.5.1.5.5.1.5.3.1.5.1.5.1.1.1.5.5.1.5.1.5.1.5.3.1.1.5.1.1.5.5.1.1.7.1.5.1.1.1.5.7.1.5.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.6 6 1.7.7.1.tXtXJ.J.l.g.7.5.1.1.1.1.1.1.1.1.1.1.1.1.c 1.5.5.5.z c : : < , b Z./.>X,XeXdXdXdXdXaXaX6X,X$XS.Z.b : $ < x 6.5.8.7.6.6.2.6.7.7.6.6.7.7.7.8.6.7.7.8.8.7.8.a.7.8.a.a.8.u.a.q.r.-XvXZXeXA.z.T.-X,XAXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKX KXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXMX>XyXrXm.e.3.w.l.f.q.u.i.7.7.7.7.7.q.8.7.8.8.8.7.8.7.7.u.7.7.i.8.7.7.a.8.q.a.8.i.u.a.a.a.a.a.a.a.a.d.a.a.s.d.a.a.f.a.f.d.f.f.l.f.f.l.d.l.f.f.l.l.l.F.l.l.l.l.l.l.k.l.l.l.F.F.F.l.J.B.oXAXLXAXeXT.Y.E.-XU.1.6 =.e 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.5.1.5.1.3.5.1.5.1.5.1.5.3.5.1.5.5.1.5.3.5.1.1.5.1.5.1.5.5.1.5.1.5.1.5.1.1.5.1.5.1.5.1.5.1.5.1.5.5.3.5.1.5.1.5.1.5.1.5.1.1.5.1.5.5.1.7.1.5.1.5.1.1.5.1.5.3.5.1.5.1.5.1.5.7.1.5.1.5.1.5.1.5.1.5.1.1.5.5.3.1.3.1.5.7.1.1.1.1.1.1.1.1.e =.=.1.7.7.3.1.7.tXtXJ.l.7.;.1.1.1.1.1.1.;.1.1.1.1.1.1.1.=.5.p.6.l , $ > j C.2X1XXXhXBXAXCXBXnXzXhXhXzXcXgXjXhXhXcXhXhXjXhXjXjXjXzXBXBXSXSXHXjX$ , 4.p.5.3.1.8.6.6.7.6.7.8.8.8.6.8.8.8.8.8.8.8.q.8.8.8.8.a.i.a.a.a.a.a.k.k.T.eXeXW.j.T.bXHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAXyX:XN.e.q.t.a.0.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.8.7.7.8.7.8.8.8.8.8.8.8.8.i.i.7.5.7.7.7.7.u.7.:.5.u.7.u.7.7.u.q.a.a.a.a.g.l.d.d.a.d.d.a.a.a.a.f.l.l.l.l.l.f.f.d.d.d.k.k.l.f.l.l.k.l.F.l.l.l.d.F.l.W.ZXGXdXW.T.Y.!.z.l e e 6 6.1.1.;.1.1.1.1.1.3.2.5.6.4.1.5.1.7.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.7.1.3.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.5.1.5.1.5.1.5.1.5.1.7.1.5.1.5.1.7.1.5.1.5.1.5.1.1.5.1.7.1.5.1.1.5.1.1.1.1.1.1.1.1.1.1.2.1.6 ;.7.8.;.3.a.k.l.a.0.1.1.tXtX1.1.=.1.1.1.1.1.1.1.1.5.1.1.4.< 9 b Z.S./.bXZXAXBXnXjXjXhXhXjXjXjXjXcXjXjXjXgXhXcXhXhXhXzXhXzXjXzXBXCXSXSXC.: 2.p.5.3.1.6.6.7.6.6.6.8.8.6.8.8.8.8.8.8.8.8.8.8.8.a.8.a.a.a.r.a.a.a.k.a.h.W.eXeXT.z.A.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXfXeXZ.3.q.r.a.q.0.7.7.7.5.5.3.5.7.5.5.7.5.7.7.5.7.7.7.7.7.7.7.5.5.p.7.7.8.8.8.6.6.8.7.8.8.7.5.7.a.a.a.d.l.H.J.J.K.Y.K.J.l.f.a.q.q.a.u.u.u.g.d.d.a.a.a.a.f.f.f.d.d.d.d.f.f.d.d.d.f.f.l.l.l.l.k.f.a.d.d.l.l.f.d.G..XNXJXpXU.~.W.W.y.6 e =.1.l =.1.1.1.1.1.1.1.1.1.3.5.1.1.5.1.5.1.7.1.5.1.5.1.7.1.5.1.5.1.5.1.5.1.5.1.5.1.5.5.1.5.1.5.3.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.3.5.1.1.5.1.5.1.5.1.7.1.5.1.5.1.5.1.5.1.5.1.7.1.5.1.5.5.1.5.1.3.1.5.3.1.1.1.7.1.1.1.1.1.1.&.2.1.7 1.8.7.;.7.l.l.a.7.3.;.1.tXtXu 1.1.1.1.1.1.1.1.1.1.1.=.2.< : h A.A.%XkXZXBXzXjXgXhXcXhXhX7X9X6XhXzX7X1X9XaXhXcXhXjXhXhXhXjXzXzXjXBXCXHX8X, e p.5.7.5.6.4.6.7.8.7.8.6.8.8.8.8.8.8.8.8.8.8.8.a.8.a.8.i.8.a.a.h.a.j.j.q.t.E.rXrXR.z.W.AXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXzXdXE.0.w.r.w.8.7.7.5.5.7.1.5.7.7.5.7.7.5.7.5.5.7.7.7.7.7.7.7.7.7.8.8.7.7.7.5.6.6.8.8.8.8.8.a.f.H.J.J.Y.T.T.T.T.Q.Q.Q.!.!.XXXX!.Q.Q.K.m.f.d.q.u.0.a.f.a.d.f.f.a.a.f.d.d.d.f.d.d.d.f.f.k.l.l.f.f.d.d.f.f.d.d.f.d.G.b.oXAXGXwXY.R.!.~.q.5 l 1.1.;.1.1.1.1.1.1.1.6.2.1.1.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.1.5.3.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.3.5.1.5.1.5.5.1.7.1.5.1.5.1.5.1.5.1.5.1.7.1.5.1.5.1.5.1.5.1.1.5.1.5.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.;.=.1.1.7.3.7.k.m.j.7.3.1.1.1.tXtX1.1.1.1.1.1.1.1.1.1.1.1.3.p + , D.Z.%XsXBXCXjXcXcXcXcXcXjXjX*X@X@XaXjX*X@X$XaXhXhXhXhXhXhXhXhXjXjXzXmXBXSXBXv e p.5.1.1.6.6.7.7.7.7.8.6.8.6.8.8.8.x.i.p.8.a.8.8.8.a.q.a.a.a.a.a.h.a.h.k.a.k.~.=X=Xz.z.eXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXdX=Xw.7.h.q.8.7.7.3.;.5.5.7.7.5.7.7.5.3.7.5.5.5.5.7.7.7.7.7.7.7.7.7.7.7.7.5.7.7.7.8.h.k.z.z.J.K.K.K.K.K.P.R.R.R.R.T.Q.Q.Q.Q.Q.XX+X+XXXXX!.Q.K.v.s.g.g.a.a.a.a.f.f.k.d.a.a.d.f.f.k.f.f.k.f.k.k.f.d.l.l.l.d.a.f.f.G.n.e. XNXDX-XT.A.!.Y.4.l 1.=.1.1.1.1.1.1.1.1.1.7.1.1.6.1.7.1.5.1.5.1.5.1.7.1.5.1.5.1.5.1.7.1.7.1.5.1.5.1.5.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.3.1.5.1.5.1.5.1.5.1.5.1.5.1.7.1.5.1.5.1.5.1.5.1.7.5.1.5.5.1.1.7.1.1.1.1.1.1.1.1.1.1.2.=.6 ;.3.7.;.3.f.H.j.7.1.1.1.1.1.tXtX1.1.1.1.1.1.1.1.1.1.1.6.p + < v Z.W.lXZXjXcXcXhXcXaXaXcXzXnXzX*X@XXaXfXsXhXsXhXfXhXfXfXcXcXhXjXjXjXzXlXl.8.a.8.i.7.i.8.6.5.1.6.8.8.8.8.6.7.7.8.x.8.8.8.i.8.8.x.8.h.q.h.8.a.i.h.k.k.f.d.d.l.f.n.Y.Y.U.y.$XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXeXZ.h.k.h.3.3.7.3.1.7.1.7.7.1.1.5.5.1.7.1.6.7.7.5.7.7.6.6.5.5.5.5.5.7.0.a.a.a.q.q.q.s.f.j.f.l.n.n.H.J.K.K.P.U.T.T.oXXXXXXXOX,X,XwXwXwXwX+XwX+X+X+XwXOX+X+XwXwXXXXXwXwX+XQ.f.7.s.l.f.a.d.d.f.d.f.f.d.f.f.d.G.l.d.f.d.d.d.d.d.l.l.a.k.W.DXvX XA.T.!.r.l l 1.6 1.1.1.1.1.1.1.1.1.1.1.1.6.1.1.1.5.5.1.5.1.7.1.5.1.5.1.5.1.5.1.7.1.5.1.1.5.1.5.3.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.1.5.1.5.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.3.5.1.1.5.1.1.1.1.;.1.1.5.1.1.1.1.1.1.;.1.1.1.6 =.8.7.1.a.l.k.7.3.1.1.1.;.1.1.1.1.tXtX1.1.1.1.2.1.1.1.1.1.e : $ ^.$XbXkXiXaXcXsXsXaXsXaXsXaXaXgXaXgXjXgX4X$X1XaXaXfXhXaXaXhXaXfXfXcXfXhXgXgXmXzX-X7.8.a.a.a.q.h.a.8.7.5.7.7.8.7.6.7.7.6.8.8.8.x.i.8.x.i.8.a.8.x.a.i.h.h.h.k.a.a.k.f.f.s.j.K.Y.!.k.z.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX~.z.h.h.q.3.3.1.1.5.1.5.7.7.1.5.1.1.5.1.5.5.1.5.7.1.5.1.1.1.1.1.5.7.q.0.a.a.s.q.u.q.s.a.l.l.n.n.H.J.J.K.U.U.R.R.E.oX.XXX=X+X+XwXwXwXwXwXwXwXwX4XwXwXwX4X+XwXwXwXwXXXXXwXwXXXK.w.s.l.d.g.d.d.d.d.f.d.G.d.F.d.d.f.d.d.d.d.f.d.f.k.f.j.k.rXDXyXW.M.~.U.3.6 1.1.2.=.1.1.1.1.1.1.7.2.1.1.1.2.3.2.1.1.5.1.7.1.5.1.5.1.7.1.7.1.5.1.5.1.7.5.3.5.1.5.1.5.1.5.3.5.1.5.3.5.1.5.3.5.1.5.1.5.1.5.3.5.1.5.3.5.1.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.5.1.5.1.1.5.1.1.1.1.1.1.1.1.l 1.1.1.1.6 &.6.8.3.7.l.m.h.3.1.1.1.1.1.e 1.1.1.tXtX1.1.=.1.1.1.=.6 e 1.6 $ < ^.2X1XdXiXaXdXaXsXiXaXpXsXaXpXaXaXgXjXhXX$X*XaXaXaXsXfXsXhXhXhXfXhXhXfXiXA.z 3.i.0.q.a.g.g.a.s.a.s.f.f.f.f.f.q.i.7.7.7.7.7.8.7.8.8.8.8.8.i.8.8.a.a.a.h.h.a.h.f.a.f.a.d.d.f.j.b.K.n.s.l.mXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAXT.j.h.r.7.4.7.6.2.1.1.5.3.3.1.3.1.5.1.3.1.5.1.1.1.7.1.1.;.;.0.0.0.0.0.7.g.7.q.q.g.s.s.s.f.f.j.s.s.l.J.J.K.R.T.T.T.T.!.XX;XwXwXwXyXwXyXuXyXyXuXyXuXuXuX4XtXuXtXtXuXuXuXuXtXtXOXyXwXXXXXuXwXB.e.a.s.a.d.i.g.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.a.J.uXvX XZ.Y.R.6.6 =.2.2.1.1.1.1.1.1.1.1.1.1.1.1.2.5.1.5.1.5.1.5.1.5.1.7.1.5.1.5.1.5.1.7.5.1.5.1.5.3.5.1.5.1.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.1.5.1.5.3.5.1.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.5.1.;.1.;.1.1.1.5.3.1.1.1.1.e e 2.e 2.x.8.1.0.f.j.7.1.1.1.1.1.1.1.1.1.1.1.1.tXtXl 2.l 2.=.e e l e e w 1 + f *X*X9XaXaXpXaXsXiXiXsXdXiXdXaXiXcXjXjXgX4X6XpXfXpXsXxXfXsXsXsXsXfXeXW.y.1.5.i.p.7.u.q.g.s.s.g.s.a.a.f.f.f.f.f.f.g.5.7.a.6.5.i.i.8.8.x.x.i.i.r.h.p.i.k.k.8.q.w.q.a.a.d.f.k.n.l.J.K.J.a.=XKXKXPXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX7XN.s.h.q.7.4.6.1.5.7.1.1.1.1.5.1.1.3.1.1.1.3.1.1.6.3.1.1.1.7.0.q.7.q.0.0.0.q.g.0.a.s.s.a.a.j.n.n.n.n.H.J.H.K.U.T.T.!.!.XX;X;XwXwXyXyXwXuXuXyXyX4XtXuXyXtXtXtXtXtXuXuXuXuXuXyXyXyXyXuX+XwXwX;XR.q.q.d.q.G.G.g.d.d.d.d.d.d.d.d.G.d.d.d.d.f.d.a.f.a.E.lXyXR.U.R.z.=.=.=.2.1.1.1.1.1.2.1.=.5.=.1.5.5.1.5.1.5.1.7.1.5.1.5.1.5.1.5.1.5.1.5.1.1.5.3.5.1.5.1.5.1.5.3.5.1.5.3.5.1.5.1.5.1.5.3.5.1.5.3.5.1.5.1.5.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.1.1.1.5.5.5.1.5.3.3.1.1.1.=.2.=.=.=.2.8.3.3.q.a.s.7.1.1.1.1.1.1.1.1.1.l l =.tXtX1.=.1.e 2.e e l e w w w : < S.*X1XiXbX9XiXsXaXpXsXsXsXaXaXgXhXcXzXzXhXcXpX6X6X1X2X%XS.S.A.Z.V.q.z l 1.5.i.u.i.q.q.a.g.a.g.a.s.s.f.s.f.f.H.H.f.7.8.a.7.8.8.8.8.6.6.4.1.1.4.4.r.k.i.p.k.k.j.q.s.f.f.s.k.s.f.m.Y.J.a.m.SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXS.w.s.e.8.4.2.2.2.1.1.1.5.1.3.1.5.1.5.1.5.1.5.1.1.5.1.1.5.7.8.0.q.g.g.7.q.g.q.q.q.0.a.a.s.s.s.f.l.n.J.J.K.P.K.U.R.T.!.oXXXXXXXXXwXyXuXuXuXyXyXuXyXtXtXtXtXtXlXtXgXuXlXuXlXuXuXtXuXuXuXyX+XXXuXuXQ.0.s.f.i.i.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.a.d.f.u.l.rXlXXXM.Y.Z.6.e =.1.=.1.1.1.1.1.1.1.1.1.1.1.1.5.1.5.1.7.1.5.1.5.1.5.1.7.1.7.1.5.1.5.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.1.5.1.5.3.1.5.3.5.1.5.3.5.1.5.3.5.1.5.3.5.1.5.3.5.5.5.1.;.1.1.1.;.:.5.1.1.2.2.=.e r =.8.8.3.8.a.a.7.1.1.1.1.1.1.1.1.1.1.1.1.l tXtX1.l 1.2.=.=.e l e w 2 e e < ^.>X*X9XaXiXpXpXsXaXcXaXiXaXaXaXcXcXcXsX6X2XS.V.v b q q 4 3 3 w 6 e l 1.8.8.7.7.7.u.0.s.s.s.s.a.s.s.f.f.k.j.H.v.f.f.a.8.7.8.8.4.4.4.4.y.Z.V.9.h 3 z r.k.k.d.d.a.a.w.f.f.j.f.a.l.J.K.l.u eXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgXy.j.j.e.4.3.1.1.1.1.1.1.1.1.1.1.1.5.1.5.5.1.1.7.1.1.1.3.5.0.a.0.q.q.u.g.q.q.q.g.q.a.s.a.a.s.s.f.l.l.n.n.n.K.K.R.R.T.R.T.L.H.a.e.s.R.XXwXtXtXtXtXtXgXuXuXtXtXgXtXtXlXlXtXlXtXtXuXuXuXuXyXwXwX+XuXuXR.e.q.d.i.a.a.d.d.d.d.d.a.d.d.d.d.d.d.d.a.l.d.d.a.U.uXwXT.U.R.h.2.e 1.;.1.1.1.1.1.1.1.5.=.1.1.6.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.3.5.1.5.3.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.1.5.1.5.3.5.1.5.3.5.1.5.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.5.1.1.1.1.5.5.;.1.3.1.1.l =.=.=.e 1.q.7.1.q.h.q.3.1.1.1.1.1.1.1.1.1.1.=.1.l tXtXe 1.=.e 2.e l e e w 7 =.x.3 c S.1X7X6XiXiXaXsXsXaXgXgXaXhXhXgXiX2XC.v q q q 0 q h 3 k l 2.5.5.=.6.6.7.4.4.q.u.0.s.s.g.s.s.f.f.f.f.k.l.l.f.f.f.n.l.a.7.e.z z r.A./.;XeX9X1X@Xv p 4 e.k.k.i.d.a.a.a.a.j.f.a.f.l.K.U.3.m.HXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJX%Xe.z.q.3.3.1.3.2.5.1.1.5.5.3.5.3.1.3.1.1.1.1.1.1.1.1.1.7.7.a.s.0.g.q.q.q.g.g.q.q.g.s.a.s.f.j.l.j.l.n.n.m.K.K.K.K.m.b.w.w.5.;.l i i 1.8.N.oX;XuXkXuXuXtXtXtXlXuXlXlXtXgXtXgXlXlXlXuXuXtXuXuXyX;XXXeXeXM.,.a.F.d.d.d.d.d.d.a.a.d.d.d.d.d.d.d.d.d.k.F.a.z.XXuX.XZ.Y.Z.4.6 1.1.=.l 1.1.1.=.1.5.1.5.1.1.5.1.5.1.5.1.5.1.7.1.5.1.5.1.5.1.5.1.5.5.1.5.1.5.1.5.1.5.3.5.1.5.1.5.1.5.3.5.1.5.3.5.1.5.1.5.1.5.1.5.1.3.5.1.5.3.5.1.5.3.5.1.5.3.5.1.5.3.5.1.5.5.1.5.1.1.1.1.1.;.1.1.1.1.1.e 1.1.7.8.5.;.s.a.7.1.1.1.1.=.1.1.1.1.e ;.1.l =.tXtX1.1.l 1.2.r e e w e e =.2.2.w y.$X6XiXiXiXaXsXsXfXgXaXfXhXaX%X^.h q 0 q q q h k k c l 1.5.5.5.p.6.7.6.7.4.7.7.u.q.a.a.a.g.a.s.a.j.f.f.l.n.f.f.n.H.n.n.4.x Z.%XXsXBXSXSXSXHXJXJXJXHXAX7Xj , r.F.i.k.a.j.s.a.l.a.a.l.N.J.F.4.HXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXE.q.e.q.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.;.1.1.1.7.1.1.;.7.a.h.a.a.h.s.w.a.s.q.a.s.s.a.s.s.0.w.g.s.v.s.0.3.3.1.l c c h , $ O . . . . X + , i 3.7.i.U..XeXlXlXlXgXlXlXlXlXlXMXmXxXxXlXxXlXsXdXyXuXXX+XuXXX8.8.d.i.G.d.a.a.a.a.a.d.d.d.d.k.a.f.k.a.f.a.d.M.rXXXZ.U.J.7.;.1.1.&.6 1.1.1.1.1.1.1.1.1.1.5.1.5.1.5.1.5.1.7.7.1.7.1.7.4.2.1.7.1.2.4.2.1.4.2.4.8.3.1.1.1.l 1.3.1.4.1.3.1.1.1.1.8.6 1.6.7.1.7.1.8.3.1.4.1.4.4.7.5.1.1.1.1.;.5.1.1.5.1.5.1.1.1.1.1.1.1.1.1.5.1.&.=.1.6 &.7.7.1.8.a.8.1.1.1.1.1.1.2.1.1.=.=.e 1.=.1.e tXtXl =.1.e 2.e 6 e 1.1.2.1.1.1.1.1.6 l e x ^.W.W.S.D.x.c q q w k w k c i u u ;.;.1.1.2.l l u i 3.x.1.7.7.7.8.h.d.i.7.s.a.g.g.q.g.s.s.s.s.f.s.l.F.l.c.z i Z.%XsXAXVXVXCXBXCXVXVXSXHXJXSXcXt , 9.e.j.f.a.j.d.f.d.f.k.n.K.n.3.dXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXNXz.h.e.4.1.1.1.1.1.1.;.1.1.1.1.1.1.1.1.1.1.3.1.1.;.1.3.q.f.f.w.a.h.s.s.s.s.s.a.a.s.a.a.a.g.g.g.0.0.:.3.z x l k , : @ o O @ % % > > % % O o o . + < 3 l &.5.k..XyXkXlXlXmXmXMXmXNXmXxXmXzXNXxXlXlXtXyXwX;XwXeXY.1.d.d.p.i.G.a.a.a.a.d.d.d.i.f.a.a.a.a.f.k.d.l.XX=XY.Z.K.a.1.6 1.1.l 1.1.1.1.1.1.1.1.1.1.1.5.1.5.1.5.1.7.1.2.1.7.2.1.1.1.1.e 7 1.1.4.l 4.1.e l u 1.7.l u 3.1.3.3.1.3.1.l 1.l 8.1.1.2.1.e 2.6 1.l 5 1.l l l 6.1.1.1.5.1.1.1.5.5.1.5.1.5.1.1.1.1.1.1.1.1.1.1.6 e =.e 1.7.7.3.a.a.7.1.1.1.1.1.1.1.1.2.1.1.1.1.e =.l tXtX=.l =.l l e e e 1.1.1.1.1.1.1.1.1.1.1.e w w w w q w w w c w c k r =.=.2.1.l l 1.p.p.6.6.7.5.4.8.4.;.5.7.7.:.p.a.a.q.a.s.d.q.g.s.f.f.s.a.h.l.G.k.v p p Z. j M |.%X,X.>.f.XXAXSXAXAXAXZXzXlXlXyXeX;X=XXXXXwXK.u.d.i.d.g.i.g.d.g.a.a.d.a.f.d.a.f.k.k.G.k.m.!.!.U.K.z.6.6 1.1.&.l 1.1.1.1.1.1.1.1.1.5.1.5.1.5.1.1.1.1.1.2.6.7.l u 4.6.2.6.4.2.x.l 4.e h.2.1.4.6 u 8.1.1.3.3.3.1.l 2.4.2.4.4.l r.l k 4.4.2.1.l 8.4.6 1.1.1.1.1.1.5.1.5.1.5.1.5.1.1.1.1.1.1.1.1.1.1.=.1.=.1.8.1.1.q.a.8.7.;.;.1.1.1.1.1.1.1.=.l 1.=.1.e e =.tXtXl =.e e e l 2.2.1.1.1.7.6.1.1.1.1.1.1.l l 1.1.1.1.;.1.1.2.2.;.u.> # o # B a W _.[.[.[.[.{.{.{.{.{.[.`.<.a B o O , h.a.8.a.8.a.h.k.a.a.7.7.u.p.w.9 9 V.*XiXfXsXkXjX8XcXcX8XcXjXjXjXjXjXnXBXFXFXM < F.k.k.a.j.k.k.a.w.f.I.Y.e.AXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX X9.4.4.l 2.2.1.1.1.1.1.3.1.1.1.1.1.1.1.1.1.1.1.;.3.a.j.j.f.s.l.l.n.n.f.v.f.n.n.a.7.5.4.> X X O % j m C.%X*X,X O X X + < p ;.a.,XDXFXVXZXZXBXxXlXdXeXwXwXXXXXXX+Xd.7.i.k.i.d.i.d.d.a.d.d.d.d.d.d.d.a.a.k.a.f.U.!.U.Z.m.7.1.e ;.1.2.1.1.1.1.1.1.1.1.7.1.5.1.5.1.5.7.5.1.1.2.7.7.8.7.8.8.8.h.8.8.h.8.q.8.h.8.8.8.7.3.3.1.1.1.1.1.3.1.4.7.8.8.r.8.r.8.8.8.8.x.x.6.8.r.7.1.7.1.5.1.5.7.5.1.5.3.5.1.1.1.1.1.1.1.1.1.e 2.=.6 e 5.7.1.3.a.a.3.3.1.1.1.1.1.1.1.e 1.1.1.1.1.1.1.1.1.tXtXu 1.=.1.e 1.1.1.1.1.1.1.5.1.5.1.5.1.1.3.1.;.l 1.1.2.5.:.:.6.q % # # d a E _.{.[.[.[.[.[.[.{.[.{.{.OXOXOX`._.a # X O p h.i.i.h.h.x.i.i.u.5.u.i.7.< : M 1XsXsXcXcXcXcXcXcXjXcX8XcXjXjXjXjXBXBXJXjX> 9.k.d.G.f.s.z.a.j.l.H.Y.a.eXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXDXR.9.4.z l l 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.8.j.j.j.j.j.l.j.n.l.l.v.l.n.l.a.5.1.c @ @ 0 j D./.@X2X>X1XeXeXX>X1X # o . . < 6.8.,XZXDXAXZXmXxXlXuXyXwXwX+X+XXX+XoXa.u.d.a.i.d.g.d.d.d.i.G.i.d.d.d.d.a.a.f.a.n.T.R.U.U.r.1.l 6 1.1.1.1.1.1.1.1.1.1.5.1.5.1.5.1.5.1.1.5.7.1.5.1.1.1.1.1.1.1.1.;.;.;.;.7.5.7.1.1.1.1.1.3.5.7.1.1.1.1.1.1.1.1.1.1.1.6.1.1.1.1.1.1.1.1.1.5.1.6.7.5.1.1.5.1.5.1.5.1.5.1.4.1.1.1.1.1.=.2.e 1.;.3.7.3.7.a.q.1.1.1.1.1.;.1.=.1.1.1.1.1.1.1.1.l ;.1.tXtX1.1.1.;.1.1.1.1.7.1.1.5.5.7.2.7.7.1.5.1.1.1.7.3.3.;.2.c 0 # B d E Q _.[.[._._._._._._._._._.)._._.[._.].].OXOX{.{.).# + $ w.0.g.f.,.7.8.8.p.7.6.c + g 1XiXpXsXaXgXgXcXcXaXcXcXcXhXhXhXcXjXnXCXHX5X< h.F.f.s.a.h.l.k.f.n.U.k.m.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXpXe.r.z l 4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.l l 1.q.h.l.j.n.l.l.n.n.n.n.n.v.n.n.q.1.1.x : O > j V././.%X$X2X*X j m D./././.2X$X2X1XaXmXAXSXFXHXJXJXJXJXJXPXPXLXLXLXLXPXJXFXFXVXVXFXFXSXAXSXAXmXmXgX|.j & . $ 3.7.E.xXzXxXxXlXkXtXeX;X+X+X+XQ.Q.!.Q.f.u.a.a.i.i.d.d.i.i.G.g.d.d.d.d.a.d.d.d.a.H.T.Y.U.m.6.2.e 1.=.1.1.1.1.1.1.1.1.1.5.1.5.1.5.1.1.1.5.5.1.5.1.1.4.7.1.1.1.7.5.5.3.5.5.5.7.1.1.1.1.7.7.4.1.1.1.1.5.1.5.6.7.5.7.5.5.5.7.5.1.1.5.7.5.1.5.5.5.5.7.1.6.1.5.1.5.5.1.5.1.1.1.1.1.1.1.=.1.1.6 1.7.1.5.a.q.;.1.1.;.1.1.1.1.;.1.1.1.1.1.1.1.1.;.1.1.tXtX1.1.1.1.1.1.5.7.7.3.1.7.7.7.7.5.6.7.1.7.7.1.7.7.4.> $ B a W Q Q _.Q Q Q Q Q Q )._.).).)._.Q Q _._._._.Q Q ^ ^ _.[.[.[.[.[.B + 8 z.7.7.8.7.:.u.5.1.b $ > #XiXiXsXiXaXcXcX*X2X*X8XzX9X2X9XcXjXnXnXSX8Xb h.l.a.k.k.F.l.k.k.l.Y.j.9XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXS.r.3.3.1.=.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.0.j.l.s.v.n.n.m.n.n.m.n.m.j.z.9.u 1.6 9 > g N V.D.C././.2X2X6XjXCXSXSXSXFXHXSXSXFXHXHXHXHXHXLXLXLXLXKXLXPXHXSXVXVXFXSXAXAXAXCXmXkX|.g O O &.u.r.eXvXlXlXkXtXyX;XXX+X+XXXoXQ.Q.+XH.u.g.i.g.i.g.i.g.p.d.d.d.d.i.d.a.d.g.d.d.l.Y.R.Y.Z.q.1.2.=.6 1.1.1.1.1.1.1.1.5.1.5.1.5.1.5.7.1.1.1.1.5.5.5.5.1.1.1.1.3.7.5.7.7.5.3.1.7.1.1.5.1.1.;.6 &.;.1.5.7.6.6.7.7.7.7.6.1.7.7.1.6.7.5.7.7.6.7.1.1.1.7.7.5.1.5.1.1.5.5.3.1.1.1.1.1.1.2.e 1.&.2.7.1.5.a.q.;.3.1.1.1.1.1.;.1.1.;.1.l =.l 1.1.1.1.1.tXtX1.1.1.1.1.1.3.3.3.1.1.7.6.2.6.7.7.6.1.6.1.;.7.5.7 # B d `.)._.Q Q Q Q Q ).Q _._.)._.)._._._._._._._._._._._._._._.[.[.[.{.Q # + c q.;.p.0.5.u.5.2.c , X C. j j V.D.S././.1XhXBXDXDXAXAXAXAXAXZXZXCXAXSXSXSXSXHXJXPXLXKXKXLXLXLXFXVXVXAXAXAXAXNXAXNX4XM > O 4 7.u.!.lXfXdXtXuXwXwXwX+XXX!.+XQ.Q.!.P.g.i.i.i.d.g.d.d.i.d.d.d.d.d.d.i.d.d.d.d.l.Y.R.K.Z.h.1.l 1.=.1.1.1.1.1.1.2.1.1.5.1.5.1.7.7.1.5.1.5.1.7.1.1.1.1.1.1.1.1.5.3.3.;.7.5.5.2.4.l 5 3 c c c b k 3 w 2.2.8.5.5.5.2.7.6.5.5.2.7.1.1.5.1.7.7.2.7.1.7.6.7.1.1.5.1.1.1.1.1.1.1.1.1.e e 1.=.1.7.1.1.7.a.7.;.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.=.;.1.tXtX1.1.3.7.5.3.5.5.7.5.7.5.7.1.5.6.5.6.2.;.7.=.8.p # # d ! E Q Q E E Q Q Q ).).).).Q ).).).Q Q Q _.Q _.Q ).Q _._._.^ ^ [.[.[.{.<.+ @ 9.p.6.7.5.5.5.7.1.z O > *XiXdXsX7XaXzXnXcX*X*X9X9X9XcXjXjXjXnXCXVX2X9.k.a.h.k.a.a.f.l.l.J.n.S.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAXA.9.z l 1.1.=.1.1.1.1.1.1.1.1.1.1.1.1.1.;.2.e 4.w.n.s.b.m.m.m.n.n.n.n.m.J.m.q.1.6.k @ $ g j m V.D.C./.1XmXAXBXBXCXBXzXjXhXhXhXzXzXjXzXBXmXnXBXVXVXHXLXKXKXLXLXPXHXSXAXBXZXAXZXCXBXhX#Xn % $ k p.L.eXgXtXuXyXwXwXwX+XXXoX+XQ.Q.Q.Q.a.i.i.p.d.i.i.i.d.d.i.d.d.d.d.d.a.f.d.d.f.K.K.U.m.r.1.6 1.=.l 1.1.1.1.1.1.5.1.5.5.1.1.5.5.5.1.5.1.5.1.5.5.5.1.7.5.5.5.;.:.3.3.7.=.5.2.l q c V.S.%X*X*X%XD.b q q 1.p.5.5.5.5.6.5.5.7.6.1.7.6.1.5.5.5.1.6.5.1.5.5.5.1.5.1.1.1.1.1.1.;.1.1.=.1.6 1.3.1.1.8.q.8.1.1.1.1.1.1.1.=.1.l =.1.1.;.1.l 1.1.1.1.tXuX1.1.1.7.5.5.7.5.7.5.7.5.7.5.5.6.1.2.4.;.>.6.2.: o d s ! E E Q E W Q W Q E Q Q Q ).Q Q )._.Q Q _.Q _._._._._._._._._._.[.[.[.{.B . 3 x.2.3.5.3.3.1.1.1.< O |.7XiXiX7XaXhXzXcX9X5X7X9X7XcXjXnXnXnXnXVX7Xr.d.f.d.k.h.d.j.j.l.J.m.T.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBXm.e.l l 1.3.1.=.1.1.1.1.1.1.1.1.1.1.1.1.1.1.e 4.h.b.s.j.m.K.K.m.n.n.n.m.J.a.3.l 2., O > g v m m D./. 5.=.K.wX4X;XwXXXwX=XXXoXXXoXQ.Q.P.Q.I.p.d.i.i.g.i.d.d.d.i.d.i.d.d.d.j.a.d.f.d.J.U.Y.U.h.2.1.1.=.1.1.1.1.1.1.1.1.1.5.7.1.1.6.7.1.1.5.1.5.1.5.6.7.7.6.7.5.7.1.1.1.5.l k l q y.$XsXzXhXzXjXzXBXAXDXNX/.k 5 2.7.1.7.5.3.5.4.7.2.7.1.5.1.1.5.7.5.6.5.5.7.5.1.5.1.1.1.1.1.=.1.1.1.=.2.6 1.7.1.1.0.7.5.1.1.1.1.l 1.1.1.1.1.1.l 1.;.1.1.1.1.;.l tXtX1.1.1.5.5.7.7.7.7.5.7.:.7.5.3.6.1.2.l 7.1.x : + d ! W E ! ! ! Q Q W Q Q Q Q Q Q Q Q Q Q _.Q Q Q ).).)._.Q _._._._.Q _._._._.{.{.d X 4 g.7.3.7.3.5.;.3.x + % *XiXiX7X7XiXcXzXcX9X9X9XcXjXjXjXcXnXnXCXnXZ.g.f.a.k.h.k.j.a.l.J.n.Z.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXlXt.e.l l l 1.1.1.1.1.1.1.1.1.1.1.1.1.1.;.1.1.l 8.h.v.s.n.n.m.n.m.K.K.n.n.f.q.l c < + > g v j v C.1XfXxXsXsX9X2X1XhXZXBXzX7X*X@XS.S.S.S.S./.$X9X8XBXFXPXJXFXHXHXPXLXKXKXJXVXBXmXmXmXzXxX l 5.a.XX;X=XwX;XXXXX+XXXoXQ.Q.Q.P.Q.Y.p.i.i.i.d.i.i.i.g.i.d.d.d.d.d.j.d.d.d.a.J.R.U.U.z.7.l 1.1.1.1.1.1.1.1.1.5.1.5.1.5.1.5.6.1.1.5.5.1.5.1.7.6.6.7.6.7.7.1.5.5.1.2.k , b XpXsXaX7X7X8XcXcXhXBXSXmXA.q e 6.5.5.3.7.5.5.5.5.5.5.1.7.2.7.1.6.5.5.3.6.1.5.1.1.1.1.1.;.1.u 1.l =.1.=.1.7.1.1.0.7.5.3.1.1.=.1.&.6 1.1.1.1.l 1.1.1.l 1.1.1.=.tXtX1.1.1.1.7.7.5.7.7.3.5.7.7.5.5.5.1.5.3.;.6.q o B d W W E ! ! ! Q ! Q Q W E Q E Q Q Q Q Q Q ).).).Q ).).)._._._._.Q _.Q _._.^ [.{.`.O # u.7.7.5.3.3.5.;.z : O @XiXeX7X7X7XcXhXaX9X5X5X8XjXcXjXcXjXnXCXZX~.i.f.a.k.j.k.a.f.l.H.l.Z.SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXsXj.e.i u 1.1.1.1.1.1.1.1.1.1.1.1.1.1.=.1.1.e l 8.h.b.n.n.n.M.m.m.n.n.m.m.q.8.1.3 # @ f g j v V.2XpXpXiXiX>X%X q 2.5.T.+XXXXXXXXXXXQ.oXQ.Q.Q.Q.P.Q.Y.i.p.d.d.i.d.d.i.d.d.g.i.d.a.i.h.a.d.d.g.H.R.U.U.z.7.1.&.1.=.1.1.1.1.1.1.1.1.1.5.1.1.7.7.1.5.1.1.5.1.7.7.2.5.1.2.1.5.1.6.p.6.4., < V.,XsX6XiXiX7XiX7XaXcXcXnXSX6Xv q 1.5.8.;.3.2.5.4.5.1.7.5.7.5.5.5.3.4.5.5.5.5.1.1.1.;.1.1.1.1.1.&.1.e 1.6 1.5.1.1.q.7.5.1.1.l 1.1.1.1.1.&.1.1.1.1.=.1.=.1.1.1.1.tXtX1.1.1.7.7.;.7.5.7.5.7.5.5.1.1.5.5.5.3.&.x.: o B a W W ! ! ! Q ! Q ! W Q E E E E Q Q Q Q ).Q Q ).).).).)._.Q Q _._._._.).Q _.[.[.{.B + u 7.7.7.7.5.;.7.3.4 + m 6XbX6XaXpXcXcX7X6X9X*X9XjXjXnXjXcXjXnXAX!.a.s.a.k.h.h.j.f.k.F.l.Z.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXh.4.u l 1.1.1.1.1.1.1.1.1.1.1.1.1.1.=.1.1.1.2.8.j.j.b.m.n.K.M.m.n.n.n.b.4.;.7.< o % 0 h j m S.>XiX,XXbXkXsXsXsXsXsX9X2X@XD.m D.5XVXHXJXVXIXPXLXKXLXVXBXzXmXNXxXcX1X/.g 0 c ;.l.XXXXXXXXXXXXoXQ.Q.Q.P.P.Q.L.Y.d.i.a.a.i.i.d.d.p.d.i.d.d.i.d.d.a.a.d.g.J.T.U.U.z.8.l &.1.1.1.1.1.1.1.1.5.1.5.1.5.5.7.6.1.1.7.5.1.5.1.7.5.5.7.7.5.7.2.5.-.=.l < > %XiXbXX1X>X%XS.,XfXsX$XS./.>XeXdXsXdXsXsXsXfXhXhXzXhXcX6X2XD.m /.nXHXHXSXVXPXLXLXPXSXnXzXmXzXhX4X@Xm 0 h l 7.Q.oX!.XXQ.Q.oXQ.Q.Q.Q.P.P.P.K.G.i.a.i.d.i.d.i.d.i.d.i.a.d.d.a.i.d.G.a.n.T.U.U.z.8.2.1.&.1.1.1.1.1.1.1.1.1.5.5.1.1.1.7.1.5.1.1.5.1.5.5.1.1.1.1.1.5.1.=.=.=.q @ j >XeX9X 7.7.7.5.5.5.3.7.k + f *X3X3X6XaX8X9X1X8XcX*X*X7XnXcXjXjXjXnXZXW.d.s.j.k.k.f.a.f.k.n.H.Z.mXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKX KXKXKXKXKXKXKXKXKXKXKXwXt.x u u 1.1.1.;.KXKX1.1.1.1.1.1.=.1.1.l l 5 z a.j.l.n.n.b.m.m.n.J.K.f.7.-.2.> X @ f h j j S.2X*X$XS.S.-XsXsX$XW.%X,XeXbX9X6XaXzXzXBXAXAXBXBXMXnXhXcXbX/.^./.8XHXHXVXHXPXLXLXHXCXzXzXzXlXyX$XC.f , k ;.K.Q.Q.Q.Q.Q.Q.Q.Q.Q.P.Y.P.P.K.l.i.i.d.d.i.d.d.d.i.a.h.d.a.k.k.d.d.g.d.H.R.R.U.m.8.l e =.1.1.1.1.1.1.1.5.1.5.1.5.1.5.5.5.1.5.5.1.5.1.7.7.2.7.1.7.5.1.5.5.2.1 + D.1X9XiX6X &X6X3XpXaX9X1X*XhXnX7X%X*XjXhXcXjXjXnXZXW.s.d.a.j.k.f.k.f.k.n.H.J.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKX KXKXKXKXKXKXKXKXKXKXKX;Xz.4.i u 1.1.&.1.KXKX1.=.1.1.1.1.l l 2.1.l u i w.j.l.n.b.n.n.n.m.n.n.f.7.p.e O X % f g j m @X2X2X/.Z.S.X1X1X f f j D.%X/./.D.Z.>XsXX2X2X>XsXxXxXaX9X$X2X/.2X9XjXBXSXJXFXBXzXhX2XV./.jXJXFXSXPXLXLXJXBXhXxXxXsX f f j S./.S.S.V.S.sXiX%X%X-X%X%X>XsXkXbX/.S.S.S.D.D.D.D.D./.9XCXJXJXBXnXfX%XM @XBXJXSXHXPXPXPXSXxXxXlXaX1X%XV.0 , h 3.l.P.T.P.P.P.Q.Y.P.K.K.H.J.H.f.i.i.i.i.g.d.a.d.i.a.k.i.a.k.h.i.d.d.g.G.K.Y.U.m.8.2.2.=.1.1.1.1.1.1.1.1.1.5.1.5.1.5.7.7.1.5.5.1.5.1.6.5.5.5.5.5.1.7.1.1.2.q + M 0 g m /.S.C.V.V.%XdX>XW.%X%XS.%XdXsX1X%X/.$X2X>X1X9X*X2X/.D.m /.cXJXJXBXxXaX/.V.9XFXHXSXHXPXLXSXzXhXfXpX1X%XD.f % , 3.j.L.Y.Q.Y.P.Y.Y.P.L.J.n.H.H.f.i.i.i.d.i.a.i.a.a.d.a.h.k.a.h.i.k.d.a.l.K.Y.U.z.4.1.=.=.1.1.1.1.1.1.1.5.;.1.5.1.1.5.5.1.5.1.1.5.1.5.3.5.3.5.2.5.5.1.1.1.2.k + j >X f g D./.D.D.m V.bXdX%X/.%XC.A.,XsX,X$X>XbXdXbXdXaXiXaXcXcX1X/.V.D.7XHXHXBXxX9XD.C.nXHXSXHXJXLXJXBXhXhXaX4X2XC.g $ , 2.a.H.L.P.K.Y.P.Y.K.L.H.n.n.H.d.i.i.p.g.a.i.i.a.i.a.a.a.h.d.h.d.k.d.a.l.K.R.U.m.7.2.e 2.1.1.1.1.1.1.1.1.5.5.1.5.1.7.5.1.1.5.7.1.1.1.7.5.6.1.7.5.1.1.1.2.2.k < % 2X1XXq.g.d.g.d.a.f.a.d.f.n.n.m.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKX KXKXKX KXKX KXKX FXE.KXKXi l KXKX1.1.KXKX1.u KXKX1.1.KXKX2.l KXKXl q.KXKXf.s.v.s.l.n.l.a.1.1.4 . & > 0 j C.C.D.m v S.fXXS.g @ $ l 7.n.K.K.K.L.Y.L.L.H.H.l.n.n.f.i.i.a.i.a.i.i.d.a.d.d.i.d.d.d.d.d.d.a.l.K.Y.U.m.7.=.l =.1.1.1.1.1.1.1.1.1.5.5.1.5.7.5.1.5.1.1.1.1.5.5.7.2.7.5.5.1.=.1.=.2.k q @ D.1X9X1XX9XaXBXZXAXSXHXSXnXcXcX2XV.S.ZXJXVXnX9XD.S.ZXJXSXHXJXHXVXhXhXsXiX>XS.g $ O i 1.j.J.J.K.L.L.J.L.J.z.l.k.k.k.u.i.u.i.i.a.i.i.i.i.i.i.i.i.d.d.d.a.a.l.K.Y.Z.z.4.1.l e =.1.1.1.1.1.1.1.1.1.1.5.1.6.3.6.7.1.6.7.5.5.1.7.5.5.1.5.1.6.=.1.z z w 8 $ @X7X>X j /.V.m v m X%X9XxXfXaX*X/.9XcXGXJXZXhXhX$X^.*XHXSXnXcX/.D.gXHXSXFXHXJXVXgXsXsXiX>XC.g O O 4 ;.a.J.J.J.J.L.J.F.H.l.j.f.j.h.i.i.i.i.i.a.i.i.d.i.d.i.i.d.i.d.d.a.a.l.K.U.U.z.3.l l =.=.;.1.&.1.l 1.1.1.1.1.5.1.7.7.1.7.5.6.1.7.2.6.1.5.7.6.7.5.6.1.1.2.x e w < 0 /.iX9X7X v /.m v j D.sXXS./.pXsX2XS.D.m m /.1XBXGXnXnXcXD.C.BXJXBXnX>XV.*XSXVXSXHXHXSXcXaXsXiX2XD.g O O i u a.J.n.H.H.H.H.F.n.l.a.a.a.a.u.i.a.i.u.i.d.i.d.i.d.d.d.d.k.i.a.a.a.l.Y.U.m.z.4.l u 1.1.1.1.1.1.1.1.1.1.1.5.1.1.5.5.5.2.5.3.7.5.5.1.7.5.2.5.1.5.5.5.2.2.c l 2.t < 0 V.@X7X8X8XaXiX9X/.v q c l 2.1.7.5.5.:.5.5.5.5.1.7.5.1.6.5.5.1.5.5.7.2.3.1.1.1.1.1.1.1.1.1.1.2.e e e l 1.1.5.3.1.1.1.1.=.2.=.1.1.1.1.1.1.l e e 2.2.=.=.=.=.tXtX=.=.5.=.=.=.2.4.8.7.4.3.1.1.1.1.1.5.7.1.$ o B a a a a a a a a a a a a W ! ! ! E ! a a a a a a a s W W ).`.s W W s ).W ).s ).).)._.[.d < a.h.a.h.i.8.8.d.8.h o m 4XkXdXaXaXaXaXsXhXgX8XcXjXcXcXnXzX!.8.h.d.d.a.a.d.d.d.f.l.F.F.l.zXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"tXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXdXm C.v v j C.lX,XS.S.v m iXfX>X,X%XV.%XsX1X$X%X2X/.C.v m *XDXSXzXzX2Xm 9XJXAXzX6XD.@XAXSXVXSXHXSXjXaXsXiX$XM % + : k ;.a.J.J.J.H.H.n.l.l.k.f.a.h.h.i.i.i.i.a.a.i.i.i.d.i.d.i.d.k.i.d.a.a.l.K.Y.m.z.4.l 1.1.1.l 1.;.1.1.1.1.1.5.1.5.5.7.2.5.6.3.6.1.7.7.2.5.5.5.5.5.5.1.1.1.1.l 1.l c q , , q h D.dXtX^.c q q r z 2.2.7.7.3.:.5.7.;.5.7.3.:.3.5.7.1.5.7.5.1.1.5.1.1.1.;.1.1.1.&.&.1.1.1.e e e l 1.1.1.7.1.;.1.1.l =.2.1.2.2.=.1.2.=.=.=.&.:.;.;.=.=.eXuX-.=.=.=.x.6.7.5.5.p.6.1.1.1.1.1.3.5.3.5.> o B a a a a a a a a a a W s W ! W W W W a a s s W a a a s ).s <.s W ).s ).s ).).W s ).).`.d 4 s.f.f.a.q.8.a.G.a.b + < 6XsXiXaXaXfXfXhXhXgX8XgXjXcXjXnXbXz.8.h.d.d.a.f.f.a.f.f.l.F.l.h.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"tXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXuXtXtXtXtXtXtXtXtXtXtXtXyXtXtXtXtXtXtXtXtXtXtXtXtXtXuXtXtXtXtXtXtXtXtXtXdXtXtXtXtXtXm C.m j h S.xX:XS.V.j D.gXsX,X;XD.V.1XcX2X>XiXiXpXiX/.v D.jXJXnXzXiXD.2XSXSXzX7XS.@XBXSXVXSXHXSXhX7XaXyX%Xn % + 1 l 1.s.m.l.l.H.n.n.l.l.f.s.s.a.a.u.i.i.a.u.i.d.i.d.i.k.i.d.d.d.i.d.i.i.f.K.J.Z.z.4.l e l 1.1.1.1.1.1.1.1.1.1.5.1.1.5.7.5.5.5.5.1.1.5.7.5.1.7.4.5.5.3.3.1.;.;.1.1.6 c x 3 , q , dXtX1 3 l =.=.2.6.1.7.3.7.5.3.7.7.5.3.5.5.3.7.5.3.5.1.5.7.5.4.1.1.1.1.1.1.1.1.l 1.l &.e e e e 1.1.1.3.1.1.1.1.1.2.=.1.1.2.2.1.2.=.-.5.1.;.k w t 0 eXbX0 q q 8 r l 7.:.:.p.-.1.1.1.3.1.1.1.3.7., & B a a a a a a a a a s a a W ! ! W E W a a `.`.).s a s s W s s ).s s ).s ).W s ).<.)._.W d u f.f.f.s.s.a.a.a.a.9.4 X D.cXaXpXaXaXsXhXsXhXgXhXcXhXnXzX-Xp.h.k.d.a.a.d.a.f.a.k.l.l.l.j.dXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgXR.P.h.l e l 6 u 1.1.1.1.1.1.1.1.;.=.1.l e 6 7 3 4.8.g.a.w.s.f.f.s.f.f.h.7.=.l 3 O . & v C.j j h |.xX&XS.V.h S.xXiX;X%Xm D.cXsX$X>XeXXSXBXhXaXS.@XSXSXjXaX/.S.BXSXVXSXHXSXgX9XbX,XS.g @ : w l 3.f.l.l.n.H.n.l.f.f.a.a.q.a.a.u.i.i.i.i.a.i.i.i.d.i.i.i.d.d.i.d.d.a.k.K.U.m.z.3.1.1.1.1.&.1.1.1.1.1.5.1.7.1.5.1.1.7.1.4.5.5.7.5.5.1.5.7.6.1.5.7.3.3.;.1.1.1.5.7.6 4.2.5 w c tXtX=.6.1.&.1.5.5.5.5.:.7.:.5.3.3.5.:.5.3.5.7.5.7.5.5.1.1.1.5.1.1.1.1.1.1.1.1.1.1.6 1.e e e 1.1.1.1.7.1.;.1.1.=.2.1.=.=.1.1.=.1.6.6.4.k q 0 y V V bXbXV y y - 0 0 h z 4.5.5.5.1.5.5.1.3.1.u u.c % # a a d a a a a a a a W ! a ! ! ! W W a a E ).).s a s s ).).).).s ).s ).W ).).).<.<._.a 8 7.f.f.f.a.a.a.j.a.s.a.z.: : #XaXpXaXaXgXfXhXhXcXhXhXzXxX,Xz.i.k.a.s.a.f.d.a.f.a.f.F.J.l.l.dXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX1XT.R.j.l 6 l l ;.1.1.1.;.1.1.1.1.1.l e l e w 7 3 1.q.q.g.s.s.j.a.s.s.f.k.8.1.e c + & j C.n j h @XxX>XC.V.h S.BXiX-X/.v C.cXbX2X>X,XXD.f O < c l 8.l.J.l.n.H.l.f.f.s.a.q.7.a.a.i.i.u.a.a.i.d.i.i.i.i.d.d.i.d.i.d.i.a.k.J.U.m.j.3.u e 1.1.1.1.1.1.1.1.1.1.1.7.1.5.7.1.6.5.5.5.3.5.1.7.2.5.1.7.5.5.3.;.1.1.7.5.5.;.5.1.1.7.6.=.tXtX5.;.5.8.5.5.5.5.5.3.7.3.7.:.5.7.3.5.5.5.3.5.3.5.3.7.5.7.1.1.1.1.1.1.1.1.1.1.1.1.1.e e e e l 1.1.3.1.;.1.2.e 1.2.1.=.1.1.1.=.1.k 1 0 - y V K K K P K K K H V - 0 0 h l 1.7.1.1.3.2.7.5.u 7.4.% # d a a a a a a a a s s a a ! ! ! E `.! ! W E ).`.<.E E ).W ).<.).W s <.W s s ).s ).Q d 1 k.f.f.f.d.a.a.k.w.n.u.k.4.: g *XaXaXaXaXgXcXgXcXcXzXxXbXA.2.k.i.h.a.q.G.a.d.f.a.a.H.z.l.J.yXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXXXP.P.b.4.i i l 1.1.l e u 1.=.6 1.l l e e w w q 2 l q.7.g.a.g.h.a.a.a.f.s.s.z 7 2.< X o 0 C.m j h S.zX>XD.m h C.BXsX%XS.j D.zXpX%X>X>X1XbX1X9X2Xm @XBXZXxXcXS.@XAXSXzXhX%XC.BXVXCXFXFXSX9X>X1X@Xm % $ e &.1.h.m.l.l.n.l.k.j.h.a.a.7.a.d.i.i.u.i.i.i.i.i.d.i.d.i.d.d.i.k.k.d.a.a.l.K.m.Z.h.l l u 1.=.1.;.1.1.=.1.1.5.5.1.5.1.5.1.1.5.1.5.5.5.7.7.7.7.3.1.1.;.5.3.1.1.3.1.5.2.2.6.1.2.1.6.dXtX5.6.6.5.6.7.5.7.7.5.5.5.7.7.5.3.:.7.3.7.7.7.7.;.7.5.5.1.1.1.1.1.1.1.1.6 1.l 1.6 1.2.l e =.l 1.1.1.1.l 1.1.1.=.1.u =.6.5.5.-.e < - y V K K P P K P I I I T P K H = 0 h 3.p.:.;.2.2.6.:.z 3.x.1 # d a a a a a a a a a a s ! s W s W W W W W s ).W ).).).W W s s <.s `.W `.`.W <.W Q a d =.F.l.f.f.d.d.d.f.f.f.f.s.a.a.7 y.>XaXaX8XjX8XjXjXzXxX;Xz.7.q.a.a.a.d.a.f.f.l.f.a.f.n.n.s.K.3XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXoXP.P.N.4.i k l 1.&.1.1.1.1.l 1.e l 6 e e e 5 q 2 k 8.g.g.g.s.j.s.s.f.j.a.s.l 1.1.1 O X > D.V.j f D.hX1XD.V.f C.BXkX/.S.j V.hXhX$X$X2X2X1X ~ ~ ! a d a a a a a a a s s W W W s s W ).s ).<.s s ).s ).<.E E W W s E E `.E E d d z.G.l.f.f.f.f.f.f.f.l.f.a.a.k.j.c v S.>XiXaXaXcXiX2XW.y.4.h.f.a.f.d.a.d.d.d.f.k.a.f.l.l.s.L.4XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXA.P.P.M.e.i 5 l u 6 1.1.u u 1.l 1.l l l e e w w 3 3 3.0.q.0.a.s.s.s.f.f.a.s.1.1.e c $ . $ m V.j h m aX7XD.V.h m zXNX%XD.v v 1XZXcX$X/.%X2X>X2X%X@XaXxX $ h k 1.a.l.l.l.l.l.l.s.h.h.a.a.8.a.d.u.i.i.d.g.p.i.i.i.i.d.i.d.i.k.k.x.k.a.a.l.J.Z.Z.h.1.;.e 1.1.=.1.1.l 1.1.1.1.7.1.5.1.7.1.5.5.1.1.7.5.3.:.3.5.5.5.5.7.7.7.7.3.3.7.7.7.7.7.7.7.7.8.tXtX7.7.7.5.5.5.:.3.:.7.;.7.7.7.7.7.7.7.7.7.7.7.5.7.7.7.3.1.5.1.1.1.1.1.1.1.l l 1.e 1.c e e 1.1.1.1.z l 1.1.1.1.2.1.=.-.=.;.h < - J H K K K P K K P P P P P T (.UX(.T L V = 0 c ;.;.5.2.z 3.1.p.x.q $ n ~ ~ ~ ! ! s s a a a s ! W W s ).s s W s ).<.).<.<.).<.).W E E W W E `.).`.).s p z l.F.l.f.G.f.f.f.f.G.l.f.k.l.j.l.r.l 2 c z.Z.tXtXy.c l 8.k.a.u.a.d.a.a.d.a.f.a.f.f.l.l.j.n.P.:XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXB.n.K.U.e.k i l 1.&.l 1.1.e 1.=.1.e l l e w 5 q q 3 l w.0.0.s.a.a.s.a.a.s.a.8.1.6 l , X o j D.v j v 1XhXS.V.v v 9XAXX$X$X>X1X6XhX3X>XaX$XC.aXAXgXhXpXS.6XAXCXVXSXSX7X@X/.D.f % < c l 3.k.z.l.l.l.k.f.f.a.q.q.8.8.a.i.p.g.p.i.i.g.d.i.i.g.d.d.i.i.i.k.i.a.h.a.k.J.K.Z.h.1.u l 1.1.6 1.1.;.1.1.1.5.1.5.1.5.1.5.1.5.7.7.7.7.5.7.5.7.5.7.7.7.5.5.5.5.7.7.5.1.1.1.1.1.7.5.tXtX7.7.7.7.7.5.7.5.7.7.7.7.7.7.5.5.7.5.7.5.7.7.7.;.7.5.5.1.1.1.1.1.1.1.l 1.1.1.6 1.2.=.l e e 1.1.1.3.3.l 2.1.1.2.e 1.-.5.i < - J K K K K K K K K K K P K K K K T T T T L H y 0 i 7.5.z c 1.7.p.x.r < > ~ ~ ~ ~ ~ ~ ~ ~ ~ ! ! ! ! W s s W s <.).s s s ).s s <.<.).).`.`.`.`.`.`.).W d k h.f.H.H.H.H.v.f.f.f.H.f.l.n.l.h.h.8.e 6 e 5 5 tXdXc r.q.i.d.d.d.a.s.a.f.a.a.d.a.a.f.l.l.k.K.R. XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXB.L.P.K.t.z w l l =.1.1.l 1.1.6 l l l e e w 5 q q 1 6 6.u.0.a.s.s.s.s.a.a.s.k.1.u k c + . f D.m j j |.zX2XV.v j S.CXxXS.V.v b S.gXVXSXBXzXfXsXcXbX2X$X : q 2.u q.l.l.k.l.j.f.s.a.w.q.a.7.q.a.i.u.u.a.i.i.i.a.d.g.i.i.d.i.d.i.d.i.d.i.a.l.J.U.U.z.1.l 1.1.=.1.1.1.1.1.1.1.1.1.5.1.5.1.5.7.5.5.7.6.7.1.1.5.3.5.5.5.5.5.3.3.3.3.5.3.7.5.3.7.7.7.3.tXtX7.7.7.7.7.5.5.5.5.5.5.5.7.5.7.7.7.7.5.7.7.7.7.5.7.5.5.1.7.1.1.1.1.1.l 1.l 1.e 1.e e l e =.1.1.1.1.l 1.l 1.1.2.2.=.=.1.1 @ = H H K K K K K K K K K K K K K P K K K I P P K - 1 3.;.2.4.1.i.5.-.x.q $ n n / ~ ~ '.'.}.'.~ ~ ~ ~ s ~ ! ~ ! ! `.].! `.`.`.`.].].`.].].].].].].`.`.s u x.l.H.H.H.H.H.v.G.v.H.F.v.H.v.f.l.l.8.l u l 1.2.tXtX8.a.a.i.a.a.a.a.a.d.a.a.f.a.f.f.f.l.f.f.U.R..XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXA.v.M.K.b.4.i l 1.1.l l 1.6 1.6 1.1.6 e e e w q q 1 7 7.7.q.a.0.0.a.a.g.a.s.k.7.l l l < . O n M j j V.cXsXD.v j m 8XAX6XC.m v v D.*XaXcXhXaX l =.3.h.l.l.f.f.j.a.a.a.q.8.q.7.i.a.8.i.i.i.a.i.u.i.i.i.i.d.i.d.i.d.k.d.k.i.a.l.K.U.U.r.1.2.l 1.1.u 1.1.1.1.1.1.1.1.1.5.1.5.1.5.1.7.5.7.6.7.5.7.5.5.7.7.7.7.7.7.7.8.7.7.0.8.8.8.8.8.q.tXtX8.8.8.8.8.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.5.7.7.5.;.7.1.1.1.1.1.1.1.1.l 1.;.1.l =.c =.e 2.1.1.;.l 3.l 1.l 1.1.1.6 l w : - V K K K K K K K K K K K K K K K K K K K K P P P V 0 i 3.1.2.=.7.:.=.x.2., d n / ~ ~ ~ './ ~ }.}.'.'.'.'.].~ ].].'.'.].].'.'.].'.].].].].].].].`.`.<.p u.f.v.I.n.H.H.H.H.f.H.H.G.H.H.v.n.H.f.l k z l l u tXtXi.a.h.h.h.x.s.a.d.a.a.f.a.f.d.k.k.n.f.s.T.L. XPXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXM.v.v.M.N.9.k e ;.1.l 1.;.l 1.1.u l 1.e e w 5 w q 1 7 3.7.q.w.u.q.a.q.a.q.a.d.a.l 1.l 3 X . g D.n j j *XmX$Xm v j @XBXZX2XV.m v j m C././.S.S.S.W.$X:X2X%X6XhX9X9X7X>X/.1XBXzXjXCXAX*XC.M j : $ , =.=.8.j.f.d.f.f.f.s.s.a.0.8.a.7.8.a.7.i.i.u.i.a.a.a.i.d.g.d.d.i.d.d.k.k.d.i.a.l.J.U.U.z.1.l 1.=.1.1.=.1.1.1.1.1.1.5.5.5.1.1.1.7.5.7.5.6.7.7.8.8.8.i.s.a.a.a.a.a.h.a.a.f.a.a.a.a.i.a.a.tXtXa.a.a.a.a.a.s.a.a.a.a.a.8.0.7.7.8.8.i.7.7.5.5.5.7.7.5.5.5.1.1.1.1.2.2.1.1.l =.l l e l e 1.1.1.1.3.3.l 1.1.1.5.2.6 l , @ y H K K K K K K K P K K K K K K K K K K K P P P P H - < :.;.1.6.l i :.p.x.i B g / ~ ~ ~ n n '.~ }.'.'.'.'.~ ~ '.~ '.'.'.'.'.'.'.'.}.].].].].].].`.W a ,.i.H.I.H.n.H.H.H.H.H.H.H.G.H.H.v.H.n.0.z k c k x l tXtXa.7.a.a.a.r.a.d.a.f.a.f.d.a.k.k.f.n.s.s.Q.K.%XPXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXn.v.v.n.K.w.l 5 k l =.e 1.e l e 1.e l e e e w q 1 1 1 w 4.7.>.q.q.q.q.g.q.q.g.a.5.1.l c : . @ D.V.b j M zXcXD.v v j %XZXAX1XD.m m m v y.V.D.S./.$X$X%X$X6XsXX @ , c e 1.s.s.f.f.j.a.a.a.a.a.a.q.5.7.a.i.i.u.a.i.i.u.i.i.i.i.i.a.p.i.i.i.p.k.i.i.a.f.K.Y.J.j.1.1.1.2.&.5.&.5.1.=.l ;.:.;.:.5.5.u.7.4.4.7.8.i.a.h.a.s.q.a.q.e.0.i.i.a.8.8.7.7.5.u.u.7.:.5.5.tXtXp.u.p.u.p.7.5.7.7.7.i.d.q.e.e.0.e.8.q.q.8.u.7.7.7.7.7.u.p.5.1.1.l l =.6 2.1.=.=.=.l 5 l 1.1.1.:.3.l 3.1.1.=.1.=.1.e @ - V H K K K K K K K P H H H K K K K K K K K K K K P K y $ i 1.1.1.1.4.4.4.3.7.z p d / ~ ~ '.'.'./ }.}./ ~ ~ B./ }.}.'.}.'.].].'.}.'.].].}.].].].`.<.s g.g.f.v.I.I.I.I.H.I.H.L.H.H.H.H.H.v.H.j.q.x x z l 2.4.tXtXa.a.a.a.a.a.a.a.a.a.d.a.f.d.a.a.n.f.e.B.R.L. XJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXn.B.v.n.m.h.3.5 e l 1.l 1.e =.=.l 6 l e e e w q 2 q 1 q 3.7.,.g.g.q.q.q.g.a.q.a.7.1.l c , . o g D.V.j v *XmX2Xv m v m 2XBXDXzX2XD.V.D.C.S.S.@X%X%X2XXX%X%X%X2X1XiXsXfXpX2X$X1X6X1X%X>XzXhXaXBXCXcXC.j g > + : r =.2.h.a.s.w.a.f.a.s.a.a.8.q.8.7.a.a.i.u.g.i.i.g.i.g.i.i.i.d.i.i.i.i.d.p.k.i.h.h.k.J.Y.U.m.8.e e =.u l u 3.3.3.3.8.h.a.i.x.i.7.5.&.&.7 7 5 u x x.t.^.A.W.E.-X*X1X7XcXnXBXZXVXVXSXSXHXJXJXuXkXJXJXHXHXSXSXZXCXnXcX6X*X$X/.W.A.Z.y.y.4.1.7 7 7 7 6 6 e l 1.5.=.=.5.1.7.1.l k k i l w l 1.1.;.5.1.l l 1.1.1.2.=.2.1 @ = J K K K K K K K K K H J H K H V H K K K K K P K P P H - 1 1.1.1.1.3.3.1.7.5.x l i f p n / ~ ~ / / / ~ '.'.'.'.'.'.'.].'.}.}.'.}.}.'.'.].].`.s <.,.h.f.n.H.I.I.n.B.L.L.P.I.L.I.I.I.I.P.P.L.w.u k z l 1.4.7.tXtXa.a.a.a.a.a.a.a.a.f.f.a.a.f.d.l.f.0.N.B.M.P.oXSXKXKXKXKXKXKXKXKXKXKXKXKX KXKX KXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAXl.n.b.s.n.m.r.e 5 e l e =.l =.=.l l e l e w w 7 2 2 q 8 3 4.0.u.0.g.u.q.g.0.g.7.q.i.1.c c : . . % D.V.v v S.hXhX/.v m m v V.2XzXAXZXCXzXhXhXhXzXhXaX>X%X%XX%X@X/.%X>XX%XS.y.q 8 8 7 6 e 2.e l w l 1.5.5.7.3.3.l 1.1.2.=.6.l < & V H K K K K K V K K K H V V H H V H K K K K P K K K P P y < 1.6.7.5.7.2.7.6.7.8.2.1.1.z p d d s '.].}.}.}.}.B.~ / }.}.}.}.}.}.}.}.].'.<.s s ,.p.G.H.H.H.H.H.n.L.P.I.P.P.P.P.P.P.P.P.P.P.I.e.u 4.4.4.4.7.i.a.tXtXa.a.a.a.a.d.a.a.a.d.f.a.f.d.k.l.s.s.M.B.v.M. XSXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmXb.B.b.s.s.N.z.4.e e 2.2.e 2.e 1.e 6 l e w w 7 q w 2 q 1 8 2 l 7.0.g.g.0.0.7.g.:.q.u.i.2.w c $ . o m S.D.m m /.sXxX>XD.V.V.V.m V.V.V.C.S.S.S.A.S./.$X2X>X$X%XXsXsX $ o O h 2.;.a.f.q.q.a.a.g.q.0.u.7.7.7.7.q.i.i.7.a.i.i.i.g.g.p.i.i.i.i.i.d.g.d.i.g.i.k.i.i.a.a.J.m.m.U.Z.4.e w q c /.cXSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXSXaXv q w w l 1.2.5.8.1.l l 1.1.=.=.=.7 @ & V K K H K K H K K P H J H J H H H H K K K K K P K P K P V > u 6.7.5.2.7.6.7.6.6.7.7.:.7.7.8.4.z i d s a a ! s ~ '.'.'.~ ~ ! ! s s s s ,.k.f.G.F.H.v.I.I.I.I.I.P.I.P.I.I.I.I.P.P.P.P.P.I.g.0.4.4.4.8.q.a.a.a.tXtXa.a.d.f.a.f.a.a.a.a.a.d.a.f.l.f.a.m.n.b.M.L.oXVXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxXb.v.v.b.j.j.n.n.3.6 e e l l 6 u 1.u l e e w 7 q 7 2 1 q 1 1 1 7.7.7.7.0.g.g.7.q.g.a.u.7.5.=.r q : X . o m %XD.m V.C.$X7XhXaX2XC.D.C.S.W.W.W.%X-X-X-X>X : & o . X 1 2.6.i.a.a.q.q.q.a.a.a.8.u.7.7.7.8.a.i.7.8.i.i.i.i.i.i.i.i.a.i.i.i.i.i.d.i.d.i.i.a.a.i.a.k.U.m.Z.Y.Z.9.4.q m SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZXy.3.3.8.8.8.7.4.1.z 1.1.1.=.2.r r q : X V K H H H H H K H H K H H H H H H H P K P P K K P P K P y q 6.>.5.7.7.7.7.8.8.6.7.7.8.8.8.i.7.4.3.3.4.3.;.,.s s s s kXtXs ,.,.,.g.d.G.G.H.H.H.H.H.H.I.I.I.I.P.P.P.I.I.Q.P.P.P.P.P.Q.P.F.a.i.i.8.h.a.g.a.a.a.tXtXa.a.a.a.d.a.a.f.d.a.f.k.f.k.h.w.n.J.b.v.n.L.R.BXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXlXs.v.b.b.s.s.n.n.q.6 w e l l i l l u e e w w w q 2 2 2 1 1 1 1 l 3.7.8.7.7.g.0.q.7.q.u.0.7.1.r r w , $ X O j 2X@XD.V.V.S.2XiXzXhXaX9X>X1X1X $ o . . X : l 1.6.a.a.a.g.u.u.q.i.a.u.7.7.7.8.8.i.p.u.8.p.i.i.i.i.i.i.i.g.p.g.i.g.i.i.d.i.i.a.a.i.a.a.h.m.z.Z.Y.R.Z.z.^.y.>XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXA.k 7.7.8.q.8.8.7.1.1.l 1.1.1.2.e q 1 < o = K K H K K K I K P K H H H L H J H K K K P K K P P K K y 3 5.u.7.7.7.7.7.7.8.7.7.7.7.7.8.8.8.7.8.8.6.7.5.7.1.5.:.3.kXtXe.e.,.g.d.G.G.G.v.v.H.H.H.I.I.I.I.I.I.P.I.Q.P.P.Q.P.P.P.Q.P.I.f.g.i.x.x.a.a.a.a.a.g.tXtXa.a.a.a.a.a.a.a.f.a.f.f.k.k.a.a.n.n.b.N.N.L.R.mXKXKXKXKXKXKXKXKXKXKXKXKX KXKX KXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXlXs.v.b.b.j.w.b.m.z.3.w e l l l e =.e e e w w w w 2 2 1 1 1 1 1 3 e 4.8.7.:.g.0.8.a.q.g.0.0.8.6.l w k h , @ + f |.$XS.D.D.V.S.%X2XbXcXxXjXjXnXhXgXgX7X*X2X/.S.2XpXxXhX%Xg @ . . . + $ , w 2.l 8.a.a.q.q.q.u.q.q.u.7.7.7.7.8.i.p.p.8.8.i.i.i.i.p.g.i.d.g.i.i.i.d.d.i.d.i.i.a.a.i.i.a.h.n.m.m.Y.W.Z.Z.Z.x V.mXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX,Xz 3.7.0.q.8.8.7.7.2.1.l &.=.2.r e 3 1 8 + - K K K L H I I H I I J H H L H H H H K P P P P P K K K y 5 5.5.7.7.7.7.7.8.8.7.7.8.7.8.8.7.8.8.8.7.8.8.q.8.x.i.x.a.uXuXs.,.s.s.f.v.v.G.H.v.n.n.I.n.v.I.I.I.I.P.P.I.P.I.Q.Q.P.P.Q.H.f.g.a.a.h.h.a.a.a.a.a.a.tXtXa.f.f.a.d.a.a.f.a.a.a.f.l.a.s.j.m.b.b.N.n.P.A.mXKXKXKXKXKXKXKXKXKXKXKXKX KXKX KXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXdXw.n.v.j.s.s.b.n.z.q.e 5 l l e e e e e e 7 q 7 w 2 2 2 2 2 1 1 8 5 l 4.0.q.u.u.7.0.q.q.q.q.i.i.8.2.i k k h , : < V.&X&X/.D.D.V.D.S./.%X%X2X2X%X%XS.C.S.S./.>XhXhX*Xm $ . X + + < q r e l 2.1.a.s.7.7.g.0.7.7.0.7.7.7.7.u.i.i.8.u.u.p.i.i.i.i.g.i.i.i.p.g.i.d.i.i.i.i.a.i.a.a.i.i.a.a.n.Y.m.m.T.Z.z.Z.x.9.C.SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmX4.7.s.7.q.a.a.8.7.7.2.1.1.1.1.=.e q 4 1 1 : - H P K L I L L I L L H J H H H H J K L L I P P P P P J 0 u ,.4.7.7.8.7.8.7.8.7.7.7.7.7.7.i.a.8.a.i.q.q.q.a.g.g.d.g.uXuXv.v.v.v.v.v.H.H.H.v.H.I.n.I.I.I.B.L.I.I.Q.I.P.P.I.Q.Q.P.L.f.a.a.i.a.k.h.d.a.d.a.s.d.tXuXd.a.a.f.d.s.d.d.a.a.s.f.k.a.q.n.n.j.b.v.B.P.B.MXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXyXs.n.v.v.s.s.s.j.n.t.1.e e e e e e e e e w w 7 2 2 2 2 1 1 1 1 1 1 2 1.8.i.7.7.7.0.q.a.g.q.i.u.i.8.7.u 6 c h h , < h C.2X1X2X/.S.S.D.V.S.S.A.S.S.W.S.2XbXcXhX5XM % X O : q c c =.2.1.1.7.q.w.7.0.7.0.7.g.7.u.7.7.7.7.7.i.8.7.p.u.p.p.i.i.i.d.i.i.i.i.i.i.i.i.i.a.i.a.i.a.h.i.i.a.a.k.U.m.n.Y.Y.^.Y.z.l x W.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXc.1.a.7.0.a.a.q.8.7.1.1.1.1.1.1.e i 3 4 1 q < @ J P I I L L L I L L H J J H H J H L L I I I I I I K J t :.,.4.7.7.i.7.8.8.8.7.7.7.7.0.7.q.7.0.u.0.u.q.a.a.f.g.g.g.tXtXv.g.f.v.v.H.H.H.n.n.I.I.B.I.I.I.I.P.I.Q.Q.I.Q.I.Q.Q.Q.K.a.a.a.u.a.a.a.a.a.a.a.a.a.a.tXtXa.a.s.a.a.d.f.d.a.d.a.a.f.a.a.n.j.s.v.b.n.P.B.mXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXyXb.n.v.v.v.s.s.s.j.z.e.l w e e e e e 7 w w w 7 q q 2 2 2 1 1 1 1 , 2 5 7.8.u.7.q.u.u.7.u.a.u.u.7.7.7.5.5.1.w q h h , , h V.%X1X9XiXXbXsXlXfXiX%Xj $ X X @ , h w e =.=.&.1.7.i.h.a.0.7.7.7.7.7.7.0.7.7.7.u.7.7.7.7.i.i.i.i.i.i.i.i.i.g.i.i.i.a.i.i.a.i.i.a.a.i.i.a.i.i.i.a.j.Y.Y.z.U.Y.Z.Z.z.t.y.b 2XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXW.u d.a.a.4.q.q.8.7.1.1.1.1.1.&.1.l 3 4 , 1 q 8 @ y H I I L L L I I L J H H J H L L L L I T T T I I J 0 l p.:.x q.8.8.i.8.i.8.a.7.a.7.0.a.a.u.a.q.q.q.q.s.g.,.f.v.v.tXtXG.f.G.v.H.H.H.B.I.n.I.I.L.L.L.I.P.P.I.Q.I.I.P.P.I.Q.K.l.0.a.a.a.d.a.a.a.a.d.a.d.s.a.tXtXtXtXuXtXtXuXtXtXtXtXtXtXtXtXtXtXtXtXyXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXkXtXtXtXtXtXtXtXtXtXtX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXyXb.v.v.v.v.v.w.w.s.v.q.u i e e r e e 6 w 5 5 2 q 2 2 2 2 1 1 1 1 1 1 2 e 6.i.8.u.q.0.u.7.q.:.0.g.:.7.a.7.6.e l c q k h < > > f j D.2X9X7XcX8X6X*X@XC.g $ o + + : q 2.l l &.l ;.;.7.q.h.q.0.g.0.0.0.7.7.7.7.u.7.5.7.8.8.7.7.7.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.d.d.i.d.a.a.a.i.8.i.h.q.U.Y.z.z.U.U.z.y.Z.r.y.y.>XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX Xz w.0.7.0.q.q.q.8.7.3.3.1.1.1.;.1.e 3 , , 8 t 8 : - H L L L L L I L T T H L L L L T T L L T T I T I y 7 u.-.u.3.8.8.u.i.8.u.i.q.u.q.g.a.q.q.s.a.s.s.a.f.g.f.f.f.f.v.tXtXv.H.H.H.H.I.v.I.B.H.I.I.L.L.I.P.P.Q.Q.P.Q.Q.Q.Q.oXI.G.,.g.g.a.a.a.a.a.d.f.a.d.a.a.d.uXuXtXtXtXtXtXuXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXkXtXtXtXtXtXtXtXtXtXtX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;Xv.B.v.v.v.s.w.s.w.v.n.q.u u l e w e e w 5 w 3 2 2 2 2 2 1 1 1 1 1 2 1 3 w 4.r.i.7.7.q.g.0.0.g.0.7.7.g.7.7.7.;.6 l w k q h q 8 9 + O O @ % % @ o o X X + : 1 w c 2.=.=.6 1.5.0.0.f.f.a.7.:.:.0.7.7.7.7.7.7.7.5.7.7.8.u.7.u.8.i.p.i.i.p.p.i.i.i.i.i.p.d.i.d.i.d.i.i.i.p.i.a.i.i.i.i.i.a.F.Y.Y.z.J.U.z.z.z.t.y.r.9.9XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX2Xq.0.s.0.s.0.s.s.8.7.7.5.1.1.1.1.e e w 4 1 , 1 2 8 < - t H L L L L L I L T T L L L I T T T T L T T T J t &.:.p.u.6.7.8.7.q.q.q.q.q.q.q.g.a.g.a.a.s.g.a.f.s.s.s.f.v.l.v.tXtXn.v.H.H.H.H.v.I.I.I.I.B.L.P.I.P.P.P.P.P.P.P.Q.I.I.G.,.,.d.f.a.f.d.a.a.f.a.a.f.a.a.f.a.s.a.a.d.f.f.a.f.a.a.j.z.a.q.l.a.a.w.s.v.n.B.I.A.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXXXv.M.b.v.v.w.s.w.s.s.n.f.3.u i w w w w w w 3 3 2 2 2 2 1 1 1 q 1 2 2 2 2 q w 6.8.7.7.7.0.,.7.7.0.0.7.7.7.u.7.7.7.1.k l w q r r w , $ o . X O : 1 q c z =.=.6.=.1.4.8.s.s.s.a.a.7.7.:.:.0.7.7.7.7.7.7.5.7.p.7.5.8.7.8.p.p.8.i.i.8.i.i.i.i.i.i.i.i.i.d.p.i.p.d.i.i.i.x.i.h.a.i.i.i.k.U.~.z.z.Z.m.z.z.z.r.t.r.v 1XJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX$X9.a.s.q.s.a.a.g.a.7.7.7.1.1.;.1.1.l 6 5 1 1 q , 8 7 1 < 0 J L L L L T T T L L T T L L T T I I T T T H t r =.=.7.7.6.8.8.7.q.7.q.g.g.u.g.q.q.a.a.g.g.s.g.g.f.f.f.f.f.v.H.uXtXv.H.v.H.H.H.I.B.I.B.I.I.P.P.P.P.P.P.P.Q.Q.Q.I.I.I.G.a.a.d.d.a.a.d.a.a.a.a.f.a.f.g.a.d.a.f.d.d.a.d.f.g.a.f.l.j.a.f.j.q.w.w.s.b.n.M.P.B.fXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXXXv.n.v.v.w.w.w.s.w.s.s.k.w.u 7 5 l w w q w 3 3 2 2 8 2 2 q 1 1 1 1 2 2 1 2 2 l 3.8.8.7.:.u.g.q.0.7.0.7.7.g.u.q.8.4.4.2.c w w e 2.z k , < $ : : , q k l l l e e 1.6.8.x.h.h.a.7.7.7.5.5.:.7.7.:.7.7.7.7.7.7.8.8.5.u.8.8.p.8.8.i.p.i.p.i.i.i.i.i.d.i.i.i.i.i.i.i.i.i.i.d.i.i.i.i.i.i.a.8.k.F.~.U.j.m.Z.z.z.z.z.y.r.y.b 2XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJX%Xt.4.s.w.a.a.a.a.a.8.8.7.7.1.1.&.=.=.e e 5 2 1 , , 8 1 q 0 < - y H T I I L L L T L L T L L L T T T T J y r =.=.=.6.4.4.a.a.u.7.0.7.q.q.q.q.g.s.a.a.s.s.g.s.s.f.f.f.f.f.v.H.uXuXI.v.H.H.I.H.I.I.I.I.L.L.P.P.P.I.P.P.Q.P.I.P.I.I.G.,.a.a.d.d.a.f.a.a.d.f.d.a.d.a.a.d.g.a.f.a.f.a.a.a.a.a.l.n.q.a.j.q.a.w.w.s.v.N.M.P.B.pXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXoXv.n.N.v.v.v.w.s.w.s.s.f.h.4.5 5 w w w 7 q 7 2 3 2 2 1 1 1 1 1 1 1 1 1 2 2 1 7 e 2.2.7.7.0.7.0.g.7.0.u.0.q.g.u.7.7.8.q.4.c l 2.=.6 ;.l l w l 1.2.2.e 5.1.1.5.8.8.q.a.s.8.8.7.3.3.5.7.7.7.7.5.7.7.7.5.5.7.7.7.7.7.p.8.p.8.8.8.p.i.i.u.p.i.i.p.i.i.i.i.i.i.p.i.i.i.i.i.d.i.i.a.i.a.x.i.i.a.h.Y.Y.m.c.m.m.j.z.z.t.y.z.z.y.$XHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJX Xe.g.s.w.a.w.s.a.a.g.7.7.7.7.2.1.6 1.2.l e q 2 1 , , , 8 1 q 8 : : y H I I T T T L L L T T T T T T L J t e &.5.=.=.2.2.4.8.8.8.q.a.q.g.q.q.q.a.a.s.s.a.g.g.f.f.f.f.f.v.v.G.n.tXtXn.H.n.I.n.I.L.L.L.L.L.P.P.P.P.P.P.Q.Q.P.L.n.g.g.s.a.a.d.d.a.a.f.a.f.a.f.a.d.a.f.a.g.s.a.f.a.s.a.a.a.a.k.l.j.a.j.j.q.a.q.s.s.b.N.M.P.B.pXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE.n.n.b.v.b.s.s.w.s.w.g.s.j.h.z 5 7 w w q 7 2 2 2 2 2 2 2 1 q 1 1 1 1 1 q 2 1 2 2 w l 3.8.7.7.7.7.7.7.q.7.0.q.7.7.7.0.0.4.x q.a.7.5.5.:.&.&.1.5.6.6.5.p.u.i.i.a.q.7.4.3.1.1.1.7.8.7.7.7.7.7.7.;.5.7.5.7.7.7.p.7.7.8.8.7.7.8.8.8.i.8.i.8.i.i.i.i.i.i.i.i.i.i.k.i.i.d.k.p.a.x.i.i.i.i.i.a.k.a.z.R.U.z.j.z.z.h.j.c.t.s.k.j.9.W.SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXA.e.f.a.g.s.w.a.a.a.s.q.3.7.7.1.1.1.6 1.=.l l w 2 1 , , q 8 8 8 7 8 8 0 y J H L T T T T T T T T T L J y q e =.5.:.5.=.e 2.1.1.5.8.a.a.a.a.g.q.a.s.a.s.a.s.s.s.g.f.f.f.v.G.n.v.H.tXtXH.H.I.n.I.L.L.L.P.I.P.P.L.P.P.Q.Q.P.P.H.f.g.s.a.a.a.d.a.a.a.a.a.d.a.a.f.a.a.a.a.d.d.d.d.f.a.a.a.d.f.k.l.j.a.j.j.0.8.0.s.s.s.b.n.n.P.B.yXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXR.v.n.v.v.w.s.s.s.s.s.0.w.s.j.e.l 5 w 5 7 q 2 2 2 2 2 2 q 1 1 1 2 2 1 2 q q 2 1 1 8 7 r 5.5.7.7.7.0.7.7.g.7.5.7.g.0.0.0.7.q.8.7.7.7.7.7.7.7.7.7.7.i.a.u.u.0.7.7.7.3.:.7.7.7.7.7.1.7.8.7.7.5.7.3.5.5.5.7.7.8.8.8.5.p.8.p.p.8.u.p.i.i.i.i.i.i.i.i.i.i.i.i.i.k.i.i.i.k.i.i.i.i.h.i.i.i.i.a.k.8.h.Z.T.Z.z.l.j.h.h.z.z.h.3.h.Z.c D.AXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmXV.9.h.w.s.s.w.s.w.s.s.a.7.2.7.7.1.2.1.=.1.1.e w w 2 1 , 8 1 1 , q 8 q q 8 : : y J J H H L L L H H J y , 4 e 2.=.6.5.=.l e =.1.1.1.7.8.a.i.a.a.a.s.a.a.s.f.s.s.f.f.f.v.f.G.v.G.H.H.tXtXn.n.B.I.I.L.L.P.P.P.P.P.P.P.P.Q.L.H.f.d.a.a.d.d.f.a.d.a.f.a.a.f.f.a.d.f.s.d.d.g.a.s.a.a.f.a.a.a.f.k.l.l.a.a.f.w.5.0.0.s.w.b.n.n.B.P.B.pXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXA.v.n.N.v.b.s.s.w.w.s.g.s.w.h.h.4.u 5 w 7 2 2 3 2 3 2 2 2 1 1 1 2 q 2 2 2 1 2 1 1 8 2 7 ;.7.7.:.,.:.7.7.7.7.7.0.0.7.>.:.u.a.7.3.3.0.0.7.7.3.3.3.e.0.4.4.0.0.:.7.7.7.0.:.7.5.7.1.1.5.5.5.;.3.5.5.5.5.7.7.8.7.7.7.5.8.8.6.8.p.8.8.u.i.8.p.i.i.i.i.i.i.i.i.i.i.k.i.i.p.k.i.i.i.i.i.i.a.x.i.h.a.q.h.T.E.l.k.l.j.t.t.h.t.t.w.h.z.9.W.FXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXMXn.4.n.j.e.h.j.s.s.s.s.a.7.5.7.7.7.1.=.=.1.=.1.l e w 2 8 1 8 , 1 , q q q 8 8 8 8 8 8 1 0 q t y 0 0 0 q , 7 =.=.2.c =.l w c l 2.-.5.1.1.1.7.7.a.a.a.a.a.s.a.f.f.s.f.f.f.f.v.v.n.v.v.H.tXtXH.I.I.L.L.L.I.P.P.P.P.P.P.P.P.H.G.g.u.g.d.d.h.k.d.d.a.f.a.a.a.a.a.d.a.a.a.d.d.s.d.a.f.d.d.g.a.f.k.F.l.f.j.j.a.3.0.7.0.w.s.v.v.n.n.P.B.3XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXB.B.n.n.b.v.v.w.s.w.s.g.s.0.w.s.q.3.5 3 q q 1 1 q 2 2 2 1 2 1 1 q q 2 2 1 2 2 1 q 1 1 2 3 5 l 2.7.7.7.u.u.u.0.7.7.7.0.0.0.>.0.0.:.0.,.0.7.3.3.3.5.3.3.:.3.0.:.:.:.0.:.7.3.7.7.3.7.7.5.1.5.3.1.1.5.5.7.7.8.6.p.8.8.p.6.i.8.8.p.8.p.8.i.i.i.i.i.p.i.i.i.i.i.i.i.i.k.i.i.i.i.i.k.i.i.i.i.i.i.a.a.h.U.!.Y.r.r.z.k.z.h.t.c.j.e.t.t.y.W.SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXhXN.s.b.w.w.j.j.s.s.a.s.a.7.5.5.3.7.1.1.1.=.1.1.l l e w 7 2 q q 8 , , q 0 , < 0 1 1 8 8 8 < < , 8 , 8 , 8 5 r =.=.1.2.=.2.l 2.2.1.=.5.6.1.1.1.6.8.a.s.s.a.a.f.s.f.f.f.f.v.v.v.G.n.H.H.H.uXuXH.n.I.I.M.I.L.L.P.P.R.Q.L.H.F.d.g.a.g.a.a.f.a.a.a.d.a.a.a.a.f.a.s.d.g.a.a.a.a.a.f.d.a.a.d.f.d.f.j.l.k.a.j.h.3.3.7.0.0.w.s.s.b.N.M.P.B.yXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXB.I.n.b.b.b.s.s.s.w.q.w.a.w.0.q.s.q.l 5 2 q q 1 q 8 2 8 1 1 2 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 e 2.2.7.p.u.u.q.u.7.0.3.,.,.0.g.:.0.7.7.7.7.7.7.7.7.7.7.7.5.7.7.3.3.7.3.7.7.7.3.7.7.3.5.5.3.5.1.1.5.7.8.7.8.6.8.8.8.8.8.8.8.i.i.8.i.8.8.8.i.8.i.8.i.i.i.a.i.k.k.p.i.i.x.i.i.i.i.i.i.i.i.k.i.a.h.i.h.Y.!.A.q.k.z.k.r.t.z.h.h.t.r.r.y.A.SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXjXZ.s.b.s.w.j.j.s.s.a.a.s.0.7.7.7.3.5.1.1.1.l 1.6 e 1.l e w q 8 8 0 8 q 8 0 8 1 < 1 1 1 1 , , 8 1 1 2 2 2 7 5 e 2.5.=.6.5.1.1.=.5.1.1.1.1.6.1.5.6.1.7.7.8.s.s.f.f.f.f.v.f.v.H.H.v.f.v.v.H.uXuXI.I.L.L.L.P.P.P.P.L.L.H.d.a.i.a.a.a.a.d.a.a.a.a.a.a.a.g.g.d.a.d.a.g.d.a.a.f.d.a.g.s.d.a.l.k.a.k.n.k.q.h.h.8.3.4.4.8.0.a.s.s.v.N.M.P.L.yXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXB.I.n.n.v.s.s.w.s.s.s.g.a.0.q.s.q.q.r.k 8 8 1 q 1 8 2 2 2 1 2 1 2 2 2 2 q 2 2 1 1 1 q 1 1 4 1 2 5 l 3.7.7.7.7.7.7.:.7.g.7.7.7.0.7.7.7.7.7.7.7.7.7.7.7.5.:.7.5.5.7.7.7.5.3.5.7.7.1.1.1.1.5.1.5.7.5.6.6.u.6.8.8.p.6.i.6.i.8.8.8.8.8.i.i.8.i.i.i.8.8.i.i.i.i.i.x.i.k.i.i.k.h.i.i.i.i.i.i.k.i.h.i.i.i.z.E..Xm.q.z.k.t.t.h.t.j.j.j.t.t.4.S.HXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBXV.w.b.w.s.j.j.h.a.w.a.s.a.7.5.3.3.1.1.1.1.1.&.1.1.=.l e e e 7 2 8 8 q 8 0 8 8 q 1 8 0 1 1 1 1 1 1 1 2 2 2 i i l 1.6.=.=.5.1.5.=.1.5.=.1.5.1.5.1.1.5.1.1.5.7.8.a.h.f.s.f.f.v.v.v.H.n.H.H.H.tXtXI.I.L.L.L.H.I.K.F.G.a.u.u.q.q.a.a.a.a.a.a.a.s.a.d.a.s.d.a.f.f.a.f.d.f.a.a.d.f.a.d.d.d.f.l.a.a.l.J.a.q.r.7.3.7.8.8.8.q.w.s.j.v.N.B.P.K.yXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXN.B.n.b.s.v.b.s.s.w.s.w.w.a.0.q.0.s.r.8.=.8 2 q 1 2 2 q 1 1 1 2 2 2 q 1 2 2 2 2 1 1 1 1 1 2 1 1 4 3 3 u l 1.5.7.7.u.u.u.7.7.7.7.7.7.7.7.7.7.7.5.5.7.5.3.3.7.5.5.3.5.3.3.1.1.1.5.1.1.1.1.1.5.5.7.8.5.8.6.8.6.8.6.i.8.i.6.i.i.8.p.8.p.8.8.8.8.i.i.i.i.i.a.k.i.i.i.p.i.i.i.i.i.i.i.i.i.i.i.i.p.i.i.a.h.z.!..Xz.q.j.z.j.h.h.j.z.j.t.h.z.9.S.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXA.c.b.w.w.j.b.j.s.a.s.a.0.7.5.1.7.7.1.1.1.1.1.1.1.6 1.=.e e =.r q q q 8 1 8 q 8 8 8 1 1 1 8 1 1 8 8 2 3 5 5 u u 2.2.=.5.=.1.1.1.1.5.1.1.1.1.6.1.5.6.1.6.6.6.5.7.7.7.q.g.a.s.g.f.f.v.H.n.H.H.tXtXM.n.n.n.f.s.g.g.u.g.g.g.a.d.d.g.a.a.a.a.f.a.d.d.a.f.a.d.a.a.d.f.a.d.d.d.s.a.a.a.f.a.f.k.d.h.m.l.w.a.s.8.1.3.7.7.7.q.q.s.w.s.v.n.M.B.P.4XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXN.B.n.v.v.v.v.s.w.s.w.g.q.0.q.0.0.w.a.h.=.w 2 q 8 q 2 8 8 2 8 2 q q 8 q 1 2 q 2 2 1 1 1 2 1 2 1 1 1 4 2 3 e 2.1.7.7.7.:.7.7.7.7.7.7.7.7.7.7.5.7.7.5.7.3.5.5.5.5.7.7.5.1.7.5.3.5.5.5.5.5.1.5.1.5.5.7.p.8.6.8.p.8.6.i.8.8.8.i.8.8.i.i.8.p.i.i.i.i.i.i.i.x.i.i.i.i.i.k.i.i.i.i.i.i.i.i.i.k.p.i.i.h.a.h.q.U.XX!.z.q.r.z.j.h.h.z.z.t.t.h.z.b >XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX Xt.m.j.j.j.j.l.k.j.f.a.7.7.7.1.1.1.1.1.2.1.1.1.1.=.l =.=.=.r =.r q q 7 2 1 1 8 8 8 8 8 1 1 1 1 2 2 3 q e e e 1.1.2.1.6.2.=.1.1.5.5.1.5.5.1.1.1.5.1.1.2.x.6.6.6.6.1.6.7.7.7.7.g.q.g.a.s.s.s.a.tXtXa.f.a.s.a.q.0.0.i.a.a.a.a.a.a.a.g.a.a.d.a.d.g.a.a.a.d.g.a.f.a.f.a.d.a.f.a.f.f.d.a.f.f.a.j.l.l.a.q.w.w.1.;.7.8.3.4.8.0.s.a.s.b.n.M.P.P.eXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXc.I.n.v.v.v.s.w.s.w.w.s.s.q.0.0.0.0.q.f.x.=.e 7 2 2 2 2 q 2 q 2 8 q 8 q 2 2 2 2 2 2 1 1 2 2 2 2 1 2 1 1 1 1 3 5 l 1.5.5.7.5.:.5.5.7.7.7.5.5.7.5.5.7.5.3.1.1.1.5.1.1.1.1.1.1.1.1.1.7.5.3.5.5.1.1.5.6.6.8.8.6.8.8.6.i.6.i.8.8.i.8.p.8.i.8.i.8.8.i.8.i.i.i.i.i.i.i.i.i.k.i.i.i.i.h.h.i.i.k.i.i.i.h.8.7.i.h.U.=XW.t.q.h.j.h.r.t.j.j.b.j.h.m.9.sXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX3Xt.M.l.w.n.n.j.j.f.a.s.s.7.7.5.1.1.1.1.1.1.1.1.1.=.1.&.=.=.=.r =.=.r e w 7 q q q q q 8 1 8 8 1 2 5 5 5 e e 2.2.1.1.1.=.=.5.6.1.1.2.=.1.=.2.=.5.6.1.6.6.6.6.7.6.6.7.7.7.5.5.5.5.:.7.7.7.7.5.7.7.tXtX7.7.8.i.a.i.a.a.a.i.i.u.q.g.g.a.d.a.a.a.a.a.d.f.f.a.a.f.a.d.d.f.f.d.d.f.a.d.f.a.d.f.d.f.k.l.w.w.w.q.3.1.3.7.7.3.8.q.q.a.s.s.b.N.M.L.R.,XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXb.n.n.b.v.s.s.w.s.s.s.g.a.0.q.0.0.0.0.0.a.w.1.5 7 2 2 2 2 2 q q 2 2 q q 2 q q 2 2 2 2 2 2 2 8 2 2 2 1 1 q 1 4 4 3 5 u ;.1.5.5.5.5.5.3.5.5.7.5.5.5.3.5.5.1.5.1.1.1.5.1.1.1.2.1.1.1.5.5.1.1.5.5.5.5.8.8.6.6.8.8.p.i.8.i.6.i.i.i.p.8.8.p.i.i.i.8.8.i.i.i.i.i.i.i.k.i.k.p.i.i.i.i.i.i.i.i.i.i.i.i.a.q.8.i.k.r.R.;XT.r.a.j.j.z.h.h.j.N.t.w.k.h.V.AXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBXc.N.v.s.b.c.n.f.a.a.a.q.7.7.5.1.1.7.2.1.1.1.1.1.2.1.1.5.=.2.=.=.=.=.=.w w w w q q q 2 2 q q 1 1 3 6 w e 2.=.1.=.5.=.=.1.=.2.2.1.5.=.2.5.5.=.1.5.1.5.1.1.2.1.5.7.7.7.7.7.6.6.6.7.7.7.7.7.7.8.8.8.tXtX7.i.i.i.i.h.i.i.i.x.i.a.q.g.g.a.d.a.f.a.s.f.d.a.f.f.f.f.a.d.f.d.f.d.f.f.a.a.d.f.d.d.d.l.l.q.a.j.w.3.u 3.7.3.3.8.8.8.q.a.w.j.b.n.B.P.R.;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXc.I.n.b.v.b.v.v.w.w.s.w.s.q.0.0.0.0.7.7.q.h.8.1.7 q 2 2 2 q 8 q 2 q q 8 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 q q q 1 1 4 4 2 2 5 u l u l 1.1.1.3.3.3.1.5.7.3.1.l 1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.5.1.5.6.5.5.5.8.8.6.8.6.6.i.i.6.6.x.8.6.8.i.8.8.8.i.i.p.i.i.8.h.k.i.i.i.d.p.k.i.h.i.i.i.i.i.i.i.i.i.i.i.x.a.i.d.8.z.!.;XE.h.8.h.z.r.t.h.t.c.h.j.h.9.S.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXT.t.b.n.b.m.b.j.f.f.a.q.7.5.7.3.1.1.1.2.1.&.e 1.;.2.=.1.2.6.2.=.=.=.=.=.=.=.e e e r r w w w w w t 5 l 1.1.2.2.1.=.5.=.5.1.5.2.5.1.5.1.=.5.1.1.1.1.6.1.5.6.5.5.5.5.7.7.7.5.8.8.8.8.u.u.7.7.7.i.i.i.tXtXa.a.i.i.i.i.i.i.h.h.a.a.a.a.a.a.a.a.a.d.d.d.a.f.d.a.d.a.f.f.a.s.d.s.f.a.d.f.f.a.a.f.l.l.s.s.l.h.3.3.4.3.3.3.3.8.8.8.q.w.w.s.v.N.B.L.R.wXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXb.I.n.n.v.v.b.s.w.w.,.s.g.g.q.q.q.w.0.3.3.0.a.q.3.5 5 3 3 2 q 1 3 3 3 3 3 3 3 2 1 1 3 2 3 1 1 q 2 2 1 2 2 q 2 q 3 1 q 1 1 1 2 3 q w e e w e l e e 2.=.w w 6 k 6 6 l &.6 1.l &.1.1.1.1.1.5.2.5.6.7.7.6.7.6.7.6.8.6.i.8.8.8.8.i.8.i.i.i.8.8.i.i.i.8.i.8.i.i.p.i.k.i.i.d.i.a.i.i.a.i.d.d.i.i.i.i.i.i.i.k.i.h.h.z.!.rXE.h.2.q.r.h.z.z.h.m.t.j.t.t.lXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX,Xw.m.N.N.N.j.z.j.k.a.0.3.3.1.7.5.7.1.1.1.1.1.1.1.1.1.1.l ;.1.1.1.=.1.1.;.;.&.;.1.=.;.6 6 1.6 e ;.e 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.5.1.5.7.5.1.6.5.7.6.2.7.7.6.p.7.8.8.8.i.7.u.7.u.7.tXtX8.8.a.i.i.a.a.a.g.a.a.a.a.a.a.a.a.f.a.f.a.f.f.a.f.a.a.d.a.a.a.s.f.j.f.f.f.f.a.d.k.m.l.s.s.l.s.0.;.3.7.7.3.3.4.7.8.q.q.q.s.s.s.n.n.B.P.eXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXb.n.n.N.v.v.s.s.v.w.s.s.q.e.g.q.q.0.w.3.;.3.0.q.q.l 5 3 3 3 3 1 3 2 1 2 2 1 1 3 3 3 3 3 1 3 q 3 2 q q 2 q 2 2 2 q 1 2 2 1 1 2 3 3 2 2 3 3 3 3 5 5 5 5 3 5 5 5 6 e 6 1.1.1.1.1.1.1.1.1.1.1.5.1.6.5.6.7.7.7.6.6.8.6.i.i.8.i.i.8.i.8.8.i.i.x.i.i.8.i.i.a.i.i.i.k.p.i.i.i.i.i.i.a.i.i.i.i.i.i.h.i.h.i.i.k.k.h.a.x.m.T.rX-Xz.l 3.h.h.h.r.t.m.z.t.3.Z.SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCXc.n.c.b.N.z.j.j.k.a.q.7.3.1.1.1.1.1.1.1.1.1.1.1.1.6 =.1.1.1.1.1.1.1.1.l 1.1.1.e 1.6 1.1.l 6 1.l l 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.5.5.1.6.5.5.5.1.5.1.1.7.1.7.6.7.7.7.7.6.7.7.p.8.8.p.7.8.a.i.8.i.tXtXa.a.i.i.a.i.a.a.a.a.a.a.a.a.a.f.a.a.d.a.f.a.k.a.f.d.f.f.f.f.f.f.a.a.a.f.l.f.a.n.J.n.s.s.n.0.3.:.3.3.3.3.3.7.4.7.8.q.q.0.s.s.b.n.B.B.P.wXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAXb.I.v.N.v.b.v.w.w.s.w.w.w.q.q.q.0.q.7.7.4.7.0.0.q.r.4.5 7 7 2 3 3 2 2 3 2 2 2 3 3 3 4 3 q 3 4 3 3 2 3 3 3 2 2 2 3 3 1 3 2 2 2 2 2 2 7 2 4 3 3 3 3 5 5 5 5 5 l l =.e 1.1.1.1.1.1.1.1.1.1.5.2.1.6.6.4.7.6.7.6.6.8.6.i.6.8.8.i.8.8.i.i.p.8.a.i.i.i.i.i.i.i.i.i.i.d.d.i.i.i.d.i.a.i.a.i.i.i.i.h.i.i.x.i.i.i.p.8.a.8.z.W.wXrXZ.3.3.i.h.h.h.j.t.N.t.x % & @ % > q e &.p.u.z 1.1.2.5.-.6.5.=.=.=.=.-.-.1.1.1.1.5.5.7.5.1.7.1.5.6.6.4.1.7.7.7.8.8.8.8.8.8.u.8.u.7.8.i.a.i.tXtX8.a.a.a.a.a.a.d.a.a.a.a.d.a.f.f.f.f.f.f.a.a.f.f.d.d.f.k.l.a.j.j.l.j.a.q.j.j.h.q.0.0.q.q.8.8.8.7.7.3.3.7.4.3.4.7.8.q.8.a.a.j.v.b.M.B.P.;XJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmXw.I.n.b.v.v.v.,.v.w.s.w.s.a.0.0.0.q.8.q.4.7.7.4.3.7.7.3.3.7.7.0.0.7.1.u q q 3 3 p 3 3 3 2 2 5 3 3 3 q 5 3 q 3 3 3 3 5 w w 5 k w 6 l l l 1.1.=.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.6.5.1.5.6.5.4.5.6.1.5.1.7.7.6.7.5.5.7.8.8.p.8.7.i.i.p.i.i.i.k.a.a.a.q.0.0.8.7.7.7.7.5.5.:.5.7.a.a.7.i.i.i.i.i.i.i.d.a.i.i.i.i.h.k.i.k.i.i.a.8.q.m. X-X~.r.4.z.Z.h.J.r.y.BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgXc.J.U.Z.m.m.j.7.3.3.3.1.1.1.1.1.&.&.1.1.1.1.=.1.l k k l 2.1.1.l ;.:.;.3.l r e t 0 0 * % * * % % * > 0 0 3 l 6.5.1.1.1.;.3.3.1.1.2.l 3.l 1.5.1.1.5.6.1.7.1.6.1.7.6.6.3.6.7.7.8.7.7.7.q.8.u.q.i.7.i.a.7.a.a.tXtXa.a.a.a.a.d.a.d.d.a.s.d.a.f.a.f.f.f.f.a.f.f.k.f.k.k.l.f.l.l.n.n.h.q.a.m.j.s.s.w.q.0.q.8.8.7.4.7.3.3.3.7.7.3.4.8.8.8.8.w.h.w.b.b.N.L.P.:XJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxXw.H.n.b.s.v.v.w.w.s.w.q.0.q.q.0.0.q.8.4.7.4.7.7.3.7.7.3.3.5.5.5.7.7.0.7.1.u 5 3 2 3 3 q q w q 5 5 q 3 3 q q p 3 k 5 w 5 k i 5 k e e l e 1.;.1.1.1.1.1.1.1.1.1.1.1.1.1.=.5.1.=.1.1.5.1.5.5.3.5.7.3.6.6.7.6.6.7.5.7.8.u.8.8.8.7.7.7.i.a.i.8.a.a.a.q.q.3.3.7.5.5.5.:.:.&.;.6 &.&.;.7.8.q.a.k.k.k.i.d.p.i.i.h.i.i.i.h.i.i.i.h.q.8.q.Z..X=XU.4.q.z.n.z.h.x &XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX XN.K.U.m.J.l.q.;.3.3.1.1.1.1.l 1.1.1.1.l 1.1.1.1.=.k l 1.7.7.1.u :.;.3.z k q 0 * * * * * * = * * * * * - * 0 q q l 3.3.:.:.1.1.1.1.z z z 5.1.5.7.1.7.6.5.5.2.7.7.7.7.4.7.7.7.8.u.8.u.u.7.7.i.7.8.u.i.a.a.i.tXtXa.a.a.a.a.a.d.a.a.a.d.f.a.f.d.f.f.a.j.j.a.f.l.k.f.a.l.l.m.n.f.w.w.j.j.s.a.s.q.q.7.0.q.q.8.q.0.7.3.3.3.3.3.7.4.4.8.q.8.w.w.j.b.n.B.B.P.:XJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXMXw.I.b.b.v.s.v.w.s.w.s.g.s.0.0.0.0.8.q.4.7.4.3.0.3.7.7.5.;.3.5.3.:.7.0.0.7.5.;.5 5 5 3 q q q q 3 3 3 3 3 3 5 3 k 3 k w 5 5 k l k e l l e 1.&.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.5.6.1.1.5.5.6.5.4.5.2.7.6.6.7.6.8.u.8.i.p.8.8.p.i.i.h.a.q.q.q.7.7.8.q.7.3.7.4.4.4.1.l 1.1.l l 6 5 5 6 l 1.6.i.k.k.d.i.i.i.i.i.h.i.i.i.i.a.h.h.a.a.h.m.!.!.m.z r.m.l.z.y.V.HXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXZ.B.m.M.l.m.s.3.1.7.3.1.1.&.1.1.1.1.1.1.1.1.l ;.1.1.1.5.5.5.5.5.;.1.c q 0 0 y = = = = = = = = = = = = = * = * * 0 0 h k z 3.l 1.5.p.5.3.3.1.5.1.7.6.5.6.2.7.7.6.6.7.7.4.7.7.7.8.i.u.i.7.8.i.u.i.7.a.u.8.i.i.tXtXa.a.a.a.a.a.a.a.f.a.s.a.f.d.f.j.f.f.k.f.j.j.j.j.k.l.l.l.l.a.a.s.j.s.a.q.q.q.q.0.0.q.q.q.q.8.7.4.7.3.0.7.3.3.7.8.8.8.a.r.h.s.b.b.N.L.P.XXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXlXv.I.b.b.v.b.v.s.s.s.w.e.0.w.q.0.0.q.7.0.0.0.7.3.3.7.7.3.5.3.;.3.7.:.5.5.7.8.a.3.2.l 5 5 3 3 3 q q w w q w q w 3 w w w w e 5 6 l l l =.l 1.1.l 1.1.1.1.1.1.1.1.1.1.1.=.1.=.5.1.6.1.5.1.5.5.1.5.6.5.7.6.7.7.5.7.8.8.p.7.8.p.8.i.d.k.j.q.q.a.w.e.z k i 3 4 3 , 4 , , , , , < , 4 w 3 7 7 5 e 1.6.i.k.G.d.i.h.i.i.i.h.k.h.i.i.a.i.i.i.h.Y.=X!.r.3.l.M.n.j.9.xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXfXN.Z.b.M.n.z.3.;.3.8.1.6 l 1.6 1.1.1.l 1.&.1.1.1.1.1.&.-.=.6.=.r w 0 0 0 = ; ; ; C C C C C C J C C C C = = = = = = 0 0 0 q k c 2.p.p.u.7.1.5.7.5.7.6.7.7.6.7.6.7.6.6.6.7.7.7.7.8.7.i.7.i.u.7.a.8.a.i.a.a.i.a.tXdXa.a.a.a.f.a.d.a.d.f.d.d.d.f.a.f.j.f.l.l.l.l.f.l.n.n.l.a.w.a.l.n.s.0.7.0.0.0.0.q.q.q.q.q.q.q.0.0.7.3.3.3.7.3.4.8.8.8.8.h.w.j.v.v.B.K.P.XXFXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgXb.H.n.b.v.b.s.s.s.q.s.g.g.w.0.q.0.8.8.4.4.7.7.7.7.3.5.7.7.3.;.7.3.3.3.1.5.7.0.7.7.7.3.u 3 3 3 3 k 3 5 q 3 w k 5 5 w w e e l e l 1.e 1.=.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.5.1.5.5.7.1.5.7.5.5.7.5.6.7.7.7.7.7.7.i.i.h.a.a.d.a.q.w.,.4 # X X X X X X . . . . . . . X . + < q 5 e 7 4 5 u 1.p.a.i.i.i.i.a.i.h.i.a.i.a.i.i.i.k.k.k.Y..XZ.4.3.n.J.k.y.%XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKX%Xm.M.b.N.j.q.3.3.3.3.1.1.e 1.1.1.l 1.1.1.1.1.1.1.1.1.:.5.3.c t 0 0 = = ; ; C C C G G C Z C C C C C C C C J C = ; = = * * * 0 0 q c 2.p.1.1.1.5.5.7.5.6.6.2.7.6.7.7.7.7.7.7.7.8.7.p.p.u.i.u.i.u.i.7.i.a.8.a.a.tXtXa.a.a.a.a.a.a.f.a.a.f.d.f.d.f.k.l.j.l.l.l.l.m.l.s.0.s.s.k.l.s.w.0.0.0.0.7.0.q.q.q.q.0.q.8.8.q.4.4.7.3.3.7.3.4.8.8.8.8.h.h.w.b.b.N.P.R..XHXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXpXb.I.n.b.v.s.s.w.s.s.w.g.w.0.0.0.0.7.q.q.7.0.7.7.7.3.3.7.5.7.7.3.l 3.4.4.7.5.1.5.7.7.4.3.z i i q 3 5 q 3 w q w w w w w e w l e e e 1.=.1.1.l 1.1.1.1.1.1.1.1.1.1.1.1.=.1.1.5.1.5.2.5.1.5.1.6.6.7.7.2.6.6.6.3.7.6.5.5.u.i.h.k.l.k.a.a.q.w.p + o % % % % > > f f f g f % o . # 1 w 7 7 4 4 7 5 1.1.8.i.h.i.i.h.h.a.i.h.a.d.i.k.i.i.x.z.T.E.h.;.w.J.z.t.y.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXJXW.K.K.M.b.a.3.3.3.7.1.l 1.;.1.1.&.1.6 =.1.1.1.1.1.1.2.u i 3 0 0 y ; ; C C C Z A D D F ( ( D S G G G G C C C C C V C ; = = = * % 0 q q r 2.2.6.7.5.5.5.7.7.7.6.6.7.6.7.7.7.8.7.8.8.8.i.q.7.8.a.a.7.a.a.i.a.i.a.tXtXa.a.a.f.a.f.d.a.f.a.a.f.f.f.f.k.l.l.J.n.n.l.w.s.s.s.f.s.s.w.0.0.3.7.7.0.q.q.7.q.q.q.0.8.q.q.8.8.7.4.7.7.3.7.7.7.8.q.8.q.s.h.b.v.B.P.P.XXHXKXKXKXKXKXKXKXKXKXKXKX KX KXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXpXv.v.N.b.v.v.b.s.w.w.s.0.0.0.0.0.0.7.7.7.3.0.3.3.7.3.7.3.3.7.3.:.3.5.3.5.3.5.3.3.3.3.4.7.8.8.4.z k k 3 3 w i 5 5 5 w w k l 6 1.;.1.1.l l 1.1.1.1.1.1.1.1.1.1.1.1.1.1.6.1.5.5.5.1.6.1.1.5.1.7.6.6.6.2.1.1.5.6.6.1.7.0.a.f.k.f.f.s.w.d.d.a.4 . . $ m X%X|.|.%XW././.S.|.S.@Xn o X , 5 2 2 3 5 7 2 3 3 2.8.h.k.i.d.d.d.h.a.a.a.h.i.a.i.x.h.z.~.m.7.7.t.N.j.t.mXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXCXA.n.M.N.b.3.4.3.1.1.1.1.1.1.1.1.1.1.1.1.:.;.1.l l x 2.> 0 * = = C C C C U S ( ( ) _ { | | | { { ) ( F G G C C C C C V Y J = = = * * - 0 q 2.x.6.5.:.u.8.6.1.7.7.5.7.7.7.8.7.8.8.8.8.8.7.i.a.u.8.a.i.i.0.a.a.a.tXtXa.s.a.f.a.a.a.f.f.s.a.a.f.d.f.l.l.m.l.l.f.w.0.w.b.n.v.0.:.4.0.7.7.q.0.q.q.q.q.q.q.q.q.8.8.4.8.3.3.7.3.3.1.3.3.4.4.8.q.q.w.w.s.b.B.K.P.XXFXKXKXKXKXKXKXKXKXKXKXKX KX KXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXpXv.v.n.t.v.v.s.s.s.s.w.s.0.a.0.0.0.7.0.7.7.3.0.3.e.3.3.5.7.5.5.3.5.3.:.3.5.3.5.3.3.3.3.3.7.7.4.4.3.3.l i 5 5 k l l l l k u 1.l l u 1.1.&.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.5.5.2.2.5.1.5.1.5.5.7.1.7.2.6.6.6.6.7.1.7.0.w.s.j.j.f.a.a.s.d.d.a., . o g %X4X6X4X4X X < q 7 7 3 7 2 7 3 7 2 7 5 5 5 u 7.x.a.a.h.i.h.a.i.k.i.p.i.h.k.z.U.w.;.d.J.y.gXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXVXA.j.F.s.z 4.1.1.1.1.1.1.1.1.1.1.1.1.6 1.1.5.5.2.t 0 C G F D ) _ ' ` ` ` ` ] ] O.O.$.o.X.o.o.$.#.#.0X0XIXIXLXKXKXLXKXPXIX| { D A A C C V C = * * % , 2.6.7.2.7.7.7.7.7.7.8.8.8.8.8.8.8.8.i.a.q.a.a.i.i.a.a.a.a.a.tXtXa.a.f.f.k.k.k.l.d.a.a.w.r.9.z k k 3 3 5 k k u u l 3.3.0.0.7.4.7.8.4.8.8.0.q.q.a.q.q.0.q.q.8.8.8.7.4.7.3.3.3.7.8.8.8.8.q.w.w.s.n.N.K.I.oXFXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX4Xv.I.v.v.v.v.w.w.s.s.s.q.g.0.0.0.0.7.4.0.7.7.7.7.3.7.7.7.7.3.;.7.3.5.7.3.5.3.3.3.3.;.3.3.3.;.3.z l k w q 3 5 u u 1.3.4.q.1.1.l 2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.6.1.5.2.5.6.5.5.1.5.5.7.5.7.1.1.1.5.h.z.k.l.j.k.k.j.l.f.h.a.w.a.u.8., . o j #X6XiXpXgX1X%X>XiXiXsXxXmX7X% X , 5 5 7 5 2 2 2 7 3 8 3 5 5 7 7 l 7.d.a.i.h.i.a.i.i.k.i.i.k.h.k.Y.z.;.a.z.Z.>XKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXzXc.j.k.q.l 7.1.1.1.1.1.1.1.6 1.1.1.1.1.1.6 ;.5.c h ; Z F ( ) _ ' ' ` ` ` ` ] ] ] O.O. .X. ...o.$.#.#.0XqXIXIXIXIXIXPXIXqXqX$.{ ( D G C C C = = * % < e 6.5.2.7.7.7.8.7.8.8.8.8.8.q.8.8.q.8.a.i.a.i.a.a.a.a.a.a.a.tXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXkXdXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXkXtXtXtXtXtXtXtXtXtXtX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&Xv.v.b.b.v.s.s.s.s.w.q.g.w.w.0.q.q.7.7.7.:.3.3.7.7.7.3.5.7.5.3.7.:.3.;.5.3.3.:.3.3.3.3.3.3.;.3.;.l l u i i i 5 5 5 i l z 8.i.5.1.u l u l 1.1.1.l l 1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.5.5.1.5.a.l.l.n.l.f.j.f.j.j.f.a.s.0.w.q.l : . o g $X6XdXsXaX1X>X%X . < 6 6 3 2 2 8 7 2 8 3 7 7 5 5 5 7 1.p.k.k.i.k.a.a.i.d.h.a.a.a.k.F.U.q.1.h.m.E.KXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXyXf.n.a.4.1.l 1.2.1.1.1.1.1.1.1.1.1.&.1.1.1.;.7.q ; G F ( ) ) ) _ ' ` ` ` ` ` ` ] ] ] .] .......+.+.$.#.0X0XqXqXqX0X0X0X0X$.$.| ) F G G C C = = * % < l p.p.7.5.8.p.7.8.p.8.7.i.u.q.i.i.a.8.i.8.8.a.a.u.7.q.q.a.tXtXtXdXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXyXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXdXtXtXtXtXtXtXtXuXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXuXtXtXtXtXtXtXtXtXtX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX:Xv.v.b.b.v.v.s.s.w.w.w.q.q.q.0.8.0.7.0.7.3.0.3.0.7.3.7.5.3.3.5.5.3.3.3.3.5.3.3.3.3.;.3.3.3.3.3.3.1.l l i 5 k i 5 5 5 5 i l 1.7.7.1.1.6 1.l 1.l l 6 1.1.1.1.1.1.1.1.1.5.1.3.6.1.1.1.1.1.5.5.1.3.5.1.3.7.f.l.l.n.l.l.l.k.l.j.a.a.a.e.8.8.3.< . o j $X6XsXiX1X . < e e 5 7 7 3 2 7 7 2 2 7 7 5 7 7 e p.h.i.i.a.a.a.i.i.a.a.a.h.i.z.U.h.7.q.z.T.KXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKX>Xs.j.q.1.l l l 1.1.l 1.&.1.6 1.1.1.1.1.1.;.;.u 0 Y S ( ) ) _ _ ' ' ` ` ` ` ` ` ` ] ] ] ] ] ] ] ] ..o.+.+.#.#.0X0X0X0X0X0X#.#.$.O.} ) F G C C C = * - > c 8.i.5.u.7.7.7.p.8.u.u.a.i.u.i.8.i.a.i.a.i.a.i.0.a.s.a.a.a.a.k.n.k.h.h.q.4.3.c c k 5 3 5 5 q i w i i l u 1.1.3.3.3.7.3.0.7.7.q.4.4.q.q.q.q.q.q.q.a.q.q.8.q.8.8.4.4.7.3.3.3.3.3.8.8.w.s.s.b.b.B.P.P.oXFXLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX:Xv.B.B.b.v.s.s.s.s.w.0.w.a.q.0.q.0.7.7.0.3.3.:.3.7.5.3.3.5.7.7.3.7.5.7.5.5.5.5.3.3.3.3.3.3.3.3.3.u l u i u w 5 5 5 5 3 7 3 i l 4.8.5.;.&.e 6 1.1.1.l 1.1.1.1.1.1.1.1.2.1.1.1.5.1.5.1.1.5.1.5.5.5.1.7.a.l.l.l.l.n.l.k.h.j.a.a.s.g.7.3.7.4.< . o j %XiXsXdX>X1X q 4.p.7.7.8.p.7.i.8.7.i.7.7.8.i.i.8.i.i.i.a.a.a.i.a.a.s.a.a.k.l.l.j.w.4.3.z l 3 i i 5 i 5 5 w w k k l l l l 3.3.3.3.3.0.3.0.4.7.7.q.8.q.0.q.q.a.q.q.q.q.8.q.q.8.8.7.4.3.3.3.7.7.7.q.q.s.s.b.b.N.P.P.oXSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXXXb.I.N.v.b.w.v.w.s.w.w.g.0.q.0.8.8.8.7.7.7.3.:.3.0.3.7.7.5.3.3.7.3.5.3.3.5.7.7.3.3.3.3.3.3.3.5.3.;.z u l l 5 5 5 5 5 5 5 5 p 3 k 4.q.8.5.l l 2.1.l 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.5.1.5.7.5.8.k.J.l.l.l.j.s.a.a.a.a.7.u.a.7.1.5.4.< . o j @XpXfXyX,X1X4X1X%X*XpXjXBXiXg . $ c 7 3 7 7 7 7 7 2 3 3 3 3 7 7 7 7 7 7.q.h.a.a.a.i.a.h.a.a.a.d.j.z.m.8.3.h.Z.VXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXHXW.s.q.3.3.l l 1.1.1.1.1.1.1.l 1.&.1.1.1.1.4.4.g ; ( ( ) ) ) ) ' ' ' ' ' ' ' ' ` ` ` ` ] ] ] ] ] [ ..+.#.0X0X0X0X#.+.+.+.+.+.+.+.+...] _ ) F G C C = - % 0 k 8.7.7.8.p.8.8.u.i.7.7.a.8.i.a.a.i.i.a.a.i.a.a.a.j.f.a.f.l.j.h.w.q.3.l z i i 5 k i 5 5 i w w w u u l u l 3.3.3.3.3.7.7.7.7.7.q.8.q.q.q.q.q.q.q.q.q.a.q.q.8.q.7.7.4.3.3.3.3.7.8.7.s.a.s.j.b.N.K.P.oXFXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX:Xn.L.N.v.v.v.w.v.s.0.0.s.q.q.0.q.q.8.7.7.7.3.7.0.7.3.3.5.7.7.5.5.7.7.7.7.7.7.7.3.3.7.3.7.4.3.3.3.3.3.l u u i 5 k i k k 5 k 3 p i l 8.8.8.1.1.1.l 1.l 1.1.1.1.1.1.1.1.1.1.1.1.7.1.5.1.5.5.1.5.1.1.7.h.z.l.k.l.j.f.a.a.w.q.q.a.q.7.3.l 1.k : o g @XpXyX1X1X1X>X i 4.7.7.7.7.8.p.7.i.i.i.u.a.u.i.i.i.a.a.h.a.a.a.a.a.a.a.j.k.a.e.4.4.z c l k k k k k i k i w w w l l 1.l 1.;.3.3.3.e.7.3.7.e.4.q.q.8.0.q.q.q.a.q.a.q.q.8.q.q.q.7.7.7.5.3.3.7.4.8.q.q.s.s.b.b.M.K.P.oXFXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&Xv.I.B.b.v.v.s.v.s.w.0.s.a.0.0.8.q.8.7.7.3.:.:.7.7.3.3.7.3.5.7.3.7.7.7.7.7.5.7.3.3.7.7.3.3.7.3.3.3.l u l l k l k k i i i i i k k l k 4.r.7.2.2.l 6 l 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.5.3.5.1.i.k.z.l.j.f.f.a.a.a.s.w.0.0.q.4.z z z c : o g %XsXpX1X,X1X>X : $ $ # O X X X X . . . X o j @X6XsXsXpXpXpXpXaXpXdXhXBXcX/.j > > : $ @ O O o o o o X X X + : , 4 5 5 6 5.k.d.i.i.h.a.i.a.h.i.a.a.l.m.8.3.z.6XKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXBXt.a.3.l e l 1.;.1.1.1.&.l 1.1.1.r 2.5.u.2.h ; A ( F ( ) ) ) ) ) ) ' ' ) ) ' ' ` ` ] ] ] ] +.#.#.#.0X#.0X0X0X0X#.#.#.+.@.[ [ ..@.@.@.@...] ] ) F A C C = * 0 3 7.7.7.0.q.p.i.i.8.a.7.a.i.a.8.a.h.8.8.a.h.l.a.t.t.d.5.x y.9.9.x x x k 4.l k l k k l l w l u u l l 1.;.;.3.3.7.3.7.7.7.7.e.8.q.8.q.q.q.a.q.q.q.q.q.a.q.q.8.8.8.4.4.3.3.7.4.7.q.q.w.s.j.b.N.K.P.oXSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX XK.n.v.b.s.b.s.s.s.KXKXg.q.KXKX8.7.8.7.7.:.7.7.3.3.7.7.:.7.7.7.3.7.7.7.7.7.:.7.7.3.7.7.7.KXKX7.3.3.l l l l 5 u w l l l l z z z l 9.x 9.c 5XHXZ.w 1.6 l l 2.1.1.1.1.1.1.1.1.1.1.1.1.6.1.1.5.1.5.8.f.l.F.a.< O . X O # $ $ $ $ $ @ o . o j $XiXsXiXiXiXiXiXiX3XiXsXBXcX$X/.C.C.C.C.D.M m n j j j g j f + . O , 5 5 7 1.a.k.i.d.i.i.h.i.i.d.a.a.l.m.q.1.h.6XKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXCXh.h.3.l e l 5.;.1.1.1.1.1.1.1.;.c =.p.p.l h C A ( ( F F ) ) ) ) ) ) ) ) ) ' ' ` ` ] ] [ [ +.#.#.#.#.#.#.#.0X0X0X#.#.#.+.@.] ....@.@.@...] ] _ ( A C C = * % , 3.7.7.7.7.i.p.i.i.i.u.i.a.i.8.a.h.i.a.a.a.a.l.h.r.3.=XW.h 9.x 9.x 9.x z l z l l u 5 k i l 6 u l l 1.3.3.3.3.3.3.3.7.7.4.8.7.4.q.0.q.q.q.w.a.q.a.r.r.q.8.q.8.7.3.7.3.3.3.3.7.q.q.w.s.j.b.N.M.P.oXAXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX.XI.v.N.n.b.s.w.w.w.KXKX0.0.q.KXKX0.4.7.7.3.7.7.5.KXKXKXKXKX7.7.7.7.KXKXKXKX3.7.3.3.KXKXKXKXKX5.3.3.l l l l 5 l l l k l l z x x z 9.9.9.y.CXKXBXy.l 1.&.l 1.1.l l 1.1.1.1.1.1.1.1.1.6.1.6.5.;.5.a.s.b.l.3 X . X f m M D.D.D.M m n g f % @ O o O j %X9XdXiXsXgXiXiXiX3XiXhXmXjX9X@X|.S.C.S.C.S.C.C.C.S.S.C.@X@Xm # . : 5 7 5 ;.i.d.d.d.i.d.d.i.a.a.a.a.k.J.q.l r. M S.S.S.S.S.S.S.S.|.S.S.D.m m j m %XiXiXiXpXpXiX6XiX3XiXcXzXZXBX6X$X*X*X&X2X-X2X2X$X$X*X$X*X$X@Xf . + 3 7 7 6 8.a.i.i.h.a.i.h.a.a.a.h.h.z.a.1.r.6XKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXCXt.a.3.l 5 1.5.;.1.;.1.1.1.1.1.2.2.=.p.4.0 ; Z F F F F F F ) F ) ) ) ) R R ' } ` ] ....o.o.+.+.@.+.+.+.+.#.#.#.#.#.0X#.#.#.+...] ..o.o.o.[ ] ` ' F G Y C = * : 5 z 8.7.u.u.x.i.i.a.a.8.a.a.h.8.a.h.a.q.k.b.h.6.R.HXKXHXV.x y.x x x x x z z k l l k l i l l l u l l 3.;.3.3.3.3.4.4.7.7.7.4.q.8.8.0.q.q.q.q.q.q.q.r.8.q.q.8.8.3.3.3.3.7.7.7.q.q.a.s.j.b.M.K.P.oXVXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX.Xn.v.v.b.b.s.s.s.s.KXKXq.0.q.KXKX7.7.KXKXKXKX3.3.KXKX7.3.KXKX7.7.5.KXKXKXKXKX7.3.KXKX3.7.KXKX5.3.3.3.l l l l l l l l 4.l 4.4.4.9.y.x y.Xi y.x 9.9.z x z z c k l k l l i l u l l 1.;.3.3.3.3.3.7.0.7.e.0.7.e.8.q.q.q.q.q.q.q.q.q.a.q.8.8.8.4.4.7.3.3.3.3.4.8.q.w.w.b.n.B.B.I.oXAXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX.XI.B.N.b.b.b.s.w.w.KXKX0.0.q.KXKX8.4.7.7.7.7.3.:.KXKX7.7.KXKX3.7.KXKX7.7.KXKX7.3.KXKX7.3.KXKX5.3.3.3.3.l l l l z l x 4.4.4.4.4.4.v b c.AXKXKXKXKXKXdXk l l l 1.1.1.1.1.1.1.1.1.1.1.5.5.1.7.3.8.k.n.j.r., . . g %XxXZXZXZXBXZXZXZXZXNXBXBXBXmXhX3XiXsXkXpXpXpX7XyX7X6X6XiXaXhXmXzXzXhXxXxXxXxXxXzXxXxXxXxXDXFXcXg . 9 7 2 7 7 3.i.a.a.a.a.i.a.i.k.a.a.h.F.z.3.x.aXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXSXU.7.3.l 5 1.1.1.1.1.1.1.1.1.1.1.=.6.1.h ; ; Z Z F F S F ( ( ( ( F F R ) ' ` } ] .......o.o.o.o.@.+.o.o.o.@.@.+.#.#.#.#.#.#.#.+.[ ] ] ] [ ] ] ' ) F G C ; * @ : t x.i.u.i.8.8.a.i.a.i.a.a.h.x.h.a.a.a.l.w.k ZXKXKXKXKXBXx b v b y.z x x x z z l k k l l l l l l 1.;.3.3.3.3.3.3.3.7.7.4.0.8.q.q.q.q.q.a.w.q.a.r.q.r.q.q.8.8.4.3.3.3.7.3.8.q.q.a.s.s.b.N.L.P.oXVXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX.XI.N.v.v.s.s.s.w.s.KXKX0.0.KXKXq.0.7.7.7.7.7.7.:.KXKX3.5.KXKX7.7.KXKX7.3.KXKX:.3.KXKX3.3.KXKX5.3.3.l l l l l z z l 4.x 4.4.x.y.x y.v A.KXKXKXKXKXKXKX%X1.1.6 e 1.1.=.1.1.1.1.1.1.1.6.=.1.2.7.8.k.z.k.t., . o g %XpXzXzXzXxXzXzXxXxXxXfXhXhXhXsXfXsXdXdXgX4X1X>X>X1X1X9X6XiX3XpX6XpXiXpXgXaXaXpX7XpXpXaX8XnXBXjXj X 9 2 q 7 7 1.i.i.a.a.h.a.a.a.i.a.a.q.J.z.3.r.sXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXSXT.7.3.u 5 1.;.;.1.u 1.=.1.1.1.=.=.6.6.h ; C C Z F F S F ( D ( D D R F ) ' ` } ` ...o. ...........o.o.o.o.@.@.+.+.+.#.#.#.#.#.+.@.] [ [ ] [ ] ` ' D G C = * & @ q 4.i.i.i.4.q.a.a.i.a.a.a.h.h.a.a.h.k.a.&.eXKXKXKXKXKXJXA.x c.b 9.x x x 3.l l k l k l l l l l z 1.u 3.1.1.3.3.3.7.0.7.0.7.8.8.q.q.q.q.q.q.q.a.a.q.q.8.q.8.8.3.7.3.3.7.3.8.8.q.w.a.j.b.B.L.B.oXVXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXoXM.n.c.v.v.b.s.g.w.KXKXKXKXKX7.7.7.4.7.7.7.7.7.7.KXKXKXKXKX7.3.7.3.KXKXKXKXKX3.7.7.KXKXKXKXKX3.3.1.3.3.z z z l l z 3.x x 4.x q.9.9.b *XKXKXKXKXKXKXKXHXZ.u 6 u u =.6.1.1.1.1.1.2.1.1.1.1.1.1.a.k.j.h.h.q . X f S.3XfXfXfXgXfXlXsXiX,XsXfXgXsXaXgXsXdXsXpX4X&X$X#X@X@X$X5X3X3XyX3X3X3XdX2X&X>X4XpXiX6X6XpXhXBXhXj . + 2 7 7 7 &.i.i.a.a.i.i.h.a.d.d.a.a.m.m.l r.nXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXW.5.5.6 k l =.5.1.1.1.1.1.1.;.1.5.8.c 0 ; ; Z Z Z S S F ( D D D D F R ) | } } . . ... .] .... .....o.o.o.o.@.@.+.+.+.#.#.#.#.+.+.] ] [ ] ] ] ` ' D G C = - & @ 0 4.8.7.u.i.i.i.i.i.i.a.i.a.8.k.7.l.j.u S.KXKXKXKXKXKXKX*Xz t.x b x 4.x x 4.x z l z l l l l l 1.3.1.1.3.3.3.3.7.7.4.4.7.0.e.8.8.0.q.q.q.a.a.r.q.q.r.q.q.8.8.4.7.3.3.7.8.8.8.w.w.s.b.b.B.B.P.oXAXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX XM.I.b.v.v.s.s.w.s.q.q.g.0.0.0.7.4.4.7.7.:.3.0.7.KXKX7.7.5.7.7.5.3.3.3.3.0.3.3.0.7.3.0.3.7.3.3.3.1.z 1.z z l l z 3.z x 4.4.x q.w.e.b nXKXKXKXKXKXKXKXKXfX4.;.i u e =.1.1.1.=.1.1.1.1.1.1.7.1.a.h.j.a.h.q X X f C.bXaXsXfXlXfXiX1X&X%XiXsXdXgXaXpXpXgXfXdX3X*X$X@X@XC./.*XX&X$X%X%X$X*X4XiXhXNXhXj . @ 7 2 2 7 1.a.k.h.h.k.h.a.k.a.a.k.k.z.m.1.^.FXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXX4XyXpXdX&XyXgXsXsXaXpXfXmXmXxXfXiX>X%X@XC.D.C.1X4X3X3X3X3XdX*X$X*X>X*X&X@X%X1XsXZXhXj . + 7 2 7 7 1.i.i.h.a.h.i.k.h.a.d.k.h.z.Z.1.z.KXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXfX4.1.e i c =.-.2.1.1.1.;.1.1.l 3.2.q 0 ; ; Z Z Z A A F S S S F F D %.' } } } . ... . . ... . .} ` ` ` ` ..o...o.+.+.+.#.+.+.+.+.O.] O.] ] ` ` ' ) A C = * & o : l 4.3.0.i.i.8.i.i.i.a.a.4.s.a.F.8.c.FXKXKXKXKXKXKXKXKXKXS.z t.v 9.4.x x x z c 2.z k l l l 3.1.1.1.3.3.3.3.3.7.3.4.7.0.0.7.q.0.0.q.q.q.q.q.q.8.r.q.8.q.8.e.8.4.3.3.4.8.8.8.w.w.w.j.n.M.K.P.oXAXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"tXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXyXtXtXtXtXtXtXtXtXtXtXuXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXuXtXtXtXtXtXuXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXdXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXyXtXtXtXtXtXtXtXtXtXtXtXtXtXtXdXS.3X3X1X1X4XiX3X4XyX$X3XfXlXsXsXpXxXZXBXmXjXgX7X1X@X/.M C.1X3X3X3X3XyXpX>X&X*X>X2X&X$X|.&XsXNXhXv . + w 2 7 7 1.h.k.a.k.i.h.a.a.a.k.a.h.z.m.2.A.KXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXBXt.1.6 5 l 1.1.1.1.l 1.1.1.1.l 1.4.c 0 ; ; Z C Z Z A A S S F F F R { _ ` } . . . . . ..... .` ` ` } . .o.o.....+.+.+.+.+.+.+.+.O.] ` ] ] ] ` ' ) A C = & o @ , l 7.e.e.8.8.a.i.i.a.i.h.7.s.F.7.l pXKXKXKXKXKXKXKXKXKXKX$Xz 9.y.9.9.x 9.4.x 2.c 3.l l l 1.l l 1.3.z 3.;.3.3.3.3.3.0.3.7.0.8.0.0.q.8.q.q.a.a.q.q.q.q.q.q.4.8.8.3.3.3.4.8.7.w.a.s.b.m.N.P.I.oXFXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"tXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXyXtXtXtXtXtXuXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXyXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXdXtXtXdXdXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXC.X@XC./.X2X$X$X&X>X6XfXZXxXm X @ q 7 7 5 1.a.k.h.d.h.a.h.k.a.k.k.h.F.z.=.=XKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXGXA.l 6 6 l 2.1.1.1.1.=.1.1.1.1.1.7.2.q = ; ; C Z Z F A S S S A F D { _ } } } } . . . . . .} } } X.X.o.X.o.o.....o.o.+.+.+.+.+.+.O.` ] ` ] ` ` _ ) A C * & & : q 7.a.0.q.i.a.i.a.a.a.i.a.d.d.k.z V.KXKXKXKXKXKXKXKXKXKXKXiX9.9.9.y.4.x 4.4.2.x l z l l l 1.1.1.1.1.1.3.3.3.3.:.e.3.7.4.0.7.7.7.0.q.0.q.q.q.q.a.q.x.8.q.8.8.8.4.3.3.7.7.8.q.w.s.a.v.b.M.K.K.oXFXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX:Xn.I.v.b.v.v.s.w.w.q.q.0.0.0.0.4.0.3.3.0.3.7.7.7.7.3.3.7.3.7.7.7.3.e.7.7.7.7.:.e.3.7.3.3.3.3.3.3.1.3.3.l l 1.4.2.4.4.4.9.y.e.r.9.v JXKXKXKXKXKXKXKXKXKXKXKXKX,X4.l w 1.1.1.1.1.1.1.1.1.;.1.1.8.h.f.0.8.h X X f C.X&X$X$X&X1X9X4XpXxXZXzXM X + q 2 7 5 1.h.i.k.a.k.k.a.k.a.k.k.k.U.h.2.kXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKX.Xi =.5 l 1.1.1.1.1.1.1.1.=.=.&.5.i.r = ; ; C Z Z Z A S S A A S R { _ } } } } . . ... . . .} X.X.X.o.o.X.o.o.o.o.o.@.o.+.o.o.o.O.` ` ] ` ` ` _ ) G J * @ @ > w i.i.7.a.i.i.i.i.i.i.a.a.d.G.s.z dXKXKXKXKXKXKXKXKXKXKXKXzXt.b b y.x.b 9.x x 4.2.4.l l 1.l 1.l 1.l 1.1.;.;.3.:.3.3.3.7.0.q.4.0.0.7.q.0.q.q.q.q.q.q.q.q.8.8.4.4.3.3.7.4.8.7.w.a.w.s.b.M.P.P.oXFXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX4Xb.I.b.b.s.s.b.s.s.s.w.0.0.0.3.0.3.3.7.7.3.0.3.0.7.7.7.7.7.7.:.3.7.3.7.7.7.7.7.3.3.3.3.3.3.3.1.3.3.1.3.3.z 4.4.x 4.4.9.9.b e.r.9.S.KXKXKXKXKXKXKXKXKXKXKXKXKXFXz.1.&.l 1.1.=.1.1.=.1.1.1.1.1.7.a.w.w.q.k X X f S.1XpXsXlXxXxXfXpXiX$XXpXdXsXfXlXlXzXhXiXiXlXdXdXgXfXsXfXBXHXLXGXCXzXfXiXyXiX6XiXyX9X6X6X6XaX9X9XiXpX6X9X7X6XcXCXjX> 9 2 5 7 6 7.a.i.a.a.i.i.a.a.i.k.h.F.F.h.h JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXBX8.5.i k =.=.1.1.l 1.1.1.1.l l ;.:.x g g ; C Z Z S S S S S S S R ) ) ` } } } } . .X.o.} } } } X. .X.X. .o.o. .o.o.o.o.@.o.o.o.] ` ` ` ` ` ' _ D G = * @ > l z x.q.8.p.a.a.a.8.0.a.s.g.f.a.3.>XKXKXKXKXKXKXKXKXKXKXKXKXKXD.9.z.e.b x x x z x z z x x l z l l 1.3.l 1.3.3.3.3.3.7.3.3.3.7.4.4.8.q.q.8.q.q.q.a.q.r.q.x.q.8.7.7.7.7.3.3.7.8.q.r.s.b.N.B.I.P.-XHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXyXb.I.N.b.v.s.w.s.s.w.w.e.0.7.7.3.7.3.7.7.7.7.3.0.:.7.0.3.0.3.7.7.7.7.7.:.7.7.7.7.3.3.3.3.3.3.1.3.1.3.1.3.z x 4.x 4.9.x 9.9.9.t.b mXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxXr.;.6 l l 1.1.;.1.1.1.1.1.u 1.a.h.w.8.c X % |.4XaXaXsXhXsXcXhXhXlXfXfXsXfXsXsXsXdXsXzXAXAXBXzXfXdXdXiX3XiXiXpXiX6X6XaX6X6X7X7X6X6XiXiXxXZX@Xo X : 7 3 8 6 q.a.a.a.i.k.k.a.h.d.k.z.l.F.6.^.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXHXz.7.5 z 1.=.1.=.1.;.1.1.=.e l 3.5.l t g ; C Z Z Z Z S Z Z U U ( ) | } } } .} } . .X.} } } } X.X.X.X.X.X.......o.o.o.o.o.o...` _ ` ` ' ` ' ) D C = & $ , x 4.r.8.8.8.u.i.a.a.q.g.a.a.f.0.k GXKXKXKXKXKXKXKXKXKXKXKXKXKX@X9.h.e.b 9.x x z x x 4.z 4.l l l 3.1.1.z 3.1.z 3.3.3.:.3.7.e.7.7.0.q.8.q.q.q.8.q.q.q.q.q.8.8.8.8.7.4.3.3.3.7.8.r.h.j.b.n.N.B.P.-XHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgXv.v.n.t.v.s.s.w.s.w.q.0.e.7.0.7.7.7.3.:.3.7.7.7.0.3.3.7.7.7.7.:.7.3.3.0.:.7.7.3.7.3.3.3.3.3.1.1.3.1.z z 1.4.4.4.x x 9.9.v 9.9.y.HXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXZ.3.5 l l 1.l 1.1.2.1.1.1.;.1.q.q.8.8.c + o M 7XhXcXaXcXaXpXpXiXiXiX6X3X3X1XX>X&X&X>X>X>X1X>X,X1XS.< + # , 5 3 7 1.a.a.a.a.h.a.h.a.i.k.k.k.l.J.2.%XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXW.1.u l 4.1.1.1.1.1.1.1.1.1.l 1.5.2.h f ; ; Z Z Z U S S S A S ( { | } } } } } } . .X.} X.} } X.X.X.X.X...o.o...o.o.o.o.o.o.X.` ` _ ` ` ' ' ) U ; * @ < h 6.8.8.q.i.i.i.i.8.a.q.q.q.d.f.3.W.KXKXKXKXKXKXKXKXKXKXKXKXKXKX*Xv r.y.b 9.9.4.x 1.z 1.x l l l l l 1.1.1.1.3.3.3.3.:.7.7.3.3.3.7.0.0.8.q.8.q.q.q.q.q.r.8.q.8.8.8.7.4.7.3.8.4.8.q.a.s.v.N.B.I.P.-XJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxXv.I.n.b.b.s.s.s.w.w.q.g.0.0.3.3.7.7.7.e.0.3.0.7.3.7.7.:.7.7.7.7.3.0.3.7.3.0.7.3.7.3.3.3.3.3.1.l 1.z 3.l z 4.4.x 9.9.9.y.t.v e.V.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX$X3.u 6 l 1.l =.1.1.1.1.1.;.1.7.h.a.8.x < O X $ h m m V.V.V.^.y.b b v b h h g C.>XiXsXdXiXiXiXyXyXiXdXdXlXhXC.> : , , , , , , < < < 1 , 1 < 9 , , 4 7 4 7 7.a.a.a.a.a.a.i.a.a.i.k.j.l.z.l zXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXaXl l 5 1.2.1.u 1.1.1.l =.=.l 1.5.=.c h = ; Z Z Z U U S Z A U D { | } } X.} X.} . .X.X.} } } } X.X.X.X.X.......o.o.o.o.+.o.O._ _ _ ` _ _ ) ( A = * % , k x.8.8.i.a.i.a.8.a.a.a.0.s.s.a.u mXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgXv r.c.b x x x x x z z z x l l l 4.1.1.z 1.3.3.3.3.3.:.3.3.7.7.3.7.q.8.8.q.q.r.q.q.q.q.8.8.8.q.8.4.7.3.7.8.8.8.q.t.s.b.n.B.B.P.=XJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXmXB.H.N.b.s.s.s.s.s.w.q.e.0.0.0.3.7.7.7.7.:.7.3.7.7.7.3.0.,.7.7.7.:.7.0.7.7.3.0.3.7.3.3.3.3.3.1.1.3.1.1.z l 4.4.4.x 9.9.b 9.c.z &XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmXt.l 6 6 1.1.1.1.1.1.1.1.1.;.1.q.a.i.q.x h 4 , 4 h 4 3 3 3 3 w 3 3 k p 4 + o j S. q 4.i.8.i.i.i.a.a.q.a.a.a.q.a.f.7.t.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVXc.9.w.9.9.9.x 4.z z 4.z 4.l z l l 1.1.l 3.1.3.3.3.z 3.e.:.7.4.4.8.7.q.q.8.q.8.q.q.q.q.q.r.8.4.8.4.4.4.3.4.8.8.q.w.h.v.n.M.K.P.;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBXB.H.n.b.v.s.s.s.w.q.q.g.e.0.e.7.0.7.3.7.0.3.7.7.3.0.7.0.3.3.0.3.3.7.7.7.7.7.3.3.3.3.3.3.3.3.1.3.3.l 3.l z 4.9.4.e.9.9.y.9.y.z fXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZ.l i u 1.1.1.1.1.1.1.1.;.;.;.q.h.k.6.4.9.8.6.9.4.3.3.3.4.4.3.1.l z k 3 @ g C.4XfXpXpXkXdXyXdXiX3XdXzXmXm X + h k 3 2 7 2 2 2 8 8 2 8 2 2 8 3 5 2 7 ;.a.d.a.d.h.h.h.k.h.h.h.k.l.m.7.Y.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXA.7.1.l l 1.1.1.1.1.1.1.=.l e =.5.5.l t = ; Z Z Z U S U Z S S { { } } } } } O.O. . .X.X.X.} | } | } X.X...o.......X.o.$.O._ _ _ _ _ ' ) ( F ; * % , k 8.i.x.i.i.a.i.q.a.a.i.a.a.s.j.&.rXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXV.9.w.9.y.v 9.z z z z x l l l l 1.1.3.1.3.3.l 3.3.3.3.3.3.3.4.7.7.q.8.q.8.q.8.q.q.q.q.8.q.4.8.7.7.7.7.3.8.8.8.q.h.j.b.n.B.P.P.wXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAXN.I.K.b.v.s.b.w.s.q.q.g.0.e.7.7.3.3.7.7.7.:.7.7.7.3.:.3.3.3.7.7.3.,.7.7.:.7.0.3.7.3.3.3.3.3.1.1.3.z 1.z z 4.4.4.x 9.e.y.t.t.z BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX*X4.;.6 2.l 2.1.1.=.1.1.1.u ;.4.8.8.7.8.q.8.7.e.3.4.q.3.;.3.4.z z z l i # . g C.1XiXyXpXdXdXiXdXdX3XsXxXzXm o + q 2 3 2 7 2 2 2 8 8 7 2 2 7 2 4 7 7 7 3.f.d.g.d.a.d.a.h.h.k.h.h.J.n.u bXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX9X4.1.1.l 1.1.1.l &.1.1.1.l 2.=.=.5.1.t g ; Y Z Z S S U U U S ( { | | } } } } X.} } X.X.$.X.} } } } X.X.X...X.o...X.o.O.| _ | _ _ _ ) ( ( Z = & > 4 k 8.i.i.i.a.i.i.8.a.w.e.q.a.a.s.6 ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXC.9.9.9.e.e.x x x 3.4.z 4.l z 1.l 1.l 1.3.1.3.3.3.3.3.3.3.3.7.7.0.0.8.8.q.q.q.q.q.q.q.q.q.8.q.8.4.3.3.7.3.4.8.r.h.j.b.N.B.P.K.,XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXDXb.I.n.n.v.b.s.s.s.w.q.0.0.0.7.7.7.4.3.7.7.3.7.3.3.7.7.7.0.3.7.3.7.7.7.7.e.3.:.3.7.;.3.3.3.1.3.l 1.3.z 3.x 4.4.4.e.9.e.y.w.w.b SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVXe.7.&.r c e 5.&.1.1.l 1.1.6 2.8.8.4.7.8.4.4.4.3.4.z 3.z :.z k k l l h # . > D.4XpXpXdXgXpXpXgXpXdXfXxXhXM X + k 7 2 2 2 2 2 2 8 1 2 2 2 2 7 7 3 7 u q.h.a.a.d.a.a.k.k.k.k.h.t.J.G.z AXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXb i.&.;.1.1.1.1.1.1.1.=.1.1.=.1.1.2.h f ; C C Z Z S S U U Z S %.| | } } } } X.X.X. .X.o.X.X.X.X.X.X.X.X...o.o.o.o.O.| | { _ _ _ ) ( ( S ; * % q w 7.q.p.i.8.i.8.a.a.i.q.e.0.d.a.:.V.HXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX@Xy.9.e.y.b 9.x x 4.4.z z z l 4.3.1.z 1.3.1.1.3.1.z 3.3.3.3.7.3.4.8.q.8.8.q.q.q.q.0.q.q.0.0.0.8.7.4.7.3.3.7.q.q.s.s.v.n.M.P.B.4XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXN.n.M.v.v.v.s.w.s.w.q.e.0.0.7.7.7.7.0.7.7.7.0.3.:.7.7.3.3.:.7.0.7.7.7.7.3.3.3.3.3.3.3.3.3.1.3.1.z l 3.z 4.4.4.e.9.9.e.9.c.9.V.HXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZ.1.=.5 r l 5.1.l l 1.1.1.6 2.4.q.8.8.q.7.4.4.4.3.3.3.3.3.3.k z 3.l q # > D.1XdXXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX1Xy.y.y.9.9.x x 3.4.4.z 3.z 3.l z 3.1.3.1.3.3.1.3.1.3.3.5.3.4.4.7.0.8.q.q.8.8.q.q.0.q.8.q.7.q.8.7.7.3.3.3.7.q.w.s.j.b.n.L.P.K.3XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXB.v.M.b.v.s.s.w.w.q.g.e.0.3.3.3.7.e.7.7.7.:.7.3.3.7.7.0.7.7.7.3.0.7.7.7.7.:.7.3.7.3.3.3.3.1.3.z 3.z z 3.4.4.4.9.9.9.y.t.c.e. XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXdX4.2.6 l l 5.=.1.1.l 1.u 1.6 1.8.q.q.q.8.4.4.4.4.3.3.z ;.3.i z 3.l k $ > D.>XfX1X&X&X&X&X>X&X%XyXzXzXM X + h 5 7 7 2 8 2 2 8 2 2 2 7 7 5 7 7 6 8.h.j.a.d.d.k.h.k.a.h.k.h.m.F.l pXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXfXz h.6 1.6 1.1.1.1.6 1.2.1.=.2.1.1.;.k 0 ; ; Z Z Z S U U U U U U %.| | O.} } } } } X. . .} } X.X.X.X.X.X.X.X.X.| { ) ) ) ) ) ( ( Z ; ; & @ < c 7.8.8.i.i.i.8.a.a.i.d.d.w.a.d.i.6 CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXhXc.t.y.9.b 9.z z z 4.z x 1.x l 3.1.1.3.1.3.3.3.1.3.3.3.3.5.7.3.7.7.4.8.q.q.q.q.q.q.0.7.q.7.0.8.4.7.7.3.3.7.q.w.s.s.v.B.L.R.A.pXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXR.v.n.b.v.v.v.w.s.w.q.g.0.,.0.0.7.7.7.7.3.0.0.3.3.3.7.:.7.7.7.7.0.7.7.7.3.7.7.3.3.3.;.3.3.1.3.3.3.z 3.4.x 4.4.9.9.9.t.t.t.x 4XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXy.3.u i l =.1.u l 1.1.1.6 6 u 3.8.q.8.q.8.8.q.8.4.3.3.3.7.z z 3.1.k $ $ V.1XhX4X,X3X4X1X,X>X&XdXzXnXM X + q 7 2 2 2 2 8 2 2 2 7 2 7 7 7 7 6 7.h.h.a.k.f.a.h.k.a.k.a.k.l.n.h.y.SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXv q.&.=.&.1.1.1.1.1.1.=.1.1.=.1.1.:.l 0 * ; ; Z Z Z ( U U U U S ( %.| } } } } } } X. . .X.X.X. .O.X.X.$.X.} | { %.{ ( ) ( ( ( ( Z ; * & % q z 8.8.x.i.i.i.a.u.a.i.g.a.q.d.d.=.A.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAXc.y.y.y.y.9.x x 4.4.x 3.z 1.3.l 3.3.1.3.l 1.l 3.1.3.3.3.3.3.7.7.e.8.q.4.8.8.q.q.7.0.q.0.0.7.7.4.3.3.7.7.4.q.q.s.s.v.B.L.P.B.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX Xv.n.v.b.v.s.s.s.w.q.0.0.7.3.3.7.3.7.7.3.7.7.:.e.3.7.7.3.7.3.7.7.7.3.:.7.3.7.3.5.3.3.3.3.1.3.1.4.l 4.x 4.9.e.e.9.t.t.t.c.x fXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX%X3.l i u =.6 1.1.1.l 1.l e u 1.7.8.q.q.8.q.8.8.8.7.7.7.7.u 3.1.3.k $ : D.>XfXiX,X1X1X1X,X>X1XfXzXzXD.o + q 7 7 7 2 2 8 7 2 2 7 7 5 7 7 7 1.i.k.h.a.a.k.a.h.k.k.h.k.l.J.l.l $XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX1Xu 5.6 1.l 1.1.1.1.=.1.=.2.2.1.1.:.1.q > * ; N Z Z Z Z ( U U U U U %.{ | } } } } } } X. .X. .X.X.$.$.O.} | { %.( { { ( ( ( ( ; ; * & # , k 8.7.u.x.u.8.i.u.i.i.i.g.0.a.l.i.l hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXV.9.v t.e.9.x 4.x 4.z z 4.z 2.4.4.1.z 1.3.3.1.1.3.;.3.5.5.3.7.7.7.q.8.q.8.q.q.q.7.0.q.q.0.0.3.7.5.4.7.4.8.i.w.h.j.b.n.B.P.A.MXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXXXv.B.v.v.b.s.w.s.w.q.0.0.0.0.0.3.3.0.7.0.7.7.3.:.7.7.7.0.:.0.3.7.7.7.7.7.7.:.3.3.3.3.3.3.1.3.4.3.4.3.4.4.e.e.e.w.t.c.c.c.v CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBXt.4.i u 1.1.e 1.l 1.1.1.l 6 u 3.q.q.q.r.q.q.r.8.q.0.7.0.z z 1.5.z $ $ V.1XdXsX3X1X1X1X&X&X3XpXxXzXC.o + 3 5 7 8 2 7 7 7 2 2 3 7 2 7 7 =.i.k.k.d.a.a.f.a.h.k.k.k.k.F.Y.a.h.AXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXz.5.1.1.1.1.1.1.1.1.1.1.2.=.2.1.=.c q % % * ; ; ; Z Z Z S U U U U U ( { { | | } } } } } } } } O.} | | { { %.( ( %.( S ( ; ; ; % o . $ q c i.i.p.i.8.a.a.i.i.i.i.d.s.a.k.&.A.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXA.y.c.y.9.9.9.4.x 4.x 3.x 4.3.3.1.3.1.3.3.l 3.3.1.3.3.3.3.7.4.0.7.4.4.8.q.8.q.q.q.0.0.0.0.0.7.4.3.7.7.8.8.a.h.h.b.b.B.B.P.R.BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX,Xb.v.v.v.v.b.v.w.s.s.0.0.7.e.7.e.3.0.3.3.0.3.3.:.0.7.7.0.3.7.7.7.7.7.7.7.:.7.3.3.3.3.3.3.1.3.3.4.4.3.4.9.9.9.e.w.t.c.c.c.c.VXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX X3.:.u l 1.1.1.l 1.l 6 1.6 6 1.8.q.q.h.h.a.x.q.q.8.7.7.3.3.1.3.k $ $ m *XiXsXsX1X1X1X>X1XsXfXxXmXM o O q w 2 7 2 7 7 2 2 3 7 5 7 7 e 8.k.k.k.h.k.f.a.a.d.k.k.h.l.J.m.5.=XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX,X1.7.5.1.2.2.1.1.1.1.1.1.=.1.=.e r w > # & * = ; C Z Z S S S ( U U U U ( %.{ { _ { | } } | | | | ) ( ( U ( ( ( S S S C C = % o . X , h 4.8.i.i.p.a.i.8.i.i.a.8.a.s.h.7.l sXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX Xy.t.c.9.9.x x 4.4.x 3.z 4.z 3.3.3.3.1.1.3.3.3.3.3.3.3.3.3.7.3.0.4.7.7.q.q.q.q.7.0.0.7.7.4.7.7.4.3.7.4.8.w.h.s.b.n.M.L.P. XVXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX7Xc.H.H.v.v.s.w.s.s.w.0.e.0.:.7.3.3.7.7.3.3.7.7.7.3.:.7.7.7.:.3.7.7.3.7.3.3.3.3.3.3.z 3.3.z z 3.3.3.4.4.e.9.e.y.e.w.c.c.c. XHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZXq.p.;.h 1.1.1.1.1.6 1.1.1.1.;.2.8.x.h.a.8.a.a.a.7.7.4.3.7.z z z : % M *X7XiXsXXeXdXsXxXzX/.o O q 7 2 2 2 2 7 2 7 4 7 7 5 6 5.k.k.a.a.h.a.a.h.a.k.k.a.h.j.M.q.r.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVXv >.;.=.e =.6 1.1.1.1.1.l 1.1.e e w p $ X o % * ; ; Z A A S Z S U U U U ( ( ( ( %.U { { { %.( ( U U ( ( ( S S Z Z C ; * & o X $ 5 4.r.8.8.a.i.a.8.8.8.a.a.q.a.a.z.l Z.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5Xc.l.c.t.9.9.3.3.3.3.4.z 3.3.3.3.2.4.4.3.6.4.3.1.;.3.3.3.3.3.7.3.7.0.7.q.8.q.q.8.q.8.8.q.7.q.0.3.4.4.7.q.q.a.f.j.v.B.L.P..XFXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXhXc.H.v.v.b.s.s.w.q.0.0.0.0.:.7.3.3.3.7.,.3.7.7.7.0.7.7.7.3.7.7.7.5.3.5.7.5.3.3.1.3.3.3.3.4.3.z z 4.4.4.4.9.e.e.t.t.c.N.c.-XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX:X;.7.l l l l 1.l l 1.1.;.1.1.1.7.8.h.a.a.q.i.q.a.8.e.7.7.z z k 9 > M &XiXkXdXiX1X2X>XbXpXpXvXxX/.O @ 7 7 5 5 7 2 2 7 w 3 2 7 6 6.i.h.k.k.h.k.a.k.a.k.l.k.l.k.J.F.5.>XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX,X;.7.2.2.1.1.;.1.1.1.&.l 1.1.l e e p < O . . & * ; ; ; Z Z Z S S S ( ( U U U U ( ( S ( U U ( U ( U U S S S Z ; ; ; * & . . X : q l 4.r.8.8.i.u.8.8.8.q.a.8.q.a.l.8.x fXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXMXc.n.y.y.9.e.4.4.3.9.3.3.z 3.3.3.4.3.3.3.1.3.3.1.3.3.3.;.3.3.3.0.7.0.0.4.e.8.8.e.q.4.7.0.q.q.4.3.7.7.q.8.q.h.j.l.n.M.P.P.:XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmXc.I.n.v.b.v.v.s.q.s.0.0.0.7.7.7.3.7.7.7.7.7.7.7.3.7.3.7.7.7.7.3.7.7.5.3.3.5.3.z 3.z 1.3.3.z 4.3.4.4.e.8.9.e.e.w.c.c.N.t.3XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXc.1.5.&.l u l 1.1.l 1.1.1.1.2.7.2.8.i.q.a.q.i.a.q.8.7.7.3.z i : . $ m $XyXsXdXhX7X % # O o & & & % % * * * * tXtX* * % % @ O O $ 1 c x.p.p.p.i.i.p.p.7.3.a.i.i.i.a.i.7.a.8.8.a.a.h.z.a.y.DXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXyXe.y.t.y.t.r.9.e.4.4.e.4.e.3.4.1.4.4.3.4.3.3.;.3.;.3.3.3.3.3.3.3.7.4.7.e.7.e.8.0.7.4.7.4.7.3.4.7.8.8.q.w.s.j.n.B.P.P.oXmXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX4Xs.v.b.v.s.b.s.w.w.0.0.0.3.7.3.7.0.3.3.7.7.7.7.3.7.7.3.7.7.7.:.3.3.3.;.3.3.5.3.3.3.3.z z 3.4.4.e.9.e.e.9.^.t.N.c.N.N.>XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX.Xq.3.3.u 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.5.p.8.8.3.1.l z l u u i i 5 5 3 3 3 5 5 5 5 5 5 5 5 5 5 5 4 7 7 u 5.i.k.k.k.h.i.d.i.k.i.k.k.h.r.q.r.k.L.l.z yXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX%X4.8.1.k l 1.1.5.1.1.w w 5 5 7 2 2 w q q 5 2 2 8 , < < : $ O X X X o o o & tXtXo X X X + < w i.6.x.i.x.6.6.0.8.i.8.q.i.8.7.a.q.i.a.8.a.a.8.d.d.l.8.8.BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXNXx N.t.w.w.e.e.w.9.4.q.3.3.z z 3.3.3.3.3.3.3.3.3.3.3.3.3.7.0.3.0.3.0.3.7.7.e.7.4.7.7.7.7.4.7.7.7.0.q.q.q.w.j.b.M.P.P.XXGXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXs.I.v.v.s.b.s.w.0.0.0.0.3.3.3.3.7.:.7.3.:.7.7.7.:.3.3.:.7.:.z 3.:.3.3.3.3.5.;.3.3.3.e.3.3.e.8.9.q.e.9.r.y.t.N.c.B.c.dXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXW.z e.1.1.u e 1.1.1.1.1.1.1.1.1.1.1.1.1.1.8.8.8.4.3.3.z l z l i u i i i 5 5 i 5 5 5 5 6 5 5 7 7 2 5 i 1.8.a.i.i.i.i.h.k.a.h.h.d.k.i.i.k.h.h.Y.F.u %XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXZ.l 6.5 1.1.6 1.1.6 e e 5 q 7 q 7 2 2 3 3 3 2 3 1 , , , < : : @ o X . tXtX X @ , c 9.4.6.8.6.6.8.6.8.8.7.8.8.8.8.i.8.8.8.a.8.i.a.q.i.i.F.h.i iXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAXy.w.c.w.w.w.e.q.q.9.4.e.3.e.3.3.3.7.3.3.3.;.3.3.3.3.3.3.3.3.7.3.7.3.0.0.4.7.7.7.0.e.7.4.7.7.4.4.8.8.q.q.w.b.n.M.P.B.:XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmXw.K.n.v.s.s.s.w.w.0.0.0.7.3.0.3.0.7.:.7.3.0.7.3.3.,.7.:.7.7.3.3.z 3.3.3.3.5.3.3.3.3.3.3.4.e.4.9.r.e.9.r.y.t.c.B.c.A.BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXV.l 8.1.u 1.1.1.1.1.1.1.1.7.1.1.1.2.1.1.5.6.4.1.l l z l z l u l u u i w 5 6 5 5 6 7 7 5 5 5 6 6 3.4.8.q.a.i.i.x.a.h.a.h.a.h.h.a.a.F.k.k.J.F.l A.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBXy.4.p.1.6 l 1.=.=.w w 5 7 q 7 3 3 3 3 5 3 5 q q q 2 1 8 , , < < : @ + + tXdX: q b 4.2.7.8.8.6.6.6.6.8.i.7.i.8.8.8.8.q.7.8.8.8.q.8.q.q.k.F.k.l >XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXV.w.t.t.w.w.e.q.9.q.4.4.e.3.3.7.7.3.3.3.3.5.3.3.3.3.3.3.7.3.3.7.3.7.3.7.7.7.0.7.7.7.7.0.3.7.7.8.8.8.q.w.h.b.n.B.P.P.4XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVXb.n.n.v.b.s.s.s.w.g.0.e.,.3.3.7.7.7.3.3.7.3.0.3.3.3.3.7.7.3.;.3.3.3.3.3.;.3.3.7.3.3.z 3.4.4.8.q.e.e.w.t.t.b.N.A.c.A.SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXZ.5 7.3.;.u 1.1.1.1.1.1.2.7.1.1.1.1.=.=.1.1.l 5 i l l u l l i l i k l u l l u u 6 6 6 l 1.1.7.8.a.8.8.8.h.k.a.a.i.k.i.k.k.h.q.h.F.F.Y.z.l A.HXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXzXy.6.i.1.6 l l e e e w w 7 q q w q 5 q w q w w w q q q 1 1 , , , 1 1 q tXdX4.z 4.6.p.5.6.8.6.8.6.8.8.8.8.7.8.8.8.a.8.a.a.7.a.i.a.8.h.m.k.e W.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX|.w.t.t.w.w.w.q.q.9.q.4.3.e.e.3.3.3.3.3.3.3.3.:.3.3.3.3.7.7.3.3.0.3.0.7.e.7.7.e.7.4.0.0.7.3.e.8.8.q.q.a.h.b.N.B.P.P.gXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXB.b.n.b.b.s.s.w.w.0.0.0.7.3.3.3.0.7.7.3.7.7.7.,.3.7.:.7.3.:.3.3.3.3.3.3.;.3.3.3.3.3.3.3.4.4.e.q.r.e.w.w.c.n.N.M.c.|.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXV.u q.1.1.;.1.1.1.1.1.1.1.1.1.1.1.1.1.1.l 6 5 5 5 u 5 u e 5 e l u u u l u 1.1.1.1.5.2.7.8.8.8.8.a.i.i.a.a.a.a.k.a.a.d.k.q.h.h.k.L.k.z A.SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXfXz.k 1.l 6 l 7 e w 5 7 q 2 3 3 k 5 q w q 5 q q e e w w w 2 1 2 3 c l tXtX6.6.6.5.5.5.5.7.7.7.8.8.8.7.8.8.8.8.8.q.8.a.8.a.q.q.a.a.h.r.i S.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX4Xe.t.t.t.w.w.e.q.q.9.4.4.3.3.7.3.3.3.5.3.3.3.3.3.3.3.3.3.3.3.0.3.7.3.0.0.0.4.0.7.7.7.4.0.3.0.8.q.q.r.s.s.b.n.B.P.R.mXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXoXv.n.n.s.b.b.s.w.0.0.7.7.e.7.3.7.3.:.7.7.7.3.3.7.:.3.3.7.7.3.3.3.;.3.3.3.3.3.3.3.3.3.z 4.e.4.e.e.w.w.c.c.B.B.M.c.*XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXDXZ.;.8.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.l 5 5 3 i 5 5 5 w k e k u l l 1.1.1.1.8.8.6.p.i.i.8.u.i.a.a.a.a.i.i.a.i.a.h.a.h.a.h.h.J.z.9. XSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXjXc.3.8.1.k w e w w w 7 2 3 3 5 q w 3 3 2 2 2 q w w 5 w w 5 5 5 6 e tXtX6.5.5.5.7.8.8.7.7.7.8.8.8.8.8.8.8.8.8.8.8.8.8.a.a.h.h.h.j.z S.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXjX9.c.t.t.w.w.r.q.q.9.4.4.4.3.3.7.3.3.3.;.3.3.3.3.3.3.3.3.3.3.3.0.3.0.0.3.7.4.4.4.0.4.7.3.3.7.8.q.q.q.w.b.n.N.B.P.oXFXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;Xv.n.v.b.v.s.w.0.g.0.0.7.7.3.7.0.:.7.7.7.7.7.3.3.7.7.3.7.3.3.3.3.3.3.3.3.3.:.3.3.z 3.z e.e.4.q.e.r.w.t.c.N.M.B.V.8XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXT.1.8.5.1.l 1.1.1.2.1.1.1.1.1.1.2.2.l e 5 k w w e l l l e l ;.1.1.7.7.7.i.6.8.8.i.i.8.i.g.i.i.a.a.a.q.a.a.h.a.a.a.d.k.z.J.F.3.A.SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxXZ.6.8.5 q e e w w 2 3 3 3 3 q k w q 2 3 7 q q 2 5 w 5 e l l 1.1.tXtX7.6.7.7.7.3.5.7.7.7.7.7.8.8.8.8.8.8.8.i.8.8.8.a.a.a.h.a.q.-XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAXw.b.t.w.w.w.e.q.q.4.e.4.4.4.7.3.3.3.3.3.;.7.3.3.3.3.3.7.7.e.7.0.3.3.3.0.0.0.7.0.0.0.0.7.7.0.q.q.q.w.s.j.v.B.K.P.XXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXpXe.n.v.s.s.s.s.s.w.0.e.,.7.7.3.7.7.7.3.:.3.3.3.3.3.3.3.3.3.3.3.3.;.;.3.3.3.3.3.3.3.4.4.3.4.q.e.e.t.w.c.b.N.B.c.A.SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX Xq.7.4.l l 1.1.l l l l 1.6.5.l 2.l l ;.l l l l l l l l l 1.5.6.7.8.8.7.8.8.8.8.8.8.8.a.a.8.8.i.8.a.a.a.8.q.a.d.G.F.J.a.8.-XJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBXC.4.u.*.e e w q q w w k q q k w w w 3 7 5 5 7 5 5 u u u l 1.3.tXtX6.6.6.6.6.6.8.7.7.8.8.8.8.i.a.8.p.a.8.9.9.i.a.a.z.a.7.a.5XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXB.w.s.b.c.9.h.r.q.q.7.0.0.e.7.7.0.3.0.3.3.7.7.7.3.7.3.:.3.3.3.3.3.0.3.3.3.7.7.3.3.7.4.7.4.3.7.7.q.a.k.b.b.B.R.R.XXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXfXc.n.n.b.s.b.s.w.w.0.7.7.3.3.3.7.3.:.7.3.3.:.3.7.3.3.7.3.3.3.;.3.3.3.3.5.5.3.3.3.e.3.4.4.4.e.e.w.w.w.c.N.B.N.c.C.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXeX8.5.u.;.z z l ;.l 1.1.1.1.l 1.l 6 l 1.6 1.l 1.l 1.1.2.1.5.7.8.8.6.8.8.7.8.8.8.8.8.8.8.8.8.8.a.h.i.i.h.k.k.d.F.F.4.t.dXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSX-X4.4.6.6 7 l w w q 3 5 3 3 3 3 3 3 3 i 5 5 5 5 l u l l 3.7.tXtX6.6.6.6.7.6.7.7.8.8.8.8.8.7.1.i.p.i.i.q.q.h.u.d.k.1.Z.xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX Xe.b.t.t.w.h.e.q.0.0.4.7.4.3.3.3.7.3.7.3.7.7.e.:.3.e.:.3.3.:.e.7.3.7.3.e.7.3.7.7.0.4.3.7.0.0.0.0.g.l.b.c.B.P.P.yXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCXB.v.n.b.s.s.s.w.s.w.0.0.3.3.7.7.7.0.3.7.:.7.3.3.3.3.3.3.3.3.3.3.;.3.3.3.3.3.3.3.3.4.4.4.4.q.e.w.w.w.w.c.M.N.c.%XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxXU.&.7.e.u 1.1.1.5.3.;.;.1.1.1.1.l l l 1.2.1.1.1.1.1.1.5.7.6.8.6.8.8.8.8.8.7.8.a.8.a.8.h.a.i.a.8.i.k.G.F.J.k.2.A.mXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgXc.7.7.5.&.5 k k w 5 w 5 5 5 5 5 5 5 i w l l l l l 1.3.1.tXtX6.6.6.7.6.6.8.7.7.8.8.7.8.8.q.7.8.i.i.i.h.s.F.p.5.-XAXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXpXz n.b.e.w.h.q.q.0.e.0.0.e.0.0.0.3.4.3.7.3.7.7.3.3.:.3.3.3.3.7.7.3.7.3.3.7.0.3.3.7.7.7.3.0.0.0.w.s.l.b.b.L.R.R.NXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXR.v.v.n.v.s.s.s.0.0.0.0.7.7.7.7.7.3.0.3.7.7.3.3.3.3.5.7.3.3.3.3.3.3.3.3.:.3.3.3.3.4.4.4.e.9.q.w.w.w.c.c.B.A.c.gXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXW.3.7.7.5.5.5.=.1.l 3.1.l 1.l 1.1.1.1.1.1.1.2.5.1.6.5.7.6.6.7.6.7.7.8.8.8.8.8.a.a.8.8.i.8.h.a.a.F.F.k.2.y.1XHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCX X9.u 5.1.l 5 5 k 5 5 5 k l i i 5 i l e u l 1.1.1.1.5.tXtX6.6.7.7.6.8.8.8.7.8.8.8.8.7.4.q.8.p.k.k.k.a.;.j.pXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBXz v.b.w.t.r.w.q.q.0.4.4.0.7.4.0.0.7.0.7.7.7.3.3.7.3.3.3.7.3.3.3.3.7.e.7.7.3.7.3.4.7.4.7.0.0.0.w.s.l.b.B.P.R.A.DXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXXXv.v.v.v.s.s.w.s.0.0.0.4.0.4.7.7.0.3.7.7.7.3.3.3.3.3.3.3.7.3.3.;.3.3.3.7.3.3.4.3.4.4.8.9.q.e.w.w.c.c.b.N.B.c.SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXdXl.i 3.5.5.5.1.l l 1.1.1.1.l 1.l 1.1.1.1.1.6.6.6.7.6.7.6.7.5.8.7.8.7.7.8.8.i.8.8.8.h.h.h.h.z.h.2.c /.BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXhXD.i u 7.u u 5 i 5 5 5 k k 5 5 l l l u 1.1.1.5.5.8.tXtX7.7.6.7.8.8.8.8.p.8.8.i.8.i.8.8.i.k.k.r.1.i.-XSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVXc.w.v.w.t.w.a.w.0.0.0.0.e.q.0.0.7.7.7.4.4.7.3.3.e.3.e.:.3.e.7.3.3.e.:.3.7.0.3.0.0.7.4.7.0.0.0.s.s.s.N.B.P.R. XJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXyXv.n.s.v.j.j.s.w.g.0.0.7.3.7.e.7.7.7.7.7.7.3.3.3.3.7.3.3.3.3.3.3.3.;.3.5.3.3.e.3.4.3.0.0.e.e.j.t.j.c.N.c.c.S.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSX%Xv e.;.1.5.u z 3.1.1.1.1.1.1.1.1.1.5.6.1.1.5.5.1.1.6.5.6.7.7.8.8.7.8.8.8.q.x.h.h.k.k.h.3.z S.zXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXpXZ.4.1.l l l e u u i w l l l l l l 1.1.7.5.7.6.tXtX7.7.8.7.8.7.8.7.8.8.a.8.a.h.a.8.z.h.i 9.W.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX Xe.v.b.e.w.w.w.q.0.0.0.0.8.q.8.8.4.0.0.4.7.7.3.3.3.0.:.7.3.3.3.7.7.7.7.3.7.3.4.e.0.4.0.0.q.g.s.s.v.v.B.P.R.,XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXfXn.n.b.n.b.s.w.s.q.0.0.e.0.4.7.0.7.7.7.3.3.3.3.3.3.3.3.3.5.3.3.;.3.3.3.7.3.7.7.4.4.4.q.e.9.w.t.j.j.c.z.c.c.&XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAX=Xw.5.7.q.4.1.3.3.1.1.1.1.1.1.5.5.5.6.6.1.6.1.5.1.1.5.6.7.7.8.8.8.8.q.h.h.k.k.a.7.8..XZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXxXW.9.4.4.4.l l l l k e l l l 2.1.3.1.5.7.7.tXtX7.7.7.8.7.7.7.7.8.8.a.a.a.h.k.x.1.q.-XZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXyX0.v.b.e.t.w.q.q.0.0.e.q.q.7.e.8.q.7.0.7.7.7.0.3.3.3.3.3.3.3.7.7.7.7.e.3.3.7.7.7.7.7.4.0.q.s.s.s.v.v.B.I.R.pXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXB.v.v.b.h.f.g.s.q.0.0.7.0.3.7.7.3.,.:.3.3.7.0.7.7.7.:.3.;.3.3.3.3.3.3.3.3.e.3.4.4.e.4.e.w.w.w.w.c.w.N.N.c.BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAX%Xy.z 7.u.u.u.7.:.:.1.1.1.7.5.5.7.7.1.1.5.1.5.1.1.1.7.3.7.a.a.a.G.G.a.q.4.y.,XSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBX Xb 4.7.u.>.:.;.l 1.u l z 1.5.7.4.2.2.tXtX3.3.7.7.8.i.i.a.a.s.d.d.i.i.x.Z.1XSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBXy.w.v.t.9.w.w.q.0.0.0.7.0.0.0.0.0.4.7.7.e.e.7.7.0.7.3.7.7.3.7.e.7.3.3.7.7.7.0.7.4.4.0.0.q.q.w.s.v.B.B.oXoXZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXoXv.v.b.j.f.g.s.q.0.0.0.0.7.3.3.3.3.3.3.:.7.7.7.7.7.3.7.7.3.3.3.3.3.3.3.3.3.3.4.8.q.4.4.9.e.w.c.w.c.N.N.V.FXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXgXA.t.9.z 1.7.i.u.5.7.7.u.5.5.5.6.1.1.6.1.1.2.7.i.a.i.i.7.7.3.3.y.A.sXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXDXiXA.w.0.7.3.7.7.5.5.;.3.7.8.8.8.x.tXtX7.i.i.i.i.i.i.a.a.q.4.9.c.A.fXDXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXA.w.b.s.t.w.w.q.0.0.0.g.0.q.q.7.0.0.0.4.7.e.3.0.0.4.3.3.e.3.3.:.3.3.7.3.7.e.7.7.7.e.0.0.e.q.w.b.N.B.B.oXoXDXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX:Xv.n.b.b.v.f.s.s.0.0.0.3.7.3.3.7.3.3.,.3.0.7.7.7.7.3.3.3.3.3.3.3.3.3.4.z 4.3.4.4.q.4.9.q.r.t.t.t.b.c.c. XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAX7XS.V.r.8.6.p.5.3.7.a.a.i.7.7.7.7.5.7.5.6.6.7.1.3.t.n.S.pXGXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAX*XA.Z.y.2.1.6.p.7.7.7.7.8.7.tXtXu.i.i.8.7.7.q.r.z.Z./.7XAXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&Xw.b.s.b.w.w.w.q.0.7.g.0.7.0.0.0.0.0.4.0.4.7.4.7.7.7.7.3.7.7.7.3.0.3.7.3.0.7.0.7.4.0.0.q.w.s.b.m.K.P.P.&XPXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgXv.n.b.b.v.f.s.s.0.0.7.0.7.7.7.7.7.3.3.3.7.7.3.3.7.7.:.7.7.3.7.4.3.3.3.4.3.4.4.4.9.q.9.r.e.w.c.c.N.B.c.fXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXBX9X/.W.Z.c.e.9.z i :.:.;.:.7.i.i.z.Z.R.%X3XZXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXzX1XW.A.Z.z.a.i.i.8.8.tXtXq.r.t.c.A.|.-XiXZXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXjXc.b.b.j.t.w.w.w.0.q.q.q.q.q.0.0.0.0.8.q.8.0.q.0.e.7.4.3.7.3.e.7.3.0.3.4.0.4.7.q.e.q.q.w.s.s.n.N.M.oXB.4XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCXB.v.N.b.v.v.g.s.0.0.0.0.7.4.4.3.e.3.3.:.0.0.7.7.7.7.7.3.3.7.3.3.7.3.3.4.3.3.9.8.4.q.9.e.w.w.c.c.c.N.c.FXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXAXBXjX7X6X4XXe.P.b.B.v.v.M.v.s.v.b.j.s.w.s.w.w.w.w.w.w.w.b.t.j.m.n.n.B.B.P.P.R.8XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXB.q.H.v.l.j.s.s.w.q.e.7.0.7.7.3.3.3.3.3.3.l 1.4.1.8.3.q.t.w.w.w.A.SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXFX Xb.L.B.B.B.B.v.v.b.b.b.b.j.b.w.b.b.s.s.s.s.b.b.b.v.I.P.v.B.P.B.tXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAXN.s.n.f.l.f.w.w.w.0.0.7.4.4.3.3.3.l 4.l 3.l 4.4.e.4.q.z.j.y.c.MXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKX KXKXKX KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXA.v.B.P.v.v.B.B.v.v.b.b.v.b.b.v.b.j.b.b.b.b.b.N.B.n.P.Q.P.B.4XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAXN.h.l.l.f.q.0.0.w.0.0.0.3.3.3.4.l 1.3.1.4.4.4.3.w.h.r.x V.mXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKX KXKXKX KXKX KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXW.N.v.P.B.v.v.b.N.n.N.n.b.b.v.N.b.b.n.n.n.N.B.B.P.R.P.R.gXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSX Xb.t.w.j.j.w.w.0.0.7.7.4.5.4.3.3.1.3.4.4.4.e.w.9.z D.CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKX KXKXKXKXKX KXKX KXKXKX KX KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGX>Xc.N.M.B.B.n.M.n.B.n.n.n.n.v.n.n.N.M.B.P.B.B.P.R. XmXLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFX:XB.e.t.j.a.a.w.q.0.0.7.7.8.3.3.4.3.4.8.8.w.w.v %XHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKX KXKXKX KXKXKXKXKXKXKX KXKX KX KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXhXR.n.R.N.B.M.M.M.L.M.M.M.M.M.M.M.B.P.P.P.R.R.4XDXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX Xt.e.a.f.s.s.q.0.7.7.7.8.5.7.8.8.4.z 9.A.xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKX KXKX KXKXKXKX KXKX KXKXKXKX KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXyXT.B.N.B.B.L.L.I.P.P.P.P.P.P.P.P.B.A.XXmXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXfXE.b.7.7.7.u.a.d.a.q.7.:.&.6 l t.E.8XHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKX KXKX KXKXKX KXKX KXKX KXKXKXKX KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSX4XoXB.N.N.L.P.P.I.P.P.L.B.B.oX1XMXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmX1X XZ.e.c b x x b y.S.%X6XCXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKX KXKXKX KXKX KXKXKX KXKX KXKX KXKXKXKX KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXNXpX&XoXA.A.A.A. XXX4XmXDXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXHXCXBXBXBXMXCXVXHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKX KXKXKXKX KXKX KXKX KXKXKXKXKX KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXSXVXSXSXFXPXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX",
+"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXtXtXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX"
+};
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/Images/njoy.xpm b/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/Images/njoy.xpm
new file mode 100644
index 0000000000..2214139485
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/Src/GUI/Images/njoy.xpm
@@ -0,0 +1,4028 @@
+/* XPM */
+static const char *AboutBox_WxStaticBitmap1_XPM[]={
+/* AboutBox_WxStaticBitmap1 */
+"200 60 3963 2",
+" c None",
+" 0 c #98CAFD",
+" 1 c #99CBFC",
+" 2 c #97C9FC",
+" 3 c #96C8F9",
+" 4 c #95C7F8",
+" 5 c #94C6F7",
+" 6 c #93C5F6",
+" 7 c #92C2F2",
+" 8 c #91C1F1",
+" 9 c #91C0EC",
+" a c #8DBCE8",
+" b c #8BB6E3",
+" c c #81ACD9",
+" d c #707CA6",
+" e c #B1BDE7",
+" f c #BCCAEF",
+" g c #526085",
+" h c #6E98C2",
+" i c #8BB5DF",
+" j c #90C0F0",
+" k c #93C5F8",
+" l c #94C6F9",
+" m c #97C9FA",
+" n c #99CBFE",
+" o c #9ACAFB",
+" p c #9ACCFD",
+" q c #9ACCFF",
+" r c #92C4F5",
+" s c #8EBDE9",
+" t c #8CB7E4",
+" u c #79A4D1",
+" v c #6F7BA5",
+" w c #D7E3FF",
+" x c #8E9CC1",
+" y c #58668B",
+" z c #6B95BF",
+" A c #8AB4DE",
+" B c #95C5F5",
+" C c #95C7FA",
+" D c #9BCDFE",
+" E c #9BCDFF",
+" F c #9CCCFD",
+" G c #A0D1FC",
+" H c #A1D0FC",
+" I c #A0D0FE",
+" J c #9FCFFD",
+" K c #9FCEFA",
+" L c #9ECDF9",
+" M c #9CCBF5",
+" N c #9BCAF4",
+" O c #9AC7F1",
+" P c #97C4EE",
+" Q c #94BFE9",
+" R c #93BEE8",
+" S c #91BBE3",
+" T c #8BB5DD",
+" U c #8EA2D5",
+" V c #6F83B6",
+" W c #B7BDDF",
+" X c #BDC3E5",
+" Y c #556B90",
+" Z c #61779C",
+" & c #779FC2",
+"0 c #91B9DC",
+"00 c #97C4ED",
+"01 c #9AC7F0",
+"02 c #9DC9F6",
+"03 c #A0CCF9",
+"04 c #9ECFFA",
+"05 c #9FD0FB",
+"06 c #A0D1FA",
+"07 c #A1D0FE",
+"08 c #A2D3FE",
+"09 c #A3D2FE",
+"0a c #A1D1FF",
+"0b c #9DCCF6",
+"0c c #9AC9F3",
+"0d c #96C3ED",
+"0e c #91BCE6",
+"0f c #89B3DB",
+"0g c #78A2CA",
+"0h c #7488BB",
+"0i c #99ADE0",
+"0j c #C7CDEF",
+"0k c #6D7395",
+"0l c #546A8F",
+"0m c #748AAF",
+"0n c #85ADD0",
+"0o c #96BEE1",
+"0p c #99C6EF",
+"0q c #9BC8F1",
+"0r c #A1CDFA",
+"0s c #A1D2FD",
+"0t c #A2D3FC",
+"0u c #A3D2FF",
+"0v c #A6D6FC",
+"0w c #A8D5FC",
+"0x c #A7D4FB",
+"0y c #A6D3FA",
+"0z c #A5D2F9",
+"0A c #A4D0F7",
+"0B c #A2CEF5",
+"0C c #A0CCF1",
+"0D c #9DC9EE",
+"0E c #9CC4E8",
+"0F c #99C1E5",
+"0G c #99BDE1",
+"0H c #89ADD1",
+"0I c #8094C6",
+"0J c #798DBF",
+"0K c #9EAAD4",
+"0L c #AFBBE5",
+"0M c #617598",
+"0N c #53678A",
+"0O c #6689A7",
+"0P c #80A3C1",
+"0Q c #8FBADD",
+"0R c #99C4E7",
+"0S c #9CC8ED",
+"0T c #9FCBF0",
+"0U c #A2CFF6",
+"0V c #A3D0F7",
+"0W c #A8D5FE",
+"0X c #A5D5FB",
+"0Y c #A9D5FC",
+"0Z c #A8D8FE",
+"0& c #AAD7FE",
+"1 c #A9D6FD",
+"10 c #85A9CD",
+"11 c #7094B8",
+"12 c #7F93C5",
+"13 c #97ABDD",
+"14 c #9DA9D3",
+"15 c #64709A",
+"16 c #54688B",
+"17 c #7185A8",
+"18 c #7FA2C0",
+"19 c #94B7D5",
+"1a c #98C3E6",
+"1b c #9DC8EB",
+"1c c #A2CEF3",
+"1d c #AAD7FF",
+"1e c #A7D7FD",
+"1f c #ABD7FE",
+"1g c #AED9FB",
+"1h c #AED9FC",
+"1i c #ADD8FA",
+"1j c #ACD7FA",
+"1k c #ABD6F9",
+"1l c #AAD5F7",
+"1m c #A7D2F4",
+"1n c #A7D0F0",
+"1o c #A5CEEE",
+"1p c #A2C9E8",
+"1q c #9FC6E5",
+"1r c #9DBAE2",
+"1s c #84A1C9",
+"1t c #7586BC",
+"1u c #899AD0",
+"1v c #95A3D2",
+"1w c #8593C2",
+"1x c #586D8A",
+"1y c #5A6F8C",
+"1z c #6B8BA4",
+"1A c #82A2BB",
+"1B c #91B8D7",
+"1C c #9AC1E0",
+"1D c #9EC7E7",
+"1E c #A1CAEA",
+"1F c #A8D3F5",
+"1G c #ABD6F8",
+"1H c #ACD7F9",
+"1I c #ADD8FB",
+"1J c #B0D8FB",
+"1K c #AED8FE",
+"1L c #707D86",
+"1M c #3D4A53",
+"1N c #798B99",
+"1O c #B6C8D6",
+"1P c #B8D6EE",
+"1Q c #B1D8F9",
+"1R c #AFDAFC",
+"1S c #B1DCFE",
+"1T c #B1DCFF",
+"1U c #B0DBFD",
+"1V c #AFDAFD",
+"1W c #A6CFEF",
+"1X c #A3CCEC",
+"1Y c #A0C7E6",
+"1Z c #96BDDC",
+"1& c #86A3CB",
+"2 c #83A0C8",
+"20 c #8C9DD3",
+"21 c #8A9BD1",
+"22 c #7280AF",
+"23 c #5A6897",
+"24 c #647996",
+"25 c #7B90AD",
+"26 c #89A9C2",
+"27 c #9ABAD3",
+"28 c #9CC3E2",
+"29 c #A1C8E7",
+"2a c #A2CBEB",
+"2b c #A9D2F2",
+"2c c #B0DBFE",
+"2d c #B3DBFE",
+"2e c #B1DBFF",
+"2f c #2D3A43",
+"2g c #606D76",
+"2h c #3F515F",
+"2i c #000F1D",
+"2j c #1E3C54",
+"2k c #537189",
+"2l c #7DA4C5",
+"2m c #AED5F6",
+"2n c #B6DFFB",
+"2o c #B6DFFD",
+"2p c #B5DEFA",
+"2q c #B4DDF9",
+"2r c #B4DBFC",
+"2s c #AED5F2",
+"2t c #AAD1EE",
+"2u c #A8CDE8",
+"2v c #A4C9E4",
+"2w c #9BB4DD",
+"2x c #849DC6",
+"2y c #8C9CD8",
+"2z c #93A3DF",
+"2A c #8497BF",
+"2B c #6679A1",
+"2C c #5C758B",
+"2D c #6F889E",
+"2E c #7C9FB5",
+"2F c #8FB2C8",
+"2G c #9ABED8",
+"2H c #A2C6E0",
+"2I c #A4C9E3",
+"2J c #A7CCE6",
+"2K c #A8D0EA",
+"2L c #A9D1EB",
+"2M c #ABD3ED",
+"2N c #ADD5EF",
+"2O c #B0D7F4",
+"2P c #B0D9F5",
+"2Q c #B2DBF7",
+"2R c #B3DAF9",
+"2S c #B7E0FE",
+"2T c #B7DEFB",
+"2U c #B6DFFF",
+"2V c #B7E0FF",
+"2W c #3D4547",
+"2X c #A5ADAF",
+"2Y c #F8F8F6",
+"2Z c #F1F1EF",
+"2& c #B8B8B8",
+"3 c #797979",
+"30 c #3E3E3E",
+"31 c #090909",
+"32 c #272F32",
+"33 c #50585B",
+"34 c #788691",
+"35 c #A8B6C1",
+"36 c #C1DCED",
+"37 c #B9DEF9",
+"38 c #B7DEFD",
+"39 c #B8E1FD",
+"3a c #B8E1FF",
+"3b c #B7E0FC",
+"3c c #B5DCFD",
+"3d c #B2D9FA",
+"3e c #A6CBE6",
+"3f c #9ABFDA",
+"3g c #859EC7",
+"3h c #8BA4CD",
+"3i c #98A8E4",
+"3j c #8191CD",
+"3k c #60739B",
+"3l c #63769E",
+"3m c #7891A7",
+"3n c #8CA5BB",
+"3o c #95B8CE",
+"3p c #9EC1D7",
+"3q c #A3C7E1",
+"3r c #A6CAE4",
+"3s c #A9CEE8",
+"3t c #AAD2EC",
+"3u c #ACD4EE",
+"3v c #B1DAF6",
+"3w c #B4DBFA",
+"3x c #B8DFFC",
+"3y c #BAE1FE",
+"3z c #464E50",
+"3A c #9EA6A8",
+"3B c #FDFDFB",
+"3C c #FCFCFA",
+"3D c #FDFDFD",
+"3E c #F9F9F9",
+"3F c #C5CDD0",
+"3G c #929A9D",
+"3H c #56646F",
+"3I c #192732",
+"3J c #052031",
+"3K c #405B6C",
+"3L c #779CB7",
+"3M c #BCE1FC",
+"3N c #B9E0FF",
+"3O c #B8DFFE",
+"3P c #BCE5FB",
+"3Q c #BCE4FD",
+"3R c #BBE5FD",
+"3S c #BEE4FB",
+"3T c #BBE4FA",
+"3U c #B9E2F8",
+"3V c #B8DEF5",
+"3W c #B5DBF2",
+"3X c #B1D5EB",
+"3Y c #ABCFE5",
+"3Z c #A4C0E7",
+"3& c #88A4CB",
+"4 c #91A4DF",
+"40 c #A1B4EF",
+"41 c #8391B6",
+"42 c #637196",
+"43 c #647F90",
+"44 c #7D98A9",
+"45 c #8FAFC4",
+"46 c #9BBBD0",
+"47 c #A1C4D8",
+"48 c #A6C9DD",
+"49 c #A8CBE1",
+"4a c #AACDE3",
+"4b c #ABD1E6",
+"4c c #ADD3E8",
+"4d c #AED3E6",
+"4e c #B0D5E8",
+"4f c #B1D5ED",
+"4g c #B2D6EE",
+"4h c #B3D7EF",
+"4i c #B5D9F1",
+"4j c #B6DCF3",
+"4k c #B8DEF3",
+"4l c #B9DFF4",
+"4m c #BBE0FA",
+"4n c #BCE1FB",
+"4o c #BAE3F9",
+"4p c #BEE3FD",
+"4q c #4B5356",
+"4r c #9DA5A8",
+"4s c #FEFFFF",
+"4t c #FDFFFE",
+"4u c #FFFFFF",
+"4v c #FEFEFE",
+"4w c #DFDFE1",
+"4x c #969698",
+"4y c #454545",
+"4z c #030303",
+"4A c #526875",
+"4B c #C8DEEB",
+"4C c #BBE3FC",
+"4D c #BEE7FD",
+"4E c #BEE6FF",
+"4F c #BDE7FF",
+"4G c #C0E6FD",
+"4H c #BAE0F7",
+"4I c #B2D6EC",
+"4J c #A9CDE3",
+"4K c #97B3DA",
+"4L c #8CA8CF",
+"4M c #AABDF8",
+"4N c #899CD7",
+"4O c #627095",
+"4P c #6A789D",
+"4Q c #93AEBF",
+"4R c #A1C1D6",
+"4S c #A3C6DA",
+"4T c #A7CAE0",
+"4U c #A9CCE2",
+"4V c #A8CCE2",
+"4W c #A9CFE4",
+"4X c #AAD0E5",
+"4Y c #ACD1E4",
+"4Z c #AED2EA",
+"4& c #ADD1E9",
+"5 c #AFD3EB",
+"50 c #B3D9F0",
+"51 c #B4DAF1",
+"52 c #B5DBF0",
+"53 c #BFE5FC",
+"54 c #BDE6FC",
+"55 c #C0E5FF",
+"56 c #495154",
+"57 c #9EA6A9",
+"58 c #FCFEFD",
+"59 c #FEFEFF",
+"5a c #E7E7E7",
+"5b c #182E3B",
+"5c c #8197A4",
+"5d c #BDE5FE",
+"5e c #C2E8FD",
+"5f c #C3E7FF",
+"5g c #C3E9FE",
+"5h c #C2E6FE",
+"5i c #C1E5FB",
+"5j c #BEE2F8",
+"5k c #BCDFF5",
+"5l c #B7DAF0",
+"5m c #B4D4EB",
+"5n c #A6C6DD",
+"5o c #90A5DE",
+"5p c #A5BAF3",
+"5q c #A4B6E4",
+"5r c #6577A5",
+"5s c #647786",
+"5t c #8093A2",
+"5u c #8DAABA",
+"5v c #9CB9C9",
+"5w c #9FBED0",
+"5x c #A2C1D3",
+"5y c #A5C6D9",
+"5z c #A6C7DA",
+"5A c #A9CADD",
+"5B c #A8C9DC",
+"5C c #AAC9DE",
+"5D c #ABCADF",
+"5E c #AEC7E6",
+"5F c #ADC8E6",
+"5G c #AEC9E7",
+"5H c #ADCCE0",
+"5I c #B0CFE3",
+"5J c #B2D2E7",
+"5K c #B6D6EB",
+"5L c #B5DAEC",
+"5M c #B8DDEF",
+"5N c #B9DDF3",
+"5O c #BCE0F6",
+"5P c #C1E5FD",
+"5Q c #C2E8FB",
+"5R c #C1E7FC",
+"5S c #C4E8FF",
+"5T c #454A4E",
+"5U c #A9AEB2",
+"5V c #E9E9E9",
+"5W c #000D1A",
+"5X c #C4DAE7",
+"5Y c #C4E6FF",
+"5Z c #C3E5FE",
+"5& c #C0E4FC",
+"6 c #BFE3F9",
+"60 c #BADDF3",
+"61 c #B5D8EE",
+"62 c #B1D1E8",
+"63 c #96B6CD",
+"64 c #94A9E2",
+"65 c #BDD2FF",
+"66 c #8092C0",
+"67 c #5E709E",
+"68 c #728594",
+"69 c #8C9FAE",
+"6a c #92AFBF",
+"6b c #99B6C6",
+"6c c #9AB9CB",
+"6d c #9CBBCD",
+"6e c #9EBFD2",
+"6f c #9FC0D3",
+"6g c #9DBED1",
+"6h c #96B5CA",
+"6i c #89A8BD",
+"6j c #7891B0",
+"6k c #6E87A6",
+"6l c #6E89A7",
+"6m c #809BB9",
+"6n c #94B3C7",
+"6o c #A3C2D6",
+"6p c #A8C8DD",
+"6q c #ADCDE2",
+"6r c #AED3E5",
+"6s c #B1D6E8",
+"6t c #B4D8EE",
+"6u c #B7DBF1",
+"6v c #BADEF4",
+"6w c #BEE2FA",
+"6x c #C0E6FB",
+"6y c #C1E7FA",
+"6z c #C2E6FF",
+"6A c #393E42",
+"6B c #B6BBBF",
+"6C c #8D8D8D",
+"6D c #415764",
+"6E c #CDE3F0",
+"6F c #C2E4FD",
+"6G c #BCE6FE",
+"6H c #BCE2F9",
+"6I c #B9DFF6",
+"6J c #B7DBF3",
+"6K c #AFCDF3",
+"6L c #91AFD5",
+"6M c #A9BEEB",
+"6N c #BED3FF",
+"6O c #687B9C",
+"6P c #627596",
+"6Q c #7792A5",
+"6R c #8AA5B8",
+"6S c #90ADBF",
+"6T c #93B0C2",
+"6U c #96B3C5",
+"6V c #98B5C7",
+"6W c #98B7CB",
+"6X c #97B6CA",
+"6Y c #98B0D2",
+"6Z c #93ABCD",
+"6& c #8A9FD6",
+"7 c #768BC2",
+"70 c #6E7CBD",
+"71 c #6F7DBE",
+"72 c #6E7BAF",
+"73 c #6D77B2",
+"74 c #6B75B0",
+"75 c #6D7FAF",
+"76 c #8496C6",
+"77 c #9BBACF",
+"78 c #A4C3D8",
+"79 c #A6CBDE",
+"7a c #ABD0E3",
+"7b c #AED2E8",
+"7c c #B7DDF4",
+"7d c #BDE2FC",
+"7e c #BCE5F9",
+"7f c #BDE6FA",
+"7g c #BEE7FB",
+"7h c #BFE7FF",
+"7i c #292D2E",
+"7j c #CBCFD0",
+"7k c #FDFEFF",
+"7l c #2B2C2E",
+"7m c #82A8BD",
+"7n c #B9E3FB",
+"7o c #B8E2FA",
+"7p c #B4D8F0",
+"7q c #AAC8EE",
+"7r c #86A4CA",
+"7s c #ABC0ED",
+"7t c #677A9B",
+"7u c #657899",
+"7v c #7994A7",
+"7w c #87A2B5",
+"7x c #8AA7B9",
+"7y c #8CA9BB",
+"7z c #8EABBD",
+"7A c #8DAABC",
+"7B c #88A7BB",
+"7C c #87A6BA",
+"7D c #8098BA",
+"7E c #7189AB",
+"7F c #6D82B9",
+"7G c #6F84BB",
+"7H c #7785C6",
+"7I c #8A98D9",
+"7J c #ADBAEE",
+"7K c #C4D1FF",
+"7L c #B6C0FB",
+"7M c #838DC8",
+"7N c #6779A9",
+"7O c #6678A8",
+"7P c #7493A8",
+"7Q c #91B0C5",
+"7R c #9CC1D4",
+"7S c #A1C6D9",
+"7T c #A6CAE0",
+"7U c #ACD0E6",
+"7V c #AFD5EC",
+"7W c #B7DCF6",
+"7X c #B9DEF8",
+"7Y c #B9E2F6",
+"7Z c #BAE3F7",
+"7& c #BBE4F8",
+"8 c #111516",
+"80 c #E4E8E9",
+"81 c #C9CACC",
+"82 c #202123",
+"83 c #BEE4F9",
+"84 c #BAE4FD",
+"85 c #BAE3FF",
+"86 c #B8E4FD",
+"87 c #B9E3FC",
+"88 c #B8E2FB",
+"89 c #B4DCF6",
+"8a c #B1D9F3",
+"8b c #AED3ED",
+"8c c #A4C6E2",
+"8d c #85A7C3",
+"8e c #A0B4E9",
+"8f c #C1D5FF",
+"8g c #8594CB",
+"8h c #5D6CA3",
+"8i c #6779A1",
+"8j c #7385AD",
+"8k c #7990AF",
+"8l c #8097B6",
+"8m c #7D92BD",
+"8n c #798BCB",
+"8o c #7183C3",
+"8p c #7584BD",
+"8q c #7D8CC5",
+"8r c #909DBD",
+"8s c #B0BDDD",
+"8t c #D4E0EE",
+"8u c #E9F5FF",
+"8v c #EDF8FE",
+"8w c #EEF9FF",
+"8x c #EFF7FF",
+"8y c #D9E1EC",
+"8z c #939FC9",
+"8A c #6372AB",
+"8B c #7483BC",
+"8C c #8DACC1",
+"8D c #9AB9CE",
+"8E c #A0C2DB",
+"8F c #A7C9E2",
+"8G c #A9CFE6",
+"8H c #AED4EB",
+"8I c #B1D9F2",
+"8J c #B3DBF4",
+"8K c #B5DFF8",
+"8L c #B7E1FA",
+"8M c #B9E2FE",
+"8N c #BAE4FC",
+"8O c #5B6972",
+"8P c #64727B",
+"8Q c #BBE5FE",
+"8R c #BBE3FD",
+"8S c #BBE4FF",
+"8T c #B7E3FC",
+"8U c #B9E2FF",
+"8V c #B6E0F9",
+"8W c #AACFE9",
+"8X c #9FC1DD",
+"8Y c #87A9C5",
+"8Z c #8195CA",
+"8& c #A7BBF0",
+"9 c #8998CF",
+"90 c #7382B9",
+"91 c #6E80A8",
+"92 c #63759D",
+"93 c #5F7695",
+"94 c #7188A7",
+"95 c #758AB5",
+"96 c #7388B3",
+"97 c #788ACA",
+"98 c #8092D2",
+"99 c #99A8E1",
+"9a c #C2D1FF",
+"9b c #DEEBFF",
+"9c c #E4F1FF",
+"9d c #E7F3FF",
+"9e c #F0F8FF",
+"9f c #DDE9FF",
+"9g c #A2AED8",
+"9h c #6C7BB4",
+"9i c #6170A9",
+"9j c #68879C",
+"9k c #88A7BC",
+"9l c #95B7D0",
+"9m c #9EC0D9",
+"9n c #A3C9E0",
+"9o c #ACD4ED",
+"9p c #B0D8F1",
+"9q c #B2DCF5",
+"9r c #B4DEF7",
+"9s c #BAE2FB",
+"9t c #90B8D1",
+"9u c #2D2D2D",
+"9v c #F4F4F4",
+"9w c #03111A",
+"9x c #B1BFC8",
+"9y c #B9E1FB",
+"9z c #BAE2FC",
+"9A c #B5E1FC",
+"9B c #B5E1FE",
+"9C c #B4E0FD",
+"9D c #ADD4F1",
+"9E c #A9D0ED",
+"9F c #A5CAE7",
+"9G c #9FC4E1",
+"9H c #9ABCD8",
+"9I c #88AAC6",
+"9J c #7A8DD1",
+"9K c #7B8ED2",
+"9L c #8B9FD2",
+"9M c #9DB1E4",
+"9N c #97A9E7",
+"9O c #7B8DCB",
+"9P c #6B7CC1",
+"9Q c #7384C9",
+"9R c #8191C4",
+"9S c #8B9BCE",
+"9T c #ABBBD5",
+"9U c #CADAF4",
+"9V c #DBEAFF",
+"9W c #DAE9FF",
+"9X c #D2E0FF",
+"9Y c #D4E2FF",
+"9Z c #E3F0FF",
+"9& c #E8F5FF",
+"a c #EDF7FF",
+"a0 c #EDFAFF",
+"a1 c #F0F9FE",
+"a2 c #EDF6FB",
+"a3 c #A6AFD6",
+"a4 c #717AA1",
+"a5 c #5E6EA2",
+"a6 c #6B7BAF",
+"a7 c #85A5BC",
+"a8 c #98B8CF",
+"a9 c #9DC3D8",
+"aa c #A4CADF",
+"ab c #A8CFEC",
+"ac c #ACD3F0",
+"ad c #AFD8F4",
+"ae c #B4DDFB",
+"af c #B3DFFC",
+"ag c #B6E2FD",
+"ah c #BADFF9",
+"ai c #B4E0FB",
+"aj c #B5E1FA",
+"ak c #B5E0FF",
+"al c #BEDEF5",
+"am c #7090A7",
+"an c #595959",
+"ao c #9E9E9E",
+"ap c #28485D",
+"aq c #BEDEF3",
+"ar c #B6E2FF",
+"as c #B3DFFA",
+"at c #B2DEFB",
+"au c #B1DDFA",
+"av c #AED7F3",
+"aw c #AAD3EF",
+"ax c #A7CEEB",
+"ay c #A2C9E6",
+"az c #98BDDA",
+"aA c #93B5D1",
+"aB c #84A6C2",
+"aC c #8194D8",
+"aD c #95A8EC",
+"aE c #B4C8FB",
+"aF c #ABBFF2",
+"aG c #90A2E0",
+"aH c #7C8ECC",
+"aI c #7F90D5",
+"aJ c #91A2E7",
+"aK c #B0C0F3",
+"aL c #CDDDFF",
+"aM c #DEEEFF",
+"aN c #D8E8FF",
+"aO c #CDDCFD",
+"aP c #BECDEE",
+"aQ c #AFBDEC",
+"aR c #A9B7E6",
+"aS c #CFDCED",
+"aT c #ECF6FF",
+"aU c #E7F1FA",
+"aV c #E2EFF7",
+"aW c #ECF5FA",
+"aX c #F1FAFF",
+"aY c #EAF3FF",
+"aZ c #6777AB",
+"a& c #5D6DA1",
+"b c #608097",
+"b0 c #82A2B9",
+"b1 c #92B8CD",
+"b2 c #A1C8E5",
+"b3 c #A6CDEA",
+"b4 c #A9D2EE",
+"b5 c #AFD8F6",
+"b6 c #B0D9F7",
+"b7 c #ABD7F2",
+"b8 c #83A8C2",
+"b9 c #90B5CF",
+"ba c #B4E0F9",
+"bb c #B4DFFF",
+"bc c #45657C",
+"bd c #8A8A8A",
+"be c #3A3A3A",
+"bf c #7595AA",
+"bg c #BDDDF2",
+"bh c #B1E0FE",
+"bi c #B2DFFE",
+"bj c #B1DEFD",
+"bk c #B0DDFC",
+"bl c #AFDCFB",
+"bm c #ADDAF9",
+"bn c #ABD8F5",
+"bo c #AAD7F4",
+"bp c #A8D4F1",
+"bq c #A3CFEC",
+"br c #A2CAE4",
+"bs c #9CC4DE",
+"bt c #99BED8",
+"bu c #91B6D0",
+"bv c #8FACD8",
+"bw c #7F9CC8",
+"bx c #8599DE",
+"by c #9BAFF4",
+"bz c #8FA2E4",
+"bA c #7E91D3",
+"bB c #8698C8",
+"bC c #99ABDB",
+"bD c #B4C4DD",
+"bE c #D0E0F9",
+"bF c #DEEEFD",
+"bG c #DFEFFE",
+"bH c #DEEFFF",
+"bI c #C5D6F4",
+"bJ c #B5B6FF",
+"bK c #9E9FFF",
+"bL c #7F83FE",
+"bM c #7C80FB",
+"bN c #BFCDE8",
+"bO c #E2F0FF",
+"bP c #C9F5E6",
+"bQ c #BBE7D8",
+"bR c #98EAA8",
+"bS c #8DDF9D",
+"bT c #C4E4D9",
+"bU c #E0FFF5",
+"bV c #F3FBFE",
+"bW c #EFF7FA",
+"bX c #A5ADD1",
+"bY c #6E769A",
+"bZ c #5D6B9C",
+"b& c #6B79AA",
+"c c #83A7BD",
+"c0 c #96BAD0",
+"c1 c #9BC2DF",
+"c2 c #A3CFEA",
+"c3 c #A6D2ED",
+"c4 c #AAD6F3",
+"c5 c #ACD8F5",
+"c6 c #AEDBFC",
+"c7 c #B0DDFE",
+"c8 c #BDDCF1",
+"c9 c #C4DAE8",
+"ca c #9CB2C0",
+"cb c #7A848E",
+"cc c #4F5963",
+"cd c #25292A",
+"ce c #080C0D",
+"cf c #343537",
+"cg c #000103",
+"ch c #B2DFFF",
+"ci c #B9DDF7",
+"cj c #B6DDFA",
+"ck c #B0DFFD",
+"cl c #B2DFFC",
+"cm c #B3DEFE",
+"cn c #B1E0FC",
+"co c #C1DBEC",
+"cp c #1C3647",
+"cq c #C2C2C2",
+"cr c #CBD0D6",
+"cs c #000208",
+"ct c #B9DDF5",
+"cu c #C5DBE9",
+"cv c #9AB0BE",
+"cw c #6F7A80",
+"cx c #49545A",
+"cy c #383D41",
+"cz c #34393D",
+"cA c #3E474E",
+"cB c #5B646B",
+"cC c #889EAC",
+"cD c #C0DBEE",
+"cE c #BFDAED",
+"cF c #86A0B1",
+"cG c #A1B3C1",
+"cH c #9FB1BF",
+"cI c #BBD2E0",
+"cJ c #C3DAE8",
+"cK c #C0DCEA",
+"cL c #C1DDEB",
+"cM c #B1DFFF",
+"cN c #AFDEFC",
+"cO c #ACD9F8",
+"cP c #AAD7F6",
+"cQ c #A7D4F1",
+"cR c #A5D2EF",
+"cS c #A1CDEA",
+"cT c #9ECAE7",
+"cU c #9BC3DD",
+"cV c #95BDD7",
+"cW c #92B7D1",
+"cX c #8BB0CA",
+"cY c #7794C0",
+"cZ c #7D9AC6",
+"c& c #7E92D7",
+"d c #8497D9",
+"d0 c #9AADEF",
+"d1 c #B5C7F7",
+"d2 c #CEE0FF",
+"d3 c #DDEDFF",
+"d4 c #DBECFF",
+"d5 c #C1D2F0",
+"d6 c #898AF4",
+"d7 c #7273DD",
+"d8 c #696DE8",
+"d9 c #9498FF",
+"da c #D7E5FF",
+"db c #D9E7FF",
+"dc c #B1DDCE",
+"dd c #9FCBBC",
+"de c #73C583",
+"df c #59AB69",
+"dg c #A7C7BC",
+"dh c #DDFDF2",
+"di c #F4FCFF",
+"dj c #E8F0FF",
+"dk c #A6AED2",
+"dl c #6270A1",
+"dm c #5A6899",
+"dn c #5E8298",
+"do c #89ADC3",
+"dp c #93BAD7",
+"dq c #9ECAE5",
+"dr c #A2CEE9",
+"ds c #A7D3F0",
+"dt c #ACD9FA",
+"du c #8CB8D5",
+"dv c #58778C",
+"dw c #214055",
+"dx c #000816",
+"dy c #1F3543",
+"dz c #5C6670",
+"dA c #929CA6",
+"dB c #CED2D3",
+"dC c #F8FCFD",
+"dD c #B8B9BB",
+"dE c #333436",
+"dF c #B1DEFF",
+"dG c #A6D3F4",
+"dH c #7A9EB8",
+"dI c #557993",
+"dJ c #44677D",
+"dK c #4A6D83",
+"dL c #678EAB",
+"dM c #B1DEFB",
+"dN c #B2DDFD",
+"dO c #AFDEFA",
+"dP c #B0DFFB",
+"dQ c #B5CFE0",
+"dR c #000F20",
+"dS c #F8F8F8",
+"dT c #5D6268",
+"dU c #666B71",
+"dV c #84A8C0",
+"dW c #3F637B",
+"dX c #091F2D",
+"dY c #1C3240",
+"dZ c #667177",
+"d& c #98A3A9",
+"e c #B8BDC1",
+"e0 c #BBC0C4",
+"e1 c #AAB3BA",
+"e2 c #7E878E",
+"e3 c #263C4A",
+"e4 c #192F3D",
+"e5 c #7AA6C1",
+"e6 c #B2DEF9",
+"e7 c #7FAACA",
+"e8 c #425D70",
+"e9 c #000A1D",
+"ea c #062031",
+"eb c #5A7485",
+"ec c #90BDDC",
+"ed c #000B19",
+"ee c #0C1E2C",
+"ef c #001422",
+"eg c #000917",
+"eh c #001220",
+"ei c #031F2D",
+"ej c #719DB8",
+"ek c #B0DEFF",
+"el c #AFDDFE",
+"em c #AEDCFD",
+"en c #AEDCFF",
+"eo c #AEDCFE",
+"ep c #ACDDFD",
+"eq c #ABDCFC",
+"er c #ACDAFC",
+"es c #AAD8F9",
+"et c #A8D6F7",
+"eu c #A8D5F6",
+"ev c #A5D2F3",
+"ew c #A2CFEE",
+"ex c #9FCCEB",
+"ey c #9FC8E6",
+"ez c #99C2E0",
+"eA c #96BBD8",
+"eB c #90B5D2",
+"eC c #839ECB",
+"eD c #6984B1",
+"eE c #798ED1",
+"eF c #7C91D4",
+"eG c #8698CA",
+"eH c #9EB0E2",
+"eI c #B9CAE4",
+"eJ c #CFE0FA",
+"eK c #DAEBFD",
+"eL c #DBECFE",
+"eM c #E0F0FF",
+"eN c #E1F1FF",
+"eO c #E2EEFF",
+"eP c #D7E3F9",
+"eQ c #AFB6ED",
+"eR c #9EA5DC",
+"eS c #B6BFDC",
+"eT c #D7E0FD",
+"eU c #E3F6FD",
+"eV c #CEE1E8",
+"eW c #88DA92",
+"eX c #69BB73",
+"eY c #43A945",
+"eZ c #44AA46",
+"e& c #BCD4C7",
+"f c #E7FFF2",
+"f0 c #F6FBFF",
+"f1 c #F7FCFF",
+"f2 c #E9EEF2",
+"f3 c #9AA1CD",
+"f4 c #646B97",
+"f5 c #546590",
+"f6 c #7182AD",
+"f7 c #8AAFCA",
+"f8 c #94B9D4",
+"f9 c #97C3E0",
+"fa c #A1CEEF",
+"fb c #A7D5F6",
+"fc c #A9D7F8",
+"fd c #ADDBFD",
+"fe c #ADDBFC",
+"ff c #C3D6E5",
+"fg c #6F8291",
+"fh c #2A2E31",
+"fi c #1D2124",
+"fj c #707070",
+"fk c #B6B6B6",
+"fl c #F0F0F0",
+"fm c #FCFCFC",
+"fn c #FBFDFC",
+"fo c #FAFCFB",
+"fp c #FBFBFD",
+"fq c #72797F",
+"fr c #5E656B",
+"fs c #3D4144",
+"ft c #060A0D",
+"fu c #474747",
+"fv c #747474",
+"fw c #858585",
+"fx c #535353",
+"fy c #050505",
+"fz c #59707E",
+"fA c #C0D7E5",
+"fB c #AFDBFE",
+"fC c #85939C",
+"fD c #3A4851",
+"fE c #FBFBFB",
+"fF c #FBFCFE",
+"fG c #FCFDFF",
+"fH c #FCFCFE",
+"fI c #E1E1E1",
+"fJ c #000C1E",
+"fK c #AAC7D9",
+"fL c #B6DAF4",
+"fM c #B5D9F3",
+"fN c #848E98",
+"fO c #2B353F",
+"fP c #252525",
+"fQ c #868686",
+"fR c #DADCDB",
+"fS c #AFAFAF",
+"fT c #071017",
+"fU c #868F96",
+"fV c #AFDCFD",
+"fW c #ACDDFE",
+"fX c #B3DAF7",
+"fY c #B4DBF8",
+"fZ c #B1C3CF",
+"f& c #647682",
+"g c #262729",
+"g0 c #2A2B2D",
+"g1 c #898B8A",
+"g2 c #E4E6E5",
+"g3 c #7A848D",
+"g4 c #5B656E",
+"g5 c #C3D6E4",
+"g6 c #263947",
+"g7 c #919191",
+"g8 c #EBEFF2",
+"g9 c #262A2D",
+"ga c #5C83A2",
+"gb c #ACDAFB",
+"gc c #ACDAFE",
+"gd c #A9DAFA",
+"ge c #A8D9F9",
+"gf c #A8D6F8",
+"gg c #A7D5F7",
+"gh c #A6D4F5",
+"gi c #A3D1F2",
+"gj c #A2CFF0",
+"gk c #9FCCED",
+"gl c #9BC8E7",
+"gm c #97C4E3",
+"gn c #96BFDD",
+"go c #90B9D7",
+"gp c #89AECB",
+"gq c #6D92AF",
+"gr c #7691BE",
+"gs c #7B96C3",
+"gt c #7E93D6",
+"gu c #94A9EC",
+"gv c #B7C9FB",
+"gw c #CADCFF",
+"gx c #D7E8FF",
+"gy c #D9EAFF",
+"gz c #DCEDFF",
+"gA c #DFEFFF",
+"gB c #D9E9F9",
+"gC c #D6E2F8",
+"gD c #DBE2FF",
+"gE c #DDE4FF",
+"gF c #EBF4FF",
+"gG c #E9F2FF",
+"gH c #E4F7FE",
+"gI c #D8EBF2",
+"gJ c #95E79F",
+"gK c #74C67E",
+"gL c #67CD69",
+"gM c #87ED89",
+"gN c #E0F8EB",
+"gO c #EBFFF6",
+"gP c #F8FDFF",
+"gQ c #D7DEFF",
+"gR c #8990BC",
+"gS c #586994",
+"gT c #7196B1",
+"gU c #8CB1CC",
+"gV c #91BDDA",
+"gW c #9CC9EA",
+"gX c #A4D2F3",
+"gY c #A9D7F9",
+"gZ c #AAD8FA",
+"g& c #ABD9FA",
+"h c #A1CFF0",
+"h0 c #132635",
+"h1 c #3B4E5D",
+"h2 c #B9BDC0",
+"h3 c #F6FAFD",
+"h4 c #F8FAF9",
+"h5 c #F9FBFA",
+"h6 c #F9F9FB",
+"h7 c #343B41",
+"h8 c #3B4248",
+"h9 c #A3A7AA",
+"ha c #EEF2F5",
+"hb c #FAFAFA",
+"hc c #DBDBDB",
+"hd c #324957",
+"he c #ADD9FC",
+"hf c #4F5D66",
+"hg c #829099",
+"hh c #F9FAFC",
+"hi c #FAFAFC",
+"hj c #6C6C6C",
+"hk c #436072",
+"hl c #BAD7E9",
+"hm c #84A8C2",
+"hn c #1B3F59",
+"ho c #A8B2BC",
+"hp c #BBC4CB",
+"hq c #000910",
+"hr c #8CB9DA",
+"hs c #ADDAFB",
+"ht c #AADBFC",
+"hu c #A9DAFB",
+"hv c #8CB3D0",
+"hw c #5E85A2",
+"hx c #00111D",
+"hy c #576975",
+"hz c #C4C5C7",
+"hA c #828C95",
+"hB c #545E67",
+"hC c #536674",
+"hD c #415462",
+"hE c #606467",
+"hF c #44484B",
+"hG c #B1D8F7",
+"hH c #AADBFB",
+"hI c #A8DAFD",
+"hJ c #A9D9FF",
+"hK c #A8DAFF",
+"hL c #A7D7FB",
+"hM c #A5D5F9",
+"hN c #A4D2F6",
+"hO c #A2D0F2",
+"hP c #9FCDEF",
+"hQ c #99C6E7",
+"hR c #98C1DF",
+"hS c #93BCDA",
+"hT c #90AFDD",
+"hU c #7B9AC8",
+"hV c #788DCE",
+"hW c #7F94D5",
+"hX c #8295CD",
+"hY c #96A9E1",
+"hZ c #B2C7E6",
+"h& c #C5DAF9",
+"i c #D7E9FF",
+"i0 c #D8EAFF",
+"i1 c #DBEBFB",
+"i2 c #DDEDFD",
+"i3 c #DDEEFF",
+"i4 c #DDF0FF",
+"i5 c #F2DAD6",
+"i6 c #E9D1CD",
+"i7 c #FFB781",
+"i8 c #FFAA74",
+"i9 c #D9AB94",
+"ia c #FFE1CA",
+"ib c #E5F5FF",
+"ic c #E5E8DD",
+"id c #E2E5DA",
+"ie c #D5E5D8",
+"if c #D4E4D7",
+"ig c #DCEAEA",
+"ih c #EAF8F8",
+"ii c #FAFFFF",
+"ij c #F7FAFF",
+"ik c #CCCFD8",
+"il c #727CAF",
+"im c #586295",
+"in c #5C7496",
+"io c #839BBD",
+"ip c #8BB4D2",
+"iq c #94BDDB",
+"ir c #A3CFF2",
+"is c #A5D1F4",
+"it c #A7D9FC",
+"iu c #A9DBFE",
+"iv c #A9D9FD",
+"iw c #8FBFE3",
+"ix c #1A1A1A",
+"iy c #F7F8FA",
+"iz c #F6F8F7",
+"iA c #F7F9F8",
+"iB c #F7F7F7",
+"iC c #CDCDCD",
+"iD c #E1E6E9",
+"iE c #84898C",
+"iF c #304352",
+"iG c #112433",
+"iH c #26353C",
+"iI c #85949B",
+"iJ c #F5F5F5",
+"iK c #F6F6F6",
+"iL c #F3F3F3",
+"iM c #545454",
+"iN c #3B5669",
+"iO c #BAD5E8",
+"iP c #AADAFF",
+"iQ c #ACD7F7",
+"iR c #A6D1F1",
+"iS c #DDDDDD",
+"iT c #F9F7F8",
+"iU c #F8F8FA",
+"iV c #F7F7F9",
+"iW c #D8DDE1",
+"iX c #03080C",
+"iY c #91BFE1",
+"iZ c #ABD9FB",
+"i& c #BED3E4",
+"j c #526778",
+"j0 c #171717",
+"j1 c #F7F5F6",
+"j2 c #E6E6E8",
+"j3 c #8D97A0",
+"j4 c #505A63",
+"j5 c #32434D",
+"j6 c #54656F",
+"j7 c #C4C4C4",
+"j8 c #838584",
+"j9 c #304C61",
+"ja c #B8D4E9",
+"jb c #B8D7EC",
+"jc c #B7D6EB",
+"jd c #828F97",
+"je c #334048",
+"jf c #1B191A",
+"jg c #8A8889",
+"jh c #EBEBEB",
+"ji c #899299",
+"jj c #4E575E",
+"jk c #B7D5ED",
+"jl c #7391A9",
+"jm c #202020",
+"jn c #E6E6E6",
+"jo c #0A2D49",
+"jp c #AACDE9",
+"jq c #A7D9FE",
+"jr c #A6D8FD",
+"js c #A4D4F8",
+"jt c #A2D2F6",
+"ju c #A3D1F5",
+"jv c #9FCDF1",
+"jw c #9DCBED",
+"jx c #98C6E8",
+"jy c #95C2E3",
+"jz c #90BDDE",
+"jA c #8DB6D4",
+"jB c #78A1BF",
+"jC c #7897C5",
+"jD c #7D9CCA",
+"jE c #8EA3E4",
+"jF c #ADC0F8",
+"jG c #C2D5FF",
+"jH c #D1E6FF",
+"jI c #D4E9FF",
+"jJ c #DCECFC",
+"jK c #DCEFFF",
+"jL c #D7EAFB",
+"jM c #E2CAC6",
+"jN c #D0B8B4",
+"jO c #ED9660",
+"jP c #D8814B",
+"jQ c #B4866F",
+"jR c #FFE4CD",
+"jS c #DAEAF9",
+"jT c #DBEBFA",
+"jU c #E9ECE1",
+"jV c #DFE2D7",
+"jW c #E2F2E5",
+"jX c #EDFBFB",
+"jY c #EEFCFC",
+"jZ c #FBFEFF",
+"j& c #F1F4FD",
+"k c #ABB5E8",
+"k0 c #606A9D",
+"k1 c #50688A",
+"k2 c #677FA1",
+"k3 c #80A9C7",
+"k4 c #8CB5D3",
+"k5 c #93BEE1",
+"k6 c #9FCBEE",
+"k7 c #A2CEF1",
+"k8 c #A3D3F9",
+"k9 c #A6D8FB",
+"ka c #020202",
+"kb c #F1F1F1",
+"kc c #F3F4F6",
+"kd c #F3F5F4",
+"ke c #F4F6F5",
+"kf c #EFEFEF",
+"kg c #0A0F12",
+"kh c #474C4F",
+"ki c #7E91A0",
+"kj c #A3B6C5",
+"kk c #8A99A0",
+"kl c #29383F",
+"km c #575757",
+"kn c #F2F2F2",
+"ko c #E8E8E8",
+"kp c #062134",
+"kq c #86A1B4",
+"kr c #507B9B",
+"ks c #F5F3F4",
+"kt c #F3F3F5",
+"ku c #F4F4F6",
+"kv c #595E62",
+"kw c #5A5F63",
+"kx c #A1CFF1",
+"ky c #2C4152",
+"kz c #394E5F",
+"kA c #F4F2F3",
+"kB c #727274",
+"kC c #0A0A0C",
+"kD c #3D4750",
+"kE c #757F88",
+"kF c #8899A3",
+"kG c #61727C",
+"kH c #000000",
+"kI c #989898",
+"kJ c #F2F4F3",
+"kK c #E7E9E8",
+"kL c #001227",
+"kM c #A3BFD4",
+"kN c #A8D8FC",
+"kO c #98C8EC",
+"kP c #57768B",
+"kQ c #00081D",
+"kR c #323F47",
+"kS c #98A5AD",
+"kT c #F0EEEF",
+"kU c #9099A0",
+"kV c #475057",
+"kW c #9BB9D1",
+"kX c #000A22",
+"kY c #BEBEBE",
+"kZ c #AAAAAA",
+"k& c #8EB1CD",
+"l c #B2D5F1",
+"l0 c #A8D8FF",
+"l1 c #A3D7FC",
+"l2 c #A5D6FE",
+"l3 c #A2D6FB",
+"l4 c #A3D4FC",
+"l5 c #A2D3FB",
+"l6 c #A0D2F7",
+"l7 c #9FD1F6",
+"l8 c #9DCDF3",
+"l9 c #99C9EF",
+"la c #97C5E7",
+"lb c #92C0E2",
+"lc c #91B7DC",
+"ld c #85ABD0",
+"le c #7B94D4",
+"lf c #738CCC",
+"lg c #8196D7",
+"lh c #889DDE",
+"li c #A3BAE4",
+"lj c #BBD2FC",
+"lk c #CEE2FD",
+"ll c #D0E4FF",
+"lm c #D1E3F9",
+"ln c #D3E5FB",
+"lo c #D6E8FF",
+"lp c #D9EBFF",
+"lq c #DBEDFF",
+"lr c #D7E8FA",
+"ls c #F5AD87",
+"lt c #D18963",
+"lu c #DE7130",
+"lv c #D86B2A",
+"lw c #C8BBB5",
+"lx c #F8EBE5",
+"ly c #EFE5A8",
+"lz c #F6ECAF",
+"lA c #FFE545",
+"lB c #FFD939",
+"lC c #E4D793",
+"lD c #FBEEAA",
+"lE c #F1F9FC",
+"lF c #F9FFFF",
+"lG c #FBFFFF",
+"lH c #E1E6F9",
+"lI c #959AAD",
+"lJ c #576397",
+"lK c #596599",
+"lL c #6F92AE",
+"lM c #89ACC8",
+"lN c #8DB9DC",
+"lO c #93BFE2",
+"lP c #9CCCF0",
+"lQ c #A0D1F9",
+"lR c #A1D5FA",
+"lS c #A3D7FE",
+"lT c #A4D8FD",
+"lU c #0E1215",
+"lV c #D6DADD",
+"lW c #F2F2F4",
+"lX c #E0E0E0",
+"lY c #243B4D",
+"lZ c #283F51",
+"l& c #80B0D4",
+"m c #A6D6FA",
+"m0 c #A4D5FD",
+"m1 c #25323B",
+"m2 c #86939C",
+"m3 c #7B8489",
+"m4 c #4A5358",
+"m5 c #A2D8FC",
+"m6 c #A5D6FF",
+"m7 c #BED1DF",
+"m8 c #000513",
+"m9 c #C5C7C6",
+"ma c #F1F3F2",
+"mb c #C5C5C5",
+"mc c #000821",
+"md c #A5C5DE",
+"me c #B4C7D5",
+"mf c #213442",
+"mg c #F0F2F1",
+"mh c #F1F1F3",
+"mi c #BDC4CA",
+"mj c #1C2329",
+"mk c #2B5472",
+"ml c #8EB7D5",
+"mm c #8EA8BF",
+"mn c #000F26",
+"mo c #E0DEDF",
+"mp c #F2F0F1",
+"mq c #404D56",
+"mr c #7A8790",
+"ms c #5E6367",
+"mt c #050A0E",
+"mu c #5F5F5F",
+"mv c #C6C6C6",
+"mw c #959EA5",
+"mx c #404950",
+"my c #A9D6F7",
+"mz c #AAD7F8",
+"mA c #383C3F",
+"mB c #7F8386",
+"mC c #BDBFBE",
+"mD c #001026",
+"mE c #7D99AF",
+"mF c #A0D4F9",
+"mG c #A1D2FA",
+"mH c #9FD0F8",
+"mI c #9ED0F5",
+"mJ c #9BCDF2",
+"mK c #95C5EB",
+"mL c #8BB9DB",
+"mM c #7CA2C7",
+"mN c #749ABF",
+"mO c #829BDB",
+"mP c #819ADA",
+"mQ c #96ABEC",
+"mR c #B7CCFF",
+"mS c #C3DAFF",
+"mT c #B4CBF5",
+"mU c #99ADC8",
+"mV c #8397B2",
+"mW c #788AA0",
+"mX c #8597AD",
+"mY c #99ABC3",
+"mZ c #C5D7EF",
+"m& c #D7E9FD",
+"n c #FFCEA8",
+"n0 c #F6AE88",
+"n1 c #FFA362",
+"n2 c #FFBF7E",
+"n3 c #F7EAE4",
+"n4 c #F5E8E2",
+"n5 c #EDE3A6",
+"n6 c #E5DB9E",
+"n7 c #FAD030",
+"n8 c #F6CC2C",
+"n9 c #EEE19D",
+"na c #FFFAB6",
+"nb c #F2FAFD",
+"nc c #C3C8DB",
+"nd c #6C78AC",
+"ne c #527591",
+"nf c #7B9EBA",
+"ng c #86B2D5",
+"nh c #8FBBDE",
+"ni c #94C4E8",
+"nj c #99C9ED",
+"nk c #9ECFF7",
+"nl c #A2D6FD",
+"nm c #222629",
+"nn c #BDC1C4",
+"no c #EFEFF1",
+"np c #EEEEEE",
+"nq c #515151",
+"nr c #566D7F",
+"ns c #B9D0E2",
+"nt c #95A2AB",
+"nu c #26333C",
+"nv c #EDEDED",
+"nw c #BEC7CC",
+"nx c #161F24",
+"ny c #A1D7FB",
+"nz c #A3D4FD",
+"nA c #A4D5FE",
+"nB c #647785",
+"nC c #3E515F",
+"nD c #EEF0EF",
+"nE c #EDEFEE",
+"nF c #F0F0F2",
+"nG c #5A7A93",
+"nH c #B1D1EA",
+"nI c #2B3E4C",
+"nJ c #5B6E7C",
+"nK c #A8A8AA",
+"nL c #030A10",
+"nM c #757C82",
+"nN c #ABD4F2",
+"nO c #B5CFE6",
+"nP c #2F4960",
+"nQ c #9A9899",
+"nR c #EFEDEE",
+"nS c #6B7881",
+"nT c #48555E",
+"nU c #3A3F43",
+"nV c #DBE0E4",
+"nW c #EEEEF0",
+"nX c #9BA4AB",
+"nY c #3A434A",
+"nZ c #426F90",
+"n& c #414548",
+"o c #E8ECEF",
+"o0 c #CDCFCE",
+"o1 c #131514",
+"o2 c #6B879D",
+"o3 c #B5D1E7",
+"o4 c #9FD4FC",
+"o5 c #9FD4FE",
+"o6 c #9ED3FD",
+"o7 c #9FD3FB",
+"o8 c #9ED2FA",
+"o9 c #9CD0F8",
+"oa c #9BCFF7",
+"ob c #9BCCF4",
+"oc c #97C8F0",
+"od c #8FBFE5",
+"oe c #8EB4E5",
+"of c #81A7D8",
+"og c #7D91DA",
+"oh c #8599E2",
+"oi c #8EA5D7",
+"oj c #ABC2F4",
+"ok c #C5D9F4",
+"ol c #AFC3DE",
+"om c #8B9096",
+"on c #858A90",
+"oo c #A8A7AC",
+"op c #B7B6BB",
+"oq c #C3C5C4",
+"or c #A3A5A4",
+"os c #8F9092",
+"ot c #737476",
+"ou c #A3AFBF",
+"ov c #D7E3F3",
+"ow c #DDECFF",
+"ox c #DEEDFF",
+"oy c #E3EFFD",
+"oz c #E1EDFB",
+"oA c #E3EDF7",
+"oB c #E7F1FB",
+"oC c #E6F2FE",
+"oD c #E9EBD6",
+"oE c #E0E2CD",
+"oF c #E8E0B9",
+"oG c #F4ECC5",
+"oH c #EFF7F9",
+"oI c #F2FAFC",
+"oJ c #F3FAFF",
+"oK c #F9FEFF",
+"oL c #FAFEFD",
+"oM c #FBFFFE",
+"oN c #F2F3F5",
+"oO c #A3A7D4",
+"oP c #626693",
+"oQ c #51678E",
+"oR c #6C82A9",
+"oS c #7EA9CB",
+"oT c #8BB6D8",
+"oU c #90C0E6",
+"oV c #98CCF4",
+"oW c #9ACEF6",
+"oX c #9DD1F9",
+"oY c #A0D3FE",
+"oZ c #9FD2FD",
+"o& c #303B41",
+"p c #A0ABB1",
+"p0 c #EAEAEA",
+"p1 c #A9B2B7",
+"p2 c #000308",
+"p3 c #9ED3FB",
+"p4 c #9FD5FB",
+"p5 c #99AEBF",
+"p6 c #132839",
+"p7 c #E7E5E6",
+"p8 c #040203",
+"p9 c #A0D4FC",
+"pa c #9FD2FF",
+"pb c #A5D3F5",
+"pc c #C3C3C3",
+"pd c #E9EBEA",
+"pe c #EAECEB",
+"pf c #EBEBED",
+"pg c #EAEAEC",
+"ph c #87949D",
+"pi c #24313A",
+"pj c #B3CFE5",
+"pk c #476379",
+"pl c #484848",
+"pm c #A1AAB1",
+"pn c #00060D",
+"po c #6B9BC3",
+"pp c #A3D3FB",
+"pq c #AAD1F0",
+"pr c #446B8A",
+"ps c #777777",
+"pt c #76838C",
+"pu c #4C5962",
+"pv c #090E12",
+"pw c #D3D8DC",
+"px c #ECECEC",
+"py c #A1A8AE",
+"pz c #333A40",
+"pA c #858F98",
+"pB c #101A23",
+"pC c #D8D8D8",
+"pD c #D6D6D6",
+"pE c #0C273C",
+"pF c #5B768B",
+"pG c #A1D4FF",
+"pH c #9DD2FC",
+"pI c #98C9F1",
+"pJ c #94C5ED",
+"pK c #91C1E7",
+"pL c #8BBBE1",
+"pM c #83A9DA",
+"pN c #7DA3D4",
+"pO c #879BE4",
+"pP c #97ABF4",
+"pQ c #BBD2FF",
+"pR c #9BAFCA",
+"pS c #7B8FAA",
+"pT c #B1B6BC",
+"pU c #C3C8CE",
+"pV c #CCCBD0",
+"pW c #CAC9CE",
+"pX c #C1C3C2",
+"pY c #B9BBBA",
+"pZ c #AEAFB1",
+"p& c #9C9D9F",
+"q c #778393",
+"q0 c #A8B4C4",
+"q1 c #DCEBFE",
+"q2 c #E4F0FE",
+"q3 c #E5F1FF",
+"q4 c #E8F2FC",
+"q5 c #E8F4FF",
+"q6 c #F4F6E1",
+"q7 c #F6F8E3",
+"q8 c #FFF8D1",
+"q9 c #F0F8FA",
+"qa c #F1F8FE",
+"qb c #F2F9FF",
+"qc c #F5FDFF",
+"qd c #D1D5FF",
+"qe c #8084B1",
+"qf c #546A91",
+"qg c #729DBF",
+"qh c #85B0D2",
+"qi c #8CBCE2",
+"qj c #92C2E8",
+"qk c #95C9F1",
+"ql c #9ED1FC",
+"qm c #3E494F",
+"qn c #8C979D",
+"qo c #343D42",
+"qp c #737C81",
+"qq c #9ED4FA",
+"qr c #8DA2B3",
+"qs c #1F3445",
+"qt c #E8E6E7",
+"qu c #141213",
+"qv c #8BBFE7",
+"qw c #9DD2FA",
+"qx c #A4D2F4",
+"qy c #3E6C8E",
+"qz c #585858",
+"qA c #E6E8E7",
+"qB c #E7E7E9",
+"qC c #CECED0",
+"qD c #05121B",
+"qE c #8D9AA3",
+"qF c #809CB2",
+"qG c #00192F",
+"qH c #D4D4D4",
+"qI c #D2D2D2",
+"qJ c #091219",
+"qK c #879097",
+"qL c #A2D2FA",
+"qM c #A9D0EF",
+"qN c #456C8B",
+"qO c #757575",
+"qP c #65727B",
+"qQ c #58656E",
+"qR c #51565A",
+"qS c #A4ABB1",
+"qT c #2E353B",
+"qU c #8ABFE7",
+"qV c #0F1922",
+"qW c #A6B0B9",
+"qX c #313131",
+"qY c #4A657A",
+"qZ c #B3CEE3",
+"q& c #9BD1FD",
+"r c #9BD1FF",
+"r0 c #9AD0FE",
+"r1 c #99D0F9",
+"r2 c #97CEF7",
+"r3 c #97CCF8",
+"r4 c #94C9F5",
+"r5 c #91C4EF",
+"r6 c #8EC1EC",
+"r7 c #8DBDE5",
+"r8 c #86B6DE",
+"r9 c #869DE9",
+"ra c #879EEA",
+"rb c #9BB7E6",
+"rc c #BFDBFF",
+"rd c #C7DFFB",
+"re c #9CB4D0",
+"rf c #96979B",
+"rg c #CBCCD0",
+"rh c #D0D0D0",
+"ri c #BBBBBB",
+"rj c #BFBFBF",
+"rk c #B7B7B5",
+"rl c #ACACAA",
+"rm c #929292",
+"rn c #7E7E7E",
+"ro c #85868A",
+"rp c #949599",
+"rq c #D8E5F6",
+"rr c #E1EEFF",
+"rs c #E4F0FC",
+"rt c #EAF4FF",
+"ru c #E9F6FF",
+"rv c #EAF7FF",
+"rw c #EBF8FF",
+"rx c #DCF0FF",
+"ry c #D3E7FF",
+"rz c #D5E7FF",
+"rA c #E1F3FF",
+"rB c #F0FAFF",
+"rC c #F3FDFF",
+"rD c #FAFCFF",
+"rE c #B1B3BF",
+"rF c #616CA2",
+"rG c #576298",
+"rH c #6185A5",
+"rI c #81A5C5",
+"rJ c #87B8E0",
+"rK c #8DBEE6",
+"rL c #92C5F0",
+"rM c #95C8F3",
+"rN c #96CCF8",
+"rO c #98CEFA",
+"rP c #47515B",
+"rQ c #7D8791",
+"rR c #E5E5E5",
+"rS c #BDBDBD",
+"rT c #000924",
+"rU c #ABCDE8",
+"rV c #9AD0FC",
+"rW c #9CD2FE",
+"rX c #6C7680",
+"rY c #505A64",
+"rZ c #E4E4E4",
+"r& c #161616",
+"s c #84B9E3",
+"s0 c #9CD1F9",
+"s1 c #A4CFF1",
+"s2 c #ABCEEC",
+"s3 c #AACDEB",
+"s4 c #9CD1FB",
+"s5 c #9FAFBE",
+"s6 c #000C1B",
+"s7 c #CBCBCD",
+"s8 c #E5E5E7",
+"s9 c #E0E4E7",
+"sa c #3B3F42",
+"sb c #3B698D",
+"sc c #A1CFF3",
+"sd c #373B3E",
+"se c #868A8D",
+"sf c #616161",
+"sg c #346286",
+"sh c #A2D0F4",
+"si c #9CD0FF",
+"sj c #9BCFFE",
+"sk c #AECCE6",
+"sl c #2C4A64",
+"sm c #34495A",
+"sn c #6E8394",
+"so c #98BBD7",
+"sp c #000723",
+"sq c #B2B2B0",
+"sr c #E5E5E3",
+"ss c #E5E3E4",
+"st c #E6E4E5",
+"su c #AAAFB5",
+"sv c #2C3137",
+"sw c #B3CCE0",
+"sx c #2A4357",
+"sy c #E1E1E3",
+"sz c #334A5C",
+"sA c #3B5264",
+"sB c #99CFFD",
+"sC c #98CFF8",
+"sD c #95CCF5",
+"sE c #96CBF7",
+"sF c #92C7F3",
+"sG c #90C3EE",
+"sH c #8CBFEA",
+"sI c #8ABAE2",
+"sJ c #83B3DB",
+"sK c #859CE8",
+"sL c #91A8F4",
+"sM c #B3CFFE",
+"sN c #B4CCE8",
+"sO c #829AB6",
+"sP c #AFB0B4",
+"sQ c #DADBDF",
+"sR c #C8C8C8",
+"sS c #B4B4B4",
+"sT c #AAAAA8",
+"sU c #A0A09E",
+"sV c #949494",
+"sW c #838383",
+"sX c #828387",
+"sY c #9D9EA2",
+"sZ c #D5E2F3",
+"s& c #E0EDFE",
+"t c #E5F1FD",
+"t0 c #E8F5FE",
+"t1 c #E7F4FD",
+"t2 c #E0EDFD",
+"t3 c #D8E5F5",
+"t4 c #CEE2FA",
+"t5 c #CFE3FB",
+"t6 c #D3E5FD",
+"t7 c #D2E4FC",
+"t8 c #E2ECF5",
+"t9 c #EFF9FF",
+"ta c #FBFDFF",
+"tb c #E2E4F0",
+"tc c #7F8AC0",
+"td c #586399",
+"te c #4B6F8F",
+"tf c #769ABA",
+"tg c #83B4DC",
+"th c #8ABBE3",
+"ti c #8FC2ED",
+"tj c #93C6F1",
+"tk c #94CAF6",
+"tl c #98CEFC",
+"tm c #99CFFB",
+"tn c #747E88",
+"to c #E2E2E2",
+"tp c #666666",
+"tq c #41637E",
+"tr c #A9CBE6",
+"ts c #29333D",
+"tt c #96A0AA",
+"tu c #0A0A0A",
+"tv c #8CC1EB",
+"tw c #9BD0FA",
+"tx c #9BD0F8",
+"ty c #7DB2DA",
+"tz c #5C87A9",
+"tA c #356082",
+"tB c #234664",
+"tC c #315472",
+"tD c #7DB2DC",
+"tE c #9ACFF9",
+"tF c #3E4E5D",
+"tG c #647483",
+"tH c #717578",
+"tI c #303437",
+"tJ c #81AFD3",
+"tK c #0F1316",
+"tL c #D7DBDE",
+"tM c #DADADA",
+"tN c #0D0D0D",
+"tO c #88B6DA",
+"tP c #A7C5DF",
+"tQ c #000923",
+"tR c #CBCBCB",
+"tS c #000D1E",
+"tT c #9EB3C4",
+"tU c #A8CBE7",
+"tV c #5E819D",
+"tW c #20201E",
+"tX c #D5D5D3",
+"tY c #E1DFE0",
+"tZ c #272C32",
+"t& c #556E82",
+"u c #253E52",
+"u0 c #5C5C5E",
+"u1 c #294052",
+"u2 c #B2C9DB",
+"u3 c #95CFFD",
+"u4 c #95CDFE",
+"u5 c #94CCFD",
+"u6 c #92CAFB",
+"u7 c #92C8F6",
+"u8 c #8EC4F2",
+"u9 c #8DC2EE",
+"ua c #88BDE9",
+"ub c #85B6DF",
+"uc c #7FB0D9",
+"ud c #839DE8",
+"ue c #8FA9F4",
+"uf c #B0D1FA",
+"ug c #B9DAFF",
+"uh c #AEBAC8",
+"ui c #8894A2",
+"uj c #C4C4C6",
+"uk c #BBBBBD",
+"ul c #B1B1B1",
+"um c #A8A8A8",
+"un c #9E9EA0",
+"uo c #939395",
+"up c #898989",
+"uq c #808080",
+"ur c #7E7F83",
+"us c #A8A9AD",
+"ut c #DDEAFA",
+"uu c #E1EEFE",
+"uv c #E4F2FF",
+"uw c #E5F3FF",
+"ux c #E6F4FF",
+"uy c #E3F4FF",
+"uz c #E1F2FF",
+"uA c #D5EDFF",
+"uB c #CDE5FF",
+"uC c #C7E0FF",
+"uD c #C8E1FF",
+"uE c #C9E0FF",
+"uF c #C8DFFF",
+"uG c #C3D3FF",
+"uH c #B2C2F3",
+"uI c #AAB8E7",
+"uJ c #C8D6FF",
+"uK c #F4FDFF",
+"uL c #FCFFFF",
+"uM c #F9FCFF",
+"uN c #A0ABD9",
+"uO c #616C9A",
+"uP c #4E678F",
+"uQ c #6C85AD",
+"uR c #7BACD4",
+"uS c #8BC0EC",
+"uT c #8FC4F0",
+"uU c #8FC8F5",
+"uV c #91CAF7",
+"uW c #94CCFB",
+"uX c #96CEFF",
+"uY c #94CEFE",
+"uZ c #95CFFF",
+"u& c #505C68",
+"v c #6B7783",
+"v0 c #DCDCDC",
+"v1 c #DEDCDD",
+"v2 c #DADBDD",
+"v3 c #1A1B1D",
+"v4 c #72A8D6",
+"v5 c #A1CCEF",
+"v6 c #6E99BC",
+"v7 c #D9D9D9",
+"v8 c #CFD0D4",
+"v9 c #010206",
+"va c #96CEFD",
+"vb c #95CDFC",
+"vc c #AFC8DE",
+"vd c #597288",
+"ve c #1F2324",
+"vf c #171B1C",
+"vg c #4E4E4E",
+"vh c #7A7A7A",
+"vi c #969696",
+"vj c #606060",
+"vk c #0B2A46",
+"vl c #A9C8E4",
+"vm c #A5C9E9",
+"vn c #698DAD",
+"vo c #1C1C1C",
+"vp c #DCDCDE",
+"vq c #DDDDDF",
+"vr c #9D9D9D",
+"vs c #000828",
+"vt c #8AAECE",
+"vu c #A4CBEC",
+"vv c #446B8C",
+"vw c #9FA6B0",
+"vx c #2B323C",
+"vy c #97CDF9",
+"vz c #5D646A",
+"vA c #4A5157",
+"vB c #828284",
+"vC c #1B4367",
+"vD c #A3CBEF",
+"vE c #94CEFC",
+"vF c #3A5065",
+"vG c #374D62",
+"vH c #DEDEDE",
+"vI c #DBDDDC",
+"vJ c #252C32",
+"vK c #76A2C5",
+"vL c #0E0E10",
+"vM c #C3C3C5",
+"vN c #687888",
+"vO c #1B2B3B",
+"vP c #8DC5F4",
+"vQ c #98CDFF",
+"vR c #96D0FE",
+"vS c #97CFFF",
+"vT c #93CDFB",
+"vU c #93CBFC",
+"vV c #91C9FA",
+"vW c #90C8F9",
+"vX c #90C6F4",
+"vY c #8DC3F1",
+"vZ c #8ABFEB",
+"v& c #85BAE6",
+"w c #83B4DD",
+"w0 c #7CADD6",
+"w1 c #87A1EC",
+"w2 c #AFD0F9",
+"w3 c #85919F",
+"w4 c #BABABA",
+"w5 c #B4B4B6",
+"w6 c #AFAFB1",
+"w7 c #A5A5A5",
+"w8 c #9B9B9B",
+"w9 c #8F8F91",
+"wa c #7D7D7D",
+"wb c #787878",
+"wc c #8C8D91",
+"wd c #C6C7CB",
+"we c #E2F0FD",
+"wf c #D2E3F5",
+"wg c #C6DEF8",
+"wh c #C5DEFD",
+"wi c #C6DFFE",
+"wj c #BED5F7",
+"wk c #ABC2E4",
+"wl c #8C9CCD",
+"wm c #6979AA",
+"wn c #5F6D9C",
+"wo c #8492C1",
+"wp c #BFC8D7",
+"wq c #E6EFFE",
+"wr c #F7FBFC",
+"ws c #FAFEFF",
+"wt c #FAFDFF",
+"wu c #F0F3FA",
+"wv c #C3CEFC",
+"ww c #737EAC",
+"wx c #506991",
+"wy c #5A739B",
+"wz c #73A4CC",
+"wA c #85B6DE",
+"wB c #87BCE8",
+"wC c #8CC5F2",
+"wD c #91C9F8",
+"wE c #92CAF9",
+"wF c #92CCFA",
+"wG c #93CDFD",
+"wH c #4E5A66",
+"wI c #D7D7D7",
+"wJ c #D9D7D8",
+"wK c #D8D6D7",
+"wL c #AFB0B2",
+"wM c #1B1C1E",
+"wN c #96CCFA",
+"wO c #A0CBEE",
+"wP c #0C375A",
+"wQ c #8F8F8F",
+"wR c #A9AAAE",
+"wS c #232428",
+"wT c #84BCEB",
+"wU c #1E374D",
+"wV c #263F55",
+"wW c #A3A7A8",
+"wX c #D5D9DA",
+"wY c #B2B2B2",
+"wZ c #001531",
+"w& c #A8C7E3",
+"x c #94B8D8",
+"x0 c #A1A1A1",
+"x1 c #D7D7D9",
+"x2 c #D8D8DA",
+"x3 c #0C0C0C",
+"x4 c #6B8FAF",
+"x5 c #A4C8E8",
+"x6 c #A2C9EA",
+"x7 c #0A3152",
+"x8 c #A2A2A2",
+"x9 c #787F89",
+"xa c #4C535D",
+"xb c #92CCFC",
+"xc c #95CBF7",
+"xd c #6AA0CC",
+"xe c #060D13",
+"xf c #BAC1C7",
+"xg c #18181A",
+"xh c #6C94B8",
+"xi c #A0C8EC",
+"xj c #AFC5DA",
+"xk c #1C3247",
+"xl c #686868",
+"xm c #D7D9D8",
+"xn c #D6D8D7",
+"xo c #9AA1A7",
+"xp c #2B3238",
+"xq c #9ECAED",
+"xr c #083457",
+"xs c #8B8B8D",
+"xt c #8D8D8F",
+"xu c #081828",
+"xv c #99A9B9",
+"xw c #96CBFD",
+"xx c #90CDFC",
+"xy c #91CBFD",
+"xz c #90CAFC",
+"xA c #8FC9F9",
+"xB c #8DC7F7",
+"xC c #8CC4F5",
+"xD c #89C1F2",
+"xE c #87BDEB",
+"xF c #82B8E6",
+"xG c #80B1DC",
+"xH c #7AABD6",
+"xI c #8298E4",
+"xJ c #899FEB",
+"xK c #ABCBFA",
+"xL c #B6D6FF",
+"xM c #B5C5D5",
+"xN c #8696A6",
+"xO c #A0A0A0",
+"xP c #A6A6A6",
+"xQ c #999999",
+"xR c #7B797A",
+"xS c #6B696A",
+"xT c #767678",
+"xU c #878789",
+"xV c #B2BCC5",
+"xW c #E1EBF4",
+"xX c #DEEEFE",
+"xY c #DFF1FF",
+"xZ c #D2EBFF",
+"x& c #CBE4FF",
+"y c #C1DDFF",
+"y0 c #C3DDFF",
+"y1 c #BCD0FF",
+"y2 c #A8BCEF",
+"y3 c #8E9DD8",
+"y4 c #6D7CB7",
+"y5 c #5C6D99",
+"y6 c #4E5F8B",
+"y7 c #506290",
+"y8 c #596B99",
+"y9 c #717DB7",
+"ya c #A7B3ED",
+"yb c #D6E4FF",
+"yc c #E8F6FF",
+"yd c #F2FCFF",
+"ye c #F0FCFF",
+"yf c #EEFAFF",
+"yg c #E1F4FF",
+"yh c #D9ECFD",
+"yi c #D5E4FF",
+"yj c #7D8CB3",
+"yk c #556795",
+"yl c #546694",
+"ym c #6B9CC4",
+"yn c #81B2DA",
+"yo c #84BAE9",
+"yp c #89BFEE",
+"yq c #8AC2F3",
+"yr c #8EC6F7",
+"ys c #8EC8FA",
+"yt c #8FC9FB",
+"yu c #8FCCFB",
+"yv c #92CCFE",
+"yw c #8FCDFC",
+"yx c #8ECCFB",
+"yy c #49565F",
+"yz c #6E7B84",
+"yA c #D3D3D3",
+"yB c #435362",
+"yC c #93CBFA",
+"yD c #5F686D",
+"yE c #353E43",
+"yF c #6D7B88",
+"yG c #404E5B",
+"yH c #AAC6DC",
+"yI c #1B374D",
+"yJ c #646464",
+"yK c #D3D3D5",
+"yL c #A7A7A9",
+"yM c #98999D",
+"yN c #CECFD3",
+"yO c #CDD1D4",
+"yP c #4B4F52",
+"yQ c #295071",
+"yR c #A1C8E9",
+"yS c #34393C",
+"yT c #676C6F",
+"yU c #D5D3D4",
+"yV c #B9B7B8",
+"yW c #001C35",
+"yX c #9FBBD0",
+"yY c #000B20",
+"yZ c #CECECE",
+"y& c #6F7983",
+"z c #8FCCF9",
+"z0 c #90CDFA",
+"z1 c #9AACBA",
+"z2 c #8F9190",
+"z3 c #D2D4D3",
+"z4 c #526574",
+"z5 c #314453",
+"z6 c #8FCDFE",
+"z7 c #8ECCFD",
+"z8 c #7CB6E6",
+"z9 c #102131",
+"za c #647585",
+"zb c #D4D4D6",
+"zc c #D5D5D5",
+"zd c #303940",
+"ze c #585F65",
+"zf c #3C4349",
+"zg c #9AA4AD",
+"zh c #00060F",
+"zi c #659DCC",
+"zj c #92CBFF",
+"zk c #8ECBFA",
+"zl c #8BC5F5",
+"zm c #8BC3F4",
+"zn c #87BFF0",
+"zo c #84BAE8",
+"zp c #80B6E4",
+"zq c #7FB0DB",
+"zr c #78A9D4",
+"zs c #8096E2",
+"zt c #879DE9",
+"zu c #A3C3F2",
+"zv c #B4D4FF",
+"zw c #CBDBEB",
+"zx c #A1B1C1",
+"zy c #959595",
+"zz c #747273",
+"zA c #787677",
+"zB c #DEE8F1",
+"zC c #E4EEF7",
+"zD c #DAEAFA",
+"zE c #CDDFF7",
+"zF c #C1DAF9",
+"zG c #BEDAFF",
+"zH c #BAD4F7",
+"zI c #A4BEE1",
+"zJ c #8CA0D3",
+"zK c #6E82B5",
+"zL c #5D6CA7",
+"zM c #51609B",
+"zN c #445581",
+"zO c #475987",
+"zP c #4B5D8B",
+"zQ c #58649E",
+"zR c #6470AA",
+"zS c #99A7C2",
+"zT c #C5D3EE",
+"zU c #E2ECF6",
+"zV c #E1EDF9",
+"zW c #DDE9F5",
+"zX c #D6E9FA",
+"zY c #CAD9FF",
+"zZ c #7584AB",
+"z& c #536593",
+"A c #699AC2",
+"A0 c #83B9E8",
+"A1 c #87BDEC",
+"A2 c #8BC5F7",
+"A3 c #8DC7F9",
+"A4 c #8DCAF9",
+"A5 c #8DCBFA",
+"A6 c #3F4C55",
+"A7 c #75828B",
+"A8 c #CFCFCF",
+"A9 c #283847",
+"Aa c #758594",
+"Ab c #6BA3D2",
+"Ac c #060F14",
+"Ad c #B0B9BE",
+"Ae c #354350",
+"Af c #6E7C89",
+"Ag c #637F95",
+"Ah c #1A364C",
+"Ai c #979799",
+"Aj c #030305",
+"Ak c #030408",
+"Al c #03070A",
+"Am c #282C2F",
+"An c #8AB1D2",
+"Ao c #214869",
+"Ap c #4B5053",
+"Aq c #C9CED1",
+"Ar c #B7B5B6",
+"As c #4E6E87",
+"At c #A4C4DD",
+"Au c #819DB2",
+"Av c #0D293E",
+"Aw c #828C96",
+"Ax c #37414B",
+"Ay c #8ECBF8",
+"Az c #90C8F7",
+"AA c #75ADDC",
+"AB c #132533",
+"AC c #697B89",
+"AD c #969897",
+"AE c #001221",
+"AF c #98ABBA",
+"AG c #8CCAFB",
+"AH c #8DCBFC",
+"AI c #90CAFA",
+"AJ c #93A4B4",
+"AK c #6C6C6E",
+"AL c #848D94",
+"AM c #363F46",
+"AN c #0B1218",
+"AO c #B5BCC2",
+"AP c #08121B",
+"AQ c #747E87",
+"AR c #90C9FE",
+"AS c #8DCBFE",
+"AT c #8CCAFD",
+"AU c #8BC8FE",
+"AV c #8AC7FD",
+"AW c #89C6FC",
+"AX c #87C4FA",
+"AY c #86C2F4",
+"AZ c #82BEF0",
+"A& c #82BAE9",
+"B c #7DB5E4",
+"B0 c #7AAEDD",
+"B1 c #74A8D7",
+"B2 c #7B96DD",
+"B3 c #839EE5",
+"B4 c #9DBCF2",
+"B5 c #B3D2FF",
+"B6 c #C4D8F3",
+"B7 c #AFB8C7",
+"B8 c #A0A9B8",
+"B9 c #9CA1A5",
+"Ba c #909599",
+"Bb c #8D9095",
+"Bc c #93969B",
+"Bd c #99A2A7",
+"Be c #B4BDC2",
+"Bf c #CDDAEA",
+"Bg c #DFECFC",
+"Bh c #DAEFFF",
+"Bi c #D3ECFF",
+"Bj c #CDE6FF",
+"Bk c #C4E2FF",
+"Bl c #BEDCFF",
+"Bm c #B8D8FF",
+"Bn c #BAD7FF",
+"Bo c #BACFFF",
+"Bp c #A2B7EE",
+"Bq c #8E9CD9",
+"Br c #7381BE",
+"Bs c #6072A0",
+"Bt c #526492",
+"Bu c #3E5B7B",
+"Bv c #3F5C7C",
+"Bw c #4E7596",
+"Bx c #547C9F",
+"By c #4D7598",
+"Bz c #476089",
+"BA c #506992",
+"BB c #5C68A2",
+"BC c #838FC9",
+"BD c #ADBEEA",
+"BE c #CCDDFF",
+"BF c #D2E5FF",
+"BG c #D1E4FF",
+"BH c #CCDFFF",
+"BI c #9EA9E1",
+"BJ c #6570A8",
+"BK c #4B648C",
+"BL c #679CC6",
+"BM c #7DBAE9",
+"BN c #81BEED",
+"BO c #87C1F3",
+"BP c #89C3F5",
+"BQ c #89C5FB",
+"BR c #8AC6FC",
+"BS c #8CC9FF",
+"BT c #323941",
+"BU c #888F97",
+"BV c #CACACC",
+"BW c #CACACA",
+"BX c #C9C9C9",
+"BY c #C0C0C0",
+"BZ c #000A29",
+"B& c #97B8D7",
+"C c #8DC9FF",
+"C0 c #A8C2D9",
+"C1 c #142E45",
+"C2 c #828483",
+"C3 c #C9CBCA",
+"C4 c #C8CAC9",
+"C5 c #C7C9C8",
+"C6 c #000F2B",
+"C7 c #90B2CE",
+"C8 c #394249",
+"C9 c #778087",
+"Ca c #223343",
+"Cb c #728393",
+"Cc c #94C7F2",
+"Cd c #83B6E1",
+"Ce c #8BAAC7",
+"Cf c #83A2BF",
+"Cg c #292C31",
+"Ch c #4E5156",
+"Ci c #C7C7C7",
+"Cj c #C9C9CB",
+"Ck c #ABABAB",
+"Cl c #001F3B",
+"Cm c #496884",
+"Cn c #8BC9FC",
+"Co c #7B95A6",
+"Cp c #183243",
+"Cq c #B4B5B7",
+"Cr c #0E0F11",
+"Cs c #91C7F5",
+"Ct c #00040E",
+"Cu c #78797B",
+"Cv c #C8C9CB",
+"Cw c #A2ABB2",
+"Cx c #060F16",
+"Cy c #568EBF",
+"Cz c #8FC7F8",
+"CA c #8DC9FB",
+"CB c #74B0E2",
+"CC c #122335",
+"CD c #5D6E80",
+"CE c #7C8083",
+"CF c #25292C",
+"CG c #858688",
+"CH c #B8BDC3",
+"CI c #1C2127",
+"CJ c #3B719F",
+"CK c #8DC9FD",
+"CL c #88C5FB",
+"CM c #80B8E7",
+"CN c #7BAFDE",
+"CO c #7792D9",
+"CP c #819CE3",
+"CQ c #94B3E9",
+"CR c #B2D1FF",
+"CS c #CBDFFA",
+"CT c #D1E5FF",
+"CU c #D8E1F0",
+"CV c #CDD6E5",
+"CW c #C8CDD1",
+"CX c #C3C8CC",
+"CY c #C6C9CE",
+"CZ c #CFD2D7",
+"C& c #D5DEE3",
+"D c #E2EBF0",
+"D0 c #DEEBFB",
+"D1 c #D2E7FA",
+"D2 c #CDE2F5",
+"D3 c #C3DCFA",
+"D4 c #BED7F5",
+"D5 c #B7D5F9",
+"D6 c #B6D6FD",
+"D7 c #B7D7FE",
+"D8 c #AFCCF6",
+"D9 c #9FBCE6",
+"Da c #7287BE",
+"Db c #6472AF",
+"Dc c #54629F",
+"Dd c #455785",
+"De c #465886",
+"Df c #4D6A8A",
+"Dg c #5A7797",
+"Dh c #5F86A7",
+"Di c #668DAE",
+"Dj c #6991B4",
+"Dk c #668EB1",
+"Dl c #657EA7",
+"Dm c #4A638C",
+"Dn c #54609A",
+"Do c #6C7DA9",
+"Dp c #95A6D2",
+"Dq c #ADC0E0",
+"Dr c #B0C3E3",
+"Ds c #AABDDE",
+"Dt c #92A5C6",
+"Du c #6B76AE",
+"Dv c #57629A",
+"Dw c #455E86",
+"Dx c #5D769E",
+"Dy c #6DA2CC",
+"Dz c #7FB4DE",
+"DA c #7EBBEA",
+"DB c #86C0F2",
+"DC c #1E252D",
+"DD c #99A0A8",
+"DE c #153655",
+"DF c #A1C2E1",
+"DG c #8BC9FA",
+"DH c #8CC8FE",
+"DI c #8AC8FB",
+"DJ c #486279",
+"DK c #2B455C",
+"DL c #C4C6C5",
+"DM c #C2C4C3",
+"DN c #153753",
+"DO c #A1C3DF",
+"DP c #1F282F",
+"DQ c #929BA2",
+"DR c #304151",
+"DS c #4C5D6D",
+"DT c #6598C3",
+"DU c #477AA5",
+"DV c #2C4B68",
+"DW c #00112E",
+"DX c #75787D",
+"DY c #C0C3C8",
+"DZ c #C5C5C7",
+"D& c #909090",
+"E c #0E0E0E",
+"E0 c #4E6D89",
+"E1 c #A3C2DE",
+"E2 c #89A3B4",
+"E3 c #031D2E",
+"E4 c #C3C4C6",
+"E5 c #303133",
+"E6 c #4F87B6",
+"E7 c #8EC6F5",
+"E8 c #366C9A",
+"E9 c #06101A",
+"Ea c #858F99",
+"Eb c #C2C3C5",
+"Ec c #A6A7A9",
+"Ed c #0E171E",
+"Ee c #636C73",
+"Ef c #8CC8FA",
+"Eg c #93A4B6",
+"Eh c #091A2C",
+"Ei c #707477",
+"Ej c #BFC0C2",
+"Ek c #31363C",
+"El c #4C5157",
+"Em c #8CC8FC",
+"En c #85C6FC",
+"Eo c #86C5FB",
+"Ep c #85C4FA",
+"Eq c #84C3F9",
+"Er c #84C0F6",
+"Es c #81BDF3",
+"Et c #7CB8EC",
+"Eu c #79B5E9",
+"Ev c #77AFE0",
+"Ew c #70A8D9",
+"Ex c #7594D4",
+"Ey c #7D9CDC",
+"Ez c #8CAAE6",
+"EA c #B1CFFF",
+"EB c #C6DFFD",
+"EC c #CCE5FF",
+"ED c #D0E6FE",
+"EE c #D2E8FF",
+"EF c #D5EAFF",
+"EG c #D7ECFF",
+"EH c #D8EAFE",
+"EI c #D3EBFF",
+"EJ c #CAE2FE",
+"EK c #B7D9FF",
+"EL c #B3D5FF",
+"EM c #B0D2FF",
+"EN c #B1D3FF",
+"EO c #B4D3FF",
+"EP c #AEC3FF",
+"EQ c #95AAE9",
+"ER c #8496D6",
+"ES c #7587C7",
+"ET c #667AAC",
+"EU c #596D9F",
+"EV c #3E5F80",
+"EW c #3C5D7E",
+"EX c #436E91",
+"EY c #517C9F",
+"EZ c #5889B2",
+"E& c #6394BD",
+"F c #659AC6",
+"F0 c #699ECA",
+"F1 c #689DC9",
+"F2 c #6497C2",
+"F3 c #5C8FBA",
+"F4 c #4D739A",
+"F5 c #41678E",
+"F6 c #536498",
+"F7 c #5C6DA1",
+"F8 c #6B7AB1",
+"F9 c #6E7DB4",
+"Fa c #6979AD",
+"Fb c #5B6B9F",
+"Fc c #4F658C",
+"Fd c #435980",
+"Fe c #436F96",
+"Ff c #618DB4",
+"Fg c #6FA9DB",
+"Fh c #7BB5E7",
+"Fi c #7CB9EF",
+"Fj c #7FBCF2",
+"Fk c #7FC0F6",
+"Fl c #82C3F9",
+"Fm c #84C5FB",
+"Fn c #87C6FC",
+"Fo c #87C5F8",
+"Fp c #88C6F9",
+"Fq c #010101",
+"Fr c #B3B3B3",
+"Fs c #505050",
+"Ft c #366A99",
+"Fu c #8FC3F2",
+"Fv c #86C7FD",
+"Fw c #8BC3F2",
+"Fx c #7AB2E1",
+"Fy c #050706",
+"Fz c #A7A9A8",
+"FA c #373737",
+"FB c #407AAA",
+"FC c #1C252C",
+"FD c #8A939A",
+"FE c #BCBEBD",
+"FF c #5B5B5B",
+"FG c #3B3B3B",
+"FH c #4F4F4F",
+"FI c #B0B0B0",
+"FJ c #BEBEC0",
+"FK c #BDBDBF",
+"FL c #B5BAC0",
+"FM c #575C62",
+"FN c #000A2C",
+"FO c #5A85A7",
+"FP c #001438",
+"FQ c #A2A2A4",
+"FR c #BEBEBC",
+"FS c #91918F",
+"FT c #00040D",
+"FU c #77818A",
+"FV c #7C8FA0",
+"FW c #4E6172",
+"FX c #17181A",
+"FY c #3F4042",
+"FZ c #839099",
+"F& c #3870A1",
+"G c #85C7FB",
+"G0 c #88C5FC",
+"G1 c #89C6FD",
+"G2 c #619FD2",
+"G3 c #88929B",
+"G4 c #BEBCBD",
+"G5 c #BFBDBE",
+"G6 c #AEAEAE",
+"G7 c #0D426E",
+"G8 c #85C6FE",
+"G9 c #82C1F7",
+"Ga c #83BFF5",
+"Gb c #80BCF2",
+"Gc c #71A9DA",
+"Gd c #6A89C9",
+"Ge c #7B9ADA",
+"Gf c #86A4E0",
+"Gg c #ABC9FF",
+"Gh c #C1DAF8",
+"Gi c #CFE5FD",
+"Gj c #D1E7FF",
+"Gk c #D3E8FD",
+"Gl c #D8E9FD",
+"Gm c #D7E8FC",
+"Gn c #D2EAFF",
+"Go c #C0D8F4",
+"Gp c #AED0FD",
+"Gq c #AFD1FF",
+"Gr c #ADCFFD",
+"Gs c #9FBEED",
+"Gt c #87A6D5",
+"Gu c #7E93D2",
+"Gv c #6E83C2",
+"Gw c #6779B9",
+"Gx c #596BAB",
+"Gy c #465A8C",
+"Gz c #435789",
+"GA c #496A8B",
+"GB c #58799A",
+"GC c #608BAE",
+"GD c #6A95B8",
+"GE c #6B9CC5",
+"GF c #6FA0C9",
+"GG c #71A6D2",
+"GH c #70A5D1",
+"GI c #6EA1CC",
+"GJ c #6B9EC9",
+"GK c #6F95BC",
+"GL c #5D83AA",
+"GM c #526397",
+"GN c #516296",
+"GO c #516097",
+"GP c #505F96",
+"GQ c #506094",
+"GR c #48588C",
+"GS c #455B82",
+"GT c #5C88AF",
+"GU c #739FC6",
+"GV c #76B0E2",
+"GW c #7DB7E9",
+"GX c #7DBAF0",
+"GY c #80BDF3",
+"GZ c #80C1F7",
+"G& c #66A4D7",
+"H c #B9B9B9",
+"H0 c #B7B9B8",
+"H1 c #B7B7B7",
+"H2 c #669AC9",
+"H3 c #8EC2F1",
+"H4 c #28608F",
+"H5 c #505251",
+"H6 c #86C0F0",
+"H7 c #8AC4F4",
+"H8 c #384148",
+"H9 c #626B72",
+"Ha c #B6B8B7",
+"Hb c #B9B9BB",
+"Hc c #B8B8BA",
+"Hd c #878787",
+"He c #191E24",
+"Hf c #353A40",
+"Hg c #7DA8CA",
+"Hh c #96C1E3",
+"Hi c #83C4FA",
+"Hj c #98C0E4",
+"Hk c #325A7E",
+"Hl c #404042",
+"Hm c #B8B8B6",
+"Hn c #7E8891",
+"Ho c #313B44",
+"Hp c #233647",
+"Hq c #495C6D",
+"Hr c #999A9C",
+"Hs c #B7B8BA",
+"Ht c #555555",
+"Hu c #00050E",
+"Hv c #6D7A83",
+"Hw c #83C5F9",
+"Hx c #84C6FA",
+"Hy c #87C4FB",
+"Hz c #86C4F7",
+"HA c #727C85",
+"HB c #0A141D",
+"HC c #B5B5B5",
+"HD c #81B6E2",
+"HE c #84C5FD",
+"HF c #81C4F9",
+"HG c #82C3FB",
+"HH c #81C2FA",
+"HI c #7FC2F9",
+"HJ c #7CBFF6",
+"HK c #80BFF5",
+"HL c #7DBCF2",
+"HM c #77B4EA",
+"HN c #75AFE1",
+"HO c #6A91CA",
+"HP c #7198D1",
+"HQ c #83A0E2",
+"HR c #A4C1FF",
+"HS c #BBD8FA",
+"HT c #C9E6FF",
+"HU c #D1E5FE",
+"HV c #D2E6FF",
+"HW c #D9EAFE",
+"HX c #DAEBFF",
+"HY c #BBD4F3",
+"HZ c #AECDFF",
+"H& c #A8C7FD",
+"I c #9AADF1",
+"I0 c #8699DD",
+"I1 c #788AC8",
+"I2 c #6D7FBD",
+"I3 c #657AA9",
+"I4 c #526796",
+"I5 c #3A5D7D",
+"I6 c #3E6181",
+"I7 c #517DA4",
+"I8 c #578CB8",
+"I9 c #6297C3",
+"Ia c #68A0D1",
+"Ib c #6DA5D6",
+"Ic c #70AADC",
+"Id c #72ACDE",
+"Ie c #71ADE1",
+"If c #71ADDF",
+"Ig c #6DA5D4",
+"Ih c #69A1D0",
+"Ii c #6095C1",
+"Ij c #5186B2",
+"Ik c #4B789F",
+"Il c #46739A",
+"Im c #5083AE",
+"In c #5D90BB",
+"Io c #67A0D5",
+"Ip c #72ABE0",
+"Iq c #7AB7ED",
+"Ir c #7CBBF1",
+"Is c #7EBDF3",
+"It c #7EBFF7",
+"Iu c #7FC0F8",
+"Iv c #80C1F9",
+"Iw c #81C4FB",
+"Ix c #92BFE6",
+"Iy c #3E6B92",
+"Iz c #484A49",
+"IA c #B1B3B2",
+"IB c #B0B2B1",
+"IC c #949BA1",
+"ID c #9DBBD5",
+"IE c #ACB0AF",
+"IF c #9CA09F",
+"IG c #888F95",
+"IH c #798086",
+"II c #13334C",
+"IJ c #476780",
+"IK c #001C38",
+"IL c #A3A3A3",
+"IM c #B3B1B4",
+"IN c #888888",
+"IO c #001C32",
+"IP c #407CAE",
+"IQ c #85C1F3",
+"IR c #7BBCF4",
+"IS c #000515",
+"IT c #4D5E6E",
+"IU c #AAAFB2",
+"IV c #696E71",
+"IW c #20425E",
+"IX c #6CABE1",
+"IY c #81C2F8",
+"IZ c #84C2FB",
+"I& c #83C1FA",
+"J c #88C2F2",
+"J0 c #255F8F",
+"J1 c #323637",
+"J2 c #AEB2B3",
+"J3 c #000F30",
+"J4 c #6E95B6",
+"J5 c #83C4FC",
+"J6 c #7FC4FB",
+"J7 c #7FC2F7",
+"J8 c #7EC1F8",
+"J9 c #7DC0F7",
+"Ja c #7FBEF4",
+"Jb c #7BB8EE",
+"Jc c #78B5EB",
+"Jd c #6E95CE",
+"Je c #6D94CD",
+"Jf c #7F9CDE",
+"Jg c #99B6F8",
+"Jh c #B8D5F7",
+"Ji c #C7E4FF",
+"Jj c #D1EAFF",
+"Jk c #B7D0EF",
+"Jl c #7897CD",
+"Jm c #7487CB",
+"Jn c #6D80C4",
+"Jo c #6072B0",
+"Jp c #4C5E9C",
+"Jq c #3D5281",
+"Jr c #445988",
+"Js c #4A6D8D",
+"Jt c #597C9C",
+"Ju c #5E8AB1",
+"Jv c #6A96BD",
+"Jw c #6A9FCB",
+"Jx c #6FA4D0",
+"Jy c #73ABDC",
+"Jz c #74AEE0",
+"JA c #77B1E3",
+"JB c #76B2E6",
+"JC c #76B2E4",
+"JD c #75B1E3",
+"JE c #74ACDB",
+"JF c #72AAD9",
+"JG c #6CA1CD",
+"JH c #6C99C0",
+"JI c #6996BD",
+"JJ c #6895BC",
+"JK c #6A97BE",
+"JL c #6A9DC8",
+"JM c #71A4CF",
+"JN c #77B0E5",
+"JO c #90BDE4",
+"JP c #002B52",
+"JQ c #818382",
+"JR c #AAACAB",
+"JS c #A9ABAA",
+"JT c #60676D",
+"JU c #7694AE",
+"JV c #000D27",
+"JW c #1F1F1F",
+"JX c #0F0F0F",
+"JY c #000201",
+"JZ c #090D0C",
+"J& c #171E24",
+"K c #282F35",
+"K0 c #25455E",
+"K1 c #9BBBD4",
+"K2 c #30536F",
+"K3 c #151515",
+"K4 c #6A6A6A",
+"K5 c #9A9A9A",
+"K6 c #ACAAAD",
+"K7 c #9E9C9F",
+"K8 c #232323",
+"K9 c #4E6A80",
+"Ka c #9EBAD0",
+"Kb c #84C0F2",
+"Kc c #8C9DAD",
+"Kd c #152636",
+"Ke c #333333",
+"Kf c #ABADAC",
+"Kg c #0F1417",
+"Kh c #2A2F32",
+"Ki c #6385A1",
+"Kj c #99BBD7",
+"Kk c #83C2F8",
+"Kl c #82C0F9",
+"Km c #85BFEF",
+"Kn c #202425",
+"Ko c #6D7172",
+"Kp c #A4A4A4",
+"Kq c #1D1D1D",
+"Kr c #4B7293",
+"Ks c #96BDDE",
+"Kt c #7DC2F9",
+"Ku c #7AC1F9",
+"Kv c #7BC0FB",
+"Kw c #79BEF9",
+"Kx c #7BC0F9",
+"Ky c #79BEF7",
+"Kz c #7ABCF6",
+"KA c #78BAF4",
+"KB c #76B9EE",
+"KC c #72B5EA",
+"KD c #71B0E5",
+"KE c #6BAADF",
+"KF c #689ACD",
+"KG c #6193C6",
+"KH c #8197E0",
+"KI c #94AAF3",
+"KJ c #B5D2FA",
+"KK c #C2DFFF",
+"KL c #D4E9FE",
+"KM c #D6EBFF",
+"KN c #CFE9FF",
+"KO c #AFC9EE",
+"KP c #889BDD",
+"KQ c #6B7EC0",
+"KR c #5C739C",
+"KS c #445B84",
+"KT c #335777",
+"KU c #3B5F7F",
+"KV c #3F7098",
+"KW c #4D7EA6",
+"KX c #558BB9",
+"KY c #6096C4",
+"KZ c #649ECE",
+"K& c #69A3D3",
+"L c #6AA9DC",
+"L0 c #6BAADD",
+"L1 c #6FAEE4",
+"L2 c #71B0E6",
+"L3 c #71B2E8",
+"L4 c #74B5EB",
+"L5 c #75B6EE",
+"L6 c #73B6ED",
+"L7 c #74B7EE",
+"L8 c #74B5ED",
+"L9 c #72B3EB",
+"La c #70B1E7",
+"Lb c #6FB0E6",
+"Lc c #6FAEE3",
+"Ld c #6CABE0",
+"Le c #6AA7DD",
+"Lf c #6BA8DE",
+"Lg c #70AFE4",
+"Lh c #74B3E9",
+"Li c #74B6F0",
+"Lj c #76B8F2",
+"Lk c #77B9F3",
+"Ll c #78BFF7",
+"Lm c #79C0F8",
+"Ln c #7ABFFA",
+"Lo c #7AC1F7",
+"Lp c #64839F",
+"Lq c #001632",
+"Lr c #68707B",
+"Ls c #656D78",
+"Lt c #576572",
+"Lu c #485663",
+"Lv c #2C4355",
+"Lw c #102739",
+"Lx c #001034",
+"Ly c #4D7B9F",
+"Lz c #7DBFF3",
+"LA c #4587BB",
+"LB c #5897CC",
+"LC c #69A8DD",
+"LD c #74B9F2",
+"LE c #4A7FA9",
+"LF c #063B65",
+"LG c #000F29",
+"LH c #00102A",
+"LI c #001A30",
+"LJ c #08243A",
+"LK c #052137",
+"LL c #000C26",
+"LM c #00284B",
+"LN c #123E61",
+"LO c #4483B8",
+"LP c #80BFF4",
+"LQ c #7ABFF8",
+"LR c #7AC0FB",
+"LS c #78BDF6",
+"LT c #336183",
+"LU c #081D30",
+"LV c #33485B",
+"LW c #616870",
+"LX c #747B83",
+"LY c #737C83",
+"LZ c #384F5F",
+"L& c #0B2232",
+"M c #00082B",
+"M0 c #20486B",
+"M1 c #67ACE3",
+"M2 c #7BC0F7",
+"M3 c #79C2F9",
+"M4 c #78C1F8",
+"M5 c #82BEF2",
+"M6 c #272A2F",
+"M7 c #64676C",
+"M8 c #3C5162",
+"M9 c #7BBFFC",
+"Ma c #73B6EB",
+"Mb c #73B2E7",
+"Mc c #6C9ED1",
+"Md c #6092C5",
+"Me c #7E94DD",
+"Mf c #8CA2EB",
+"Mg c #B3D0F8",
+"Mh c #BFDCFF",
+"Mi c #DAECFF",
+"Mj c #D0EAFF",
+"Mk c #AAC4E9",
+"Ml c #7D90D2",
+"Mm c #576AAC",
+"Mn c #395079",
+"Mo c #425982",
+"Mp c #486C8C",
+"Mq c #567A9A",
+"Mr c #598AB2",
+"Ms c #6394BC",
+"Mt c #659BC9",
+"Mu c #6AA0CE",
+"Mv c #6BA5D5",
+"Mw c #6FA9D9",
+"Mx c #6EADE0",
+"My c #70AFE2",
+"Mz c #73B2E8",
+"MA c #75B6EC",
+"MB c #76B7ED",
+"MC c #77B8F0",
+"MD c #75B8EF",
+"ME c #76B9F0",
+"MF c #76B7EF",
+"MG c #73B4EA",
+"MH c #72B3E9",
+"MI c #72B1E6",
+"MJ c #6FAEE1",
+"MK c #70ADE3",
+"ML c #71AEE4",
+"MM c #77B6EC",
+"MN c #79BBF5",
+"MO c #7BC2F8",
+"MP c #85A4C0",
+"MQ c #153450",
+"MR c #272F3A",
+"MS c #2F3742",
+"MT c #364451",
+"MU c #44525F",
+"MV c #546B7D",
+"MW c #71889A",
+"MX c #80AED2",
+"MY c #8EBCE0",
+"MZ c #7EC0F4",
+"M& c #88BDE7",
+"N c #96BAD4",
+"N0 c #85A9C3",
+"N1 c #7B97AD",
+"N2 c #7793A9",
+"N3 c #7894AA",
+"N4 c #87ABC5",
+"N5 c #97BBD5",
+"N6 c #7FBEF3",
+"N7 c #8EBCDE",
+"N8 c #74899C",
+"N9 c #495E71",
+"Na c #313840",
+"Nb c #1D242C",
+"Nc c #1D262D",
+"Nd c #2F383F",
+"Ne c #435A6A",
+"Nf c #6D8494",
+"Ng c #92BADD",
+"Nh c #7ABFF6",
+"Ni c #205C90",
+"Nj c #2E3136",
+"Nk c #979A9F",
+"Nl c #000617",
+"Nm c #889DAE",
+"Nn c #76BEF9",
+"No c #77BFFA",
+"Np c #75BDF8",
+"Nq c #76BAF7",
+"Nr c #74B8F5",
+"Ns c #72B9F1",
+"Nt c #6FB6EE",
+"Nu c #6EB1E8",
+"Nv c #69ACE3",
+"Nw c #68A2D2",
+"Nx c #4F89B9",
+"Ny c #798FD8",
+"Nz c #869CE5",
+"NA c #A3C3F4",
+"NB c #D6E8FE",
+"NC c #D9E9FF",
+"ND c #CEEAFF",
+"NE c #A7C3EA",
+"NF c #7B8FCE",
+"NG c #586CAB",
+"NH c #365C80",
+"NI c #486E92",
+"NJ c #4F84B0",
+"NK c #598EBA",
+"NL c #5C98CA",
+"NM c #619DCF",
+"NN c #63A2D7",
+"NO c #66A5DA",
+"NP c #67AADF",
+"NQ c #6AADE2",
+"NR c #6CB1E8",
+"NS c #6EB3EA",
+"NT c #70B5EE",
+"NU c #71B6EF",
+"NV c #71B9F4",
+"NW c #72BAF5",
+"NX c #73B9F5",
+"NY c #74BAF6",
+"NZ c #73BBF5",
+"N& c #72BAF4",
+"O c #74B9F4",
+"O0 c #73B8F3",
+"O1 c #71B8F0",
+"O2 c #70B7EF",
+"O3 c #6EB3EC",
+"O4 c #6CB3E9",
+"O5 c #6CB1EA",
+"O6 c #6DB2EB",
+"O7 c #6FB4ED",
+"O8 c #73BBF6",
+"O9 c #75BBF7",
+"Oa c #76BDFB",
+"Ob c #77BDF9",
+"Oc c #75BDF7",
+"Od c #76BEF8",
+"Oe c #73BEF8",
+"Of c #74BFF9",
+"Og c #77A5C7",
+"Oh c #4E5B64",
+"Oi c #1C2932",
+"Oj c #0A1117",
+"Ok c #2A3137",
+"Ol c #5E87A7",
+"Om c #8FB8D8",
+"On c #7ABBF3",
+"Oo c #5F6972",
+"Op c #0E1821",
+"Oq c #939393",
+"Or c #6F7982",
+"Os c #000912",
+"Ot c #4B8CC2",
+"Ou c #7ABBF1",
+"Ov c #74BCF7",
+"Ow c #75B9F6",
+"Ox c #73B7F4",
+"Oy c #6DB4EC",
+"Oz c #538DBD",
+"OA c #7288D1",
+"OB c #8298E1",
+"OC c #99B9EA",
+"OD c #B5D5FF",
+"OE c #CFE3FC",
+"OF c #D4E8FF",
+"OG c #C6E2FF",
+"OH c #A6C2E9",
+"OI c #768AC9",
+"OJ c #576BAA",
+"OK c #395F83",
+"OL c #50769A",
+"OM c #558AB6",
+"ON c #5E93BF",
+"OO c #5F9BCD",
+"OP c #64A0D2",
+"OQ c #6DB0E5",
+"OR c #6DB2E9",
+"OS c #70B8F3",
+"OT c #72B8F4",
+"OU c #71B9F3",
+"OV c #72B7F2",
+"OW c #6DB4EA",
+"OX c #74BBF9",
+"OY c #74BCF6",
+"OZ c #72BDF7",
+"O& c #4A789A",
+"P c #001133",
+"P0 c #323F48",
+"P1 c #767D83",
+"P2 c #51585E",
+"P3 c #001434",
+"P4 c #3E6787",
+"P5 c #79BAF2",
+"P6 c #3E7FB7",
+"P7 c #030D16",
+"P8 c #6D7780",
+"P9 c #061019",
+"Pa c #626C75",
+"Pb c #78B9EF",
+"Pc c #6DBCF7",
+"Pd c #70BAF9",
+"Pe c #6FBBF7",
+"Pf c #6FB9F8",
+"Pg c #6EB8F7",
+"Ph c #6DB7F4",
+"Pi c #6AB4F1",
+"Pj c #6AB0EB",
+"Pk c #62A8E3",
+"Pl c #64A3D6",
+"Pm c #5594C7",
+"Pn c #6685C6",
+"Po c #7897D8",
+"Pp c #8FACE6",
+"Pq c #B2CFFF",
+"Pr c #D1E9FF",
+"Ps c #C3E3FF",
+"Pt c #A0C0E9",
+"Pu c #7080BC",
+"Pv c #4E5E9A",
+"Pw c #356289",
+"Px c #4F7CA3",
+"Py c #538FC1",
+"Pz c #5FA0D8",
+"PA c #63A4DC",
+"PB c #63ACE3",
+"PC c #66AFE6",
+"PD c #6AB0EE",
+"PE c #6BB1EF",
+"PF c #6AB5EF",
+"PG c #6BB6F0",
+"PH c #6CB6F3",
+"PI c #6EB8F5",
+"PJ c #6EBAF6",
+"PK c #6AB6F0",
+"PL c #69B5EF",
+"PM c #6CB3F1",
+"PN c #6CB6F5",
+"PO c #6DB7F6",
+"PP c #6FB9F6",
+"PQ c #70BCF8",
+"PR c #72B9F9",
+"PS c #71BBF8",
+"PT c #71BBFA",
+"PU c #6EBAF4",
+"PV c #70BAF7",
+"PW c #71B8F8",
+"PX c #76B8EC",
+"PY c #6DAFE3",
+"PZ c #656565",
+"P& c #6D6D6D",
+"Q c #7F7F7F",
+"Q0 c #6A6E6F",
+"Q1 c #000405",
+"Q2 c #6C7A87",
+"Q3 c #000A17",
+"Q4 c #646665",
+"Q5 c #7E807F",
+"Q6 c #6E777E",
+"Q7 c #0C151C",
+"Q8 c #25689D",
+"Q9 c #75B8ED",
+"Qa c #6FBBF9",
+"Qb c #6BBAF5",
+"Qc c #6DB9F5",
+"Qd c #69B3F0",
+"Qe c #65ABE6",
+"Qf c #5998CB",
+"Qg c #5E7DBE",
+"Qh c #7392D3",
+"Qi c #86A3DD",
+"Qj c #AAC7FF",
+"Qk c #C4DCF8",
+"Ql c #D0E8FF",
+"Qm c #BEDEFF",
+"Qn c #9FBFE8",
+"Qo c #6F7FBB",
+"Qp c #4B5B97",
+"Qq c #38658C",
+"Qr c #5380A7",
+"Qs c #5692C4",
+"Qt c #5E9ACC",
+"Qu c #61A2DA",
+"Qv c #66A7DF",
+"Qw c #64ADE4",
+"Qx c #67B0E7",
+"Qy c #6CB2F0",
+"Qz c #6CB7F1",
+"QA c #6BB5F2",
+"QB c #6CB8F4",
+"QC c #6BB7F1",
+"QD c #6DB4F2",
+"QE c #6FB6F4",
+"QF c #70B7F7",
+"QG c #6DB9F3",
+"QH c #6AB9F4",
+"QI c #75B7EB",
+"QJ c #1F6195",
+"QK c #2F2F2F",
+"QL c #303030",
+"QM c #505455",
+"QN c #15191A",
+"QO c #515F6C",
+"QP c #757776",
+"QQ c #6F7170",
+"QR c #111A21",
+"QS c #464F56",
+"QT c #74B7EC",
+"QU c #6DB9F7",
+"QV c #6CB8F6",
+"QW c #69AFEB",
+"QX c #65ABE7",
+"QY c #62A5DC",
+"QZ c #599CD3",
+"Q& c #537AB3",
+"R c #668DC6",
+"R0 c #829BDE",
+"R1 c #A1BAFD",
+"R2 c #BED8FB",
+"R3 c #CCE6FF",
+"R4 c #98B8EB",
+"R5 c #6C7FB9",
+"R6 c #465993",
+"R7 c #396A93",
+"R8 c #5485AE",
+"R9 c #5F9ED1",
+"Ra c #62A4E0",
+"Rb c #67A9E5",
+"Rc c #64AEEB",
+"Rd c #67B1EE",
+"Re c #6BB7F5",
+"Rf c #6DB8F9",
+"Rg c #6BB9F7",
+"Rh c #8CB0D0",
+"Ri c #001838",
+"Rj c #626463",
+"Rk c #090A0C",
+"Rl c #636466",
+"Rm c #64696F",
+"Rn c #3F444A",
+"Ro c #040605",
+"Rp c #080A09",
+"Rq c #5E5E5E",
+"Rr c #767676",
+"Rs c #6A7378",
+"Rt c #141D22",
+"Ru c #13548A",
+"Rv c #6EBAF8",
+"Rw c #66ACE8",
+"Rx c #63A6DD",
+"Ry c #5DA0D7",
+"Rz c #5D84BD",
+"RA c #5F86BF",
+"RB c #7B94D7",
+"RC c #95AEF1",
+"RD c #B8D2F5",
+"RE c #C8E2FF",
+"RF c #B0D0FF",
+"RG c #90B0E3",
+"RH c #687BB5",
+"RI c #3C6D96",
+"RJ c #5788B1",
+"RK c #5A99CC",
+"RL c #61A0D3",
+"RM c #65A7E3",
+"RN c #69ABE7",
+"RO c #66B0ED",
+"RP c #7498B8",
+"RQ c #001232",
+"RR c #767877",
+"RS c #101113",
+"RT c #0F1012",
+"RU c #01060C",
+"RV c #2D3238",
+"RW c #0F1110",
+"RX c #636564",
+"RY c #6E6E6E",
+"RZ c #121B20",
+"R& c #3E474C",
+"S c #6BB1ED",
+"S0 c #67ADE9",
+"S1 c #65A8DF",
+"S2 c #5EA1D8",
+"S3 c #5E92C4",
+"S4 c #497DAF",
+"S5 c #768DD3",
+"S6 c #8AA1E7",
+"S7 c #AAC9F7",
+"S8 c #BEDDFF",
+"S9 c #D6EAFF",
+"Sa c #D5EBFF",
+"Sb c #D6ECFF",
+"Sc c #CDEAFF",
+"Sd c #ACC9FF",
+"Se c #8BA8E2",
+"Sf c #657AAF",
+"Sg c #455A8F",
+"Sh c #4073A0",
+"Si c #588BB8",
+"Sj c #599AD0",
+"Sk c #62A3D9",
+"Sl c #65A9E6",
+"Sm c #69ADEA",
+"Sn c #69B3F2",
+"So c #6AB4F3",
+"Sp c #7296B6",
+"Sq c #000F2F",
+"Sr c #606062",
+"Ss c #171719",
+"St c #0C0C0E",
+"Su c #343436",
+"Sv c #6F6F6F",
+"Sw c #636C75",
+"Sx c #0D161F",
+"Sy c #19588E",
+"Sz c #68AEEA",
+"SA c #66A9E0",
+"SB c #60A3DA",
+"SC c #6397C9",
+"SD c #6D84CA",
+"SE c #8198DE",
+"SF c #9CBBE9",
+"SG c #B7D6FF",
+"SH c #D0E4FC",
+"SI c #D5E9FF",
+"SJ c #D1E7FE",
+"SK c #CBE1F8",
+"SL c #BCD9FB",
+"SM c #B3D0F2",
+"SN c #A9C6FF",
+"SO c #819ED8",
+"SP c #6176AB",
+"SQ c #4275A2",
+"SR c #5A8DBA",
+"SS c #5C9DD3",
+"ST c #63A4DA",
+"SU c #66AAE7",
+"SV c #6AAEEB",
+"SW c #6BB5F4",
+"SX c #002444",
+"SY c #4A4A4A",
+"SZ c #777779",
+"S& c #78787A",
+"T c #050E17",
+"T0 c #4E5760",
+"T1 c #76B5EB",
+"T2 c #68AEEC",
+"T3 c #61A3DF",
+"T4 c #609CD2",
+"T5 c #508CC2",
+"T6 c #6080BD",
+"T7 c #7090CD",
+"T8 c #90AAE7",
+"T9 c #AFC9FF",
+"Ta c #B7D8FF",
+"Tb c #B3D8FF",
+"Tc c #AED3FF",
+"Td c #A9CDFD",
+"Te c #ABC3FF",
+"Tf c #7C94D2",
+"Tg c #5A74A5",
+"Th c #435D8E",
+"Ti c #457AAC",
+"Tj c #5B90C2",
+"Tk c #5E9FD7",
+"Tl c #64A5DD",
+"Tm c #67ABE8",
+"Tn c #6BB2F2",
+"To c #6DB4F4",
+"Tp c #6FB6F6",
+"Tq c #70B4F1",
+"Tr c #4589C6",
+"Ts c #000419",
+"Tt c #23394E",
+"Tu c #616264",
+"Tv c #727375",
+"Tw c #474C52",
+"Tx c #04223C",
+"Ty c #000721",
+"Tz c #3375AF",
+"TA c #73B5EF",
+"TB c #6DB3F1",
+"TC c #69AFED",
+"TD c #63A5E1",
+"TE c #629ED4",
+"TF c #5A96CC",
+"TG c #5676B3",
+"TH c #6A8AC7",
+"TI c #7F99D6",
+"TJ c #9FB9F6",
+"TK c #ADCEF9",
+"TL c #AACFFB",
+"TM c #AACEFE",
+"TN c #A8CCFC",
+"TO c #95ADEB",
+"TP c #6D85C3",
+"TQ c #516B9C",
+"TR c #466091",
+"TS c #4C81B3",
+"TT c #6095C7",
+"TU c #65A6DE",
+"TV c #6CB3F3",
+"TW c #71B5F2",
+"TX c #7C92A7",
+"TY c #30465B",
+"TZ c #000002",
+"T& c #050A10",
+"U c #2A2F35",
+"U0 c #4E6C86",
+"U1 c #90AEC8",
+"U2 c #72B4EE",
+"U3 c #6FB6F8",
+"U4 c #6DB7F8",
+"U5 c #6EB5F7",
+"U6 c #6CB3F5",
+"U7 c #6CB1F2",
+"U8 c #6AAFF0",
+"U9 c #63A7E4",
+"Ua c #60A1D7",
+"Ub c #5B9CD2",
+"Uc c #588ABF",
+"Ud c #5082B7",
+"Ue c #788BD0",
+"Uf c #8699DE",
+"Ug c #9EB8F5",
+"Uh c #AECBFF",
+"Ui c #A1B8FB",
+"Uj c #869DE0",
+"Uk c #687AB8",
+"Ul c #3F668F",
+"Um c #456C95",
+"Un c #4E8AC0",
+"Uo c #5E9AD0",
+"Up c #60A2DE",
+"Uq c #68ACEB",
+"Ur c #6BAFEE",
+"Us c #6FB4F5",
+"Ut c #6EB5F5",
+"Uu c #70B7F9",
+"Uv c #6CB6F7",
+"Uw c #6DB4F6",
+"Ux c #64A8E5",
+"Uy c #5FA0D6",
+"Uz c #6294C9",
+"UA c #4F81B6",
+"UB c #687BC0",
+"UC c #7588CD",
+"UD c #7A94D1",
+"UE c #829CD9",
+"UF c #829FD9",
+"UG c #7A97D1",
+"UH c #768DD0",
+"UI c #6B82C5",
+"UJ c #6476B4",
+"UK c #495B99",
+"UL c #3B628B",
+"UM c #5279A2",
+"UN c #5793C9",
+"UO c #639FD5",
+"UP c #64A6E2",
+"UQ c #66A8E4",
+"UR c #69ADEC",
+"US c #6EB3F4",
+"UT c #70B5F8",
+"UU c #6FB4F7",
+"UV c #6FB2F6",
+"UW c #6DB0F4",
+"UX c #6BAFF0",
+"UY c #67ABEC",
+"UZ c #67A7E5",
+"U& c #63A3E1",
+"V c #619ED7",
+"V0 c #5895CE",
+"V1 c #507EB2",
+"V2 c #4E7CB0",
+"V3 c #6683BB",
+"V4 c #6D8AC2",
+"V5 c #6E87BF",
+"V6 c #6D86BE",
+"V7 c #5F7EAD",
+"V8 c #496897",
+"V9 c #365F8B",
+"Va c #3F6894",
+"Vb c #467DB3",
+"Vc c #578EC4",
+"Vd c #5E9CD9",
+"Ve c #65A3E0",
+"Vf c #66A7E7",
+"Vg c #69AAEA",
+"Vh c #6DB1F2",
+"Vi c #6DB2F5",
+"Vj c #71B4F8",
+"Vk c #71B5F6",
+"Vl c #70B5F6",
+"Vm c #70B5FA",
+"Vn c #6EB3F6",
+"Vo c #6EB1F5",
+"Vp c #69ADEE",
+"Vq c #69A9E7",
+"Vr c #66A6E4",
+"Vs c #66A3DC",
+"Vt c #6593C7",
+"Vu c #5583B7",
+"Vv c #4D6AA2",
+"Vw c #415E96",
+"Vx c #405991",
+"Vy c #3E5D8C",
+"Vz c #486796",
+"VA c #4C75A1",
+"VB c #5B84B0",
+"VC c #5D94CA",
+"VD c #649BD1",
+"VE c #64A2DF",
+"VF c #68A6E3",
+"VG c #68A9E9",
+"VH c #6BACEC",
+"VI c #70B3F7",
+"VJ c #70B4F5",
+"VK c #6FB4F9",
+"VL c #70B2E6",
+"VM c #6EB0E4",
+"VN c #6EADE2",
+"VO c #6AAADA",
+"VP c #67A7D7",
+"VQ c #65A2D1",
+"VR c #619ECD",
+"VS c #5C95C2",
+"VT c #548DBA",
+"VU c #5287B3",
+"VV c #5288B4",
+"VW c #578DB9",
+"VX c #5D97C5",
+"VY c #639DCB",
+"VZ c #64A2D1",
+"V& c #68A6D5",
+"W c #69A7DA",
+"W0 c #6CAADD",
+"W1 c #71B4E9",
+"W2 c #72B5EC",
+"W3 c #627ED4",
+"W4 c #627ED5",
+"W5 c #617ED5",
+"W6 c #637ED3",
+"W7 c #647ED2",
+"W8 c #657ED1",
+"W9 c #667ED0",
+"Wa c #687FCE",
+"Wb c #687FCD",
+"Wc c #697FCC",
+"Wd c #6B7FCA",
+"We c #6D80C9",
+"Wf c #6E80C8",
+"Wg c #6E80C7",
+"Wh c #7180C4",
+"Wi c #7280C3",
+"Wj c #7481C1",
+"Wk c #7681BF",
+"Wl c #7781BD",
+"Wm c #7A81BB",
+"Wn c #7B82BA",
+"Wo c #7D82B8",
+"Wp c #7E82B6",
+"Wq c #8182B3",
+"Wr c #8283B2",
+"Ws c #8483B0",
+"Wt c #8683AE",
+"Wu c #8983AB",
+"Wv c #8B84A9",
+"Ww c #8D84A6",
+"Wx c #8E85A4",
+"Wy c #9185A2",
+"Wz c #9385A0",
+"WA c #95859D",
+"WB c #97869B",
+"WC c #998699",
+"WD c #9B8697",
+"WE c #9D8794",
+"WF c #A18790",
+"WG c #A2888F",
+"WH c #A3888D",
+"WI c #A6888B",
+"WJ c #A88889",
+"WK c #AA8987",
+"WL c #AC8984",
+"WM c #AE8981",
+"WN c #B18A7F",
+"WO c #B38A7D",
+"WP c #B58A7B",
+"WQ c #B88B78",
+"WR c #BA8B76",
+"WS c #BB8B74",
+"WT c #BE8B71",
+"WU c #C08C6F",
+"WV c #C18C6E",
+"WW c #C48D6B",
+"WX c #C58D69",
+"WY c #C88E67",
+"WZ c #CA8E64",
+"W& c #CC8E62",
+"X c #CE8E60",
+"X0 c #CF8E5E",
+"X1 c #D18F5C",
+"X2 c #D48F59",
+"X3 c #D68F57",
+"X4 c #D79057",
+"X5 c #D89055",
+"X6 c #DC9052",
+"X7 c #DC9051",
+"X8 c #DE914F",
+"X9 c #DF914E",
+"Xa c #E1914C",
+"Xb c #E2924B",
+"Xc c #E49248",
+"Xd c #E59247",
+"Xe c #E79245",
+"Xf c #E89245",
+"Xg c #EA9342",
+"Xh c #EB9342",
+"Xi c #EC9341",
+"Xj c #ED943F",
+"Xk c #EE943E",
+"Xl c #EF943D",
+"Xm c #F0943D",
+"Xn c #F1943B",
+"Xo c #F2943B",
+"Xp c #F2943A",
+"Xq c #F39539",
+"Xr c #F49539",
+"Xs c #F59539",
+"Xt c #F69537",
+"Xu c #F69637",
+"Xv c #F79637",
+"Xw c #F69638",
+"Xx c #F69639",
+"Xy c #F59639",
+"Xz c #F4963A",
+"XA c #F4963B",
+"XB c #F3953C",
+"XC c #F2953C",
+"XD c #F2963D",
+"XE c #F1963F",
+"XF c #EF9641",
+"XG c #EE9642",
+"XH c #ED9643",
+"XI c #EC9645",
+"XJ c #EA9647",
+"XK c #EA9648",
+"XL c #E99649",
+"XM c #E8954B",
+"XN c #E6954D",
+"XO c #E5954E",
+"XP c #E3944F",
+"XQ c #E29551",
+"XR c #E19553",
+"XS c #DF9556",
+"XT c #DD9558",
+"XU c #DB955A",
+"XV c #DA955C",
+"XW c #D8955E",
+"XX c #D69560",
+"XY c #D59562",
+"XZ c #D49464",
+"X& c #D29466",
+"Y c #D09468",
+"Y0 c #CE946B",
+"Y1 c #CC936D",
+"Y2 c #CA936F",
+"Y3 c #C89371",
+"Y4 c #C69374",
+"Y5 c #C49377",
+"Y6 c #C39379",
+"Y7 c #C0937C",
+"Y8 c #BE937E",
+"Y9 c #BC9281",
+"Ya c #BB9282",
+"Yb c #B89285",
+"Yc c #B79286",
+"Yd c #B49289",
+"Ye c #B3928C",
+"Yf c #B1918F",
+"Yg c #AF9191",
+"Yh c #AC9194",
+"Yi c #AA9196",
+"Yj c #A99198",
+"Yk c #A7919A",
+"Yl c #A5919D",
+"Ym c #A290A0",
+"Yn c #A190A2",
+"Yo c #9F90A4",
+"Yp c #9D90A7",
+"Yq c #9B90A9",
+"Yr c #998FAB",
+"Ys c #978FAD",
+"Yt c #958FAF",
+"Yu c #938FB2",
+"Yv c #928FB3",
+"Yw c #8F8FB8",
+"Yx c #8E8FB8",
+"Yy c #8C8EBB",
+"Yz c #8A8EBD",
+"YA c #888EBF",
+"YB c #888EC0",
+"YC c #868EC3",
+"YD c #838EC6",
+"YE c #828EC7",
+"YF c #808EC9",
+"YG c #7E8DCB",
+"YH c #7D8DCD",
+"YI c #7C8DCF",
+"YJ c #7A8DD0",
+"YK c #788DD2",
+"YL c #778DD4",
+"YM c #768DD5",
+"YN c #758CD7",
+"YO c #748CD8",
+"YP c #738CDA",
+"YQ c #718CDC",
+"YR c #6F8CDE",
+"YS c #6F8CDF",
+"YT c #6D8CE0",
+"YU c #6B8CE3",
+"YV c #6B8CE4",
+" 0 0 0 0 0 0 0 0 0 0 0 0 1 0 2 3 4 5 6 7 8 9 a b c d e f g h i j 7 k l 3 m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 n n 1 0 0 n 0 o o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0",
+" p p q q p p q q p p q q p p q q p p q q p p q q p p n 0 3 5 r 8 j s a t u v w x y z A 7 B C 2 1 q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p D q q p D q E F F q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q p p q q",
+" G G H H G G H H G G H H G G H H G G H H G G H H I J K L M N O P Q R S T U V W X Y Z &0 000102030405 H H0606 H H G G H H G G H H G G H H G G H H G G H H G G H H G G H H G G H H G G H H G G H H G G H H G G H H G G H H G G H H H H H H G G H H G G H H05 G H H G G H H G G H H G G H H G G0707 G G H H G G H H G G H H G G H H G G H H G G H H G G H H G G H H G G H H G G H H G G H H G G H H G G H H G G H H",
+"0808090908080909080809090808090908080909080809090a I L L0b0c O0d Q0e0f0g0h0i0j0k0l0m0n0o0p0q030r G0s09090t0t0909080809090808090908080909080809090808090908080909080809090808090908080909080809090808090908080909080809090808090909090909080809090808090908080909080809090s0809090808090908080u0u0808090908080909080809090808090908080909080809090808090908080909080809090808090908080909080809090808090908080909",
+"0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0x0y0z0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0y0x0w0w0v0v0W0W0v0v0w0w0v0v0W0W0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0x0X0X0x0x0v0v0w0x0X0X0v0v0v0v0Y0Y0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w0v0v0w0w",
+"0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z1 0w0w0y0A0B0C0S0E0F101112131415161718191a1b0T1c0z0y0w1 0&0&0Z0Z1d1d0Z0Z0&0&0Z0Z1d1d0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&1e0Z0&0&0Z0Z0&1 0Z0Z0&0&0Z0Z0Z0Z0Z0Z1f1f0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&0Z0Z0&0&",
+"1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1i1j1k1l1m1n1o1p1q1r1s1t1u1v1w1x1y1z1A1B1C1D1E1o1n1F1l1G1H1I1h1g1g1h1h1g1g1h1h1J1J1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1K1K1g1g1h1h1L1M1N1O1P1P1Q1Q1g1R1h1h1g1g1K1K1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h1g1g1h1h",
+"1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1U1V1I1G1m1W1X1Y1Z1&2 202122232425262728292a1o1n2b1l1G1i1g1V2c1U1S1T1T1S1S1T1T2d2d1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S2e2e1S1S1T1T2f2g2h2i2j2k2l2m1U1S1T1T1S1S2e2e1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T1S1S1T1T",
+"2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2p2q2r1Q2s2t2u2v2w2x2y2z2A2B2C2D2E2F2G2H2I2J2K2L2M2N2O2O2P2Q2R2R2q2p2o2S2T2T2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2p2n2U2V2W2X2Y2Z2&3 303132333435363637372n2n38382n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o2n2n2o2o",
+"39393a3a39393a3a39393a3a39393a3a39393a3a3b2n3c3d2s2t3e3f3g3h3i3j3k3l3m3n3o3p3q3r2J3s2L3t3u2N2s2O2P3v3w3w2q2p2o2S3x3y3a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a3b393a3a3z3A3B3C3D3D3D3E3F3G3H3I3J3K3L3M39393N3O39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a39393a3a",
+"3P3P3Q3Q3P3P3R3R3S3S3Q3Q3P3P3Q3Q3P3P3Q3Q3T3U3V3W3X3Y3Z3&4 404142434445464748494a3Y3Y4b4c4d4e4f4g4h4i3W4j4k4l4m4n3T4o3Q3Q3S3S3Q3Q3P3P3Q3Q3P3P3R3R3S3S3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3R3R3S3S3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3R3R3S3S3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3T3P4p4p4q4r4s4t4u4v4v4v4s4s4v4u4w4x4y4z4A4B4C4C3P3P3Q3Q3P3P3R3R3S3S3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3R3R3S3S3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3R3R3S3S3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3R3R",
+"4D4D4E4E4D4D4F4F4G4G4E4E4D4D4E4E4D4D4E3Q3P4o4H3W4I4J4K4L4M4N4O4P444Q464R4S484T4U4V4J4W4X4Y4Y4Z4&5 4f5051524l4m4n3T3P3Q4E534G4E4E4D4D4E4E4D4D4F4F4G4G4E4E4D4D4E4E4D4D4E4E4D4D4F4F4G4G4E4E4D4D4E4E4D4D4E4E4D4D4F4F4G4G4E4E4D4D4E4E4D4D4E4E4D4D4E4E5454555556574s584v4v4v4u4t4t4v4v59594u5a5b5c5d5d4D4D4E4E4D4D4F4F4G4G4E4E4D4D4E4E4D4D4E4E4D4D4F4F4G4G4E4E4D4D4E4E4D4D4E4E4D4D4F4F4G4G4E4E4D4D4E4E4D4D4E4E4D4D4F4F",
+"5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5g5e5f5h5i5j5k5l5m5n5o5p5q5r5s5t5u5v5w5x5y5z5A5B5A5A5C5D5E5E5F5G5H5I5J5K5L5M5N5O5j5j5P5h5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5Q5Q5f5f5e5e5f5f5R5e5f5S5T5U4u3D4v4v4v4v4u594v4v4v4v4u5V5W5X5Y5Z5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f5e5e5f5f",
+"5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5&6 5O606162636465666768696a6b6c6d6e6f6f6f6e6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v5O6w5&6x5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h6y6y6z6z5R5R5h5h6x5R5f5h6A6B4u4v4u4u4u4u4u4u4u4u4v4v4u6C6D6E5Z6F5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h5R5R5h5h",
+"4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D6G3R6H6I6J4f6K6L6M6N6O6P6Q6R6S6T6U6V6W6X6Y6Z6&7 70717272737475767778797a7b4I517c4m7d7e7f4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4E4E4E4E7f7g4E7h7i7j4v4v4u4u4u4u4u4u4s4s4v4v7k7l7m5R7h5d4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E4D4D4E4E",
+"3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3T7n7o3V4j7p4Z7q7r7s6N7t7u7v7w7x7y7z7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7V517W7X7Y7Z4C3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3Q3Q3Q3Q7&7&3Q3Q8 804v4v4u4u4u4u4u4u4s4s4v4u818283833Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q3P3P3Q3Q",
+"8484858586868585848485858484858587883b2p898a8b3s8c8d8e8f8g8h8i8j8k8l8m8m8n8o8p8q8r8s8t8u8v8w8x8y8z v8A8B8C8D8E8F8G8H8I8J8K8L8M8M8484858586868585848485858N7n858584848484878485858M8M858M8N8N858584848585848485858686858584848585868685858484858587844C8I313D4u4v4u4u4u4u4u4u4u4u4u4v8O8P8Q8485858R8R858M8487858M8484858M8484858M8R8R858584848585848Q85858487858S84848585848485858585858584848585858585858N8N858M",
+"87878M8M8T8T8M8M87888M8M87878U3a888V2p2Q8a3u8W2I8X8Y8Z8&9 909192939495969798999a9b9c9d8u8v8v9e9e9f9g9h9i9j9k9l9m9n8G9o9p9q9r2n3988878M8M8T8T8M8M87878M8M7n7n8U8U8888878787878M8M8M8M8M8M7n7o393988888M8M87878M8M8T8T8M8M87878M8M8T8T8M8M87878M8M88879s9t9u4u4u4v4u4u4u4u4u4u4u4u4u9v9w9x87878M8M9y9y393987878M8M88878M8M87878M399z9z8M8M87878M8M87888M8587888M8M87878M8M87878M8M8M8M8M8M8787858M8M8M8M397n7n8M8M",
+"9A9A9B9B9A9A2S2S9A9A9B9B9A9A9C9C2p2q2Q2P9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R9S9T9U9V9W9X9Y9Z9&a a a0a0a1a2a3a4a5a6a7a8a9aaabacad3vaeaeaf9C9B9B9A9A9B9B9A9A9B9B9Aag9B9B9A9A9B9B9A9A9B9B9A9Aahah9A9A9B9B9Aai9B9Bajaj9B9B9A9Aakak9A9A9B9B9A9A9B9B9A9A9B9Bai9Aalaman4u4u4v4u4u4u4u4u4u4s4s4uaoapaqai9A9B9B9A9A9B9B9A9A9B9Bai9Aar9B9A9A9A9A3b3b9B9B9A9A9B9B9A9A9A9A9A9A9B9C9A9A9B9B9A9A9B9B9B9B9B9B9Aai9B9C9A9A9B9B9A9A2S3a",
+"aiai9C9Caiai2o2oaias9C9Caiasatau3v2Pavawaxay9GazaAaBaCaDaEaFaGaHaIaJaKaLaMaNaOaPaQaRaS9&aTaUaVaVaWaXaYa3aZa&b b0b1a9b2b3b4avb5b6ataf9C9C9Aai9C9Caiai9Cafaias9C9C9Aai9B9Caiai9C9Basb7b8b99Aai9C9Caiai9C9Cbaba9C9Caiaibbbbaiai9C9Caiai9C9Caiai9C9Casasalbcbd4u4v4v4u4u4u4u4u4u4s4s4vbebfbgaiaiafafai9A9C9B9Aai9C9Caiai9C9Caiaiaiai2n2p9C9Casai9C9Caiaiaiasaiai9C9Caiai9C9Caiai9C9C9C9C9C9Caiai9C9Caiaiaf9Caiai2o2o",
+"bhbhbibibhbhbibibhbhbibibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzbAbBbCbDbEbFbGbHbIbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb&c c0c1ayc2c3c4c5c6c7bjbjbhbhbibjbhbhbibibhbhbjbiafafc8c8c9cacbcccdcecfcgchchcici60602Tcjckbhbibibhbhchchbhbhbibibhbhclclbhbhcmcmcncncocpcq4u4u594v4u4u4u4s4s4u4ucrcscmcmbjbibibictctcucvcwcxcyczcAcBcCc9asasafafbhbhbibibhbhbibibibicmcmcDcEcFcobhbhbibibhbhbibibibjcGcHcIcJcKcLasasbibicMcMclcl",
+"ckckbjbjckckbjbjcNckbkbkblbmcOcPcQcRcScTcUcVcWcXcYcZc&c&d d0d1d2d3aMbGbGd4d5d6d7d8d9dadbdcdddedfdgdhbVdidjdkdldmdndodpc1dqdrdsc4dtc6bkbkckckbjbjckckbjbjckckbjbjaududvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKdL9EckckbjbjckckdFdFckckbjbjckckdMdMckckdNdNdOdPdQdRdS4u4u594u4u4u4u4s4s4u4udTdUdNdNbkbjbjbjdVdWdXdYdZd&e e0e1e2e3e4e5e6atauckckbjbjckcNbjbkbkbkdNe7e8e9eaebckckbjbjckckbjbjbkecedeeefegeheieje6bjbjekeldMcl",
+"ememenenememeoeoepeqerereseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLbHbHeMeNeOePeQeReSeTeUeVeWeXeYeZe&f f0f1f1f2f3f4f5f6f7f8f9cTfaevfbfcerfdememeoeoemfeeoeoememfffgfhfifjfkflfmfnfofpfpfqfrfsftfufv6CfwfxfyfzfAeoeoememfBfBememeoeoememeoeoememeoeoememfCfDfmfmfmfEfmfmfFfGfHfHfmfIfJfKfdeofLfMfNfOfPfQfRfnfofofmfEfEfEfEfSfTfUfVc6ememfWfWememfXfYfZf&g g0g1g2g3g4ememememfVfVeoeog5g6g73Efmfmg8g9ga2Reoeoepepeoeo",
+"gbgbgcgcgbgberergdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgzbHbHgAgBgCgCgDgEgFgGgHgIgJgKgLgMgNgOf0f1gPf0gQgRgSgSgTgUgVf9gWfagXghgYgZgbgberergbgbererg&h h0h1h2h33E3E3E3Eh4h5h6h6h7h8h9ha3E3E3E3Ehbhchdhderergbgbhehegbgberergbgberergbgbererg&gbhfhghbfEhb3EfEhbhhhhfphifEhjhkhlererhmhnfOhodS3Eh4h5h4h43E3Ehbhb3E3Ehphqhrhsgbgbhthug&gbhvhwhxhyhzhhh4h4hAhBgbgbgbgbhshsererhChD3E3E3E3EhEhFhGhGererhHgderer",
+"hIhIhJhJhKhK0Z0ZhLhMhNhNhOhPgWhQhRhShThUhVhWhXhYhZh&i i0i1i2eLi3i4i4i5i6i7i8i9iaibeMicidieifigihbVdif1gPiigPijikiliminioipiq0R1biris0X1eithIhJhJiuhIhJhJiviwixdSdS3EiyiyiziAdSdSdSiBiCiBiDiEiFiGiHiIiJiKiLiMiNiOhIhIhJ0ZhIhIhJhJhIhIhJhJhIhIhJiPiQiR4ziSdSdSiB3EiTiTdSdSiUiViWiXiYiZi&j j0aoj1iTdSiBiKiBiVj2j3j4j5j6j7iKizj8j9jaivivjbjcjdjejfjgjhdSiViViViUjijjithIhJiPhIitjkjljmjniziziB6CjojphIhIhJhJhIhIhJhJ",
+"itit0Z0Zjqjr1e0vjsjtjujvjwjxjyjzjAjBjCjDhWjEjFjGjHjIi i0i1jJgzi3jKjLjMjNjOjPjQjRjSjTjUjVifjWjXjYbVdif1gPiiiijZj&k k0k1k2k3k4k51ak6k7k80Xk9it0Z0Zitit0Z0ZhLjskakb9v9vkckckdke9v9viLiLkffwkgkhkikjkkklkmkniLkokpkqitit0Z0Zitit0Z0ZhIit0Z0Zitit0Z0ZiQkriM9v9v9v9v9vksks9viLktkukvkwgZkxkykzfI9vkskA9viLiL5VkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTksiJ9vkuktktktkUkVitit0Z0Zitk9kWkXkYiLkJkdkZkak&l ititl0l0itit0Z0Z",
+"l1l1l2l2l3l3l4l5l6l7l8l9lalblcldlelflglhliljlklllmlnloi0lplqgzi3bHlrlsltlulvlwlxlylzlAlBlClDlEbVbVdif1gPlFiilGlGlHlIlJlKlLlMlNlOkOlPlQl5lRl3lSlSlTl1l2l2l1l1lUlViLknknkblWlWiLknfllXlYlZl&m m0m0l1l1m1m2kbkbm3m4lTl1l2m0l1l1l2l2m5m5l2l2l1l1m6m6m7m8m9maknkbktktknknkbknknmbmcmdmemfhjflmgmalWmhmhmhmimjmkmll2l2l1l1mmmnmompmqmrmsmtmumvknknlWlWiLknkbkbkbkbmwmxl1l1l2l2mymzmAmBkbkbmamCmDmEl2l2l1l1l2l2l1l1l2l2",
+"l3l3m0l4lRmFmGmHmImJl9mKlbmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm&lqgzi3bHgzn n0n1n2n3n4n5n6n7n8n9nanbbVbVdif1f1lFiilGlGf0ncndlJnenfngnhninjnkmHmFlRnlnll1l3m0m0lRl3nmnnkfkfkfkfnonokfnpkfnqnrnsjshMm0l4lRlRntnukfnvnwnxl3l3m0l4lRl3l4m0nynyl4m0lRl3nznAnBnCnDnEkfkfnonFkfkfkfkfnpbenGnHnInJnpnpnEnDnonononKnLnMnNnNm0l4l3lRnOnPnQnRnSnTnUnVnvnvnpkfnWnoflkfkfnpnpnpnXnYl3l3m0l4eunZn&o npnpo0o1o2o3l4m0l3l3m0m0l3l3m0m0",
+"o4o4o5o6o7o8o9oaobocmKodoeofogohoiojokolomonooopoqorosotouovowoxbGeMoyozoAoBoCoCoDoEoFoGoHoIoJoJdidigPoKoLoMfG7k7koNoOoPoQoRoSoToUmKoVoWoXo8oYoZo4o4oYoZo6o5o&p jhjhjhp0jhjhjhp0p1p2oYoZp3o4oYoYp4p4p5p6jhp0p7p8oap9oYoYp9o7oYoYo4o4papao4o4pbjw4zpcp0jhpdpepepejhp0pfpgphpipjpkpl5Vp0p0jhjhp0p0pmpnpoppo4o40808o4o4pqprpsp0ptpupvpwp0p0jhp0p0jhpxjhjhp0p0jhpypzp3o4o4o4pApBpC5Vp0pDpEpFo4p3oZpGp4p4oYoYo4o4oYoY",
+"p3p3o6pHoXo9oWoVpIpJpKpLpMpNpOpPpQmSpRpSpTpUpVpWpXpYpZp&q q0q1oxbGeMq2q3q4oB9dq5q6q7q8q8q9q9qaqbdiqcgPoKoLoM7k4s4s4sqdqeoQqfqgqhqiqjqkoVoaoXqloZp3p3oZoZo6pHqmqn5a5ako5a5a5a5a5aqoqpoZoZp3p3oZoZqqqqqrqsjnjnqtquqvo7oZoZo8o7oZqlp3p3papap3qwqxqyqz5ajn5aqAqAqAqA5a5aqBqCqDqEqFqGqH5a5ajnjn5a5aqIqJqKqLqLp3qw0s0sp3p3qMqNqOjnqPqQqRkwjnjn5a5ajn5ako5ajn5ajn5aqSqTp3p3p3qUqVqW5ajniSqXqYqZp3p3oZoZqqqqoZoZp3p3oZoZ",
+"q&q&r r0r1r2r3r4r5r6r7r8r9rarbrcrdrerfrgrhrikYrjrkrlrmrnrorprqrreMeMrsoCoC9drtrtrurvrw9&rxryrzrArBrCgPoKiiii4t4s4v4vrDrErFrGrHrIrJrKrLrMrNrOr0r0q&q&r r0q&q&rPrQrRrRrRrRrRrRrRrSrTrUr0r q&rVr0r q&rWrXrYrZrRrRr&s pHr r s0s0s1s1s2s3s4s4q&q&s5s6s7s8rRrRrZrRrRrRrRrZs9sasbscsdserZrRrRrRrRrZrRsfsgshr0r q&rVsisjq&q&skslrmrRsmsnsospsqsrrRrRrRrRrRjnrRrZssstsusvq&q&swsxqOrZs8syszsAr r0q&q&r r0q&q&r r q&q&r r ",
+"rVrVsBsBsCsDsEsFsGsHsIsJsKsLsMrcsNsOsPsQrhsRrSsSsTsUsVsWsXsYsZs&eMeNt oCoC9drtrtt0t1t2t3t4t5t6t7t8t9f1oKiiii4t4s4v4vtatbtctdtetftgthtitjtkrNtlsBrVrVr0sBtmrVcctnfIfItofIfIfIfItptqtrr0r0rVtmr0r0rVq&tsttlXlXtotutvtwr0r0txtytztAtBtCtDtErVrVtFtGsysyfIfIlXfIfIfIlXfItHtIsctJtKtLfIfIfIfIfIfItMtNtOscsBsBtmrVsjsjtmrVtPtQtRpDtStTtUtVtWtXfIfItofItofIfIlXtYtYsutZrVrVt&u iSlXsyu0u1u2sBsBrVrVr0r0rVrVr0r0rVrVr0r0",
+"u3u3u4u5u5u6u7u8u9uaubucudueufuguhuipciCujukulumunuoupuqurusutuueMeNuvuwuwuxuyuzuAuBuCuDuEuFuGuHuIuJgFuKlGlG584t4s4tuLuMuNuOuPuQuRrJuSuTuUuVuWuWu3u3uXuXuYuZu&v iSiSiSv0v1v1v2v3v4sBuXu4u3u3uXuXv5v6jmv7v0v0v8v9vavbvcvdvevfvgvhvivjvkvlvmvnvoqHvpvqiSiSiSiSiSiSiSvrvsvtvuvvvjv0iSiSiSv0v0v0vwvxuZuZuXuXu3u3uXuXvyrOvzvAvqvBvCvDvEu3vFvGhcv0vqvqvHiSvIvIv0v0qSvJk6vKvLvMvpvpvNvOvPvavQvQvRu3vSuXu3u3uXuXu3u3uXuX",
+"vTvTvUu6vVvWvXvYvZv&w w0udw1w2uguhw32&w4w5w6w7w8w9vBwawbwcwd9cuueNeNuwuxuwwegzwfwgwgwhwiwjwkwlwmwnwowpwqwrws584s4t4twtwuwvwwwxwywzwAwBuSwCuUwDwEwFvTvUu5wGwGwHv pCpCpCwIwJwKwLwMwNwNu5vUvTvTu5u5wOwPwQwIwIwIwRwSuWwTwUwVwWwXwIwIpDwYwZw&x vsx0pCx1x2pCpCpCpCpCwIulx3x4x5x6x7x8wIpCpCpCwIpDpCx9xawGxbu5u5vTvEu5u5xcxdxexfqCxgxhxiwFvTxjxkxlpCx1x1pCpCxmxnwIwIxoxpxqxrxsx1x1xtxuxvuWuWxwxwvTvTu5u5vTvTu5u5vTvTu5u5",
+"xxxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxMxNxOw7xPx8xQwQxRxSxTxUxVxWxXgAeMeNxYlqxZx&y y y0y0y1y2y3y4y5y6y7y8y9yaybycydydyeyfygyhyiyjykylymynyoypyqyrysytyuxxyvyvywyxyyyzqHqHqHyAyAqHtGyBxxxxxxxxxxxxyCyCyDyEyAyAyAyAyFyGyHyIyJqIyKyLyMyNyOyPyQyRySyTyAyAqHqHqHqHqHqHyUyVyWnGxyxyyXyYyZqHqHqHqHyAyAqHy&ccz z0yvyvxxxxyCyCz1eez2z3z4z5yvyvz6z7xbz8z9zazbyKqHzcqHyAyAyAkUzdzezfqHqHzgzhziwExbxbzjzjxxxxyvyvxxxxyvyvxxxxyvyv",
+"zkzkytysxBzlzmznzozpzqzrzsztzuzvzwzxzyx0xOzy6CuqzzzA4xujzBzCgAgAi2zDt7zEzFzFzGrczHzIzJzKzLzMzNzNzOzPzQzRzSzTzUoAzVzWzXzXzYzZz&y7A ynA0A1yqxCA2A3A4zkxzxzA5A5A6A7A8A8A8yZyZA8A9AazkzkzkyuzkzkwDAbAcAdyZyZA8yZAeAfAgAhyZyZAiAjwSAkAlAmAnAoApAqiCA8A8A8A8A8yZA8ArjfAsAtytxzAuAvyZyZA8A8A8A8yZyZAwAxAyAyytytA4A4AzAAABACo0ADAEAFytytAGAHAIAIAJz9AKqCA8A8A8yZyZyZALAMANAOiCwYAPAQAzwDAIAIARARyuzkxzxzzkzkxzxzzkzkxzxz",
+"ASATAUAVAWAXAYAZA&B B0B1B2B3B4B5lkB6B7B8B9BaBbBcBdBeBfBgBhBhBiBjBkBlBmBmBnBnBoBpBqBrBsBtBuBvvvBwBxByBzBABBBCBDBEBFBGBFBHBIBJBKwxBLtDBMBNBOBPBQBRAUBSBSBSATATBTBUBVBVBWBWBXBYBZB&AHAGC C ATATC0C1C2C3C4C5BXcqC6C7C8C9BWBXCaCbCcCdCeCfCgChCiBXBXBWs7CjBXBXBXCkClCmASCnAUBSCoCpC4C3tRBWBWBXBWBXCqCrAzAzBSAUCsu7fNCtCuCvCwCxCyCzBSBSATATBSAUCACBCCCDBWBWBXBXBXBXCECFCGCvCHCICJCsAUBSATATCKCKASATBSBSATATBSBSATATBSBS",
+"CnCnAVAWCLAXAYAZCMB CNB1COCPCQCRCSCTCUCVCWCXCYCZC&D uuD0D1D2D3D4D5D5D6D7D8D96&DaDbDcDdDeDfDgDhDiDjDkDlDmDnzQDoDpDqDrDsDtDuDvDwDxDyDzDABNDBBPBQBRAUAUAUAUCnCnDCDDujujpcj7j7upDEDFDGDGDHDHDICnDJDKDLoqDMoqpcfwDNDODPDQj7pcDRDSDTDUDVDWDXDYj7j7j7mbDZujj7j7D&E E0E1CnCnAVAUE2E3DMDMmbj7j7pcj7j7E4E5E6E7AUAUCsE8E9EaEbEcEdEeCzvWAVAUCnCnAVAUEfEfEgEhvhj7j7pcpcpcEifsEbEjEkElCsCsAUAUDICnEmEmCnCnAUAUCnCnAUAUCnCnAUAU",
+"EnEnEoEpEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGgzd4lpEHEIEJEKELEMENEOB5EPEQERESETEUEVEWEXEYEZE&F F0F0F1F2F3F4F5F6F7F8F9FaFbFcFdFeFfFgFhFiFjFkFlEpEpFmEnFnEoFoFpFqFrrjkYmCmCkYFsFtFuFvEnFnFnFwFxFyFzkYrSkYkYkYFAFBzlFCFDFEFEulFFFGFHpsFIkYrSmCFEFJFKkYkYFLFMFNFOFnEoEnEnFnFn0FFPFQFJkYrjkYkYrSkYFRFSFTFUFVFWFXFYkZrSFZqDF&xCFmEnFnFnG G G0G1EnEnFoG2zhG3rSkYG4G5psG6kYfxG7uTFmEnFnFnG8G8FnFnEnEnFnFnEnEnFnFnEnEnFnFn",
+"FmFmEoEpEqG9GaGbEtEuEvGcGdGeGfGgGhx&GiGjGkGkGlGmEHEHGnGoGpGpGqGrGsGtGuGvGwGxGyGzGAGBGCGDGEGFGGGHGGGHGIGJGKGLGMGNGOGPGQGRGSqfGTGUGVGWGXGYFkGZEqEpFmFmEoEoFoG&ix2&H 2&H0H0H1ixH2H3FmFmEoEoFwH4H5H02&H12&2&kIkHH6H7H8H9HaHaH1H12&H12&2&2&2&H0H0HbHc2&HdHeHfHgHhEpEoHiFmEoEoHjHkHlHc2&2&2&H12&H1HmHmHnHoHpHqHrHsFIHtHuHvzmyqHiFmEoEoHwHxHyHyFmFmFoHzHAHBum2&yVyVHC2&fvFqHDu9HiFmEoEoHEHEEoEoFmFmEoEoFmFmEoEoFmFmEoEo",
+"HFHFHGHHHIHJHKHLFiHMHNFgHOHPHQHRHSHTHUHVrzloi i0HWHXxZHYHZH&I I0I1I2I3I4I5I6FeI7I8I9IaIbIcIdIeIeIfIfIdFgIgIhIiIjIkIlIlIkImInIoIpHMIqIrIsItIuIvHHIwIwHGHHIxIyIzIAIBIBIBIAICcsHGHHIwIwHGHGIDtQaoulIEIFIGIHIIIJHGHHtVIKILulwYwYIAIAwYwYIMIMwYulwYINyIIOIPIQIwIwHGHGIwIwHGHGHGIRISITFIulIBIBwYwYululwYwYulwYIUIVIKIWIXEqHGHGIwIwHFHFIwIwHiIYIwIwIZI&J J0J1J2wYulwYrmJ3J4HGHGIwIwHGJ5J6J6HGHGIwIwHGHGIwIwHGHGIwIwHGHG",
+"J7J7IvIuJ8J9JaHLJbJcGVFgJdJeJfJgJhJiHVHVrzloi i0HWHXJjJkCQJlJmJnJoJpJqJrJsJtJuJvJwJxEwJyJzJAJBJBJCJDJAJzJEJFGGJGJHJIJJJKJLJMIpJNJcIqIrJaItIuIuIvHIHIIvIvJOJPJQJRJSJRJRJRJTh8IvIvHIHIIvIvJUJVJWJXJYJZJ&K K0K1IvIvsoK2K3K4K5CkJRJSCkkZK6K7fwyJK8kHK9KaKbKbJ8HIIvIvHIHIIvIvIuIvKcKdKeupKfJRkZkZkZkZCkCkD&HtKgKhKiKjG9KkIvIvHIHIJ7J7HIHIGZGZHIHIKlKlKmKmKnKoCkkZKpKqKrKsIvHHHIHIIvIvKtKtIvIvHIHIIvIvHIHIIvIvHIHIIvIv",
+"KuKuKvKwKxKyKzKAKBKCKDKEKFKGKHKIKJKKHVryKLKMi i0lplpKNKOKPKQKRKSKTKUKVKWKXKYKZK&L L0L1L2L3L4L5L5L6L7L8L9LaLbLcLdL0L LeLfKELgL2LhLiLjLkKzLlLmLnKvLoLoKvKvLpLqLrLsLtLuLvLwLxLyLnKvKuKuKvKvLzLALBLCLDKxKvKvLmKuKvKvKuKuLELFLGLHLILJLKqGLLtQLMLNLOLPKuKuLQKxKuKuLRLRKuKuKvKvKuKuKxLSLTFNLULVLWLXLYEeLZL&M M0M1M2KvKvKuKuKxKxM3M3KxKxM3M4KvKvKuKuKvKvM5M5M6M7KpKpM8kyKuKuKvKvKuKuKvKvKuKuKvKvKuKuM9M9KuKuKvKvKuKuKvKv",
+"KuKuKvKvLQKyKzKAKBMaMbKEMcMdMeMfMgMhHVryKLKLi i0lpMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzLhMAMBMCMCMDMEMFL5MGMHMbMIMJMyMKMLLgMbLhMMLjLkMNKzLmLmKvKvMOLoKvKvMPMQMRMSMTMUMVMWMXMYKvLnKuKuKvKvMZMZLPLPLQLQLnKvKuKuKvKvKuKuM&M&N N0N1N2N3qFN4N5nhnhLPN6LmKuKxKxKuLmLRLRKuKuKvKvLmKuKxKxN7N7N8N9NaNbNcNdNeNfNgNgNhM2LnKvKuKuKxKxM3M3KxKxM3M3KvKvKuKuKvKvM5NiNjNkw8hjNlNmLmKuKvKvKuKuKvKvKuKuKvKvKuKuM9M9KuKuKvKvKuKuKvKv",
+"NnNnNnNoNpNpNqNrNsNtNuNvNwNxNyNzNABmHVryNBi NCNCeKgzNDNENFNGNHNINJNKNLNMNNNONPNQNRNSNTNUNVNWNXNYNZN&O O0O1O2NTO3O4O4O5O6O6O7NtO1NWO8NYO9NpNnNnNnNnNnNnNnNnNnNnNnNnNnNnNnNnNnNnNnNnNnOaOaNnNnNnNoNnNnNnNnNpNpNnNpObObObObOcOdNnNnNpNnOcOdNnNoNnNnNnNnNpNnNpNnNnNnNnNnNpNnOeOfNpNnNnNnNnNnNnNoNnNpNnNnNpNnNpNnOdOdNnNnNnNnNnNnmLOgOhOiOjOkOlOmOnOnOoOpbdOqOrOsOtOuOdOdNnNpNnNnNnNnObObNnNnNnNnNnNnNnNnNnNnNnNnNnNn",
+"OvOvOvOvOvO8OwOxO2OyNuNvK&OzOAOBOCODOEOFNBi NCNCeKeLOGOHOIOJOKOLOMONOOOPNOLCNQOQORNSNTNUOSNVOTOTOUOUO0OVO2NtNTNTOWO4O6O3O3O7NtO2OSNVNXNYOvOvOvOvOvOvOvOvOvOvOvO8O8OvOvOvOvO8OvOvOvOvOXOXOvNpOvOvOvOvOvOvOvOvOvOvNYO9NYO9OYOYOvO8OvOvOYNZO8OvO8OvOvOvO8OvOvOvOvOvOvOvOvOvOZOZOvOvOvOvO8OvOvO8OvOvOvOvOvOvOvOvOYOYOvOvO8O8O8OvO&P P02gP1P2P3P4P5P6P7P8up3 P9PaPbPbOYOYOvOvOvOvOvOvO9O9OvOvOvOvOvOvOvOvOvOvOvOvOvOv",
+"PcPcPdPdPePePfPgPhPiPjPkPlPmPnPoPpPqrdPrNBi i0i0HXHXPsPtPuPvPwPxPyNLPzPAPBPCPDPEPFPGPHPhPIPIPfPfPJPJPgPgPhPHPHPHPKPLPMPMPFPGPNPOPIPPPgPdPePePdPdPJPePfPdPePQPdPdPePJPdPdPePePdPfPQPePRPRPJPePdPdPePePdPdPPPSPTPdPUPUPdPdPVPVPPPVPePePVPVPePePdPfPcPcPRPRPePePdPdPePePdPdPePePdPdPePePWPRPePePdPdPePePdPdPePePdPdPePePRPWPXPYFqPZrnP&vhQ Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9PfPdPePePdPdPePePdPdPePePVPVQaQaPdPdPePePdPdPePePdPd",
+"QbQbPgPgQcQcPgPOPHQdPjQePlQfQgQhQiQjQkQli i i0lpHXd4QmQnQoQpQqQrQsQtQuQvQwQxPEQyPGQzQAPhPhPhPOPOQBQBPgPOPhPhPHPHQCQCQDQEQzQzPNPOPhPhPgPgPJQcPgPgQcQcPgPgQcQcPOPgQcQcPOPgQcQcPgPOQcQcQFQFPJQcPgPgQcQcPgPgPIPIPgPgPUQGPfPgPIPIPIPIQcQcPIPIQBQcPgPgQHQbQFQFQcQcPgPgQcQcPgPgPJQcPgPgQcQBQFQFQBQcPgPOQcQcPgPfQcQcPgPgQcQcQFQFQIQJQKpsQLplqOpsQMQNQ3QOQPQQQRQSQTMaPOPgQcQcPgPgQcQcPfPgQcQcPIPIQUQUPgPgQcQcPgPgQcQcPgPg",
+"QUQUQUQUQUQUQVQVQAQdQWQXQYQZQ&R R0R1R2R3NBi i0lpeLeKBmR4R5R6R7R8QfR9RaRbRcRdPiQAReReQVQVQUQURfRfQUQUQUQUQVQVReReReRePNPNReQVQVQVQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQURgRgQUQUPJQcQVQVRhRiRjQPRkRlRmRnRoRpRqRrRsRtRuMAQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQU",
+"QUQUQUQURvQUQUQVPHPiQWRwRxRyRzRARBRCRDREi i i0lpeLeKRFRGRHR6RIRJRKRLRMRNROQdQAPHQVQUQUQUQUQURfRfQUQUQUQUQUQUQUQUQVQVPOPOQVQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQURgRgQUQUQcQcQVQURPRQRRQPRSRTRURVRWRXRrRYRZR&MAL4QUQUQURvQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQUQU",
+"PgPgPgPgPgPgPgPOPHPiS S0S1S2S3S4S5S6S7S8OFS9SaSbScKKSdSeSfSgShSiSjSkSlSmSnSoPNPOPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPfPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgQUQUPOPgPgPgSpSqRrpsSrSsStSuSvpsSwSxSyMMPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPg",
+"PgPgPgPgPfPgPgPgPHQAS SzSASBSCS4SDSESFSGSHSISJSKSLSMSNSOSPSgSQSRSSSTSUSVSoSWPOPOPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgQUQUPfPgPgPgRhSXSYpsSZSZS&SZpsiMT T0MMT1PgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPg",
+"POPOPOPOPOPOPOPOPNSWQyT2RbT3T4T5T6T7T8T9TaugTbTcTdTdTeTfTgThTiTjTkTlTmSVTnToPNPOTpTpQVQVPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPNPOTqTrTsTtTuTvdUTwTxTyTzTAPOPNPOPOPNPNPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPO",
+"POPOPOPOPOPOPOPOPNSWTBTCRNTDTETFTGTHTITJTKTKTLTLTMTNTOTPTQTRTSTTPzTUTmSVTVToPNPOTpTpQVQVPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOTWTqTXTYRTTZT&U U0U1TAU2POPOPOPOPNPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPOPO",
+"U3U3U3U3U3U3U4U4U5U6U7U8TmU9UaUbUcUdUeUfUgT9UhSdUiUjI1UkUlUmUnUoUpRMUqUrTVToU5U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U4U4U3U3U3U3U3U3U3U3U3U3U3U3U3U3U4U4U3U3U3U3U3U3U3U3U3U3U3U3U3U3U4U4U3U3U3U3U3U3U3U3U3U3U3U3U3U3U4U4U3U3U3U3U3U3U3U3U3U3U3U3U3U3U4U4U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U3U5U3U3U3U5U3UsU7U3U3U3U3U3U3TpUtU3UuU3U3U3UuU3U3U3U3U3U3U4U4U3U3U3U3U3U3U3U3U3U3U3U3U3U3U4U4",
+"U5U5U5U5U5U5UvUvU5UwU7U8SmUxSTUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUrTVToU5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5UvUvU5U5U5U5U5U5U5U5U5U5U5U5U5U5UvUvU5U5U5U5U5U5U5U5U5U5U5U5U5U5UvUvU5U5U5U5U5U5U5U5U5U5U5U5U5U5UvUvU5U5U5U5U5U5U5U5U5U5U5U5U5U5UvUvU5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U5U3U5U5U5UwUwUwU5USUSUwU5U5UwUwU5UtUtU5U5U5U5U5U5U5U5U5U5U5U5UvUvU5U5U5U5U5U5U5U5U5U5U5U5U5U5UvUv",
+"UTUTUTUTUTUTUTUTUTUUUVUWUXUYUZU&V V0V1V2V3V4V5V6V7V8V9VaVbVcVdVeVfVgUXVhViUUUTUTVjVjUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTVkVkVlVlU3U3UTUTVlVlVmVmUTUTVkVkUTUTVlVlUTUTUTUTUTUTVjVjUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUT",
+"UUUUUUUUUUUUUUUUUUVnVoUWUXVpVqVrVsV VtVuVvVwVxVxVyVzVAVBVCVDVEVFVGVHUXVhViVnUTUUVIVIUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVJVJUsUsU5U5UUUUUsUsVKVKUUUUVJVJUUUUUsUsUUUUUUUUUUUUVIVIUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU",
+"KCKCMGMGMGMGMGMGKCKCMHLaVLVMVNLdVOVPVQVRVSVTIjVUVVVWVXVYVZV&W W0LcLgLaL3W1KCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGW2W2MGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMGKCKCMGMG",
+"W3W4W5W5W4W5W3W6W6W7W8W9WaWbWcWdWeWfWgWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW&X X0X1X2X3X4X5X6X7X8X9XaXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXsXtXtXuXtXvXvXvXuXuXuXwXxXyXzXAXBXCXDXEXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX&Y Y0Y1Y2Y3Y4Y5Y6Y7Y8Y9YaYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYxYyYzYAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYRYSYTYTYUYUYV"};
+
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Src/ReRecording.cpp b/Source/Plugins/Plugin_nJoy_SDL/Src/ReRecording.cpp
new file mode 100644
index 0000000000..6a2bfeea1e
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/Src/ReRecording.cpp
@@ -0,0 +1,196 @@
+
+// Project description
+// -------------------
+// Name: nJoy
+// Description: A Dolphin Compatible Input Plugin
+//
+// Author: Falcon4ever (nJoy@falcon4ever.com)
+// Site: www.multigesture.net
+// Copyright (C) 2003 Dolphin Project.
+//
+
+//
+// Licensetype: GNU General Public License (GPL)
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+//
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+//
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+//
+
+
+
+
+// File description
+/* ---------
+
+Rerecording options
+
+////////////////////////*/
+
+
+
+// Include
+// ---------
+#include "nJoy.h"
+#include "FileUtil.h"
+#include "ChunkFile.h"
+
+// TODO :
+// This is pretty much useless now with the TAS features right ?
+
+#ifdef RERECORDING
+
+
+namespace Recording
+{
+
+
+
+// Definitions
+// -------------
+// Pre defined maxium storage limit
+#define RECORD_SIZE (1024 * 128)
+SPADStatus RecordBuffer[RECORD_SIZE];
+int count = 0;
+
+
+
+
+
+// Recording functions
+// -------------
+void RecordInput(const SPADStatus& _rPADStatus)
+{
+ if (count >= RECORD_SIZE) return;
+ RecordBuffer[count++] = _rPADStatus;
+
+ // Logging
+ //u8 TmpData[sizeof(SPADStatus)];
+ //memcpy(TmpData, &RecordBuffer[count - 1], sizeof(SPADStatus));
+ //Console::Print("RecordInput(%i): %s\n", count, ArrayToString(TmpData, sizeof(SPADStatus), 0, 30).c_str());
+
+ // Auto save every ten seconds
+ if (count % (60 * 10) == 0) Save();
+}
+
+const SPADStatus& Play()
+{
+ // Logging
+ //Console::Print("PlayRecord(%i)\n", count);
+ if (count >= RECORD_SIZE)
+ {
+ // Todo: Make the recording size unlimited?
+ //PanicAlert("The recording reached its end");
+ return(RecordBuffer[0]);
+ }
+ return(RecordBuffer[count++]);
+}
+
+void Load()
+{
+ FILE* pStream = fopen("pad-record.bin", "rb");
+
+ if (pStream != NULL)
+ {
+ fread(RecordBuffer, 1, RECORD_SIZE * sizeof(SPADStatus), pStream);
+ fclose(pStream);
+ }
+ else
+ {
+ PanicAlert("SimplePad: Could not open pad-record.bin");
+ }
+
+ //Console::Print("LoadRecord()");
+}
+
+void Save()
+{
+ // Open the file in a way that clears all old data
+ FILE* pStream = fopen("pad-record.bin", "wb");
+
+ if (pStream != NULL)
+ {
+ fwrite(RecordBuffer, 1, RECORD_SIZE * sizeof(SPADStatus), pStream);
+ fclose(pStream);
+ }
+ else
+ {
+ PanicAlert("NJoy: Could not save pad-record.bin");
+ }
+ //PanicAlert("SaveRecord()");
+ //Console::Print("SaveRecord()");
+}
+
+
+
+
+void Initialize()
+{
+ // -------------------------------------------
+ // Rerecording
+ // ----------------------
+ #ifdef RERECORDING
+ /* Check if we are starting the pad to record the input, and an old file exists. In that case ask
+ if we really want to start the recording and eventually overwrite the file */
+ if (g_Config.bRecording && File::Exists("pad-record.bin"))
+ {
+ if (!AskYesNo("An old version of '%s' aleady exists in your Dolphin directory. You can"
+ " now make a copy of it before you start a new recording and overwrite the file."
+ " Select Yes to continue and overwrite the file. Select No to turn off the input"
+ " recording and continue without recording anything.",
+ "pad-record.bin"))
+ {
+ // Turn off recording and continue
+ g_Config.bRecording = false;
+ }
+ }
+
+ // Load recorded input if we are to play it back, otherwise begin with a blank recording
+ if (g_Config.bPlayback) Recording::Load();
+ #endif
+ // ----------------------
+}
+
+
+void ShutDown()
+{
+ // Save recording
+ if (g_Config.bRecording) Recording::Save();
+ // Reset the counter
+ count = 0;
+}
+
+void DoState(unsigned char **ptr, int mode)
+{
+ // Load or save the counter
+ PointerWrap p(ptr, mode);
+ p.Do(count);
+
+ //Console::Print("count: %i\n", count);
+
+ // Update the frame counter for the sake of the status bar
+ if (mode == PointerWrap::MODE_READ)
+ {
+ #ifdef _WIN32
+ // This only works when rendering to the main window, I think
+ PostMessage(GetParent(g_PADInitialize->hWnd), WM_USER, INPUT_FRAME_COUNTER, count);
+ #endif
+ }
+}
+
+
+} // Recording
+
+
+#endif // RERECORDING
\ No newline at end of file
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Src/Rumble.cpp b/Source/Plugins/Plugin_nJoy_SDL/Src/Rumble.cpp
new file mode 100644
index 0000000000..cd0eb21efd
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/Src/Rumble.cpp
@@ -0,0 +1,380 @@
+
+// Project description
+// -------------------
+// Name: nJoy
+// Description: A Dolphin Compatible Input Plugin
+//
+// Author: Falcon4ever (nJoy@falcon4ever.com)
+// Site: www.multigesture.net
+// Copyright (C) 2003 Dolphin Project.
+//
+
+//
+// Licensetype: GNU General Public License (GPL)
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+//
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+//
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+//
+
+// Include
+// ---------
+#include "nJoy.h"
+
+
+#ifdef RUMBLE_HACK
+
+struct RUMBLE // GC Pad rumble DIDevice
+{
+ LPDIRECTINPUTDEVICE8 g_pDevice; // 4 pads objects
+ LPDIRECTINPUTEFFECT g_pEffect;
+ DWORD g_dwNumForceFeedbackAxis;
+ DIEFFECT eff;
+};
+
+#define SAFE_RELEASE(p) { if (p) { (p)->Release(); (p)=NULL; } }
+
+BOOL CALLBACK EnumFFDevicesCallback(const DIDEVICEINSTANCE* pInst, VOID* pContext);
+BOOL CALLBACK EnumAxesCallback(const DIDEVICEOBJECTINSTANCE* pdidoi, VOID* pContext);
+void SetDeviceForcesXY(int pad, int nXYForce);
+HRESULT InitRumble(HWND hWnd);
+
+LPDIRECTINPUT8 g_Rumble; // DInput Rumble object
+RUMBLE pRumble[4]; // 4 GC Rumble Pads
+
+//////////////////////
+// Use PAD rumble
+// ŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
+
+void Pad_Use_Rumble(u8 _numPAD)
+{
+ if (PadMapping[_numPAD].rumble)
+ {
+ if (!g_Rumble)
+ {
+ // GetForegroundWindow() always sends the good HWND
+ if (FAILED(InitRumble(GetForegroundWindow())))
+ PanicAlert("Could not initialize Rumble!");
+ } else
+ {
+ // Acquire gamepad
+ if (pRumble[_numPAD].g_pDevice != NULL)
+ pRumble[_numPAD].g_pDevice->Acquire();
+ }
+ }
+}
+
+////////////////////////////////////////////////////
+// Set PAD rumble. Explanation: Stop = 0, Rumble = 1
+// ŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
+
+void PAD_Rumble(u8 _numPAD, unsigned int _uType, unsigned int _uStrength)
+{
+ if (!PadMapping[_numPAD].enable)
+ return;
+
+ Pad_Use_Rumble(_numPAD);
+
+ int Strenght = 0;
+
+ if (PadMapping[_numPAD].rumble) // rumble activated
+ {
+ if (_uType == 1 && _uStrength > 2)
+ {
+ // it looks like _uStrength is equal to 3 everytime anyway...
+ Strenght = 1000 * (g_Config.RumbleStrength + 1);
+ Strenght = Strenght > 10000 ? 10000 : Strenght;
+ }
+ else
+ Strenght = 0;
+
+ SetDeviceForcesXY(_numPAD, Strenght);
+ }
+}
+
+// Rumble stuff :D!
+// ----------------
+//
+
+HRESULT InitRumble(HWND hWnd)
+{
+ DIPROPDWORD dipdw;
+ HRESULT hr;
+
+ // Register with the DirectInput subsystem and get a pointer to a IDirectInput interface we can use.
+ if (FAILED(hr = DirectInput8Create(GetModuleHandle(NULL), DIRECTINPUT_VERSION, IID_IDirectInput8, (VOID**)&g_Rumble, NULL)))
+ return hr;
+
+ // Look for a device we can use
+ if (FAILED(hr = g_Rumble->EnumDevices( DI8DEVCLASS_GAMECTRL, EnumFFDevicesCallback, NULL, DIEDFL_ATTACHEDONLY | DIEDFL_FORCEFEEDBACK)))
+ return hr;
+
+ for (int i=0; i<4; i++)
+ {
+ if (NULL == pRumble[i].g_pDevice)
+ PadMapping[i].rumble = false; // Disable Rumble for this pad only.
+ else
+ {
+ pRumble[i].g_pDevice->SetDataFormat(&c_dfDIJoystick);
+ pRumble[i].g_pDevice->SetCooperativeLevel(hWnd, DISCL_EXCLUSIVE | DISCL_BACKGROUND);
+ // Request exclusive acces for both background and foreground.
+
+ dipdw.diph.dwSize = sizeof(DIPROPDWORD);
+ dipdw.diph.dwHeaderSize = sizeof(DIPROPHEADER);
+ dipdw.diph.dwObj = 0;
+ dipdw.diph.dwHow = DIPH_DEVICE;
+ dipdw.dwData = FALSE;
+
+ // if Force Feedback doesn't seem to work...
+ if (FAILED(pRumble[i].g_pDevice->EnumObjects(EnumAxesCallback,
+ (void*)&pRumble[i].g_dwNumForceFeedbackAxis, DIDFT_AXIS))
+ || FAILED(pRumble[i].g_pDevice->SetProperty(DIPROP_AUTOCENTER, &dipdw.diph)))
+ {
+ PanicAlert("Device %d doesn't seem to work ! \nRumble for device %d is now Disabled !", i+1);
+
+ PadMapping[i].rumble = false; // Disable Rumble for this pad
+
+ continue; // Next pad
+ }
+
+ if (pRumble[i].g_dwNumForceFeedbackAxis > 2)
+ pRumble[i].g_dwNumForceFeedbackAxis = 2;
+
+ DWORD _rgdwAxes[2] = {DIJOFS_X, DIJOFS_Y};
+ long rglDirection[2] = {0, 0};
+ DICONSTANTFORCE cf = {0};
+
+ ZeroMemory(&pRumble[i].eff, sizeof(pRumble[i].eff));
+ pRumble[i].eff.dwSize = sizeof(DIEFFECT);
+ pRumble[i].eff.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS;
+ pRumble[i].eff.dwDuration = INFINITE; // fixed time may be safer (X * DI_SECONDS)
+ pRumble[i].eff.dwSamplePeriod = 0;
+ pRumble[i].eff.dwGain = DI_FFNOMINALMAX;
+ pRumble[i].eff.dwTriggerButton = DIEB_NOTRIGGER;
+ pRumble[i].eff.dwTriggerRepeatInterval = 0;
+ pRumble[i].eff.cAxes = pRumble[i].g_dwNumForceFeedbackAxis;
+ pRumble[i].eff.rgdwAxes = _rgdwAxes;
+ pRumble[i].eff.rglDirection = rglDirection;
+ pRumble[i].eff.lpEnvelope = 0;
+ pRumble[i].eff.cbTypeSpecificParams = sizeof( DICONSTANTFORCE );
+ pRumble[i].eff.lpvTypeSpecificParams = &cf;
+ pRumble[i].eff.dwStartDelay = 0;
+
+ // Create the prepared effect
+ if (FAILED(hr = pRumble[i].g_pDevice->CreateEffect(GUID_ConstantForce, &pRumble[i].eff, &pRumble[i].g_pEffect, NULL)))
+ continue;
+
+ if (pRumble[i].g_pEffect == NULL)
+ continue;
+ }
+ }
+
+ return S_OK;
+}
+
+void SetDeviceForcesXY(int npad, int nXYForce)
+{
+ // Security check
+ if (pRumble[npad].g_pDevice == NULL)
+ return;
+
+ // If nXYForce is null, there's no point to create the effect
+ // Just stop the force feedback
+ if (nXYForce == 0) {
+ pRumble[npad].g_pEffect->Stop();
+ return;
+ }
+
+ long rglDirection[2] = {0};
+ DICONSTANTFORCE cf;
+
+ // If only one force feedback axis, then apply only one direction and keep the direction at zero
+ if (pRumble[npad].g_dwNumForceFeedbackAxis == 1)
+ {
+ rglDirection[0] = 0;
+ cf.lMagnitude = nXYForce; // max should be 10000
+ }
+ // If two force feedback axis, then apply magnitude from both directions
+ else
+ {
+ rglDirection[0] = nXYForce;
+ rglDirection[1] = nXYForce;
+ cf.lMagnitude = 1.4142f*nXYForce;
+ }
+
+ ZeroMemory(&pRumble[npad].eff, sizeof(pRumble[npad].eff));
+ pRumble[npad].eff.dwSize = sizeof(DIEFFECT);
+ pRumble[npad].eff.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS;
+ pRumble[npad].eff.cAxes = pRumble[npad].g_dwNumForceFeedbackAxis;
+ pRumble[npad].eff.rglDirection = rglDirection;
+ pRumble[npad].eff.lpEnvelope = 0;
+ pRumble[npad].eff.cbTypeSpecificParams = sizeof(DICONSTANTFORCE);
+ pRumble[npad].eff.lpvTypeSpecificParams = &cf;
+ pRumble[npad].eff.dwStartDelay = 0;
+
+ // Now set the new parameters..
+ pRumble[npad].g_pEffect->SetParameters(&pRumble[npad].eff, DIEP_DIRECTION | DIEP_TYPESPECIFICPARAMS | DIEP_START);
+ // ..And start the effect immediately.
+ if (pRumble[npad].g_pEffect != NULL)
+ pRumble[npad].g_pEffect->Start(1, 0);
+}
+
+BOOL CALLBACK EnumFFDevicesCallback(const DIDEVICEINSTANCE* pInst, VOID* pContext)
+{
+ LPDIRECTINPUTDEVICE8 pDevice;
+ DIPROPDWORD dipdw;
+ HRESULT hr;
+
+ int JoystickID;
+
+ dipdw.diph.dwSize = sizeof(DIPROPDWORD);
+ dipdw.diph.dwHeaderSize = sizeof(DIPROPHEADER);
+ dipdw.diph.dwObj = 0;
+ dipdw.diph.dwHow = DIPH_DEVICE;
+
+ g_Rumble->CreateDevice(pInst->guidInstance, &pDevice, NULL); // Create a DInput pad device
+
+ if (SUCCEEDED(hr = pDevice->GetProperty(DIPROP_JOYSTICKID, &dipdw.diph))) // Get DInput Device ID
+ JoystickID = dipdw.dwData;
+ else
+ return DIENUM_CONTINUE;
+
+ //PanicAlert("DInput ID : %d \nSDL ID (1-4) : %d / %d / %d / %d\n", JoystickID, PadMapping[0].ID, PadMapping[1].ID, PadMapping[2].ID, PadMapping[3].ID);
+
+ for (int i=0; i<4; i++)
+ {
+ if (PadMapping[i].ID == JoystickID) // if SDL ID = DInput ID -> we're dealing with the same device
+ {
+ // a DInput device is created even if rumble is disabled on startup
+ // this way, you can toggle the rumble setting while in game
+ //if (PadMapping[i].enabled) // && PadMapping[i].rumble
+ pRumble[i].g_pDevice = pDevice; // everything looks good, save the DInput device
+ }
+ }
+
+ return DIENUM_CONTINUE;
+}
+
+BOOL CALLBACK EnumAxesCallback(const DIDEVICEOBJECTINSTANCE* pdidoi, VOID* pContext)
+{
+ DWORD* pdwNumForceFeedbackAxis = (DWORD*)pContext; // Enum Rumble Axis
+ if ((pdidoi->dwFlags & DIDOI_FFACTUATOR) != 0)
+ (*pdwNumForceFeedbackAxis)++;
+
+ return DIENUM_CONTINUE;
+}
+
+void PAD_RumbleClose()
+{
+ // It may look weird, but we don't free anything here, it was the cause of crashes
+ // on stop, and the DLL isn't unloaded anyway, so the pointers stay
+ // We just stop the rumble in case it's still playing an effect.
+ for (int i=0; i<4; i++)
+ {
+ if (pRumble[i].g_pDevice && pRumble[i].g_pEffect)
+ pRumble[i].g_pEffect->Stop();
+ }
+}
+
+#else // Multiplatform SDL Rumble code
+
+#ifdef SDL_RUMBLE
+
+struct RUMBLE // GC Pad rumble DIDevice
+{
+ SDL_Haptic* g_pDevice;
+ SDL_HapticEffect g_pEffect;
+ int effect_id;
+};
+
+RUMBLE pRumble[4] = {0}; // 4 GC Rumble Pads
+#endif
+
+
+// Use PAD rumble
+// --------------
+bool PAD_Init_Rumble(u8 _numPAD, SDL_Joystick *SDL_Device)
+{
+#ifdef SDL_RUMBLE
+ if (SDL_Device == NULL)
+ return false;
+
+ pRumble[_numPAD].g_pDevice = SDL_HapticOpenFromJoystick(SDL_Device);
+
+ if (pRumble[_numPAD].g_pDevice == NULL)
+ return false; // Most likely joystick isn't haptic
+
+ if (!(SDL_HapticQuery(pRumble[_numPAD].g_pDevice) & SDL_HAPTIC_CONSTANT))
+ {
+ SDL_HapticClose(pRumble[_numPAD].g_pDevice); // No effect
+ pRumble[_numPAD].g_pDevice = 0;
+ PadMapping[_numPAD].rumble = false;
+ return false;
+ }
+
+ // Set the strength of the rumble effect
+ int Strenght = 3276 * (g_Config.RumbleStrength + 1);
+ Strenght = Strenght > 32767 ? 32767 : Strenght;
+
+ // Create the effect
+ memset(&pRumble[_numPAD].g_pEffect, 0, sizeof(SDL_HapticEffect)); // 0 is safe default
+ pRumble[_numPAD].g_pEffect.type = SDL_HAPTIC_CONSTANT;
+ pRumble[_numPAD].g_pEffect.constant.direction.type = SDL_HAPTIC_POLAR; // Polar coordinates
+ pRumble[_numPAD].g_pEffect.constant.direction.dir[0] = 18000; // Force comes from south
+ pRumble[_numPAD].g_pEffect.constant.level = Strenght;
+ pRumble[_numPAD].g_pEffect.constant.length = 10000; // 10s long (should be INFINITE, but 10s is safer)
+ pRumble[_numPAD].g_pEffect.constant.attack_length = 0; // disable Fade in...
+ pRumble[_numPAD].g_pEffect.constant.fade_length = 0; // ...and out
+
+ // Upload the effect
+ pRumble[_numPAD].effect_id = SDL_HapticNewEffect( pRumble[_numPAD].g_pDevice, &pRumble[_numPAD].g_pEffect );
+#endif
+ return true;
+}
+
+
+// Set PAD rumble. Explanation: Stop = 0, Rumble = 1
+// --------------
+void PAD_Rumble(u8 _numPAD, unsigned int _uType, unsigned int _uStrength)
+{
+ int Strenght = 0;
+
+#ifdef SDL_RUMBLE
+ if (PadMapping[_numPAD].rumble) // rumble activated
+ {
+ if (!pRumble[_numPAD].g_pDevice)
+ return;
+
+ if (_uType == 1 && _uStrength > 2)
+ SDL_HapticRunEffect( pRumble[_numPAD].g_pDevice, pRumble[_numPAD].effect_id, 1 );
+ else
+ SDL_HapticStopAll(pRumble[_numPAD].g_pDevice);
+ }
+#endif
+}
+
+void PAD_RumbleClose()
+{
+#ifdef SDL_RUMBLE
+ for (int i=0; i<4; i++) // Free all pads
+ {
+ if (pRumble[i].g_pDevice) {
+ SDL_HapticClose( pRumble[i].g_pDevice );
+ pRumble[i].g_pDevice = NULL;
+ }
+ }
+#endif
+}
+
+#endif // RUMBLE_HACK
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Src/SConscript b/Source/Plugins/Plugin_nJoy_SDL/Src/SConscript
new file mode 100644
index 0000000000..a1d90f68c2
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/Src/SConscript
@@ -0,0 +1,31 @@
+# -*- python -*-
+
+Import('env')
+import sys
+
+name = "Plugin_nJoy_SDL"
+padenv = env.Clone()
+
+if not env['HAVE_SDL']:
+ print name + " must have SDL to be build"
+ Return()
+
+files = [
+ 'Config.cpp',
+ 'nJoy.cpp',
+ 'Rumble.cpp',
+ ]
+if padenv['HAVE_WX']:
+ files += [
+ 'GUI/AboutBox.cpp',
+ 'GUI/ConfigAdvanced.cpp',
+ 'GUI/ConfigJoypad.cpp',
+ 'GUI/ConfigBox.cpp',
+ ]
+
+padenv.Append(
+ CXXFLAGS = [ '-fPIC' ],
+ LIBS = [ 'common', 'inputcommon' ],
+ )
+
+padenv.SharedLibrary(env['plugin_dir']+name, files)
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Src/nJoy.cpp b/Source/Plugins/Plugin_nJoy_SDL/Src/nJoy.cpp
new file mode 100644
index 0000000000..c1aeebd8a3
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/Src/nJoy.cpp
@@ -0,0 +1,516 @@
+
+// Project description
+// -------------------
+// Name: nJoy
+// Description: A Dolphin Compatible Input Plugin
+//
+// Author: Falcon4ever (nJoy@falcon4ever.com)
+// Site: www.multigesture.net
+// Copyright (C) 2003 Dolphin Project.
+//
+
+//
+// Licensetype: GNU General Public License (GPL)
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+//
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+//
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+//
+
+// Include
+// ---------
+#include "nJoy.h"
+#include "LogManager.h"
+
+// Declare config window so that we can write debugging info to it from functions in this file
+#if defined(HAVE_WX) && HAVE_WX
+ PADConfigDialognJoy* m_ConfigFrame = NULL;
+#endif
+
+
+
+// Variables
+// ---------
+#define _EXCLUDE_MAIN_ // Avoid certain declarations in nJoy.h
+FILE *pFile;
+std::vector joyinfo;
+InputCommon::CONTROLLER_STATE PadState[4];
+InputCommon::CONTROLLER_MAPPING PadMapping[4];
+bool g_EmulatorRunning = false;
+bool g_SearchDeviceDone = false;
+int NumPads = 0, NumGoodPads = 0, LastPad = 0;
+#ifdef _WIN32
+ HWND m_hWnd = NULL, m_hConsole = NULL; // Handle to window
+#endif
+SPADInitialize *g_PADInitialize = NULL;
+PLUGIN_GLOBALS* globals = NULL;
+
+
+// Standard crap to make wxWidgets happy
+#ifdef _WIN32
+HINSTANCE g_hInstance;
+
+#if defined(HAVE_WX) && HAVE_WX
+class wxDLLApp : public wxApp
+{
+ bool OnInit()
+ {
+ return true;
+ }
+};
+IMPLEMENT_APP_NO_MAIN(wxDLLApp)
+ WXDLLIMPEXP_BASE void wxSetInstance(HINSTANCE hInst);
+#endif
+
+BOOL APIENTRY DllMain(HINSTANCE hinstDLL, // DLL module handle
+ DWORD dwReason, // reason called
+ LPVOID lpvReserved) // reserved
+{
+ switch (dwReason)
+ {
+ case DLL_PROCESS_ATTACH:
+ {
+#if defined(HAVE_WX) && HAVE_WX
+ wxSetInstance((HINSTANCE)hinstDLL);
+ int argc = 0;
+ char **argv = NULL;
+ wxEntryStart(argc, argv);
+ if (!wxTheApp || !wxTheApp->CallOnInit())
+ return FALSE;
+#endif
+ }
+ break;
+
+ case DLL_PROCESS_DETACH:
+#if defined(HAVE_WX) && HAVE_WX
+ wxEntryCleanup();
+#endif
+ break;
+ default:
+ break;
+ }
+
+ g_hInstance = hinstDLL;
+ return TRUE;
+}
+#endif
+
+#if defined(HAVE_WX) && HAVE_WX
+wxWindow* GetParentedWxWindow(HWND Parent)
+{
+#ifdef _WIN32
+ wxSetInstance((HINSTANCE)g_hInstance);
+#endif
+ wxWindow *win = new wxWindow();
+#ifdef _WIN32
+ win->SetHWND((WXHWND)Parent);
+ win->AdoptAttributesFromHWND();
+#endif
+ return win;
+}
+#endif
+
+
+
+// Input Plugin Functions (from spec's)
+// ------------------------------------
+
+// Get properties of plugin
+// ------------------------
+void GetDllInfo(PLUGIN_INFO* _PluginInfo)
+{
+ _PluginInfo->Version = 0x0100;
+ _PluginInfo->Type = PLUGIN_TYPE_PAD;
+
+#ifdef DEBUGFAST
+ sprintf(_PluginInfo->Name, "nJoy (DebugFast) by Falcon4ever");
+#else
+#ifndef _DEBUG
+ sprintf(_PluginInfo->Name, "nJoy by Falcon4ever");
+#else
+ sprintf(_PluginInfo->Name, "nJoy (Debug) by Falcon4ever");
+#endif
+#endif
+}
+
+void SetDllGlobals(PLUGIN_GLOBALS* _pPluginGlobals)
+{
+ globals = _pPluginGlobals;
+ LogManager::SetInstance((LogManager *)globals->logManager);
+}
+
+
+// Call config dialog
+// ------------------
+void DllConfig(HWND _hParent)
+{
+ if (!g_SearchDeviceDone)
+ {
+ g_Config.Load(); // load settings
+ // Init Joystick + Haptic (force feedback) subsystem on SDL 1.3
+ // Populate joyinfo for all attached devices
+ Search_Devices(joyinfo, NumPads, NumGoodPads);
+ g_SearchDeviceDone = true;
+ }
+
+#if defined(HAVE_WX) && HAVE_WX
+ if (!m_ConfigFrame)
+ m_ConfigFrame = new PADConfigDialognJoy(GetParentedWxWindow(_hParent));
+ else if (!m_ConfigFrame->GetParent()->IsShown())
+ m_ConfigFrame->Close(true);
+
+ // Only allow one open at a time
+ if (!m_ConfigFrame->IsShown())
+ m_ConfigFrame->ShowModal();
+ else
+ m_ConfigFrame->Hide();
+#endif
+}
+
+void DllDebugger(HWND _hParent, bool Show) {}
+
+
+// Init PAD (start emulation)
+// --------------------------
+void Initialize(void *init)
+{
+ INFO_LOG(PAD, "Initialize: %i", SDL_WasInit(0));
+ g_PADInitialize = (SPADInitialize*)init;
+ g_EmulatorRunning = true;
+
+#ifdef _WIN32
+ m_hWnd = (HWND)g_PADInitialize->hWnd;
+#endif
+
+#ifdef _DEBUG
+ DEBUG_INIT();
+#endif
+
+ if (!g_SearchDeviceDone)
+ {
+ g_Config.Load(); // load settings
+ // Populate joyinfo for all attached devices
+ Search_Devices(joyinfo, NumPads, NumGoodPads);
+ g_SearchDeviceDone = true;
+ }
+}
+
+void Close_Devices()
+{
+ PAD_RumbleClose();
+ /* Close all devices carefully. We must check that we are not accessing any undefined
+ vector elements or any bad devices */
+ if (SDL_WasInit(0))
+ {
+ for (int i = 0; i < NumPads; i++)
+ {
+ if (joyinfo.at(i).joy)
+ {
+ if(SDL_JoystickOpened(i))
+ {
+ INFO_LOG(WIIMOTE, "Shut down Joypad: %i", i);
+ SDL_JoystickClose(joyinfo.at(i).joy);
+ }
+ }
+ }
+ }
+
+ for (int i = 0; i < 4; i++)
+ PadState[i].joy = NULL;
+
+ // Clear the physical device info
+ joyinfo.clear();
+ NumPads = 0;
+ NumGoodPads = 0;
+}
+
+// Shutdown PAD (stop emulation)
+// -----------------------------
+/* Information: This function can not be run twice without an Initialize in between. If
+ it's run twice the SDL_...() functions below will cause a crash.
+ Called from: The Dolphin Core, PADConfigDialognJoy::OnClose() */
+void Shutdown()
+{
+ INFO_LOG(PAD, "Shutdown: %i", SDL_WasInit(0));
+
+ // Always change this variable
+ g_EmulatorRunning = false;
+
+ // Stop debugging
+ #ifdef _DEBUG
+ DEBUG_QUIT();
+ #endif
+
+ Close_Devices();
+
+ // Finally close SDL
+ if (SDL_WasInit(0))
+ SDL_Quit();
+
+ // Remove the pointer to the initialize data
+ g_PADInitialize = NULL;
+ g_SearchDeviceDone = false;
+}
+
+
+// Set buttons status from keyboard input. Currently this is done from wxWidgets in the main application.
+// --------------
+void PAD_Input(u16 _Key, u8 _UpDown)
+{
+ // Check that Dolphin is in focus, otherwise don't update the pad status
+ if (!IsFocus()) return;
+
+ // Check if the keys are interesting, and then update it
+ for(int i = 0; i < 4; i++)
+ {
+ if (!PadMapping[i].enable)
+ continue;
+
+ for(int j = InputCommon::CTL_L_SHOULDER; j <= InputCommon::CTL_START; j++)
+ {
+ if (PadMapping[i].buttons[j] == _Key)
+ { PadState[i].buttons[j] = _UpDown; break; }
+ }
+
+ for(int j = InputCommon::CTL_D_PAD_UP; j <= InputCommon::CTL_D_PAD_RIGHT; j++)
+ {
+ if (PadMapping[i].dpad2[j] == _Key)
+ { PadState[i].dpad2[j] = _UpDown; break; }
+ }
+ }
+}
+
+
+// Save state
+// --------------
+void DoState(unsigned char **ptr, int mode)
+{
+#ifdef RERECORDING
+ Recording::DoState(ptr, mode);
+#endif
+}
+
+void EmuStateChange(PLUGIN_EMUSTATE newState)
+{
+}
+
+// Set PAD status
+// --------------
+// Called from: SI_DeviceGCController.cpp
+// Function: Gives the current pad status to the Core
+void PAD_GetStatus(u8 _numPAD, SPADStatus* _pPADStatus)
+{
+ // Check if the pad is avaliable, currently we don't disable pads just because they are
+ // disconnected
+ if (!PadState[_numPAD].joy)
+ return;
+
+ // Clear pad status
+ memset(_pPADStatus, 0, sizeof(SPADStatus));
+
+ // Check that Dolphin is in focus, otherwise don't update the pad status
+ if (g_Config.bCheckFocus || IsFocus())
+ GetJoyState(PadState[_numPAD], PadMapping[_numPAD], _numPAD, joyinfo[PadMapping[_numPAD].ID].NumButtons);
+
+ // Get type
+ int TriggerType = PadMapping[_numPAD].triggertype;
+ int TriggerValue = PadState[_numPAD].halfpress ? 100 : 255;
+
+
+ // The analog controls
+ // -----------
+
+ // Read axis values
+ int i_main_stick_x = PadState[_numPAD].axis[InputCommon::CTL_MAIN_X];
+ int i_main_stick_y = -PadState[_numPAD].axis[InputCommon::CTL_MAIN_Y];
+ int i_sub_stick_x = PadState[_numPAD].axis[InputCommon::CTL_SUB_X];
+ int i_sub_stick_y = -PadState[_numPAD].axis[InputCommon::CTL_SUB_Y];
+ int TriggerLeft = PadState[_numPAD].axis[InputCommon::CTL_L_SHOULDER];
+ int TriggerRight = PadState[_numPAD].axis[InputCommon::CTL_R_SHOULDER];
+
+ // Check if we should make adjustments
+ if (PadMapping[_numPAD].bSquareToCircle) InputCommon::Square2Circle(i_main_stick_x, i_main_stick_y, _numPAD, PadMapping[_numPAD].SDiagonal);
+ // Radius adjustment
+ if (PadMapping[_numPAD].bRadiusOnOff) InputCommon::RadiusAdjustment(i_main_stick_x, i_main_stick_y, _numPAD, PadMapping[_numPAD].SRadius);
+ // C-stick
+ if (PadMapping[_numPAD].bSquareToCircleC) InputCommon::Square2Circle(i_sub_stick_x, i_sub_stick_y, _numPAD, PadMapping[_numPAD].SDiagonalC);
+ if (PadMapping[_numPAD].bRadiusOnOffC) InputCommon::RadiusAdjustment(i_sub_stick_x, i_sub_stick_y, _numPAD, PadMapping[_numPAD].SRadiusC);
+
+ // Convert axis values
+ u8 main_stick_x = InputCommon::Pad_Convert(i_main_stick_x);
+ u8 main_stick_y = InputCommon::Pad_Convert(i_main_stick_y);
+ u8 sub_stick_x = InputCommon::Pad_Convert(i_sub_stick_x);
+ u8 sub_stick_y = InputCommon::Pad_Convert(i_sub_stick_y);
+
+ // Convert the triggers values, if we are using analog triggers at all
+ if (PadMapping[_numPAD].triggertype == InputCommon::CTL_TRIGGER_SDL)
+ {
+ if (PadMapping[_numPAD].buttons[InputCommon::CTL_L_SHOULDER] >= 1000) TriggerLeft = InputCommon::Pad_Convert(TriggerLeft);
+ if (PadMapping[_numPAD].buttons[InputCommon::CTL_R_SHOULDER] >= 1000) TriggerRight = InputCommon::Pad_Convert(TriggerRight);
+ }
+
+ // Set Deadzone
+ float deadzone = (128.00 * (float)(PadMapping[_numPAD].deadzone + 1.00)) / 100.00;
+ float distance_main = (float)sqrt((float)(main_stick_x * main_stick_x) + (float)(main_stick_y * main_stick_y));
+ float distance_sub = (float)sqrt((float)(sub_stick_x * sub_stick_x) + (float)(sub_stick_y * sub_stick_y));
+
+ // Send values to Dolpin if they are outside the deadzone
+ if (distance_main > deadzone)
+ {
+ _pPADStatus->stickX = main_stick_x;
+ _pPADStatus->stickY = main_stick_y;
+ }
+ if (distance_sub > deadzone)
+ {
+ _pPADStatus->substickX = sub_stick_x;
+ _pPADStatus->substickY = sub_stick_y;
+ }
+
+
+ // The L and R triggers
+ // -----------
+
+ // Neutral value, no button pressed
+ _pPADStatus->button |= PAD_USE_ORIGIN;
+
+ // Check if the digital L button is pressed
+ if (PadState[_numPAD].buttons[InputCommon::CTL_L_SHOULDER])
+ {
+ if (!PadState[_numPAD].halfpress)
+ _pPADStatus->button |= PAD_TRIGGER_L;
+ _pPADStatus->triggerLeft = TriggerValue;
+ }
+ // no the digital L button is not pressed, but the analog left trigger is
+ else if (TriggerLeft > 0)
+ _pPADStatus->triggerLeft = TriggerLeft;
+
+ // Check if the digital R button is pressed
+ if (PadState[_numPAD].buttons[InputCommon::CTL_R_SHOULDER])
+ {
+ if (!PadState[_numPAD].halfpress)
+ _pPADStatus->button |= PAD_TRIGGER_R;
+ _pPADStatus->triggerRight = TriggerValue;
+ }
+ // no the digital R button is not pressed, but the analog right trigger is
+ else if (TriggerRight > 0)
+ _pPADStatus->triggerRight = TriggerRight;
+
+ // Update the buttons in analog mode too
+ if (TriggerLeft > 0xf0) _pPADStatus->button |= PAD_TRIGGER_L;
+ if (TriggerRight > 0xf0) _pPADStatus->button |= PAD_TRIGGER_R;
+
+
+
+ // The digital buttons
+ // -----------
+ if (PadState[_numPAD].buttons[InputCommon::CTL_A_BUTTON])
+ {
+ _pPADStatus->button |= PAD_BUTTON_A;
+ _pPADStatus->analogA = 255; // Perhaps support pressure?
+ }
+ if (PadState[_numPAD].buttons[InputCommon::CTL_B_BUTTON])
+ {
+ _pPADStatus->button |= PAD_BUTTON_B;
+ _pPADStatus->analogB = 255; // Perhaps support pressure?
+ }
+ if (PadState[_numPAD].buttons[InputCommon::CTL_X_BUTTON]) _pPADStatus->button|=PAD_BUTTON_X;
+ if (PadState[_numPAD].buttons[InputCommon::CTL_Y_BUTTON]) _pPADStatus->button|=PAD_BUTTON_Y;
+ if (PadState[_numPAD].buttons[InputCommon::CTL_Z_TRIGGER]) _pPADStatus->button|=PAD_TRIGGER_Z;
+ if (PadState[_numPAD].buttons[InputCommon::CTL_START]) _pPADStatus->button|=PAD_BUTTON_START;
+
+
+
+ // The D-pad
+ // -----------
+ if (PadMapping[_numPAD].controllertype == InputCommon::CTL_DPAD_HAT)
+ {
+ if (PadState[_numPAD].dpad == SDL_HAT_LEFTUP || PadState[_numPAD].dpad == SDL_HAT_UP || PadState[_numPAD].dpad == SDL_HAT_RIGHTUP ) _pPADStatus->button|=PAD_BUTTON_UP;
+ if (PadState[_numPAD].dpad == SDL_HAT_LEFTUP || PadState[_numPAD].dpad == SDL_HAT_LEFT || PadState[_numPAD].dpad == SDL_HAT_LEFTDOWN ) _pPADStatus->button|=PAD_BUTTON_LEFT;
+ if (PadState[_numPAD].dpad == SDL_HAT_LEFTDOWN || PadState[_numPAD].dpad == SDL_HAT_DOWN || PadState[_numPAD].dpad == SDL_HAT_RIGHTDOWN ) _pPADStatus->button|=PAD_BUTTON_DOWN;
+ if (PadState[_numPAD].dpad == SDL_HAT_RIGHTUP || PadState[_numPAD].dpad == SDL_HAT_RIGHT || PadState[_numPAD].dpad == SDL_HAT_RIGHTDOWN ) _pPADStatus->button|=PAD_BUTTON_RIGHT;
+ }
+ else
+ {
+ if (PadState[_numPAD].dpad2[InputCommon::CTL_D_PAD_UP])
+ _pPADStatus->button |= PAD_BUTTON_UP;
+ if (PadState[_numPAD].dpad2[InputCommon::CTL_D_PAD_DOWN])
+ _pPADStatus->button |= PAD_BUTTON_DOWN;
+ if (PadState[_numPAD].dpad2[InputCommon::CTL_D_PAD_LEFT])
+ _pPADStatus->button |= PAD_BUTTON_LEFT;
+ if (PadState[_numPAD].dpad2[InputCommon::CTL_D_PAD_RIGHT])
+ _pPADStatus->button |= PAD_BUTTON_RIGHT;
+ }
+
+ // Update error code
+ _pPADStatus->err = PAD_ERR_NONE;
+}
+
+
+///////////////////////////////////////////////// Spec functions
+
+
+//******************************************************************************
+// Supporting functions
+//******************************************************************************
+
+
+
+// Search for SDL devices
+// ----------------
+bool Search_Devices(std::vector &_joyinfo, int &_NumPads, int &_NumGoodPads)
+{
+ // Close opened devices first
+ Close_Devices();
+
+ bool Success = InputCommon::SearchDevices(_joyinfo, _NumPads, _NumGoodPads);
+
+ // Warn the user if no gamepads are detected
+ if (_NumGoodPads == 0 && g_EmulatorRunning)
+ {
+ PanicAlert("nJoy: No Gamepad Detected");
+ return false;
+ }
+
+ // Update the PadState[].joy handle
+ for (int i = 0; i < 4; i++)
+ {
+ if (_NumPads > (u32)PadMapping[i].ID)
+ if(joyinfo.at(PadMapping[i].ID).Good)
+ PadState[i].joy = joyinfo.at(PadMapping[i].ID).joy;
+ }
+
+ return Success;
+}
+
+
+// Check if Dolphin is in focus
+// ----------------
+bool IsFocus()
+{
+return true;
+
+#ifdef _WIN32
+ HWND RenderingWindow = NULL; if (g_PADInitialize) RenderingWindow = g_PADInitialize->hWnd;
+ HWND Parent = GetParent(RenderingWindow);
+ HWND TopLevel = GetParent(Parent);
+ HWND Config = NULL; if (m_ConfigFrame) Config = (HWND)m_ConfigFrame->GetHWND();
+ // Support both rendering to main window and not, and the config and eventual console window
+ if (GetForegroundWindow() == TopLevel || GetForegroundWindow() == RenderingWindow || GetForegroundWindow() == Config || GetForegroundWindow() == m_hConsole)
+ return true;
+ else
+ return false;
+#else
+ return true;
+#endif
+}
diff --git a/Source/Plugins/Plugin_nJoy_SDL/Src/nJoy.h b/Source/Plugins/Plugin_nJoy_SDL/Src/nJoy.h
new file mode 100644
index 0000000000..4cdfad6ee5
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/Src/nJoy.h
@@ -0,0 +1,111 @@
+
+// Project description
+// -------------------
+// Name: nJoy
+// Description: A Dolphin Compatible Input Plugin
+//
+// Author: Falcon4ever (nJoy@falcon4ever.com)
+// Site: www.multigesture.net
+// Copyright (C) 2003 Dolphin Project.
+//
+
+//
+// Licensetype: GNU General Public License (GPL)
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, version 2.0.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+//
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+//
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+//
+
+
+
+#ifndef __NJOY_h__
+#define __NJOY_h__
+
+
+// Includes
+// ----------
+#include // System
+#include
+#include
+#include
+
+#include "../../../Core/InputCommon/Src/SDL.h" // Core
+#include "../../../Core/InputCommon/Src/XInput.h"
+
+#include "Common.h" // Common
+#include "Setup.h"
+#include "pluginspecs_pad.h"
+#include "IniFile.h"
+
+#include "Config.h" // Local
+
+#if defined(HAVE_WX) && HAVE_WX
+ #include "GUI/AboutBox.h"
+ #include "GUI/ConfigBox.h"
+#endif
+
+// Define
+// ----------
+
+// SDL Haptic fails on windows, it just doesn't work (even the sample doesn't work)
+// So until i can make it work, this is all disabled >:(
+#if SDL_VERSION_ATLEAST(1, 3, 0) && !defined(_WIN32)
+ #define SDL_RUMBLE
+#else
+ #ifdef _WIN32
+ #define RUMBLE_HACK
+ #define DIRECTINPUT_VERSION 0x0800
+ #define WIN32_LEAN_AND_MEAN
+
+ #pragma comment(lib, "dxguid.lib")
+ #pragma comment(lib, "dinput8.lib")
+ #pragma comment(lib, "winmm.lib")
+ #include
+ #endif
+#endif
+
+#define INPUT_STATE wxT("PUBLIC RELEASE")
+#define RELDAY wxT("21")
+#define RELMONTH wxT("07")
+#define RELYEAR wxT("2008")
+#define THANKYOU wxT("`plot`, Absolute0, Aprentice, Bositman, Brice, ChaosCode, CKemu, CoDeX, Dave2001, dn, drk||Raziel, Florin, Gent, Gigaherz, Hacktarux, JegHegy, Linker, Linuzappz, Martin64, Muad, Knuckles, Raziel, Refraction, Rudy_x, Shadowprince, Snake785, Saqib, vEX, yaz0r, Zilmar, Zenogais and ZeZu.")
+#define PLUGIN_VER_STR wxT("Based on nJoy 0.3 by Falcon4ever\nRelease: ") RELDAY wxT("/") RELMONTH wxT("/") RELYEAR wxT("\nwww.multigesture.net")
+
+
+// Variables
+// ---------
+#ifndef _EXCLUDE_MAIN_
+ extern SPADInitialize *g_PADInitialize;
+ extern FILE *pFile;
+ extern std::vector joyinfo;
+ extern InputCommon::CONTROLLER_STATE PadState[4];
+ extern InputCommon::CONTROLLER_MAPPING PadMapping[4];
+ #ifdef _WIN32
+ extern HWND m_hWnd, m_hConsole; // Handle to window
+ #endif
+ extern int NumPads, NumGoodPads, LastPad; // Number of goods pads
+#endif
+
+
+// Custom Functions
+// ----------------
+void Close_Devices();
+bool Search_Devices(std::vector &_joyinfo, int &_NumPads, int &_NumGoodPads);
+void DEBUG_INIT();
+void DEBUG_QUIT();
+bool IsFocus();
+bool ReloadDLL();
+void PAD_RumbleClose();
+#endif // __NJOY_h__
diff --git a/Source/Plugins/Plugin_nJoy_SDL/readme.txt b/Source/Plugins/Plugin_nJoy_SDL/readme.txt
new file mode 100644
index 0000000000..3b983a1200
--- /dev/null
+++ b/Source/Plugins/Plugin_nJoy_SDL/readme.txt
@@ -0,0 +1,115 @@
+nJoy v0.3 by Falcon4ever 2008
+A Dolphin Compatible Input Plugin
+Copyright (C) 2003 Dolphin Project.
+
+Changelog
+==========================================================================
+
+0.3: 3nd version of nJoy
+ - Release: July 2008
+ - Support for four players
+ - Misc. improvements
+
+0.2: 2nd version of nJoy
+ - Release: 14th July 2005
+ - Now using SDL instead of DirectInput9
+ - Config/INI support
+ - Adjustable deadzone
+ - First public release
+
+0.1: First version of nJoy
+ - Private Release: january 2005
+ - Using DirectInput9
+ - Specially made for the Logitech Rumblepad 2, but other joypads work too
+ - Advanced debug window, activated during gameplay
+ - No deadzone configurable
+ - No config/Ini
+
+The Author
+==========================================================================
+* Falcon4ever (nJoy@falcon4ever.com)
+
+System and Software Requirements
+==========================================================================
+Dolphin
+ The latest Dolphin release, avaible at www.dolphin-emu.com
+
+SDL.dll (SDL-1.2.13)
+ (included with this release)
+ latest version avaible at www.libsdl.org
+
+A Joystick
+ A Windows 9x compatible input device
+
+
+Plugin Information
+==========================================================================
+nJoy was written in C++, compiled with Microsoft Visual Studio 2005 Professional Edition.
+nJoy uses SDL for joysticks, mouse and keyboard.
+For the graphical interface plain Win32 code was used.
+
+How to install
+==========================================================================
+Just unzip the content of the zipfile to your dolphin plugin dir and place
+sdl.dll in the root dir.
+
+example config:
+[C:]
+ |
+ +-Dolphin Dir
+ +-DolphinWx.exe File
+ +-SDL.dll File
+ |
+ +-Plugins Dir
+ +-nJoy.dll File
+
+
+FAQ
+==========================================================================
+
+What's SDL???
+ SDL is the Simple DirectMedia Layer written by Sam Lantinga.
+ It provides an API for audio, video, input ...
+ For more information go to http://www.libsdl.org/
+
+Where can I download the latest releases???
+ nJoy will be released @ www.multigesture.net
+
+Can I mirror this file???
+ Sure, just don't forget to add a link to:
+ www.multigesture.net OR www.dolphin-emu.com
+ -------------------- -------------------
+Why should I use nJoy instead of the default input plugin???
+ At this moment the default plugin only supports keyboard input.
+ nJoy supports Joysticks. And besides that, if you have an GC-adapter
+ you can use your original GC controllers with dolphin !
+
+Could you add [insert feature here] please???
+ no.
+
+But perhaps...
+ NO!
+
+Hmm... There is coming smoke out of my pc, wtf?
+ err, this plugin comes without any warranty,
+ use it at own risk :)
+
+What should I do if my question isn't listed here???
+ Just panic, call 911 or leave a message on:
+ (1) Emutalk http://www.emutalk.net/forumdisplay.php?f=100
+ (2) NGemu http://forums.ngemu.com/dolphin-discussion/
+
+Thanks / Greetings
+==========================================================================
+
+Special Thanks too:
+F|RES & ector
+
+Greetings too:
+`plot`, Absolute0, Aprentice, Bositman, Brice, ChaosCode, CKemu,
+CoDeX, Dave2001, dn, drk||Raziel, Florin, Gent, Gigaherz, Hacktarux,
+icepir8, JegHegy, Linker, Linuzappz, Martin64, Muad, Knuckles, Raziel,
+Refraction, Rudy_x, Shadowprince, Snake785, Saqib, vEX, yaz0r,
+Zilmar, Zenogais and ZeZu.
+
+AAaannd everyone else I forgot ;)...