diff options
| author | Amlal <amlal.elmahrouss@icloud.com> | 2025-01-24 10:38:36 +0100 |
|---|---|---|
| committer | Amlal <amlal.elmahrouss@icloud.com> | 2025-01-24 10:38:36 +0100 |
| commit | 7b4bd3577a31d0f0adc7371840642791ae1567f4 (patch) | |
| tree | 1a8afc973aaa739d0d763315cad2fd376d1cea9c /dev/Boot | |
ADD: Open version, with important changes kept out.
Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Boot')
53 files changed, 3760 insertions, 0 deletions
diff --git a/dev/Boot/BootKit/BitManip.h b/dev/Boot/BootKit/BitManip.h new file mode 100644 index 00000000..08421d6e --- /dev/null +++ b/dev/Boot/BootKit/BitManip.h @@ -0,0 +1,20 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#ifndef __BITMANIP_H__ +#define __BITMANIP_H__ + +/// File: BitManip.h +/// Purpose: Bit manipulation helpers, based on coreboot-dev. + +#define bk_set_bit(X, O) X = (1 << O) | X +#define bk_clear_bit(X, O) X = ~(1 << O) & X +#define bk_toogle(X, O) X = (1 << O) ^ X +#define bk_lsb(X) X = X & -X +#define bk_msb(X) X = -(mp_lsb(X)) & X +#define bk_look_for_bit(X, O) (1 << O) | X + +#endif // ifndef __BITMANIP_H__ diff --git a/dev/Boot/BootKit/BootKit.h b/dev/Boot/BootKit/BootKit.h new file mode 100644 index 00000000..5a537448 --- /dev/null +++ b/dev/Boot/BootKit/BootKit.h @@ -0,0 +1,398 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +/***********************************************************************************/ +/// @file BootKit.h +/// @brief Bootloader Application Programming Interface. +/***********************************************************************************/ + +#pragma once + +#include <BootKit/HW/ATA.h> +#include <FirmwareKit/EPM.h> +#include <CompilerKit/Version.h> +#include <Mod/CoreGfx/FBMgr.h> +#include <BootKit/Rsrc/zka_disk.rsrc> +#include <BootKit/Rsrc/zka_no_disk.rsrc> +#include <BootKit/Rsrc/zka_has_disk.rsrc> + +/// include NeFS header and Support header as well. + +#include <FSKit/NeFS.h> +#include <BootKit/Support.h> + +/***********************************************************************************/ +/// Include other APIs. +/***********************************************************************************/ + +#include <NewKit/Defines.h> +#include <Mod/ATA/ATA.h> + +#include <FirmwareKit/EFI.h> + +/***********************************************************************************/ +/// Framebuffer helpers. +/***********************************************************************************/ + +namespace EFI +{ + EXTERN void ThrowError(const WideChar* errorCode, + const WideChar* reason) noexcept; +} // namespace EFI + +namespace Boot +{ + class BTextWriter; + class BFileReader; + class BootThread; + class BVersionString; + + typedef Char* PEFImagePtr; + typedef Char* PEImagePtr; + + typedef WideChar CharacterTypeUTF16; + typedef Char CharacterTypeUTF8; + + using namespace Kernel; + + /** + * @brief BootKit Text Writer class + * Writes to UEFI StdOut. + */ + class BTextWriter final + { + BTextWriter& _Write(const Long& num); + + public: + BTextWriter& Write(const Long& num); + BTextWriter& Write(const Char* str); + BTextWriter& Write(const CharacterTypeUTF16* str); + BTextWriter& WriteCharacter(CharacterTypeUTF16 c); + BTextWriter& Write(const UChar* str); + + template <typename T> + BTextWriter& operator<<(T elem) + { + this->Write(elem); + return *this; + } + + public: + explicit BTextWriter() = default; + ~BTextWriter() = default; + + public: + BTextWriter& operator=(const BTextWriter&) = default; + BTextWriter(const BTextWriter&) = default; + }; + + Kernel::SizeT BCopyMem(CharacterTypeUTF16* dest, CharacterTypeUTF16* src, const Kernel::SizeT len); + + Kernel::SizeT BSetMem(CharacterTypeUTF8* src, const CharacterTypeUTF8 byte, const Kernel::SizeT len); + + /// String length functions. + + /// @brief get string length. + Kernel::SizeT BStrLen(const CharacterTypeUTF16* ptr); + + /// @brief set memory with custom value. + Kernel::SizeT BSetMem(CharacterTypeUTF16* src, const CharacterTypeUTF16 byte, const Kernel::SizeT len); + + /** + * @brief BootKit File Reader class + * Reads the Firmware Boot partition and filesystem. + */ + class BFileReader final + { + public: + explicit BFileReader(const CharacterTypeUTF16* path, + EfiHandlePtr ImageHandle); + ~BFileReader(); + + public: + Void ReadAll(SizeT until, SizeT chunk = kib_cast(4), UIntPtr out_address = 0UL); + + enum + { + kOperationOkay, + kNotSupported, + kEmptyDirectory, + kNoSuchEntry, + kIsDirectory, + kTooSmall, + kCount, + }; + + /// @brief error code getter. + /// @return the error code. + Int32& Error(); + + /// @brief blob getter. + /// @return the blob. + VoidPtr Blob(); + + /// @breif Size getter. + /// @return the size of the file. + UInt64& Size(); + + public: + BFileReader& operator=(const BFileReader&) = default; + BFileReader(const BFileReader&) = default; + + private: + Int32 mErrorCode{kOperationOkay}; + VoidPtr mBlob{nullptr}; + CharacterTypeUTF16 mPath[kPathLen]; + BTextWriter mWriter; + EfiFileProtocol* mFile{nullptr}; + UInt64 mSizeFile{0}; + EfiFileProtocol* mRootFs; + }; + + typedef UInt8* BlobType; + + class BVersionString final + { + public: + static const CharacterTypeUTF8* The() + { + return BOOTLOADER_VERSION; + } + }; + + /***********************************************************************************/ + /// Provide some useful processor features. + /***********************************************************************************/ + +#ifdef __EFI_x86_64__ + + /*** + * Common processor instructions. + */ + + EXTERN_C void rt_out8(UInt16 port, UInt8 value); + EXTERN_C void rt_out16(UInt16 port, UInt16 value); + EXTERN_C void rt_out32(UInt16 port, UInt32 value); + EXTERN_C UInt8 rt_in8(UInt16 port); + EXTERN_C UInt16 In16(UInt16 port); + EXTERN_C UInt32 rt_in32(UInt16 port); + + EXTERN_C void rt_hlt(); + EXTERN_C void rt_cli(); + EXTERN_C void rt_sti(); + EXTERN_C void rt_cld(); + EXTERN_C void rt_std(); + +#endif // __EFI_x86_64__ + + static inline const UInt32 kRgbRed = 0x000000FF; + static inline const UInt32 kRgbGreen = 0x0000FF00; + static inline const UInt32 kRgbBlue = 0x00FF0000; + static inline const UInt32 kRgbBlack = 0x00000000; + static inline const UInt32 kRgbWhite = 0x00FFFFFF; + +#define kBKBootFileMime "boot-x/file" +#define kBKBootDirMime "boot-x/dir" + + /// @brief BootKit Drive Formatter. + template <typename BootDev> + class BDiskFormatFactory final + { + public: + /// @brief File entry for **BDiskFormatFactory**. + struct BFileDescriptor final + { + Char fFileName[kNeFSNodeNameLen]; + Int32 fKind; + }; + + public: + explicit BDiskFormatFactory() = default; + explicit BDiskFormatFactory(BootDev dev) + : fDiskDev(dev) + { + } + + ~BDiskFormatFactory() = default; + + ZKA_COPY_DELETE(BDiskFormatFactory); + + /// @brief Format disk using partition name and blob_list. + /// @param Partition part_name the target partition name. + /// @param blob_list blobs array. + /// @param blob_cnt blobs array count. + /// @retval True disk has been formatted. + /// @retval False failed to format. + Boolean Format(const Char* part_name, BFileDescriptor* blob_list, SizeT blob_cnt); + + /// @brief check if partition is good. + Bool IsPartitionValid() noexcept + { + fDiskDev.Leak().mBase = (kNeFSRootCatalogStartAddress); + fDiskDev.Leak().mSize = BootDev::kSectorSize; + + Char buf[BootDev::kSectorSize] = {0}; + + fDiskDev.Read(buf, BootDev::kSectorSize); + + NFS_ROOT_PARTITION_BLOCK* blockPart = reinterpret_cast<NFS_ROOT_PARTITION_BLOCK*>(buf); + + BTextWriter writer; + + for (SizeT indexMag = 0UL; indexMag < kNeFSIdentLen; ++indexMag) + { + if (blockPart->Ident[indexMag] != kNeFSIdent[indexMag]) + return false; + } + + if (blockPart->DiskSize != this->fDiskDev.GetDiskSize() || + blockPart->DiskSize < 1 || + blockPart->SectorSize != BootDev::kSectorSize || + blockPart->Version != kNeFSVersionInteger || + blockPart->StartCatalog == 0) + { + return false; + } + else if (blockPart->PartitionName[0] == 0) + { + return false; + } + + writer.Write(L"BootZ: Partition: ").Write(blockPart->PartitionName).Write(L" is healthy.\r"); + + return true; + } + + private: + /// @brief Write all of the requested catalogs into the filesystem. + /// @param blob_list the blobs. + /// @param blob_cnt the number of blobs to write. + /// @param part the NeFS partition block. + Boolean WriteCatalogList(BFileDescriptor* blob_list, SizeT blob_cnt, NFS_ROOT_PARTITION_BLOCK& part) + { + BFileDescriptor* blob = blob_list; + Lba startLba = part.StartCatalog; + BTextWriter writer; + + NFS_CATALOG_STRUCT catalogKind{0}; + + constexpr auto cNeFSCatalogPadding = 4; + + catalogKind.PrevSibling = startLba; + catalogKind.NextSibling = (startLba + sizeof(NFS_CATALOG_STRUCT) * cNeFSCatalogPadding); + + /// Fill catalog kind. + catalogKind.Kind = blob->fKind; + catalogKind.Flags |= kNeFSFlagCreated; + catalogKind.CatalogFlags = kNeFSStatusUnlocked; + + --part.FreeCatalog; + --part.FreeSectors; + + CopyMem(catalogKind.Name, blob->fFileName, StrLen(blob->fFileName)); + + fDiskDev.Leak().mBase = startLba; + fDiskDev.Leak().mSize = sizeof(NFS_CATALOG_STRUCT); + + fDiskDev.Write((Char*)&catalogKind, sizeof(NFS_CATALOG_STRUCT)); + + writer.Write(L"BootZ: Wrote directory: ").Write(blob->fFileName).Write(L"\r"); + + return true; + } + + private: + BootDev fDiskDev; + }; + + /// @brief Format disk. + /// @param Partition Name + /// @param Blobs. + /// @param Number of blobs. + /// @retval True disk has been formatted. + /// @retval False failed to format. + template <typename BootDev> + inline Boolean BDiskFormatFactory<BootDev>::Format(const Char* part_name, + BDiskFormatFactory::BFileDescriptor* blob_list, + SizeT blob_cnt) + { + if (!blob_list || !blob_cnt) + return false; /// sanity check + + /// @note A catalog roughly equal to a sector. + + constexpr auto kMinimumDiskSize = kNeFSMinimumDiskSize; // at minimum. + + /// @note also look at EPM headers, for free part blocks. + + if (fDiskDev.GetDiskSize() < kMinimumDiskSize) + { + fb_init(); + + FBDrawBitMapInRegion(zka_no_disk, ZKA_NO_DISK_WIDTH, ZKA_NO_DISK_HEIGHT, (kHandoverHeader->f_GOP.f_Width - ZKA_NO_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_NO_DISK_HEIGHT) / 2); + EFI::ThrowError(L"Drive-Too-Tiny", L"Can't format a NeFS partition here."); + return false; + } + + NFS_ROOT_PARTITION_BLOCK part{0}; + + CopyMem(part.Ident, kNeFSIdent, kNeFSIdentLen - 1); + CopyMem(part.PartitionName, part_name, StrLen(part_name)); + + part.Version = kNeFSVersionInteger; + part.CatalogCount = blob_cnt; + part.Kind = kNeFSHardDrive; + part.SectorSize = 512; + part.FreeCatalog = fDiskDev.GetSectorsCount() / sizeof(NFS_CATALOG_STRUCT); + part.SectorCount = fDiskDev.GetSectorsCount(); + part.FreeSectors = fDiskDev.GetSectorsCount(); + part.StartCatalog = kNeFSCatalogStartAddress; + part.DiskSize = fDiskDev.GetDiskSize(); + part.Flags = kNeFSPartitionTypeBoot | kNeFSPartitionTypeStandard; + + fDiskDev.Leak().mBase = kNeFSRootCatalogStartAddress; + fDiskDev.Leak().mSize = sizeof(NFS_ROOT_PARTITION_BLOCK); + + fDiskDev.Write((Char*)&part, sizeof(NFS_ROOT_PARTITION_BLOCK)); + + BTextWriter writer; + + writer << "partition name: " << part.PartitionName << "\n"; + writer << "start: " << part.StartCatalog << "\n"; + writer << "number of catalogs: " << part.CatalogCount << "\n"; + writer << "free catalog: " << part.FreeCatalog << "\n"; + writer << "free sectors: " << part.FreeSectors << "\n"; + writer << "sector size: " << part.SectorSize << "\n"; + +#ifdef BOOTZ_EPM_SUPPORT + BOOT_BLOCK_STRUCT epm_boot{0}; + + const auto kFsName = "NeFS"; + const auto kBlockName = "OS"; + + CopyMem(epm_boot.Fs, reinterpret_cast<VoidPtr>(const_cast<Char*>(kFsName)), StrLen(kFsName)); + + epm_boot.FsVersion = kNeFSVersionInteger; + epm_boot.LbaStart = kNeFSRootCatalogStartAddress; + epm_boot.LbaEnd = fDiskDev.GetDiskSize(); + epm_boot.SectorSz = part.SectorSize; + epm_boot.Kind = kEPMZkaOS; + epm_boot.NumBlocks = part.CatalogCount; + + CopyMem(epm_boot.Name, reinterpret_cast<VoidPtr>(const_cast<Char*>(kBlockName)), StrLen(kBlockName)); + CopyMem(epm_boot.Magic, reinterpret_cast<VoidPtr>(const_cast<Char*>(kEPMMagic)), StrLen(kEPMMagic)); + + fDiskDev.Leak().mBase = kEPMBootBlockLba; // always always resies at zero block. + fDiskDev.Leak().mSize = sizeof(BOOT_BLOCK_STRUCT); + + fDiskDev.Write((Char*)&epm_boot, sizeof(BOOT_BLOCK_STRUCT)); + + writer.Write(L"BootZ: Drive has been formatted Successfully.\r"); +#endif + + return YES; + } +} // namespace Boot diff --git a/dev/Boot/BootKit/BootThread.h b/dev/Boot/BootKit/BootThread.h new file mode 100644 index 00000000..d310d830 --- /dev/null +++ b/dev/Boot/BootKit/BootThread.h @@ -0,0 +1,43 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#pragma once + +#include <KernelKit/PE.h> +#include <KernelKit/MSDOS.h> +#include <FirmwareKit/Handover.h> + +namespace Boot +{ + using namespace Kernel; + + class BootThread; + + /// @brief Bootloader Thread class. + class BootThread final + { + public: + explicit BootThread() = delete; + ~BootThread() = default; + + explicit BootThread(Kernel::VoidPtr blob); + + BootThread& operator=(const BootThread&) = default; + BootThread(const BootThread&) = default; + + Int32 Start(HEL::BootInfoHeader* handover, BOOL is_own_stack); + void SetName(const char* name); + const char* GetName(); + bool IsValid(); + + private: + Char fBlobName[255] = {"BootThread"}; + VoidPtr fStartAddress{nullptr}; + VoidPtr fBlob{nullptr}; + UInt8* fStack{nullptr}; + HEL::BootInfoHeader* fHandover{nullptr}; + }; +} // namespace Boot diff --git a/dev/Boot/BootKit/Device.h b/dev/Boot/BootKit/Device.h new file mode 100644 index 00000000..bbb0ce89 --- /dev/null +++ b/dev/Boot/BootKit/Device.h @@ -0,0 +1,37 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#pragma once + +#include <Mod/ATA/ATA.h> +#include <Mod/AHCI/AHCI.h> + +using namespace Kernel; + +/// @brief Device type. +class Device +{ +public: + explicit Device() = default; + virtual ~Device() = default; + + ZKA_MOVE_DEFAULT(Device); + + struct Trait + { + SizeT mBase{1024}; + SizeT mSize{1024}; + }; + + virtual Trait& Leak() = 0; + + virtual Device& Read(Char* Buf, const SizeT& SecCount) = 0; + virtual Device& Write(Char* Buf, const SizeT& SecCount) = 0; +}; + +typedef Device BootDevice; +typedef Device NetworkDevice; +typedef Device DiskDevice; diff --git a/dev/Boot/BootKit/EPM.h b/dev/Boot/BootKit/EPM.h new file mode 100644 index 00000000..778f4f5f --- /dev/null +++ b/dev/Boot/BootKit/EPM.h @@ -0,0 +1,9 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#pragma once + +#include <FirmwareKit/EPM.h> diff --git a/dev/Boot/BootKit/HW/ATA.h b/dev/Boot/BootKit/HW/ATA.h new file mode 100644 index 00000000..c58bbd61 --- /dev/null +++ b/dev/Boot/BootKit/HW/ATA.h @@ -0,0 +1,58 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#pragma once + +#include <Mod/ATA/ATA.h> +#include <BootKit/Device.h> + +using namespace Kernel; + +class BootDeviceATA final : public Device +{ +public: + enum + { + kPrimary = ATA_PRIMARY_IO, + kSecondary = ATA_SECONDARY_IO, + }; + + explicit BootDeviceATA() noexcept; + ~BootDeviceATA() = default; + + ZKA_COPY_DELETE(BootDeviceATA); + + enum + { + kSectorSize = kATASectorSize + }; + + struct ATATrait final : public Device::Trait + { + UInt16 mBus{kPrimary}; + UInt8 mMaster{0}; + Boolean mErr{false}; + + operator bool() + { + return !mErr; + } + }; + +public: + operator bool(); + + SizeT GetSectorsCount() noexcept; + SizeT GetDiskSize() noexcept; + + BootDeviceATA& Read(Char* Buf, const SizeT& SecCount) override; + BootDeviceATA& Write(Char* Buf, const SizeT& SecCount) override; + + ATATrait& Leak() override; + +private: + ATATrait mTrait; +}; diff --git a/dev/Boot/BootKit/HW/SATA.h b/dev/Boot/BootKit/HW/SATA.h new file mode 100644 index 00000000..a7ece124 --- /dev/null +++ b/dev/Boot/BootKit/HW/SATA.h @@ -0,0 +1,46 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#pragma once + +#include <CompilerKit/CompilerKit.h> +#include <Mod/AHCI/AHCI.h> + +class BootDeviceSATA final +{ +public: + explicit BootDeviceSATA() noexcept; + ~BootDeviceSATA() = default; + + ZKA_COPY_DEFAULT(BootDeviceSATA); + + struct SATATrait final + { + Kernel::SizeT mBase{1024}; + Kernel::Boolean mErr{false}; + Kernel::Boolean mDetected{false}; + + operator bool() + { + return !this->mErr; + } + }; + + operator bool() + { + return this->Leak().mDetected; + } + + BootDeviceSATA& Read(Kernel::WideChar* Buf, const Kernel::SizeT& SecCount); + BootDeviceSATA& Write(Kernel::WideChar* Buf, const Kernel::SizeT& SecCount); + + SATATrait& Leak(); + +private: + SATATrait mTrait; +}; + +#define kAHCISectorSz 4096 diff --git a/dev/Boot/BootKit/Platform.h b/dev/Boot/BootKit/Platform.h new file mode 100644 index 00000000..517c0b57 --- /dev/null +++ b/dev/Boot/BootKit/Platform.h @@ -0,0 +1,32 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#pragma once + +/** + @file Platform.h + @brief Platform specific code. +*/ + +#ifdef __x86_64__ + +#ifdef __cplusplus +#ifndef EXTERN_C +#define EXTERN_C extern "C" +#endif +#else +#ifndef EXTERN_C +#define EXTERN_C extern +#endif +#endif // __cplusplus + +EXTERN_C void rt_halt(); +EXTERN_C void rt_cli(); +EXTERN_C void rt_sti(); +EXTERN_C void rt_cld(); +EXTERN_C void rt_std(); + +#endif /* ifdef __x86_64__ */ diff --git a/dev/Boot/BootKit/Protocol.h b/dev/Boot/BootKit/Protocol.h new file mode 100644 index 00000000..4bb16649 --- /dev/null +++ b/dev/Boot/BootKit/Protocol.h @@ -0,0 +1,10 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#pragma once + +#include <FirmwareKit/EFI.h> +#include <FirmwareKit/Handover.h> diff --git a/dev/Boot/BootKit/Rsrc/zka_disk.rsrc b/dev/Boot/BootKit/Rsrc/zka_disk.rsrc new file mode 100644 index 00000000..ce980b7b --- /dev/null +++ b/dev/Boot/BootKit/Rsrc/zka_disk.rsrc @@ -0,0 +1,116 @@ +#define ZKA_DISK_HEIGHT 110
+#define ZKA_DISK_WIDTH 110
+
+// array size is 36300
+static const unsigned int zka_disk[] = {
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x333333, 0x565656, 0x636363, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6a6a6a, 0x5f5f5f, 0x4d4d4d, 0x2b2b2b, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x464646, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x6a6a6a, 0x3b3b3b, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x3d3d3d, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x393939, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x252525, 0x676767, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x606060, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4c4c4c, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x3d3d3d, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x616161, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x525252, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x242424, 0x767676, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x676767, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x393939, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7e7e7e, 0x292929, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4e4e4e, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x3f3f3f, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x666666, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x555555, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x222222, 0x7c7c7c, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x6d6d6d, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x393939, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x868686, 0x292929, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x515151, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x404040, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x6a6a6a, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x828282, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x727272, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x383838, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x8e8e8e, 0x2a2a2a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x525252, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x414141, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x6e6e6e, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x5c5c5c, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x868686, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x787878, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x373737, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x959595, 0x2a2a2a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x545454, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0x444444, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x707070, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0x5e5e5e, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x8b8b8b, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0x7c7c7c, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x363636, 0xa7a7a7, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0x9c9c9c, 0x2a2a2a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x545454, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0x464646, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x717171, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0x636363, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x8e8e8e, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0x818181, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x343434, 0xacacac, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xa3a3a3, 0x2a2a2a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x545454, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0x484848, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x727272, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0x676767, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x909090, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0x868686, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x313131, 0xb0b0b0, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xa9a9a9, 0x2a2a2a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x525252, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0x494949, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x727272, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0x6a6a6a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x929292, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0x8c8c8c, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x2e2e2e, 0xb4b4b4, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xafafaf, 0x292929, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x505050, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0x4b4b4b, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x717171, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0x6e6e6e, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x939393, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0x929292, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x2a2a2a, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0x292929, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4c4c4c, 0x4c4c4c, 0x4c4c4c, 0x4c4c4c, 0x4b4b4b, 0x4b4b4b, 0x4b4b4b, 0x4b4b4b, 0x4a4a4a, 0x4a4a4a, 0x4a4a4a, 0x4a4a4a, 0x494949, 0x494949, 0x494949, 0x494949, 0x484848, 0x484848, 0x484848, 0x484848, 0x474747, 0x474747, 0x474747, 0x464646, 0x464646, 0x464646, 0x464646, 0x454545, 0x454545, 0x454545, 0x454545, 0x444444, 0x444444, 0x444444, 0x444444, 0x434343, 0x434343, 0x434343, 0x434343, 0x424242, 0x424242, 0x424242, 0x414141, 0x414141, 0x414141, 0x414141, 0x404040, 0x404040, 0x404040, 0x404040, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3e3e3e, 0x3e3e3e, 0x3e3e3e, 0x3e3e3e, 0x3d3d3d, 0x3d3d3d, 0x3d3d3d, 0x3d3d3d, 0x3c3c3c, 0x3c3c3c, 0x3c3c3c, 0x3c3c3c, 0x3b3b3b, 0x3b3b3b, 0x3b3b3b, 0x3a3a3a, 0x3a3a3a, 0x3a3a3a, 0x3a3a3a, 0x393939, 0x393939, 0x393939, 0x393939, 0x383838, 0x383838, 0x383838, 0x383838, 0x373737, 0x373737, 0x373737, 0x373737, 0x363636, 0x363636, 0x363636, 0x353535, 0x353535, 0x353535, 0x353535, 0x343434, 0x343434, 0x343434, 0x343434, 0x333333, 0x333333, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xababab, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x949494, 0x949494, 0x929292, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0x9f9f9f, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x888888, 0x888888, 0x868686, 0x868686, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa5a5a5, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb2b2b2, 0xb0b0b0, 0xb0b0b0, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x848484, 0x848484, 0x828282, 0x828282, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x5a5a5a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x929292, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x868686, 0x868686, 0x848484, 0x848484, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa5a5a5, 0xa3a3a3, 0xa3a3a3, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb2b2b2, 0xb0b0b0, 0xb0b0b0, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x999999, 0x979797, 0x979797, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x848484, 0x848484, 0x828282, 0x828282, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x5a5a5a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xababab, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x949494, 0x949494, 0x929292, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0x9f9f9f, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x888888, 0x888888, 0x868686, 0x393939, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4d4d4d, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa5a5a5, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x393939, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4c4c4c, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb2b2b2, 0xb0b0b0, 0xb0b0b0, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x393939, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4d4d4d, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x5a5a5a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x929292, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x393939, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4c4c4c, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x868686, 0x393939, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4d4d4d, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa5a5a5, 0xa3a3a3, 0xa3a3a3, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x393939, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4c4c4c, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb2b2b2, 0xb0b0b0, 0xb0b0b0, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x999999, 0x979797, 0x979797, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x848484, 0x848484, 0x828282, 0x828282, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x5a5a5a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xababab, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x949494, 0x949494, 0x929292, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0x9f9f9f, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x888888, 0x888888, 0x868686, 0x868686, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa5a5a5, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb2b2b2, 0xb0b0b0, 0xb0b0b0, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x848484, 0x848484, 0x828282, 0x828282, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x5a5a5a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x929292, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xc6c6c6, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x868686, 0x868686, 0x848484, 0x848484, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x565656, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x9a9a9a, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa5a5a5, 0xa3a3a3, 0xa3a3a3, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x464646, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x797979, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb2b2b2, 0xb0b0b0, 0xb0b0b0, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x999999, 0x979797, 0x979797, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x848484, 0x848484, 0x828282, 0x828282, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x353535, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xbfbfbf, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xababab, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x949494, 0x949494, 0x929292, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x464646, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x464646, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0x9f9f9f, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x888888, 0x888888, 0x868686, 0x868686, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x676767, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x7f7f7f, 0xbababa, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa5a5a5, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x626262, 0x484848, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x3a3a3a, 0x4b4b4b, 0x4b4b4b, 0x4a4a4a, 0x4a4a4a, 0x4a4a4a, 0x4a4a4a, 0x494949, 0x494949, 0x494949, 0x494949, 0x484848, 0x484848, 0x484848, 0x484848, 0x474747, 0x474747, 0x474747, 0x464646, 0x464646, 0x464646, 0x464646, 0x454545, 0x454545, 0x454545, 0x454545, 0x444444, 0x444444, 0x444444, 0x444444, 0x434343, 0x434343, 0x434343, 0x424242, 0x424242, 0x424242, 0x424242, 0x414141, 0x414141, 0x414141, 0x414141, 0x404040, 0x404040, 0x404040, 0x404040, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3e3e3e, 0x3e3e3e, 0x3e3e3e, 0x3e3e3e, 0x3d3d3d, 0x3d3d3d, 0x3d3d3d, 0x3d3d3d, 0x3c3c3c, 0x3c3c3c, 0x3c3c3c, 0x3c3c3c, 0x3b3b3b, 0x3b3b3b, 0x3b3b3b, 0x3a3a3a, 0x3a3a3a, 0x3a3a3a, 0x3a3a3a, 0x393939, 0x393939, 0x393939, 0x393939, 0x383838, 0x383838, 0x383838, 0x383838, 0x373737, 0x373737, 0x373737, 0x373737, 0x363636, 0x363636, 0x363636, 0x353535, 0x353535, 0x353535, 0x353535, 0x272727, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020
+};
\ No newline at end of file diff --git a/dev/Boot/BootKit/Rsrc/zka_has_disk.rsrc b/dev/Boot/BootKit/Rsrc/zka_has_disk.rsrc new file mode 100644 index 00000000..bdc0bb99 --- /dev/null +++ b/dev/Boot/BootKit/Rsrc/zka_has_disk.rsrc @@ -0,0 +1,116 @@ +#define ZKA_HAS_DISK_HEIGHT 110
+#define ZKA_HAS_DISK_WIDTH 110
+
+// array size is 36300
+static const unsigned int zka_has_disk[] = {
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x333333, 0x565656, 0x636363, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6a6a6a, 0x5f5f5f, 0x4d4d4d, 0x2b2b2b, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x464646, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x6a6a6a, 0x3b3b3b, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x3d3d3d, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x393939, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x252525, 0x676767, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x606060, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4c4c4c, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x3d3d3d, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x616161, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x525252, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x242424, 0x767676, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x676767, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x393939, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7e7e7e, 0x292929, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4e4e4e, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x3f3f3f, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x666666, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x555555, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x222222, 0x7c7c7c, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x6d6d6d, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x393939, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x868686, 0x292929, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x515151, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x404040, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x6a6a6a, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x89948e, 0x7ba08a, 0x6eaa87, 0x6cab87, 0x6cab87, 0x6caa87, 0x6caa87, 0x6da888, 0x799f8a, 0x89938e, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x828282, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x8c9590, 0x72ab88, 0x61b883, 0x52c37f, 0x4bc87e, 0x4ac77e, 0x4ac67e, 0x49c57e, 0x48c47f, 0x47c37f, 0x47c37f, 0x46c17f, 0x46c180, 0x45c07f, 0x4cba82, 0x5cb085, 0x6fa58a, 0x8c9490, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x727272, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x383838, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x899d90, 0x69b686, 0x4ecb7e, 0x4dca7e, 0x4cc97e, 0x4bc87e, 0x4bc77f, 0x4ac67f, 0x4ac67f, 0x49c57f, 0x48c47f, 0x47c37f, 0x47c280, 0x46c180, 0x46c080, 0x45bf80, 0x44bf81, 0x43be81, 0x43bd81, 0x42bc81, 0x62ac89, 0x869a91, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x8e8e8e, 0x2a2a2a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x525252, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x86a390, 0x61be83, 0x4ecb7d, 0x4dca7d, 0x4cca7e, 0x4bc87e, 0x4bc87e, 0x4ac77e, 0x4ac67e, 0x49c57e, 0x48c47f, 0x48c37f, 0x47c37f, 0x46c17f, 0x46c180, 0x45c080, 0x45bf80, 0x44be80, 0x43bd80, 0x42bc80, 0x42bc81, 0x41ba81, 0x41ba81, 0x40b981, 0x57af87, 0x839d92, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x414141, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x6e6e6e, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x929e96, 0x68bb87, 0x4fcd7e, 0x4ecc7d, 0x4ecb7e, 0x4dca7e, 0x4cc97e, 0x4bc87e, 0x4bc77f, 0x4ac67f, 0x4ac67f, 0x49c57f, 0x48c480, 0x47c380, 0x47c280, 0x46c180, 0x46c080, 0x45bf80, 0x44bf81, 0x43be81, 0x43bd81, 0x42bc81, 0x42bb82, 0x41ba82, 0x40b982, 0x40b882, 0x3fb882, 0x3eb782, 0x5fab8b, 0x919b97, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x5c5c5c, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x868686, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x88a893, 0x55c97f, 0x4ecc7d, 0x4ecb7d, 0x4dca7d, 0x4cc97e, 0x4bc87e, 0x4bc87e, 0x4ac77e, 0x4ac67e, 0x49c57e, 0x48c47f, 0x47c37f, 0x47c27f, 0x46c17f, 0x46c180, 0x45c080, 0x44bf80, 0x44be80, 0x43bd80, 0x42bc80, 0x42bb81, 0x41ba81, 0x41ba81, 0x40b981, 0x3fb882, 0x3eb782, 0x3eb682, 0x3db582, 0x3db482, 0x45b185, 0x83a195, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x787878, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x373737, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x7bb48f, 0x4fcd7d, 0x4fcc7d, 0x4ecb7d, 0x4dcb7e, 0x4cca7e, 0x4cc97e, 0x4bc87e, 0x4bc77f, 0x4ac67f, 0x49c57f, 0x49c47f, 0x48c480, 0x47c37f, 0x47c280, 0x46c180, 0x46c080, 0x45bf80, 0x44bf81, 0x43bd81, 0x43bd81, 0x42bc81, 0x42bb82, 0x41ba82, 0x40b982, 0x3fb882, 0x3fb882, 0x3eb682, 0x3eb683, 0x3db583, 0x3cb483, 0x3cb383, 0x3bb284, 0x74a693, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x959595, 0x2a2a2a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x545454, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0x76b88e, 0x4fcd7d, 0x4ecc7d, 0x4ecb7d, 0x4dca7d, 0x4cca7e, 0x4bc87e, 0x4bc87e, 0x4ac77e, 0x4ac67f, 0x49c57e, 0x48c47f, 0x48c37f, 0x47c37f, 0x46c17f, 0x46c180, 0x45c080, 0x45bf80, 0x44be80, 0x43bd81, 0x42bc81, 0x42bc81, 0x41ba81, 0x41ba81, 0x40b981, 0x3fb882, 0x3eb782, 0x3eb682, 0x3db582, 0x3db583, 0x3cb383, 0x3bb383, 0x3ab283, 0x3ab183, 0x39b083, 0x6fa893, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0x444444, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x707070, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0x79ba90, 0x4fcd7d, 0x4fcd7e, 0x4ecb7e, 0x4dcb7e, 0x4dca7e, 0x4cc97e, 0x4bc87e, 0x4bc77f, 0x4ac67f, 0x4ac67f, 0x49c47f, 0x48c480, 0x47c380, 0x47c280, 0x46c180, 0x46c080, 0x45bf80, 0x44bf81, 0x43bd81, 0x43bd81, 0x42bc81, 0x42bb82, 0x41ba82, 0x40b982, 0x40b882, 0x3fb883, 0x3eb682, 0x3eb683, 0x3db583, 0x3cb483, 0x3cb383, 0x3bb284, 0x3ab184, 0x3ab184, 0x39af84, 0x38af85, 0x6da894, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0x5e5e5e, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x8b8b8b, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0x7db892, 0x4fcd7d, 0x4ecc7d, 0x4ecb7d, 0x4dca7d, 0x4cc97e, 0x4bc87e, 0x4bc87e, 0x4ac67e, 0x4ac67e, 0x49c57e, 0x48c47f, 0x47c37f, 0x47c27f, 0x46c17f, 0x46c180, 0x45bf80, 0x44bf80, 0x43be80, 0x43bd80, 0x42bc80, 0x42bb81, 0x41ba81, 0x40ba81, 0x3fb881, 0x3fb882, 0x3eb782, 0x3eb682, 0x3db582, 0x3cb482, 0x3cb382, 0x3bb383, 0x3ab183, 0x3ab183, 0x39b083, 0x39af84, 0x38ae84, 0x37ad84, 0x36ac84, 0x74a897, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0x7c7c7c, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x363636, 0xa7a7a7, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0x90b39d, 0x4fcd7d, 0x4fcc7d, 0x4ecb7d, 0x4dcb7e, 0x4cc97e, 0x4cc97e, 0x4bc87e, 0x4bc77f, 0x4ac67f, 0x49c57f, 0x48c47f, 0x48c480, 0x47c27f, 0x47c280, 0x46c180, 0x45c080, 0x44bf80, 0x44be81, 0x43bd81, 0x43bd81, 0x42bb81, 0x41bb82, 0x41ba82, 0x40b982, 0x3fb882, 0x3fb782, 0x3eb682, 0x3eb683, 0x3db483, 0x3cb483, 0x3bb383, 0x3bb284, 0x3ab184, 0x3ab084, 0x39af84, 0x38af84, 0x37ad84, 0x37ad85, 0x36ac85, 0x36ab85, 0x8aa99f, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0x9c9c9c, 0x2a2a2a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x545454, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xa2afa6, 0x56ca80, 0x4ecc7d, 0x4ecb7d, 0x4dca7d, 0x4cc97e, 0x4bc87e, 0x4bc87e, 0x4ac67e, 0x4ac67f, 0x49c57e, 0x48c47f, 0x47c37f, 0x47c27f, 0x46c17f, 0x46c180, 0x45bf80, 0x44bf80, 0x43be80, 0x43bd81, 0x42bc81, 0x42bb81, 0x41ba81, 0x40ba81, 0x40b881, 0x3fb882, 0x3eb782, 0x3eb682, 0x3db582, 0x3db483, 0x3cb383, 0x3bb383, 0x3ab183, 0x3ab183, 0x39b083, 0x39af84, 0x38ae84, 0x37ad84, 0x36ac84, 0x36ac85, 0x35ab85, 0x35aa85, 0x3ea988, 0xa2aba8, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0x464646, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x717171, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0x70c28e, 0x4fcc7e, 0x4ecb7e, 0x4dcb7e, 0x4cca7e, 0x4cc97e, 0x4bc87e, 0x4bc77f, 0x4ac67f, 0x49c57f, 0x48c47f, 0x48c480, 0x47c380, 0x47c280, 0x46c180, 0x45c080, 0x45bf80, 0x44be81, 0x43bd81, 0x43bd81, 0x42bc81, 0x42bb82, 0x41ba82, 0x40b982, 0x3fb882, 0x3fb783, 0x3eb682, 0x3eb683, 0x3db583, 0x3cb483, 0x3bb383, 0x3bb284, 0x3ab184, 0x3ab084, 0x39af84, 0x38af85, 0x38ae85, 0x37ad85, 0x36ac85, 0x36ab85, 0x35aa85, 0x34a986, 0x34a886, 0x63aa96, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0x636363, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x8e8e8e, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0x9bb6a5, 0x4ecc7d, 0x4dcb7d, 0x4cca7d, 0x4cc97e, 0x4bc87e, 0x4bc77e, 0x4ac67e, 0x49c67e, 0x49c57e, 0x48c47f, 0x47c37f, 0x47c27f, 0x46c17f, 0x46c080, 0x45bf80, 0x44bf80, 0x43be80, 0x43bd81, 0x42bc80, 0x42bb81, 0x41ba81, 0x40b981, 0x3fb881, 0x3fb882, 0x3eb782, 0x3eb682, 0x3db582, 0x3cb483, 0x3bb383, 0x3bb283, 0x3ab183, 0x3ab183, 0x39b083, 0x38af84, 0x37ae84, 0x37ad84, 0x36ac84, 0x36ab85, 0x35aa85, 0x34aa85, 0x34a985, 0x33a885, 0x32a785, 0x32a686, 0x9baea9, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0x818181, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x343434, 0xacacac, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0x68c68b, 0x4ecb7d, 0x4dcb7e, 0x4cc97e, 0x4cc97e, 0x4bc87e, 0x4bc77f, 0x4ac67f, 0x49c57f, 0x48c47f, 0x48c480, 0x47c27f, 0x47c280, 0x46c180, 0x45c080, 0x44bf80, 0x44be81, 0x43bd81, 0x43bd81, 0x42bb81, 0x41bb82, 0x41ba82, 0x40b982, 0x3fb882, 0x3fb782, 0x3eb682, 0x3eb683, 0x3db483, 0x3cb483, 0x3bb383, 0x3bb284, 0x3ab184, 0x3ab084, 0x39af84, 0x38af85, 0x37ad84, 0x37ad85, 0x36ac85, 0x36ab85, 0x35aa85, 0x34a986, 0x33a886, 0x33a886, 0x32a686, 0x32a687, 0x57a993, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xa3a3a3, 0x2a2a2a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x545454, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xa0baaa, 0x4dcb7d, 0x4dca7d, 0x4cc97e, 0x4bc87e, 0x4bc77e, 0x4ac67e, 0x4ac67f, 0x49c57e, 0x48c47f, 0x47c37f, 0x47c27f, 0x46c17f, 0x46c080, 0x45bf80, 0x44bf80, 0x43be80, 0x43bd81, 0x42bc81, 0x42bb81, 0x41ba81, 0x40b981, 0x3fb881, 0x3fb882, 0x3eb782, 0x3eb682, 0x3db582, 0x3cb483, 0x3bb383, 0x3bb283, 0x3ab183, 0x3ab184, 0x39b083, 0x38af84, 0x38ae84, 0x37ad84, 0x36ac84, 0x36ab85, 0x35aa85, 0x35aa85, 0x34a985, 0x33a886, 0x32a786, 0x32a686, 0x31a586, 0x31a486, 0x30a386, 0x9eb2ad, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0x484848, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x727272, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0x72c592, 0x4dcb7e, 0x4cc97e, 0x4cc97e, 0x4bc87e, 0x4bc77f, 0x4ac67f, 0x49c57f, 0x48c47f, 0x48c480, 0x47c280, 0x47c280, 0x46c180, 0x45c080, 0x45bf81, 0x44be81, 0x43bd81, 0x43bd81, 0x42bb81, 0x42bb82, 0x41ba82, 0x40b982, 0x3fb882, 0x3fb783, 0x3eb682, 0x3eb683, 0x3db483, 0x3cb483, 0x3bb383, 0x3bb284, 0x3ab184, 0x3ab084, 0x39af84, 0x38af85, 0x37ad85, 0x37ad85, 0x36ac85, 0x36ab85, 0x35aa85, 0x34a986, 0x33a886, 0x33a886, 0x32a686, 0x32a687, 0x31a587, 0x30a487, 0x30a387, 0x60aa99, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0x676767, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x909090, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xb3bbb6, 0x50c97f, 0x4cc97e, 0x4bc87e, 0x4bc77e, 0x4ac67e, 0x49c57e, 0x48c47e, 0x48c47f, 0x47c37f, 0x47c27f, 0x46c17f, 0x45c080, 0x44bf80, 0x44be80, 0x43bd80, 0x43bd81, 0x42bc80, 0x41bb81, 0x41ba81, 0x40b981, 0x3fb881, 0x3fb782, 0x3eb682, 0x3eb682, 0x3db582, 0x3cb482, 0x3bb383, 0x3bb283, 0x3ab183, 0x3ab083, 0x39af83, 0x38af84, 0x37ae84, 0x51b894, 0x8ed1b9, 0x50b694, 0x35aa85, 0x34a985, 0x33a885, 0x33a885, 0x32a785, 0x32a686, 0x31a586, 0x30a486, 0x2fa386, 0x2fa387, 0x2ea187, 0x32a289, 0xb4b9b8, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0x868686, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x313131, 0xb0b0b0, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0x92c2a5, 0x4cc97e, 0x4cc97e, 0x4bc77e, 0x4ac77f, 0x4ac67f, 0x49c57f, 0x48c47f, 0x48c380, 0x47c27f, 0x46c280, 0x46c080, 0x45c080, 0x44bf80, 0x44be81, 0x43bd81, 0x43bc81, 0x42bb81, 0x41bb82, 0x40ba82, 0x40b982, 0x3fb882, 0x3fb782, 0x3eb682, 0x3db583, 0x3cb483, 0x3cb483, 0x3bb383, 0x3bb284, 0x3ab184, 0x39b084, 0x39af84, 0x38ae85, 0x6bc3a4, 0xf4fcf6, 0xfbfffa, 0xf3fbf5, 0x54b797, 0x34a986, 0x33a886, 0x33a786, 0x32a686, 0x31a686, 0x31a587, 0x30a487, 0x2fa387, 0x2fa287, 0x2ea187, 0x2ea088, 0x86b2a9, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xa9a9a9, 0x2a2a2a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x525252, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0x74c695, 0x4bc87e, 0x4bc77e, 0x4ac67e, 0x49c67f, 0x48c47f, 0x48c47f, 0x47c37f, 0x47c27f, 0x46c17f, 0x45c080, 0x45bf80, 0x44bf80, 0x43bd80, 0x43bd81, 0x42bc81, 0x42bb81, 0x41ba81, 0x40b981, 0x3fb881, 0x3fb882, 0x3eb682, 0x3eb682, 0x3db582, 0x3cb483, 0x3bb383, 0x3bb283, 0x3ab183, 0x3ab184, 0x39af83, 0x38af84, 0x37ae84, 0x6ac3a3, 0xf4fcf5, 0xfafff8, 0xfafff8, 0xfafff8, 0x9ed7c3, 0x33a886, 0x32a786, 0x32a686, 0x31a586, 0x30a486, 0x30a386, 0x2fa387, 0x2ea187, 0x2ea187, 0x2da087, 0x2d9f88, 0x61aa9c, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0x494949, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x727272, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0x57c885, 0x4bc77e, 0x4ac77f, 0x4ac67f, 0x49c57f, 0x48c47f, 0x48c380, 0x47c280, 0x47c280, 0x46c080, 0x45c080, 0x44bf80, 0x44be81, 0x43bd81, 0x43bc81, 0x42bb81, 0x41bb82, 0x40b982, 0x40b982, 0x3fb882, 0x3fb783, 0x3eb683, 0x3db583, 0x3db483, 0x3cb483, 0x3bb383, 0x3bb284, 0x3ab184, 0x3ab084, 0x39af84, 0x38ae85, 0x6ac3a3, 0xf5fdf5, 0xf9fff7, 0xf9fff7, 0xf9fff7, 0xf9fff6, 0x83cbb4, 0x33a786, 0x32a686, 0x32a687, 0x31a587, 0x30a487, 0x2fa387, 0x2fa288, 0x2ea187, 0x2ea088, 0x2d9f88, 0x2c9f88, 0x3ea28f, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0x6a6a6a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x929292, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xb9c4be, 0x4bc77e, 0x4ac67e, 0x49c57e, 0x48c47e, 0x48c47f, 0x47c37f, 0x47c27f, 0x46c17f, 0x45c080, 0x44bf80, 0x44be80, 0x43bd80, 0x43bd81, 0x42bc80, 0x41bb81, 0x41ba81, 0x40b981, 0x3fb881, 0x3fb782, 0x3eb682, 0x3db682, 0x3db582, 0x3cb483, 0x3bb383, 0x3bb283, 0x3ab183, 0x39b083, 0x39af83, 0x38af84, 0x37ae84, 0x6ac2a2, 0xf1fcf2, 0xf8fff5, 0xf7fff5, 0xf7fff5, 0xf7fff4, 0xc3e8d7, 0x36a987, 0x32a686, 0x31a586, 0x30a486, 0x2fa386, 0x2fa287, 0x2ea187, 0x2ea187, 0x2da087, 0x2c9f87, 0x2c9e88, 0x2b9d88, 0x2a9c88, 0xbcc2c1, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0x8c8c8c, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x2e2e2e, 0xb4b4b4, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xa9c7b6, 0x4ac77f, 0x49c67f, 0x49c57f, 0x48c47f, 0x48c380, 0x47c280, 0x46c180, 0x46c080, 0x45c080, 0x44bf80, 0x44be81, 0x43bd81, 0x43bc81, 0x42bb81, 0x41ba82, 0x40b982, 0x40b982, 0x3fb882, 0x3fb782, 0x3eb682, 0x3db583, 0x3cb483, 0x3cb383, 0x3bb283, 0x3bb284, 0x3ab184, 0x39b084, 0x38af84, 0x38ae85, 0x69c2a1, 0xf2fcf1, 0xf7fff4, 0xf7fff4, 0xf7fff3, 0xf7fff3, 0xc4e8d7, 0x39aa89, 0x32a686, 0x31a587, 0x31a487, 0x30a487, 0x2fa387, 0x2fa287, 0x2ea187, 0x2ea088, 0x2d9f88, 0x2c9e88, 0x2b9d88, 0x2b9d89, 0x2a9c89, 0xa6beba, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xafafaf, 0x292929, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x505050, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0x99c8ad, 0x49c57f, 0x48c47f, 0x48c47f, 0x47c37f, 0x47c27f, 0x46c17f, 0x45c080, 0x45bf80, 0x44bf80, 0x43bd80, 0x43bd81, 0x42bc81, 0x41bb81, 0x4cbe88, 0x6dca9e, 0x40b882, 0x3fb882, 0x3eb682, 0x3db682, 0x3db582, 0x3cb483, 0x3bb383, 0x3bb283, 0x3ab183, 0x3ab184, 0x39af83, 0x38af84, 0x37ae84, 0x69c2a1, 0xeffcef, 0xf6fff3, 0xf5fff2, 0xf5fff2, 0xf5fff1, 0xc3e8d5, 0x39aa8a, 0x32a686, 0x31a586, 0x30a486, 0x30a386, 0x2fa387, 0x2ea187, 0x2ea187, 0x2da087, 0x2d9f88, 0x2c9e88, 0x2b9d88, 0x2a9c88, 0x2a9c89, 0x299a88, 0x93bab4, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0x4b4b4b, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x717171, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0x93caab, 0x49c57f, 0x48c47f, 0x48c380, 0x47c280, 0x47c280, 0x46c080, 0x45c081, 0x44bf81, 0x44be81, 0x43bd81, 0x43bc81, 0x42bb81, 0x63c898, 0xe7f8ec, 0xf9fff7, 0xcdeedb, 0x4bbc8b, 0x3eb683, 0x3db583, 0x3cb483, 0x3cb483, 0x3bb283, 0x3bb284, 0x3ab184, 0x39b084, 0x38af84, 0x38ae85, 0x65c1a0, 0xeffcee, 0xf5fff1, 0xf5fff1, 0xf5fff1, 0xf5fff1, 0xc2e8d5, 0x3aaa8a, 0x32a686, 0x32a687, 0x31a487, 0x30a487, 0x2fa387, 0x2fa288, 0x2ea187, 0x2ea088, 0x2d9f88, 0x2c9f88, 0x2b9d88, 0x2b9d89, 0x2a9c89, 0x2a9b89, 0x299a89, 0x89b8b1, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0x6e6e6e, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x939393, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0x8cc9a7, 0x48c47f, 0x47c27f, 0x46c27f, 0x46c17f, 0x45c080, 0x44bf80, 0x44be80, 0x43bd80, 0x43bd81, 0x42bb80, 0x41bb81, 0x40ba81, 0xb8e6cd, 0xf7fff5, 0xf7fff5, 0xf7fff4, 0xd2f1de, 0x48b989, 0x3cb483, 0x3bb383, 0x3bb283, 0x3ab183, 0x39b083, 0x39af83, 0x38af84, 0x37ad84, 0x64c19e, 0xecfbec, 0xf4fff0, 0xf3ffef, 0xf3ffef, 0xf3ffee, 0xc5ead5, 0x3aa989, 0x31a686, 0x31a586, 0x30a486, 0x2fa386, 0x2fa287, 0x2ea187, 0x2ea187, 0x2d9f87, 0x2c9f87, 0x2b9e87, 0x2b9d88, 0x2a9c88, 0x2a9b88, 0x299a88, 0x289a89, 0x279889, 0x81b5ae, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0x929292, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x2a2a2a, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0x79b493, 0x48c380, 0x47c280, 0x46c180, 0x45c080, 0x45c080, 0x44be80, 0x44be81, 0x43bd81, 0x42bc81, 0x41bb81, 0x41ba82, 0x40b982, 0xb9e7cd, 0xf7fff3, 0xf7fff3, 0xf6fff3, 0xf6fff3, 0xd0f0db, 0x47b78a, 0x3bb283, 0x3bb284, 0x3ab084, 0x39b084, 0x38af84, 0x38ae85, 0x65c19e, 0xedfceb, 0xf3ffee, 0xf3ffee, 0xf2ffee, 0xf2ffee, 0xc3ead4, 0x3aaa8a, 0x32a686, 0x31a587, 0x30a487, 0x30a487, 0x2fa287, 0x2fa287, 0x2ea187, 0x2da088, 0x2c9f88, 0x2c9e88, 0x2b9d88, 0x2b9d89, 0x2a9b89, 0x299b89, 0x299a89, 0x289989, 0x279889, 0x699f98, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0x292929, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x316749, 0x47c280, 0x46c17f, 0x45c080, 0x44bf80, 0x44be80, 0x43bd80, 0x43bd81, 0x42bb81, 0x41bb81, 0x40ba81, 0x40b981, 0x3fb881, 0x59c192, 0xebfbeb, 0xf5fff1, 0xf4fff1, 0xf4fff1, 0xf4fff0, 0xcceed8, 0x43b588, 0x39b084, 0x39af83, 0x38af84, 0x37ad84, 0x65c19e, 0xebfce9, 0xf2ffed, 0xf1ffec, 0xf1ffec, 0xf1ffec, 0xc2ead3, 0x39a98a, 0x32a686, 0x31a586, 0x30a486, 0x2fa386, 0x2fa287, 0x2ea187, 0x2ea187, 0x2d9f87, 0x2c9f88, 0x2b9e88, 0x2b9d88, 0x2a9c88, 0x2a9b89, 0x299a88, 0x289a89, 0x289889, 0x279889, 0x269789, 0x22524d, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x2f5d44, 0x46c180, 0x45c080, 0x45c081, 0x44bf81, 0x44be81, 0x43bd81, 0x42bc81, 0x42bb81, 0x41ba82, 0x40b982, 0x40b982, 0x3fb882, 0x3fb783, 0x62c498, 0xe9fbe9, 0xf4ffef, 0xf3ffef, 0xf3ffef, 0xf3ffee, 0xcbeed7, 0x42b489, 0x38af84, 0x38ae85, 0x63c09d, 0xeafce8, 0xf1ffec, 0xf1ffec, 0xf0ffeb, 0xf0ffeb, 0xc3ebd3, 0x3aaa8a, 0x32a686, 0x31a587, 0x30a487, 0x30a487, 0x2fa387, 0x2fa288, 0x2ea187, 0x2da088, 0x2d9f88, 0x2c9e88, 0x2b9d88, 0x2b9d89, 0x2a9c89, 0x2a9b89, 0x299a89, 0x28998a, 0x27988a, 0x27978a, 0x26968a, 0x224a46, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x294838, 0x45c080, 0x44bf80, 0x44be80, 0x43bd80, 0x43bc81, 0x42bb81, 0x41bb81, 0x40ba81, 0x40b981, 0x3fb881, 0x3fb782, 0x3eb682, 0x3db582, 0x3cb482, 0x60c398, 0xe7fae7, 0xf2ffed, 0xf1ffec, 0xf1ffec, 0xf1ffeb, 0xc9edd5, 0x3eb088, 0x63c09c, 0xe8fbe6, 0xefffea, 0xefffe9, 0xefffe9, 0xeeffe9, 0xc2ead1, 0x39a989, 0x31a686, 0x31a586, 0x30a486, 0x2fa386, 0x2fa287, 0x2ea187, 0x2ea087, 0x2d9f87, 0x2c9f88, 0x2b9e88, 0x2b9d88, 0x2a9c88, 0x2a9b88, 0x299a88, 0x289989, 0x279889, 0x279889, 0x269789, 0x26968a, 0x25958a, 0x213a38, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x24302a, 0x45c081, 0x44be80, 0x44be81, 0x43bd81, 0x42bc81, 0x41bb81, 0x41ba82, 0x40b982, 0x40b982, 0x3fb782, 0x3eb783, 0x3db683, 0x3db583, 0x3cb483, 0x3cb383, 0x61c299, 0xe9fce7, 0xf0ffeb, 0xf0ffeb, 0xf0ffea, 0xf0ffea, 0xc9eed5, 0xe9fce6, 0xefffe9, 0xefffe9, 0xeeffe8, 0xeeffe8, 0xc1ead0, 0x3aaa8a, 0x32a686, 0x31a587, 0x30a487, 0x30a487, 0x2fa287, 0x2fa287, 0x2ea187, 0x2da088, 0x2c9f88, 0x2c9e88, 0x2b9d88, 0x2b9d89, 0x2a9b89, 0x299b89, 0x299a89, 0x28998a, 0x279889, 0x27978a, 0x26968a, 0x25968a, 0x25948a, 0x202928, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x41b279, 0x43bd80, 0x43bc81, 0x42bb81, 0x41bb81, 0x40ba81, 0x40b982, 0x3fb882, 0x3fb782, 0x3eb682, 0x3db582, 0x3cb482, 0x3cb483, 0x3bb383, 0x3bb283, 0x3ab183, 0x60c19a, 0xe6fbe4, 0xeeffe9, 0xeeffe8, 0xeeffe8, 0xedffe7, 0xedffe7, 0xedffe7, 0xedffe6, 0xecffe6, 0xc1eacf, 0x39a98a, 0x32a686, 0x31a586, 0x30a486, 0x2fa386, 0x2fa287, 0x2ea187, 0x2ea087, 0x2d9f87, 0x2c9f88, 0x2b9e88, 0x2b9d88, 0x2a9c88, 0x2a9b89, 0x299a88, 0x289989, 0x279889, 0x279889, 0x269789, 0x26968a, 0x25958a, 0x24948a, 0x238880, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4c4c4c, 0x4c4c4c, 0x4c4c4c, 0x4c4c4c, 0x4b4b4b, 0x4b4b4b, 0x4b4b4b, 0x4b4b4b, 0x4a4a4a, 0x4a4a4a, 0x4a4a4a, 0x4a4a4a, 0x494949, 0x494949, 0x494949, 0x494949, 0x484848, 0x484848, 0x484848, 0x484848, 0x474747, 0x474747, 0x474747, 0x464646, 0x464646, 0x44976e, 0x43bd81, 0x42bc81, 0x42bb81, 0x41ba82, 0x40b982, 0x40b982, 0x3fb782, 0x3eb783, 0x3eb683, 0x3db583, 0x3cb483, 0x3cb384, 0x3bb283, 0x3ab284, 0x3ab084, 0x39b084, 0x5fc099, 0xe5fbe3, 0xedffe7, 0xedffe7, 0xedffe6, 0xedffe6, 0xecffe5, 0xecffe5, 0xc0ebce, 0x3aaa8a, 0x32a686, 0x31a587, 0x30a487, 0x30a487, 0x2fa287, 0x2fa288, 0x2ea188, 0x2da088, 0x2d9f88, 0x2c9e88, 0x2b9d88, 0x2b9d89, 0x2a9b89, 0x2a9b89, 0x299a89, 0x28998a, 0x27988a, 0x27978a, 0x26968a, 0x26968a, 0x25948a, 0x24948b, 0x2b726d, 0x393939, 0x393939, 0x383838, 0x383838, 0x383838, 0x383838, 0x373737, 0x373737, 0x373737, 0x373737, 0x363636, 0x363636, 0x363636, 0x353535, 0x353535, 0x353535, 0x353535, 0x343434, 0x343434, 0x343434, 0x343434, 0x333333, 0x333333, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0x86b9a0, 0x41bb81, 0x41ba81, 0x40b981, 0x40b981, 0x3fb881, 0x3eb782, 0x3eb682, 0x3db582, 0x3cb482, 0x3cb383, 0x3bb283, 0x3bb283, 0x3ab183, 0x39b083, 0x38af83, 0x38ae84, 0x37ad84, 0x5ebe99, 0xe3fbe0, 0xebffe4, 0xebffe3, 0xebffe3, 0xeaffe3, 0xc3eccf, 0x39a989, 0x31a586, 0x30a486, 0x30a486, 0x2fa386, 0x2fa287, 0x2ea187, 0x2da087, 0x2c9f87, 0x2c9e88, 0x2b9d88, 0x2b9d88, 0x2a9c88, 0x299b88, 0x299a88, 0x289989, 0x279889, 0x279789, 0x269689, 0x26968a, 0x25958a, 0x24948a, 0x23938a, 0x23928a, 0x5f8986, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xaeb8b3, 0x43bb82, 0x41ba82, 0x40b982, 0x40b882, 0x3fb782, 0x3eb783, 0x3db583, 0x3db583, 0x3cb483, 0x3cb383, 0x3bb283, 0x3ab184, 0x39b084, 0x39b084, 0x38ae84, 0x38ae85, 0x37ad85, 0x36ac85, 0x5cbd99, 0xe3fcdf, 0xeaffe2, 0xeaffe2, 0xc2ecce, 0x3bab8a, 0x31a686, 0x31a587, 0x30a487, 0x30a387, 0x2fa287, 0x2ea287, 0x2ea087, 0x2da088, 0x2c9f88, 0x2c9e88, 0x2b9d88, 0x2b9c89, 0x2a9b89, 0x299b89, 0x289989, 0x28998a, 0x279889, 0x27978a, 0x26968a, 0x25958a, 0x24948a, 0x24948b, 0x23928b, 0x26928b, 0x808584, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0x64b891, 0x40b982, 0x3fb882, 0x3fb782, 0x3eb682, 0x3db582, 0x3cb482, 0x3cb483, 0x3bb283, 0x3bb283, 0x3ab183, 0x39b084, 0x38af84, 0x38ae84, 0x37ad84, 0x37ad84, 0x36ab84, 0x35ab85, 0x34aa85, 0x55b996, 0x8ed3b3, 0x85cfaf, 0x38a989, 0x31a686, 0x30a486, 0x30a486, 0x2fa386, 0x2fa287, 0x2ea187, 0x2da087, 0x2d9f87, 0x2c9f88, 0x2b9d88, 0x2b9d88, 0x2a9c88, 0x2a9b89, 0x299a88, 0x289989, 0x279889, 0x279889, 0x269689, 0x26968a, 0x25958a, 0x24948a, 0x23938a, 0x23928b, 0x22918b, 0x468d89, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0x98b7a9, 0x40b882, 0x3fb782, 0x3eb783, 0x3db583, 0x3db583, 0x3cb483, 0x3cb384, 0x3bb283, 0x3ab184, 0x3ab084, 0x39b084, 0x38ae84, 0x38ae85, 0x37ad85, 0x36ac85, 0x36ab85, 0x35aa86, 0x34a986, 0x34a986, 0x33a786, 0x32a786, 0x32a686, 0x31a587, 0x30a487, 0x30a387, 0x2fa287, 0x2fa288, 0x2ea088, 0x2da088, 0x2c9f88, 0x2c9e88, 0x2b9d88, 0x2b9c89, 0x2a9b89, 0x299b89, 0x289989, 0x28998a, 0x27988a, 0x27978a, 0x26968a, 0x25958a, 0x25948a, 0x24948b, 0x23928b, 0x23928b, 0x22918b, 0x758887, 0x848484, 0x848484, 0x828282, 0x828282, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x5a5a5a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0x57b68c, 0x3db682, 0x3db582, 0x3cb482, 0x3cb383, 0x3bb283, 0x3ab283, 0x39b083, 0x39b084, 0x38af84, 0x38ae84, 0x37ad84, 0x36ac84, 0x36ab84, 0x35ab85, 0x34a985, 0x34a985, 0x33a885, 0x33a786, 0x32a686, 0x31a586, 0x30a486, 0x30a486, 0x2fa286, 0x2fa287, 0x2ea187, 0x2da087, 0x2c9f87, 0x2c9e88, 0x2b9d88, 0x2b9d88, 0x2a9b88, 0x299b88, 0x289a88, 0x289989, 0x279889, 0x279789, 0x269689, 0x25968a, 0x24948a, 0x24948a, 0x23938a, 0x23928b, 0x22918a, 0x22918b, 0x3f8e89, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0x98b6a9, 0x3db583, 0x3db583, 0x3cb483, 0x3cb383, 0x3bb283, 0x3ab184, 0x39b084, 0x39af84, 0x38ae84, 0x38ae85, 0x37ad85, 0x36ac85, 0x35ab85, 0x35aa86, 0x34a985, 0x34a886, 0x33a786, 0x32a786, 0x31a686, 0x31a587, 0x30a487, 0x30a387, 0x2fa287, 0x2ea187, 0x2ea088, 0x2da088, 0x2c9f88, 0x2c9e88, 0x2b9d88, 0x2b9c89, 0x2a9b89, 0x299a89, 0x289989, 0x28998a, 0x27988a, 0x27978a, 0x26968a, 0x25958a, 0x24948a, 0x24938b, 0x23928b, 0x23928b, 0x22918b, 0x23918b, 0x738887, 0x868686, 0x848484, 0x848484, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0x5fb491, 0x3cb383, 0x3bb283, 0x3ab283, 0x3ab183, 0x39b084, 0x38af84, 0x38ae84, 0x37ad84, 0x37ac85, 0x36ab84, 0x35ab85, 0x34aa85, 0x34a985, 0x33a885, 0x33a786, 0x32a686, 0x31a586, 0x30a486, 0x30a487, 0x2fa387, 0x2fa287, 0x2ea187, 0x2da087, 0x2c9f87, 0x2c9e88, 0x2b9d88, 0x2b9d88, 0x2a9c88, 0x299b89, 0x299a89, 0x289989, 0x279889, 0x279789, 0x269689, 0x25968a, 0x25958a, 0x24948a, 0x23938a, 0x23928b, 0x22918b, 0x22918b, 0x22918b, 0x498d89, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xa4b4ad, 0x40b385, 0x3bb284, 0x3ab184, 0x39b084, 0x39b084, 0x38ae84, 0x38ae85, 0x37ad85, 0x36ac85, 0x35ab85, 0x35aa86, 0x34a986, 0x34a986, 0x33a786, 0x32a786, 0x32a686, 0x31a587, 0x30a487, 0x30a387, 0x2fa287, 0x2fa288, 0x2ea088, 0x2da088, 0x2c9f88, 0x2c9e89, 0x2b9d88, 0x2b9c89, 0x2a9b89, 0x299b89, 0x289989, 0x28998a, 0x27988a, 0x27978a, 0x26968a, 0x25958b, 0x24948b, 0x24948b, 0x23928b, 0x23928b, 0x22918b, 0x22918b, 0x29918b, 0x7f8988, 0x878787, 0x868686, 0x848484, 0x848484, 0x828282, 0x828282, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x5a5a5a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0x89b2a2, 0x39b083, 0x39b084, 0x38af84, 0x38ae84, 0x37ad84, 0x36ac84, 0x35ab84, 0x35aa85, 0x34a985, 0x34a985, 0x33a885, 0x32a786, 0x31a686, 0x31a586, 0x30a486, 0x30a386, 0x2fa286, 0x2ea287, 0x2ea187, 0x2da087, 0x2c9f87, 0x2c9e88, 0x2b9d88, 0x2b9c88, 0x2a9b88, 0x299b88, 0x289a88, 0x289989, 0x279889, 0x279789, 0x269689, 0x25958a, 0x24948a, 0x24948a, 0x23938a, 0x23928b, 0x22918a, 0x22918b, 0x22918b, 0x22918b, 0x6e8a89, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0x72b19a, 0x39af84, 0x38ae84, 0x38ae85, 0x37ac85, 0x36ac85, 0x35ab85, 0x35aa86, 0x34a985, 0x34a886, 0x33a786, 0x32a786, 0x31a586, 0x31a587, 0x30a487, 0x30a387, 0x2fa287, 0x2ea188, 0x2da088, 0x2da088, 0x2c9e88, 0x2c9e88, 0x2b9d88, 0x2a9c89, 0x299b89, 0x299a89, 0x289989, 0x28998a, 0x27978a, 0x26978a, 0x26968a, 0x25958a, 0x24948a, 0x24938b, 0x23928b, 0x23928b, 0x22918b, 0x22918b, 0x22918b, 0x5d8d8b, 0x888888, 0x888888, 0x868686, 0x393939, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4d4d4d, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0x6daf98, 0x37ad84, 0x36ac85, 0x35ab84, 0x35aa85, 0x34a985, 0x34a985, 0x33a885, 0x32a786, 0x32a686, 0x31a586, 0x30a486, 0x30a387, 0x2fa287, 0x2fa287, 0x2ea187, 0x2da087, 0x2c9f87, 0x2c9e88, 0x2b9d88, 0x2b9c88, 0x2a9b88, 0x299b89, 0x289a89, 0x289989, 0x279889, 0x279789, 0x269689, 0x25958a, 0x24948a, 0x24948a, 0x23938a, 0x23928b, 0x22918b, 0x22918b, 0x22918b, 0x22918b, 0x568d8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x393939, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4c4c4c, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb2b2b2, 0x73ae9a, 0x36ac85, 0x35ab85, 0x35aa86, 0x34a986, 0x34a886, 0x33a786, 0x32a786, 0x31a686, 0x31a587, 0x30a487, 0x30a387, 0x2fa287, 0x2ea188, 0x2da088, 0x2da088, 0x2c9f88, 0x2c9e89, 0x2b9d88, 0x2a9c89, 0x2a9b89, 0x299a89, 0x289989, 0x28998a, 0x27988a, 0x27978a, 0x26968a, 0x25958b, 0x24948b, 0x24938b, 0x23928b, 0x23928b, 0x22918b, 0x22918b, 0x22918b, 0x588f8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x393939, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4d4d4d, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x5a5a5a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0x7aad9d, 0x34a985, 0x34a985, 0x33a785, 0x32a786, 0x31a686, 0x31a586, 0x30a486, 0x30a387, 0x2fa286, 0x2ea287, 0x2ea187, 0x2da087, 0x2c9f87, 0x2c9e88, 0x2b9d88, 0x2b9c88, 0x2a9b88, 0x299b88, 0x289a89, 0x289989, 0x279889, 0x279789, 0x269689, 0x25958a, 0x24948a, 0x24948a, 0x23938a, 0x23928b, 0x22918b, 0x22918b, 0x22918b, 0x22918b, 0x608e8b, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x393939, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4c4c4c, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0x90ada4, 0x3da989, 0x33a786, 0x32a686, 0x31a586, 0x31a587, 0x30a487, 0x30a387, 0x2fa287, 0x2ea188, 0x2da088, 0x2d9f88, 0x2c9e88, 0x2c9e88, 0x2b9d88, 0x2a9c89, 0x299b89, 0x299a89, 0x289989, 0x28988a, 0x27978a, 0x26978a, 0x25968a, 0x25958b, 0x24948a, 0x24938b, 0x23928b, 0x22918b, 0x22918b, 0x22918b, 0x2c918b, 0x758f8d, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x868686, 0x393939, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4d4d4d, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xa2acaa, 0x5fa894, 0x31a586, 0x30a486, 0x30a387, 0x2fa287, 0x2fa287, 0x2ea087, 0x2da087, 0x2c9f87, 0x2c9e88, 0x2b9d88, 0x2b9c88, 0x2a9b88, 0x299b89, 0x289a89, 0x289989, 0x279889, 0x27978a, 0x269689, 0x25958a, 0x24948a, 0x24948a, 0x23938a, 0x23928b, 0x22918b, 0x22918b, 0x22918b, 0x4c918d, 0x868e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x393939, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4c4c4c, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb2b2b2, 0xb0b0b0, 0xb0b0b0, 0xaeaeae, 0xadadad, 0xacacac, 0x8eaaa3, 0x4fa590, 0x30a387, 0x2fa287, 0x2ea188, 0x2da088, 0x2d9f88, 0x2c9e88, 0x2c9e89, 0x2b9d88, 0x2a9c89, 0x2a9b89, 0x299a89, 0x289989, 0x28988a, 0x27978a, 0x26978a, 0x26968a, 0x25958b, 0x24948b, 0x24938b, 0x23928b, 0x22918b, 0x22918b, 0x43928d, 0x7b9190, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x848484, 0x848484, 0x828282, 0x828282, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x5a5a5a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xababab, 0xababab, 0xa9a9a9, 0x93a8a3, 0x5ea394, 0x36a08a, 0x2c9f87, 0x2c9e88, 0x2b9d88, 0x2a9c88, 0x299b88, 0x299a89, 0x289989, 0x289989, 0x279889, 0x269789, 0x269689, 0x25958a, 0x24948a, 0x24938a, 0x23928a, 0x23928b, 0x2d918b, 0x53928f, 0x819291, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0x89a49f, 0x62a195, 0x389d8b, 0x2a9c89, 0x299b89, 0x299a89, 0x289989, 0x28988a, 0x27978a, 0x26968a, 0x25958a, 0x25958a, 0x24948a, 0x36948d, 0x599491, 0x7d9594, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x888888, 0x888888, 0x868686, 0x868686, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa5a5a5, 0xa3a3a3, 0x9ba2a1, 0x8ea09d, 0x809e9a, 0x749c97, 0x689b95, 0x679a94, 0x729a96, 0x7e9997, 0x889998, 0x949998, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb2b2b2, 0xb0b0b0, 0xb0b0b0, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x848484, 0x848484, 0x828282, 0x828282, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x5a5a5a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x929292, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xc6c6c6, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x868686, 0x868686, 0x848484, 0x848484, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x565656, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x9a9a9a, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa5a5a5, 0xa3a3a3, 0xa3a3a3, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x464646, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x797979, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb2b2b2, 0xb0b0b0, 0xb0b0b0, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x999999, 0x979797, 0x979797, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x848484, 0x848484, 0x828282, 0x828282, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x353535, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xbfbfbf, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xababab, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x949494, 0x949494, 0x929292, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x464646, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x464646, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0x9f9f9f, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x888888, 0x888888, 0x868686, 0x868686, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x676767, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x7f7f7f, 0xbababa, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa5a5a5, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x626262, 0x484848, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x3a3a3a, 0x4b4b4b, 0x4b4b4b, 0x4a4a4a, 0x4a4a4a, 0x4a4a4a, 0x4a4a4a, 0x494949, 0x494949, 0x494949, 0x494949, 0x484848, 0x484848, 0x484848, 0x484848, 0x474747, 0x474747, 0x474747, 0x464646, 0x464646, 0x464646, 0x464646, 0x454545, 0x454545, 0x454545, 0x454545, 0x444444, 0x444444, 0x444444, 0x444444, 0x434343, 0x434343, 0x434343, 0x424242, 0x424242, 0x424242, 0x424242, 0x414141, 0x414141, 0x414141, 0x414141, 0x404040, 0x404040, 0x404040, 0x404040, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3e3e3e, 0x3e3e3e, 0x3e3e3e, 0x3e3e3e, 0x3d3d3d, 0x3d3d3d, 0x3d3d3d, 0x3d3d3d, 0x3c3c3c, 0x3c3c3c, 0x3c3c3c, 0x3c3c3c, 0x3b3b3b, 0x3b3b3b, 0x3b3b3b, 0x3a3a3a, 0x3a3a3a, 0x3a3a3a, 0x3a3a3a, 0x393939, 0x393939, 0x393939, 0x393939, 0x383838, 0x383838, 0x383838, 0x383838, 0x373737, 0x373737, 0x373737, 0x373737, 0x363636, 0x363636, 0x363636, 0x353535, 0x353535, 0x353535, 0x353535, 0x272727, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020,
+ 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020
+};
\ No newline at end of file diff --git a/dev/Boot/BootKit/Rsrc/zka_no_disk.rsrc b/dev/Boot/BootKit/Rsrc/zka_no_disk.rsrc new file mode 100644 index 00000000..31689e63 --- /dev/null +++ b/dev/Boot/BootKit/Rsrc/zka_no_disk.rsrc @@ -0,0 +1,116 @@ +#define ZKA_NO_DISK_HEIGHT 110 +#define ZKA_NO_DISK_WIDTH 110 + +// array size is 36300 +static const unsigned int zka_no_disk[] = { + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x333333, 0x565656, 0x636363, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6d6d6d, 0x6a6a6a, 0x5f5f5f, 0x4d4d4d, 0x2b2b2b, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x464646, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x707070, 0x6a6a6a, 0x3b3b3b, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x3d3d3d, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x727272, 0x393939, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x252525, 0x676767, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x757575, 0x606060, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4c4c4c, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x777777, 0x787878, 0x777777, 0x777777, 0x3d3d3d, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x616161, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x7a7a7a, 0x7b7b7b, 0x525252, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x242424, 0x767676, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x7c7c7c, 0x7d7d7d, 0x7c7c7c, 0x7c7c7c, 0x676767, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x393939, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7f7f7f, 0x808080, 0x7e7e7e, 0x292929, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4e4e4e, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x828282, 0x818181, 0x828282, 0x828282, 0x3f3f3f, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x666666, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x858585, 0x555555, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x222222, 0x7c7c7c, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x868686, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x878787, 0x6d6d6d, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x393939, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x8a8a8a, 0x868686, 0x292929, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x515151, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x8c8c8c, 0x404040, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x6a6a6a, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x8f8f8f, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x828282, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0xa69a77, 0xbea35a, 0xc0a458, 0xa69a77, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x919191, 0x727272, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x383838, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0xab9d77, 0xebb626, 0xffbe0c, 0xffbd0c, 0xffbd0c, 0xffbc0c, 0xecb524, 0xaa9c78, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x949494, 0x8e8e8e, 0x2a2a2a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x525252, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0xa49b83, 0xfcbc0f, 0xfebc0c, 0xffbc0c, 0xfebc0b, 0xffbb0c, 0xfebb0b, 0xffba0b, 0xfcb90e, 0xa49b83, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x969696, 0x414141, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x6e6e6e, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0xe8b52c, 0xffbd0c, 0xffbc0c, 0xffbc0c, 0xffbb0c, 0xffbb0c, 0xffba0b, 0xffba0c, 0xffb90b, 0xe8b22c, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x999999, 0x5c5c5c, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x868686, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0xbca66b, 0xfebb0b, 0xffbb0b, 0xfeba0b, 0xffba0b, 0xfeba0b, 0xffb90b, 0xfeb80b, 0xffb80b, 0xfeb80b, 0xffb70b, 0xbda46a, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x9b9b9b, 0x787878, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x373737, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0xa09f9b, 0xf3b81e, 0xffbb0c, 0xffbb0c, 0xffba0b, 0xffba0c, 0xffb90b, 0xffb90b, 0xffb80b, 0xffb80b, 0xffb70b, 0xffb70b, 0xf3b31d, 0xa09e9b, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x9e9e9e, 0x959595, 0x2a2a2a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x545454, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xcbac5c, 0xffba0b, 0xfeba0b, 0xffb90b, 0xfeb90b, 0xffb80b, 0xfeb80b, 0xffb70b, 0xfeb70a, 0xffb60b, 0xfeb60a, 0xffb60a, 0xfeb50a, 0xccaa5b, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0xa0a0a0, 0xa1a1a1, 0x444444, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x707070, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xaaa699, 0xfab914, 0xffba0c, 0xffb90b, 0xffb90c, 0xffb80b, 0xffb80b, 0xffb70b, 0xffb70b, 0xffb60b, 0xffb60b, 0xffb50b, 0xffb50b, 0xffb40a, 0xfab313, 0xa9a498, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0xa3a3a3, 0xa4a4a4, 0x5e5e5e, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x8b8b8b, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xd9b14c, 0xfeb80b, 0xfeb80b, 0xfeb70b, 0xffb70b, 0xfeb60a, 0xfeb60a, 0xfeb60a, 0xffb50a, 0xfeb50a, 0xfeb40a, 0xfeb40a, 0xfeb30a, 0xfeb30a, 0xfeb20a, 0xd9ac4a, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0xa5a5a5, 0xa6a6a6, 0x7c7c7c, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x363636, 0xa7a7a7, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xb5aa91, 0xfeb80d, 0xffb80b, 0xffb80b, 0xffb70b, 0xffb70b, 0xffb60b, 0xffb60b, 0xffb50a, 0xffb50b, 0xffb40a, 0xffb40a, 0xffb30a, 0xffb30a, 0xffb20a, 0xffb20a, 0xfeb10c, 0xb5aa92, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0xa8a8a8, 0xa9a9a9, 0x9c9c9c, 0x2a2a2a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x545454, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xe6b43a, 0xffb70b, 0xfeb60a, 0xffb60b, 0xfeb60a, 0xffb50a, 0xfeb50a, 0xffb40a, 0xfeb40a, 0xffb40a, 0xfeb30a, 0xffb20a, 0xfeb20a, 0xffb20a, 0xfeb109, 0xffb109, 0xfeb009, 0xe6ae39, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0xababab, 0x464646, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x717171, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xc2b085, 0xffb70b, 0xffb70b, 0xffb60b, 0xffb60b, 0xffb50b, 0xffb50b, 0xffb40a, 0xffb40b, 0xffb30a, 0xffb30a, 0xffb20a, 0xffb20a, 0xffb10a, 0xffb10a, 0xffb00a, 0xffb00a, 0xffaf0a, 0xffaf0a, 0xc2ae85, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0xaeaeae, 0x636363, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x8e8e8e, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb1b0af, 0xf1b526, 0xfeb50a, 0xffb50a, 0xfeb40a, 0xfeb40a, 0xfeb40a, 0xffb30a, 0xfeb30a, 0xfeb20a, 0xfeb209, 0xfeb10a, 0xfeb109, 0xfeb009, 0xfeb009, 0xfeb009, 0xfeaf09, 0xfeaf09, 0xfeae09, 0xfeae09, 0xf1ad25, 0xb1b0af, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0xb0b0b0, 0x818181, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x343434, 0xacacac, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xd0b472, 0xffb60b, 0xffb50a, 0xffb50b, 0xffb40a, 0xffb40a, 0xffb30a, 0xffb30a, 0xffb20a, 0xdc9e15, 0x90712e, 0x91712e, 0xdd9c15, 0xffb00a, 0xffaf09, 0xffaf0a, 0xffae09, 0xffae09, 0xffad09, 0xffad09, 0xffac09, 0xd0b071, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xb3b3b3, 0xa3a3a3, 0x2a2a2a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x545454, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb8b5ae, 0xf8b519, 0xffb40a, 0xfeb40a, 0xffb30a, 0xfeb30a, 0xffb20a, 0xfeb20a, 0xffb10a, 0xfeb109, 0x564f40, 0x444444, 0x444444, 0x564e3e, 0xfeaf09, 0xfeae09, 0xffae09, 0xfead09, 0xfead09, 0xfeac08, 0xffac09, 0xfeab08, 0xf8ac17, 0xb8b5ae, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0xb5b5b5, 0x484848, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x727272, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xdcb660, 0xffb40a, 0xffb40b, 0xffb30a, 0xffb30a, 0xffb20a, 0xffb20a, 0xffb10a, 0xffb10a, 0xeba510, 0x444444, 0x434343, 0x434343, 0x424242, 0xeca30f, 0xffad09, 0xffad09, 0xffac09, 0xffac09, 0xffac09, 0xffab09, 0xffab09, 0xffaa09, 0xdcb15e, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0xb8b8b8, 0x676767, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x909090, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xc1b9a8, 0xfcb30f, 0xfeb20a, 0xfeb20a, 0xfeb109, 0xfeb10a, 0xfeb009, 0xfeb009, 0xfeb009, 0xfeaf09, 0xe6a110, 0x424242, 0x424242, 0x414141, 0x414141, 0xe69e10, 0xfeac08, 0xfeac08, 0xfeab08, 0xfeab08, 0xfeaa08, 0xfeaa08, 0xfea908, 0xfea908, 0xfca90d, 0xc1b8a8, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0xbababa, 0x868686, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x313131, 0xb0b0b0, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xe6b74c, 0xffb30a, 0xffb20a, 0xffb20a, 0xffb10a, 0xffb10a, 0xffb009, 0xffb00a, 0xffaf09, 0xffaf09, 0xe7a010, 0x414141, 0x414141, 0x414141, 0x404040, 0xe79e10, 0xffab09, 0xffab09, 0xffaa08, 0xffaa09, 0xffa908, 0xffa908, 0xffa808, 0xffa808, 0xffa808, 0xe7af4b, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xbdbdbd, 0xa9a9a9, 0x2a2a2a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x525252, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xcbbc9b, 0xfeb209, 0xffb10a, 0xfeb109, 0xffb009, 0xfeb009, 0xffaf09, 0xfeaf09, 0xfeae09, 0xfeae09, 0xffae09, 0xe69f10, 0x404040, 0x3f3f3f, 0x3f3f3f, 0x3e3e3e, 0xe69d0f, 0xfeaa08, 0xfeaa08, 0xfea908, 0xfea908, 0xfea808, 0xfea808, 0xfea707, 0xfea708, 0xfea607, 0xfea607, 0xcbba9b, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0xbfbfbf, 0x494949, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x727272, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xf1b533, 0xffb10a, 0xffb10a, 0xffb00a, 0xffb00a, 0xffaf09, 0xffaf0a, 0xffae09, 0xffae09, 0xffad09, 0xffad09, 0xe79e10, 0x3f3f3f, 0x3e3e3e, 0x3e3e3e, 0x3d3d3d, 0xe79c10, 0xffaa08, 0xffa909, 0xffa908, 0xffa808, 0xffa808, 0xffa708, 0xffa708, 0xffa608, 0xffa608, 0xffa608, 0xf1ab31, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0xc2c2c2, 0x6a6a6a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x929292, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xd6be89, 0xfeb009, 0xfeaf09, 0xfeaf09, 0xfeae09, 0xfeae09, 0xfeae09, 0xfead09, 0xfead08, 0xfeac09, 0xfeac08, 0xfeab08, 0xe69d0f, 0x3d3d3d, 0x3c3c3c, 0x3c3c3c, 0x3b3b3b, 0xe69b0e, 0xfea808, 0xfea808, 0xfea707, 0xfea708, 0xfea607, 0xfea607, 0xfea507, 0xfea507, 0xfea407, 0xfea407, 0xfea307, 0xd6ba89, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0xc4c4c4, 0x8c8c8c, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x2e2e2e, 0xb4b4b4, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc9c8c6, 0xf8b321, 0xffb00a, 0xffaf09, 0xffaf09, 0xffae09, 0xffae09, 0xffad09, 0xffad09, 0xffac09, 0xffac09, 0xffab09, 0xffab09, 0xe79c0f, 0x3c3c3c, 0x3c3c3c, 0x3b3b3b, 0x3b3b3b, 0xe69a0e, 0xffa708, 0xffa708, 0xffa608, 0xffa608, 0xffa608, 0xffa508, 0xfea507, 0xffa407, 0xffa407, 0xffa307, 0xfea307, 0xf8a71f, 0xc8c7c5, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xc7c7c7, 0xc7c7c7, 0xc8c8c8, 0xc7c7c7, 0xafafaf, 0x292929, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x505050, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xe1be76, 0xfeaf09, 0xfeae09, 0xfeae09, 0xffad09, 0xfead09, 0xfeac09, 0xfeac08, 0xffac09, 0xfeab08, 0xfeab08, 0xfeaa08, 0xfeaa08, 0xe69b0e, 0x3b3b3b, 0x3a3a3a, 0x3a3a3a, 0x393939, 0xe5990e, 0xfea607, 0xfea607, 0xfea507, 0xfea507, 0xfea407, 0xfea407, 0xfea307, 0xfea307, 0xfea207, 0xfea207, 0xfea106, 0xfea107, 0xe0b774, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0xc9c9c9, 0xcacaca, 0x4b4b4b, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x717171, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xd0cbc2, 0xfbb117, 0xffae09, 0xffae09, 0xffad09, 0xffad09, 0xffac09, 0xffac09, 0xffab09, 0xffab09, 0xffaa08, 0xffaa09, 0xffa908, 0xffa909, 0xe69a0e, 0x3a3a3a, 0x393939, 0x393939, 0x383838, 0xe6980e, 0xffa608, 0xffa508, 0xffa507, 0xffa408, 0xffa407, 0xffa407, 0xffa307, 0xffa307, 0xffa207, 0xffa207, 0xffa107, 0xffa107, 0xfba315, 0xd0cbc2, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0xcdcdcd, 0xcdcdcd, 0xcccccc, 0xcdcdcd, 0x6e6e6e, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x939393, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xe9bc60, 0xfead09, 0xfeac08, 0xfeac09, 0xfeac08, 0xfeab08, 0xfeab08, 0xfeaa08, 0xfeaa08, 0xfea908, 0xfea908, 0xfea808, 0xfea808, 0xfea808, 0xe5990d, 0x383838, 0x373737, 0x373737, 0x363636, 0xe5970d, 0xfea407, 0xfea407, 0xfea307, 0xfea307, 0xfea206, 0xfea207, 0xfea106, 0xfea106, 0xfea006, 0xfea006, 0xfe9f06, 0xfe9f06, 0xfe9e06, 0xe9b45f, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0xcecece, 0xcfcfcf, 0x929292, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x2a2a2a, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xb0a691, 0xfdad0c, 0xffad09, 0xffac09, 0xffac09, 0xffab09, 0xffab09, 0xffaa08, 0xffaa08, 0xffa908, 0xffa908, 0xfea808, 0xffa808, 0xffa708, 0xffa708, 0xe5980e, 0x373737, 0x363636, 0x363636, 0x353535, 0xe6960d, 0xfea407, 0xffa307, 0xfea307, 0xffa207, 0xfea207, 0xffa107, 0xfea106, 0xffa007, 0xfea006, 0xffa007, 0xfe9f06, 0xff9f06, 0xfe9e06, 0xfd9e09, 0xb0a491, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0xa5a5a5, 0x292929, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xb88010, 0xfeac08, 0xffab09, 0xfeab08, 0xfeaa08, 0xfeaa08, 0xfea908, 0xfea908, 0xfea808, 0xfea808, 0xfea808, 0xfea707, 0xfea708, 0xfea607, 0xfea607, 0xf8a208, 0x3a3834, 0x353535, 0x353535, 0x393733, 0xf89f08, 0xfea207, 0xfea207, 0xfea106, 0xfea106, 0xfea006, 0xfea006, 0xfe9f06, 0xfe9f06, 0xfe9e06, 0xfe9e06, 0xfe9d06, 0xfe9d06, 0xfe9d05, 0xfe9c06, 0xb7740e, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x523f1b, 0xffac09, 0xffab09, 0xffab09, 0xffaa08, 0xffaa09, 0xffa908, 0xffa908, 0xffa808, 0xffa808, 0xffa708, 0xffa708, 0xffa608, 0xffa608, 0xffa508, 0xffa508, 0xffa407, 0xa9751b, 0x353434, 0x353533, 0xab7519, 0xffa207, 0xffa207, 0xffa107, 0xffa107, 0xffa007, 0xffa007, 0xffa007, 0xfe9f06, 0xff9f06, 0xff9e06, 0xff9e06, 0xfe9d06, 0xff9d06, 0xff9c06, 0xff9c06, 0xfe9b06, 0x523b1a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd38f0d, 0xfeaa08, 0xfeaa08, 0xfea908, 0xfea908, 0xfea808, 0xfea808, 0xfea708, 0xfea707, 0xfea607, 0xfea607, 0xfea607, 0xfea507, 0xfea507, 0xfea407, 0xfea407, 0xfea307, 0xfea307, 0xe9970a, 0xea970b, 0xfea106, 0xfea106, 0xfea006, 0xfea006, 0xfe9f06, 0xfe9f06, 0xfe9e06, 0xfe9e06, 0xfe9d05, 0xfe9d06, 0xfe9c05, 0xfe9c06, 0xfe9b05, 0xfe9b05, 0xfe9a05, 0xfe9a05, 0xfe9905, 0xd3810a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x715318, 0xffaa08, 0xffaa08, 0xffa908, 0xffa908, 0xffa808, 0xffa808, 0xffa708, 0xffa708, 0xffa608, 0xffa608, 0xffa507, 0xffa508, 0xfea407, 0xffa407, 0xffa307, 0xffa307, 0xfea207, 0xffa207, 0xffa207, 0xffa107, 0xfea106, 0xffa007, 0xfea006, 0xff9f07, 0xfe9f06, 0xff9e06, 0xfe9e06, 0xff9e06, 0xfe9d06, 0xff9d06, 0xfe9c06, 0xff9c06, 0xfe9b05, 0xff9b06, 0xfe9a05, 0xff9a05, 0xfe9905, 0xff9905, 0x704b16, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x27241f, 0xe89b0b, 0xfea908, 0xfea808, 0xfea808, 0xfea708, 0xfea707, 0xfea608, 0xfea607, 0xfea607, 0xfea507, 0xfea507, 0xfea407, 0xfea407, 0xfea307, 0xfea307, 0xfea207, 0xfea207, 0xfea106, 0xfea106, 0xfea006, 0xfea006, 0xfe9f06, 0xfe9f06, 0xfe9e06, 0xfe9e06, 0xfe9d06, 0xfe9d06, 0xfe9c05, 0xfe9c06, 0xfe9b05, 0xfe9b05, 0xfe9b05, 0xfe9a05, 0xfe9a05, 0xfe9905, 0xfe9905, 0xfe9805, 0xfe9804, 0xfe9705, 0xe78b07, 0x27241f, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4c4c4c, 0x4c4c4c, 0x4c4c4c, 0x4c4c4c, 0x4b4b4b, 0x4b4b4b, 0x4b4b4b, 0x4b4b4b, 0x4a4a4a, 0x4a4a4a, 0x4a4a4a, 0x4a4a4a, 0x494949, 0x494949, 0x494949, 0x494949, 0x484848, 0x484848, 0x484848, 0x484848, 0x474747, 0x474747, 0x474747, 0x464646, 0x464646, 0x464646, 0x464646, 0x454545, 0x9f7627, 0xffa908, 0xffa808, 0xffa808, 0xffa708, 0xffa708, 0xffa608, 0xffa608, 0xffa508, 0xffa508, 0xffa407, 0xffa408, 0xffa307, 0xffa307, 0xffa207, 0xffa207, 0xffa207, 0xffa107, 0xffa107, 0xffa007, 0xffa007, 0xff9f07, 0xff9f06, 0xff9e06, 0xff9e06, 0xff9e06, 0xff9d06, 0xff9d06, 0xff9c06, 0xff9c06, 0xfe9b06, 0xff9b06, 0xff9a05, 0xff9a06, 0xfe9905, 0xff9905, 0xff9805, 0xff9805, 0xfe9705, 0xff9705, 0xfe9605, 0x996620, 0x3a3a3a, 0x3a3a3a, 0x3a3a3a, 0x393939, 0x393939, 0x393939, 0x393939, 0x383838, 0x383838, 0x383838, 0x383838, 0x373737, 0x373737, 0x373737, 0x373737, 0x363636, 0x363636, 0x363636, 0x353535, 0x353535, 0x353535, 0x353535, 0x343434, 0x343434, 0x343434, 0x343434, 0x333333, 0x333333, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xbbb4a6, 0xfba80e, 0xfea708, 0xfea607, 0xfea607, 0xfea607, 0xfea507, 0xfea507, 0xfea407, 0xfea407, 0xfea307, 0xfea307, 0xfea207, 0xfea206, 0xfea207, 0xfea106, 0xfea106, 0xfea006, 0xfea006, 0xfe9f06, 0xe4910b, 0xa97016, 0xa97016, 0xe69009, 0xfe9d06, 0xfe9c05, 0xfe9c05, 0xfe9b05, 0xfe9b05, 0xfe9a05, 0xfe9a05, 0xfe9905, 0xfe9905, 0xfe9805, 0xfe9805, 0xfe9704, 0xfe9704, 0xfe9704, 0xfe9604, 0xfe9604, 0xfe9504, 0xfe9504, 0xf99409, 0x92897d, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xe2ad4c, 0xffa708, 0xffa708, 0xfea608, 0xffa608, 0xffa507, 0xffa508, 0xfea407, 0xffa407, 0xfea307, 0xffa307, 0xfea207, 0xffa207, 0xfea107, 0xffa107, 0xfea006, 0xffa007, 0xfe9f06, 0xff9f06, 0xab7115, 0x2f2e2d, 0x2c2c2c, 0x2c2c2c, 0x2d2c2b, 0xac7014, 0xfe9c06, 0xff9b06, 0xfe9b05, 0xff9a06, 0xfe9a05, 0xff9a05, 0xfe9905, 0xff9905, 0xfe9805, 0xff9805, 0xfe9705, 0xff9705, 0xfe9605, 0xff9605, 0xfe9504, 0xfe9504, 0xfe9404, 0xff9404, 0xcf8f38, 0x888888, 0x868686, 0x868686, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xc2b399, 0xfea609, 0xfea607, 0xfea507, 0xfea507, 0xfea407, 0xfea407, 0xfea407, 0xfea307, 0xfea307, 0xfea206, 0xfea207, 0xfea106, 0xfea106, 0xfea006, 0xfea006, 0xfe9f06, 0xfe9f06, 0xfe9e06, 0xf99b07, 0x322f2a, 0x2b2b2b, 0x2b2b2b, 0x2a2a2a, 0x292929, 0x332f28, 0xfc9905, 0xfe9a05, 0xfe9905, 0xfe9905, 0xfe9805, 0xfe9805, 0xfe9704, 0xfe9705, 0xfe9704, 0xfe9604, 0xfe9604, 0xfe9504, 0xfe9504, 0xfe9404, 0xfe9404, 0xfe9304, 0xfe9304, 0xfe9304, 0xfd9204, 0x9b8971, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xecaa33, 0xffa608, 0xffa508, 0xffa508, 0xffa407, 0xffa407, 0xffa307, 0xffa307, 0xffa207, 0xffa207, 0xffa107, 0xffa107, 0xffa007, 0xffa007, 0xffa006, 0xff9f07, 0xfe9e06, 0xff9e06, 0xff9e06, 0xe18d0b, 0x2b2b2b, 0x2a2a2a, 0x2a2a2a, 0x292929, 0x292929, 0x282828, 0xe18b0a, 0xff9a06, 0xfe9905, 0xff9905, 0xfe9805, 0xff9805, 0xfe9705, 0xff9705, 0xfe9605, 0xff9605, 0xfe9504, 0xff9505, 0xfe9404, 0xff9404, 0xfe9304, 0xff9304, 0xfe9204, 0xff9204, 0xfe9104, 0xe18f25, 0x878787, 0x868686, 0x848484, 0x848484, 0x828282, 0x828282, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x5a5a5a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xccb284, 0xfea407, 0xfea407, 0xfea407, 0xfea307, 0xfea307, 0xfea207, 0xfea206, 0xfea107, 0xfea106, 0xfea006, 0xfea006, 0xfea006, 0xfe9f06, 0xfe9f06, 0xfe9e06, 0xfe9e06, 0xfe9d05, 0xfe9d06, 0xfe9c05, 0xfb9a06, 0x2f2c28, 0x292929, 0x282828, 0x282828, 0x272727, 0x302c25, 0xfb9705, 0xfe9805, 0xfe9704, 0xfe9704, 0xfe9604, 0xfe9604, 0xfe9504, 0xfe9504, 0xfe9504, 0xfe9404, 0xfe9404, 0xfe9304, 0xfe9303, 0xfe9204, 0xfe9203, 0xfe9103, 0xfe9103, 0xfe9103, 0xfe9003, 0xfe9003, 0xa88960, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xbab9b7, 0xf5a821, 0xfea407, 0xffa407, 0xffa307, 0xffa307, 0xfea207, 0xffa207, 0xffa107, 0xffa107, 0xfea006, 0xffa007, 0xfe9f06, 0xff9f06, 0xfe9e06, 0xff9e06, 0xfe9d06, 0xff9d06, 0xfe9c06, 0xff9c06, 0xfe9c06, 0xff9b06, 0xa66c13, 0x282828, 0x272727, 0x272727, 0x262626, 0xa96b12, 0xfe9805, 0xff9805, 0xfe9705, 0xff9705, 0xfe9605, 0xff9605, 0xfe9504, 0xff9504, 0xfe9404, 0xff9404, 0xfe9304, 0xff9304, 0xfe9204, 0xff9204, 0xfe9104, 0xfe9104, 0xfe9003, 0xff9004, 0xfe8f03, 0xfe8f03, 0xed8d16, 0x878684, 0x848484, 0x848484, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xd5b06e, 0xfea307, 0xfea307, 0xfea207, 0xfea206, 0xfea207, 0xfea106, 0xfea106, 0xfea006, 0xfea006, 0xfe9f06, 0xfe9f06, 0xfe9e06, 0xfe9e06, 0xfe9d06, 0xfe9d06, 0xfe9c05, 0xfe9c06, 0xfe9b05, 0xfe9b05, 0xfe9a05, 0xfe9a05, 0xfe9905, 0xc0780e, 0x6e4c1b, 0x714d1a, 0xc2780d, 0xfe9705, 0xfe9604, 0xfe9604, 0xfe9504, 0xfe9504, 0xfe9504, 0xfe9404, 0xfe9404, 0xfe9304, 0xfe9304, 0xfe9204, 0xfe9203, 0xfe9104, 0xfe9103, 0xfe9103, 0xfe9003, 0xfe9003, 0xfe8f03, 0xfe8f03, 0xfe8e03, 0xfe8e03, 0xfe8d03, 0xb68850, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xf8a517, 0xffa307, 0xffa207, 0xffa207, 0xffa107, 0xffa107, 0xffa007, 0xffa007, 0xff9f06, 0xff9f07, 0xff9e06, 0xff9e06, 0xff9d06, 0xff9d06, 0xff9d06, 0xff9c06, 0xff9c06, 0xff9b06, 0xfe9b05, 0xff9a06, 0xff9a05, 0xff9a06, 0xfe9905, 0xff9905, 0xff9805, 0xff9805, 0xfe9705, 0xff9705, 0xfe9605, 0xff9605, 0xfe9504, 0xff9505, 0xfe9404, 0xff9404, 0xfe9304, 0xff9304, 0xfe9204, 0xff9204, 0xfe9104, 0xff9104, 0xfe9004, 0xff9004, 0xfe8f03, 0xff8f03, 0xfe8e03, 0xff8e03, 0xfe8d03, 0xff8d03, 0xfe8d03, 0xf38c0f, 0x848484, 0x848484, 0x828282, 0x828282, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x5a5a5a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xceb282, 0xfea206, 0xfea106, 0xfea106, 0xfea006, 0xfea006, 0xfe9f06, 0xfe9f06, 0xfe9e06, 0xfe9e06, 0xfe9e06, 0xfe9d05, 0xfe9d06, 0xfe9c05, 0xfe9c05, 0xfe9b05, 0xfe9b05, 0xfe9a05, 0xfe9a05, 0xfe9905, 0xfe9905, 0xfe9805, 0xfe9805, 0xfe9704, 0xfe9704, 0xfe9604, 0xfe9604, 0xfe9504, 0xfe9504, 0xfe9404, 0xfe9404, 0xfe9304, 0xfe9304, 0xfe9203, 0xfe9204, 0xfe9103, 0xfe9103, 0xfe9103, 0xfe9003, 0xfe9003, 0xfe8f03, 0xfe8f03, 0xfe8e03, 0xfe8e02, 0xfe8d03, 0xfe8d02, 0xfe8d02, 0xfe8c02, 0xfe8c02, 0xfe8b02, 0xfe8b02, 0xa7865e, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xd9af69, 0xfea107, 0xffa107, 0xfea006, 0xffa007, 0xfe9f06, 0xff9f06, 0xfe9e06, 0xff9e06, 0xfe9d06, 0xff9d06, 0xfe9c06, 0xff9c06, 0xfe9b06, 0xff9b06, 0xfe9a05, 0xff9a05, 0xfe9a05, 0xff9905, 0xfe9805, 0xff9805, 0xfe9805, 0xff9705, 0xfe9705, 0xff9605, 0xfe9604, 0xff9605, 0xfe9504, 0xfe9504, 0xfe9404, 0xff9404, 0xfe9304, 0xfe9304, 0xfe9204, 0xff9204, 0xfe9103, 0xfe9104, 0xfe9003, 0xfe9004, 0xfe8f03, 0xfe8f03, 0xfe8e03, 0xfe8e03, 0xfe8d03, 0xfe8d03, 0xfe8c03, 0xfe8c03, 0xfe8b02, 0xfe8b03, 0xfe8a02, 0xfe8a02, 0x824f13, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4d4d4d, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xd7ae6c, 0xfea006, 0xfe9f06, 0xfe9f06, 0xfe9e06, 0xfe9e06, 0xfe9e06, 0xfe9d05, 0xfe9d06, 0xfe9c05, 0xfe9c06, 0xfe9b05, 0xfe9b05, 0xfe9a05, 0xfe9a05, 0xfe9905, 0xfe9905, 0xfe9805, 0xfe9805, 0xfe9704, 0xfe9705, 0xfe9604, 0xfe9604, 0xfe9504, 0xfe9504, 0xfe9404, 0xfe9404, 0xfe9304, 0xfe9304, 0xfe9204, 0xfe9204, 0xfe9203, 0xfe9103, 0xfe9103, 0xfe9003, 0xfe9003, 0xfe8f03, 0xfe8f03, 0xfe8f03, 0xfe8e03, 0xfe8e03, 0xfe8d02, 0xfe8d03, 0xfe8c02, 0xfe8c02, 0xfe8b02, 0xfe8b02, 0xfe8a02, 0xfe8a02, 0xfe8902, 0xfe8902, 0x7e4c13, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4c4c4c, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xc8b596, 0xff9f06, 0xff9f07, 0xfe9e06, 0xff9e06, 0xff9d06, 0xff9d06, 0xfe9c06, 0xff9c06, 0xff9b06, 0xff9b06, 0xfe9a05, 0xff9a06, 0xfe9a05, 0xff9905, 0xfe9905, 0xff9805, 0xfe9805, 0xff9705, 0xfe9705, 0xff9605, 0xfe9605, 0xff9605, 0xfe9504, 0xff9504, 0xfe9404, 0xff9404, 0xfe9304, 0xff9304, 0xfe9204, 0xff9204, 0xfe9104, 0xff9104, 0xfe9003, 0xff9004, 0xfe8f03, 0xff8f03, 0xfe8e03, 0xff8e03, 0xfe8d03, 0xff8d03, 0xfe8c03, 0xff8c03, 0xfe8b03, 0xfe8b03, 0xfe8a02, 0xff8a03, 0xfe8902, 0xfe8902, 0xfe8902, 0xff8802, 0x4c351a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4d4d4d, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x5a5a5a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xeca433, 0xfe9d06, 0xfe9d05, 0xfe9c06, 0xfe9c05, 0xfe9c05, 0xfe9b05, 0xfe9b05, 0xfe9a05, 0xfe9a05, 0xfe9905, 0xfe9905, 0xfe9805, 0xfe9805, 0xfe9704, 0xfe9704, 0xfe9604, 0xfe9604, 0xfe9504, 0xfe9504, 0xfe9404, 0xfe9404, 0xfe9304, 0xfe9304, 0xfe9203, 0xfe9204, 0xfe9103, 0xfe9103, 0xfe9003, 0xfe9003, 0xfe8f03, 0xfe8f03, 0xfe8f03, 0xfe8e03, 0xfe8e02, 0xfe8d03, 0xfe8d02, 0xfe8c03, 0xfe8c02, 0xfe8b02, 0xfe8b02, 0xfe8b02, 0xfe8a02, 0xfe8a02, 0xfe8902, 0xfe8902, 0xfe8801, 0xfe8802, 0xfe8701, 0xe17b0a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4c4c4c, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xbeb7ad, 0xf3a224, 0xfe9c06, 0xff9c06, 0xfe9b06, 0xff9b06, 0xfe9a05, 0xff9a05, 0xfe9905, 0xff9905, 0xfe9805, 0xff9805, 0xfe9705, 0xff9705, 0xfe9705, 0xff9605, 0xfe9604, 0xff9505, 0xfe9504, 0xff9404, 0xfe9404, 0xff9404, 0xfe9304, 0xfe9304, 0xfe9204, 0xff9204, 0xfe9103, 0xfe9104, 0xfe9003, 0xff9004, 0xfe8f03, 0xfe8f03, 0xfe8e03, 0xfe8e03, 0xfe8d03, 0xfe8d03, 0xfe8c03, 0xfe8c03, 0xfe8b02, 0xfe8b03, 0xfe8a02, 0xfe8a02, 0xfe8902, 0xfe8902, 0xfe8802, 0xfe8802, 0xfe8702, 0xfe8702, 0xf6870a, 0x5d472f, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4d4d4d, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xbbb5ac, 0xe2a549, 0xfe9b05, 0xfe9a05, 0xfe9a05, 0xfe9905, 0xfe9905, 0xfe9805, 0xfe9805, 0xfe9704, 0xfe9705, 0xfe9604, 0xfe9604, 0xfe9504, 0xfe9504, 0xfe9404, 0xfe9404, 0xfe9304, 0xfe9304, 0xfe9204, 0xfe9204, 0xfe9103, 0xfe9103, 0xfe9103, 0xfe9003, 0xfe8f03, 0xfe8f03, 0xfe8f03, 0xfe8e03, 0xfe8e03, 0xfe8d03, 0xfe8d02, 0xfe8d03, 0xfe8c02, 0xfe8b02, 0xfe8b02, 0xfe8b02, 0xfe8a02, 0xfe8a02, 0xfe8902, 0xfe8902, 0xfe8801, 0xfe8802, 0xfe8701, 0xfe8702, 0xfa8605, 0xd08635, 0x91867a, 0x393939, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x4c4c4c, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xc3af90, 0xc7ad88, 0xc5ac87, 0xc5ac87, 0xc4aa85, 0xc4aa85, 0xc2a884, 0xc1a783, 0xc1a682, 0xc0a681, 0xbfa580, 0xbea480, 0xbea37f, 0xbda27e, 0xbca17d, 0xbba07d, 0xbb9f7c, 0xba9f7b, 0xb99e7a, 0xb89d7a, 0xb89c79, 0xb79b78, 0xb59976, 0xb59976, 0xb49875, 0xb49875, 0xb29673, 0xb29673, 0xb19472, 0xb19472, 0xaf9370, 0xaf9270, 0xae916f, 0xad906e, 0xac8f6d, 0xac8e6c, 0xab8d6c, 0xaa8d6b, 0xa98c6a, 0xa98b69, 0xa88a69, 0xa2896e, 0x898989, 0x888888, 0x878787, 0x868686, 0x848484, 0x848484, 0x828282, 0x828282, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x5a5a5a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xababab, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x949494, 0x949494, 0x929292, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0x9f9f9f, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x888888, 0x888888, 0x868686, 0x868686, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa5a5a5, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd2d2d2, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb2b2b2, 0xb0b0b0, 0xb0b0b0, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x848484, 0x848484, 0x828282, 0x828282, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x5a5a5a, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x929292, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x595959, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xc6c6c6, 0xd1d1d1, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x868686, 0x868686, 0x848484, 0x848484, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x6f6f6f, 0x6d6d6d, 0x565656, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x9a9a9a, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa5a5a5, 0xa3a3a3, 0xa3a3a3, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x6d6d6d, 0x464646, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x797979, 0xd1d1d1, 0xd0d0d0, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcbcbcb, 0xcbcbcb, 0xc9c9c9, 0xc9c9c9, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb2b2b2, 0xb0b0b0, 0xb0b0b0, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x999999, 0x979797, 0x979797, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x848484, 0x848484, 0x828282, 0x828282, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x353535, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0xbfbfbf, 0xcfcfcf, 0xcecece, 0xcdcdcd, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc2c2c2, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xababab, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x949494, 0x949494, 0x929292, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7b7b7b, 0x7b7b7b, 0x797979, 0x797979, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x707070, 0x6f6f6f, 0x6e6e6e, 0x464646, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x464646, 0xcfcfcf, 0xcfcfcf, 0xcdcdcd, 0xcdcdcd, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc1c1c1, 0xc0c0c0, 0xbfbfbf, 0xbebebe, 0xbdbdbd, 0xbcbcbc, 0xbbbbbb, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb6b6b6, 0xb6b6b6, 0xb4b4b4, 0xb4b4b4, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xaaaaaa, 0xa9a9a9, 0xa8a8a8, 0xa7a7a7, 0xa6a6a6, 0xa5a5a5, 0xa4a4a4, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0x9f9f9f, 0x9f9f9f, 0x9d9d9d, 0x9d9d9d, 0x9b9b9b, 0x9b9b9b, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x919191, 0x909090, 0x8f8f8f, 0x8e8e8e, 0x8d8d8d, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x888888, 0x888888, 0x868686, 0x868686, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x787878, 0x777777, 0x767676, 0x757575, 0x747474, 0x737373, 0x727272, 0x717171, 0x6f6f6f, 0x676767, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x7f7f7f, 0xbababa, 0xcccccc, 0xcbcbcb, 0xcacaca, 0xc9c9c9, 0xc8c8c8, 0xc7c7c7, 0xc6c6c6, 0xc5c5c5, 0xc4c4c4, 0xc3c3c3, 0xc2c2c2, 0xc0c0c0, 0xc0c0c0, 0xbebebe, 0xbebebe, 0xbcbcbc, 0xbcbcbc, 0xbababa, 0xb9b9b9, 0xb8b8b8, 0xb7b7b7, 0xb6b6b6, 0xb5b5b5, 0xb4b4b4, 0xb3b3b3, 0xb2b2b2, 0xb1b1b1, 0xb0b0b0, 0xafafaf, 0xaeaeae, 0xadadad, 0xacacac, 0xababab, 0xa9a9a9, 0xa9a9a9, 0xa7a7a7, 0xa7a7a7, 0xa5a5a5, 0xa5a5a5, 0xa3a3a3, 0xa2a2a2, 0xa1a1a1, 0xa0a0a0, 0x9f9f9f, 0x9e9e9e, 0x9d9d9d, 0x9c9c9c, 0x9b9b9b, 0x9a9a9a, 0x999999, 0x989898, 0x979797, 0x969696, 0x959595, 0x949494, 0x939393, 0x929292, 0x909090, 0x909090, 0x8e8e8e, 0x8e8e8e, 0x8c8c8c, 0x8b8b8b, 0x8a8a8a, 0x898989, 0x888888, 0x878787, 0x868686, 0x858585, 0x848484, 0x838383, 0x828282, 0x818181, 0x808080, 0x7f7f7f, 0x7e7e7e, 0x7d7d7d, 0x7c7c7c, 0x7b7b7b, 0x7a7a7a, 0x797979, 0x777777, 0x777777, 0x757575, 0x757575, 0x737373, 0x727272, 0x717171, 0x626262, 0x484848, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x3a3a3a, 0x4b4b4b, 0x4b4b4b, 0x4a4a4a, 0x4a4a4a, 0x4a4a4a, 0x4a4a4a, 0x494949, 0x494949, 0x494949, 0x494949, 0x484848, 0x484848, 0x484848, 0x484848, 0x474747, 0x474747, 0x474747, 0x464646, 0x464646, 0x464646, 0x464646, 0x454545, 0x454545, 0x454545, 0x454545, 0x444444, 0x444444, 0x444444, 0x444444, 0x434343, 0x434343, 0x434343, 0x424242, 0x424242, 0x424242, 0x424242, 0x414141, 0x414141, 0x414141, 0x414141, 0x404040, 0x404040, 0x404040, 0x404040, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3f3f3f, 0x3e3e3e, 0x3e3e3e, 0x3e3e3e, 0x3e3e3e, 0x3d3d3d, 0x3d3d3d, 0x3d3d3d, 0x3d3d3d, 0x3c3c3c, 0x3c3c3c, 0x3c3c3c, 0x3c3c3c, 0x3b3b3b, 0x3b3b3b, 0x3b3b3b, 0x3a3a3a, 0x3a3a3a, 0x3a3a3a, 0x3a3a3a, 0x393939, 0x393939, 0x393939, 0x393939, 0x383838, 0x383838, 0x383838, 0x383838, 0x373737, 0x373737, 0x373737, 0x373737, 0x363636, 0x363636, 0x363636, 0x353535, 0x353535, 0x353535, 0x353535, 0x272727, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, + 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020, 0x202020 +};
\ No newline at end of file diff --git a/dev/Boot/BootKit/Support.h b/dev/Boot/BootKit/Support.h new file mode 100644 index 00000000..a69c4c99 --- /dev/null +++ b/dev/Boot/BootKit/Support.h @@ -0,0 +1,173 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#pragma once + +/// @file Support.h +/// @brief Purpose of this file is to help port libs into the bootloader. + +#ifndef __aarch64__ +#include <string.h> +#endif + +#define kLongMax ((long)(~0UL >> 1)) +#define kLongMin (~kLongMax) + +#ifdef __ZBAOSLDR__ + +/// @brief memset definition in C++. +/// @param dst destination pointer. +/// @param byte value to fill in. +/// @param len length of of src. +EXTERN_C void* memset(void* dst, int byte, long long unsigned int len); + +/// @brief memcpy definition in C++. +/// @param dst destination pointer. +/// @param src source pointer. +/// @param len length of of src. +EXTERN_C void* memcpy(void* dst, const void* src, long long unsigned int len); + +/// @brief strlen definition in C++. +EXTERN_C size_t strlen(const char* whatToCheck); + +/// @brief strcmp definition in C++. +EXTERN_C int strcmp(const char* whatToCheck, const char* whatToCheckRight); + +#else + +#include <string.h> + +#endif // __ZBAOSLDR__ + +#define SetMem(dst, c, sz) memset(dst, c, sz) +#define MoveMem(dst, src, sz) memcpy(dst, src, sz) +#define CopyMem(dst, src, sz) memcpy(dst, src, sz) +#define StrLen(src) strlen(src) +#define StrCmp(dst, src) strcmp(dst, src) + +inline int IsSpace(int c) +{ + return c == ' '; +} + +inline int StringNCompare(const char* destination, const char* source, long length) +{ + long err = 0; + + for (long i = 0UL; i < length; ++i) + { + if (source[i] != destination[i]) + ++err; + } + + return err; +} + +inline long StringToLong(const char* nptr, char** endptr, int base) +{ + const char *p = nptr, *endp; + bool is_neg = 0, overflow = 0; + + /* Need unsigned so (-kLongMin) can fit in these: */ + unsigned long n = 0UL, cutoff; + int cutlim; + + if (base < 0 || base == 1 || base > 36) + { + return 0L; + } + + endp = nptr; + + while (IsSpace(*p)) + p++; + + if (*p == '+') + { + p++; + } + else if (*p == '-') + { + is_neg = 1, p++; + } + if (*p == '0') + { + p++; + /* For strtol(" 0xZ", &endptr, 16), endptr should point to 'x'; + * pointing to ' ' or '0' is non-compliant. + * (Many implementations do this wrong.) */ + endp = p; + if (base == 16 && (*p == 'X' || *p == 'x')) + { + p++; + } + else if (base == 2 && (*p == 'B' || *p == 'b')) + { + /* C23 standard supports "0B" and "0b" prefixes. */ + p++; + } + else if (base == 0) + { + if (*p == 'X' || *p == 'x') + { + base = 16, p++; + } + else if (*p == 'B' || *p == 'b') + { + base = 2, p++; + } + else + { + base = 8; + } + } + } + else if (base == 0) + { + base = 10; + } + + cutoff = (is_neg) ? -(kLongMin / base) : kLongMax / base; + cutlim = (is_neg) ? -(kLongMin % base) : kLongMax % base; + + while (1) + { + int c; + if (*p >= 'A') + c = ((*p - 'A') & (~('a' ^ 'A'))) + 10; + else if (*p <= '9') + c = *p - '0'; + else + break; + if (c < 0 || c >= base) + break; + endp = ++p; + if (overflow) + { + /* endptr should go forward and point to the non-digit character + * (of the given base); required by ANSI standard. */ + if (endptr) + continue; + break; + } + if (n > cutoff || (n == cutoff && c > cutlim)) + { + overflow = 1; + continue; + } + n = n * base + c; + } + + if (endptr) + *endptr = (char*)endp; + + if (overflow) + { + return ((is_neg) ? kLongMin : kLongMax); + } + + return (long)((is_neg) ? -n : n); +} diff --git a/dev/Boot/DownloadOVMF.ps1 b/dev/Boot/DownloadOVMF.ps1 new file mode 100644 index 00000000..5a2c5f0e --- /dev/null +++ b/dev/Boot/DownloadOVMF.ps1 @@ -0,0 +1,4 @@ +$client = new-object System.Net.WebClient +$output = "$PSScriptRoot\OVMF.fd" + +$client.DownloadFile("https://retrage.github.io/edk2-nightly/bin/DEBUGX64_OVMF.fd", $output) diff --git a/dev/Boot/Mod/.keep b/dev/Boot/Mod/.keep new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dev/Boot/Mod/.keep diff --git a/dev/Boot/Mod/NetBoot/.hgkeep b/dev/Boot/Mod/NetBoot/.hgkeep new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dev/Boot/Mod/NetBoot/.hgkeep diff --git a/dev/Boot/Mod/NetBoot/Boot.S b/dev/Boot/Mod/NetBoot/Boot.S new file mode 100644 index 00000000..fbd6f497 --- /dev/null +++ b/dev/Boot/Mod/NetBoot/Boot.S @@ -0,0 +1,28 @@ +;; /* +;; * ======================================================== +;; * +;; * BootZ +;; * Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved., all rights reserved. +;; * +;; * ======================================================== +;; */ + +.code64 +.intel_syntax noprefix + +#define kTypeDriver 101 +#define kArchAmd64 122 +#define kHandoverMagic 0xBADCC + +.section .ldr + +.quad kHandoverMagic +.word kTypeDriver + +.text + +.extern main +.global __main + +__main: + ret diff --git a/dev/Boot/Mod/NetBoot/NetBoot.cc b/dev/Boot/Mod/NetBoot/NetBoot.cc new file mode 100644 index 00000000..18251e69 --- /dev/null +++ b/dev/Boot/Mod/NetBoot/NetBoot.cc @@ -0,0 +1,20 @@ +/* + * ======================================================== + * + * NetBoot + * Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved., all rights reserved. + * + * ======================================================== + */ + +#include <Mod/NetBoot/NetBoot.h> +#include <BootKit/BootKit.h> + +EXTERN_C Int32 ModuleMain(Kernel::HEL::BootInfoHeader* handover) +{ +#ifdef __ZKA_AMD64__ + return kEfiFail; +#else + return kEfiOk; +#endif +} diff --git a/dev/Boot/Mod/NetBoot/NetBoot.h b/dev/Boot/Mod/NetBoot/NetBoot.h new file mode 100644 index 00000000..2375ef18 --- /dev/null +++ b/dev/Boot/Mod/NetBoot/NetBoot.h @@ -0,0 +1,31 @@ +/* + * ======================================================== + * + * NetBoot + * Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved., all rights reserved. + * + * ======================================================== + */ + +#pragma once + +#include <NewKit/Defines.h> + +#define kNetBootINetMagic "NETB" +#define kNetBootINetMagicLength 4 + +/// @brief the internet header is used to download updates OTA. +typedef struct NetBootInternetHeader +{ + Kernel::Char NB1; /// magic char 1 'N' + Kernel::Char NB2; /// magic char 2 'E' + Kernel::Char NB3; /// magic char 3 'T' + Kernel::Char NB4; /// magic char 4 'B' + + Kernel::Char PatchName[255]; /// example: Modjo + Kernel::Int32 PatchLength; /// the patch length. + Kernel::Char PatchTarget[255]; /// the target file. + Kernel::Boolean ImpliesROM; /// does it imply an EEPROM reprogram? + Kernel::Boolean Preflight; /// is it a preflight packet. + Kernel::Char Data[]; /// non preflight packet has a patch blob for a **PatchTarget** +} NetBootInternetHeader; diff --git a/dev/Boot/Mod/NetBoot/build.json b/dev/Boot/Mod/NetBoot/build.json new file mode 100644 index 00000000..9df27b3c --- /dev/null +++ b/dev/Boot/Mod/NetBoot/build.json @@ -0,0 +1,24 @@ +{ + "compiler_path": "x86_64-w64-mingw32-g++", + "compiler_std": "c++20", + "headers_path": ["../", "../../", "../../../Kernel", "../../../", "./"], + "sources_path": [".cc", "*.S"], + "output_name": "netboot.sys", + "compiler_flags": [ + "-ffreestanding", + "-nostdlib", + "-std=c++20", + "-fPIC", + "-fno-rtti", + "-fno-exceptions", + "-Wl,--subsystem=17,--image-base,0x10000000,-e,ModuleMain" + ], + "cpp_macros": [ + "__MINOSKRNL__", + "__ZBAOSLDR__", + "__ZKA_AMD64__", + "kNetBootVersionHighest=0x0100", + "kNetBootVersionLowest=0x0100", + "kNetBootVersion=0x0100" + ] +} diff --git a/dev/Boot/Mod/SysChk/.hgkeep b/dev/Boot/Mod/SysChk/.hgkeep new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dev/Boot/Mod/SysChk/.hgkeep diff --git a/dev/Boot/Mod/SysChk/Boot.S b/dev/Boot/Mod/SysChk/Boot.S new file mode 100644 index 00000000..b5795450 --- /dev/null +++ b/dev/Boot/Mod/SysChk/Boot.S @@ -0,0 +1,22 @@ +;; /* +;; * ======================================================== +;; * +;; * BootZ +;; * Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved., all rights reserved. +;; * +;; * ======================================================== +;; */ + +#ifdef __ZKA_AMD64__ +.code64 +.intel_syntax noprefix +#endif + +#define kTypeDriver 101 +#define kArchAmd64 122 +#define kHandoverMagic 0xBADCC + +.section .ldr + +.quad kHandoverMagic +.word kTypeDriver diff --git a/dev/Boot/Mod/SysChk/Module.cc b/dev/Boot/Mod/SysChk/Module.cc new file mode 100644 index 00000000..0297b177 --- /dev/null +++ b/dev/Boot/Mod/SysChk/Module.cc @@ -0,0 +1,36 @@ +/* + * ======================================================== + * + * NetBoot + * Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved., all rights reserved. + * + * ======================================================== + */ + +#include <BootKit/BootKit.h> +#include <Mod/CoreGfx/FBMgr.h> +#include <Mod/CoreGfx/TextMgr.h> +#include <FirmwareKit/EFI.h> +#include <FirmwareKit/EFI/API.h> +#include <FirmwareKit/Handover.h> +#include <KernelKit/MSDOS.h> +#include <KernelKit/PE.h> +#include <KernelKit/PEF.h> +#include <NewKit/Macros.h> +#include <NewKit/Ref.h> +#include <BootKit/BootThread.h> +#include <Mod/CoreGfx/FBMgr.h> + +EXTERN_C Int32 ModuleMain(Kernel::HEL::BootInfoHeader* handover) +{ +#ifdef __ZKA_AMD64__ + Boot::BDiskFormatFactory<BootDeviceATA> partition_factory; + + if (partition_factory.IsPartitionValid()) + return kEfiOk; + + return kEfiFail; +#else + return kEfiOk; +#endif +} diff --git a/dev/Boot/Mod/SysChk/amd64.json b/dev/Boot/Mod/SysChk/amd64.json new file mode 100644 index 00000000..2c079889 --- /dev/null +++ b/dev/Boot/Mod/SysChk/amd64.json @@ -0,0 +1,25 @@ +{ + "compiler_path": "x86_64-w64-mingw32-g++", + "compiler_std": "c++20", + "headers_path": ["../", "../../", "../../../Kernel", "../../../", "./"], + "sources_path": ["*.cc", "*.S", "../../src/HEL/AMD64/*.cc", "../../src/HEL/AMD64/*.S", "../../src/*.cc"], + "output_name": "syschk.sys", + "compiler_flags": [ + "-ffreestanding", + "-nostdlib", + "-std=c++20", + "-fPIC", + "-fno-rtti", + "-fno-exceptions", + "-Wl,--subsystem=17,--image-base,0x10000000,-e,ModuleMain" + ], + "cpp_macros": [ + "__MINOSKRNL__", + "__ZBAOSLDR__", + "__BOOTLDR_STANDALONE__", + "__ZKA_AMD64__", + "kChkVersionHighest=0x0100", + "kChkVersionLowest=0x0100", + "kChkVersion=0x0100" + ] +} diff --git a/dev/Boot/Mod/SysChk/arm64.json b/dev/Boot/Mod/SysChk/arm64.json new file mode 100644 index 00000000..46cfb081 --- /dev/null +++ b/dev/Boot/Mod/SysChk/arm64.json @@ -0,0 +1,26 @@ +{ + "compiler_path": "clang++", + "compiler_std": "c++20", + "headers_path": ["../", "../../", "../../../Kernel", "../../../", "./"], + "sources_path": ["*.cc", "*.S", "../../src/HEL/ARM64/*.cc", "../../src/HEL/ARM64/*.S", "../../src/*.cc"], + "output_name": "syschk.sys", + "compiler_flags": [ + "-ffreestanding", + "-nostdlib", + "-std=c++20", + "-fno-rtti", + "-fno-exceptions", + "-fuse-ld=lld", + "-Wl,-subsystem:efi_application,-entry:ModuleMain", + "-target aarch64-unknown-windows" + ], + "cpp_macros": [ + "__MINOSKRNL__", + "__ZBAOSLDR__", + "__BOOTLDR_STANDALONE__", + "__ZKA_ARM64__", + "kChkVersionHighest=0x0100", + "kChkVersionLowest=0x0100", + "kChkVersion=0x0100" + ] +} diff --git a/dev/Boot/ReadMe.md b/dev/Boot/ReadMe.md new file mode 100644 index 00000000..bb0b6ec3 --- /dev/null +++ b/dev/Boot/ReadMe.md @@ -0,0 +1,20 @@ +# BootZ (Zeta Bootloader Architecture) + +You need: + +- MinGW for the Kernel and bootloader. +- Netwide Assembler to output COFF object code. + +Start by cloning the repo: + +``` +git clone git@github.com:amlel-el-mahrouss/zka-dev.git +``` + +And then execute: + +``` +make all +``` + +##### Copyright, Amlal EL Mahrouss, all rights reserved. diff --git a/dev/Boot/amd64-desktop.make b/dev/Boot/amd64-desktop.make new file mode 100644 index 00000000..c264143c --- /dev/null +++ b/dev/Boot/amd64-desktop.make @@ -0,0 +1,116 @@ +################################################## +# (c) Amlal EL Mahrouss, all rights reserved. +# This is the bootloader makefile. +################################################## + +CC_GNU=x86_64-w64-mingw32-g++ +LD_GNU=x86_64-w64-mingw32-ld + +WINDRES=x86_64-w64-mingw32-windres + +ADD_FILE=touch +COPY=cp +HTTP_GET=wget + +# Select this for Windows. +ifneq ($(findstring CYGWIN_NT-10.0,$(shell uname)), ) +EMU=qemu-system-x86_64w.exe +else +# this for NT distributions +EMU=qemu-system-x86_64 -net none +endif + +ifeq ($(NEWS_MODEL), ) +ZKA_MODEL=-DkMachineModel="\"ZkaOS\"" +endif + +BIOS=OVMF.fd +IMG=epm-master-1.img +IMG_2=epm-master-2.img + +EMU_FLAGS=-net none -smp 4 -m 8G -M q35 \ + -bios $(BIOS) -drive \ + file=fat:rw:src/Root/,index=2,format=raw \ + -d int + +LD_FLAGS=-e Main --subsystem=10 + +STANDALONE_MACRO=-D__BOOTLDR_STANDALONE__ +OBJ=*.o + +REM=rm +REM_FLAG=-f + +FLAG_ASM=-f win64 +FLAG_GNU=-fshort-wchar -D__EFI_x86_64__ -mno-red-zone -D__MINOSKRNL__ -D__ZBAOSLDR__ \ + -DEFI_FUNCTION_WRAPPER -I./ -I../Kernel -I../ -c -nostdlib -fno-rtti -fno-exceptions \ + -std=c++20 -DBOOTZ_GPT_SUPPORT -DBOOTZ_EPM_SUPPORT -D__HAVE_ZKA_APIS__ -DZBA_USE_FB -D__ZKA_AMD64__ -D__ZKA__ -DZKA_AUTO_FORMAT + +BOOTLOADER=zbaosldr.exe +KERNEL=minoskrnl.exe +SYSCHK=syschk.sys +STARTUP=startup.sys +SCIKIT=libSCI.dylib + +.PHONY: invalid-recipe +invalid-recipe: + @echo "=== ERROR ===" + @echo "=> Use make compile-<arch> instead." + +.PHONY: all +all: compile-amd64 + mkdir -p src/Root/EFI/BOOT + $(LD_GNU) $(OBJ) $(LD_FLAGS) -o src/$(BOOTLOADER) + $(COPY) src/$(BOOTLOADER) src/Root/EFI/BOOT/BOOTX64.EFI + $(COPY) src/$(BOOTLOADER) src/Root/EFI/BOOT/ZBAOSLDR.EFI + $(COPY) ../Kernel/$(KERNEL) src/Root/$(KERNEL) + $(COPY) ./Mod/SysChk/$(SYSCHK) src/Root/$(SYSCHK) + $(COPY) ../LibSCI/$(SCIKIT) src/Root/$(SCIKIT) + $(COPY) src/$(BOOTLOADER) src/Root/$(BOOTLOADER) + +ifneq ($(DEBUG_SUPPORT), ) +DEBUG = -D__DEBUG__ +endif + +.PHONY: compile-amd64 +compile-amd64: + $(WINDRES) src/BootloaderRsrc.rsrc -O coff -o BootloaderRsrc.o + $(CC_GNU) $(ZKA_MODEL) $(STANDALONE_MACRO) $(FLAG_GNU) $(DEBUG) \ + $(wildcard src/HEL/AMD64/*.cc) \ + $(wildcard src/HEL/AMD64/*.S) \ + $(wildcard src/*.cc) + +.PHONY: run-efi-amd64-ahci +run-efi-amd64-ahci: + $(EMU) $(EMU_FLAGS) -hda $(IMG) -s -S + +.PHONY: run-efi-amd64-ata +run-efi-amd64-ata: + $(EMU) $(EMU_FLAGS) -device piix3-ide,id=ide -drive id=disk,file=$(IMG),format=raw,if=none -device ide-hd,drive=disk,bus=ide.0 -s -S + +# img_2 is the rescue disk. img is the bootable disk, as provided by the Zeta specs. +.PHONY: epm-img +epm-img: + qemu-img create -f raw $(IMG) 4G + +.PHONY: efi +efi: + $(HTTP_GET) https://retrage.github.io/edk2-nightly/bin/DEBUGX64_OVMF.fd -O OVMF.fd + +BINS=*.bin +EXECUTABLES=zbaosldr.exe minoskrnl.exe OVMF.fd + +TARGETS=$(REM_FLAG) $(OBJ) $(BIN) $(IMG) $(IMG_2) $(EXECUTABLES) + +.PHONY: clean +clean: + $(REM) $(TARGETS) + +.PHONY: help +help: + @echo "=== HELP ===" + @echo "epm-img: Format a disk using the Explicit Partition Map." + @echo "gpt-img: Format a disk using the Explicit Partition Map." + @echo "clean: clean bootloader." + @echo "bootloader-amd64: Build bootloader. (PC AMD64)" + @echo "run-efi-amd64-<ahci, ata>: Run bootloader. (PC AMD64)" diff --git a/dev/Boot/arm64-desktop.make b/dev/Boot/arm64-desktop.make new file mode 100644 index 00000000..1a3d6b69 --- /dev/null +++ b/dev/Boot/arm64-desktop.make @@ -0,0 +1,112 @@ +################################################## +# (c) Amlal EL Mahrouss, all rights reserved. +# This is the bootloader makefile. +################################################## + +CC_GNU = clang++ +LD_GNU = lld-link + +ADD_FILE=touch +COPY=cp +HTTP_GET=wget + +# Select this for Windows. +ifneq ($(findstring CYGWIN_NT-10.0,$(shell uname)), ) +EMU=qemu-system-aarch64w.exe +else +# this for NT distributions +EMU=qemu-system-aarch64 +endif + +ifeq ($(NEWS_MODEL), ) +ZKA_MODEL=-DkMachineModel="\"ZKA\"" +endif + +BIOS=OVMF.fd +IMG=epm-master-1.img +IMG_2=epm-slave.img +IMG_3=epm-master-2.img + +EMU_FLAGS=-net none -smp 4 -m 8G -cpu max -M virt \ + -bios $(BIOS) \ + -drive id=disk,file=$(IMG),format=raw,if=none \ + -drive \ + file=fat:rw:src/Root/,index=2,format=raw \ + -no-shutdown -no-reboot -cpu cortex-a72 -device virtio-gpu-pci + +LD_FLAGS=-subsystem:efi_application -entry:Main /nodefaultlib + +STANDALONE_MACRO=-D__BOOTLDR_STANDALONE__ +OBJ=*.o + +REM=rm +REM_FLAG=-f + +FLAG_ASM=-f win64 +FLAG_GNU=-fshort-wchar -c -ffreestanding -MMD -mno-red-zone -D__ZKA_ARM64__ -fno-rtti -fno-exceptions -I./ \ + -target aarch64-unknown-windows \ + -std=c++20 -DBOOTZ_EPM_SUPPORT -DZBA_USE_FB -D__FSKIT_USE_NEFS__ -D__BOOTLDR_STANDALONE__ -D__MINOSKRNL__ -D__ZBAOSLDR__ -D__HAVE_ZKA_APIS__ -D__ZKA__ -I../ -I../Kernel + +BOOT_LOADER=zbaosldr.exe +KERNEL=minoskrnl.exe +SYSCHK=syschk.sys +STARTUP=startup.sys + +.PHONY: invalid-recipe +invalid-recipe: + @echo "invalid-recipe: Use make compile-<arch> instead." + +.PHONY: all +all: compile + mkdir -p src/Root/EFI/BOOT + $(LD_GNU) $(OBJ) $(LD_FLAGS) /out:src/$(BOOT_LOADER) + $(COPY) src/$(BOOT_LOADER) src/Root/EFI/BOOT/BOOTAA64.EFI + $(COPY) src/$(BOOT_LOADER) src/Root/EFI/BOOT/BootZ.EFI + $(COPY) ../Kernel/$(KERNEL) src/Root/$(KERNEL) + $(COPY) ./Mod/SysChk/$(SYSCHK) src/Root/$(SYSCHK) + $(COPY) src/$(BOOT_LOADER) src/Root/$(BOOT_LOADER) + +ifneq ($(DEBUG_SUPPORT), ) +DEBUG = -D__DEBUG__ +endif + +.PHONY: compile +compile: + $(RESCMD) + $(CC_GNU) $(ZKA_MODEL) $(STANDALONE_MACRO) $(FLAG_GNU) $(DEBUG) \ + $(wildcard src/HEL/ARM64/*.cc) \ + $(wildcard src/HEL/ARM64/*.S) \ + $(wildcard src/*.cc) + +.PHONY: run +run: + $(EMU) $(EMU_FLAGS) + +# img_2 is the rescue disk. img is the bootable disk, as provided by the Zeta. +.PHONY: epm-img +epm-img: + qemu-img create -f raw $(IMG) 10G + qemu-img create -f raw $(IMG_2) 4G + qemu-img create -f raw $(IMG_3) 4G + +.PHONY: efi +efi: + $(HTTP_GET) https://retrage.github.io/edk2-nightly/bin/DEBUGAARCH64_QEMU_EFI.fd -O OVMF.fd + +BINS=*.bin +EXECUTABLES=zbaosldr.exe minoskrnl.exe OVMF.fd + +TARGETS=$(REM_FLAG) $(OBJ) $(BIN) $(IMG) $(IMG_2) $(EXECUTABLES) + +.PHONY: clean +clean: + $(REM) $(TARGETS) + +.PHONY: help +help: + @echo "=== HELP ===" + @echo "epm-img: Format a disk using the Explicit Partition Map." + @echo "gpt-img: Format a disk using the Explicit Partition Map." + @echo "clean: clean bootloader." + @echo "bootloader-amd64: Build bootloader. (PC AMD64)" + @echo "run: Run bootloader. (PC AMD64)" diff --git a/dev/Boot/arm64-mobile.make b/dev/Boot/arm64-mobile.make new file mode 100644 index 00000000..45fd03e9 --- /dev/null +++ b/dev/Boot/arm64-mobile.make @@ -0,0 +1,113 @@ +################################################## +# (c) Amlal EL Mahrouss, all rights reserved. +# This is the bootloader makefile. +################################################## + +CC_GNU = clang++ +LD_GNU = lld-link + +ADD_FILE=touch +COPY=cp +HTTP_GET=wget + +# Select this for Windows. +ifneq ($(findstring CYGWIN_NT-10.0,$(shell uname)), ) +EMU=qemu-system-aarch64w.exe +else +# this for NT distributions +EMU=qemu-system-aarch64 +endif + +ifeq ($(NEWS_MODEL), ) +ZKA_MODEL=-DkMachineModel="\"ZKA\"" +endif + +BIOS=OVMF.fd +IMG=epm-master-1.img +IMG_2=epm-slave.img +IMG_3=epm-master-2.img + +EMU_FLAGS=-net none -smp 4 -m 8G -cpu max -M virt-9.1 \ + -bios $(BIOS) \ + -drive id=disk,file=$(IMG),format=raw,if=none \ + -drive \ + file=fat:rw:src/Root/,index=1,format=raw \ + -device virtio-tablet-pci \ + -no-shutdown -no-reboot -cpu cortex-a72 -device virtio-gpu-pci + +LD_FLAGS=-subsystem:efi_application -entry:Main /nodefaultlib + +STANDALONE_MACRO=-D__BOOTLDR_STANDALONE__ +OBJ=*.o + +REM=rm +REM_FLAG=-f + +FLAG_ASM=-f win64 +FLAG_GNU=-fshort-wchar -c -ffreestanding -MMD -mno-red-zone -D__ZKA_ARM64__ -fno-rtti -fno-exceptions -I./ \ + -target aarch64-unknown-windows \ + -std=c++20 -DBOOTZ_EPM_SUPPORT -DkExpectedWidth=320 -DkExpectedHeight=480 -D__FSKIT_USE_NEFS__ -D__BOOTLDR_STANDALONE__ -D__MINOSKRNL__ -D__ZBAOSLDR__ -D__HAVE_ZKA_APIS__ -D__ZKA__ -I../ -I../Kernel + +BOOT_LOADER=zbaosldr.exe +KERNEL=minoskrnl.exe +SYSCHK=syschk.sys +STARTUP=startup.sys + +.PHONY: invalid-recipe +invalid-recipe: + @echo "invalid-recipe: Use make compile-<arch> instead." + +.PHONY: all +all: compile + mkdir -p src/Root/EFI/BOOT + $(LD_GNU) $(OBJ) $(LD_FLAGS) /out:src/$(BOOT_LOADER) + $(COPY) src/$(BOOT_LOADER) src/Root/EFI/BOOT/BOOTAA64.EFI + $(COPY) src/$(BOOT_LOADER) src/Root/EFI/BOOT/BootZ.EFI + $(COPY) ../Kernel/$(KERNEL) src/Root/$(KERNEL) + $(COPY) ./Mod/SysChk/$(SYSCHK) src/Root/$(SYSCHK) + $(COPY) src/$(BOOT_LOADER) src/Root/$(BOOT_LOADER) + +ifneq ($(DEBUG_SUPPORT), ) +DEBUG = -D__DEBUG__ +endif + +.PHONY: compile +compile: + $(RESCMD) + $(CC_GNU) $(ZKA_MODEL) $(STANDALONE_MACRO) $(FLAG_GNU) $(DEBUG) \ + $(wildcard src/HEL/ARM64/*.cc) \ + $(wildcard src/HEL/ARM64/*.S) \ + $(wildcard src/*.cc) + +.PHONY: run +run: + $(EMU) $(EMU_FLAGS) + +# img_2 is the rescue disk. img is the bootable disk, as provided by the Zeta. +.PHONY: epm-img +epm-img: + qemu-img create -f raw $(IMG) 10G + qemu-img create -f raw $(IMG_2) 4G + qemu-img create -f raw $(IMG_3) 4G + +.PHONY: efi +efi: + $(HTTP_GET) https://retrage.github.io/edk2-nightly/bin/DEBUGAARCH64_QEMU_EFI.fd -O OVMF.fd + +BINS=*.bin +EXECUTABLES=zbaosldr.exe minoskrnl.exe OVMF.fd + +TARGETS=$(REM_FLAG) $(OBJ) $(BIN) $(IMG) $(IMG_2) $(EXECUTABLES) + +.PHONY: clean +clean: + $(REM) $(TARGETS) + +.PHONY: help +help: + @echo "=== HELP ===" + @echo "epm-img: Format a disk using the Explicit Partition Map." + @echo "gpt-img: Format a disk using the Explicit Partition Map." + @echo "clean: clean bootloader." + @echo "bootloader-amd64: Build bootloader. (PC AMD64)" + @echo "run-efi-amd64: Run bootloader. (PC AMD64)" diff --git a/dev/Boot/gdbinit b/dev/Boot/gdbinit new file mode 100644 index 00000000..9522f6e8 --- /dev/null +++ b/dev/Boot/gdbinit @@ -0,0 +1,3 @@ +set disassemble-next-line on +b Main +target remote localhost:1234 diff --git a/dev/Boot/src/.gitkeep b/dev/Boot/src/.gitkeep new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dev/Boot/src/.gitkeep diff --git a/dev/Boot/src/BootFileReader.cc b/dev/Boot/src/BootFileReader.cc new file mode 100644 index 00000000..df089bf1 --- /dev/null +++ b/dev/Boot/src/BootFileReader.cc @@ -0,0 +1,206 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + + File: FileReader.cc + Purpose: New Boot FileReader, + Read complete file and store it in a buffer. + +------------------------------------------- */ + +#include <BootKit/Platform.h> +#include <BootKit/Protocol.h> +#include <BootKit/BootKit.h> +#include <FirmwareKit/Handover.h> +#include <FirmwareKit/EFI/API.h> +#include <Mod/CoreGfx/TextMgr.h> + +/// @file BootFileReader +/// @brief Bootloader File reader. +/// BUGS: 0 + +//////////////////////////////////////////////////////////////////////////////////////////////////// +/// +/// +/// @name BFileReader class +/// @brief Reads the file as a blob. +/// +/// +//////////////////////////////////////////////////////////////////////////////////////////////////// + +/*** + @brief File Reader constructor. +*/ +Boot::BFileReader::BFileReader(const CharacterTypeUTF16* path, + EfiHandlePtr ImageHandle) +{ + if (path != nullptr) + { + SizeT index = 0UL; + for (; path[index] != L'\0'; ++index) + { + mPath[index] = path[index]; + } + + mPath[index] = 0; + } + + /// Load protocols with their GUIDs. + + EfiGUID guidEfp = EfiGUID(EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID); + + EfiSimpleFilesystemProtocol* efp = nullptr; + + EfiLoadImageProtocol* img = nullptr; + EfiGUID guidImg = EfiGUID(EFI_LOADED_IMAGE_PROTOCOL_GUID); + + if (BS->HandleProtocol(ImageHandle, &guidImg, (void**)&img) != kEfiOk) + { + mWriter.Write(L"BootZ: Handle-Protocol: No-Such-Protocol").Write(L"\r"); + this->mErrorCode = kNotSupported; + } + + if (BS->HandleProtocol(img->DeviceHandle, &guidEfp, (void**)&efp) != kEfiOk) + { + mWriter.Write(L"BootZ: Handle-Protocol: No-Such-Protocol").Write(L"\r"); + this->mErrorCode = kNotSupported; + return; + } + + /// Start doing disk I/O + + if (efp->OpenVolume(efp, &mRootFs) != kEfiOk) + { + mWriter.Write(L"BootZ: Fetch-Protocol: No-Such-Volume").Write(L"\r"); + this->mErrorCode = kNotSupported; + return; + } + + EfiFileProtocol* fileFs = nullptr; + + if (mRootFs->Open(mRootFs, &fileFs, mPath, kEFIFileRead, kEFIReadOnly) != + kEfiOk) + { + mWriter.Write(L"BootZ: Fetch-Protocol: No-Such-Path: ") + .Write(mPath) + .Write(L"\r"); + this->mErrorCode = kNotSupported; + + fb_render_string("BootZ: PLEASE RECOVER YOUR MINKRNL INSTALL.", 40, 10, RGB(0xFF, 0xFF, 0xFF)); + + mRootFs->Close(mRootFs); + + return; + } + + mSizeFile = 0; + mFile = fileFs; + mErrorCode = kOperationOkay; +} + +Boot::BFileReader::~BFileReader() +{ + if (this->mFile) + { + this->mFile->Close(this->mFile); + this->mFile = nullptr; + } + + if (this->mRootFs) + { + this->mRootFs->Close(this->mRootFs); + this->mRootFs = nullptr; + } + + if (this->mBlob) + { + BS->FreePool(this->mBlob); + this->mBlob = nullptr; + } + + BSetMem(this->mPath, 0, kPathLen); +} + +/** + @brief Reads all of the file into a buffer. + @param **readUntil** size of file + @param **chunkToRead** chunk to read each time. +*/ +Void Boot::BFileReader::ReadAll(SizeT readUntil, SizeT chunkToRead, UIntPtr out_address) +{ + UInt32 szInfo = sizeof(EfiFileInfo); + + EfiFileInfo newPtrInfo{}; + + EfiGUID kFileInfoGUID = EFI_FILE_INFO_GUID; + + if (mFile->GetInfo(mFile, &kFileInfoGUID, &szInfo, &newPtrInfo) == kEfiOk) + { + readUntil = newPtrInfo.FileSize; + mWriter.Write(L"BootZ: File size: ").Write(readUntil).Write("\r"); + } + + if (readUntil == 0) + { + mErrorCode = kNotSupported; + return; + } + + if (mBlob == nullptr) + { + if (!out_address) + { + if (auto err = BS->AllocatePool(EfiLoaderCode, readUntil, (VoidPtr*)&mBlob) != + kEfiOk) + { + mWriter.Write(L"*** error: ").Write(err).Write(L" ***\r"); + EFI::ThrowError(L"OutOfMemory", L"Out of memory."); + } + } + else + { + mBlob = (VoidPtr)out_address; + } + } + + mWriter.Write(L"*** Bytes to read: ").Write(readUntil).Write(L" ***\r"); + + UInt64 bufSize = chunkToRead; + UInt64 szCnt = 0UL; + + while (szCnt < readUntil) + { + auto res = mFile->Read(mFile, &bufSize, (VoidPtr)(&((Char*)mBlob)[szCnt])); + + szCnt += bufSize; + + if (res == kBufferTooSmall) + { + bufSize = chunkToRead; + } + } + + mSizeFile = szCnt; + mErrorCode = kOperationOkay; +} + +/// @brief error code getter. +/// @return the error code. +Int32& Boot::BFileReader::Error() +{ + return mErrorCode; +} + +/// @brief blob getter. +/// @return the blob. +VoidPtr Boot::BFileReader::Blob() +{ + return mBlob; +} + +/// @breif Size getter. +/// @return the size of the file. +UInt64& Boot::BFileReader::Size() +{ + return mSizeFile; +} diff --git a/dev/Boot/src/BootString.cc b/dev/Boot/src/BootString.cc new file mode 100644 index 00000000..afd95790 --- /dev/null +++ b/dev/Boot/src/BootString.cc @@ -0,0 +1,92 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + + File: BootString.cc + Purpose: BootZ string library + + Revision History: + + + +------------------------------------------- */ + +#include <BootKit/Platform.h> +#include <BootKit/Protocol.h> +#include <BootKit/BootKit.h> + +/// BUGS: 0 + +///////////////////////////////////////////////////////////////////////////////////////////////////////// + +Kernel::SizeT Boot::BCopyMem(CharacterTypeUTF16* dest, CharacterTypeUTF16* src, const Kernel::SizeT len) +{ + if (!dest || !src) + return 0; + + SizeT index = 0UL; + for (; index < len; ++index) + { + dest[index] = src[index]; + } + + return index; +} + +Kernel::SizeT Boot::BStrLen(const CharacterTypeUTF16* ptr) +{ + if (!ptr) + return 0; + + Kernel::SizeT cnt = 0; + + while (*ptr != (CharacterTypeUTF16)0) + { + ++ptr; + ++cnt; + } + + return cnt; +} + +Kernel::SizeT Boot::BSetMem(CharacterTypeUTF16* src, const CharacterTypeUTF16 byte, const Kernel::SizeT len) +{ + if (!src) + return 0; + + Kernel::SizeT cnt = 0UL; + + while (*src != 0) + { + if (cnt > len) + break; + + *src = byte; + ++src; + + ++cnt; + } + + return cnt; +} + +Kernel::SizeT Boot::BSetMem(CharacterTypeUTF8* src, const CharacterTypeUTF8 byte, const Kernel::SizeT len) +{ + if (!src) + return 0; + + Kernel::SizeT cnt = 0UL; + + while (*src != 0) + { + if (cnt > len) + break; + + *src = byte; + ++src; + + ++cnt; + } + + return cnt; +} diff --git a/dev/Boot/src/BootSupport.cc b/dev/Boot/src/BootSupport.cc new file mode 100644 index 00000000..99e44531 --- /dev/null +++ b/dev/Boot/src/BootSupport.cc @@ -0,0 +1,82 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#include <BootKit/BootKit.h> +#include <FirmwareKit/EFI/API.h> +#include <FirmwareKit/EFI/EFI.h> +#include <FirmwareKit/Handover.h> +#include <BootKit/Support.h> +#include <KernelKit/MSDOS.h> +#include <KernelKit/PE.h> + +#ifdef __BOOTLDR_STANDALONE__ + +/// @brief memset definition in C++. +/// @param dst destination pointer. +/// @param byte value to fill in. +/// @param len length of of src. +EXTERN_C VoidPtr memset(void* dst, int byte, long long unsigned int len) +{ + for (size_t i = 0UL; i < len; ++i) + { + ((int*)dst)[i] = byte; + } + + return dst; +} + +/// @brief memcpy definition in C++. +/// @param dst destination pointer. +/// @param src source pointer. +/// @param len length of of src. +EXTERN_C VoidPtr memcpy(void* dst, const void* src, long long unsigned int len) +{ + for (size_t i = 0UL; i < len; ++i) + { + ((int*)dst)[i] = ((int*)src)[i]; + } + + return dst; +} + +/// @brief strlen definition in C++. +EXTERN_C size_t strlen(const char* whatToCheck) +{ + SizeT len = 0; + + while (whatToCheck[len] != 0) + { + ++len; + } + + return len; +} + +/// @brief strcmp definition in C++. +EXTERN_C int strcmp(const char* whatToCheck, const char* whatToCheckRight) +{ + if (!whatToCheck || *whatToCheck == 0) + return 0; + + SizeT len = 0; + + while (whatToCheck[len] == whatToCheckRight[len]) + { + if (whatToCheck[len] == 0) + return 0; + + ++len; + } + + return len; +} + +/// @brief something specific to the Microsoft's ABI, When the stack grows too big. +EXTERN_C void ___chkstk_ms(void) +{ +} + +#endif diff --git a/dev/Boot/src/BootTextWriter.cc b/dev/Boot/src/BootTextWriter.cc new file mode 100644 index 00000000..b972deb0 --- /dev/null +++ b/dev/Boot/src/BootTextWriter.cc @@ -0,0 +1,169 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + + File: BootTextWriter.cc + Purpose: BootZ string library + + Revision History: + + + +------------------------------------------- */ + +#include <FirmwareKit/EFI/API.h> +#include <BootKit/Platform.h> +#include <BootKit/Protocol.h> +#include <BootKit/BootKit.h> + +///////////////////////////////////////////////////////////////////////////////////////////////////////// +/// BUGS: 0 /// +///////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** +@brief puts wrapper over EFI ConOut. +*/ +Boot::BTextWriter& Boot::BTextWriter::Write(const CharacterTypeUTF16* str) +{ +#ifdef __DEBUG__ + if (!str || *str == 0) + return *this; + + CharacterTypeUTF16 strTmp[2]; + strTmp[1] = 0; + + for (size_t i = 0; str[i] != 0; i++) + { + if (str[i] == '\r') + { + strTmp[0] = str[i]; + ST->ConOut->OutputString(ST->ConOut, strTmp); + + strTmp[0] = '\n'; + ST->ConOut->OutputString(ST->ConOut, strTmp); + } + else + { + strTmp[0] = str[i]; + ST->ConOut->OutputString(ST->ConOut, strTmp); + } + } +#endif // ifdef __DEBUG__ + + return *this; +} + +/// @brief UTF-8 equivalent of Write (UTF-16). +/// @param str the input string. +Boot::BTextWriter& Boot::BTextWriter::Write(const Char* str) +{ +#ifdef __DEBUG__ + if (!str || *str == 0) + return *this; + + CharacterTypeUTF16 strTmp[2]; + strTmp[1] = 0; + + for (size_t i = 0; str[i] != 0; i++) + { + if (str[i] == '\r') + { + strTmp[0] = str[i]; + ST->ConOut->OutputString(ST->ConOut, strTmp); + + strTmp[0] = '\n'; + ST->ConOut->OutputString(ST->ConOut, strTmp); + } + else + { + strTmp[0] = str[i]; + ST->ConOut->OutputString(ST->ConOut, strTmp); + } + } +#endif // ifdef __DEBUG__ + + return *this; +} + +Boot::BTextWriter& Boot::BTextWriter::Write(const UChar* str) +{ +#ifdef __DEBUG__ + if (!str || *str == 0) + return *this; + + CharacterTypeUTF16 strTmp[2]; + strTmp[1] = 0; + + for (size_t i = 0; str[i] != 0; i++) + { + if (str[i] == '\r') + { + strTmp[0] = str[i]; + ST->ConOut->OutputString(ST->ConOut, strTmp); + + strTmp[0] = '\n'; + ST->ConOut->OutputString(ST->ConOut, strTmp); + } + else + { + strTmp[0] = str[i]; + ST->ConOut->OutputString(ST->ConOut, strTmp); + } + } +#endif // ifdef __DEBUG__ + + return *this; +} + +/** +@brief putc wrapper over EFI ConOut. +*/ +Boot::BTextWriter& Boot::BTextWriter::WriteCharacter(CharacterTypeUTF16 c) +{ +#ifdef __DEBUG__ + EfiCharType str[2]; + + str[0] = c; + str[1] = 0; + ST->ConOut->OutputString(ST->ConOut, str); +#endif // ifdef __DEBUG__ + + return *this; +} + +Boot::BTextWriter& Boot::BTextWriter::Write(const Long& x) +{ +#ifdef __DEBUG__ + this->_Write(x); + this->Write("h"); +#endif // ifdef __DEBUG__ + + return *this; +} + +Boot::BTextWriter& Boot::BTextWriter::_Write(const Long& x) +{ +#ifdef __DEBUG__ + UInt64 y = (x > 0 ? x : -x) / 16; + UInt64 h = (x > 0 ? x : -x) % 16; + + if (y) + this->_Write(y); + + /* fail if the hex number is not base-16 */ + if (h > 16) + { + this->WriteCharacter('?'); + return *this; + } + + if (y < 0) + y = -y; + + const char cNumbers[] = "0123456789ABCDEF"; + + this->WriteCharacter(cNumbers[h]); +#endif // ifdef __DEBUG__ + + return *this; +} diff --git a/dev/Boot/src/BootThread.cc b/dev/Boot/src/BootThread.cc new file mode 100644 index 00000000..4b7dfdfb --- /dev/null +++ b/dev/Boot/src/BootThread.cc @@ -0,0 +1,217 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#include <BootKit/BootThread.h> +#include <BootKit/Support.h> +#include <BootKit/BootKit.h> +#include <FirmwareKit/EFI/API.h> + +#include <KernelKit/PEF.h> +#include <KernelKit/PE.h> +#include <KernelKit/MSDOS.h> +#include <CFKit/Utils.h> +#include <Mod/CoreGfx/TextMgr.h> + +/// @brief External boot services symbol. +EXTERN EfiBootServices* BS; + +/// @note BootThread doesn't parse the symbols so doesn't nullify them, .bss is though. + +namespace Boot +{ + EXTERN_C Int32 rt_jump_to_address(VoidPtr code, HEL::BootInfoHeader* handover, UInt8* stack); + + BootThread::BootThread(VoidPtr blob) + : fBlob(blob), fStartAddress(nullptr) + { + // detect the format. + const Char* blob_bytes = reinterpret_cast<char*>(fBlob); + + BTextWriter writer; + + if (!blob_bytes) + { + // failed to provide a valid pointer. + return; + } + + if (blob_bytes[0] == kMagMz0 && + blob_bytes[1] == kMagMz1) + { + LDR_EXEC_HEADER_PTR header_ptr = CFKit::ldr_find_exec_header(blob_bytes); + LDR_OPTIONAL_HEADER_PTR opt_header_ptr = CFKit::ldr_find_opt_exec_header(blob_bytes); + + if (!header_ptr || !opt_header_ptr) + return; + +#ifdef __ZKA_AMD64__ + if (header_ptr->mMachine != kPeMachineAMD64 || + header_ptr->mSignature != kPeSignature) + { + writer.Write("BootZ: Not a PE32+ executable.\r"); + return; + } +#elif defined(__ZKA_ARM64__) + if (header_ptr->mMachine != kPeMachineARM64 || + header_ptr->mSignature != kPeSignature) + { + writer.Write("BootZ: Not a PE32+ executable.\r"); + return; + } +#endif // __ZKA_AMD64__ || __ZKA_ARM64__ + + if (opt_header_ptr->mSubsystem != kZKASubsystem) + { + writer.Write("BootZ: Not a ZKA Subsystem executable.\r"); + return; + } + + writer.Write("BootZ: PE32+ executable detected (ZKA Subsystem).\r"); + + auto numSecs = header_ptr->mNumberOfSections; + + writer.Write("BootZ: Major Linker Ver: ").Write(opt_header_ptr->mMajorLinkerVersion).Write("\r"); + writer.Write("BootZ: Minor Linker Ver: ").Write(opt_header_ptr->mMinorLinkerVersion).Write("\r"); + writer.Write("BootZ: Major Subsystem Ver: ").Write(opt_header_ptr->mMajorSubsystemVersion).Write("\r"); + writer.Write("BootZ: Minor Subsystem Ver: ").Write(opt_header_ptr->mMinorSubsystemVersion).Write("\r"); + writer.Write("BootZ: Magic: ").Write(header_ptr->mSignature).Write("\r"); + + constexpr auto cPageSize = 512; + + EfiPhysicalAddress loadStartAddress = opt_header_ptr->mImageBase; + loadStartAddress += opt_header_ptr->mBaseOfData; + + writer.Write("BootZ: Image base: ").Write(loadStartAddress).Write("\r"); + + auto numPages = opt_header_ptr->mSizeOfImage / cPageSize; + BS->AllocatePages(AllocateAddress, EfiLoaderData, numPages, &loadStartAddress); + + LDR_SECTION_HEADER_PTR sectPtr = (LDR_SECTION_HEADER_PTR)(((Char*)opt_header_ptr) + header_ptr->mSizeOfOptionalHeader); + + constexpr auto sectionForCode = ".text"; + constexpr auto sectionForNewLdr = ".ldr"; + constexpr auto sectionForBSS = ".bss"; + + for (SizeT sectIndex = 0; sectIndex < numSecs; ++sectIndex) + { + LDR_SECTION_HEADER_PTR sect = §Ptr[sectIndex]; + + SetMem((VoidPtr)(loadStartAddress + sect->mVirtualAddress), 0, sect->mSizeOfRawData); + + if (StrCmp(sectionForCode, sect->mName) == 0) + { + fStartAddress = (VoidPtr)((UIntPtr)loadStartAddress + opt_header_ptr->mAddressOfEntryPoint); + writer.Write("BootZ: Executable entry address: ").Write((UIntPtr)fStartAddress).Write("\r"); + } + else if (StrCmp(sectionForNewLdr, sect->mName) == 0) + { + struct HANDOVER_INFORMATION_STUB + { + UInt64 HandoverMagic; + UInt32 HandoverType; + UInt32 HandoverPad; + UInt32 HandoverArch; + }* handover_struc = (struct HANDOVER_INFORMATION_STUB*)((UIntPtr)fBlob + sect->mPointerToRawData); + + if (handover_struc->HandoverMagic != kHandoverMagic && + handover_struc->HandoverType != HEL::kTypeKernel) + { +#ifdef __ZKA_AMD64__ + if (handover_struc->HandoverArch != HEL::kArchAMD64) + { + fb_render_string("BootZ: Not an handover header, bad CPU...", 40, 10, RGB(0xFF, 0xFF, 0xFF)); + ::EFI::Stop(); + } +#endif + +#ifdef __ZKA_ARM64__ + if (handover_struc->HandoverArch != HEL::kArchARM64) + { + fb_render_string("BootZ: Not an handover header, bad CPU...", 40, 10, RGB(0xFF, 0xFF, 0xFF)); + ::EFI::Stop(); + } +#endif + fb_render_string("BootZ: Not an handover header...", 40, 10, RGB(0xFF, 0xFF, 0xFF)); + + ::EFI::Stop(); + } + } + + writer.Write("BootZ: Raw offset: ").Write(sect->mPointerToRawData).Write(" of ").Write(sect->mName).Write("\r"); + + CopyMem((VoidPtr)(loadStartAddress + sect->mVirtualAddress), (VoidPtr)((UIntPtr)fBlob + sect->mPointerToRawData), sect->mSizeOfRawData); + } + } + else if (blob_bytes[0] == kPefMagic[0] && + blob_bytes[1] == kPefMagic[1] && + blob_bytes[2] == kPefMagic[2] && + blob_bytes[3] == kPefMagic[3]) + { + // ========================================= // + // PEF executable detected. + // ========================================= // + + fStartAddress = nullptr; + writer.Write("BootZ: PEF executable detected, won't load it.\r"); + writer.Write("BootZ: note: PEF executables aren't loadable by default.\r"); + } + else + { + writer.Write("BootZ: Invalid Executable.\r"); + } + + fStack = new UInt8[mib_cast(16)]; + } + + /// @note handover header has to be valid! + Int32 BootThread::Start(HEL::BootInfoHeader* handover, Bool own_stack) + { + HEL::HandoverProc err_fn = [](HEL::BootInfoHeader* rcx) -> Int32 { + fb_render_string("BootZ: Invalid Boot Image...", 50, 10, RGB(0xFF, 0xFF, 0xFF)); + ::EFI::Stop(); + + return NO; + }; + + if (!fStartAddress) + { + err_fn(handover); + } + + fHandover = handover; + + if (own_stack) + { + rt_jump_to_address(fStartAddress, fHandover, &fStack[mib_cast(16) - 1]); + } + else + { + if (fStack) + delete[] fStack; + + fStack = nullptr; + + return reinterpret_cast<HEL::HandoverProc>(fStartAddress)(fHandover); + } + + return kEfiOk; + } + + const Char* BootThread::GetName() + { + return fBlobName; + } + + Void BootThread::SetName(const Char* name) + { + CopyMem(fBlobName, name, StrLen(name)); + } + + bool BootThread::IsValid() + { + return fStartAddress != nullptr; + } +} // namespace Boot diff --git a/dev/Boot/src/BootloaderRsrc.rsrc b/dev/Boot/src/BootloaderRsrc.rsrc new file mode 100644 index 00000000..cb68da9a --- /dev/null +++ b/dev/Boot/src/BootloaderRsrc.rsrc @@ -0,0 +1,25 @@ +#include "../../Kernel/CompilerKit/Version.h" + +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "080904E4" + BEGIN + VALUE "CompanyName", "Amlal EL Mahrouss" + VALUE "FileDescription", "ZKA OS Loader." + VALUE "FileVersion", BOOTLOADER_VERSION + VALUE "InternalName", "zbaosldr" + VALUE "LegalCopyright", "Copyright (C) 2024, Amlal EL Mahrouss all rights reserved." + VALUE "OriginalFilename", "zbaosldr.exe" + VALUE "ProductName", "zbaosldr" + VALUE "ProductVersion", BOOTLOADER_VERSION + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x809, 1252 + END +END diff --git a/dev/Boot/src/HEL/64X000/.gitkeep b/dev/Boot/src/HEL/64X000/.gitkeep new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dev/Boot/src/HEL/64X000/.gitkeep diff --git a/dev/Boot/src/HEL/64X000/Boot64x0.S b/dev/Boot/src/HEL/64X000/Boot64x0.S new file mode 100644 index 00000000..6fd087b6 --- /dev/null +++ b/dev/Boot/src/HEL/64X000/Boot64x0.S @@ -0,0 +1,35 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +.section .boot_hdr +.align 4 + +/* BootZ boot header begin for a 64x000 Kernel. */ + +boot_hdr_mag: + .ascii "CB" +boot_hdr_name: + // it has to match ten bytes. + .asciz "zbaosldr\0\0" +boot_hdr_ver: + .word 0x104 +boot_hdr_proc: + .long bootloader_start + +/* BootZ boot header end */ + +.extern bootloader_main +.extern bootloader_stack + +.globl bootloader_start +bootloader_start: + psh 4 /* real address of .Laddr */ + ldi 0,(bootloader_stack-bootloader_start)(4) /* stack address location */ + mv 19,0 /* use user defined stack */ + jrl + + bl bootloader_main + blr diff --git a/dev/Boot/src/HEL/AMD64/BootAPI.S b/dev/Boot/src/HEL/AMD64/BootAPI.S new file mode 100644 index 00000000..963ef46a --- /dev/null +++ b/dev/Boot/src/HEL/AMD64/BootAPI.S @@ -0,0 +1,60 @@ +.global rt_jump_to_address +.global rt_reset_hardware + +.text + +.intel_syntax noprefix + +/** + @brief this function setups a stack and then jumps to + a function */ +rt_jump_to_address: + mov rbx, rcx + mov rcx, rdx + push rbx + push rdx + mov rsp, r8 + push rax + jmp rbx + + pop rdx + pop rbx + pop rax + + ret + +rt_reset_hardware: + /* dont raise any interrupts. (except ofc NMIs.) */ + cli + /* remap PIC */ +wait_gate1: + in al,0x64 + and al,2 + jnz wait_gate1 + mov al,0x0D1 + out 0x64,al +wait_gate2: + in al,0x64 + and al,2 + jnz wait_gate2 + mov al,0x0FE + out 0x60,al + + /* trigger triple fault, by writing to cr4 */ + + mov rax, 0 + lidt [rax] + +reset_wait: + jmp reset_wait + +.global boot_write_cr3 +.global boot_read_cr3 + +boot_read_cr3: + mov rax, rax + ret + +boot_write_cr3: + mov cr3, rcx + ret diff --git a/dev/Boot/src/HEL/AMD64/BootATA.cc b/dev/Boot/src/HEL/AMD64/BootATA.cc new file mode 100644 index 00000000..ca0f79e6 --- /dev/null +++ b/dev/Boot/src/HEL/AMD64/BootATA.cc @@ -0,0 +1,283 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +/** + * @file BootATA.cc + * @author Amlal EL Mahrouss (amlalelmahrouss@icloud.com) + * @brief ATA driver. + * @version 0.1 + * @date 2024-02-02 + * + * @copyright Copyright (c) Amlal EL Mahrouss + * + */ + +#include <FirmwareKit/EFI.h> +#include <BootKit/BootKit.h> +#include <BootKit/HW/ATA.h> + +/// bugs: 0 + +using namespace Boot; + +#define kATADataLen 256 + +static Boolean kATADetected = false; +static Int32 kATADeviceType = kATADeviceCount; +static UInt16 kATAData[kATADataLen] = {0}; + +Boolean boot_ata_detected(Void); + +STATIC Boolean boot_ata_wait_io(UInt16 IO) +{ + for (int i = 0; i < 400; i++) + rt_in8(IO + ATA_REG_STATUS); + +ATAWaitForIO_Retry: + auto statRdy = rt_in8(IO + ATA_REG_STATUS); + + if ((statRdy & ATA_SR_BSY)) + goto ATAWaitForIO_Retry; + +ATAWaitForIO_Retry2: + statRdy = rt_in8(IO + ATA_REG_STATUS); + + if (statRdy & ATA_SR_ERR) + return false; + + if (!(statRdy & ATA_SR_DRDY)) + goto ATAWaitForIO_Retry2; + + return true; +} + +Void boot_ata_select(UInt16 Bus) +{ + if (Bus == ATA_PRIMARY_IO) + rt_out8(Bus + ATA_REG_HDDEVSEL, ATA_PRIMARY_SEL); + else + rt_out8(Bus + ATA_REG_HDDEVSEL, ATA_SECONDARY_SEL); +} + +Boolean boot_ata_init(UInt16 Bus, UInt8 Drive, UInt16& OutBus, UInt8& OutMaster) +{ + if (boot_ata_detected()) + return true; + + BTextWriter writer; + + UInt16 IO = Bus; + + boot_ata_select(IO); + + // Bus init, NEIN bit. + rt_out8(IO + ATA_REG_NEIN, 1); + + // identify until it's good. +ATAInit_Retry: + auto statRdy = rt_in8(IO + ATA_REG_STATUS); + + if (statRdy & ATA_SR_ERR) + { + writer.Write( + L"BootZ: ATA: Not an IDE based drive.\r"); + + return false; + } + + if ((statRdy & ATA_SR_BSY)) + goto ATAInit_Retry; + + rt_out8(IO + ATA_REG_COMMAND, ATA_CMD_IDENTIFY); + + /// fetch serial info + /// model, speed, number of sectors... + + boot_ata_wait_io(IO); + + for (SizeT indexData = 0ul; indexData < kATADataLen; ++indexData) + { + kATAData[indexData] = Kernel::HAL::rt_in16(IO + ATA_REG_DATA); + } + + OutBus = + (Bus == ATA_PRIMARY_IO) ? BootDeviceATA::kPrimary : BootDeviceATA::kSecondary; + + OutMaster = (Bus == ATA_PRIMARY_IO) ? ATA_MASTER : ATA_SLAVE; + + return true; +} + +Void boot_ata_read(UInt64 Lba, UInt16 IO, UInt8 Master, CharacterTypeUTF8* Buf, SizeT SectorSz, SizeT Size) +{ + Lba /= SectorSz; + + UInt8 Command = ((!Master) ? 0xE0 : 0xF0); + + boot_ata_wait_io(IO); + boot_ata_select(IO); + + rt_out8(IO + ATA_REG_HDDEVSEL, (Command) | (((Lba) >> 24) & 0x0F)); + + rt_out8(IO + ATA_REG_SEC_COUNT0, ((Size + SectorSz) / SectorSz)); + + rt_out8(IO + ATA_REG_LBA0, (Lba) & 0xFF); + rt_out8(IO + ATA_REG_LBA1, (Lba) >> 8); + rt_out8(IO + ATA_REG_LBA2, (Lba) >> 16); + rt_out8(IO + ATA_REG_LBA3, (Lba) >> 24); + + rt_out8(IO + ATA_REG_COMMAND, ATA_CMD_READ_PIO); + + boot_ata_wait_io(IO); + + for (SizeT IndexOff = 0; IndexOff < Size; ++IndexOff) + { + boot_ata_wait_io(IO); + Buf[IndexOff] = Kernel::HAL::rt_in16(IO + ATA_REG_DATA); + boot_ata_wait_io(IO); + } +} + +Void boot_ata_write(UInt64 Lba, UInt16 IO, UInt8 Master, CharacterTypeUTF8* Buf, SizeT SectorSz, SizeT Size) +{ + Lba /= SectorSz; + + UInt8 Command = ((!Master) ? 0xE0 : 0xF0); + + boot_ata_wait_io(IO); + boot_ata_select(IO); + + rt_out8(IO + ATA_REG_HDDEVSEL, (Command) | (((Lba) >> 24) & 0x0F)); + + rt_out8(IO + ATA_REG_SEC_COUNT0, ((Size + (SectorSz)) / SectorSz)); + + rt_out8(IO + ATA_REG_LBA0, (Lba) & 0xFF); + rt_out8(IO + ATA_REG_LBA1, (Lba) >> 8); + rt_out8(IO + ATA_REG_LBA2, (Lba) >> 16); + rt_out8(IO + ATA_REG_LBA3, (Lba) >> 24); + + rt_out8(IO + ATA_REG_COMMAND, ATA_CMD_WRITE_PIO); + + boot_ata_wait_io(IO); + + for (SizeT IndexOff = 0; IndexOff < Size; ++IndexOff) + { + boot_ata_wait_io(IO); + rt_out16(IO + ATA_REG_DATA, Buf[IndexOff]); + boot_ata_wait_io(IO); + } + + boot_ata_wait_io(IO); +} + +/// @check is ATA detected? +Boolean boot_ata_detected(Void) +{ + return kATADetected; +} + +/*** + * + * + * @brief ATA Device class. + * + * + */ + +/** + * @brief ATA Device constructor. + * @param void none. + */ +BootDeviceATA::BootDeviceATA() noexcept +{ + if (boot_ata_init(ATA_PRIMARY_IO, true, this->Leak().mBus, + this->Leak().mMaster) || + boot_ata_init(ATA_SECONDARY_IO, true, this->Leak().mBus, + this->Leak().mMaster)) + { + kATADetected = true; + } +} +/** + * @brief Is ATA detected? + */ +BootDeviceATA::operator bool() +{ + return boot_ata_detected(); +} + +/** + @brief Read Buf from disk + @param Sz Sector size + @param Buf buffer +*/ +BootDeviceATA& BootDeviceATA::Read(CharacterTypeUTF8* Buf, const SizeT& SectorSz) +{ + if (!boot_ata_detected()) + { + Leak().mErr = true; + return *this; + } + + this->Leak().mErr = false; + + if (!Buf || SectorSz < 1) + return *this; + + boot_ata_read(this->Leak().mBase, this->Leak().mBus, this->Leak().mMaster, + Buf, SectorSz, this->Leak().mSize); + + return *this; +} + +/** + @brief Write Buf into disk + @param Sz Sector size + @param Buf buffer +*/ +BootDeviceATA& BootDeviceATA::Write(CharacterTypeUTF8* Buf, const SizeT& SectorSz) +{ + if (!boot_ata_detected()) + { + Leak().mErr = true; + return *this; + } + + Leak().mErr = false; + + if (!Buf || SectorSz < 1 || this->Leak().mSize < 1) + { + Leak().mErr = true; + return *this; + } + + boot_ata_write(this->Leak().mBase, this->Leak().mBus, this->Leak().mMaster, + Buf, SectorSz, this->Leak().mSize); + + return *this; +} + +/** + * @brief ATA trait getter. + * @return BootDeviceATA::ATATrait& the drive config. + */ +BootDeviceATA::ATATrait& BootDeviceATA::Leak() +{ + return mTrait; +} + +/*** + @brief Getter, gets the number of sectors inside the drive. +*/ +SizeT BootDeviceATA::GetSectorsCount() noexcept +{ + return (kATAData[61] << 16) | kATAData[60]; +} + +SizeT BootDeviceATA::GetDiskSize() noexcept +{ + return this->GetSectorsCount() * BootDeviceATA::kSectorSize; +} diff --git a/dev/Boot/src/HEL/AMD64/BootPlatform.cc b/dev/Boot/src/HEL/AMD64/BootPlatform.cc new file mode 100644 index 00000000..5cf6aae3 --- /dev/null +++ b/dev/Boot/src/HEL/AMD64/BootPlatform.cc @@ -0,0 +1,106 @@ + +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#include <BootKit/Platform.h> +#include <BootKit/Protocol.h> +#include <BootKit/BootKit.h> + +#ifdef __BOOTLDR_STANDALONE__ + +using namespace Boot; + +EXTERN_C void rt_hlt() +{ + asm volatile("hlt"); +} + +EXTERN_C void rt_cli() +{ + asm volatile("cli"); +} + +EXTERN_C void rt_sti() +{ + asm volatile("sti"); +} + +EXTERN_C void rt_cld() +{ + asm volatile("cld"); +} + +EXTERN_C void rt_std() +{ + asm volatile("std"); +} + +EXTERN_C void rt_out8(UInt16 port, UInt8 value) +{ + asm volatile("outb %%al, %1" + : + : "a"(value), "Nd"(port) + : "memory"); +} + +EXTERN_C void rt_out16(UInt16 port, UInt16 value) +{ + asm volatile("outw %%ax, %1" + : + : "a"(value), "Nd"(port) + : "memory"); +} + +EXTERN_C void rt_out32(UInt16 port, UInt32 value) +{ + asm volatile("outl %%eax, %1" + : + : "a"(value), "Nd"(port) + : "memory"); +} + +EXTERN_C UInt8 rt_in8(UInt16 port) +{ + UInt8 value; + asm volatile("inb %1, %%al" + : "=a"(value) + : "Nd"(port) + : "memory"); + + return value; +} + +EXTERN_C UInt16 rt_in16(UInt16 port) +{ + UInt16 value; + asm volatile("inw %%dx, %%ax" + : "=a"(value) + : "d"(port)); + + return value; +} + +EXTERN_C UInt32 rt_in32(UInt16 port) +{ + UInt32 value; + asm volatile("inl %1, %%eax" + : "=a"(value) + : "Nd"(port) + : "memory"); + + return value; +} + +#else + +#include <HALKit/AMD64/Processor.h> + +void rt_hlt() +{ + Kernel::HAL::rt_halt(); +} + +#endif // __BOOTLDR_STANDALONE__ diff --git a/dev/Boot/src/HEL/AMD64/BootSATA.cc b/dev/Boot/src/HEL/AMD64/BootSATA.cc new file mode 100644 index 00000000..c5de670f --- /dev/null +++ b/dev/Boot/src/HEL/AMD64/BootSATA.cc @@ -0,0 +1,20 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +/** + * @file BootAHCI.cc + * @author Amlal EL Mahrouss (amlalelmahrouss@icloud.com) + * @brief SATA support for BootZ. + * @version 0.1 + * @date 2024-02-02 + * + * @copyright Copyright (c) Amlal EL Mahrouss + * + */ + +#include <BootKit/Platform.h> +#include <BootKit/Protocol.h> +#include <BootKit/HW/SATA.h> diff --git a/dev/Boot/src/HEL/AMD64/EFIBootStartup.cc b/dev/Boot/src/HEL/AMD64/EFIBootStartup.cc new file mode 100644 index 00000000..81d2d076 --- /dev/null +++ b/dev/Boot/src/HEL/AMD64/EFIBootStartup.cc @@ -0,0 +1,306 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#include <BootKit/BootKit.h> +#include <Mod/CoreGfx/FBMgr.h> +#include <Mod/CoreGfx/TextMgr.h> +#include <FirmwareKit/EFI.h> +#include <FirmwareKit/EFI/API.h> +#include <FirmwareKit/Handover.h> +#include <KernelKit/MSDOS.h> +#include <KernelKit/PE.h> +#include <KernelKit/PEF.h> +#include <NewKit/Macros.h> +#include <NewKit/Ref.h> +#include <BootKit/BootThread.h> +#include <Mod/CoreGfx/FBMgr.h> + +// Makes the compiler shut up. +#ifndef kMachineModel +#define kMachineModel "ZkaOS" +#endif // !kMachineModel + +#ifndef kExpectedWidth +#define kExpectedWidth (1280) +#endif + +#ifndef kExpectedHeight +#define kExpectedHeight (720) +#endif + +/** Graphics related. */ + +STATIC EfiGraphicsOutputProtocol* kGop = nullptr; +STATIC UInt16 kGopStride = 0U; +STATIC EfiGUID kGopGuid; + +EXTERN_C Void rt_reset_hardware(); + +EXTERN EfiBootServices* BS; + +/** + @brief Finds and stores the GOP object. +*/ +STATIC Bool boot_init_fb() noexcept +{ + kGopGuid = EfiGUID(EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID); + kGop = nullptr; + + if (BS->LocateProtocol(&kGopGuid, nullptr, (VoidPtr*)&kGop) != kEfiOk) + return No; + + kGopStride = 4; + + for (SizeT i = 0; i < kGop->Mode->MaxMode; ++i) + { + EfiGraphicsOutputProtocolModeInformation* infoPtr = nullptr; + UInt32 sz = 0U; + + kGop->QueryMode(kGop, i, &sz, &infoPtr); + + if (infoPtr->HorizontalResolution == kExpectedWidth && + infoPtr->VerticalResolution == kExpectedHeight) + { + kGop->SetMode(kGop, i); + return Yes; + } + } + + return No; +} + +EXTERN EfiBootServices* BS; + +/// @brief Main EFI entrypoint. +/// @param image_handle Handle of this image. +/// @param sys_table The system table of it. +/// @return nothing, never returns. +EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr image_handle, + EfiSystemTable* sys_table) +{ + InitEFI(sys_table); ///! Init the EFI library. + + HEL::BootInfoHeader* handover_hdr = + new HEL::BootInfoHeader(); + + UInt32 map_key = 0; + UInt32 size_struct_ptr = sizeof(EfiMemoryDescriptor); + EfiMemoryDescriptor* struct_ptr = nullptr; + UInt32 sz_desc = sizeof(EfiMemoryDescriptor); + UInt32 rev_desc = 0; + +#ifdef ZBA_USE_FB + if (!boot_init_fb()) + return 1; ///! Init the GOP. + + for (SizeT index_vt = 0; index_vt < sys_table->NumberOfTableEntries; + ++index_vt) + { + Char* vendor_table = reinterpret_cast<Char*>( + sys_table->ConfigurationTable[index_vt].VendorTable); + + // ACPI's 'RSD PTR', which contains the ACPI SDT (MADT, FACP...) + if (vendor_table[0] == 'R' && vendor_table[1] == 'S' && + vendor_table[2] == 'D' && vendor_table[3] == ' ' && + vendor_table[4] == 'P' && vendor_table[5] == 'T' && + vendor_table[6] == 'R' && vendor_table[7] == ' ') + { + handover_hdr->f_HardwareTables.f_VendorPtr = (VoidPtr)vendor_table; + break; + } + } + + // ------------------------------------------ // + // draw background color. + // ------------------------------------------ // + + handover_hdr->f_GOP.f_The = kGop->Mode->FrameBufferBase; + handover_hdr->f_GOP.f_Width = kGop->Mode->Info->VerticalResolution; + handover_hdr->f_GOP.f_Height = kGop->Mode->Info->HorizontalResolution; + handover_hdr->f_GOP.f_PixelPerLine = kGop->Mode->Info->PixelsPerScanLine; + handover_hdr->f_GOP.f_PixelFormat = kGop->Mode->Info->PixelFormat; + handover_hdr->f_GOP.f_Size = kGop->Mode->FrameBufferSize; +#endif // ZBA_USE_FB + + // ------------------------------------------- // + // Grab MP services, extended to runtime. // + // ------------------------------------------- // + + EfiGUID guid_mp = EfiGUID(EFI_MP_SERVICES_PROTOCOL_GUID); + EfiMpServicesProtocol* mp = nullptr; + + BS->LocateProtocol(&guid_mp, nullptr, reinterpret_cast<VoidPtr*>(&mp)); + + handover_hdr->f_HardwareTables.f_MpPtr = reinterpret_cast<VoidPtr>(mp); + + kHandoverHeader = handover_hdr; + + fb_init(); + + FB::fb_clear_video(); + + FBDrawBitMapInRegion(zka_disk, ZKA_DISK_WIDTH, ZKA_DISK_HEIGHT, (kHandoverHeader->f_GOP.f_Width - ZKA_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_DISK_HEIGHT) / 2); + + fb_clear(); + + UInt32 cnt_enabled = 0; + UInt32 cnt_disabled = 0; + + if (mp) + { + mp->GetNumberOfProcessors(mp, &cnt_disabled, &cnt_enabled); + handover_hdr->f_HardwareTables.f_MultiProcessingEnabled = cnt_enabled > 1; + } + else + { + handover_hdr->f_HardwareTables.f_MultiProcessingEnabled = NO; + } + // Fill handover header now. + + // ---------------------------------------------------- // + // The following checks for an exisiting partition + // inside the disk, if it doesn't have one, + // format the disk. + // ---------------------------------------------------- // + + BS->GetMemoryMap(&size_struct_ptr, struct_ptr, &map_key, &sz_desc, &rev_desc); + + struct_ptr = new EfiMemoryDescriptor[sz_desc]; + + BS->GetMemoryMap(&size_struct_ptr, struct_ptr, &map_key, &sz_desc, &rev_desc); + + auto kDefaultMemoryMap = 0; // Grab any usable entries. + + //-----------------------------------------------------------// + // A simple loop which finds a usable memory region for us. + //-----------------------------------------------------------// + + SizeT lookup_index = 0UL; + + for (; struct_ptr[lookup_index].Kind != EfiMemoryType::EfiConventionalMemory; ++lookup_index) + { + ZKA_UNUSED(0); + } + + kDefaultMemoryMap = lookup_index; + + //-------------------------------------------------------------// + // Update handover file specific table and phyiscal start field. + //-------------------------------------------------------------// + + handover_hdr->f_BitMapStart = nullptr; /* Start of bitmap. */ + handover_hdr->f_BitMapSize = kHandoverBitMapSz; /* Size of bitmap. */ + + while (BS->AllocatePool(EfiLoaderData, handover_hdr->f_BitMapSize, &handover_hdr->f_BitMapStart) != kEfiOk) + { + if (handover_hdr->f_BitMapStart) + { + BS->FreePool(handover_hdr->f_BitMapStart); + handover_hdr->f_BitMapStart = nullptr; + } + } + + handover_hdr->f_FirmwareCustomTables[0] = (VoidPtr)BS; + handover_hdr->f_FirmwareCustomTables[1] = (VoidPtr)ST; + + Boot::BFileReader reader_syschk(L"syschk.sys", image_handle); + reader_syschk.ReadAll(0); + + Boot::BootThread* syschk_thread = nullptr; + + // ------------------------------------------ // + // If we succeed in reading the blob, then execute it. + // ------------------------------------------ // + + if (reader_syschk.Blob()) + { + syschk_thread = new Boot::BootThread(reader_syschk.Blob()); + syschk_thread->SetName("BootZ: System Recovery Check"); + } + + Boot::BDiskFormatFactory<BootDeviceATA> partition_factory; + + if (syschk_thread->Start(handover_hdr, NO) != kEfiOk) + { + if (partition_factory.IsPartitionValid() == NO) + { + Boot::BDiskFormatFactory<BootDeviceATA>::BFileDescriptor root{}; + + root.fFileName[0] = kNeFSRoot[0]; + root.fFileName[1] = 0; + + root.fKind = kNeFSCatalogKindDir; + + const auto kFSName = "SSD"; + + partition_factory.Format(kFSName, &root, 1); + + fb_init(); + + FB::fb_clear_video(); + + FBDrawBitMapInRegion(zka_has_disk, ZKA_HAS_DISK_WIDTH, ZKA_HAS_DISK_HEIGHT, (kHandoverHeader->f_GOP.f_Width - ZKA_HAS_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_HAS_DISK_HEIGHT) / 2); + + fb_clear(); + } + } + + // ------------------------------------------ // + // null these fields, to avoid being reused later. + // ------------------------------------------ // + + handover_hdr->f_FirmwareCustomTables[0] = nullptr; + handover_hdr->f_FirmwareCustomTables[1] = nullptr; + + handover_hdr->f_FirmwareVendorLen = Boot::BStrLen(sys_table->FirmwareVendor); + + handover_hdr->f_Magic = kHandoverMagic; + handover_hdr->f_Version = kHandoverVersion; + + // Provide fimware vendor name. + + Boot::BCopyMem(handover_hdr->f_FirmwareVendorName, sys_table->FirmwareVendor, + handover_hdr->f_FirmwareVendorLen); + + handover_hdr->f_FirmwareVendorLen = Boot::BStrLen(sys_table->FirmwareVendor); + + // Assign to global 'kHandoverHeader'. + + Boot::BFileReader reader_kernel(L"minoskrnl.exe", image_handle); + + reader_kernel.ReadAll(0); + + Boot::BootThread* kernel_thread = nullptr; + + // ------------------------------------------ // + // If we succeed in reading the blob, then execute it. + // ------------------------------------------ // + + if (reader_kernel.Blob()) + { + kernel_thread = new Boot::BootThread(reader_kernel.Blob()); + kernel_thread->SetName("BootZ: MicroKernel."); + + handover_hdr->f_KernelImage = reader_kernel.Blob(); + } + else + { + fb_init(); + FBDrawBitMapInRegion(zka_no_disk, ZKA_NO_DISK_WIDTH, ZKA_NO_DISK_HEIGHT, (kHandoverHeader->f_GOP.f_Width - ZKA_NO_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_NO_DISK_HEIGHT) / 2); + + EFI::Stop(); + } + + EFI::ExitBootServices(map_key, image_handle); + + // ---------------------------------------------------- // + // Finally load the OS kernel. + // ---------------------------------------------------- // + + kernel_thread->Start(handover_hdr, YES); + + CANT_REACH(); +} diff --git a/dev/Boot/src/HEL/ARM64/.gitkeep b/dev/Boot/src/HEL/ARM64/.gitkeep new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dev/Boot/src/HEL/ARM64/.gitkeep diff --git a/dev/Boot/src/HEL/ARM64/BootAPI.S b/dev/Boot/src/HEL/ARM64/BootAPI.S new file mode 100644 index 00000000..a60ad218 --- /dev/null +++ b/dev/Boot/src/HEL/ARM64/BootAPI.S @@ -0,0 +1,12 @@ +.global rt_jump_to_address + +.text + +/** + @brief this function setups a stack and then jumps to + a function */ +rt_jump_to_address: + mov x19, x0 + mov sp, x2 + blr x19 + diff --git a/dev/Boot/src/HEL/ARM64/BootPlatform.cc b/dev/Boot/src/HEL/ARM64/BootPlatform.cc new file mode 100644 index 00000000..8025e1e2 --- /dev/null +++ b/dev/Boot/src/HEL/ARM64/BootPlatform.cc @@ -0,0 +1,37 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#include <BootKit/Platform.h> +#include <BootKit/Protocol.h> +#include <BootKit/BootKit.h> + +#ifdef __BOOTLDR_STANDALONE__ + +using namespace Boot; + +EXTERN_C void rt_hlt() +{ + while (Yes) + ; +} + +EXTERN_C void rt_cli() +{ +} + +EXTERN_C void rt_sti() +{ +} + +EXTERN_C void rt_cld() +{ +} + +EXTERN_C void rt_std() +{ +} + +#endif // __BOOTLDR_STANDALONE__ diff --git a/dev/Boot/src/HEL/ARM64/CoreBootStartup.S b/dev/Boot/src/HEL/ARM64/CoreBootStartup.S new file mode 100644 index 00000000..71777528 --- /dev/null +++ b/dev/Boot/src/HEL/ARM64/CoreBootStartup.S @@ -0,0 +1,40 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#ifdef __ZKA_COREBOOT__ + +.section .boot_hdr +.align 4 + +/* BootZ boot header begin */ + +boot_hdr_mag: + .ascii "CB" +boot_hdr_name: + // it has to match ten bytes. + .asciz "zbaosldr\0\0" +boot_hdr_ver: + .word 0x104 +boot_hdr_proc: + .long bootloader_start + +/* BootZ boot header end */ + +.extern bootloader_main +.extern bootloader_stack + +.globl bootloader_start +bootloader_start: + adr x0, bootloader_stack + ldr x1, =bootloader_start + sub x0, x0, x1 + ldr x0, [x0] + mov sp, x0 + + bl bootloader_main + ret + +#endif // __ZKA_COREBOOT__
\ No newline at end of file diff --git a/dev/Boot/src/HEL/ARM64/EFIBootStartup.cc b/dev/Boot/src/HEL/ARM64/EFIBootStartup.cc new file mode 100644 index 00000000..76010d21 --- /dev/null +++ b/dev/Boot/src/HEL/ARM64/EFIBootStartup.cc @@ -0,0 +1,220 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#include <BootKit/BootKit.h> +#include <Mod/CoreGfx/FBMgr.h> +#include <Mod/CoreGfx/TextMgr.h> +#include <FirmwareKit/EFI.h> +#include <FirmwareKit/EFI/API.h> +#include <FirmwareKit/Handover.h> +#include <KernelKit/MSDOS.h> +#include <KernelKit/PE.h> +#include <KernelKit/PEF.h> +#include <NewKit/Macros.h> +#include <NewKit/Ref.h> +#include <BootKit/BootThread.h> +#include <Mod/CoreGfx/FBMgr.h> + +// Makes the compiler shut up. +#ifndef kMachineModel +#define kMachineModel "ZkaOS" +#endif // !kMachineModel + +#ifndef kExpectedWidth +#define kExpectedWidth (1920) +#endif + +#ifndef kExpectedHeight +#define kExpectedHeight (1080) +#endif + +/** Graphics related. */ + +STATIC EfiGraphicsOutputProtocol* kGop = nullptr; +STATIC UInt16 kGopStride = 0U; +STATIC EfiGUID kGopGuid; + +EXTERN_C Void rt_reset_hardware(); + +EXTERN EfiBootServices* BS; + +/** + @brief Finds and stores the GOP object. +*/ +STATIC Bool boot_init_fb() noexcept +{ + kGopGuid = EfiGUID(EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID); + kGop = nullptr; + + if (BS->LocateProtocol(&kGopGuid, nullptr, (VoidPtr*)&kGop) != kEfiOk) + return No; + + kGopStride = 4; + + for (SizeT i = 0; i < kGop->Mode->MaxMode; ++i) + { + EfiGraphicsOutputProtocolModeInformation* infoPtr = nullptr; + UInt32 sz = 0U; + + kGop->QueryMode(kGop, i, &sz, &infoPtr); + + if (infoPtr->HorizontalResolution == kExpectedWidth && + infoPtr->VerticalResolution == kExpectedHeight) + { + kGop->SetMode(kGop, i); + return Yes; + } + } + + return No; +} + +EXTERN EfiBootServices* BS; + +/// @brief Main EFI entrypoint. +/// @param image_handle Handle of this image. +/// @param sys_table The system table of it. +/// @return nothing, never returns. +EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr image_handle, + EfiSystemTable* sys_table) +{ + InitEFI(sys_table); ///! Init the EFI library. + + HEL::BootInfoHeader* handover_hdr = + new HEL::BootInfoHeader(); + + UInt32 map_key = 0; + UInt32 size_struct_ptr = sizeof(EfiMemoryDescriptor); + EfiMemoryDescriptor* struct_ptr = nullptr; + UInt32 sz_desc = sizeof(EfiMemoryDescriptor); + UInt32 rev_desc = 0; + +#ifdef ZBA_USE_FB + if (!boot_init_fb()) + return 1; ///! Init the GOP. + + for (SizeT index_vt = 0; index_vt < sys_table->NumberOfTableEntries; + ++index_vt) + { + Char* vendor_table = reinterpret_cast<Char*>( + sys_table->ConfigurationTable[index_vt].VendorTable); + + // ACPI's 'RSD PTR', which contains the ACPI SDT (MADT, FACP...) + if (vendor_table[0] == 'R' && vendor_table[1] == 'S' && + vendor_table[2] == 'D' && vendor_table[3] == ' ' && + vendor_table[4] == 'P' && vendor_table[5] == 'T' && + vendor_table[6] == 'R' && vendor_table[7] == ' ') + { + handover_hdr->f_HardwareTables.f_VendorPtr = (VoidPtr)vendor_table; + break; + } + } + + // ------------------------------------------ // + // draw background color. + // ------------------------------------------ // + + handover_hdr->f_GOP.f_The = kGop->Mode->FrameBufferBase; + handover_hdr->f_GOP.f_Width = kGop->Mode->Info->VerticalResolution; + handover_hdr->f_GOP.f_Height = kGop->Mode->Info->HorizontalResolution; + handover_hdr->f_GOP.f_PixelPerLine = kGop->Mode->Info->PixelsPerScanLine; + handover_hdr->f_GOP.f_PixelFormat = kGop->Mode->Info->PixelFormat; + handover_hdr->f_GOP.f_Size = kGop->Mode->FrameBufferSize; +#endif // ZBA_USE_FB + + // ------------------------------------------- // + // Grab MP services, extended to runtime. // + // ------------------------------------------- // + + EfiGUID guid_mp = EfiGUID(EFI_MP_SERVICES_PROTOCOL_GUID); + EfiMpServicesProtocol* mp = nullptr; + + BS->LocateProtocol(&guid_mp, nullptr, reinterpret_cast<VoidPtr*>(&mp)); + + handover_hdr->f_HardwareTables.f_MpPtr = reinterpret_cast<VoidPtr>(mp); + + kHandoverHeader = handover_hdr; + + fb_init(); + + FB::fb_clear_video(); + + FBDrawBitMapInRegion(zka_disk, ZKA_DISK_WIDTH, ZKA_DISK_HEIGHT, (kHandoverHeader->f_GOP.f_Width - ZKA_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_DISK_HEIGHT) / 2); + + fb_clear(); + + UInt32 cnt_enabled = 0; + UInt32 cnt_disabled = 0; + + if (mp) + { + mp->GetNumberOfProcessors(mp, &cnt_disabled, &cnt_enabled); + handover_hdr->f_HardwareTables.f_MultiProcessingEnabled = cnt_enabled > 1; + } + else + { + handover_hdr->f_HardwareTables.f_MultiProcessingEnabled = NO; + } + + //-------------------------------------------------------------// + // Update handover file specific table and phyiscal start field. + //-------------------------------------------------------------// + + handover_hdr->f_BitMapStart = nullptr; /* Start of bitmap. */ + handover_hdr->f_BitMapSize = kHandoverBitMapSz; /* Size of bitmap. */ + + while (BS->AllocatePool(EfiLoaderData, handover_hdr->f_BitMapSize, &handover_hdr->f_BitMapStart) != kEfiOk) + { + if (handover_hdr->f_BitMapStart) + { + BS->FreePool(handover_hdr->f_BitMapStart); + handover_hdr->f_BitMapStart = nullptr; + } + } + + // ------------------------------------------ // + // null these fields, to avoid being reused later. + // ------------------------------------------ // + + handover_hdr->f_FirmwareCustomTables[0] = nullptr; + handover_hdr->f_FirmwareCustomTables[1] = nullptr; + + handover_hdr->f_FirmwareVendorLen = Boot::BStrLen(sys_table->FirmwareVendor); + + handover_hdr->f_Magic = kHandoverMagic; + handover_hdr->f_Version = kHandoverVersion; + + // Provide fimware vendor name. + + Boot::BCopyMem(handover_hdr->f_FirmwareVendorName, sys_table->FirmwareVendor, + handover_hdr->f_FirmwareVendorLen); + + handover_hdr->f_FirmwareVendorLen = Boot::BStrLen(sys_table->FirmwareVendor); + + // Assign to global 'kHandoverHeader'. + + Boot::BFileReader reader_kernel(L"minoskrnl.exe", image_handle); + + reader_kernel.ReadAll(0); + + // ------------------------------------------ // + // If we succeed in reading the blob, then execute it. + // ------------------------------------------ // + + if (reader_kernel.Blob()) + { + auto kernel_thread = Boot::BootThread(reader_kernel.Blob()); + kernel_thread.SetName("BootZ: MicroKernel."); + + handover_hdr->f_KernelImage = reader_kernel.Blob(); + + EFI::ExitBootServices(map_key, image_handle); + + kernel_thread.Start(handover_hdr, YES); + } + + CANT_REACH(); +} diff --git a/dev/Boot/src/HEL/POWER/.gitkeep b/dev/Boot/src/HEL/POWER/.gitkeep new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dev/Boot/src/HEL/POWER/.gitkeep diff --git a/dev/Boot/src/HEL/POWER/CoreBootStartup.S b/dev/Boot/src/HEL/POWER/CoreBootStartup.S new file mode 100644 index 00000000..02048cfa --- /dev/null +++ b/dev/Boot/src/HEL/POWER/CoreBootStartup.S @@ -0,0 +1,34 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +.section .boot_hdr +.align 4 + +/* BootZ boot header begin */ + +boot_hdr_mag: + .ascii "CB" +boot_hdr_name: + // it has to match ten bytes. + .asciz "zbaosldr\0\0" +boot_hdr_ver: + .word 0x104 +boot_hdr_proc: + .long bootloader_start + +/* BootZ boot header end */ + +.extern bootloader_main +.extern bootloader_stack + +.globl bootloader_start +bootloader_start: + mflr 4 /* real address of .Laddr */ + lwz 0,(bootloader_stack-bootloader_start)(4) /* stack address location */ + mr 1,0 /* use user defined stack */ + + bl bootloader_main + blr diff --git a/dev/Boot/src/New+Delete.cc b/dev/Boot/src/New+Delete.cc new file mode 100644 index 00000000..48196a6b --- /dev/null +++ b/dev/Boot/src/New+Delete.cc @@ -0,0 +1,60 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#include <BootKit/Platform.h> +#include <BootKit/Protocol.h> +#include <BootKit/BootKit.h> + +#ifdef __BOOTLDR_STANDALONE__ +EXTERN EfiBootServices* BS; + +/// @brief Allocates a new object. +/// @param sz the size. +/// @return +void* operator new(size_t sz) +{ + void* buf = nullptr; + + while (BS->AllocatePool(EfiMemoryType::EfiLoaderData, sz, &buf) == kBufferTooSmall) + BS->FreePool(buf); + + return buf; +} + +/// @brief Allocates a new object. +/// @param sz the size. +/// @return +void* operator new[](size_t sz) +{ + void* buf = nullptr; + BS->AllocatePool(EfiMemoryType::EfiLoaderData, sz, &buf); + + return buf; +} + +/// @brief Deletes the object. +/// @param buf the object. +void operator delete(void* buf) +{ + BS->FreePool(buf); +} + +/// @brief Deletes the object. +/// @param buf the object. +void operator delete[](void* buf) +{ + BS->FreePool(buf); +} + +/// @brief Deletes the object (array specific). +/// @param buf the object. +/// @param size it's size. +void operator delete(void* buf, size_t size) +{ + BS->FreePool(buf); +} + +#endif // __BOOTLDR_STANDALONE__ diff --git a/dev/Boot/src/Root/EFI/STARTUP.NSH b/dev/Boot/src/Root/EFI/STARTUP.NSH new file mode 100644 index 00000000..2cf25f23 --- /dev/null +++ b/dev/Boot/src/Root/EFI/STARTUP.NSH @@ -0,0 +1,2 @@ +fs0: +BOOT\BOOTAA64.EFI |
