diff --git a/Editor/Editor.cpp b/Editor/Editor.cpp
index b6bfad545..480510871 100644
--- a/Editor/Editor.cpp
+++ b/Editor/Editor.cpp
@@ -6,6 +6,13 @@
#include "Translator.h"
#include "DummyVisualizer.h"
+// some application parameters can be overwritten in the executable by finding the 256 byte long pattern in the first member:
+extern ApplicationExeCustomization exe_customization = {
+ "Wicked Editor ",
+ wi::Color(130, 210, 220, 255),
+ wi::Color::Black()
+};
+
using namespace wi::graphics;
using namespace wi::primitive;
using namespace wi::scene;
@@ -310,6 +317,12 @@ void Editor::Initialize()
filetypes[x] = FileType::IMAGE;
}
+ wi::backlog::setFontColor(exe_customization.backlog_color);
+ XMFLOAT4 clearcol = exe_customization.background_color;
+ swapChain.desc.clear_color[0] = clearcol.x;
+ swapChain.desc.clear_color[1] = clearcol.y;
+ swapChain.desc.clear_color[2] = clearcol.z;
+
Application::Initialize();
infoDisplay.active = true;
@@ -322,21 +335,22 @@ void Editor::Initialize()
//infoDisplay.heap_allocation_counter = true;
//infoDisplay.vram_usage = true;
- wi::backlog::setFontColor(wi::Color(130, 210, 220, 255));
-
wi::renderer::SetOcclusionCullingEnabled(true);
- renderComponent.main = this;
- uint32_t msaa = 4;
- if (config.Has("gui_antialiasing"))
+ if (!IsScriptReplacement()) // we only activate editor functionality if this exe does not have a script replacement
{
- msaa = std::max(1u, (uint32_t)config.GetInt("gui_antialiasing"));
- }
- renderComponent.setMSAASampleCount(msaa);
- renderComponent.Load();
- ActivatePath(&renderComponent, 0.5f, wi::Color::Black(), wi::FadeManager::FadeType::CrossFade);
+ renderComponent.main = this;
+ uint32_t msaa = 4;
+ if (config.Has("gui_antialiasing"))
+ {
+ msaa = std::max(1u, (uint32_t)config.GetInt("gui_antialiasing"));
+ }
+ renderComponent.setMSAASampleCount(msaa);
+ renderComponent.Load();
+ ActivatePath(&renderComponent, 0.5f, wi::Color::Black(), wi::FadeManager::FadeType::CrossFade);
- wi::lua::EnableEditorFunctionality(this, &renderComponent);
+ wi::lua::EnableEditorFunctionality(this, &renderComponent);
+ }
}
void Editor::HotReload()
{
@@ -415,6 +429,9 @@ void EditorComponent::ResizeLayout()
contentBrowserWnd.SetSize(XMFLOAT2(screenW / 1.6f, screenH / 1.2f));
contentBrowserWnd.SetPos(XMFLOAT2(screenW / 2.0f - contentBrowserWnd.scale.x / 2.0f, screenH / 2.0f - contentBrowserWnd.scale.y / 2.0f));
+ projectCreatorWnd.SetSize(XMFLOAT2(projectCreatorWnd.backgroundColorPicker.GetSize().x * 2 + 4 * 3, 780));
+ projectCreatorWnd.SetPos(XMFLOAT2(screenW / 2.0f - projectCreatorWnd.scale.x / 2.0f, screenH / 2.0f - projectCreatorWnd.scale.y / 2.0f));
+
}
void EditorComponent::Load()
{
@@ -960,6 +977,17 @@ void EditorComponent::Load()
topmenuWnd.AddWidget(&stopButton);
+ projectCreatorButton.Create(ICON_PROJECT_CREATE);
+ projectCreatorButton.SetLocalizationEnabled(wi::gui::LocalizationEnabled::Tooltip);
+ projectCreatorButton.font.params.shadowColor = wi::Color::Transparent();
+ projectCreatorButton.SetShadowRadius(2);
+ projectCreatorButton.SetTooltip("Create a new project.");
+ projectCreatorButton.OnClick([&](wi::gui::EventArgs args) {
+ projectCreatorWnd.SetVisible(!projectCreatorWnd.IsVisible());
+ });
+ topmenuWnd.AddWidget(&projectCreatorButton);
+
+
saveButton.Create("Save");
saveButton.SetLocalizationEnabled(wi::gui::LocalizationEnabled::Tooltip);
@@ -1274,6 +1302,9 @@ void EditorComponent::Load()
contentBrowserWnd.Create(this);
GetGUI().AddWidget(&contentBrowserWnd);
+ projectCreatorWnd.Create(this);
+ GetGUI().AddWidget(&projectCreatorWnd);
+
std::string theme = main->config.GetSection("options").GetText("theme");
if(theme.empty())
{
@@ -5195,14 +5226,11 @@ void EditorComponent::SaveAs()
});
}
-Texture EditorComponent::CreateThumbnailScreenshot() const
+Texture EditorComponent::CreateThumbnail(Texture texture, uint32_t target_width, uint32_t target_height, bool mipmaps) const
{
GraphicsDevice* device = GetDevice();
CommandList cmd = device->BeginCommandList();
- static const uint32_t target_width = 256;
- static const uint32_t target_height = 128;
-
- Texture thumbnail = *renderPath->GetLastPostprocessRT();
+ Texture thumbnail = texture;
// Overestimate actual size with aspect (note that downscale factor will be 4x later):
uint32_t current_width = target_width;
@@ -5218,6 +5246,7 @@ Texture EditorComponent::CreateThumbnailScreenshot() const
TextureDesc desc = thumbnail.desc;
desc.width = current_width;
desc.height = current_height;
+ desc.mip_levels = mipmaps? 0 : 1;
desc.bind_flags = BindFlag::SHADER_RESOURCE | BindFlag::RENDER_TARGET | BindFlag::UNORDERED_ACCESS;
Texture upsized;
device->CreateTexture(&desc, nullptr, &upsized);
@@ -5272,6 +5301,7 @@ Texture EditorComponent::CreateThumbnailScreenshot() const
TextureDesc desc = thumbnail.desc;
desc.width = std::max(target_width, desc.width / 4u);
desc.height = std::max(target_height, desc.height / 4u);
+ desc.mip_levels = mipmaps ? 0 : 1;
desc.bind_flags = BindFlag::SHADER_RESOURCE | BindFlag::RENDER_TARGET | BindFlag::UNORDERED_ACCESS;
Texture downsized;
device->CreateTexture(&desc, nullptr, &downsized);
@@ -5279,8 +5309,18 @@ Texture EditorComponent::CreateThumbnailScreenshot() const
thumbnail = downsized;
}
+ if (mipmaps)
+ {
+ device->CreateMipgenSubresources(thumbnail);
+ wi::renderer::GenerateMipChain(thumbnail, wi::renderer::MIPGENFILTER_LINEAR, cmd);
+ }
+
return thumbnail;
}
+Texture EditorComponent::CreateThumbnailScreenshot() const
+{
+ return CreateThumbnail(*renderPath->GetLastPostprocessRT(), 256, 128);
+}
void EditorComponent::PostSaveText(const std::string& message, const std::string& filename, float time_seconds)
{
@@ -5608,8 +5648,10 @@ void EditorComponent::UpdateDynamicWidgets()
float static_pos = screenW - wid_idle * 12;
+ projectCreatorButton.SetSize(XMFLOAT2(wid_idle * 0.75f, hei));
+ projectCreatorButton.SetPos(XMFLOAT2(static_pos - stopButton.GetSize().x - 20, y));
stopButton.SetSize(XMFLOAT2(wid_idle * 0.75f, hei));
- stopButton.SetPos(XMFLOAT2(static_pos - stopButton.GetSize().x - 20, y));
+ stopButton.SetPos(XMFLOAT2(projectCreatorButton.GetPos().x - playButton.GetSize().x - padding, y));
playButton.SetSize(XMFLOAT2(wid_idle * 0.75f, hei));
playButton.SetPos(XMFLOAT2(stopButton.GetPos().x - playButton.GetSize().x - padding, y));
diff --git a/Editor/Editor.h b/Editor/Editor.h
index 3e1e11503..8467f46e3 100644
--- a/Editor/Editor.h
+++ b/Editor/Editor.h
@@ -4,6 +4,7 @@
#include "ComponentsWindow.h"
#include "ProfilerWindow.h"
#include "ContentBrowserWindow.h"
+#include "ProjectCreatorWindow.h"
#include "GraphicsWindow.h"
#include "CameraWindow.h"
#include "MaterialPickerWindow.h"
@@ -46,6 +47,7 @@ public:
wi::gui::Button playButton;
wi::gui::Button stopButton;
+ wi::gui::Button projectCreatorButton;
wi::gui::Button saveButton;
wi::gui::Button openButton;
@@ -63,6 +65,7 @@ public:
ComponentsWindow componentsWnd;
ProfilerWindow profilerWnd;
ContentBrowserWindow contentBrowserWnd;
+ ProjectCreatorWindow projectCreatorWnd;
wi::gui::Window topmenuWnd;
wi::gui::Button generalButton;
@@ -182,6 +185,7 @@ public:
void SaveAs();
bool deleting = false;
+ wi::graphics::Texture CreateThumbnail(wi::graphics::Texture texture, uint32_t target_width, uint32_t target_height, bool mipmaps = false) const;
wi::graphics::Texture CreateThumbnailScreenshot() const;
std::string save_text_message = "";
@@ -287,3 +291,11 @@ static const char* EditorLocalizationStrings[] = {
"Content",
};
static_assert(arraysize(EditorLocalizationStrings) == size_t(EditorLocalization::Count));
+
+struct ApplicationExeCustomization
+{
+ char name_256padded[256] = {};
+ wi::Color backlog_color = wi::Color(130, 210, 220, 255); // color of backlog font (startup text)
+ wi::Color background_color = wi::Color(114, 170, 229); // color of startup background behind startup text
+};
+extern ApplicationExeCustomization exe_customization;
diff --git a/Editor/Editor_SOURCE.vcxitems b/Editor/Editor_SOURCE.vcxitems
index b9008f547..f71bf27a5 100644
--- a/Editor/Editor_SOURCE.vcxitems
+++ b/Editor/Editor_SOURCE.vcxitems
@@ -49,6 +49,7 @@
+
@@ -122,6 +123,7 @@
+
diff --git a/Editor/Editor_SOURCE.vcxitems.filters b/Editor/Editor_SOURCE.vcxitems.filters
index 590b733c1..2298f9961 100644
--- a/Editor/Editor_SOURCE.vcxitems.filters
+++ b/Editor/Editor_SOURCE.vcxitems.filters
@@ -53,6 +53,7 @@
+
@@ -111,6 +112,7 @@
+
diff --git a/Editor/GeneralWindow.cpp b/Editor/GeneralWindow.cpp
index 135fb24c2..6082c0fa4 100644
--- a/Editor/GeneralWindow.cpp
+++ b/Editor/GeneralWindow.cpp
@@ -507,6 +507,7 @@ void GeneralWindow::Create(EditorComponent* _editor)
highlight.z *= 2;
editor->newEntityCombo.SetAngularHighlightColor(highlight);
editor->componentsWnd.newComponentCombo.SetAngularHighlightColor(highlight);
+ editor->projectCreatorWnd.createButton.SetAngularHighlightColor(highlight);
editor->componentsWnd.materialWnd.textureSlotButton.SetColor(wi::Color::White(), wi::gui::IDLE);
editor->componentsWnd.objectWnd.lightmapPreviewButton.SetColor(wi::Color::White());
for (auto& x : editor->componentsWnd.objectWnd.lightmapPreviewButton.sprites)
@@ -516,6 +517,8 @@ void GeneralWindow::Create(EditorComponent* _editor)
editor->componentsWnd.spriteWnd.textureButton.SetColor(wi::Color::White(), wi::gui::IDLE);
editor->paintToolWnd.brushTextureButton.SetColor(wi::Color::White(), wi::gui::IDLE);
editor->paintToolWnd.revealTextureButton.SetColor(wi::Color::White(), wi::gui::IDLE);
+ editor->projectCreatorWnd.iconButton.SetColor(wi::Color::White(), wi::gui::IDLE);
+ editor->projectCreatorWnd.thumbnailButton.SetColor(wi::Color::White(), wi::gui::IDLE);
editor->aboutLabel.sprites[wi::gui::FOCUS] = editor->aboutLabel.sprites[wi::gui::IDLE];
int scene_id = 0;
for (auto& editorscene : editor->scenes)
@@ -683,8 +686,8 @@ void GeneralWindow::Create(EditorComponent* _editor)
editor->playButton.sprites[i].params.enableCornerRounding();
editor->playButton.sprites[i].params.corners_rounding[0].radius = 10;
- editor->stopButton.sprites[i].params.enableCornerRounding();
- editor->stopButton.sprites[i].params.corners_rounding[1].radius = 10;
+ editor->projectCreatorButton.sprites[i].params.enableCornerRounding();
+ editor->projectCreatorButton.sprites[i].params.corners_rounding[1].radius = 10;
editor->translateButton.sprites[i].params.enableCornerRounding();
editor->translateButton.sprites[i].params.corners_rounding[0].radius = 10;
diff --git a/Editor/IconDefinitions.h b/Editor/IconDefinitions.h
index c23b76cd2..85df2f020 100644
--- a/Editor/IconDefinitions.h
+++ b/Editor/IconDefinitions.h
@@ -104,4 +104,5 @@
#define ICON_PAINTTOOL ICON_FA_PAINTBRUSH
#define ICON_EYE ICON_FA_EYE
+#define ICON_PROJECT_CREATE ICON_FA_FILE_EXPORT
diff --git a/Editor/ProjectCreatorWindow.cpp b/Editor/ProjectCreatorWindow.cpp
new file mode 100644
index 000000000..e6be81bb7
--- /dev/null
+++ b/Editor/ProjectCreatorWindow.cpp
@@ -0,0 +1,381 @@
+#include "stdafx.h"
+#include "ProjectCreatorWindow.h"
+
+using namespace wi::ecs;
+using namespace wi::scene;
+
+void ProjectCreatorWindow::Create(EditorComponent* _editor)
+{
+ editor = _editor;
+ control_size = 30;
+
+ wi::gui::Window::Create("Project Creator");
+
+ infoLabel.Create("projectCreatorInfo");
+ infoLabel.SetFitTextEnabled(true);
+ infoLabel.SetText("Here you can create a new Wicked Engine application project. It will create a new folder with the project name, and set up an executable, lua script startup, custom icon, thumbnail and base colors.");
+ AddWidget(&infoLabel);
+
+ projectNameInput.Create("projectName");
+ projectNameInput.SetText("");
+ projectNameInput.SetDescription("Name: ");
+ projectNameInput.SetCancelInputEnabled(false);
+ AddWidget(&projectNameInput);
+
+ iconButton.Create("projectIcon");
+ iconButton.SetText("");
+ iconButton.SetDescription("Icon: ");
+ iconButton.SetSize(XMFLOAT2(128 * 0.5f, 128 * 0.5f));
+ iconButton.SetTooltip("The icon will be used for the executable icon.");
+ iconButton.OnClick([this](wi::gui::EventArgs args) {
+ if (iconResource.IsValid())
+ {
+ iconResource = {};
+ iconName = {};
+ iconButton.SetImage(iconResource);
+ }
+ else
+ {
+ wi::helper::FileDialogParams params;
+ params.type = wi::helper::FileDialogParams::OPEN;
+ params.description = "Texture";
+ params.extensions = wi::resourcemanager::GetSupportedImageExtensions();
+ wi::helper::FileDialog(params, [this](std::string fileName) {
+ wi::eventhandler::Subscribe_Once(wi::eventhandler::EVENT_THREAD_SAFE_POINT, [=](uint64_t userdata) {
+ wi::Resource res = wi::resourcemanager::Load(fileName);
+ if (!res.IsValid())
+ return;
+ iconResource.SetTexture(editor->CreateThumbnail(res.GetTexture(), 128, 128, true));
+ iconName = fileName;
+ iconButton.SetImage(iconResource);
+ });
+ });
+ }
+ });
+ AddWidget(&iconButton);
+
+ thumbnailButton.Create("projectThumbnail");
+ thumbnailButton.SetText("");
+ thumbnailButton.SetDescription("Thumbnail: ");
+ thumbnailButton.SetSize(XMFLOAT2(480 * 0.5f, 270 * 0.5f));
+ thumbnailButton.SetTooltip("The thumbnail will be used for displaying the project in the editor.");
+ thumbnailButton.OnClick([this](wi::gui::EventArgs args) {
+ if (thumbnailResource.IsValid())
+ {
+ thumbnailResource = {};
+ thumbnailName = {};
+ thumbnailButton.SetImage(thumbnailResource);
+ }
+ else
+ {
+ wi::helper::FileDialogParams params;
+ params.type = wi::helper::FileDialogParams::OPEN;
+ params.description = "Texture";
+ params.extensions = wi::resourcemanager::GetSupportedImageExtensions();
+ wi::helper::FileDialog(params, [this](std::string fileName) {
+ wi::eventhandler::Subscribe_Once(wi::eventhandler::EVENT_THREAD_SAFE_POINT, [=](uint64_t userdata) {
+ wi::Resource res = wi::resourcemanager::Load(fileName);
+ if (!res.IsValid())
+ return;
+ thumbnailResource.SetTexture(editor->CreateThumbnail(res.GetTexture(), 480, 270));
+ thumbnailName = fileName;
+ thumbnailButton.SetImage(thumbnailResource);
+ });
+ });
+ }
+ });
+ AddWidget(&thumbnailButton);
+
+ backlogColorPicker.Create("backlog color", wi::gui::Window::WindowControls::NONE);
+ backlogColorPicker.SetSize(XMFLOAT2(256, 256));
+ backlogColorPicker.SetPickColor(exe_customization.backlog_color);
+ AddWidget(&backlogColorPicker);
+
+ backgroundColorPicker.Create("background color", wi::gui::Window::WindowControls::NONE);
+ backgroundColorPicker.SetSize(XMFLOAT2(256, 256));
+ backgroundColorPicker.SetPickColor(exe_customization.background_color);
+ AddWidget(&backgroundColorPicker);
+
+ colorPreviewButton.Create("colorPreviewButton");
+ colorPreviewButton.SetText("Preview:\nThese colors will be used by the application when showing the initialization screen. The text color will be also used for the backlog.\n\n[Click on this preview to reset colors]");
+ colorPreviewButton.SetSize(XMFLOAT2(256, 128));
+ colorPreviewButton.OnClick([this](wi::gui::EventArgs args) {
+ backlogColorPicker.SetPickColor(exe_customization.backlog_color);
+ backgroundColorPicker.SetPickColor(exe_customization.background_color);
+ });
+ AddWidget(&colorPreviewButton);
+
+ createButton.Create("projectCreate");
+ createButton.SetText(ICON_PROJECT_CREATE " Select folder and create project");
+ createButton.SetAngularHighlightWidth(6);
+ createButton.SetSize(XMFLOAT2(64, 64));
+ createButton.font.params.scaling = 1.5f;
+ createButton.OnClick([this](wi::gui::EventArgs args) {
+ if (projectNameInput.GetText().empty())
+ {
+ wi::helper::messageBox("Application name must be provided first!");
+ return;
+ }
+ std::string folder = wi::helper::FolderDialog("Select location where project folder will be created.");
+ if (folder.empty())
+ return;
+ std::string name = projectNameInput.GetText();
+ while (name.length() > 250)
+ {
+ // The name cannot be longer than 256 - ".lua", so cut from the end of it
+ // It is specifically because I will later overwrite a reserved 256-long string inside the executable
+ name.pop_back();
+ }
+ std::string directory = folder + "/" + name + "/";
+ wi::helper::DirectoryCreate(directory);
+ wilog("Project creator: created directory %s", directory.c_str());
+
+ static const std::string script = R"(
+-- This script was generated by Wicked Editor Project Creator.
+-- Read the scripting API documentation here: https://github.com/turanszkij/WickedEngine/blob/master/Content/Documentation/ScriptingAPI-Documentation.md
+
+runProcess(function()
+
+ -- set up a 3D render path, so if you load a model it will be displayed
+ local renderpath = RenderPath3D()
+ application.SetActivePath(renderpath)
+
+ -- set up a simple text that will dynamically change every frame
+ local counter = 0
+ local font = SpriteFont()
+ renderpath.AddFont(font)
+
+ -- run an endless update loop, it will run until killProcesses() is called or the application exits
+ while true do
+ update()
+
+ -- every frame the text is positioned to the center of the screen and display the value of the frame counter
+ font.SetText("Hello World! Current frame counter = " .. counter)
+ font.SetSize(12)
+ font.SetScale(3)
+ font.SetPos(Vector(GetScreenWidth() * 0.5, GetScreenHeight() * 0.5))
+ font.SetAlign(WIFALIGN_CENTER, WIFALIGN_CENTER)
+
+ counter = counter + 1
+
+ end
+
+end)
+)";
+
+ std::string scriptfilename = name + ".lua";
+ wi::helper::FileWrite(directory + scriptfilename, (const uint8_t*)script.data(), script.size());
+ if (iconResource.IsValid())
+ {
+ wi::helper::saveTextureToFile(iconResource.GetTexture(), directory + "icon.png");
+ wi::helper::saveTextureToFile(iconResource.GetTexture(), directory + "icon.ico");
+ }
+ if (thumbnailResource.IsValid())
+ {
+ wi::helper::saveTextureToFile(thumbnailResource.GetTexture(), directory + "thumbnail.png");
+ }
+
+ wi::unordered_set exes;
+ exes.insert(wi::helper::BackslashToForwardSlash(wi::helper::GetExecutablePath()));
+ exes.insert(wi::helper::BackslashToForwardSlash(wi::helper::GetCurrentPath() + "/Editor_Windows.exe"));
+ exes.insert(wi::helper::BackslashToForwardSlash(wi::helper::GetCurrentPath() + "/Editor_Linux"));
+
+ for (auto& exepath_src : exes)
+ {
+ if (!wi::helper::FileExists(exepath_src))
+ continue;
+ std::string exepath_dst = directory + name;
+ std::string extension = wi::helper::toUpper(wi::helper::GetExtensionFromFileName(exepath_src));
+ if (extension.find("EXE") != std::string::npos)
+ {
+ exepath_dst += "_Windows.exe";
+ }
+ else
+ {
+ exepath_dst += "_Linux";
+ }
+ if (wi::helper::FileCopy(exepath_src, exepath_dst))
+ {
+ wilog("Project creator: preparing executable %s -> %s", exepath_src.c_str(), exepath_dst.c_str());
+ wi::vector exedata;
+ if (wi::helper::FileRead(exepath_dst, exedata))
+ {
+ // ApplicationExeCustomization replacement in the executable:
+ {
+ wi::vector match_padded256(256);
+ std::memcpy(match_padded256.data(), exe_customization.name_256padded, sizeof(exe_customization.name_256padded));
+
+ auto it = std::search(exedata.begin(), exedata.end(), match_padded256.begin(), match_padded256.end());
+ if (it != exedata.end())
+ {
+ wi::vector replacement(sizeof(ApplicationExeCustomization));
+ ApplicationExeCustomization& customization = *(ApplicationExeCustomization*)replacement.data();
+ std::memcpy(customization.name_256padded, name.c_str(), name.length());
+ customization.backlog_color = backlogColorPicker.GetPickColor();
+ customization.background_color = backgroundColorPicker.GetPickColor();
+ std::copy(replacement.begin(), replacement.end(), it);
+ wilog("\tOverwritten ApplicationExeCustomization structure");
+ }
+ }
+
+ // startup script string replacement in the executable:
+ {
+ auto it = std::search(exedata.begin(), exedata.end(), editor->main->rewriteable_startup_script_text.begin(), editor->main->rewriteable_startup_script_text.end());
+ if (it != exedata.end())
+ {
+ wi::vector replacement(scriptfilename.length() + 1);
+ std::copy(scriptfilename.begin(), scriptfilename.end(), replacement.begin());
+ std::copy(replacement.begin(), replacement.end(), it);
+ wilog("\tOverwritten startup script name: %s", scriptfilename.c_str());
+ }
+ }
+
+ // Win32 icon replacement:
+ if (iconResource.IsValid())
+ {
+ wi::graphics::Texture tex = iconResource.GetTexture();
+
+ struct ICONDIR
+ {
+ uint16_t idReserved; // Reserved (must be 0)
+ uint16_t idType; // Resource Type (1 for icon)
+ uint16_t idCount; // Number of images
+ };
+ struct ICONDIRENTRY
+ {
+ uint8_t bWidth; // Width, in pixels
+ uint8_t bHeight; // Height, in pixels
+ uint8_t bColorCount; // Number of colors (0 if >= 8bpp)
+ uint8_t bReserved; // Reserved (must be 0)
+ uint16_t wPlanes; // Color Planes
+ uint16_t wBitCount; // Bits per pixel
+ uint32_t dwBytesInRes; // Size of image data
+ uint32_t dwImageOffset;// Offset to image data
+ };
+ struct BITMAPINFOHEADER
+ {
+ uint32_t biSize; // Size of this header
+ int32_t biWidth; // Width in pixels
+ int32_t biHeight; // Height in pixels (doubled for icon)
+ uint16_t biPlanes; // Number of color planes
+ uint16_t biBitCount; // Bits per pixel
+ uint32_t biCompression;// Compression method
+ uint32_t biSizeImage; // Size of image data
+ int32_t biXPelsPerMeter; // Horizontal resolution
+ int32_t biYPelsPerMeter; // Vertical resolution
+ uint32_t biClrUsed; // Colors used
+ uint32_t biClrImportant; // Important colors
+ };
+
+ const int resolutions[] = {128,64,32};
+
+ for (int res : resolutions)
+ {
+ const uint32_t pixelCount = res * res;
+ const uint32_t rgbDataSize = pixelCount * 4; // 32-bit RGBA
+ const uint32_t maskSize = ((res + 7) / 8) * res; // 1-bit mask, padded to byte
+ const uint32_t bmpInfoHeaderSize = sizeof(BITMAPINFOHEADER);
+
+ BITMAPINFOHEADER bmpHeader = {
+ bmpInfoHeaderSize, // Size of header
+ int32_t(res), // Width
+ int32_t(res * 2), // Height (doubled for XOR + AND mask)
+ 1, // Planes
+ 32, // Bits per pixel
+ 0, // No compression
+ rgbDataSize + maskSize, // Image size
+ 0, // X pixels per meter
+ 0, // Y pixels per meter
+ 0, // Colors used
+ 0 // Important colors
+ };
+
+ wi::vector bmpvec(sizeof(bmpHeader));
+ std::memcpy(bmpvec.data(), &bmpHeader, sizeof(bmpHeader));
+
+ // searches for exact BMP header match:
+ // TODO: add some validation here because this method is quite stupid, just checking header bit pattern is not foolproof
+ auto it = std::search(exedata.begin(), exedata.end(), bmpvec.begin(), bmpvec.end());
+ if (it != exedata.end())
+ {
+ wi::vector iconfiledata;
+ if (wi::helper::saveTextureToMemoryFile(editor->CreateThumbnail(tex, res, res, false), "ico", iconfiledata)) // note: individual mip thumbnails at this point!
+ {
+ // replace the BMP header and data part:
+ std::copy(iconfiledata.begin() + sizeof(ICONDIR) + sizeof(ICONDIRENTRY), iconfiledata.end(), it);
+ wilog("\tOverwritten Win32 icon at %d * %d resolution", res, res);
+ }
+ }
+ }
+ }
+
+ // SDL icon replacement:
+ if (iconResource.IsValid())
+ {
+ wi::graphics::Texture tex = iconResource.GetTexture();
+
+ std::string match = "Wicked Editor Embedded Icon Data SDL";
+ wi::vector match_padded256(256);
+ std::memcpy(match_padded256.data(), match.c_str(), match.length());
+
+ // searches for match string:
+ auto it = std::search(exedata.begin(), exedata.end(), match_padded256.begin(), match_padded256.end());
+ if (it != exedata.end())
+ {
+ wi::vector iconfiledata;
+ if (wi::helper::saveTextureToMemoryFile(tex, "raw", iconfiledata))
+ {
+ // replace the pixel data part:
+ std::copy(iconfiledata.begin(), iconfiledata.end(), it + 256);
+ wilog("\tOverwritten SDL icon");
+ }
+ }
+ }
+
+ if (wi::helper::FileWrite(exepath_dst, exedata.data(), exedata.size()))
+ {
+ wilog("\tSuccessfully prepared executable %s", exepath_dst.c_str());
+ }
+ else
+ {
+ wilog_error("\nWriting executable %s failed!", exepath_dst.c_str());
+ }
+ }
+ }
+ }
+ editor->RegisterRecentlyUsed(directory + scriptfilename);
+ wi::helper::OpenUrl(directory);
+ });
+ AddWidget(&createButton);
+
+ SetVisible(false);
+}
+
+void ProjectCreatorWindow::ResizeLayout()
+{
+ wi::gui::Window::ResizeLayout();
+
+ layout.margin_left = 60;
+
+ layout.add_fullwidth(infoLabel);
+ layout.add(projectNameInput);
+
+ layout.jump();
+
+ layout.add_right(iconButton, thumbnailButton);
+
+ layout.jump();
+
+ layout.add_fullwidth(colorPreviewButton);
+ layout.add_right(backlogColorPicker, backgroundColorPicker);
+
+ layout.jump();
+
+ layout.add_fullwidth(createButton);
+
+ colorPreviewButton.SetColor(backgroundColorPicker.GetPickColor());
+ colorPreviewButton.font.params.color = backlogColorPicker.GetPickColor();
+ colorPreviewButton.font.params.v_align = wi::font::WIFALIGN_TOP;
+ colorPreviewButton.font.params.h_align = wi::font::WIFALIGN_LEFT;
+ colorPreviewButton.font.params.h_wrap = colorPreviewButton.GetSize().x;
+}
diff --git a/Editor/ProjectCreatorWindow.h b/Editor/ProjectCreatorWindow.h
new file mode 100644
index 000000000..9fcd4fd12
--- /dev/null
+++ b/Editor/ProjectCreatorWindow.h
@@ -0,0 +1,29 @@
+#pragma once
+class EditorComponent;
+
+class ProjectCreatorWindow : public wi::gui::Window
+{
+public:
+ void Create(EditorComponent* editor);
+
+ EditorComponent* editor = nullptr;
+
+ wi::gui::Label infoLabel;
+ wi::gui::TextInputField projectNameInput;
+ wi::gui::Button iconButton;
+ wi::gui::Button thumbnailButton;
+ wi::gui::Button createButton;
+
+ wi::Resource iconResource;
+ std::string iconName;
+
+ wi::gui::ColorPicker backlogColorPicker;
+ wi::gui::ColorPicker backgroundColorPicker;
+ wi::gui::Button colorPreviewButton;
+
+ wi::Resource thumbnailResource;
+ std::string thumbnailName;
+
+ void ResizeLayout() override;
+};
+
diff --git a/Editor/icon.c b/Editor/icon.c
deleted file mode 100644
index 51e21f081..000000000
--- a/Editor/icon.c
+++ /dev/null
@@ -1,651 +0,0 @@
-/* GIMP RGBA C-Source image dump (Icon.c) */
-
-static const struct {
- uint width;
- uint height;
- uint bytes_per_pixel; /* 2:RGB16, 3:RGB, 4:RGBA */
- const char *comment;
- unsigned char pixel_data[64 * 64 * 4 + 1];
-} gimp_image = {
- 64, 64, 4,
- "Wicked Engine logo for Icon in SDL_Window",
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377"
- "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
- "\377\000\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\377\377\377\000\377\377\377\000\377\377\377\001\377\377\377\001\377"
- "\377\377\001\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377"
- "\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\000\377\377\377"
- "\000\015\015\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\000\377\377\377\001\377\377\377"
- "\002\377\377\377\002\377\377\377\003\377\377\377\004\377\377\377\004\377\377\377\005"
- "\377\377\377\005\377\377\377\004\377\377\377\004\377\377\377\003\377\377\377\003\377"
- "\377\377\002\377\377\377\002\377\377\377\001\377\377\377\001\377\377\377\000,,,\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377"
- "\377\377\001\377\377\377\002\377\377\377\003\377\377\377\004\377\377\377\005\377\377"
- "\377\007\377\377\377\010\377\377\377\011\377\377\377\012\377\377\377\012\377\377"
- "\377\011\377\377\377\010\377\377\377\007\377\377\377\006\377\377\377\005\377\377"
- "\377\004\377\377\377\003\377\377\377\002\377\377\377\001\377\377\377\000\377\377\377"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377"
- "\001\377\377\377\002\377\377\377\004\377\377\377\006\377\377\377\010\377\377\377\012"
- "\377\377\377\015\377\377\377\017\377\377\377\021\377\377\377\022\377\377\377"
- "\022\377\377\377\022\377\377\377\020\377\377\377\016\377\377\377\014\377\377\377"
- "\012\377\377\377\010\377\377\377\006\377\377\377\004\377\377\377\003\377\377\377"
- "\002\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377"
- "\001\377\377\377\002\377\377\377\003\377\377\377\005\377\377\377\007\377\377\377\012"
- "\377\377\377\016\377\377\377\022\377\377\377\026\377\377\377\032\377\377\377"
- "\035\377\377\377\037\377\377\377\037\377\377\377\036\377\377\377\034\377\377\377"
- "\031\377\377\377\025\377\377\377\022\377\377\377\017\377\377\377\013\377\377\377"
- "\010\377\377\377\005\377\377\377\003\377\377\377\002\377\377\377\001\377\377\377\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\377\377\377\000\377\377\377\001\377\377\377\002\377\377\377\004\377\377\377\006\377"
- "\377\377\011\377\377\377\015\377\377\377\022\377\377\377\027\377\377\377\036\377"
- "\377\377$\377\377\377)\377\377\377.\377\377\377\061\377\377\377\061\377\377"
- "\377/\377\377\377,\377\377\377(\377\377\377#\377\377\377\036\377\377\377\030"
- "\377\377\377\023\377\377\377\016\377\377\377\012\377\377\377\006\377\377\377\004"
- "\377\377\377\002\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\002\377"
- "\377\377\004\377\377\377\006\377\377\377\012\377\377\377\017\377\377\377\025\377"
- "\377\377\034\377\377\377$\377\377\377-\377\377\377\066\377\377\377D\377\377"
- "\377S\376\376\376]\371\371\371`\376\376\376O\377\377\377B\377\377\377<\377"
- "\377\377\065\377\377\377.\377\377\377&\377\377\377\036\377\377\377\026\377\377"
- "\377\020\377\377\377\012\377\377\377\006\377\377\377\003\377\377\377\002\377\377"
- "\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\033\033\033\000\377\377"
- "\377\000\377\377\377\001\377\377\377\003\377\377\377\006\377\377\377\012\377\377\377"
- "\020\377\377\377\027\377\377\377\040\377\377\377*\377\377\377\065\377\377\377"
- "@\377\377\377R\255\255\255\244www\331\\\\\\\350\062\062\062\363\315\315\315"
- "\230\377\377\377^\377\377\377U\377\377\377S\377\377\377L\377\377\377:\377"
- "\377\377,\377\377\377!\377\377\377\030\377\377\377\020\377\377\377\012\377\377"
- "\377\006\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\003\377\377\377\005"
- "\377\377\377\011\377\377\377\017\377\377\377\027\377\377\377\"\377\377\377."
- "\377\377\377<\377\377\377J\377\377\377W\377\377\377p~~~\335\000\000\000\377\000\000"
- "\000\377\000\000\000\377\241\241\241\324\377\377\377\210\377\377\377\177\274\274"
- "\274\256~~~\312\362\362\362o\377\377\377B\377\377\377/\377\377\377\"\377"
- "\377\377\027\377\377\377\017\377\377\377\011\377\377\377\004\377\377\377\002\377"
- "\377\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\010\010\010\000\377\377\377\000\377\377"
- "\377\002\377\377\377\004\377\377\377\007\377\377\377\015\377\377\377\026\377\377"
- "\377!\377\377\377.\377\377\377E\327\327\327z\357\357\357\200\377\377\377"
- "{\372\372\372\232mmm\356\000\000\000\377\000\000\000\377\000\000\000\377\063\063\063\374\201\201"
- "\201\347\235\235\235\335\026\026\026\375\000\000\000\377ZZZ\350\335\335\335\204\377"
- "\377\377D\377\377\377-\377\377\377\037\377\377\377\024\377\377\377\014\377\377"
- "\377\007\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\377\377\377\001\377\377\377\002\377\377\377\005\377\377\377\012\377\377"
- "\377\022\377\377\377\034\377\377\377+\377\377\377@\345\345\345~AAA\362;;;\367"
- "\245\245\245\331^^^\362\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
- "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377AAA\356\371\371\371a\377"
- "\377\377:\377\377\377(\377\377\377\033\377\377\377\021\377\377\377\011\377\377"
- "\377\005\377\377\377\002\377\377\377\001bbb\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377"
- "\377\377\001\377\377\377\003\377\377\377\007\377\377\377\015\377\377\377\026\377"
- "\377\377$\377\377\377\066\367\367\367fggg\341\000\000\000\377\000\000\000\377\000\000\000\377"
- "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
- "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\235\235\235\316\377\377\377h\377\377"
- "\377F\377\377\377\063\377\377\377\"\377\377\377\026\377\377\377\015\377\377"
- "\377\007\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377"
- "\377\000\377\377\377\002\377\377\377\004\377\377\377\011\377\377\377\020\377\377"
- "\377\033\377\377\377*\377\377\377B\246\246\246\246\000\000\000\377\000\000\000\377\000\000"
- "\000\377\000\000\000\377\000\000\000\377\001\001\001\377\002\002\002\377\004\004\004\377\005\005\005\377\004\004\004"
- "\377\002\002\002\377\000\000\000\377\000\000\000\377\000\000\000\377\011\011\011\377\333\333\333\270"
- "\377\377\377q\377\377\377T\377\377\377=\377\377\377*\377\377\377\033\377\377"
- "\377\020\377\377\377\011\377\377\377\004\377\377\377\002\377\377\377\000\031\031\031"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\377\377\377\001\377\377\377\002\377\377\377\005\377\377\377\013\377\377"
- "\377\023\377\377\377\040\377\377\377\061\377\377\377H\370\370\370z}}}\343\000"
- "\000\000\377\000\000\000\377\000\000\000\377\001\001\001\377\005\005\005\377\013\013\013\377\021\021\021\377"
- "\023\023\023\377\020\020\020\377\013\013\013\377\004\004\004\377\001\001\001\377\000\000\000\377\000\000"
- "\000\377\203\203\203\347\367\367\367\236\374\374\374z\376\376\376P\377\377"
- "\377\062\377\377\377!\377\377\377\024\377\377\377\013\377\377\377\006\377\377"
- "\377\003\377\377\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000ddd\000\377\377\377\001\377\377\377\003\377\377\377"
- "\006\377\377\377\014\377\377\377\026\377\377\377$\377\377\377\067\377\377\377"
- "N\377\377\377n\335\335\335\266\002\002\002\377\000\000\000\377\000\000\000\377\004\004\004\377\015"
- "\015\015\377\030\030\030\377\"\"\"\377'''\377\"\"\"\377\027\027\027\377\014\014\014"
- "\377\004\004\004\377\000\000\000\377\000\000\000\377\003\003\003\377\026\026\026\375###\367\301\301"
- "\301\216\377\377\377;\377\377\377%\377\377\377\027\377\377\377\015\377\377"
- "\377\007\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\001\377"
- "\377\377\003\377\377\377\007\377\377\377\016\377\377\377\030\377\377\377(\377\377"
- "\377<\377\377\377Z\377\377\377\203\262\262\262\322\000\000\000\377\000\000\000\377\002"
- "\002\002\377\011\011\011\377\026\026\026\377'''\377\071\071\071\377AAA\377\067\067\067\377"
- "%%%\377\024\024\024\377\010\010\010\377\001\001\001\377\000\000\000\377\000\000\000\377\000\000\000\377"
- "\000\000\000\377\255\255\255\256\377\377\377C\377\377\377)\377\377\377\031\377\377"
- "\377\017\377\377\377\007\377\377\377\004\377\377\377\001\377\377\377\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377"
- "\000\377\377\377\001\377\377\377\004\377\377\377\010\377\377\377\017\377\377\377"
- "\032\377\377\377*\377\377\377F\264\264\264\242qqq\345***\374\000\000\000\377\000\000"
- "\000\377\003\003\003\377\015\015\015\377\035\035\035\377\064\064\064\377NNN\377___\377LLL"
- "\377\060\060\060\377\032\032\032\377\013\013\013\377\003\003\003\377\000\000\000\377\000\000\000\377"
- "\000\000\000\377\000\000\000\377\226\226\226\301\377\377\377I\377\377\377*\377\377\377"
- "\032\377\377\377\017\377\377\377\010\377\377\377\004\377\377\377\001\377\377\377"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\377\377\377\000\377\377\377\001\377\377\377\004\377\377\377\010\377\377\377\020"
- "\377\377\377\033\377\377\377+\377\377\377K\204\204\204\315\000\000\000\377\000\000\000"
- "\377\000\000\000\377\000\000\000\377\003\003\003\377\016\016\016\377\037\037\037\377\065\065\065\377"
- "PPP\377bbb\377OOO\377\062\062\062\377\033\033\033\377\014\014\014\377\003\003\003\377\000"
- "\000\000\377\000\000\000\377\000\000\000\377\007\007\007\375\212\212\212\300\377\377\377H\377\377"
- "\377*\377\377\377\032\377\377\377\017\377\377\377\010\377\377\377\004\377\377"
- "\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\004\377\377\377"
- "\010\377\377\377\017\377\377\377\032\377\377\377*\377\377\377G\237\237\237\274"
- "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\002\002\002\377\013\013\013\377\031\031\031"
- "\377+++\377===\377EEE\377;;;\377(((\377\027\027\027\377\011\011\011\377\002\002\002\377"
- "\000\000\000\377\000\000\000\377\215\215\215\345\346\346\346\235\375\375\375f\377\377"
- "\377?\377\377\377(\377\377\377\031\377\377\377\016\377\377\377\007\377\377\377"
- "\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\003"
- "\377\377\377\007\377\377\377\016\377\377\377\030\377\377\377'\377\377\377@\262"
- "\262\262\244\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\001\001\001\377\007\007\007\377"
- "\021\021\021\377\035\035\035\377(((\377,,,\377&&&\377\033\033\033\377\017\017\017\377"
- "\006\006\006\377\001\001\001\377\000\000\000\377\001\001\001\377\316\316\316\274\377\377\377q\377"
- "\377\377Q\377\377\377\071\377\377\377%\377\377\377\027\377\377\377\015\377\377"
- "\377\006\377\377\377\003\377\377\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\001\377\377"
- "\377\003\377\377\377\006\377\377\377\014\377\377\377\026\377\377\377#\377\377\377"
- "\066\346\346\346i\270\270\270\256\273\273\273\313LLL\367\000\000\000\377\000\000\000\377"
- "\002\002\002\377\010\010\010\377\020\020\020\377\026\026\026\377\030\030\030\377\025\025\025\377"
- "\016\016\016\377\007\007\007\377\002\002\002\377\000\000\000\377\000\000\000\377\002\002\002\377\266\266\266"
- "\312\377\377\377q\377\377\377J\377\377\377\063\377\377\377!\377\377\377\024"
- "\377\377\377\013\377\377\377\006\377\377\377\002\377\377\377\001\060\060\060\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000MMM\000"
- "\377\377\377\001\377\377\377\002\377\377\377\005\377\377\377\012\377\377\377\022"
- "\377\377\377\036\377\377\377.\377\377\377C\377\377\377^\377\377\377\177\276"
- "\276\276\313\000\000\000\377\000\000\000\377\000\000\000\377\002\002\002\377\005\005\005\377\011\011\011\377"
- "\012\012\012\377\010\010\010\377\005\005\005\377\002\002\002\377\000\000\000\377\000\000\000\377\000\000\000"
- "\377\000\000\000\377\023\023\023\375\273\273\273\237\377\377\377E\377\377\377-\377"
- "\377\377\035\377\377\377\021\377\377\377\011\377\377\377\005\377\377\377\002\377"
- "\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\002\377\377\377\004\377"
- "\377\377\010\377\377\377\017\377\377\377\030\377\377\377&\377\377\377\070\377"
- "\377\377M\377\377\377m\301\301\301\302\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
- "\000\377\000\000\000\377\001\001\001\377\002\002\002\377\001\001\001\377\001\001\001\377\000\000\000\377\000\000\000"
- "\377\000\000\000\377\000\000\000\377\000\000\000\377\062\062\062\367\330\330\330\202\377\377\377"
- ";\377\377\377&\377\377\377\030\377\377\377\016\377\377\377\010\377\377\377\004"
- "\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001"
- "\377\377\377\003\377\377\377\006\377\377\377\013\377\377\377\023\377\377\377\037"
- "\377\377\377.\377\377\377A\370\370\370kQQQ\355\000\000\000\377\000\000\000\377\000\000\000"
- "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
- "\025\025\025\376^^^\364\001\001\001\377\012\012\012\376\272\272\272\247\377\377\377L"
- "\377\377\377/\377\377\377\037\377\377\377\024\377\377\377\013\377\377\377\006"
- "\377\377\377\003\377\377\377\001\311\311\311\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000HHH\000\377\377\377"
- "\001\377\377\377\002\377\377\377\004\377\377\377\010\377\377\377\017\377\377\377"
- "\030\377\377\377%\377\377\377\065\373\373\373W\230\230\230\300\023\023\023\375"
- "\000\000\000\377\000\000\000\377WWW\371\015\015\015\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
- "\000\000\377WWW\367\333\333\333\271\375\375\375\224\275\275\275\260\233\233\233"
- "\263\377\377\377W\377\377\377\065\377\377\377%\377\377\377\031\377\377\377"
- "\017\377\377\377\011\377\377\377\005\377\377\377\002\377\377\377\001===\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\002\377\377\377\003\377\377"
- "\377\006\377\377\377\013\377\377\377\023\377\377\377\035\377\377\377*\377\377"
- "\377<\377\377\377]\302\302\302\250\071\071\071\366\214\214\214\335\353\353\353"
- "\301\"\"\"\375\210\210\210\363\000\000\000\377\000\000\000\377\000\000\000\377~~~\343\377\377"
- "\377\200\377\377\377d\377\377\377Y\377\377\377L\377\377\377\067\377\377\377"
- "(\377\377\377\034\377\377\377\023\377\377\377\014\377\377\377\006\377\377\377"
- "\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\257\257\257\000\377\377\377\000\377\377\377\000\377\377\377\001\377"
- "\377\377\001\377\377\377\001\377\377\377\001\377\377\377\002\377\377\377\003\377\377"
- "\377\005\377\377\377\011\377\377\377\017\377\377\377\027\377\377\377\"\377\377"
- "\377/\377\377\377?\377\377\377W\346\346\346~\374\374\374\200\310\310\310"
- "\265NNN\366\306\306\306\316\000\000\000\377\006\006\006\376!!!\371\206\206\206\312\377"
- "\377\377d\377\377\377N\377\377\377A\377\377\377\065\377\377\377)\377\377\377"
- "\037\377\377\377\026\377\377\377\016\377\377\377\011\377\377\377\005\377\377\377"
- "\002\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\377\377\377\000\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377"
- "\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\003\377\377\377\004"
- "\377\377\377\005\377\377\377\010\377\377\377\015\377\377\377\023\377\377\377\034"
- "\377\377\377&\377\377\377\063\377\377\377@\377\377\377N\377\377\377b\237\237"
- "\237\304ggg\350\366\366\366\215\313\313\313\237\342\342\342\217\371\371\371"
- "z\375\375\375a\377\377\377J\377\377\377=\377\377\377\063\377\377\377)\377"
- "\377\377\040\377\377\377\030\377\377\377\021\377\377\377\013\377\377\377\007\377"
- "\377\377\004\377\377\377\002\377\377\377\001)))\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\001\377\377\377\002\377\377"
- "\377\003\377\377\377\003\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377"
- "\005\377\377\377\005\377\377\377\007\377\377\377\011\377\377\377\015\377\377\377"
- "\022\377\377\377\031\377\377\377!\377\377\377+\377\377\377\066\377\377\377A"
- "\377\377\377Zwww\330~~~\330\377\377\377f\377\377\377W\377\377\377Q\377\377"
- "\377I\377\377\377A\377\377\377\071\377\377\377\061\377\377\377*\377\377\377"
- "\"\377\377\377\033\377\377\377\024\377\377\377\016\377\377\377\011\377\377\377"
- "\005\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\002\377\377\377\002\377"
- "\377\377\004\377\377\377\005\377\377\377\006\377\377\377\007\377\377\377\007\377\377"
- "\377\007\377\377\377\010\377\377\377\011\377\377\377\012\377\377\377\014\377\377"
- "\377\021\353\353\353\032\377\377\377\031\377\377\377\037\377\377\377'\377\377"
- "\377\060\377\377\377\071\376\376\376ZNNN\353\214\214\214\306\377\377\377S\377"
- "\377\377E\377\377\377@\377\377\377;\377\377\377\066\377\377\377\060\377\377"
- "\377+\377\377\377%\377\377\377\040\377\377\377\033\377\377\377\024\377\377\377"
- "\015\377\377\377\010\377\377\377\005\377\377\377\003\377\377\377\001\377\377\377"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000###\000\377\377\377\000\377\377\377\001\377\377"
- "\377\002\377\377\377\004\377\377\377\005\377\377\377\007\377\377\377\011\377\377\377"
- "\012\377\377\377\013\377\377\377\014\377\377\377\014\377\377\377\015\377\377\377"
- "\016\377\377\377\020\377\377\377\033\215\215\215[\377\377\377#\354\354\354("
- "\377\377\377(\377\377\377.\377\377\377\066\364\364\364`...\366\232\232\232"
- "\264\377\377\377G\377\377\377;\377\377\377\070\377\377\377\064\377\377\377"
- "\060\377\377\377-\377\377\377*\377\377\377/\365\365\365A\255\255\255a\254"
- "\254\254\071\377\377\377\017\377\377\377\011\377\377\377\005\377\377\377\003\377"
- "\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377"
- "\377\001\377\377\377\002\377\377\377\003\377\377\377\005\351\351\351\013\375\375\375"
- "\021\377\377\377\021\377\377\377\017\377\377\377\020\377\377\377\022\377\377\377"
- "\022\377\377\377\023\377\377\377\024\377\377\377\026\377\377\377%}}}\225\376"
- "\376\376\071\244\244\244Y\374\374\374\065\377\377\377\060\377\377\377\066\354"
- "\354\354i\005\005\005\373\252\252\252\245\377\377\377@\377\377\377\067\377\377\377"
- "\064\377\377\377\061\377\377\377/\377\377\377\061\374\374\374F\245\245\245\230"
- "???\350\213\213\213\227\372\372\372#\377\377\377\020\377\377\377\012\377\377"
- "\377\006\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\002\377\377\377\004\377\377"
- "\377\006\323\323\323\025~~~b\256\256\256]\375\375\375+\377\377\377\033\377\377"
- "\377\030\377\377\377\031\377\377\377\032\377\377\377\034\377\377\377\036\377\377"
- "\377+}}}\253\320\320\320i\300\300\300f\275\275\275k\377\377\377\070\377\377"
- "\377:\327\327\327x\000\000\000\377\265\265\265\226\377\377\377>\377\377\377\067"
- "\377\377\377\065\377\377\377\063\377\377\377\066\363\363\363Wrrr\312\022\022\022"
- "\375zzz\302\376\376\376\071\377\377\377\030\377\377\377\020\377\377\377\012\377"
- "\377\377\006\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\002\377\377\377\004\377"
- "\377\377\007\377\377\377\014\371\371\371$\177\177\177\232bbb\305\314\314\314"
- "f\377\377\377\060\377\377\377#\377\377\377#\377\377\377$\377\377\377&\377"
- "\377\377\060\236\236\236\232\224\224\224\255\371\371\371X\202\202\202\257"
- "\377\377\377H\377\377\377A\315\315\315\205\000\000\000\377\302\302\302\215\377"
- "\377\377@\377\377\377;\377\377\377\071\377\377\377:\367\367\367Xlll\322rr"
- "r\347]]]\352\340\340\340b\377\377\377$\377\377\377\030\377\377\377\021\377"
- "\377\377\013\377\377\377\006\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\002\377"
- "\377\377\004\377\377\377\007\377\377\377\013\377\377\377\022\377\377\377+\236\236"
- "\236\222'''\364\214\214\214\257\363\363\363O\377\377\377\061\377\377\377."
- "\377\377\377\060\377\377\377\066\306\306\306\201NNN\346\375\375\375gzzz\301"
- "\360\360\360d\377\377\377J\303\303\303\227\001\001\001\377\324\324\324\206\377"
- "\377\377E\377\377\377A\377\377\377@\376\376\376U\205\205\205\304]]]\351\267"
- "\267\267\274xxx\304\377\377\377<\377\377\377\"\377\377\377\031\377\377\377"
- "\021\377\377\377\013\377\377\377\006\377\377\377\003\377\377\377\001\377\377\377"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\001\377\377\377\002\377"
- "\377\377\004\377\377\377\007\377\377\377\013\377\377\377\021\377\377\377\030\377"
- "\377\377/\261\261\261\213\036\036\036\371[[[\336\335\335\335n\377\377\377?\377"
- "\377\377:\377\377\377>\361\361\361i%%%\367\327\327\327\214\242\242\242\257"
- "\273\273\273\230\377\377\377W\275\275\275\242\004\004\004\376\331\331\331\205\377"
- "\377\377L\377\377\377I\377\377\377U\247\247\247\255\071\071\071\364\342\342"
- "\342\226___\343\305\305\305\202\377\377\377\062\377\377\377#\377\377\377\032"
- "\377\377\377\022\377\377\377\013\377\377\377\006\377\377\377\003\377\377\377\001"
- "\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\001\377"
- "\377\377\002\377\377\377\004\377\377\377\007\377\377\377\013\377\377\377\020\377"
- "\377\377\027\377\377\377\037\377\377\377\066\260\260\260\226\016\016\016\375DD"
- "D\355\333\333\333|\377\377\377K\377\377\377H\377\377\377^kkk\336\237\237"
- "\237\300\322\322\322\231\207\207\207\312\377\377\377i\256\256\256\261\017"
- "\017\017\376\347\347\347\201\377\377\377V\345\345\345e\312\312\312\230&&&\370"
- "\301\301\301\250\272\272\272\244KKK\351\372\372\372W\372\372\372\064\355\355"
- "\355,\377\377\377\033\377\377\377\022\377\377\377\013\377\377\377\006\377\377"
- "\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\001\001"
- "\000\377\377\377\000\377\377\377\001\377\377\377\003\377\377\377\006\377\377\377\012"
- "\377\377\377\017\377\377\377\027\377\377\377\037\377\377\377)\377\377\377D\236"
- "\236\236\261\002\002\002\377FFF\357\336\336\336\205\377\377\377Y\377\377\377^\244"
- "\244\244\273```\351\365\365\365\224RRR\351\375\375\375\200\254\254\254\273"
- "\024\024\024\375\360\360\360\205\377\377\377g\274\274\274\241RRR\356\230\230"
- "\230\311\317\317\317\226}}}\330\222\222\222\274\377\377\377I\333\333\333"
- "L\272\272\272S\377\377\377\035\377\377\377\022\377\377\377\013\377\377\377\006"
- "\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\003\377\377\377\005\377\377"
- "\377\011\377\377\377\017\377\377\377\026\377\377\377\037\377\377\377)\377\377"
- "\377\066\374\374\374Zttt\326\012\012\012\377JJJ\357\341\341\341\216\377\377\377"
- "i\335\335\335\227\023\023\023\374\344\344\344\252iii\350\331\331\331\245\254"
- "\254\254\303\031\031\031\375\365\365\365\217\340\340\340\222ddd\347ggg\347\363"
- "\363\363\216\261\261\261\267\062\062\062\367\332\332\332\206\377\377\377F\276"
- "\276\276u\260\260\260p\377\377\377\040\377\377\377\023\377\377\377\014\377\377"
- "\377\007\377\377\377\004\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\003\377\377\377\005"
- "\377\377\377\011\377\377\377\017\377\377\377\026\377\377\377\037\377\377\377"
- ",\361\361\361?\377\377\377I\346\346\346\200:::\365eee\366OOO\357\352\352"
- "\352\224\376\376\376\207___\354\252\252\252\321\244\244\244\324\260\260\260"
- "\313\256\256\256\320$$$\372\373\373\373\235\222\222\222\324$$$\373\335\335"
- "\335\250\260\260\260\263\252\252\252\313jjj\344\324\324\324z\377\377\377"
- "N\227\227\227\250\300\300\300m\377\377\377!\377\377\377\024\377\377\377\015"
- "\377\377\377\007\377\377\377\004\377\377\377\002\377\377\377\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\017\017\017\000\377\377\377\000\377\377\377\001\377\377\377\003\377"
- "\377\377\005\377\377\377\011\377\377\377\017\377\377\377\027\377\377\377!\377"
- "\377\377\061\244\244\244y\366\366\366\\\335\335\335u\261\261\261\272NNN\371"
- "\220\220\220\353fff\352\366\366\366\234\256\256\256\315YYY\363\323\323\323"
- "\306\202\202\202\350\256\256\256\335...\371\363\363\363\264///\372\232\232"
- "\232\330\352\352\352\242\253\253\253\314ddd\356\230\230\230\321\325\325\325"
- "|\370\370\370iPPP\341\351\351\351W\377\377\377!\377\377\377\026\377\377\377"
- "\016\377\377\377\010\377\377\377\004\377\377\377\002\377\377\377\001\377\377\377"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\"\"\"\000\377\377\377\000\377\377\377\001\377\377\377\002\377"
- "\377\377\004\377\377\377\007\377\377\377\013\377\377\377\022\367\367\367\040\377"
- "\377\377)\377\377\377\064\324\324\324j\235\235\235\257\273\273\273\235\361"
- "\361\361\223jjj\352\222\222\222\352\204\204\204\355\205\205\205\342\355\355"
- "\355\272)))\374\322\322\322\321TTT\365\252\252\252\350\061\061\061\372\304\304"
- "\304\331...\373\355\355\355\263\224\224\224\326\275\275\275\321TTT\366\234"
- "\234\234\316\375\375\375w\237\237\237\272ppp\321\377\377\377C\377\377\377"
- "\"\377\377\377\027\377\377\377\017\377\377\377\011\377\377\377\005\377\377\377"
- "\003\377\377\377\001\377\377\377\000FFF\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\030\030\030\000\377\377\377\000\377\377\377\000\377\377"
- "\377\001\377\377\377\002\377\377\377\003\377\377\377\005\377\377\377\011\377\377\377"
- "\015\377\377\377\025\263\263\263H\236\236\236|\375\375\375L\377\377\377T\235"
- "\235\235\262\253\253\253\304\237\237\237\312\334\334\334\273###\374\313\313"
- "\313\326ddd\364\254\254\254\340\217\217\217\355\225\225\225\354\212\212\212"
- "\356\213\213\213\364\063\063\063\374\214\214\214\363\226\226\226\344\330\330"
- "\330\303\241\241\241\342bbb\364\217\217\217\350\260\260\260\275\327\327\327"
- "\244\"\"\"\372\305\305\305\215\377\377\377\070\377\377\377%\377\377\377\032"
- "\377\377\377\021\377\377\377\013\377\377\377\007\377\377\377\004\377\377\377\002"
- "\377\377\377\001\377\377\377\001\377\377\377\000\202\202\202\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\001\377\377"
- "\377\001\377\377\377\002\377\377\377\003\377\377\377\005\377\377\377\010\377\377\377"
- "\013\377\377\377\021\377\377\377\031\377\377\377+\251\251\251\203mmm\314\322"
- "\322\322\213\374\374\374\177|||\334\205\205\205\350\243\243\243\335\242\242"
- "\242\346___\365\340\340\340\321DDD\372\244\244\244\357---\375\261\261\261"
- "\352CCC\374\035\035\035\376\061\061\061\376\333\333\333\321vvv\355\254\254\254"
- "\345bbb\370qqq\360\350\350\350\261RRR\361~~~\323\377\377\377Z\377\377\377"
- "\067\377\377\377(\377\377\377\035\377\377\377\023\377\377\377\015\377\377\377"
- "\010\377\377\377\005\377\377\377\004\377\377\377\002\377\377\377\002\377\377\377\001"
- "\377\377\377\001\377\377\377\000\255\255\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\032\032\032\000\377\377\377\000\377\377\377\000"
- "\377\377\377\001\377\377\377\001\377\377\377\002\377\377\377\002\377\377\377\003\377"
- "\377\377\004\377\377\377\005\377\377\377\010\377\377\377\013\377\377\377\017\377"
- "\377\377\025\377\377\377\035\377\377\377)\377\377\377@\315\315\315\205OOO\352"
- "\212\212\212\324\343\343\343\263lll\357BBB\372\221\221\221\360___\372\222"
- "\222\222\354\322\322\322\333BBB\375\061\061\061\376\240\240\240\362\023\023\023"
- "\377\000\000\000\377ddd\367\310\310\310\336\230\230\230\357OOO\372nnn\370\253\253"
- "\253\342kkk\360aaa\353\361\361\361\205\377\377\377Z\376\376\376J\374\374"
- "\374\070\377\377\377$\377\377\377\027\377\377\377\020\377\377\377\013\377\377"
- "\377\010\377\377\377\006\377\377\377\004\377\377\377\003\377\377\377\002\377\377\377"
- "\002\377\377\377\001\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\000\377\377\377\001\377\377\377"
- "\001\377\377\377\002\377\377\377\003\377\377\377\003\377\377\377\004\377\377\377\005"
- "\377\377\377\007\377\377\377\011\377\377\377\014\377\377\377\020\377\377\377\025"
- "\377\377\377\036\374\374\374-\373\373\373=\373\373\373M\374\374\374e\361\361"
- "\361\217\234\234\234\331EEE\367\250\250\250\344ppp\370\014\014\014\377YYY\374"
- "\022\022\022\377\257\257\257\350\262\262\262\351\000\000\000\377jjj\373\\\\\\\374"
- "\000\000\000\377\260\260\260\353ppp\365\217\217\217\363QQQ\374KKK\374ddd\370ee"
- "e\366\311\311\311\305\233\233\233\303{{{\305\227\227\227\242\253\253\253"
- "u\307\307\307@\377\377\377\034\377\377\377\024\377\377\377\017\377\377\377\013"
- "\377\377\377\011\377\377\377\007\377\377\377\005\377\377\377\004\377\377\377\003\377"
- "\377\377\002\377\377\377\002\377\377\377\001\377\377\377\000mmm\000\000\000\000\000\000\000\000\000"
- ")))\000\377\377\377\000\377\377\377\001\377\377\377\001\377\377\377\002\377\377\377"
- "\003\377\377\377\004\377\377\377\005\377\377\377\006\377\377\377\007\377\377\377\011"
- "\377\377\377\013\377\377\377\015\377\377\377\021\377\377\377\025\344\344\344"
- "!\264\264\264=\254\254\254^\244\244\244{\233\233\233\225\214\214\214\262"
- "uuu\321vvv\347vvv\362\030\030\030\376AAA\375\031\031\031\377\003\003\003\377\001\001\001\377"
- "\004\004\004\377\260\260\260\354\206\206\206\365\000\000\000\377uuu\372\003\003\003\377\245"
- "\245\245\361www\370+++\376%%%\376\015\015\015\377\005\005\005\377WWW\367\205\205\205"
- "\343\310\310\310\264\333\333\333\225\261\261\261\227\240\240\240\201\260"
- "\260\260U\340\340\340&\377\377\377\030\377\377\377\023\377\377\377\017\377\377"
- "\377\014\377\377\377\012\377\377\377\010\377\377\377\007\377\377\377\005\377\377"
- "\377\004\377\377\377\003\377\377\377\002\377\377\377\001\377\377\377\000\000\000\000\000\000"
- "\000\000\000\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\002\377\377\377"
- "\003\377\377\377\005\377\377\377\006\377\377\377\010\377\377\377\011\377\377\377"
- "\013\377\377\377\015\377\377\377\020\377\377\377\023\377\377\377\027\377\377\377"
- "\033\377\377\377\"\377\377\377+\377\377\377\066\377\377\377C\377\377\377R\377"
- "\377\377c\377\377\377x\357\357\357\225\305\305\305\276\225\225\225\340QQ"
- "Q\367\007\007\007\377\000\000\000\377\000\000\000\377\000\000\000\377\003\003\003\377|||\371)))\376KKK"
- "\375\000\000\000\377@@@\375\071\071\071\375\022\022\022\377\004\004\004\377NNN\374\207\207"
- "\207\361\234\234\234\344\203\203\203\340}}}\317\245\245\245\245\331\331\331"
- "k\373\373\373D\377\377\377\060\377\377\377#\377\377\377\034\377\377\377\027"
- "\377\377\377\023\377\377\377\020\377\377\377\016\377\377\377\014\377\377\377"
- "\012\377\377\377\010\377\377\377\006\377\377\377\004\377\377\377\003\377\377\377"
- "\002\377\377\377\001\377\377\377\000\000\000\000\000\377\377\377\001\377\377\377\001\377\377"
- "\377\002\377\377\377\003\377\377\377\005\377\377\377\007\377\377\377\011\377\377\377"
- "\013\377\377\377\015\377\377\377\017\377\377\377\022\377\377\377\025\377\377\377"
- "\030\377\377\377\034\377\377\377\"\375\375\375/\354\354\354G\304\304\304p\254"
- "\254\254\223\243\243\243\254\226\226\226\276\224\224\224\310\227\227\227"
- "\317\235\235\235\324\255\255\255\326\271\271\271\335\236\236\236\354nnn\371"
- "\037\037\037\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
- "\023\023\023\377\000\000\000\377\000\000\000\377\031\031\031\377III\373\213\213\213\353\277"
- "\277\277\314\354\354\354\244\375\375\375\202\375\375\375j\377\377\377V\377"
- "\377\377F\377\377\377\071\377\377\377/\377\377\377&\377\377\377\040\377\377"
- "\377\032\377\377\377\026\377\377\377\022\377\377\377\017\377\377\377\015\377\377"
- "\377\012\377\377\377\010\377\377\377\006\377\377\377\004\377\377\377\003\377\377"
- "\377\002\377\377\377\001\377\377\377\001\377\377\377\002\377\377\377\002\377\377\377"
- "\003\377\377\377\005\377\377\377\007\377\377\377\011\377\377\377\013\377\377\377"
- "\016\377\377\377\021\377\377\377\024\377\377\377\030\377\377\377\035\377\377\377"
- "$\377\377\377.\363\363\363?\314\314\314n\262\262\262\233\256\256\256\271"
- "\232\232\232\320\212\212\212\343ooo\360\060\060\060\373\005\005\005\377\000\000\000\377"
- "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
- "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
- "\000\377\002\002\002\377\010\010\010\377\015\015\015\376\021\021\021\374...\365JJJ\354aaa"
- "\340nnn\320\201\201\201\276\216\216\216\252\241\241\241\224\257\257\257|"
- "\316\316\316`\355\355\355B\377\377\377.\377\377\377\037\377\377\377\024\377"
- "\377\377\016\377\377\377\012\377\377\377\007\377\377\377\005\377\377\377\003\377"
- "\377\377\002\377\377\377\001\377\377\377\001\377\377\377\002\377\377\377\003\377\377"
- "\377\004\377\377\377\006\377\377\377\010\377\377\377\013\377\377\377\020\377\377"
- "\377\030\377\377\377$\376\376\376\063\346\346\346L\277\277\277n\236\236\236"
- "\223\204\204\204\265fff\324???\355\036\036\036\372\000\000\000\376\007\007\007\374###\370"
- "===\363LLL\353[[[\345uuu\334\177\177\177\330\211\211\211\321\224\224\224"
- "\314\233\233\233\312\246\246\246\303\254\254\254\276\255\255\255\275\260"
- "\260\260\273\273\273\273\263\301\301\301\257\305\305\305\255\307\307\307"
- "\254\311\311\311\252\311\311\311\251\310\310\310\247\306\306\306\244\301"
- "\301\301\242\270\270\270\241\252\252\252\250\243\243\243\251\240\240\240"
- "\247\234\234\234\246\225\225\225\254\207\207\207\265}}}\271ppp\305ggg\316"
- "JJJ\334>>>\345OOO\324xxx\252\246\246\246m\346\346\346\065\377\377\377\032\377"
- "\377\377\015\377\377\377\006\377\377\377\004\377\377\377\002\377\377\377\001\377\377"
- "\377\001\377\377\377\003\377\377\377\003\377\377\377\005\377\377\377\011\377\377\377"
- "\023\372\372\372$\314\314\314H\222\222\222\207mmm\272GGG\335\063\063\063\346"
- "TTT\335hhh\312\201\201\201\272\220\220\220\252\240\240\240\233\265\265\265"
- "\212\313\313\313y\342\342\342k\356\356\356b\375\375\375\\\377\377\377Y\377"
- "\377\377Y\377\377\377Y\377\377\377Z\377\377\377Z\377\377\377Z\377\377\377"
- "[\377\377\377[\377\377\377Z\377\377\377Z\377\377\377Z\377\377\377Y\377\377"
- "\377W\377\377\377W\377\377\377U\377\377\377T\377\377\377R\377\377\377O\377"
- "\377\377K\377\377\377G\377\377\377B\377\377\377?\377\377\377:\377\377\377"
- "\065\377\377\377\061\377\377\377/\377\377\377.\377\377\377,\377\377\377.\377"
- "\377\377/\377\377\377\063\372\372\372;\336\336\336J\267\267\267c\220\220\220"
- "\203uuu\231uuu\207\205\205\205Y\326\326\326\025\377\377\377\005\377\377\377"
- "\002\377\377\377\002\377\377\377\001\377\377\377\003\377\377\377\003\377\377\377\005"
- "\256\256\256&wwwuqqq\222zzz\225\233\233\233z\301\301\301_\344\344\344G\376"
- "\376\376;\377\377\377\064\377\377\377/\377\377\377-\377\377\377+\377\377\377"
- "*\377\377\377*\377\377\377+\377\377\377,\377\377\377.\377\377\377\060\377"
- "\377\377\062\377\377\377\064\377\377\377\066\377\377\377\070\377\377\377\071\377"
- "\377\377;\377\377\377<\377\377\377<\377\377\377<\377\377\377<\377\377\377"
- "<\377\377\377<\377\377\377;\377\377\377;\377\377\377:\377\377\377\071\377"
- "\377\377\067\377\377\377\065\377\377\377\063\377\377\377\060\377\377\377-\377"
- "\377\377)\377\377\377&\377\377\377\"\377\377\377\037\377\377\377\035\377\377"
- "\377\033\377\377\377\031\377\377\377\027\377\377\377\026\377\377\377\025\377\377"
- "\377\024\377\377\377\024\377\377\377\024\377\377\377\025\377\377\377\031\377\377"
- "\377\033\322\322\322\"\237\237\237\037\377\377\377\004\377\377\377\002\377\377"
- "\377\001\377\377\377\001\377\377\377\003\377\377\377\003\377\377\377\005\361\361\361"
- "\017\367\367\367\032\377\377\377\031\377\377\377\027\377\377\377\025\377\377\377"
- "\024\377\377\377\025\377\377\377\025\377\377\377\026\377\377\377\027\377\377\377"
- "\031\377\377\377\032\377\377\377\033\377\377\377\035\377\377\377\036\377\377\377"
- "\040\377\377\377!\377\377\377\"\377\377\377$\377\377\377%\377\377\377&\377"
- "\377\377&\377\377\377'\377\377\377(\377\377\377(\377\377\377(\377\377\377"
- "(\377\377\377(\377\377\377(\377\377\377'\377\377\377'\377\377\377'\377\377"
- "\377&\377\377\377%\377\377\377$\377\377\377#\377\377\377\"\377\377\377\040"
- "\377\377\377\036\377\377\377\034\377\377\377\032\377\377\377\030\377\377\377"
- "\026\377\377\377\025\377\377\377\023\377\377\377\022\377\377\377\021\377\377\377"
- "\021\377\377\377\020\377\377\377\017\377\377\377\016\377\377\377\015\377\377\377"
- "\013\377\377\377\012\377\377\377\010\377\377\377\007\377\377\377\005\377\377\377"
- "\003\377\377\377\002\377\377\377\001\377\377\377\001\377\377\377\002\377\377\377\003"
- "\377\377\377\004\377\377\377\005\377\377\377\007\377\377\377\011\377\377\377\012"
- "\377\377\377\014\377\377\377\016\377\377\377\017\377\377\377\020\377\377\377"
- "\021\377\377\377\022\377\377\377\022\377\377\377\023\377\377\377\024\377\377\377"
- "\025\377\377\377\025\377\377\377\026\377\377\377\026\377\377\377\027\377\377\377"
- "\027\377\377\377\030\377\377\377\030\377\377\377\030\377\377\377\031\377\377\377"
- "\031\377\377\377\031\377\377\377\031\377\377\377\031\377\377\377\031\377\377\377"
- "\030\377\377\377\030\377\377\377\030\377\377\377\027\377\377\377\027\377\377\377"
- "\027\377\377\377\026\377\377\377\025\377\377\377\025\377\377\377\024\377\377\377"
- "\022\377\377\377\021\377\377\377\020\377\377\377\017\377\377\377\016\377\377\377"
- "\016\377\377\377\015\377\377\377\014\377\377\377\014\377\377\377\014\377\377\377"
- "\013\377\377\377\013\377\377\377\012\377\377\377\011\377\377\377\010\377\377\377"
- "\007\377\377\377\006\377\377\377\005\377\377\377\003\377\377\377\002\377\377\377\001"
- "\377\377\377\001\377\377\377\001\377\377\377\002\377\377\377\002\377\377\377\003\377"
- "\377\377\004\377\377\377\005\377\377\377\006\377\377\377\010\377\377\377\011\377"
- "\377\377\012\377\377\377\013\377\377\377\013\377\377\377\014\377\377\377\014\377"
- "\377\377\014\377\377\377\015\377\377\377\015\377\377\377\015\377\377\377\016\377"
- "\377\377\016\377\377\377\016\377\377\377\016\377\377\377\016\377\377\377\016\377"
- "\377\377\016\377\377\377\016\377\377\377\016\377\377\377\016\377\377\377\016\377"
- "\377\377\016\377\377\377\016\377\377\377\016\377\377\377\016\377\377\377\016\377"
- "\377\377\015\377\377\377\015\377\377\377\015\377\377\377\015\377\377\377\014\377"
- "\377\377\014\377\377\377\014\377\377\377\013\377\377\377\012\377\377\377\012\377"
- "\377\377\011\377\377\377\011\377\377\377\010\377\377\377\010\377\377\377\010\377"
- "\377\377\010\377\377\377\010\377\377\377\007\377\377\377\007\377\377\377\007\377"
- "\377\377\006\377\377\377\006\377\377\377\006\377\377\377\005\377\377\377\004\377\377"
- "\377\003\377\377\377\002\377\377\377\002\377\377\377\001\377\377\377\000\000\000\000\000\377"
- "\377\377\001\377\377\377\001\377\377\377\002\377\377\377\003\377\377\377\003\377\377"
- "\377\004\377\377\377\005\377\377\377\006\377\377\377\006\377\377\377\007\377\377\377"
- "\007\377\377\377\007\377\377\377\007\377\377\377\007\377\377\377\007\377\377\377\010"
- "\377\377\377\010\377\377\377\010\377\377\377\010\377\377\377\010\377\377\377"
- "\010\377\377\377\010\377\377\377\007\377\377\377\007\377\377\377\007\377\377\377"
- "\007\377\377\377\007\377\377\377\007\377\377\377\007\377\377\377\007\377\377\377\007"
- "\377\377\377\007\377\377\377\007\377\377\377\006\377\377\377\006\377\377\377\006\377"
- "\377\377\006\377\377\377\006\377\377\377\006\377\377\377\005\377\377\377\005\377\377"
- "\377\005\377\377\377\005\377\377\377\005\377\377\377\004\377\377\377\004\377\377\377"
- "\004\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377\004"
- "\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377\003\377\377\377\003\377"
- "\377\377\002\377\377\377\002\377\377\377\001\377\377\377\001\377\377\377\000\"\"\""
- "\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\001\377\377\377\001\377\377"
- "\377\002\377\377\377\002\377\377\377\003\377\377\377\003\377\377\377\004\377\377\377"
- "\004\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377\004"
- "\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377\004\377"
- "\377\377\004\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377\003\377\377"
- "\377\003\377\377\377\003\377\377\377\003\377\377\377\003\377\377\377\003\377\377\377"
- "\003\377\377\377\003\377\377\377\003\377\377\377\003\377\377\377\003\377\377\377\003"
- "\377\377\377\003\377\377\377\003\377\377\377\002\377\377\377\002\377\377\377\002\377"
- "\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377"
- "\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377"
- "\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\001"
- "\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\001\377\377"
- "\377\001\377\377\377\001\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377"
- "\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002"
- "\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377"
- "\377\377\002\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377"
- "\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377"
- "\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001"
- "\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377"
- "\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377"
- "\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377"
- "\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\000"
- "\377\377\377\000\"\"\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\060\060\060\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\001"
- "\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377"
- "\377\377\001\377\377\377\001\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
- "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
- "\000\377\377\377\000\377\377\377\000JJJ\000$$$\000\040\040\040\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
- "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000",
-};
-
diff --git a/Editor/icon.h b/Editor/icon.h
new file mode 100644
index 000000000..1502923bf
--- /dev/null
+++ b/Editor/icon.h
@@ -0,0 +1,2056 @@
+struct EmbeddedImage {
+const unsigned int width = 128;
+const unsigned int height = 128;
+const unsigned int bytes_per_pixel = 4;
+const char comment[256] = "Wicked Editor Embedded Icon Data SDL";
+const unsigned char pixel_data[128 * 128 * 4] = {
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,14,14,14,0,15,15,15,0,15,15,15,0,15,15,15,0,
+15,15,15,0,15,15,15,0,15,15,15,0,15,15,15,0,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,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,1,1,0,19,19,19,0,92,92,92,1,159,159,159,1,229,229,229,1,233,233,233,1,236,236,236,1,238,238,238,1,
+238,238,238,1,238,238,238,1,238,238,238,1,238,238,238,1,167,167,167,1,104,104,104,1,99,99,99,1,21,21,21,0,
+14,14,14,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,
+61,61,61,0,218,218,218,1,243,243,243,1,248,248,248,1,251,251,251,2,253,253,253,2,254,254,254,2,255,255,255,2,
+255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,254,254,254,1,240,240,240,1,
+231,231,231,1,113,113,113,1,57,57,57,0,14,14,14,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,54,54,54,0,161,161,161,1,
+238,238,238,1,249,249,249,1,251,251,251,2,253,253,253,2,254,254,254,3,255,255,255,3,255,255,255,3,255,255,255,3,
+255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,
+255,255,255,2,255,255,255,1,247,247,247,1,231,231,231,1,113,113,113,1,57,57,57,0,8,8,8,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,14,14,14,0,56,56,56,0,112,112,112,1,235,235,235,1,251,251,251,1,
+253,253,253,2,253,253,253,2,254,254,254,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,
+255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,
+255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,247,247,247,1,167,167,167,1,57,57,57,0,
+8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,15,15,15,0,
+57,57,57,0,104,104,104,1,113,113,113,1,230,230,230,1,245,245,245,1,254,254,254,1,254,254,254,2,254,254,254,3,
+255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,7,
+255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,
+255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,247,247,247,1,
+167,167,167,1,57,57,57,0,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,57,57,57,0,167,167,167,1,238,238,238,1,
+247,247,247,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,
+255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10,
+255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,
+255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,
+255,255,255,1,247,247,247,1,161,161,161,1,20,20,20,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,56,56,56,0,167,167,167,1,247,247,247,1,255,255,255,1,255,255,255,2,
+255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,
+255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,13,
+255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,
+255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,
+255,255,255,2,255,255,255,2,254,254,254,1,232,232,232,1,63,63,63,0,1,1,1,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,13,13,13,0,108,108,108,1,239,239,239,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,
+255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,
+255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,18,
+255,255,255,18,255,255,255,17,255,255,255,17,255,255,255,16,255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,13,
+255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,
+255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,1,239,239,239,1,65,65,65,0,8,8,8,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+13,13,13,0,162,162,162,1,254,254,254,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,4,
+255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,12,255,255,255,14,
+255,255,255,15,255,255,255,17,255,255,255,18,255,255,255,20,255,255,255,21,255,255,255,22,255,255,255,23,255,255,255,23,
+255,255,255,23,255,255,255,23,255,255,255,22,255,255,255,21,255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,17,
+255,255,255,15,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,
+255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,1,247,247,247,1,161,161,161,1,13,13,13,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+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,1,1,0,56,56,56,0,
+168,168,168,1,254,254,254,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,
+255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,18,
+255,255,255,20,255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,27,255,255,255,28,255,255,255,29,255,255,255,29,
+255,255,255,29,255,255,255,29,255,255,255,28,255,255,255,27,255,255,255,26,255,255,255,24,255,255,255,23,255,255,255,21,
+255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,8,
+255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,254,254,254,1,162,162,162,1,
+13,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,63,63,63,0,239,239,239,1,
+255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9,
+255,255,255,10,255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,24,
+255,255,255,27,255,255,255,29,255,255,255,32,255,255,255,34,255,255,255,35,255,255,255,36,255,255,255,37,255,255,255,37,
+255,255,255,37,255,255,255,36,255,255,255,35,255,255,255,34,255,255,255,33,255,255,255,31,255,255,255,29,255,255,255,27,
+255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11,
+255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,254,254,254,1,
+161,161,161,1,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,20,20,0,232,232,232,1,255,255,255,1,
+255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,10,255,255,255,12,
+255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,21,255,255,255,23,255,255,255,26,255,255,255,29,255,255,255,32,
+255,255,255,34,255,255,255,37,255,255,255,40,255,255,255,42,255,255,255,43,255,255,255,44,255,255,255,45,255,255,255,45,
+255,255,255,45,255,255,255,44,255,255,255,44,255,255,255,42,255,255,255,41,255,255,255,39,255,255,255,37,255,255,255,34,
+255,255,255,32,255,255,255,29,255,255,255,26,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,16,255,255,255,14,
+255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,
+247,247,247,1,65,65,65,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,13,0,162,162,162,1,254,254,254,1,255,255,255,2,
+255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,13,255,255,255,15,
+255,255,255,18,255,255,255,20,255,255,255,23,255,255,255,26,255,255,255,30,255,255,255,33,255,255,255,36,255,255,255,40,
+255,255,255,42,255,255,255,45,255,255,255,48,255,255,255,50,255,255,255,52,255,255,255,54,255,255,255,54,255,255,255,55,
+255,255,255,55,255,255,255,54,255,255,255,53,255,255,255,51,255,255,255,49,255,255,255,47,255,255,255,45,255,255,255,42,
+255,255,255,39,255,255,255,36,255,255,255,33,255,255,255,29,255,255,255,26,255,255,255,23,255,255,255,20,255,255,255,17,
+255,255,255,14,255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,
+255,255,255,1,239,239,239,1,63,63,63,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,13,13,13,0,162,162,162,1,254,254,254,1,255,255,255,2,255,255,255,3,
+255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,13,255,255,255,16,255,255,255,19,
+255,255,255,22,255,255,255,26,255,255,255,29,255,255,255,33,255,255,255,37,255,255,255,41,255,255,255,44,255,255,255,48,
+255,255,255,52,255,255,255,55,255,255,255,58,255,255,255,61,255,255,255,64,255,255,255,66,255,255,255,68,255,255,255,69,
+255,255,255,68,255,255,255,65,255,255,255,63,255,255,255,61,255,255,255,59,255,255,255,57,255,255,255,54,255,255,255,51,
+255,255,255,47,255,255,255,44,255,255,255,40,255,255,255,36,255,255,255,32,255,255,255,29,255,255,255,25,255,255,255,21,
+255,255,255,18,255,255,255,15,255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,
+255,255,255,2,255,255,255,1,232,232,232,1,20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,108,108,108,1,254,254,254,1,255,255,255,2,255,255,255,3,255,255,255,4,
+255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,13,255,255,255,16,255,255,255,20,255,255,255,23,
+255,255,255,27,255,255,255,32,255,255,255,36,255,255,255,40,255,255,255,45,255,255,255,49,255,255,255,53,255,255,255,57,
+255,255,255,62,255,255,255,68,255,255,255,77,255,255,255,84,255,255,255,91,255,255,255,97,252,252,252,104,247,247,247,109,
+245,245,245,104,254,254,254,86,255,255,255,76,255,255,255,72,255,255,255,70,255,255,255,67,255,255,255,64,255,255,255,60,
+255,255,255,56,255,255,255,52,255,255,255,48,255,255,255,43,255,255,255,39,255,255,255,35,255,255,255,30,255,255,255,26,
+255,255,255,22,255,255,255,18,255,255,255,15,255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,6,255,255,255,4,
+255,255,255,3,255,255,255,2,254,254,254,1,161,161,161,1,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,56,56,56,0,239,239,239,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,5,
+255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,13,255,255,255,17,255,255,255,20,255,255,255,24,255,255,255,28,
+255,255,255,33,255,255,255,38,255,255,255,42,255,255,255,47,255,255,255,53,255,255,255,58,255,255,255,63,255,255,255,67,
+255,255,255,75,251,251,251,95,221,221,221,131,183,183,183,157,150,150,150,176,120,120,120,192,92,92,92,206,64,64,64,218,
+67,67,67,211,240,240,240,124,255,255,255,92,255,255,255,84,255,255,255,81,255,255,255,78,255,255,255,74,255,255,255,70,
+255,255,255,67,255,255,255,62,255,255,255,56,255,255,255,51,255,255,255,46,255,255,255,41,255,255,255,36,255,255,255,31,
+255,255,255,27,255,255,255,22,255,255,255,18,255,255,255,15,255,255,255,12,255,255,255,9,255,255,255,7,255,255,255,5,
+255,255,255,4,255,255,255,3,255,255,255,2,247,247,247,1,65,65,65,0,1,1,1,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,8,8,8,0,167,167,167,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,
+255,255,255,8,255,255,255,11,255,255,255,13,255,255,255,17,255,255,255,20,255,255,255,24,255,255,255,29,255,255,255,34,
+255,255,255,39,255,255,255,44,255,255,255,50,255,255,255,56,255,255,255,61,255,255,255,67,255,255,255,73,255,255,255,79,
+255,255,255,91,201,201,201,142,23,23,23,242,9,9,9,251,5,5,5,253,2,2,2,254,0,0,0,255,0,0,0,255,
+9,9,9,251,183,183,183,169,255,255,255,112,255,255,255,98,255,255,255,93,255,255,255,90,255,255,255,88,255,255,255,90,
+251,251,251,92,255,255,255,82,255,255,255,69,255,255,255,60,255,255,255,54,255,255,255,48,255,255,255,42,255,255,255,37,
+255,255,255,31,255,255,255,27,255,255,255,22,255,255,255,18,255,255,255,15,255,255,255,12,255,255,255,9,255,255,255,7,
+255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,1,232,232,232,1,20,20,20,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,57,57,57,0,247,247,247,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,
+255,255,255,10,255,255,255,13,255,255,255,16,255,255,255,20,255,255,255,24,255,255,255,29,255,255,255,34,255,255,255,39,
+255,255,255,45,255,255,255,52,255,255,255,58,255,255,255,65,255,255,255,71,255,255,255,77,255,255,255,83,255,255,255,90,
+255,255,255,106,189,189,189,165,9,9,9,251,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+1,1,1,254,108,108,108,208,253,253,253,135,255,255,255,114,255,255,255,108,255,255,255,105,255,255,255,112,226,226,226,139,
+104,104,104,189,199,199,199,144,254,254,254,99,255,255,255,76,255,255,255,63,255,255,255,56,255,255,255,49,255,255,255,43,
+255,255,255,37,255,255,255,31,255,255,255,26,255,255,255,22,255,255,255,18,255,255,255,14,255,255,255,11,255,255,255,8,
+255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,254,254,254,1,108,108,108,1,1,1,1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+8,8,8,0,167,167,167,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,9,
+255,255,255,12,255,255,255,15,255,255,255,19,255,255,255,23,255,255,255,28,255,255,255,34,255,255,255,39,255,255,255,46,
+255,255,255,52,255,255,255,60,255,255,255,69,255,255,255,76,255,255,255,82,255,255,255,88,255,255,255,95,255,255,255,102,
+255,255,255,119,180,180,180,178,8,8,8,252,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,50,50,50,237,238,238,238,171,254,254,254,143,255,255,255,132,255,255,255,134,214,214,214,163,56,56,56,228,
+2,2,2,254,28,28,28,240,162,162,162,172,250,250,250,111,255,255,255,81,255,255,255,65,255,255,255,56,255,255,255,49,
+255,255,255,43,255,255,255,36,255,255,255,31,255,255,255,26,255,255,255,21,255,255,255,17,255,255,255,13,255,255,255,10,
+255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,239,239,239,1,56,56,56,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+57,57,57,0,247,247,247,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,
+255,255,255,14,255,255,255,18,255,255,255,22,255,255,255,27,255,255,255,33,255,255,255,39,255,255,255,45,255,255,255,52,
+255,255,255,60,255,255,255,74,251,251,251,94,249,249,249,106,255,255,255,104,255,255,255,104,255,255,255,108,255,255,255,117,
+255,255,255,138,172,172,172,194,7,7,7,253,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,6,6,6,253,62,62,62,235,109,109,109,214,183,183,183,191,196,196,196,191,44,44,44,238,1,1,1,255,
+0,0,0,255,0,0,0,255,13,13,13,249,115,115,115,194,242,242,242,123,255,255,255,86,255,255,255,66,255,255,255,56,
+255,255,255,49,255,255,255,42,255,255,255,36,255,255,255,30,255,255,255,24,255,255,255,20,255,255,255,16,255,255,255,12,
+255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,1,167,167,167,1,8,8,8,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,
+167,167,167,1,255,255,255,1,255,255,255,2,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,13,
+255,255,255,17,255,255,255,21,255,255,255,26,255,255,255,31,255,255,255,37,255,255,255,44,255,255,255,52,255,255,255,59,
+255,255,255,73,252,252,252,103,137,137,137,173,79,79,79,208,195,195,195,165,250,250,250,138,255,255,255,134,252,252,252,148,
+205,205,205,182,78,78,78,231,3,3,3,254,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,9,9,9,252,15,15,15,251,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,5,5,5,253,75,75,75,215,221,221,221,134,254,254,254,85,255,255,255,65,
+255,255,255,55,255,255,255,48,255,255,255,40,255,255,255,34,255,255,255,28,255,255,255,22,255,255,255,18,255,255,255,14,
+255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,240,240,240,1,21,21,21,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,21,21,0,
+240,240,240,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15,
+255,255,255,19,255,255,255,23,255,255,255,29,255,255,255,36,255,255,255,42,255,255,255,50,255,255,255,58,255,255,255,70,
+254,254,254,97,180,180,180,162,19,19,19,245,1,1,1,255,16,16,16,248,90,90,90,218,200,200,200,191,115,115,115,215,
+21,21,21,248,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,2,2,2,254,58,58,58,218,244,244,244,108,255,255,255,74,
+255,255,255,62,255,255,255,54,255,255,255,45,255,255,255,38,255,255,255,32,255,255,255,26,255,255,255,21,255,255,255,16,
+255,255,255,13,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,254,254,254,1,108,108,108,1,
+1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,99,99,1,
+254,254,254,1,255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,13,255,255,255,17,
+255,255,255,21,255,255,255,26,255,255,255,33,255,255,255,39,255,255,255,47,255,255,255,55,255,255,255,66,255,255,255,89,
+216,216,216,143,38,38,38,235,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,12,12,12,252,3,3,3,254,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,
+1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,2,2,2,254,102,102,102,201,251,251,251,110,255,255,255,80,
+255,255,255,68,255,255,255,59,255,255,255,51,255,255,255,43,255,255,255,36,255,255,255,29,255,255,255,23,255,255,255,19,
+255,255,255,15,255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,232,232,232,1,
+20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,167,167,167,1,
+255,255,255,1,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15,255,255,255,19,
+255,255,255,23,255,255,255,29,255,255,255,36,255,255,255,44,255,255,255,52,255,255,255,62,255,255,255,81,240,240,240,126,
+67,67,67,219,1,1,1,254,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,1,1,1,255,1,1,1,255,2,2,2,255,3,3,3,255,4,4,4,255,5,5,5,255,5,5,5,255,
+5,5,5,255,5,5,5,255,4,4,4,255,2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,30,30,30,242,221,221,221,156,255,255,255,106,255,255,255,85,
+255,255,255,74,255,255,255,64,255,255,255,56,255,255,255,47,255,255,255,39,255,255,255,32,255,255,255,26,255,255,255,21,
+255,255,255,17,255,255,255,13,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,254,254,254,1,
+99,99,99,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,21,21,0,240,240,240,1,
+255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,6,255,255,255,9,255,255,255,12,255,255,255,16,255,255,255,21,
+255,255,255,26,255,255,255,32,255,255,255,40,255,255,255,48,255,255,255,57,255,255,255,70,248,248,248,105,105,105,105,197,
+4,4,4,253,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,
+1,1,1,255,2,2,2,255,4,4,4,255,7,7,7,255,10,10,10,255,14,14,14,255,16,16,16,255,17,17,17,255,
+17,17,17,255,15,15,15,255,12,12,12,255,9,9,9,255,6,6,6,255,3,3,3,255,1,1,1,255,1,1,1,255,
+0,0,0,255,0,0,0,255,0,0,0,255,4,4,4,254,127,127,127,209,253,253,253,137,255,255,255,106,255,255,255,92,
+255,255,255,80,255,255,255,70,255,255,255,61,255,255,255,52,255,255,255,43,255,255,255,36,255,255,255,29,255,255,255,23,
+255,255,255,18,255,255,255,14,255,255,255,10,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,2,255,255,255,1,
+167,167,167,1,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,99,99,1,254,254,254,1,
+255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,10,255,255,255,13,255,255,255,18,255,255,255,22,
+255,255,255,28,255,255,255,35,255,255,255,43,255,255,255,52,255,255,255,61,255,255,255,77,200,200,200,133,19,19,19,244,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,
+2,2,2,255,6,6,6,255,12,12,12,255,18,18,18,255,24,24,24,255,29,29,29,255,32,32,32,255,33,33,33,255,
+33,33,33,255,31,31,31,255,26,26,26,255,21,21,21,255,15,15,15,255,9,9,9,255,4,4,4,255,1,1,1,255,
+1,1,1,255,0,0,0,255,0,0,0,255,9,9,9,253,179,179,179,200,255,255,255,140,255,255,255,112,255,255,255,98,
+255,255,255,87,255,255,255,76,255,255,255,65,255,255,255,56,255,255,255,47,255,255,255,39,255,255,255,32,255,255,255,25,
+255,255,255,20,255,255,255,16,255,255,255,12,255,255,255,9,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,
+240,240,240,1,21,21,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,113,113,113,1,255,255,255,1,
+255,255,255,2,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15,255,255,255,19,255,255,255,24,
+255,255,255,31,255,255,255,38,255,255,255,46,255,255,255,55,255,255,255,65,255,255,255,80,248,248,248,114,117,117,117,196,
+8,8,8,252,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,2,2,2,255,
+8,8,8,255,16,16,16,255,25,25,25,255,34,34,34,255,41,41,41,255,47,47,47,255,50,50,50,255,52,52,52,255,
+51,51,51,255,48,48,48,255,44,44,44,255,37,37,37,255,29,29,29,255,20,20,20,255,11,11,11,255,4,4,4,255,
+1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,54,54,54,236,240,240,240,162,255,255,255,125,255,255,255,108,
+255,255,255,96,255,255,255,83,255,255,255,71,255,255,255,60,255,255,255,51,255,255,255,42,255,255,255,34,255,255,255,27,
+255,255,255,22,255,255,255,17,255,255,255,13,255,255,255,10,255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,
+254,254,254,1,99,99,99,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,14,14,0,231,231,231,1,255,255,255,2,
+255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,9,255,255,255,12,255,255,255,16,255,255,255,20,255,255,255,26,
+255,255,255,33,255,255,255,41,255,255,255,49,255,255,255,59,255,255,255,69,255,255,255,81,255,255,255,100,246,246,246,137,
+108,108,108,210,6,6,6,253,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,2,2,2,255,8,8,8,255,
+17,17,17,255,28,28,28,255,39,39,39,255,49,49,49,255,57,57,57,255,63,63,63,255,68,68,68,255,70,70,70,255,
+69,69,69,255,66,66,66,255,61,61,61,255,52,52,52,255,43,43,43,255,33,33,33,255,22,22,22,255,12,12,12,255,
+4,4,4,255,1,1,1,255,1,1,1,255,0,0,0,255,6,6,6,253,145,145,145,206,249,249,249,156,250,250,250,136,
+252,252,252,122,253,253,253,105,255,255,255,83,255,255,255,65,255,255,255,54,255,255,255,45,255,255,255,37,255,255,255,30,
+255,255,255,23,255,255,255,19,255,255,255,14,255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,2,
+255,255,255,1,113,113,113,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,0,238,238,238,1,255,255,255,2,
+255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,13,255,255,255,17,255,255,255,22,255,255,255,28,
+255,255,255,35,255,255,255,43,255,255,255,52,255,255,255,62,255,255,255,72,255,255,255,84,255,255,255,97,255,255,255,118,
+245,245,245,160,78,78,78,231,1,1,1,255,0,0,0,255,1,1,1,255,2,2,2,255,7,7,7,255,16,16,16,255,
+28,28,28,255,40,40,40,255,52,52,52,255,63,63,63,255,72,72,72,255,78,78,78,255,83,83,83,255,85,85,85,255,
+85,85,85,255,81,81,81,255,75,75,75,255,66,66,66,255,56,56,56,255,45,45,45,255,33,33,33,255,21,21,21,255,
+10,10,10,255,3,3,3,255,1,1,1,255,1,1,1,255,0,0,0,255,29,29,29,247,73,73,73,229,80,80,80,220,
+86,86,86,212,103,103,103,194,235,235,235,114,255,255,255,73,255,255,255,57,255,255,255,48,255,255,255,40,255,255,255,32,
+255,255,255,25,255,255,255,20,255,255,255,15,255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,
+255,255,255,2,231,231,231,1,14,14,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57,57,57,0,247,247,247,1,255,255,255,2,
+255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,10,255,255,255,14,255,255,255,18,255,255,255,23,255,255,255,30,
+255,255,255,37,255,255,255,45,255,255,255,54,255,255,255,64,255,255,255,76,255,255,255,87,255,255,255,100,255,255,255,118,
+248,248,248,155,70,70,70,231,0,0,0,255,0,0,0,255,1,1,1,255,4,4,4,255,12,12,12,255,25,25,25,255,
+38,38,38,255,51,51,51,255,63,63,63,255,74,74,74,255,84,84,84,255,93,93,93,255,99,99,99,255,102,102,102,255,
+101,101,101,255,96,96,96,255,88,88,88,255,78,78,78,255,68,68,68,255,55,55,55,255,43,43,43,255,30,30,30,255,
+17,17,17,255,7,7,7,255,2,2,2,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,10,10,10,250,192,192,192,149,255,255,255,82,255,255,255,60,255,255,255,50,255,255,255,42,255,255,255,34,
+255,255,255,27,255,255,255,21,255,255,255,16,255,255,255,12,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3,
+255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,1,255,255,255,2,
+255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,14,255,255,255,19,255,255,255,24,255,255,255,31,
+255,255,255,38,255,255,255,47,255,255,255,56,255,255,255,67,255,255,255,79,255,255,255,91,255,255,255,105,255,255,255,125,
+232,232,232,169,24,24,24,247,0,0,0,255,1,1,1,255,2,2,2,255,7,7,7,255,17,17,17,255,32,32,32,255,
+46,46,46,255,61,61,61,255,73,73,73,255,85,85,85,255,97,97,97,255,107,107,107,255,114,114,114,255,117,117,117,255,
+116,116,116,255,110,110,110,255,101,101,101,255,89,89,89,255,77,77,77,255,65,65,65,255,51,51,51,255,38,38,38,255,
+24,24,24,255,12,12,12,255,4,4,4,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,6,6,6,252,158,158,158,171,255,255,255,89,255,255,255,63,255,255,255,52,255,255,255,43,255,255,255,35,
+255,255,255,28,255,255,255,22,255,255,255,17,255,255,255,13,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3,
+255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,1,255,255,255,2,
+255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15,255,255,255,19,255,255,255,25,255,255,255,32,
+255,255,255,40,255,255,255,48,255,255,255,58,255,255,255,69,255,255,255,84,255,255,255,101,255,255,255,121,252,252,252,147,
+179,179,179,198,9,9,9,253,0,0,0,255,1,1,1,255,3,3,3,255,10,10,10,255,23,23,23,255,38,38,38,255,
+53,53,53,255,68,68,68,255,82,82,82,255,96,96,96,255,108,108,108,255,120,120,120,255,129,129,129,255,133,133,133,255,
+131,131,131,255,124,124,124,255,112,112,112,255,99,99,99,255,86,86,86,255,72,72,72,255,58,58,58,255,43,43,43,255,
+29,29,29,255,15,15,15,255,6,6,6,255,2,2,2,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,3,3,3,254,128,128,128,187,255,255,255,95,255,255,255,66,255,255,255,53,255,255,255,44,255,255,255,36,
+255,255,255,29,255,255,255,23,255,255,255,17,255,255,255,13,255,255,255,10,255,255,255,7,255,255,255,5,255,255,255,3,
+255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,2,255,255,255,3,
+255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15,255,255,255,20,255,255,255,26,255,255,255,33,
+255,255,255,40,255,255,255,49,255,255,255,60,255,255,255,75,250,250,250,104,227,227,227,144,160,160,160,184,94,94,94,217,
+37,37,37,244,1,1,1,255,0,0,0,255,1,1,1,255,4,4,4,255,12,12,12,255,27,27,27,255,43,43,43,255,
+58,58,58,255,73,73,73,255,89,89,89,255,103,103,103,255,117,117,117,255,131,131,131,255,142,142,142,255,148,148,148,255,
+146,146,146,255,135,135,135,255,122,122,122,255,107,107,107,255,92,92,92,255,77,77,77,255,62,62,62,255,47,47,47,255,
+33,33,33,255,18,18,18,255,8,8,8,255,2,2,2,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,99,99,99,202,253,253,253,102,255,255,255,68,255,255,255,55,255,255,255,45,255,255,255,37,
+255,255,255,30,255,255,255,23,255,255,255,18,255,255,255,14,255,255,255,10,255,255,255,7,255,255,255,5,255,255,255,3,
+255,255,255,2,240,240,240,1,21,21,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,2,255,255,255,3,
+255,255,255,4,255,255,255,6,255,255,255,9,255,255,255,12,255,255,255,16,255,255,255,21,255,255,255,27,255,255,255,33,
+255,255,255,41,255,255,255,50,255,255,255,61,255,255,255,83,154,154,154,159,22,22,22,243,6,6,6,253,1,1,1,255,
+0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,4,4,4,255,14,14,14,255,29,29,29,255,45,45,45,255,
+61,61,61,255,76,76,76,255,92,92,92,255,108,108,108,255,123,123,123,255,137,137,137,255,152,152,152,255,160,160,160,255,
+157,157,157,255,144,144,144,255,128,128,128,255,112,112,112,255,95,95,95,255,80,80,80,255,65,65,65,255,49,49,49,255,
+35,35,35,255,20,20,20,255,9,9,9,255,2,2,2,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,71,71,71,216,249,249,249,110,255,255,255,69,255,255,255,55,255,255,255,46,255,255,255,37,
+255,255,255,30,255,255,255,24,255,255,255,18,255,255,255,14,255,255,255,10,255,255,255,7,255,255,255,5,255,255,255,3,
+255,255,255,2,254,254,254,1,99,99,99,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,167,167,167,1,255,255,255,2,255,255,255,3,
+255,255,255,4,255,255,255,6,255,255,255,9,255,255,255,12,255,255,255,16,255,255,255,21,255,255,255,27,255,255,255,34,
+255,255,255,41,255,255,255,51,255,255,255,62,255,255,255,87,156,156,156,167,6,6,6,252,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,4,4,4,255,14,14,14,255,29,29,29,255,46,46,46,255,
+61,61,61,255,77,77,77,255,93,93,93,255,108,108,108,255,124,124,124,255,139,139,139,255,153,153,153,255,161,161,161,255,
+158,158,158,255,144,144,144,255,128,128,128,255,113,113,113,255,97,97,97,255,81,81,81,255,66,66,66,255,50,50,50,255,
+35,35,35,255,21,21,21,255,9,9,9,255,3,3,3,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,47,47,47,226,244,244,244,112,255,255,255,70,255,255,255,56,255,255,255,46,255,255,255,37,
+255,255,255,30,255,255,255,24,255,255,255,18,255,255,255,14,255,255,255,10,255,255,255,7,255,255,255,5,255,255,255,3,
+255,255,255,2,247,247,247,1,57,57,57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,167,167,167,1,255,255,255,2,255,255,255,3,
+255,255,255,4,255,255,255,6,255,255,255,9,255,255,255,12,255,255,255,16,255,255,255,21,255,255,255,27,255,255,255,33,
+255,255,255,41,255,255,255,50,255,255,255,61,255,255,255,84,193,193,193,154,10,10,10,250,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,4,4,4,255,13,13,13,255,28,28,28,255,45,45,45,255,
+60,60,60,255,76,76,76,255,90,90,90,255,105,105,105,255,120,120,120,255,132,132,132,255,144,144,144,255,151,151,151,255,
+148,148,148,255,137,137,137,255,124,124,124,255,109,109,109,255,94,94,94,255,79,79,79,255,64,64,64,255,49,49,49,255,
+34,34,34,255,20,20,20,255,8,8,8,255,2,2,2,255,1,1,1,255,0,0,0,255,0,0,0,255,5,5,5,253,
+18,18,18,248,55,55,55,227,126,126,126,180,249,249,249,98,255,255,255,68,255,255,255,55,255,255,255,45,255,255,255,37,
+255,255,255,30,255,255,255,23,255,255,255,18,255,255,255,14,255,255,255,10,255,255,255,7,255,255,255,5,255,255,255,3,
+255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,2,255,255,255,3,
+255,255,255,4,255,255,255,6,255,255,255,9,255,255,255,12,255,255,255,16,255,255,255,21,255,255,255,26,255,255,255,33,
+255,255,255,41,255,255,255,50,255,255,255,60,255,255,255,80,230,230,230,138,17,17,17,247,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,3,3,3,255,11,11,11,255,25,25,25,255,42,42,42,255,
+57,57,57,255,72,72,72,255,86,86,86,255,100,100,100,255,112,112,112,255,123,123,123,255,131,131,131,255,135,135,135,255,
+134,134,134,255,126,126,126,255,115,115,115,255,102,102,102,255,89,89,89,255,75,75,75,255,60,60,60,255,46,46,46,255,
+31,31,31,255,17,17,17,255,7,7,7,255,2,2,2,255,1,1,1,255,0,0,0,255,28,28,28,247,148,148,148,205,
+221,221,221,165,246,246,246,134,254,254,254,106,255,255,255,81,255,255,255,65,255,255,255,54,255,255,255,44,255,255,255,36,
+255,255,255,29,255,255,255,23,255,255,255,17,255,255,255,13,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3,
+255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,1,255,255,255,3,
+255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15,255,255,255,20,255,255,255,25,255,255,255,32,
+255,255,255,40,255,255,255,48,255,255,255,58,255,255,255,76,241,241,241,127,32,32,32,238,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,2,2,2,255,8,8,8,255,21,21,21,255,37,37,37,255,
+52,52,52,255,66,66,66,255,79,79,79,255,91,91,91,255,102,102,102,255,111,111,111,255,118,118,118,255,121,121,121,255,
+119,119,119,255,114,114,114,255,104,104,104,255,93,93,93,255,81,81,81,255,68,68,68,255,55,55,55,255,41,41,41,255,
+27,27,27,255,14,14,14,255,5,5,5,255,1,1,1,255,1,1,1,255,0,0,0,255,75,75,75,228,249,249,249,156,
+255,255,255,122,255,255,255,103,255,255,255,88,255,255,255,75,255,255,255,63,255,255,255,52,255,255,255,43,255,255,255,35,
+255,255,255,28,255,255,255,22,255,255,255,17,255,255,255,13,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3,
+255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,1,255,255,255,2,
+255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15,255,255,255,19,255,255,255,25,255,255,255,31,
+255,255,255,39,255,255,255,47,255,255,255,56,255,255,255,72,245,245,245,116,52,52,52,226,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,5,5,5,255,15,15,15,255,30,30,30,255,
+45,45,45,255,58,58,58,255,70,70,70,255,81,81,81,255,91,91,91,255,99,99,99,255,104,104,104,255,107,107,107,255,
+105,105,105,255,100,100,100,255,92,92,92,255,83,83,83,255,72,72,72,255,61,61,61,255,48,48,48,255,35,35,35,255,
+22,22,22,255,11,11,11,255,3,3,3,255,1,1,1,255,0,0,0,255,3,3,3,254,133,133,133,206,255,255,255,138,
+255,255,255,111,255,255,255,96,255,255,255,83,255,255,255,72,255,255,255,61,255,255,255,51,255,255,255,42,255,255,255,34,
+255,255,255,27,255,255,255,21,255,255,255,16,255,255,255,12,255,255,255,9,255,255,255,6,255,255,255,4,255,255,255,3,
+255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,1,255,255,255,2,
+255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,10,255,255,255,14,255,255,255,18,255,255,255,23,255,255,255,30,
+255,255,255,37,255,255,255,45,255,255,255,54,255,255,255,68,249,249,249,102,80,80,80,205,8,8,8,251,7,7,7,252,
+6,6,6,253,4,4,4,254,0,0,0,255,0,0,0,255,1,1,1,255,2,2,2,255,9,9,9,255,21,21,21,255,
+36,36,36,255,49,49,49,255,60,60,60,255,70,70,70,255,79,79,79,255,86,86,86,255,90,90,90,255,92,92,92,255,
+90,90,90,255,87,87,87,255,80,80,80,255,72,72,72,255,62,62,62,255,51,51,51,255,40,40,40,255,28,28,28,255,
+16,16,16,255,6,6,6,255,2,2,2,255,1,1,1,255,0,0,0,255,14,14,14,252,209,209,209,188,255,255,255,133,
+255,255,255,107,255,255,255,92,255,255,255,80,255,255,255,69,255,255,255,58,255,255,255,49,255,255,255,41,255,255,255,33,
+255,255,255,26,255,255,255,20,255,255,255,15,255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,
+255,255,255,2,167,167,167,1,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57,57,57,0,247,247,247,1,255,255,255,2,
+255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,13,255,255,255,17,255,255,255,22,255,255,255,28,
+255,255,255,35,255,255,255,43,255,255,255,52,255,255,255,62,254,254,254,83,214,214,214,127,181,181,181,163,173,173,173,178,
+164,164,164,191,134,134,134,215,11,11,11,252,0,0,0,255,0,0,0,255,1,1,1,255,4,4,4,255,12,12,12,255,
+24,24,24,255,38,38,38,255,49,49,49,255,58,58,58,255,66,66,66,255,72,72,72,255,75,75,75,255,76,76,76,255,
+76,76,76,255,72,72,72,255,67,67,67,255,60,60,60,255,51,51,51,255,42,42,42,255,30,30,30,255,19,19,19,255,
+9,9,9,255,3,3,3,255,1,1,1,255,0,0,0,255,0,0,0,255,4,4,4,254,106,106,106,217,247,247,247,146,
+255,255,255,109,255,255,255,90,255,255,255,77,255,255,255,66,255,255,255,56,255,255,255,47,255,255,255,39,255,255,255,31,
+255,255,255,24,255,255,255,19,255,255,255,15,255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,2,
+255,255,255,1,104,104,104,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,0,238,238,238,1,255,255,255,2,
+255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,9,255,255,255,12,255,255,255,16,255,255,255,21,255,255,255,26,
+255,255,255,33,255,255,255,40,255,255,255,49,255,255,255,58,255,255,255,70,255,255,255,86,255,255,255,102,255,255,255,116,
+255,255,255,131,247,247,247,161,74,74,74,229,1,1,1,255,0,0,0,255,1,1,1,255,1,1,1,255,5,5,5,255,
+13,13,13,255,24,24,24,255,36,36,36,255,45,45,45,255,53,53,53,255,58,58,58,255,61,61,61,255,63,63,63,255,
+61,61,61,255,59,59,59,255,54,54,54,255,48,48,48,255,40,40,40,255,30,30,30,255,20,20,20,255,10,10,10,255,
+4,4,4,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,8,8,8,252,120,120,120,201,
+248,248,248,127,255,255,255,91,255,255,255,73,255,255,255,63,255,255,255,53,255,255,255,44,255,255,255,36,255,255,255,29,
+255,255,255,23,255,255,255,18,255,255,255,13,255,255,255,10,255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,
+254,254,254,1,99,99,99,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,167,167,167,1,255,255,255,2,
+255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15,255,255,255,19,255,255,255,24,
+255,255,255,30,255,255,255,38,255,255,255,46,255,255,255,55,255,255,255,65,255,255,255,75,255,255,255,87,255,255,255,99,
+255,255,255,112,255,255,255,134,200,200,200,185,22,22,22,249,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,
+5,5,5,255,12,12,12,255,21,21,21,255,30,30,30,255,38,38,38,255,43,43,43,255,46,46,46,255,47,47,47,255,
+47,47,47,255,44,44,44,255,40,40,40,255,35,35,35,255,27,27,27,255,19,19,19,255,10,10,10,255,4,4,4,255,
+1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,10,10,10,251,
+135,135,135,179,252,252,252,96,255,255,255,70,255,255,255,59,255,255,255,50,255,255,255,41,255,255,255,34,255,255,255,27,
+255,255,255,21,255,255,255,16,255,255,255,12,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,
+240,240,240,1,21,21,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,1,
+255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,10,255,255,255,13,255,255,255,17,255,255,255,22,
+255,255,255,28,255,255,255,35,255,255,255,43,255,255,255,51,255,255,255,60,255,255,255,70,255,255,255,81,255,255,255,92,
+255,255,255,104,255,255,255,123,247,247,247,164,67,67,67,236,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,
+1,1,1,255,4,4,4,255,9,9,9,255,15,15,15,255,21,21,21,255,26,26,26,255,29,29,29,255,31,31,31,255,
+30,30,30,255,29,29,29,255,25,25,25,255,20,20,20,255,14,14,14,255,8,8,8,255,3,3,3,255,1,1,1,255,
+1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,4,4,4,253,
+103,103,103,190,251,251,251,94,255,255,255,66,255,255,255,55,255,255,255,46,255,255,255,38,255,255,255,31,255,255,255,25,
+255,255,255,19,255,255,255,15,255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,
+231,231,231,1,14,14,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57,57,57,0,247,247,247,1,
+255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,12,255,255,255,16,255,255,255,20,
+255,255,255,25,255,255,255,32,255,255,255,39,255,255,255,47,255,255,255,56,255,255,255,65,255,255,255,75,255,255,255,86,
+255,255,255,99,255,255,255,123,190,190,190,181,15,15,15,250,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+1,1,1,255,1,1,1,255,2,2,2,255,5,5,5,255,8,8,8,255,11,11,11,255,14,14,14,255,15,15,15,255,
+15,15,15,255,14,14,14,255,11,11,11,255,8,8,8,255,5,5,5,255,2,2,2,255,1,1,1,255,1,1,1,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,61,61,61,222,
+237,237,237,126,255,255,255,79,255,255,255,61,255,255,255,51,255,255,255,43,255,255,255,35,255,255,255,28,255,255,255,22,
+255,255,255,18,255,255,255,14,255,255,255,10,255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,2,255,255,255,1,
+113,113,113,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,14,14,0,231,231,231,1,
+255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,14,255,255,255,18,
+255,255,255,23,255,255,255,29,255,255,255,36,255,255,255,43,255,255,255,51,255,255,255,60,255,255,255,70,255,255,255,80,
+255,255,255,96,246,246,246,134,71,71,71,223,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,2,2,2,255,3,3,3,255,4,4,4,255,4,4,4,255,
+4,4,4,255,4,4,4,255,3,3,3,255,2,2,2,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,32,32,32,238,208,208,208,148,
+255,255,255,90,255,255,255,66,255,255,255,55,255,255,255,47,255,255,255,39,255,255,255,32,255,255,255,26,255,255,255,21,
+255,255,255,16,255,255,255,12,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,247,247,247,1,
+57,57,57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+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,1,1,0,113,113,113,1,
+255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,13,255,255,255,17,
+255,255,255,21,255,255,255,26,255,255,255,32,255,255,255,39,255,255,255,47,255,255,255,55,255,255,255,64,255,255,255,75,
+255,255,255,94,174,174,174,162,10,10,10,250,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,
+1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,7,7,7,253,
+63,63,63,237,45,45,45,241,5,5,5,253,0,0,0,255,0,0,0,255,15,15,15,248,168,168,168,169,254,254,254,100,
+255,255,255,71,255,255,255,59,255,255,255,50,255,255,255,43,255,255,255,36,255,255,255,29,255,255,255,23,255,255,255,19,
+255,255,255,15,255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,231,231,231,1,
+14,14,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,
+255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15,
+255,255,255,19,255,255,255,23,255,255,255,29,255,255,255,36,255,255,255,43,255,255,255,50,255,255,255,59,255,255,255,68,
+255,255,255,87,181,181,181,150,32,32,32,237,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,3,3,3,254,41,41,41,242,149,149,149,204,
+244,244,244,168,237,237,237,165,136,136,136,198,36,36,36,238,8,8,8,250,119,119,119,191,251,251,251,110,255,255,255,76,
+255,255,255,62,255,255,255,53,255,255,255,45,255,255,255,38,255,255,255,32,255,255,255,26,255,255,255,21,255,255,255,17,
+255,255,255,13,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,1,113,113,113,1,
+1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,
+255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,7,255,255,255,10,255,255,255,13,
+255,255,255,17,255,255,255,21,255,255,255,26,255,255,255,32,255,255,255,39,255,255,255,46,255,255,255,54,255,255,255,62,
+255,255,255,74,254,254,254,100,208,208,208,151,61,61,61,224,4,4,4,253,0,0,0,255,0,0,0,255,0,0,0,255,
+1,1,1,255,35,35,35,246,84,84,84,237,15,15,15,252,1,1,1,255,3,3,3,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,45,45,45,242,230,230,230,182,254,254,254,146,
+255,255,255,128,255,255,255,122,254,254,254,125,228,228,228,142,154,154,154,163,243,243,243,113,255,255,255,80,255,255,255,64,
+255,255,255,55,255,255,255,48,255,255,255,41,255,255,255,34,255,255,255,28,255,255,255,23,255,255,255,19,255,255,255,15,
+255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,247,247,247,1,57,57,57,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,
+255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11,
+255,255,255,15,255,255,255,19,255,255,255,23,255,255,255,29,255,255,255,35,255,255,255,41,255,255,255,49,255,255,255,56,
+255,255,255,65,255,255,255,77,255,255,255,98,237,237,237,136,101,101,101,206,10,10,10,251,0,0,0,255,1,1,1,255,
+46,46,46,238,205,205,205,192,238,238,238,194,34,34,34,247,19,19,19,252,88,88,88,243,3,3,3,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,57,57,57,234,246,246,246,155,255,255,255,123,
+255,255,255,111,255,255,255,103,255,255,255,98,255,255,255,95,255,255,255,89,255,255,255,77,255,255,255,65,255,255,255,56,
+255,255,255,49,255,255,255,42,255,255,255,36,255,255,255,31,255,255,255,25,255,255,255,20,255,255,255,16,255,255,255,13,
+255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,2,255,255,255,1,167,167,167,1,8,8,8,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,13,0,168,168,168,1,
+255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,10,
+255,255,255,13,255,255,255,17,255,255,255,21,255,255,255,26,255,255,255,31,255,255,255,37,255,255,255,44,255,255,255,51,
+255,255,255,59,255,255,255,67,255,255,255,77,255,255,255,94,248,248,248,125,149,149,149,184,25,25,25,242,54,54,54,230,
+214,214,214,170,255,255,255,150,207,207,207,184,12,12,12,251,46,46,46,244,195,195,195,215,13,13,13,252,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,63,63,63,228,247,247,247,142,255,255,255,110,
+255,255,255,100,255,255,255,93,255,255,255,86,255,255,255,79,255,255,255,72,255,255,255,64,255,255,255,57,255,255,255,50,
+255,255,255,44,255,255,255,38,255,255,255,32,255,255,255,27,255,255,255,22,255,255,255,18,255,255,255,14,255,255,255,11,
+255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,254,254,254,1,99,99,99,1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,14,14,14,0,57,57,57,0,168,168,168,1,254,254,254,1,
+255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,10,
+255,255,255,12,255,255,255,15,255,255,255,19,255,255,255,23,255,255,255,28,255,255,255,34,255,255,255,40,255,255,255,46,
+255,255,255,53,255,255,255,61,255,255,255,68,255,255,255,77,255,255,255,91,253,253,253,113,203,203,203,147,226,226,226,142,
+255,255,255,125,255,255,255,133,149,149,149,195,5,5,5,253,68,68,68,232,237,237,237,185,47,47,47,239,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,68,68,68,219,248,248,248,128,255,255,255,99,
+255,255,255,90,255,255,255,84,255,255,255,77,255,255,255,71,255,255,255,64,255,255,255,57,255,255,255,51,255,255,255,45,
+255,255,255,39,255,255,255,33,255,255,255,28,255,255,255,24,255,255,255,20,255,255,255,16,255,255,255,12,255,255,255,9,
+255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,2,255,255,255,2,232,232,232,1,20,20,20,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,8,8,8,0,57,57,57,0,113,113,113,1,231,231,231,1,247,247,247,1,255,255,255,1,255,255,255,1,
+255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9,
+255,255,255,12,255,255,255,14,255,255,255,18,255,255,255,22,255,255,255,26,255,255,255,30,255,255,255,36,255,255,255,42,
+255,255,255,49,255,255,255,55,255,255,255,62,255,255,255,69,255,255,255,77,255,255,255,86,255,255,255,96,255,255,255,101,
+255,255,255,106,253,253,253,129,99,99,99,210,1,1,1,255,91,91,91,217,250,250,250,158,105,105,105,209,8,8,8,251,
+11,11,11,250,21,21,21,247,39,39,39,237,60,60,60,226,84,84,84,211,154,154,154,169,252,252,252,107,255,255,255,88,
+255,255,255,81,255,255,255,76,255,255,255,69,255,255,255,63,255,255,255,57,255,255,255,51,255,255,255,45,255,255,255,40,
+255,255,255,35,255,255,255,30,255,255,255,25,255,255,255,21,255,255,255,17,255,255,255,14,255,255,255,11,255,255,255,8,
+255,255,255,6,255,255,255,5,255,255,255,3,255,255,255,2,254,254,254,1,108,108,108,1,1,1,1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,
+57,57,57,0,167,167,167,1,247,247,247,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,
+255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9,
+255,255,255,11,255,255,255,14,255,255,255,16,255,255,255,20,255,255,255,24,255,255,255,28,255,255,255,33,255,255,255,39,
+255,255,255,45,255,255,255,51,255,255,255,57,255,255,255,63,255,255,255,70,255,255,255,76,255,255,255,83,255,255,255,89,
+255,255,255,98,246,246,246,132,58,58,58,227,2,2,2,254,118,118,118,202,255,255,255,134,214,214,214,146,170,170,170,171,
+206,206,206,163,236,236,236,150,243,243,243,139,246,246,246,129,251,251,251,118,254,254,254,102,255,255,255,87,255,255,255,79,
+255,255,255,73,255,255,255,68,255,255,255,62,255,255,255,56,255,255,255,51,255,255,255,46,255,255,255,40,255,255,255,36,
+255,255,255,31,255,255,255,26,255,255,255,22,255,255,255,19,255,255,255,15,255,255,255,12,255,255,255,9,255,255,255,7,
+255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,240,240,240,1,21,21,21,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,20,20,20,0,161,161,161,1,
+247,247,247,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,
+255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,9,
+255,255,255,11,255,255,255,13,255,255,255,16,255,255,255,19,255,255,255,23,255,255,255,26,255,255,255,31,255,255,255,36,
+255,255,255,41,255,255,255,47,255,255,255,53,255,255,255,58,255,255,255,64,255,255,255,70,255,255,255,75,255,255,255,81,
+255,255,255,93,238,238,238,138,27,27,27,242,4,4,4,253,146,146,146,185,255,255,255,116,255,255,255,105,255,255,255,107,
+255,255,255,105,255,255,255,101,255,255,255,96,255,255,255,91,255,255,255,86,255,255,255,81,255,255,255,76,255,255,255,71,
+255,255,255,66,255,255,255,61,255,255,255,56,255,255,255,51,255,255,255,46,255,255,255,41,255,255,255,36,255,255,255,32,
+255,255,255,28,255,255,255,24,255,255,255,20,255,255,255,17,255,255,255,13,255,255,255,11,255,255,255,8,255,255,255,6,
+255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,1,167,167,167,1,8,8,8,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,63,63,63,0,232,232,232,1,254,254,254,1,
+255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,
+255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,
+255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,19,255,255,255,22,255,255,255,25,255,255,255,29,255,255,255,34,
+255,255,255,38,255,255,255,43,255,255,255,49,255,255,255,54,255,255,255,59,255,255,255,64,255,255,255,69,255,255,255,75,
+255,255,255,91,200,200,200,152,11,11,11,250,7,7,7,252,172,172,172,168,255,255,255,103,255,255,255,91,255,255,255,89,
+255,255,255,87,255,255,255,85,255,255,255,82,255,255,255,79,255,255,255,76,255,255,255,72,255,255,255,68,255,255,255,64,
+255,255,255,60,255,255,255,55,255,255,255,50,255,255,255,46,255,255,255,42,255,255,255,37,255,255,255,33,255,255,255,29,
+255,255,255,26,255,255,255,22,255,255,255,18,255,255,255,15,255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,6,
+255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,1,104,104,104,1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,63,63,63,0,239,239,239,1,255,255,255,1,255,255,255,2,
+255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,
+255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,10,
+255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,19,255,255,255,22,255,255,255,25,255,255,255,29,255,255,255,32,
+255,255,255,37,255,255,255,41,255,255,255,46,255,255,255,50,255,255,255,55,255,255,255,60,255,255,255,64,255,255,255,70,
+255,255,255,90,150,150,150,171,5,5,5,252,10,10,10,250,200,200,200,151,255,255,255,93,255,255,255,82,255,255,255,80,
+255,255,255,79,255,255,255,77,255,255,255,75,255,255,255,72,255,255,255,69,255,255,255,65,255,255,255,62,255,255,255,58,
+255,255,255,54,255,255,255,50,255,255,255,46,255,255,255,43,255,255,255,39,255,255,255,35,255,255,255,31,255,255,255,27,
+255,255,255,24,255,255,255,20,255,255,255,17,255,255,255,14,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5,
+255,255,255,4,255,255,255,3,255,255,255,2,247,247,247,1,57,57,57,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,0,239,239,239,1,255,255,255,1,255,255,255,2,255,255,255,2,
+255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,
+255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,12,
+255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,20,252,252,252,25,255,255,255,26,255,255,255,28,255,255,255,32,
+255,255,255,36,255,255,255,40,255,255,255,44,255,255,255,48,255,255,255,53,255,255,255,57,255,255,255,60,255,255,255,66,
+255,255,255,91,114,114,114,189,1,1,1,254,15,15,15,248,227,227,227,136,255,255,255,85,255,255,255,75,255,255,255,74,
+255,255,255,72,255,255,255,70,255,255,255,68,255,255,255,66,255,255,255,63,255,255,255,60,255,255,255,57,255,255,255,54,
+255,255,255,50,255,255,255,47,255,255,255,43,255,255,255,40,255,255,255,37,255,255,255,33,255,255,255,29,255,255,255,26,
+255,255,255,23,255,255,255,19,255,255,255,16,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5,
+255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,13,13,13,0,168,168,168,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,
+255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,
+255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14,
+255,255,255,15,255,255,255,17,255,255,255,19,247,247,247,28,173,173,173,53,251,251,251,34,255,255,255,30,255,255,255,32,
+255,255,255,36,255,255,255,39,255,255,255,43,255,255,255,47,255,255,255,51,255,255,255,54,255,255,255,58,255,255,255,64,
+251,251,251,95,85,85,85,203,0,0,0,255,25,25,25,241,240,240,240,123,255,255,255,78,255,255,255,69,255,255,255,68,
+255,255,255,67,255,255,255,65,255,255,255,64,255,255,255,61,255,255,255,59,255,255,255,56,255,255,255,53,255,255,255,50,
+255,255,255,47,255,255,255,45,255,255,255,41,255,255,255,38,255,255,255,36,255,255,255,35,255,255,255,35,255,255,255,33,
+255,255,255,27,255,255,255,20,255,255,255,16,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5,
+255,255,255,4,255,255,255,2,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,108,108,108,1,254,254,254,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,3,
+255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,10,
+255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,16,
+255,255,255,17,255,255,255,19,255,255,255,22,252,252,252,35,134,134,134,102,240,240,240,54,255,255,255,35,255,255,255,34,
+250,250,250,39,255,255,255,41,255,255,255,43,255,255,255,47,255,255,255,49,255,255,255,53,255,255,255,56,255,255,255,63,
+247,247,247,99,64,64,64,214,0,0,0,255,39,39,39,231,243,243,243,113,255,255,255,72,255,255,255,65,255,255,255,64,
+255,255,255,63,255,255,255,62,255,255,255,60,255,255,255,58,255,255,255,55,255,255,255,53,255,255,255,51,255,255,255,48,
+255,255,255,46,255,255,255,43,255,255,255,42,255,255,255,43,255,255,255,50,252,252,252,63,240,240,240,75,181,181,181,87,
+174,174,174,67,251,251,251,24,255,255,255,16,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5,
+255,255,255,4,255,255,255,2,255,255,255,1,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,20,20,20,0,232,232,232,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,
+255,255,255,5,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,
+255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,17,255,255,255,18,255,255,255,19,
+255,255,255,20,255,255,255,22,255,255,255,25,255,255,255,40,129,129,129,132,186,186,186,93,255,255,255,44,253,253,253,39,
+192,192,192,61,247,247,247,50,255,255,255,45,255,255,255,47,255,255,255,49,255,255,255,52,255,255,255,55,255,255,255,63,
+244,244,244,104,47,47,47,224,0,0,0,255,54,54,54,221,245,245,245,105,255,255,255,68,255,255,255,62,255,255,255,61,
+255,255,255,60,255,255,255,58,255,255,255,57,255,255,255,55,255,255,255,53,255,255,255,51,255,255,255,49,255,255,255,47,
+255,255,255,45,255,255,255,46,255,255,255,55,249,249,249,78,194,194,194,122,95,95,95,180,43,43,43,214,101,101,101,155,
+223,223,223,54,254,254,254,23,255,255,255,16,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5,
+255,255,255,4,255,255,255,2,255,255,255,1,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,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,1,1,0,108,108,108,1,254,254,254,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,
+251,251,251,9,254,254,254,12,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,14,255,255,255,15,
+255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,19,255,255,255,20,255,255,255,20,255,255,255,21,255,255,255,22,
+255,255,255,24,255,255,255,25,255,255,255,28,255,255,255,44,138,138,138,130,117,117,117,152,254,254,254,58,255,255,255,44,
+183,183,183,78,190,190,190,84,255,255,255,52,255,255,255,48,255,255,255,50,255,255,255,52,255,255,255,55,255,255,255,64,
+242,242,242,110,34,34,34,233,0,0,0,255,69,69,69,211,248,248,248,98,255,255,255,65,255,255,255,60,255,255,255,59,
+255,255,255,58,255,255,255,57,255,255,255,55,255,255,255,54,255,255,255,53,255,255,255,51,255,255,255,49,255,255,255,48,
+255,255,255,52,254,254,254,69,217,217,217,113,86,86,86,193,15,15,15,244,7,7,7,250,110,110,110,168,246,246,246,66,
+255,255,255,32,255,255,255,20,255,255,255,16,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5,
+255,255,255,4,255,255,255,2,255,255,255,1,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+14,14,14,0,231,231,231,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,7,
+204,204,204,20,163,163,163,50,237,237,237,42,254,254,254,32,255,255,255,23,255,255,255,18,255,255,255,16,255,255,255,17,
+255,255,255,18,255,255,255,20,255,255,255,21,255,255,255,22,255,255,255,23,255,255,255,24,255,255,255,25,255,255,255,26,
+255,255,255,27,255,255,255,28,255,255,255,31,255,255,255,46,168,168,168,120,57,57,57,203,244,244,244,80,255,255,255,51,
+238,238,238,71,118,118,118,139,249,249,249,68,255,255,255,53,255,255,255,51,255,255,255,53,255,255,255,56,255,255,255,66,
+239,239,239,116,23,23,23,242,0,0,0,255,85,85,85,202,251,251,251,92,255,255,255,64,255,255,255,59,255,255,255,59,
+255,255,255,58,255,255,255,57,255,255,255,55,255,255,255,54,255,255,255,53,255,255,255,51,255,255,255,50,255,255,255,57,
+250,250,250,83,161,161,161,149,33,33,33,231,2,2,2,254,2,2,2,254,85,85,85,193,245,245,245,80,255,255,255,38,
+255,255,255,24,255,255,255,19,255,255,255,16,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5,
+255,255,255,4,255,255,255,2,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+21,21,21,0,240,240,240,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,8,
+252,252,252,15,190,190,190,54,87,87,87,143,135,135,135,125,235,235,235,70,254,254,254,43,255,255,255,29,255,255,255,23,
+255,255,255,22,255,255,255,22,255,255,255,24,255,255,255,25,255,255,255,26,255,255,255,27,255,255,255,28,255,255,255,30,
+255,255,255,31,255,255,255,32,255,255,255,34,255,255,255,47,213,213,213,106,27,27,27,236,202,202,202,117,255,255,255,60,
+250,250,250,68,104,104,104,162,209,209,209,102,255,255,255,62,255,255,255,54,255,255,255,55,255,255,255,57,255,255,255,69,
+228,228,228,125,15,15,15,247,0,0,0,255,103,103,103,193,254,254,254,88,255,255,255,63,255,255,255,59,255,255,255,59,
+255,255,255,58,255,255,255,57,255,255,255,55,255,255,255,54,255,255,255,53,255,255,255,53,255,255,255,60,247,247,247,91,
+121,121,121,173,13,13,13,246,9,9,9,253,18,18,18,252,37,37,37,228,223,223,223,106,255,255,255,46,255,255,255,28,
+255,255,255,23,255,255,255,20,255,255,255,16,255,255,255,14,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5,
+255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+99,99,99,1,254,254,254,1,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,5,255,255,255,6,255,255,255,8,
+255,255,255,11,254,254,254,24,221,221,221,65,78,78,78,177,44,44,44,212,140,140,140,143,240,240,240,78,255,255,255,46,
+255,255,255,32,255,255,255,27,255,255,255,27,255,255,255,28,255,255,255,30,255,255,255,31,255,255,255,32,255,255,255,34,
+255,255,255,35,255,255,255,36,255,255,255,38,255,255,255,48,239,239,239,97,29,29,29,234,119,119,119,171,254,254,254,75,
+255,255,255,68,143,143,143,143,115,115,115,164,253,253,253,77,255,255,255,59,255,255,255,58,255,255,255,60,255,255,255,73,
+205,205,205,136,11,11,11,249,1,1,1,254,118,118,118,185,255,255,255,86,255,255,255,64,255,255,255,61,255,255,255,60,
+255,255,255,59,255,255,255,58,255,255,255,56,255,255,255,56,255,255,255,55,255,255,255,62,248,248,248,91,118,118,118,177,
+8,8,8,249,19,19,19,248,114,114,114,223,25,25,25,246,145,145,145,156,254,254,254,63,255,255,255,34,255,255,255,27,
+255,255,255,24,255,255,255,20,255,255,255,17,255,255,255,14,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5,
+255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,8,
+255,255,255,10,255,255,255,14,255,255,255,28,241,241,241,67,100,100,100,169,14,14,14,243,52,52,52,212,172,172,172,131,
+248,248,248,72,255,255,255,45,255,255,255,35,255,255,255,32,255,255,255,33,255,255,255,35,255,255,255,36,255,255,255,38,
+255,255,255,39,255,255,255,41,255,255,255,42,255,255,255,50,244,244,244,90,49,49,49,218,49,49,49,220,243,243,243,100,
+255,255,255,71,213,213,213,114,53,53,53,214,238,238,238,102,255,255,255,67,255,255,255,62,255,255,255,63,255,255,255,77,
+184,184,184,147,9,9,9,250,3,3,3,253,131,131,131,177,255,255,255,85,255,255,255,65,255,255,255,63,255,255,255,62,
+255,255,255,61,255,255,255,60,255,255,255,59,255,255,255,58,255,255,255,64,251,251,251,90,135,135,135,170,10,10,10,249,
+17,17,17,246,158,158,158,191,84,84,84,220,41,41,41,225,238,238,238,96,255,255,255,46,255,255,255,32,255,255,255,28,
+255,255,255,24,255,255,255,21,255,255,255,17,255,255,255,14,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5,
+255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,9,
+255,255,255,10,255,255,255,13,255,255,255,17,255,255,255,30,247,247,247,66,127,127,127,157,14,14,14,245,12,12,12,246,
+85,85,85,191,214,214,214,109,254,254,254,63,255,255,255,44,255,255,255,39,255,255,255,39,255,255,255,41,255,255,255,42,
+255,255,255,43,255,255,255,45,255,255,255,47,255,255,255,52,251,251,251,83,84,84,84,198,11,11,11,248,189,189,189,140,
+255,255,255,79,243,243,243,100,53,53,53,215,169,169,169,144,255,255,255,78,255,255,255,66,255,255,255,66,255,255,255,82,
+167,167,167,158,7,7,7,251,4,4,4,253,145,145,145,171,255,255,255,85,255,255,255,67,255,255,255,65,255,255,255,64,
+255,255,255,63,255,255,255,62,255,255,255,62,255,255,255,65,254,254,254,87,162,162,162,158,15,15,15,245,10,10,10,249,
+142,142,142,184,191,191,191,168,18,18,18,245,117,117,117,173,253,253,253,69,255,255,255,40,255,255,255,33,255,255,255,29,
+255,255,255,25,255,255,255,21,255,255,255,18,255,255,255,15,255,255,255,12,255,255,255,9,255,255,255,7,255,255,255,6,
+255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,7,255,255,255,9,
+255,255,255,11,255,255,255,13,255,255,255,16,255,255,255,20,255,255,255,31,250,250,250,64,150,150,150,148,18,18,18,241,
+2,2,2,254,30,30,30,232,150,150,150,153,247,247,247,84,255,255,255,55,255,255,255,45,255,255,255,45,255,255,255,46,
+255,255,255,48,255,255,255,50,255,255,255,51,255,255,255,55,255,255,255,78,126,126,126,175,4,4,4,253,102,102,102,190,
+253,253,253,94,252,252,252,94,94,94,94,191,95,95,95,191,252,252,252,94,255,255,255,72,255,255,255,70,255,255,255,87,
+152,152,152,168,5,5,5,252,6,6,6,252,158,158,158,164,255,255,255,86,255,255,255,70,255,255,255,68,255,255,255,67,
+255,255,255,66,255,255,255,66,255,255,255,67,255,255,255,84,192,192,192,143,26,26,26,239,5,5,5,252,109,109,109,193,
+242,242,242,134,79,79,79,208,20,20,20,241,212,212,212,118,255,255,255,55,255,255,255,38,255,255,255,33,255,255,255,30,
+255,255,255,26,255,255,255,22,255,255,255,18,255,255,255,15,255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,6,
+255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,9,
+255,255,255,11,255,255,255,14,255,255,255,16,255,255,255,19,255,255,255,23,255,255,255,34,252,252,252,64,164,164,164,143,
+21,21,21,240,0,0,0,255,9,9,9,249,90,90,90,192,231,231,231,105,255,255,255,65,255,255,255,52,255,255,255,51,
+255,255,255,52,255,255,255,54,255,255,255,56,255,255,255,59,255,255,255,74,181,181,181,147,9,9,9,250,43,43,43,228,
+242,242,242,116,255,255,255,93,145,145,145,165,43,43,43,226,241,241,241,115,255,255,255,80,255,255,255,75,255,255,255,93,
+139,139,139,177,4,4,4,253,7,7,7,251,172,172,172,159,255,255,255,88,255,255,255,74,255,255,255,72,255,255,255,71,
+255,255,255,70,255,255,255,71,255,255,255,83,221,221,221,129,44,44,44,228,2,2,2,254,75,75,75,210,242,242,242,124,
+201,201,201,146,16,16,16,245,77,77,77,202,249,249,249,86,255,255,255,48,255,255,255,39,255,255,255,34,255,255,255,30,
+255,255,255,26,255,255,255,22,255,255,255,19,255,255,255,15,255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,6,
+255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10,
+255,255,255,12,255,255,255,14,255,255,255,17,255,255,255,20,255,255,255,23,255,255,255,27,255,255,255,37,253,253,253,66,
+168,168,168,144,21,21,21,240,0,0,0,255,3,3,3,253,58,58,58,216,214,214,214,122,255,255,255,74,255,255,255,59,
+255,255,255,57,255,255,255,59,255,255,255,61,255,255,255,63,255,255,255,73,237,237,237,121,28,28,28,239,12,12,12,249,
+197,197,197,148,255,255,255,98,206,206,206,140,24,24,24,242,191,191,191,148,255,255,255,91,255,255,255,81,255,255,255,99,
+128,128,128,185,3,3,3,254,9,9,9,251,186,186,186,155,255,255,255,90,255,255,255,77,255,255,255,76,255,255,255,75,
+255,255,255,75,255,255,255,82,243,243,243,117,74,74,74,211,2,2,2,254,43,43,43,229,222,222,222,133,251,251,251,110,
+100,100,100,194,8,8,8,250,164,164,164,151,255,255,255,68,255,255,255,46,255,255,255,40,255,255,255,35,255,255,255,31,
+255,255,255,27,255,255,255,23,255,255,255,19,255,255,255,16,255,255,255,13,255,255,255,10,255,255,255,8,255,255,255,6,
+255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10,
+255,255,255,12,255,255,255,14,255,255,255,17,255,255,255,20,255,255,255,24,255,255,255,27,255,255,255,31,255,255,255,41,
+253,253,253,71,162,162,162,151,16,16,16,244,0,0,0,255,1,1,1,254,45,45,45,225,205,205,205,132,254,254,254,81,
+255,255,255,66,255,255,255,64,255,255,255,66,255,255,255,68,255,255,255,74,248,248,248,107,70,70,70,213,2,2,2,254,
+117,117,117,190,254,254,254,110,241,241,241,126,37,37,37,233,118,118,118,188,254,254,254,104,255,255,255,87,255,255,255,105,
+117,117,117,193,1,1,1,254,10,10,10,250,200,200,200,152,255,255,255,93,255,255,255,82,255,255,255,80,255,255,255,81,
+239,239,239,91,249,249,249,110,120,120,120,188,5,5,5,252,20,20,20,244,186,186,186,155,247,247,247,104,217,217,217,133,
+30,30,30,237,33,33,33,233,237,237,237,110,255,255,255,59,255,255,255,46,255,255,255,42,254,254,254,38,255,255,255,32,
+255,255,255,28,255,255,255,23,255,255,255,19,255,255,255,16,255,255,255,13,255,255,255,10,255,255,255,8,255,255,255,6,
+255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10,
+255,255,255,12,255,255,255,15,255,255,255,18,255,255,255,21,255,255,255,24,255,255,255,28,255,255,255,32,255,255,255,36,
+255,255,255,47,251,251,251,79,139,139,139,166,10,10,10,249,0,0,0,255,1,1,1,255,42,42,42,229,205,205,205,137,
+255,255,255,87,255,255,255,73,255,255,255,71,255,255,255,73,255,255,255,77,255,255,255,98,130,130,130,184,3,3,3,253,
+51,51,51,227,244,244,244,129,248,248,248,122,71,71,71,214,58,58,58,222,246,246,246,123,255,255,255,96,255,255,255,111,
+108,108,108,200,0,0,0,255,12,12,12,250,214,214,214,150,255,255,255,97,255,255,255,86,255,255,255,87,247,247,247,95,
+215,215,215,121,175,175,175,167,16,16,16,246,7,7,7,251,134,134,134,183,250,250,250,111,206,206,206,121,139,139,139,178,
+6,6,6,252,93,93,93,196,252,252,252,88,255,255,255,55,255,255,255,49,247,247,247,50,215,215,215,54,255,255,255,35,
+255,255,255,28,255,255,255,24,255,255,255,20,255,255,255,16,255,255,255,13,255,255,255,10,255,255,255,8,255,255,255,6,
+255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10,
+255,255,255,12,255,255,255,15,255,255,255,18,255,255,255,21,255,255,255,25,255,255,255,29,255,255,255,33,255,255,255,37,
+255,255,255,42,255,255,255,55,248,248,248,92,108,108,108,186,5,5,5,252,0,0,0,255,1,1,1,255,44,44,44,229,
+209,209,209,140,255,255,255,93,255,255,255,80,255,255,255,78,255,255,255,81,255,255,255,94,205,205,205,151,13,13,13,249,
+14,14,14,248,206,206,206,156,254,254,254,123,118,118,118,194,20,20,20,245,220,220,220,148,255,255,255,106,254,254,254,118,
+98,98,98,206,0,0,0,255,14,14,14,249,228,228,228,148,255,255,255,100,255,255,255,92,255,255,255,97,197,197,197,131,
+204,204,204,157,39,39,39,235,2,2,2,254,84,84,84,210,245,245,245,125,221,221,221,116,188,188,188,148,56,56,56,224,
+9,9,9,250,175,175,175,151,255,255,255,75,255,255,255,55,255,255,255,53,204,204,204,75,165,165,165,87,255,255,255,40,
+255,255,255,29,255,255,255,24,255,255,255,20,255,255,255,17,255,255,255,13,255,255,255,10,255,255,255,8,255,255,255,6,
+255,255,255,4,255,255,255,3,255,255,255,2,247,247,247,1,57,57,57,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+57,57,57,0,247,247,247,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10,
+255,255,255,12,255,255,255,15,255,255,255,18,255,255,255,21,255,255,255,25,255,255,255,29,255,255,255,34,255,255,255,38,
+255,255,255,43,255,255,255,48,255,255,255,64,241,241,241,108,70,70,70,212,1,1,1,254,0,0,0,255,1,1,1,255,
+45,45,45,229,210,210,210,144,255,255,255,100,255,255,255,87,255,255,255,86,255,255,255,94,244,244,244,130,49,49,49,230,
+3,3,3,254,125,125,125,195,254,254,254,131,171,171,171,174,12,12,12,249,146,146,146,184,255,255,255,118,252,252,252,125,
+90,90,90,211,0,0,0,255,17,17,17,248,237,237,237,148,255,255,255,105,255,255,255,100,242,242,242,118,163,163,163,173,
+83,83,83,218,2,2,2,254,44,44,44,232,226,226,226,143,249,249,249,113,155,155,155,154,181,181,181,170,12,12,12,250,
+41,41,41,230,240,240,240,114,255,255,255,68,255,255,255,56,255,255,255,61,159,159,159,112,149,149,149,113,255,255,255,45,
+255,255,255,30,255,255,255,25,255,255,255,21,255,255,255,17,255,255,255,13,255,255,255,11,255,255,255,8,255,255,255,6,
+255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,1,104,104,104,1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+15,15,15,0,238,238,238,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10,
+255,255,255,12,255,255,255,15,255,255,255,18,255,255,255,22,255,255,255,26,255,255,255,30,255,255,255,34,255,255,255,39,
+255,255,255,44,255,255,255,49,255,255,255,56,255,255,255,76,213,213,213,133,33,33,33,236,1,1,1,255,14,14,14,254,
+3,3,3,254,47,47,47,229,212,212,212,148,255,255,255,106,255,255,255,94,255,255,255,96,253,253,253,119,110,110,110,201,
+2,2,2,254,57,57,57,228,246,246,246,145,227,227,227,157,20,20,20,246,80,80,80,216,250,250,250,134,251,251,251,134,
+83,83,83,216,0,0,0,255,21,21,21,246,239,239,239,149,255,255,255,111,255,255,255,114,172,172,172,164,121,121,121,211,
+9,9,9,252,17,17,17,247,183,183,183,169,254,254,254,119,187,187,187,141,166,166,166,167,98,98,98,208,3,3,3,253,
+114,114,114,189,253,253,253,94,255,255,255,65,255,255,255,58,255,255,255,69,129,129,129,149,143,143,143,130,255,255,255,49,
+255,255,255,31,255,255,255,25,255,255,255,21,255,255,255,17,255,255,255,14,255,255,255,11,255,255,255,8,255,255,255,6,
+255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,1,104,104,104,1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+15,15,15,0,238,238,238,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10,
+255,255,255,12,255,255,255,15,255,255,255,19,255,255,255,22,255,255,255,26,255,255,255,31,255,255,255,35,255,255,255,41,
+255,255,255,46,255,255,255,51,255,255,255,56,255,255,255,65,254,254,254,91,156,156,156,169,10,10,10,250,19,19,19,253,
+51,51,51,249,4,4,4,254,49,49,49,229,217,217,217,150,255,255,255,111,255,255,255,102,255,255,255,113,191,191,191,169,
+11,11,11,251,15,15,15,249,207,207,207,171,246,246,246,152,56,56,56,230,35,35,35,239,240,240,240,152,250,250,250,143,
+78,78,78,220,0,0,0,255,26,26,26,244,240,240,240,151,255,255,255,120,243,243,243,137,109,109,109,212,33,33,33,245,
+4,4,4,253,114,114,114,202,251,251,251,131,242,242,242,125,114,114,114,186,220,220,220,163,32,32,32,240,16,16,16,247,
+206,206,206,146,249,249,249,86,255,255,255,65,255,255,255,63,251,251,251,83,88,88,88,186,145,145,145,138,255,255,255,52,
+255,255,255,32,255,255,255,26,255,255,255,22,255,255,255,18,255,255,255,15,255,255,255,11,255,255,255,9,255,255,255,7,
+255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,1,104,104,104,1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+57,57,57,0,247,247,247,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10,
+255,255,255,12,255,255,255,15,255,255,255,19,255,255,255,23,255,255,255,27,255,255,255,32,255,255,255,36,255,255,255,42,
+254,254,254,49,251,251,251,57,255,255,255,60,255,255,255,65,255,255,255,77,247,247,247,114,83,83,83,209,2,2,2,254,
+62,62,62,245,67,67,67,242,4,4,4,254,57,57,57,227,226,226,226,150,255,255,255,117,255,255,255,114,243,243,243,146,
+45,45,45,235,2,2,2,254,119,119,119,206,252,252,252,154,111,111,111,209,13,13,13,250,197,197,197,176,249,249,249,152,
+74,74,74,223,0,0,0,255,29,29,29,243,241,241,241,156,255,255,255,133,173,173,173,179,42,42,42,244,3,3,3,254,
+47,47,47,233,235,235,235,151,254,254,254,126,149,149,149,170,152,152,152,181,152,152,152,192,6,6,6,253,66,66,66,220,
+213,213,213,134,238,238,238,88,255,255,255,68,255,255,255,69,239,239,239,105,43,43,43,222,161,161,161,133,255,255,255,52,
+255,255,255,33,255,255,255,27,255,255,255,23,255,255,255,19,255,255,255,15,255,255,255,12,255,255,255,9,255,255,255,7,
+255,255,255,5,255,255,255,4,255,255,255,2,255,255,255,1,167,167,167,1,8,8,8,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10,
+255,255,255,13,255,255,255,16,255,255,255,19,255,255,255,23,255,255,255,28,255,255,255,32,255,255,255,38,255,255,255,44,
+247,247,247,57,185,185,185,89,253,253,253,71,255,255,255,70,252,252,252,77,255,255,255,94,214,214,214,146,29,29,29,240,
+7,7,7,254,128,128,128,228,61,61,61,239,3,3,3,254,71,71,71,222,238,238,238,149,255,255,255,124,253,253,253,136,
+113,113,113,207,2,2,2,254,47,47,47,236,242,242,242,167,180,180,180,189,12,12,12,251,131,131,131,204,248,248,248,164,
+72,72,72,227,0,0,0,255,32,32,32,243,242,242,242,161,249,249,249,151,75,75,75,223,5,5,5,254,9,9,9,251,
+167,167,167,186,255,255,255,134,225,225,225,145,84,84,84,211,229,229,229,166,63,63,63,228,6,6,6,252,151,151,151,187,
+164,164,164,148,247,247,247,89,255,255,255,72,255,255,255,82,168,168,168,151,21,21,21,242,205,205,205,116,255,255,255,50,
+255,255,255,34,255,255,255,28,255,255,255,23,255,255,255,19,255,255,255,15,255,255,255,12,255,255,255,9,255,255,255,7,
+255,255,255,5,255,255,255,4,255,255,255,2,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10,
+255,255,255,13,255,255,255,16,255,255,255,20,255,255,255,24,255,255,255,29,255,255,255,34,255,255,255,39,255,255,255,45,
+253,253,253,60,150,150,150,124,201,201,201,109,254,254,254,83,213,213,213,96,243,243,243,96,253,253,253,115,133,133,133,189,
+5,5,5,253,30,30,30,247,184,184,184,211,47,47,47,241,4,4,4,253,95,95,95,214,246,246,246,150,255,255,255,137,
+205,205,205,176,16,16,16,249,10,10,10,252,182,182,182,192,237,237,237,176,30,30,30,244,76,76,76,227,243,243,243,177,
+70,70,70,230,0,0,0,255,34,34,34,243,242,242,242,169,216,216,216,177,19,19,19,248,0,0,0,255,69,69,69,227,
+246,246,246,152,251,251,251,140,112,112,112,198,141,141,141,194,187,187,187,186,12,12,12,250,38,38,38,240,196,196,196,173,
+149,149,149,157,254,254,254,89,255,255,255,80,245,245,245,109,64,64,64,213,38,38,38,227,242,242,242,95,255,255,255,47,
+255,255,255,34,255,255,255,29,255,255,255,24,255,255,255,20,255,255,255,16,255,255,255,13,255,255,255,10,255,255,255,8,
+255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,240,240,240,1,21,21,21,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,
+167,167,167,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,11,
+255,255,255,13,255,255,255,17,255,255,255,21,255,255,255,25,255,255,255,30,255,255,255,35,255,255,255,40,255,255,255,47,
+255,255,255,60,219,219,219,100,91,91,91,184,237,237,237,112,237,237,237,104,165,165,165,135,251,251,251,112,240,240,240,141,
+55,55,55,229,2,2,2,255,80,80,80,232,194,194,194,203,32,32,32,245,8,8,8,252,126,126,126,205,250,250,250,154,
+247,247,247,160,67,67,67,230,1,1,1,255,90,90,90,224,245,245,245,178,76,76,76,228,33,33,33,245,233,233,233,191,
+70,70,70,233,0,0,0,255,36,36,36,243,242,242,242,181,129,129,129,211,3,3,3,254,12,12,12,251,186,186,186,186,
+255,255,255,145,198,198,198,169,62,62,62,228,228,228,228,175,79,79,79,224,4,4,4,254,123,123,123,211,116,116,116,201,
+203,203,203,133,255,255,255,91,254,254,254,98,155,155,155,167,9,9,9,249,99,99,99,188,252,252,252,78,255,255,255,45,
+255,255,255,35,255,255,255,30,255,255,255,25,255,255,255,21,255,255,255,17,255,255,255,13,255,255,255,10,255,255,255,8,
+255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,254,254,254,1,99,99,99,1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57,57,57,0,
+247,247,247,1,255,255,255,2,255,255,255,2,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11,
+255,255,255,14,255,255,255,18,255,255,255,22,252,252,252,30,251,251,251,38,255,255,255,41,255,255,255,43,255,255,255,48,
+255,255,255,58,252,252,252,83,114,114,114,173,100,100,100,190,245,245,245,125,161,161,161,155,184,184,184,147,254,254,254,128,
+181,181,181,177,14,14,14,249,8,8,8,253,149,149,149,212,175,175,175,204,19,19,19,249,14,14,14,250,162,162,162,197,
+253,253,253,165,156,156,156,203,6,6,6,253,27,27,27,247,227,227,227,191,137,137,137,213,14,14,14,251,189,189,189,210,
+71,71,71,237,0,0,0,255,37,37,37,245,234,234,234,195,59,59,59,237,0,0,0,255,71,71,71,229,247,247,247,162,
+246,246,246,157,79,79,79,220,133,133,133,206,189,189,189,194,14,14,14,250,33,33,33,245,181,181,181,198,83,83,83,209,
+245,245,245,118,255,255,255,101,218,218,218,139,35,35,35,234,13,13,13,247,193,193,193,136,255,255,255,64,255,255,255,44,
+255,255,255,37,255,255,255,31,255,255,255,26,255,255,255,22,255,255,255,18,255,255,255,14,255,255,255,11,255,255,255,8,
+255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,1,167,167,167,1,8,8,8,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,113,113,113,1,
+255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10,255,255,255,12,
+255,255,255,15,255,255,255,19,255,255,255,24,231,231,231,42,148,148,148,91,240,240,240,69,255,255,255,58,255,255,255,55,
+255,255,255,59,255,255,255,73,231,231,231,115,56,56,56,218,119,119,119,191,233,233,233,149,101,101,101,199,221,221,221,147,
+250,250,250,147,101,101,101,213,3,3,3,254,33,33,33,244,219,219,219,193,143,143,143,211,10,10,10,252,27,27,27,246,
+195,195,195,194,236,236,236,188,36,36,36,244,4,4,4,254,140,140,140,216,209,209,209,201,17,17,17,251,125,125,125,229,
+73,73,73,240,0,0,0,255,37,37,37,247,203,203,203,214,16,16,16,251,9,9,9,252,173,173,173,197,254,254,254,160,
+164,164,164,192,47,47,47,239,223,223,223,189,71,71,71,231,5,5,5,254,125,125,125,221,84,84,84,226,147,147,147,176,
+255,255,255,115,245,245,245,127,76,76,76,213,2,2,2,254,70,70,70,211,247,247,247,98,255,255,255,57,255,255,255,44,
+255,255,255,38,255,255,255,32,255,255,255,27,255,255,255,23,255,255,255,19,255,255,255,15,255,255,255,12,255,255,255,9,
+255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,247,247,247,1,57,57,57,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,20,20,0,232,232,232,1,
+255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,10,255,255,255,13,
+255,255,255,16,255,255,255,20,255,255,255,25,254,254,254,38,180,180,180,96,85,85,85,175,195,195,195,116,252,252,252,82,
+255,255,255,70,255,255,255,72,255,255,255,91,187,187,187,149,32,32,32,238,126,126,126,201,168,168,168,190,89,89,89,212,
+239,239,239,156,228,228,228,172,39,39,39,240,2,2,2,254,97,97,97,224,243,243,243,185,107,107,107,222,5,5,5,254,
+46,46,46,241,222,222,222,199,111,111,111,227,2,2,2,255,58,58,58,240,234,234,234,201,46,46,46,243,71,71,71,243,
+72,72,72,244,0,0,0,255,36,36,36,250,127,127,127,235,4,4,4,254,49,49,49,239,242,242,242,178,236,236,236,175,
+51,51,51,236,125,125,125,217,168,168,168,207,10,10,10,252,44,44,44,244,146,146,146,219,50,50,50,232,235,235,235,144,
+253,253,253,128,139,139,139,187,7,7,7,252,12,12,12,248,180,180,180,151,255,255,255,77,255,255,255,54,255,255,255,45,
+255,255,255,39,255,255,255,33,255,255,255,28,255,255,255,24,255,255,255,19,255,255,255,16,255,255,255,12,255,255,255,10,
+255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,1,168,168,168,1,13,13,13,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,161,161,161,1,254,254,254,1,
+255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,14,
+255,255,255,18,255,255,255,22,255,255,255,26,255,255,255,34,253,253,253,57,157,157,157,133,41,41,41,222,115,115,115,175,
+232,232,232,116,254,254,254,92,255,255,255,90,252,252,252,110,140,140,140,181,19,19,19,247,123,123,123,215,98,98,98,225,
+93,93,93,215,241,241,241,172,154,154,154,205,8,8,8,253,14,14,14,251,181,181,181,202,240,240,240,187,73,73,73,233,
+3,3,3,254,76,76,76,237,198,198,198,218,17,17,17,252,12,12,12,252,192,192,192,214,97,97,97,232,29,29,29,251,
+70,70,70,248,0,0,0,255,29,29,29,252,63,63,63,249,3,3,3,254,129,129,129,216,252,252,252,177,126,126,126,212,
+37,37,37,245,215,215,215,203,54,54,54,239,8,8,8,254,136,136,136,228,43,43,43,243,129,129,129,197,253,253,253,142,
+185,185,185,172,22,22,22,244,2,2,2,254,83,83,83,206,248,248,248,105,255,255,255,67,255,255,255,54,255,255,255,47,
+255,255,255,40,255,255,255,34,255,255,255,29,255,255,255,24,255,255,255,20,255,255,255,16,255,255,255,13,255,255,255,10,
+255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,2,254,254,254,1,108,108,108,1,
+1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57,57,57,0,247,247,247,1,255,255,255,1,
+255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10,255,255,255,12,255,255,255,16,
+255,255,255,19,255,255,255,23,255,255,255,27,255,255,255,32,255,255,255,44,252,252,252,71,172,172,172,139,35,35,35,229,
+40,40,40,228,145,145,145,171,240,240,240,125,255,255,255,112,247,247,247,132,98,98,98,207,13,13,13,251,108,108,108,230,
+56,56,56,243,89,89,89,223,229,229,229,193,73,73,73,235,1,1,1,255,46,46,46,241,227,227,227,192,223,223,223,194,
+45,45,45,242,6,6,6,254,114,114,114,236,71,71,71,245,1,1,1,255,97,97,97,234,163,163,163,224,14,14,14,253,
+45,45,45,252,0,0,0,255,16,16,16,255,14,14,14,254,20,20,20,250,219,219,219,197,216,216,216,193,31,31,31,245,
+117,117,117,226,143,143,143,221,7,7,7,253,63,63,63,244,90,90,90,238,38,38,38,240,230,230,230,169,208,208,208,173,
+36,36,36,238,1,1,1,255,39,39,39,233,219,219,219,136,255,255,255,83,255,255,255,63,255,255,255,55,255,255,255,48,
+255,255,255,42,255,255,255,36,255,255,255,30,255,255,255,26,255,255,255,21,255,255,255,17,255,255,255,14,255,255,255,11,
+255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,1,239,239,239,1,
+63,63,63,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,13,0,168,168,168,1,255,255,255,1,255,255,255,2,
+255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,14,255,255,255,17,
+255,255,255,20,255,255,255,25,255,255,255,29,255,255,255,34,255,255,255,40,255,255,255,52,254,254,254,76,204,204,204,130,
+57,57,57,218,9,9,9,250,51,51,51,226,174,174,174,169,248,248,248,138,238,238,238,155,73,73,73,224,12,12,12,252,
+85,85,85,242,31,31,31,250,79,79,79,233,193,193,193,216,30,30,30,249,2,2,2,254,82,82,82,231,244,244,244,190,
+193,193,193,205,25,25,25,249,14,14,14,253,100,100,100,246,7,7,7,255,30,30,30,249,206,206,206,222,23,23,23,251,
+10,10,10,255,0,0,0,255,1,1,1,255,0,0,0,255,74,74,74,235,245,245,245,192,101,101,101,225,32,32,32,248,
+200,200,200,215,37,37,37,246,17,17,17,253,121,121,121,238,16,16,16,252,128,128,128,214,217,217,217,184,50,50,50,235,
+1,1,1,255,23,23,23,243,185,185,185,162,254,254,254,100,255,255,255,77,255,255,255,67,255,255,255,61,255,255,255,54,
+255,255,255,47,255,255,255,39,255,255,255,32,255,255,255,27,255,255,255,22,255,255,255,19,255,255,255,15,255,255,255,12,
+255,255,255,10,255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,
+239,239,239,1,56,56,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,108,108,108,1,254,254,254,1,255,255,255,2,255,255,255,2,
+255,255,255,3,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,10,255,255,255,12,255,255,255,15,255,255,255,18,
+255,255,255,22,255,255,255,26,255,255,255,31,255,255,255,36,255,255,255,42,255,255,255,49,255,255,255,59,255,255,255,79,
+235,235,235,120,100,100,100,197,13,13,13,248,13,13,13,249,87,87,87,214,213,213,213,172,230,230,230,176,72,72,72,230,
+10,10,10,253,50,50,50,250,17,17,17,253,72,72,72,241,140,140,140,234,13,13,13,253,6,6,6,254,119,119,119,223,
+248,248,248,192,153,153,153,216,11,11,11,252,24,24,24,254,16,16,16,254,5,5,5,254,139,139,139,234,63,63,63,245,
+0,0,0,255,0,0,0,255,0,0,0,255,6,6,6,254,155,155,155,218,211,211,211,204,26,26,26,249,118,118,118,231,
+110,110,110,233,5,5,5,254,86,86,86,244,41,41,41,249,39,39,39,246,199,199,199,208,55,55,55,237,1,1,1,255,
+17,17,17,248,162,162,162,181,253,253,253,121,255,255,255,100,254,254,254,94,248,248,248,93,243,243,243,90,242,242,242,82,
+241,241,241,69,243,243,243,54,248,248,248,39,254,254,254,29,255,255,255,24,255,255,255,20,255,255,255,16,255,255,255,13,
+255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,
+255,255,255,1,168,168,168,1,13,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,0,239,239,239,1,255,255,255,1,255,255,255,2,255,255,255,3,
+255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,13,255,255,255,16,255,255,255,20,
+255,255,255,24,255,255,255,30,255,255,255,37,255,255,255,44,255,255,255,52,255,255,255,59,255,255,255,68,255,255,255,77,
+255,255,255,93,249,249,249,120,177,177,177,171,51,51,51,231,6,6,6,253,26,26,26,244,122,122,122,213,214,214,214,200,
+81,81,81,235,9,9,9,254,28,28,28,253,15,15,15,254,47,47,47,249,84,84,84,248,6,6,6,255,12,12,12,252,
+149,149,149,218,246,246,246,197,108,108,108,229,4,4,4,254,1,1,1,255,0,0,0,255,59,59,59,247,113,113,113,240,
+2,2,2,255,0,0,0,255,0,0,0,255,30,30,30,249,229,229,229,206,98,98,98,230,36,36,36,248,178,178,178,225,
+21,21,21,251,32,32,32,252,80,80,80,246,13,13,13,254,126,126,126,235,50,50,50,244,1,1,1,255,17,17,17,250,
+153,153,153,201,244,244,244,153,225,225,225,146,156,156,156,165,104,104,104,187,74,74,74,199,72,72,72,194,95,95,95,164,
+137,137,137,126,168,168,168,89,197,197,197,55,249,249,249,32,255,255,255,25,255,255,255,21,255,255,255,17,255,255,255,14,
+255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,
+255,255,255,1,254,254,254,1,162,162,162,1,13,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,13,13,13,0,168,168,168,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,3,
+255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,10,255,255,255,12,255,255,255,14,255,255,255,18,254,254,254,24,
+246,246,246,33,243,243,243,44,239,239,239,57,205,205,205,79,185,185,185,99,178,178,178,115,177,177,177,126,181,181,181,133,
+191,191,191,138,215,215,215,141,239,239,239,149,229,229,229,171,128,128,128,214,29,29,29,248,6,6,6,254,39,39,39,245,
+130,130,130,230,89,89,89,243,9,9,9,254,20,20,20,254,17,17,17,255,23,23,23,254,26,26,26,254,1,1,1,255,
+18,18,18,251,163,163,163,217,237,237,237,203,67,67,67,240,1,1,1,255,0,0,0,255,12,12,12,254,145,145,145,239,
+12,12,12,254,0,0,0,255,1,1,1,255,88,88,88,236,207,207,207,213,26,26,26,250,120,120,120,236,68,68,68,243,
+8,8,8,255,78,78,78,249,13,13,13,254,58,58,58,250,35,35,35,251,1,1,1,255,19,19,19,252,142,142,142,224,
+146,146,146,208,66,66,66,224,26,26,26,242,35,35,35,235,89,89,89,200,159,159,159,155,231,231,231,112,245,245,245,88,
+252,252,252,70,255,255,255,57,254,254,254,45,255,255,255,35,255,255,255,27,255,255,255,22,255,255,255,18,255,255,255,15,
+255,255,255,13,255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,3,
+255,255,255,2,255,255,255,1,254,254,254,1,108,108,108,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,108,108,108,1,254,254,254,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,
+255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,13,255,255,255,16,228,228,228,24,191,191,191,38,
+170,170,170,55,167,167,167,73,158,158,158,94,147,147,147,115,137,137,137,135,125,125,125,156,105,105,105,177,78,78,78,197,
+56,56,56,217,34,34,34,236,32,32,32,239,55,55,55,231,90,90,90,226,113,113,113,233,59,59,59,248,7,7,7,255,
+5,5,5,254,38,38,38,251,50,50,50,252,6,6,6,255,11,11,11,255,14,14,14,255,3,3,3,255,0,0,0,255,
+0,0,0,255,20,20,20,251,159,159,159,220,210,210,210,214,35,35,35,248,0,0,0,255,1,1,1,255,86,86,86,246,
+49,49,49,250,0,0,0,255,6,6,6,254,156,156,156,228,97,97,97,235,38,38,38,250,122,122,122,238,8,8,8,254,
+48,48,48,252,23,23,23,253,4,4,4,255,12,12,12,254,0,0,0,255,4,4,4,255,50,50,50,249,32,32,32,249,
+17,17,17,249,55,55,55,229,139,139,139,189,230,230,230,145,250,250,250,123,246,246,246,112,240,240,240,107,215,215,215,106,
+169,169,169,109,153,153,153,108,166,166,166,84,186,186,186,56,216,216,216,36,253,253,253,23,255,255,255,19,255,255,255,16,
+255,255,255,14,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,
+255,255,255,2,255,255,255,2,255,255,255,1,239,239,239,1,63,63,63,0,1,1,1,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,20,20,20,0,232,232,232,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,
+255,255,255,6,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,14,255,255,255,17,251,251,251,22,247,247,247,28,
+252,252,252,32,255,255,255,37,255,255,255,44,255,255,255,52,255,255,255,60,255,255,255,70,253,253,253,81,248,248,248,95,
+243,243,243,110,226,226,226,132,152,152,152,172,81,81,81,211,35,35,35,237,14,14,14,250,9,9,9,253,1,1,1,255,
+0,0,0,255,0,0,0,255,3,3,3,255,1,1,1,255,0,0,0,255,3,3,3,255,4,4,4,255,0,0,0,255,
+0,0,0,255,0,0,0,255,15,15,15,252,132,132,132,230,164,164,164,229,15,15,15,253,0,0,0,255,25,25,25,253,
+98,98,98,246,2,2,2,255,9,9,9,254,144,144,144,236,26,26,26,251,97,97,97,244,24,24,24,252,24,24,24,254,
+35,35,35,253,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,5,5,5,254,32,32,32,246,98,98,98,221,
+189,189,189,189,233,233,233,166,220,220,220,159,158,158,158,170,110,110,110,186,74,74,74,201,71,71,71,197,105,105,105,169,
+146,146,146,126,206,206,206,79,243,243,243,54,246,246,246,40,250,250,250,30,255,255,255,24,255,255,255,20,255,255,255,17,
+255,255,255,14,255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,
+255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,232,232,232,1,20,20,20,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,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,1,1,0,108,108,108,1,254,254,254,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,
+255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,12,255,255,255,15,255,255,255,18,255,255,255,21,255,255,255,25,
+255,255,255,28,255,255,255,33,255,255,255,38,255,255,255,44,255,255,255,50,255,255,255,57,255,255,255,64,255,255,255,72,
+255,255,255,80,255,255,255,91,255,255,255,105,250,250,250,122,240,240,240,142,194,194,194,170,123,123,123,202,62,62,62,229,
+22,22,22,248,6,6,6,253,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,7,7,7,254,78,78,78,244,93,93,93,246,4,4,4,255,3,3,3,255,
+79,79,79,250,8,8,8,255,4,4,4,255,40,40,40,251,39,39,39,252,47,47,47,251,7,7,7,255,32,32,32,254,
+2,2,2,255,0,0,0,255,2,2,2,255,14,14,14,253,60,60,60,243,139,139,139,224,179,179,179,210,132,132,132,212,
+85,85,85,220,49,49,49,231,36,36,36,236,65,65,65,212,122,122,122,174,195,195,195,128,241,241,241,96,251,251,251,74,
+255,255,255,59,255,255,255,48,255,255,255,39,255,255,255,33,255,255,255,28,255,255,255,24,255,255,255,21,255,255,255,18,
+255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,5,255,255,255,4,
+255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,1,254,254,254,1,108,108,108,1,1,1,1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+20,20,20,0,232,232,232,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,
+255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,13,255,255,255,16,255,255,255,18,255,255,255,22,255,255,255,26,
+255,255,255,32,255,255,255,38,255,255,255,46,255,255,255,54,255,255,255,63,255,255,255,72,255,255,255,81,255,255,255,89,
+254,254,254,96,254,254,254,103,253,253,253,111,253,253,253,118,253,253,253,127,254,254,254,136,254,254,254,147,247,247,247,161,
+228,228,228,179,162,162,162,205,93,93,93,228,41,41,41,245,12,12,12,253,3,3,3,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,21,21,21,254,8,8,8,255,0,0,0,255,
+19,19,19,254,4,4,4,255,0,0,0,255,14,14,14,255,52,52,52,252,3,3,3,255,2,2,2,255,2,2,2,255,
+1,1,1,255,21,21,21,254,63,63,63,249,92,92,92,243,71,71,71,241,37,37,37,246,22,22,22,248,34,34,34,239,
+77,77,77,214,142,142,142,177,219,219,219,137,246,246,246,110,254,254,254,89,255,255,255,75,255,255,255,63,255,255,255,54,
+255,255,255,46,255,255,255,41,255,255,255,36,255,255,255,32,255,255,255,28,255,255,255,24,255,255,255,21,255,255,255,18,
+255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5,
+255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,231,231,231,1,14,14,14,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+99,99,99,1,254,254,254,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,
+255,255,255,8,255,255,255,10,255,255,255,11,255,255,255,14,255,255,255,16,255,255,255,20,255,255,255,27,254,254,254,37,
+246,246,246,52,242,242,242,69,234,234,234,87,194,194,194,113,159,159,159,138,137,137,137,159,122,122,122,174,111,111,111,185,
+104,104,104,193,98,98,98,198,95,95,95,203,91,91,91,206,94,94,94,207,103,103,103,206,112,112,112,205,121,121,121,205,
+132,132,132,206,144,144,144,209,155,155,155,213,161,161,161,221,140,140,140,234,86,86,86,246,41,41,41,253,6,6,6,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,14,14,14,255,4,4,4,255,0,0,0,255,0,0,0,255,0,0,0,255,
+2,2,2,255,13,13,13,255,12,12,12,254,32,32,32,250,72,72,72,238,124,124,124,217,188,188,188,189,237,237,237,162,
+249,249,249,140,255,255,255,121,255,255,255,105,255,255,255,92,255,255,255,81,255,255,255,72,255,255,255,64,255,255,255,57,
+255,255,255,50,255,255,255,44,255,255,255,38,255,255,255,34,255,255,255,30,255,255,255,26,255,255,255,22,255,255,255,19,
+255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,5,
+255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,1,247,247,247,1,57,57,57,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,
+113,113,113,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,7,
+255,255,255,8,255,255,255,10,255,255,255,12,255,255,255,14,254,254,254,18,230,230,230,30,167,167,167,64,145,145,145,99,
+103,103,103,132,83,83,83,162,72,72,72,188,64,64,64,202,57,57,57,211,51,51,51,221,45,45,45,229,38,38,38,237,
+28,28,28,244,18,18,18,250,12,12,12,253,8,8,8,254,4,4,4,255,1,1,1,255,1,1,1,255,2,2,2,254,
+3,3,3,254,4,4,4,254,6,6,6,253,7,7,7,253,9,9,9,254,10,10,10,254,6,6,6,255,1,1,1,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,1,1,1,255,22,22,22,253,54,54,54,248,65,65,65,240,76,76,76,231,85,85,85,222,96,96,96,212,
+110,110,110,201,125,125,125,189,143,143,143,175,163,163,163,160,187,187,187,144,216,216,216,128,238,238,238,113,241,241,241,101,
+244,244,244,90,247,247,247,79,251,251,251,69,255,255,255,59,255,255,255,51,255,255,255,43,255,255,255,36,255,255,255,30,
+255,255,255,25,255,255,255,20,255,255,255,16,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,6,
+255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,104,104,104,1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,14,14,0,
+231,231,231,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,
+255,255,255,9,255,255,255,10,255,255,255,13,255,255,255,16,248,248,248,22,197,197,197,39,228,228,228,48,241,241,241,61,
+242,242,242,73,243,243,243,84,244,244,244,97,241,241,241,111,236,236,236,128,232,232,232,143,224,224,224,160,195,195,195,181,
+162,162,162,202,131,131,131,220,92,92,92,237,55,55,55,248,27,27,27,253,4,4,4,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,
+1,1,1,255,2,2,2,254,4,4,4,253,6,6,6,251,9,9,9,250,13,13,13,248,20,20,20,242,32,32,32,232,
+46,46,46,220,63,63,63,206,86,86,86,190,111,111,111,173,132,132,132,154,157,157,157,133,192,192,192,110,231,231,231,87,
+241,241,241,72,245,245,245,58,252,252,252,44,255,255,255,34,255,255,255,26,255,255,255,19,255,255,255,14,255,255,255,10,
+255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,167,167,167,1,8,8,8,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,0,
+238,238,238,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,
+255,255,255,15,255,255,255,20,255,255,255,26,255,255,255,35,253,253,253,45,246,246,246,59,242,242,242,75,232,232,232,93,
+184,184,184,120,144,144,144,149,115,115,115,175,83,83,83,197,56,56,56,217,36,36,36,233,19,19,19,245,11,11,11,250,
+8,8,8,252,6,6,6,253,4,4,4,253,4,4,4,253,5,5,5,252,6,6,6,252,7,7,7,251,9,9,9,251,
+10,10,10,251,10,10,10,250,11,11,11,250,12,12,12,250,13,13,13,250,14,14,14,249,14,14,14,249,15,15,15,249,
+18,18,18,248,23,23,23,245,28,28,28,243,32,32,32,241,36,36,36,239,41,41,41,237,45,45,45,235,49,49,49,233,
+52,52,52,231,56,56,56,229,59,59,59,227,62,62,62,226,64,64,64,224,66,66,66,223,67,67,67,222,68,68,68,221,
+71,71,71,219,73,73,73,217,75,75,75,216,76,76,76,214,76,76,76,214,73,73,73,214,70,70,70,215,66,66,66,216,
+61,61,61,218,57,57,57,219,54,54,54,220,50,50,50,221,46,46,46,223,42,42,42,225,38,38,38,227,34,34,34,230,
+29,29,29,233,25,25,25,237,21,21,21,241,17,17,17,244,16,16,16,244,16,16,16,242,18,18,18,241,24,24,24,235,
+37,37,37,219,57,57,57,196,93,93,93,169,124,124,124,138,159,159,159,104,221,221,221,68,241,241,241,49,246,246,246,34,
+254,254,254,22,255,255,255,14,255,255,255,8,255,255,255,4,255,255,255,2,255,255,255,1,238,238,238,1,15,15,15,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,0,
+238,238,238,1,255,255,255,1,255,255,255,3,255,255,255,5,255,255,255,9,255,255,255,15,254,254,254,22,246,246,246,33,
+241,241,241,47,226,226,226,64,166,166,166,96,130,130,130,130,102,102,102,161,65,65,65,188,44,44,44,212,32,32,32,231,
+28,28,28,234,32,32,32,228,38,38,38,222,48,48,48,215,59,59,59,208,72,72,72,201,86,86,86,195,99,99,99,190,
+110,110,110,185,119,119,119,181,129,129,129,176,140,140,140,172,152,152,152,167,163,163,163,164,174,174,174,160,184,184,184,158,
+193,193,193,156,201,201,201,154,207,207,207,153,214,214,214,152,219,219,219,151,225,225,225,151,229,229,229,150,234,234,234,149,
+239,239,239,148,240,240,240,146,241,241,241,144,241,241,241,143,242,242,242,142,243,243,243,140,244,244,244,138,244,244,244,137,
+245,245,245,135,246,246,246,134,246,246,246,132,247,247,247,130,247,247,247,129,248,248,248,127,248,248,248,125,248,248,248,123,
+248,248,248,120,249,249,249,118,249,249,249,115,249,249,249,113,249,249,249,110,249,249,249,108,248,248,248,106,248,248,248,104,
+247,247,247,103,246,246,246,101,245,245,245,99,245,245,245,97,244,244,244,96,243,243,243,94,243,243,243,94,242,242,242,94,
+241,241,241,93,240,240,240,94,239,239,239,95,237,237,237,96,221,221,221,100,200,200,200,107,180,180,180,114,161,161,161,122,
+145,145,145,131,131,131,131,139,119,119,119,149,108,108,108,156,89,89,89,164,74,74,74,167,72,72,72,152,88,88,88,130,
+132,132,132,106,141,141,141,74,180,180,180,33,246,246,246,10,255,255,255,3,255,255,255,1,238,238,238,1,15,15,15,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,0,
+238,238,238,1,248,248,248,3,242,242,242,9,240,240,240,17,185,185,185,37,140,140,140,76,132,132,132,105,92,92,92,126,
+75,75,75,144,83,83,83,157,104,104,104,153,119,119,119,143,131,131,131,132,151,151,151,120,177,177,177,108,211,211,211,96,
+235,235,235,88,240,240,240,85,242,242,242,82,244,244,244,80,246,246,246,79,249,249,249,77,251,251,251,76,254,254,254,76,
+255,255,255,77,255,255,255,78,255,255,255,79,255,255,255,80,255,255,255,81,255,255,255,83,255,255,255,84,255,255,255,86,
+255,255,255,88,255,255,255,90,255,255,255,91,255,255,255,92,255,255,255,94,255,255,255,95,255,255,255,96,255,255,255,97,
+255,255,255,97,255,255,255,98,255,255,255,97,255,255,255,97,255,255,255,97,255,255,255,96,255,255,255,96,255,255,255,95,
+255,255,255,94,255,255,255,93,255,255,255,92,255,255,255,91,255,255,255,90,255,255,255,89,255,255,255,87,255,255,255,85,
+255,255,255,83,255,255,255,81,255,255,255,79,255,255,255,76,255,255,255,74,255,255,255,71,255,255,255,68,255,255,255,65,
+255,255,255,62,255,255,255,59,255,255,255,56,255,255,255,53,255,255,255,50,255,255,255,47,255,255,255,45,255,255,255,42,
+255,255,255,40,255,255,255,38,255,255,255,37,255,255,255,36,255,255,255,35,255,255,255,34,255,255,255,34,255,255,255,34,
+255,255,255,35,255,255,255,36,255,255,255,37,254,254,254,37,250,250,250,39,245,245,245,41,242,242,242,43,240,240,240,43,
+238,238,238,41,201,201,201,37,151,151,151,40,201,201,201,18,255,255,255,3,255,255,255,1,167,167,167,1,8,8,8,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,0,
+235,235,235,2,159,159,159,9,154,154,154,23,151,151,151,40,147,147,147,51,190,190,190,43,238,238,238,41,240,240,240,43,
+243,243,243,41,247,247,247,39,253,253,253,36,255,255,255,35,255,255,255,34,255,255,255,34,255,255,255,33,255,255,255,33,
+255,255,255,33,255,255,255,34,255,255,255,35,255,255,255,37,255,255,255,38,255,255,255,40,255,255,255,42,255,255,255,45,
+255,255,255,47,255,255,255,50,255,255,255,52,255,255,255,55,255,255,255,58,255,255,255,60,255,255,255,63,255,255,255,65,
+255,255,255,67,255,255,255,69,255,255,255,71,255,255,255,73,255,255,255,74,255,255,255,76,255,255,255,77,255,255,255,78,
+255,255,255,79,255,255,255,79,255,255,255,80,255,255,255,80,255,255,255,80,255,255,255,80,255,255,255,80,255,255,255,79,
+255,255,255,79,255,255,255,78,255,255,255,78,255,255,255,77,255,255,255,76,255,255,255,75,255,255,255,73,255,255,255,72,
+255,255,255,70,255,255,255,68,255,255,255,66,255,255,255,64,255,255,255,62,255,255,255,59,255,255,255,56,255,255,255,54,
+255,255,255,51,255,255,255,48,255,255,255,45,255,255,255,42,255,255,255,39,255,255,255,36,255,255,255,34,255,255,255,31,
+255,255,255,29,255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,19,255,255,255,17,255,255,255,16,
+255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,11,
+255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,4,255,255,255,2,255,255,255,1,104,104,104,1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,
+167,167,167,1,248,248,248,2,254,254,254,5,255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,11,255,255,255,12,
+255,255,255,12,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,16,255,255,255,17,255,255,255,19,
+255,255,255,20,255,255,255,23,255,255,255,25,255,255,255,27,255,255,255,30,255,255,255,32,255,255,255,35,255,255,255,37,
+255,255,255,39,255,255,255,42,255,255,255,45,255,255,255,47,255,255,255,50,255,255,255,52,255,255,255,54,255,255,255,57,
+255,255,255,58,255,255,255,60,255,255,255,61,255,255,255,63,255,255,255,64,255,255,255,65,255,255,255,66,255,255,255,67,
+255,255,255,68,255,255,255,68,255,255,255,69,255,255,255,69,255,255,255,69,255,255,255,69,255,255,255,69,255,255,255,68,
+255,255,255,68,255,255,255,68,255,255,255,67,255,255,255,66,255,255,255,65,255,255,255,64,255,255,255,63,255,255,255,62,
+255,255,255,60,255,255,255,59,255,255,255,57,255,255,255,55,255,255,255,54,255,255,255,51,255,255,255,49,255,255,255,46,
+255,255,255,44,255,255,255,41,255,255,255,39,255,255,255,36,255,255,255,34,255,255,255,32,255,255,255,30,255,255,255,27,
+255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,13,
+255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,
+255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,1,247,247,247,1,57,57,57,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+99,99,99,1,254,254,254,1,255,255,255,1,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,
+255,255,255,6,255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,16,
+255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,28,255,255,255,30,255,255,255,32,
+255,255,255,34,255,255,255,37,255,255,255,39,255,255,255,41,255,255,255,43,255,255,255,45,255,255,255,47,255,255,255,49,
+255,255,255,50,255,255,255,51,255,255,255,52,255,255,255,53,255,255,255,55,255,255,255,55,255,255,255,56,255,255,255,57,
+255,255,255,57,255,255,255,58,255,255,255,58,255,255,255,59,255,255,255,59,255,255,255,59,255,255,255,58,255,255,255,58,
+255,255,255,58,255,255,255,57,255,255,255,56,255,255,255,56,255,255,255,55,255,255,255,54,255,255,255,53,255,255,255,52,
+255,255,255,51,255,255,255,50,255,255,255,48,255,255,255,47,255,255,255,45,255,255,255,44,255,255,255,41,255,255,255,39,
+255,255,255,37,255,255,255,35,255,255,255,33,255,255,255,31,255,255,255,29,255,255,255,27,255,255,255,26,255,255,255,24,
+255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,16,255,255,255,14,255,255,255,13,255,255,255,12,
+255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,
+255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,231,231,231,1,14,14,14,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+20,20,20,0,232,232,232,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,4,
+255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,14,
+255,255,255,16,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,28,
+255,255,255,30,255,255,255,31,255,255,255,33,255,255,255,34,255,255,255,36,255,255,255,38,255,255,255,39,255,255,255,41,
+255,255,255,42,255,255,255,43,255,255,255,44,255,255,255,45,255,255,255,46,255,255,255,47,255,255,255,47,255,255,255,48,
+255,255,255,48,255,255,255,48,255,255,255,48,255,255,255,49,255,255,255,49,255,255,255,49,255,255,255,48,255,255,255,48,
+255,255,255,48,255,255,255,47,255,255,255,47,255,255,255,47,255,255,255,46,255,255,255,45,255,255,255,45,255,255,255,44,
+255,255,255,43,255,255,255,42,255,255,255,40,255,255,255,39,255,255,255,38,255,255,255,36,255,255,255,34,255,255,255,33,
+255,255,255,31,255,255,255,29,255,255,255,28,255,255,255,26,255,255,255,25,255,255,255,23,255,255,255,22,255,255,255,20,
+255,255,255,19,255,255,255,17,255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,11,255,255,255,10,
+255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,
+255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,254,254,254,1,108,108,108,1,1,1,1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,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,1,1,0,108,108,108,1,254,254,254,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,
+255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,11,255,255,255,12,
+255,255,255,13,255,255,255,15,255,255,255,16,255,255,255,18,255,255,255,19,255,255,255,21,255,255,255,22,255,255,255,23,
+255,255,255,25,255,255,255,26,255,255,255,27,255,255,255,29,255,255,255,30,255,255,255,31,255,255,255,32,255,255,255,34,
+255,255,255,35,255,255,255,36,255,255,255,36,255,255,255,37,255,255,255,38,255,255,255,38,255,255,255,39,255,255,255,39,
+255,255,255,39,255,255,255,40,255,255,255,40,255,255,255,40,255,255,255,40,255,255,255,40,255,255,255,40,255,255,255,39,
+255,255,255,39,255,255,255,39,255,255,255,39,255,255,255,38,255,255,255,38,255,255,255,37,255,255,255,37,255,255,255,36,
+255,255,255,35,255,255,255,34,255,255,255,33,255,255,255,32,255,255,255,31,255,255,255,30,255,255,255,28,255,255,255,27,
+255,255,255,26,255,255,255,24,255,255,255,23,255,255,255,22,255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,17,
+255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,9,
+255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,
+255,255,255,2,255,255,255,2,255,255,255,1,254,254,254,1,162,162,162,1,13,13,13,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,13,13,13,0,168,168,168,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,
+255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,
+255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,19,
+255,255,255,21,255,255,255,22,255,255,255,23,255,255,255,24,255,255,255,25,255,255,255,26,255,255,255,27,255,255,255,27,
+255,255,255,28,255,255,255,29,255,255,255,29,255,255,255,30,255,255,255,31,255,255,255,31,255,255,255,31,255,255,255,32,
+255,255,255,32,255,255,255,32,255,255,255,32,255,255,255,32,255,255,255,32,255,255,255,32,255,255,255,32,255,255,255,32,
+255,255,255,31,255,255,255,31,255,255,255,31,255,255,255,31,255,255,255,30,255,255,255,30,255,255,255,29,255,255,255,29,
+255,255,255,28,255,255,255,27,255,255,255,26,255,255,255,26,255,255,255,25,255,255,255,24,255,255,255,23,255,255,255,22,
+255,255,255,21,255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,14,
+255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,7,
+255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,
+255,255,255,2,255,255,255,1,255,255,255,1,232,232,232,1,20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,56,56,56,0,239,239,239,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,
+255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,
+255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,
+255,255,255,17,255,255,255,18,255,255,255,18,255,255,255,19,255,255,255,20,255,255,255,21,255,255,255,21,255,255,255,22,
+255,255,255,23,255,255,255,23,255,255,255,24,255,255,255,24,255,255,255,25,255,255,255,25,255,255,255,25,255,255,255,26,
+255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26,
+255,255,255,25,255,255,255,25,255,255,255,25,255,255,255,25,255,255,255,24,255,255,255,24,255,255,255,23,255,255,255,23,
+255,255,255,22,255,255,255,22,255,255,255,21,255,255,255,20,255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,17,
+255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,11,
+255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6,
+255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,
+255,255,255,1,255,255,255,1,239,239,239,1,63,63,63,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,63,63,63,0,239,239,239,1,255,255,255,1,255,255,255,1,255,255,255,2,
+255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,
+255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,12,
+255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,15,255,255,255,16,255,255,255,16,255,255,255,17,255,255,255,17,
+255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,20,
+255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,20,
+255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,17,
+255,255,255,17,255,255,255,17,255,255,255,16,255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,14,255,255,255,13,
+255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,8,
+255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,
+255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,
+254,254,254,1,168,168,168,1,56,56,56,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,63,63,63,0,232,232,232,1,254,254,254,1,255,255,255,1,
+255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,
+255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,
+255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,13,
+255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,15,255,255,255,15,255,255,255,15,
+255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15,
+255,255,255,15,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,13,255,255,255,13,
+255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10,
+255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7,
+255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,
+255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,247,247,247,1,
+161,161,161,1,13,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,20,20,20,0,161,161,161,1,247,247,247,1,
+255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,
+255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,7,
+255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,10,
+255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,
+255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,
+255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,
+255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,7,
+255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,
+255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,
+255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,247,247,247,1,167,167,167,1,57,57,57,0,
+8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,57,57,57,0,
+167,167,167,1,247,247,247,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,
+255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,
+255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,
+255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,
+255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,
+255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,
+255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5,
+255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,
+255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,
+255,255,255,1,255,255,255,1,254,254,254,1,240,240,240,1,167,167,167,1,57,57,57,0,8,8,8,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+8,8,8,0,57,57,57,0,167,167,167,1,247,247,247,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,
+255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,
+255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,
+255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,
+255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,
+255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,
+255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,
+255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,
+255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,247,247,247,1,
+238,238,238,1,167,167,167,1,99,99,99,1,21,21,21,0,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,8,8,8,0,57,57,57,0,113,113,113,1,231,231,231,1,240,240,240,1,254,254,254,1,
+255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,
+255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,
+255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,
+255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,
+255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,
+255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,
+255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,
+255,255,255,1,254,254,254,1,240,240,240,1,238,238,238,1,231,231,231,1,113,113,113,1,104,104,104,1,57,57,57,0,
+15,15,15,0,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,14,14,14,0,21,21,21,0,99,99,99,1,
+104,104,104,1,167,167,167,1,238,238,238,1,240,240,240,1,254,254,254,1,255,255,255,1,255,255,255,1,255,255,255,1,
+255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,
+255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,
+255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,
+255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,
+255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,
+255,255,255,1,254,254,254,1,240,240,240,1,238,238,238,1,238,238,238,1,231,231,231,1,113,113,113,1,104,104,104,1,
+104,104,104,1,99,99,99,1,21,21,21,0,15,15,15,0,14,14,14,0,1,1,1,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,8,8,8,0,15,15,15,0,21,21,21,0,99,99,99,1,104,104,104,1,104,104,104,1,113,113,113,1,
+231,231,231,1,238,238,238,1,238,238,238,1,238,238,238,1,238,238,238,1,240,240,240,1,254,254,254,1,255,255,255,1,
+255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,
+255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,
+255,255,255,1,255,255,255,1,255,255,255,1,254,254,254,1,240,240,240,1,238,238,238,1,238,238,238,1,238,238,238,1,
+238,238,238,1,238,238,238,1,238,238,238,1,238,238,238,1,231,231,231,1,113,113,113,1,104,104,104,1,104,104,104,1,
+104,104,104,1,99,99,99,1,21,21,21,0,15,15,15,0,15,15,15,0,14,14,14,0,1,1,1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,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,1,1,0,
+14,14,14,0,15,15,15,0,15,15,15,0,15,15,15,0,15,15,15,0,21,21,21,0,99,99,99,1,104,104,104,1,
+104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,
+104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,
+104,104,104,1,104,104,104,1,104,104,104,1,99,99,99,1,21,21,21,0,15,15,15,0,15,15,15,0,15,15,15,0,
+15,15,15,0,15,15,15,0,15,15,15,0,15,15,15,0,14,14,14,0,1,1,1,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+};
+} embedded_image;
diff --git a/Editor/main_SDL2.cpp b/Editor/main_SDL2.cpp
index 6cc2ba8f6..6bd2afc5a 100644
--- a/Editor/main_SDL2.cpp
+++ b/Editor/main_SDL2.cpp
@@ -4,7 +4,7 @@
#include "sdl2.h"
#include
-#include "icon.c"
+#include "icon.h"
#ifdef __linux__
# include
@@ -95,7 +95,7 @@ void set_window_icon(SDL_Window *window) {
// to assume the data it gets is byte-wise RGB(A) data
Uint32 rmask, gmask, bmask, amask;
#if SDL_BYTEORDER == SDL_BIG_ENDIAN
- int shift = (gimp_image.bytes_per_pixel == 3) ? 8 : 0;
+ int shift = (embedded_image.bytes_per_pixel == 3) ? 8 : 0;
rmask = 0xff000000 >> shift;
gmask = 0x00ff0000 >> shift;
bmask = 0x0000ff00 >> shift;
@@ -104,10 +104,10 @@ void set_window_icon(SDL_Window *window) {
rmask = 0x000000ff;
gmask = 0x0000ff00;
bmask = 0x00ff0000;
- amask = (gimp_image.bytes_per_pixel == 3) ? 0 : 0xff000000;
+ amask = (embedded_image.bytes_per_pixel == 3) ? 0 : 0xff000000;
#endif
- SDL_Surface* icon = SDL_CreateRGBSurfaceFrom((void*)gimp_image.pixel_data, gimp_image.width,
- gimp_image.height, gimp_image.bytes_per_pixel*8, gimp_image.bytes_per_pixel*gimp_image.width,
+ SDL_Surface* icon = SDL_CreateRGBSurfaceFrom((void*)embedded_image.pixel_data, embedded_image.width,
+ embedded_image.height, embedded_image.bytes_per_pixel*8, embedded_image.bytes_per_pixel* embedded_image.width,
rmask, gmask, bmask, amask);
SDL_SetWindowIcon(window, icon);
@@ -196,7 +196,7 @@ int main(int argc, char *argv[])
}
#endif
- wi::arguments::Parse(argc, argv);
+ wi::arguments::Parse(argc, argv);
sdl2::sdlsystem_ptr_t system = sdl2::make_sdlsystem(SDL_INIT_EVERYTHING | SDL_INIT_EVENTS);
if (*system) {
@@ -208,7 +208,7 @@ int main(int argc, char *argv[])
bool fullscreen = false;
wi::Timer timer;
- if (editor.config.Open("config.ini"))
+ if (wi::helper::FileExists("config.ini") && editor.config.Open("config.ini"))
{
if (editor.config.Has("width"))
{
@@ -225,7 +225,7 @@ int main(int argc, char *argv[])
height = std::max(100, height);
sdl2::window_ptr_t window = sdl2::make_window(
- "Wicked Editor",
+ exe_customization.name_256padded,
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
width, height,
SDL_WINDOW_SHOWN | SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI);
diff --git a/Editor/main_Windows.cpp b/Editor/main_Windows.cpp
index 2d857f736..5fae53fa4 100644
--- a/Editor/main_Windows.cpp
+++ b/Editor/main_Windows.cpp
@@ -12,6 +12,8 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow)
{
+ wi::arguments::Parse(lpCmdLine);
+
SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2);
static auto WndProc = [](HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) -> LRESULT {
@@ -117,11 +119,13 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(1001)); // 1001 = icon from Resource.rc file
- wcex.hIconSm = wcex.hIcon;
+ wcex.hIconSm = NULL;
wcex.hCursor = LoadCursor(hInstance, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wcex.lpszMenuName = NULL;
- wcex.lpszClassName = L"Wicked Editor";
+ wchar_t wname[256] = {};
+ wi::helper::StringConvert(exe_customization.name_256padded, wname, arraysize(wname));
+ wcex.lpszClassName = wname;
RegisterClassExW(&wcex);
@@ -132,7 +136,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
bool borderless = false;
wi::Timer timer;
- if (editor.config.Open("config.ini"))
+ if (wi::helper::FileExists("config.ini") && editor.config.Open("config.ini"))
{
if (editor.config.Has("width"))
{
@@ -197,9 +201,6 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
UpdateWindow(hWnd);
DragAcceptFiles(hWnd, TRUE);
-
- wi::arguments::Parse(lpCmdLine);
-
editor.SetWindow(hWnd);
MSG msg = { 0 };
diff --git a/Editor/wicked.ico b/Editor/wicked.ico
index f7f3f5bac..49e9bd2c1 100644
Binary files a/Editor/wicked.ico and b/Editor/wicked.ico differ
diff --git a/Samples/Example_ImGui/wicked.ico b/Samples/Example_ImGui/wicked.ico
index f7f3f5bac..49e9bd2c1 100644
Binary files a/Samples/Example_ImGui/wicked.ico and b/Samples/Example_ImGui/wicked.ico differ
diff --git a/Samples/Example_ImGui_Docking/wicked.ico b/Samples/Example_ImGui_Docking/wicked.ico
index f7f3f5bac..49e9bd2c1 100644
Binary files a/Samples/Example_ImGui_Docking/wicked.ico and b/Samples/Example_ImGui_Docking/wicked.ico differ
diff --git a/Samples/Tests/wicked.ico b/Samples/Tests/wicked.ico
index f7f3f5bac..49e9bd2c1 100644
Binary files a/Samples/Tests/wicked.ico and b/Samples/Tests/wicked.ico differ
diff --git a/WickedEngine/shaders/fontPS.hlsl b/WickedEngine/shaders/fontPS.hlsl
index c52d6e20e..ef463b99f 100644
--- a/WickedEngine/shaders/fontPS.hlsl
+++ b/WickedEngine/shaders/fontPS.hlsl
@@ -36,6 +36,8 @@ float4 main(VertextoPixel input) : SV_TARGET
color.a *= value;
}
+ color.rgb *= color.a; // NOTE: premultiplied blending! This is important for blending in HDR linear space
+
[branch]
if (flags & FONT_FLAG_OUTPUT_COLOR_SPACE_LINEAR)
{
diff --git a/WickedEngine/wiApplication.cpp b/WickedEngine/wiApplication.cpp
index b889bb86e..fbfd4dfea 100644
--- a/WickedEngine/wiApplication.cpp
+++ b/WickedEngine/wiApplication.cpp
@@ -114,6 +114,11 @@ namespace wi
desc.height = swapChain.desc.height;
desc.format = Format::R11G11B10_FLOAT;
desc.bind_flags = BindFlag::RENDER_TARGET | BindFlag::SHADER_RESOURCE;
+ // try to set background color for swapchain color as if it's using hdr scaling:
+ desc.clear.color[0] = swapChain.desc.clear_color[0] * 9;
+ desc.clear.color[1] = swapChain.desc.clear_color[1] * 9;
+ desc.clear.color[2] = swapChain.desc.clear_color[2] * 9;
+ desc.clear.color[3] = swapChain.desc.clear_color[3];
bool success = graphicsDevice->CreateTexture(&desc, nullptr, &rendertargetPreHDR10);
assert(success);
graphicsDevice->SetName(&rendertargetPreHDR10, "Application::rendertargetPreHDR10");
@@ -169,20 +174,30 @@ namespace wi
if (!startup_script)
{
startup_script = true;
- std::string startup_lua_filename = wi::helper::GetCurrentPath() + "/startup.lua";
- if (wi::helper::FileExists(startup_lua_filename))
+ if (wi::helper::FileExists(rewriteable_startup_script_text))
{
- if (wi::lua::RunFile(startup_lua_filename))
+ if (wi::lua::RunFile(rewriteable_startup_script_text))
{
- wi::backlog::post("Executed startup file: " + startup_lua_filename);
+ wi::backlog::post("Executed startup file: " + rewriteable_startup_script_text);
}
}
- std::string startup_luab_filename = wi::helper::GetCurrentPath() + "/startup.luab";
- if (wi::helper::FileExists(startup_luab_filename))
+ else
{
- if (wi::lua::RunBinaryFile(startup_luab_filename))
+ std::string startup_lua_filename = wi::helper::GetCurrentPath() + "/startup.lua";
+ if (wi::helper::FileExists(startup_lua_filename))
{
- wi::backlog::post("Executed startup file: " + startup_luab_filename);
+ if (wi::lua::RunFile(startup_lua_filename))
+ {
+ wi::backlog::post("Executed startup file: " + startup_lua_filename);
+ }
+ }
+ std::string startup_luab_filename = wi::helper::GetCurrentPath() + "/startup.luab";
+ if (wi::helper::FileExists(startup_luab_filename))
+ {
+ if (wi::lua::RunBinaryFile(startup_luab_filename))
+ {
+ wi::backlog::post("Executed startup file: " + startup_luab_filename);
+ }
}
}
}
@@ -725,13 +740,8 @@ namespace wi
canvas.init(window);
- SwapChainDesc desc;
- if (swapChain.IsValid())
- {
- // it will only resize, but keep format and other settings
- desc = swapChain.desc;
- }
- else
+ SwapChainDesc desc = swapChain.desc;
+ if (!swapChain.IsValid())
{
// initialize for the first time
desc.buffer_count = 3;
@@ -802,6 +812,11 @@ namespace wi
#endif // PLATFORM_WINDOWS_DESKTOP
}
+ bool Application::IsScriptReplacement() const
+ {
+ return wi::helper::FileExists(rewriteable_startup_script_text);
+ }
+
}
diff --git a/WickedEngine/wiApplication.h b/WickedEngine/wiApplication.h
index b4edb8c49..13b76033c 100644
--- a/WickedEngine/wiApplication.h
+++ b/WickedEngine/wiApplication.h
@@ -134,6 +134,8 @@ namespace wi
}
bool IsFaded() const { return fadeManager.IsFaded(); }
+ const std::string rewriteable_startup_script_text = "wicked_engine_rewriteable_startup_script_path_paddedlength_256_uniquestring ";
+ bool IsScriptReplacement() const;
};
}
diff --git a/WickedEngine/wiFont.cpp b/WickedEngine/wiFont.cpp
index e635afff8..c7f19b283 100644
--- a/WickedEngine/wiFont.cpp
+++ b/WickedEngine/wiFont.cpp
@@ -319,7 +319,7 @@ namespace wi::font
BlendState bd;
bd.render_target[0].blend_enable = true;
- bd.render_target[0].src_blend = Blend::SRC_ALPHA;
+ bd.render_target[0].src_blend = Blend::ONE; // premultiplied blending
bd.render_target[0].dest_blend = Blend::INV_SRC_ALPHA;
bd.render_target[0].blend_op = BlendOp::ADD;
bd.render_target[0].src_blend_alpha = Blend::ONE;
diff --git a/WickedEngine/wiHelper.cpp b/WickedEngine/wiHelper.cpp
index 822ede32e..052713501 100644
--- a/WickedEngine/wiHelper.cpp
+++ b/WickedEngine/wiHelper.cpp
@@ -3,11 +3,14 @@
#include "wiBacklog.h"
#include "wiEventHandler.h"
#include "wiMath.h"
+#include "wiImage.h"
+#include "wiRenderer.h"
#include "Utility/lodepng.h"
#include "Utility/dds.h"
#include "Utility/stb_image_write.h"
#include "Utility/zstd/zstd.h"
+#include "Utility/portable-file-dialogs.h"
#include
#include
@@ -30,7 +33,6 @@
#ifdef PLATFORM_LINUX
#include
-#include "Utility/portable-file-dialogs.h"
#endif // PLATFORM_LINUX
#ifdef PLATFORM_WINDOWS_DESKTOP
@@ -673,6 +675,181 @@ namespace wi::helper
assert(desc.format == Format::R8G8B8A8_UNORM || desc.format == Format::R8G8B8A8_UNORM_SRGB); // If you need to save other texture format, implement data conversion for it
}
+ if (!extension.compare("ICO"))
+ {
+ struct ICONDIR
+ {
+ uint16_t idReserved; // Reserved (must be 0)
+ uint16_t idType; // Resource Type (1 for icon)
+ uint16_t idCount; // Number of images
+ };
+ struct ICONDIRENTRY
+ {
+ uint8_t bWidth; // Width, in pixels
+ uint8_t bHeight; // Height, in pixels
+ uint8_t bColorCount; // Number of colors (0 if >= 8bpp)
+ uint8_t bReserved; // Reserved (must be 0)
+ uint16_t wPlanes; // Color Planes
+ uint16_t wBitCount; // Bits per pixel
+ uint32_t dwBytesInRes; // Size of image data
+ uint32_t dwImageOffset;// Offset to image data
+ };
+ struct BITMAPINFOHEADER
+ {
+ uint32_t biSize; // Size of this header
+ int32_t biWidth; // Width in pixels
+ int32_t biHeight; // Height in pixels (doubled for icon)
+ uint16_t biPlanes; // Number of color planes
+ uint16_t biBitCount; // Bits per pixel
+ uint32_t biCompression;// Compression method
+ uint32_t biSizeImage; // Size of image data
+ int32_t biXPelsPerMeter; // Horizontal resolution
+ int32_t biYPelsPerMeter; // Vertical resolution
+ uint32_t biClrUsed; // Colors used
+ uint32_t biClrImportant; // Important colors
+ };
+
+ const uint32_t minsize = 32;
+
+ size_t filesize = sizeof(ICONDIR);
+
+ ICONDIR icondir = { 0,1,0 };
+
+ for (auto& mip : mips)
+ {
+ if (mip.width > 256 || mip.height > 256)
+ continue;
+ if (mip.width < minsize || mip.height < minsize)
+ break;
+ icondir.idCount++;
+ filesize += sizeof(ICONDIRENTRY);
+ }
+
+ if (icondir.idCount < 1)
+ {
+ wilog_assert(0, "No valid images were found that can be added to ICO file format!");
+ return false;
+ }
+
+ uint32_t imageDataOffset = (uint32_t)filesize;
+
+ for (auto& mip : mips)
+ {
+ if (mip.width > 256 || mip.height > 256)
+ continue;
+ if (mip.width < minsize || mip.height < minsize)
+ break;
+ const uint32_t pixelCount = mip.width * mip.height;
+ const uint32_t rgbDataSize = pixelCount * 4; // 32-bit RGBA
+ const uint32_t maskSize = ((mip.width + 7) / 8) * mip.height; // 1-bit mask, padded to byte
+ const uint32_t imageDataSize = sizeof(BITMAPINFOHEADER) + rgbDataSize + maskSize;
+ filesize += imageDataSize;
+ }
+
+ filedata.resize(filesize);
+ uint8_t* ptr = filedata.data();
+
+ std::memcpy(ptr, &icondir, sizeof(ICONDIR));
+ ptr += sizeof(ICONDIR);
+
+ for (auto& mip : mips)
+ {
+ if (mip.width > 256 || mip.height > 256)
+ continue;
+ if (mip.width < minsize || mip.height < minsize)
+ break;
+
+ const uint32_t pixelCount = mip.width * mip.height;
+ const uint32_t rgbDataSize = pixelCount * 4; // 32-bit RGBA
+ const uint32_t maskSize = ((mip.width + 7) / 8) * mip.height; // 1-bit mask, padded to byte
+ const uint32_t imageDataSize = sizeof(BITMAPINFOHEADER) + rgbDataSize + maskSize;
+
+ ICONDIRENTRY iconEntry = {
+ static_cast(mip.width > 255 ? 0 : mip.width), // Width (0 for 256+)
+ static_cast(mip.height > 255 ? 0 : mip.height), // Height (0 for 256+)
+ 0, // Color count (0 for 32-bit)
+ 0, // Reserved
+ 1, // Color planes
+ 32, // Bits per pixel
+ imageDataSize, // Size of image data
+ imageDataOffset // Offset to image data
+ };
+ std::memcpy(ptr, &iconEntry, sizeof(ICONDIRENTRY));
+ ptr += sizeof(ICONDIRENTRY);
+ imageDataOffset += imageDataSize;
+ }
+
+ for (auto& mip : mips)
+ {
+ if (mip.width > 256 || mip.height > 256)
+ continue;
+ if (mip.width < minsize || mip.height < minsize)
+ break;
+
+ const uint32_t pixelCount = mip.width * mip.height;
+ const uint32_t rgbDataSize = pixelCount * 4; // 32-bit RGBA
+ const uint32_t maskSize = ((mip.width + 7) / 8) * mip.height; // 1-bit mask, padded to byte
+
+ BITMAPINFOHEADER bmpHeader = {
+ sizeof(BITMAPINFOHEADER), // Size of header
+ int32_t(mip.width), // Width
+ int32_t(mip.height * 2), // Height (doubled for XOR + AND mask)
+ 1, // Planes
+ 32, // Bits per pixel
+ 0, // No compression
+ rgbDataSize + maskSize, // Image size
+ 0, // X pixels per meter
+ 0, // Y pixels per meter
+ 0, // Colors used
+ 0 // Important colors
+ };
+ std::memcpy(ptr, &bmpHeader, sizeof(BITMAPINFOHEADER));
+ ptr += sizeof(BITMAPINFOHEADER);
+
+ // Convert RGBA to BGRA and write XOR mask (flipped vertically)
+ for (uint32_t y = mip.height; y > 0; --y)
+ {
+ const uint8_t* src = mip.address + (y - 1) * mip.width * 4;
+ for (uint32_t x = 0; x < mip.width; ++x)
+ {
+ // Convert RGBA to BGRA
+ ptr[0] = src[2]; // B
+ ptr[1] = src[1]; // G
+ ptr[2] = src[0]; // R
+ ptr[3] = src[3]; // A
+ ptr += 4;
+ src += 4;
+ }
+ }
+
+ // Write AND mask (1-bit transparency mask)
+ for (uint32_t y = mip.height; y > 0; --y)
+ {
+ const uint8_t* src = mip.address + (y - 1) * mip.width * 4;
+ for (uint32_t x = 0; x < mip.width; x += 8)
+ {
+ uint8_t maskByte = 0;
+ for (uint32_t bit = 0; bit < 8 && (x + bit) < mip.width; ++bit)
+ {
+ // Set bit to 0 if pixel is opaque (alpha > 0), 1 if transparent
+ if (src[(x + bit) * 4 + 3] == 0)
+ {
+ maskByte |= (1 << (7 - bit));
+ }
+ }
+ *ptr++ = maskByte;
+ }
+ // Pad to 32-bit boundary
+ while ((ptr - filedata.data() - sizeof(ICONDIR) - sizeof(ICONDIRENTRY) - sizeof(BITMAPINFOHEADER) - rgbDataSize) % 4 != 0)
+ {
+ *ptr++ = 0;
+ }
+ }
+ }
+
+ return true;
+ }
+
int write_result = 0;
filedata.clear();
@@ -703,6 +880,35 @@ namespace wi::helper
{
write_result = stbi_write_bmp_to_func(func, &filedata, (int)mip.width, (int)mip.height, dst_channel_count, mip.address);
}
+ else if (!extension.compare("H"))
+ {
+ const size_t datasize = mip.width * mip.height * sizeof(wi::Color);
+ std::string ss;
+ ss += "struct EmbeddedImage {\n";
+ ss += "const unsigned int width = " + std::to_string(mip.width) + ";\n";
+ ss += "const unsigned int height = " + std::to_string(mip.height) + ";\n";
+ ss += "const unsigned int bytes_per_pixel = 4;\n";
+ ss += "const char comment[256] = \"RGBA Image Header Generated By Wicked Engine\";\n";
+ ss += "const unsigned char pixel_data[" + std::to_string(mip.width) + " * " + std::to_string(mip.height) + " * 4] = {";
+ for (size_t i = 0; i < datasize; ++i)
+ {
+ if (i % 32 == 0)
+ {
+ ss += "\n";
+ }
+ ss += std::to_string((uint32_t)mip.address[i]) + ",";
+ }
+ ss += "\n};\n};\n";
+ filedata.resize(ss.size());
+ std::memcpy(filedata.data(), ss.c_str(), ss.length());
+ return true;
+ }
+ else if (!extension.compare("RAW"))
+ {
+ filedata.resize(mip.width* mip.height * sizeof(wi::Color));
+ std::memcpy(filedata.data(), mip.address, filedata.size());
+ return true;
+ }
else
{
assert(0 && "Unsupported extension");
@@ -923,6 +1129,13 @@ namespace wi::helper
}
}
+ std::string BackslashToForwardSlash(const std::string& str)
+ {
+ std::string ret = str;
+ std::replace(ret.begin(), ret.end(), '\\', '/');
+ return ret;
+ }
+
void DirectoryCreate(const std::string& path)
{
std::filesystem::create_directories(ToNativeString(path));
@@ -1021,6 +1234,11 @@ namespace wi::helper
return std::chrono::duration_cast>(tim.time_since_epoch()).count();
}
+ bool FileCopy(const std::string& filename_src, const std::string& filename_dst)
+ {
+ return std::filesystem::copy_file(ToNativeString(filename_src), ToNativeString(filename_dst), std::filesystem::copy_options::overwrite_existing);
+ }
+
std::string GetTempDirectoryPath()
{
#if defined(PLATFORM_XBOX) || defined(PLATFORM_PS5)
@@ -1061,6 +1279,19 @@ namespace wi::helper
#endif // PLATFORM_PS5
}
+ std::string GetExecutablePath()
+ {
+#ifdef _WIN32
+ wchar_t wstr[1024] = {};
+ GetModuleFileName(NULL, wstr, arraysize(wstr));
+ char str[1024] = {};
+ StringConvert(wstr, str, arraysize(str));
+ return str;
+#else
+ return std::filesystem::canonical("/proc/self/exe").string();
+#endif // _WIN32
+ }
+
void FileDialog(const FileDialogParams& params, std::function onSuccess)
{
#ifdef PLATFORM_WINDOWS_DESKTOP
@@ -1191,6 +1422,16 @@ namespace wi::helper
#endif // PLATFORM_LINUX
}
+ std::string FolderDialog(const std::string& description)
+ {
+ if (!pfd::settings::available())
+ {
+ messageBox("No dialog backend available!", "Error!");
+ return "";
+ }
+ return pfd::select_folder(description).result();
+ }
+
void GetFileNamesInDirectory(const std::string& directory, std::function onSuccess, const std::string& filter_extension)
{
std::filesystem::path directory_path = ToNativeString(directory);
diff --git a/WickedEngine/wiHelper.h b/WickedEngine/wiHelper.h
index 7dc0ca47d..cecbaa217 100644
--- a/WickedEngine/wiHelper.h
+++ b/WickedEngine/wiHelper.h
@@ -51,16 +51,16 @@ namespace wi::helper
// Save raw pixel data from the texture to memory
bool saveTextureToMemory(const wi::graphics::Texture& texture, wi::vector& texturedata);
- // Save texture to memory as a file format
+ // Save texture to memory as a file format (file format is determined by extension, supported extensions: .png, .jpg, .jpeg, .tga, .bmp, .dds, .ico, .h, .raw)
bool saveTextureToMemoryFile(const wi::graphics::Texture& texture, const std::string& fileExtension, wi::vector& filedata);
- // Save raw texture data to memory as file format
+ // Save raw texture data to memory as file format (file format is determined by extension, supported extensions: .png, .jpg, .jpeg, .tga, .bmp, .dds, .ico, .h, .raw)
bool saveTextureToMemoryFile(const wi::vector& textureData, const wi::graphics::TextureDesc& desc, const std::string& fileExtension, wi::vector& filedata);
- // Save texture to file format
+ // Save texture to file format (file format is determined by extension, supported extensions: .png, .jpg, .jpeg, .tga, .bmp, .dds, .ico, .h, .raw)
bool saveTextureToFile(const wi::graphics::Texture& texture, const std::string& fileName);
- // Save raw texture data to file format
+ // Save raw texture data to file format (file format is determined by extension, supported extensions: .png, .jpg, .jpeg, .tga, .bmp, .dds, .ico, .h, .raw)
bool saveTextureToFile(const wi::vector& texturedata, const wi::graphics::TextureDesc& desc, const std::string& fileName);
// Download buffer from GPU into CPU memory
@@ -89,6 +89,8 @@ namespace wi::helper
void MakePathAbsolute(std::string& path);
+ std::string BackslashToForwardSlash(const std::string& str);
+
void DirectoryCreate(const std::string& path);
// Returns the file size if the file exists, otherwise 0
@@ -109,9 +111,12 @@ namespace wi::helper
uint64_t FileTimestamp(const std::string& fileName);
+ bool FileCopy(const std::string& filename_src, const std::string& filename_dst);
+
std::string GetTempDirectoryPath();
std::string GetCacheDirectoryPath();
std::string GetCurrentPath();
+ std::string GetExecutablePath();
struct FileDialogParams
{
@@ -125,6 +130,8 @@ namespace wi::helper
};
void FileDialog(const FileDialogParams& params, std::function onSuccess);
+ std::string FolderDialog(const std::string& description = "Select folder");
+
void GetFileNamesInDirectory(const std::string& directory, std::function onSuccess, const std::string& filter_extension = "");
void GetFolderNamesInDirectory(const std::string& directory, std::function onSuccess);
diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp
index f883fc43d..83302e827 100644
--- a/WickedEngine/wiVersion.cpp
+++ b/WickedEngine/wiVersion.cpp
@@ -9,7 +9,7 @@ namespace wi::version
// minor features, major updates, breaking compatibility changes
const int minor = 71;
// minor bug fixes, alterations, refactors, updates
- const int revision = 787;
+ const int revision = 788;
const std::string version_string = std::to_string(major) + "." + std::to_string(minor) + "." + std::to_string(revision);