summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal <amlalelmahrouss@icloud.com>2024-04-22 08:37:14 +0000
committerAmlal <amlalelmahrouss@icloud.com>2024-04-22 08:37:14 +0000
commit09e1c9738bc5dce28a6e181ebc585f0dea01f109 (patch)
tree2df231f8601402147514572120f762c69bf5c84a
parent41cc598c501ee190385c041b2149eae228b24741 (diff)
parent76c0c6b21532aee82df5bd62cd886bc63d933899 (diff)
Merged in MHR-5 (pull request #1)
MHR-5
-rw-r--r--Meta/Kernel.svg36
-rw-r--r--Meta/NewKernel.svg12
-rw-r--r--Private/Applications/.gitkeep (renamed from Private/HALKit/PowerPC/.gitkeep)0
-rw-r--r--Private/ArchKit/ArchKit.hpp2
-rw-r--r--Private/Builtins/Toolbox/Rsrc/Cursor.rsrc46
-rw-r--r--Private/Builtins/Toolbox/Rsrc/Splash.rsrc74
-rw-r--r--Private/Builtins/Toolbox/Toolbox.hxx38
-rw-r--r--Private/CFKit/Property.hpp1
-rw-r--r--Private/Documentation/Spec.md16
-rw-r--r--Private/DriverKit/KernelDev.c31
-rw-r--r--Private/DriverKit/KernelDev.h28
-rw-r--r--Private/DriverKit/KernelDispatchCall.S21
-rw-r--r--Private/DriverKit/KernelPrint.c28
-rw-r--r--Private/DriverKit/KernelPrint.h18
-rw-r--r--Private/DriverKit/KernelStd.c24
-rw-r--r--Private/DriverKit/KernelStd.h22
-rw-r--r--Private/DriverKit/KernelStdCxx.cc24
-rw-r--r--Private/DriverKit/KernelString.c30
-rw-r--r--Private/DriverKit/KernelString.h16
-rw-r--r--Private/Drivers/.gitkeep (renamed from Private/HALKit/PowerPC/APM/.gitkeep)0
-rw-r--r--Private/Drivers/Bonjour/Bonjour.c18
-rw-r--r--Private/Drivers/Bonjour/DriverRsrc.rsrc25
-rw-r--r--Private/Drivers/Bonjour/x86_64.mk52
-rw-r--r--Private/Drivers/MahroussUpdate/DriverRsrc.rsrc25
-rw-r--r--Private/Drivers/MahroussUpdate/MahroussUpdate.cc24
-rw-r--r--Private/Drivers/MahroussUpdate/MahroussUpdate.hxx33
-rw-r--r--Private/Drivers/MahroussUpdate/x86_64.mk53
-rw-r--r--Private/Drivers/SampleDriver/DriverRsrc.rsrc25
-rw-r--r--Private/Drivers/SampleDriver/SampleDriver.c21
-rw-r--r--Private/Drivers/SampleDriver/x86_64.mk52
-rw-r--r--Private/FSKit/NewFS.hxx9
-rw-r--r--Private/FirmwareKit/CoreBoot/.gitkeep (renamed from Private/HALKit/PowerPC/PCI/.gitkeep)0
-rw-r--r--Private/FirmwareKit/EFI/API.hxx4
-rw-r--r--Private/FirmwareKit/EFI/EFI.hxx2
-rw-r--r--Private/FirmwareKit/EPM.hxx2
-rw-r--r--Private/HALKit/64x0/HalVirtualMemory.cxx6
-rw-r--r--Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp32
-rw-r--r--Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp4
-rw-r--r--Private/HALKit/AMD64/HalHardwareMP.cpp10
-rw-r--r--Private/HALKit/AMD64/HalKernelMain.cxx14
-rw-r--r--Private/HALKit/AMD64/Processor.hpp10
-rw-r--r--Private/HALKit/AMD64/Storage/ATA-PIO.cxx16
-rw-r--r--Private/HALKit/POWER/.gitkeep (renamed from Private/NewBoot/Source/CDROM/.gitkeep)0
-rw-r--r--Private/HALKit/POWER/APM/.gitkeep (renamed from Private/NewBoot/Source/CDROM/EFI/BOOT/.gitkeep)0
-rw-r--r--Private/HALKit/POWER/HalContextSwitchPowerPC.s28
-rw-r--r--Private/HALKit/POWER/HalHardware.cxx (renamed from Private/HALKit/PowerPC/HalHardware.cxx)2
-rw-r--r--Private/HALKit/POWER/HalHart.cxx (renamed from Private/HALKit/PowerPC/HalSMPManager.cxx)5
-rw-r--r--Private/HALKit/POWER/HalSerialPort.cxx (renamed from Private/HALKit/PowerPC/HalSerialPort.cxx)6
-rw-r--r--Private/HALKit/POWER/HalStartSequence.s (renamed from Private/Servers/CoreDisplay/Headers/CDBitBlt.h)12
-rw-r--r--Private/HALKit/POWER/HalThread.cxx (renamed from Private/HALKit/PowerPC/HalThread.cxx)2
-rw-r--r--Private/HALKit/POWER/HalVirtualMemory.cxx (renamed from Private/HALKit/PowerPC/HalVirtualMemory.cxx)9
-rw-r--r--Private/HALKit/POWER/Hart.hxx27
-rw-r--r--Private/HALKit/POWER/MBCI/.gitkeep (renamed from Private/NewBoot/Source/HEL/PowerPC/.gitkeep)0
-rw-r--r--Private/HALKit/POWER/MBCI/HalMBCIHost.cxx (renamed from Private/Servers/CoreDisplay/Headers/CDServerStartup.h)6
-rw-r--r--Private/HALKit/POWER/Processor.hpp (renamed from Private/HALKit/PowerPC/Processor.hpp)20
-rw-r--r--Private/HALKit/POWER/ppc-cpu.h (renamed from Private/HALKit/PowerPC/ppc-cpu.h)8
-rw-r--r--Private/HALKit/POWER/ppc-mmu.h (renamed from Private/HALKit/PowerPC/ppc-mmu.h)11
-rw-r--r--Private/HALKit/PowerPC/HalCoreContextSwitchPowerPC.s30
-rw-r--r--Private/HALKit/PowerPC/HalStartSequence.s6
-rw-r--r--Private/HALKit/PowerPC/Hart.hxx20
-rw-r--r--Private/HALKit/PowerPC/PCI/HalDevice.cxx1
-rw-r--r--Private/KernelKit/DriveManager.hxx10
-rw-r--r--Private/KernelKit/HError.hpp1
-rw-r--r--Private/KernelKit/KernelHeap.hpp4
-rw-r--r--Private/KernelKit/PEFCodeManager.hxx2
-rw-r--r--Private/KernelKit/SMPManager.hpp2
-rw-r--r--Private/KernelKit/XCOFF.hxx6
-rw-r--r--Private/KernelRsrc.rsrc4
-rw-r--r--Private/NewBoot/BootKit/BootKit.hxx147
-rw-r--r--Private/NewBoot/BootKit/Rsrc/Driver.rsrc144
-rw-r--r--Private/NewBoot/Source/BootloaderRsrc.rsrc4
-rw-r--r--Private/NewBoot/Source/CDROM/.NEWDEV2
-rw-r--r--Private/NewBoot/Source/CDROM/SplashScreen.fmt6
-rw-r--r--Private/NewBoot/Source/HEL/AMD64/BootATA.cxx14
-rw-r--r--Private/NewBoot/Source/HEL/AMD64/BootEPM.cxx119
-rw-r--r--Private/NewBoot/Source/HEL/AMD64/BootFileReader.cxx58
-rw-r--r--Private/NewBoot/Source/HEL/AMD64/BootMain.cxx182
-rw-r--r--Private/NewBoot/Source/HEL/AMD64/BootPlatform.cxx33
-rw-r--r--Private/NewBoot/Source/HEL/AMD64/BootTextWriter.cxx19
-rw-r--r--Private/NewBoot/Source/HEL/POWER/.gitkeep (renamed from Private/Servers/.gitkeep)0
-rw-r--r--Private/NewBoot/Source/HEL/POWER/BootCoreBoot.S34
-rw-r--r--Private/NewBoot/Source/HEL/POWER/BootEPM.cxx (renamed from Private/NewBoot/Source/HEL/PowerPC/BootEPM.cxx)10
-rw-r--r--Private/NewBoot/Source/HEL/PowerPC/BootPowerPC.S22
-rw-r--r--Private/NewBoot/Source/makefile35
-rw-r--r--Private/NewKit/Application.hxx10
-rw-r--r--Private/Root/Boot/Icons/bonjour-logo.icobin0 -> 108478 bytes
-rw-r--r--Private/Root/Boot/Icons/boot-logo.icobin0 -> 108478 bytes
-rw-r--r--Private/Root/Boot/Icons/driver-logo.icobin0 -> 108478 bytes
-rw-r--r--Private/Root/Boot/Icons/kernel-logo.icobin0 -> 108478 bytes
-rw-r--r--Private/Root/Boot/Icons/settings-icon.icobin0 -> 108478 bytes
-rw-r--r--Private/Root/Boot/Icons/update-logo.icobin0 -> 108478 bytes
-rw-r--r--Private/Root/Boot/boot-logo.icobin2238 -> 0 bytes
-rw-r--r--Private/Root/Boot/kernel-logo.icobin2238 -> 0 bytes
-rw-r--r--Private/Root/Users/Shared/.gitkeep (renamed from Private/Servers/CoreDisplay/Headers/.gitkeep)0
-rw-r--r--Private/Root/Users/User.script3
-rw-r--r--Private/Servers/CoreDisplay/README.txt4
-rw-r--r--Private/Servers/CoreDisplay/Sources/CDBitBlt.c11
-rw-r--r--Private/Servers/CoreDisplay/Sources/CDServerStartup.c25
-rw-r--r--Private/Source/AppMain.cxx (renamed from Private/Source/RuntimeMain.cxx)7
-rw-r--r--Private/Source/CxxAbi.cxx2
-rw-r--r--Private/Source/FS/NewFS.cxx251
-rw-r--r--Private/Source/IndexableProperty.cxx2
-rw-r--r--Private/Source/KernelHeap.cxx4
-rw-r--r--Private/Source/PEFCodeManager.cxx15
-rw-r--r--Private/Source/ThreadLocalStorage.cxx6
-rw-r--r--Private/Source/URL.cxx5
-rw-r--r--Private/makefile31
-rw-r--r--Public/Developer/PDF/POWRPCARCPRMRM.pdfbin1040606 -> 0 bytes
-rw-r--r--Public/Developer/PDFLib/.gitkeep (renamed from Public/Developer/DriverLib/.gitkeep)0
-rw-r--r--Public/Developer/ServerLib/.gitkeep0
-rw-r--r--Public/Developer/SystemLib/Headers/Dialog.h4
-rw-r--r--Public/Developer/SystemLib/Headers/Wm.h59
-rw-r--r--Public/Developer/SystemLib/POWER/CoreAssembly.s (renamed from Public/Developer/SystemLib/PowerPC/CoreAssembly.s)5
-rw-r--r--Public/Developer/SystemLib/Sources/App.c4
-rw-r--r--Public/Developer/SystemLib/Sources/File.c3
-rw-r--r--Public/Developer/SystemLib/amd64.mk (renamed from Public/Developer/SystemLib/Makefile)0
-rw-r--r--ReadMe.md2
117 files changed, 1613 insertions, 795 deletions
diff --git a/Meta/Kernel.svg b/Meta/Kernel.svg
new file mode 100644
index 00000000..fdfd1e73
--- /dev/null
+++ b/Meta/Kernel.svg
@@ -0,0 +1,36 @@
+<svg width="62" height="40" viewBox="0 0 62 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g filter="url(#filter0_d_0_1)">
+<path d="M47.683 0.541415L18 12.5373V19.4721C18 19.9113 18.1446 20.3383 18.4114 20.6871L25.5341 30L55.7629 17.5254C56.5116 17.2165 57 16.4865 57 15.6767V9.40299L49.9575 1.10186C49.3995 0.444135 48.4827 0.218233 47.683 0.541415Z" fill="url(#paint0_linear_0_1)"/>
+<path d="M57 9.40299L25.5341 22.3881M57 9.40299L49.9575 1.10186C49.3995 0.444135 48.4827 0.218233 47.683 0.541415L18 12.5373M57 9.40299V15.6767C57 16.4865 56.5116 17.2165 55.7629 17.5254L25.5341 30M25.5341 22.3881L18 12.5373M25.5341 22.3881V30M18 12.5373V19.4721C18 19.9113 18.1446 20.3383 18.4114 20.6871L25.5341 30" stroke="#005999" stroke-width="0.5"/>
+</g>
+<g filter="url(#filter1_d_0_1)">
+<path d="M52.5856 21.3927C54.1308 20.2328 54.4606 18.0193 53.3235 16.4432C52.1863 14.8672 50.0161 14.5307 48.471 15.6906L38.0802 23.5H27.6114C26.8475 23.5 26.2225 22.8625 26.2225 22.0833C26.2225 21.3042 26.8475 20.6667 27.6114 20.6667H34.5559C36.0924 20.6667 37.3337 19.4005 37.3337 17.8333C37.3337 16.2661 36.0924 15 34.5559 15H20.8144C18.2883 15 15.8404 15.8766 13.8699 17.4792L9.97229 20.6667H6.77781C5.24133 20.6667 4 21.9328 4 23.5V29.1667C4 30.7339 5.24133 32 6.77781 32H34.5993C37.1167 32 39.5733 31.1766 41.6046 29.6536L52.5943 21.3927H52.5856ZM20.8057 20.6578C20.8099 20.6638 20.8125 20.6707 20.8134 20.6779C20.8143 20.6852 20.8134 20.6925 20.8108 20.6993C20.8082 20.7061 20.8041 20.7122 20.7986 20.717C20.7932 20.7217 20.7867 20.725 20.7797 20.7266C20.7728 20.7282 20.7655 20.728 20.7586 20.726C20.7517 20.7241 20.7454 20.7204 20.7402 20.7153C20.7351 20.7103 20.7312 20.704 20.729 20.697C20.7268 20.6901 20.7263 20.6827 20.7276 20.6755C20.7235 20.6696 20.7208 20.6627 20.72 20.6554C20.7191 20.6482 20.72 20.6408 20.7225 20.634C20.7251 20.6272 20.7293 20.6211 20.7347 20.6164C20.7401 20.6116 20.7466 20.6083 20.7536 20.6067C20.7606 20.6051 20.7679 20.6053 20.7748 20.6073C20.7816 20.6093 20.7879 20.613 20.7931 20.618C20.7983 20.6231 20.8021 20.6293 20.8043 20.6363C20.8065 20.6432 20.807 20.6506 20.8057 20.6578Z" fill="#FFE5D2"/>
+<path d="M51.0867 21.8927L52.2854 20.9928C53.6105 19.9982 53.8973 18.0931 52.918 16.7358C51.943 15.3845 50.0905 15.1003 48.7714 16.0903L51.0867 21.8927ZM51.0867 21.8927H51.097L41.3046 29.2536C39.359 30.7123 37.0074 31.5 34.5993 31.5H6.77781C5.52676 31.5 4.5 30.4671 4.5 29.1667V23.5C4.5 22.1996 5.52676 21.1667 6.77781 21.1667H9.97229H10.1507L10.2888 21.0537L14.1854 17.8671C14.1856 17.8669 14.1858 17.8667 14.186 17.8666C16.0682 16.336 18.4048 15.5 20.8144 15.5H34.5559C35.8069 15.5 36.8337 16.5329 36.8337 17.8333C36.8337 19.1338 35.8069 20.1667 34.5559 20.1667H27.6114C26.562 20.1667 25.7225 21.0374 25.7225 22.0833C25.7225 23.1293 26.562 24 27.6114 24H38.0802H38.2472L38.3806 23.8997L48.7711 16.0905L51.0867 21.8927ZM20.8057 20.6578L20.8358 20.6631L20.8759 20.6703L21.2125 20.73C21.2107 20.7402 21.2085 20.7503 21.206 20.7604C21.2017 20.7774 21.1965 20.7942 21.1903 20.8107C21.1867 20.8201 21.1829 20.8293 21.1788 20.8384C21.1523 20.8965 21.1136 20.9491 21.0646 20.9921C21.06 20.9961 21.0554 21.0001 21.0506 21.0039C20.9967 21.0476 20.933 21.0787 20.8641 21.0943C20.8638 21.0944 20.8635 21.0945 20.8631 21.0946C20.7941 21.1101 20.7224 21.1093 20.6538 21.0924C20.6482 21.0911 20.6427 21.0896 20.6372 21.088C20.5733 21.0697 20.5149 21.038 20.4655 20.9956C20.4578 20.989 20.4503 20.9822 20.4431 20.9751C20.4301 20.9623 20.418 20.9489 20.4067 20.9349C20.4005 20.9271 20.3944 20.9191 20.3887 20.9109L20.6694 20.716L20.7051 20.6912L20.7276 20.6755M20.8057 20.6578L20.8283 20.6422L20.864 20.6174L21.1446 20.4224C21.1389 20.4142 21.1329 20.4062 21.1266 20.3984C21.1154 20.3844 21.1032 20.371 21.0903 20.3583C21.083 20.3512 21.0756 20.3443 21.0679 20.3377C21.0185 20.2954 20.96 20.2636 20.8961 20.2453C20.8906 20.2437 20.8851 20.2423 20.8796 20.2409C20.8109 20.224 20.7393 20.2233 20.6702 20.2388C20.6699 20.2388 20.6695 20.2389 20.6692 20.239C20.6003 20.2546 20.5366 20.2858 20.4827 20.3294C20.478 20.3333 20.4733 20.3372 20.4687 20.3412C20.4197 20.3843 20.381 20.4368 20.3546 20.495C20.3505 20.504 20.3466 20.5133 20.3431 20.5226C20.3369 20.5391 20.3316 20.5559 20.3273 20.5729C20.3248 20.583 20.3226 20.5932 20.3208 20.6033L20.6574 20.6631L20.6975 20.6702L20.7276 20.6755M20.8057 20.6578C20.8063 20.6545 20.8065 20.6512 20.8064 20.6479C20.8063 20.6469 20.8063 20.6459 20.8061 20.6449C20.8058 20.642 20.8052 20.6391 20.8043 20.6363C20.8031 20.6325 20.8015 20.629 20.7994 20.6257C20.7976 20.6229 20.7955 20.6203 20.7931 20.618C20.7922 20.6171 20.7912 20.6163 20.7902 20.6154C20.7857 20.6117 20.7804 20.6089 20.7748 20.6073C20.7679 20.6053 20.7606 20.6051 20.7536 20.6067C20.7533 20.6068 20.7529 20.6069 20.7526 20.607C20.746 20.6086 20.7399 20.6118 20.7347 20.6164C20.73 20.6205 20.7262 20.6257 20.7236 20.6315C20.7232 20.6323 20.7229 20.6331 20.7225 20.634C20.7215 20.6368 20.7207 20.6397 20.7202 20.6426C20.7195 20.6468 20.7194 20.6512 20.72 20.6554C20.7203 20.6579 20.7208 20.6603 20.7214 20.6626C20.7218 20.6637 20.7222 20.6649 20.7226 20.666C20.7239 20.6693 20.7256 20.6726 20.7276 20.6755M20.8057 20.6578C20.8078 20.6608 20.8095 20.664 20.8108 20.6674C20.8112 20.6685 20.8116 20.6696 20.8119 20.6707C20.8126 20.6731 20.8131 20.6755 20.8134 20.6779C20.8139 20.6822 20.8138 20.6865 20.8131 20.6907C20.8127 20.6936 20.8119 20.6965 20.8108 20.6993C20.8105 20.7002 20.8101 20.701 20.8098 20.7019C20.8072 20.7076 20.8034 20.7128 20.7986 20.717C20.7935 20.7215 20.7873 20.7247 20.7807 20.7264C20.7804 20.7265 20.7801 20.7265 20.7797 20.7266C20.7728 20.7282 20.7655 20.728 20.7586 20.726C20.7529 20.7244 20.7477 20.7216 20.7431 20.7179C20.7421 20.7171 20.7412 20.7162 20.7402 20.7153C20.7379 20.713 20.7358 20.7104 20.734 20.7076C20.7319 20.7044 20.7302 20.7008 20.729 20.697C20.7281 20.6942 20.7275 20.6914 20.7272 20.6885C20.7271 20.6875 20.727 20.6865 20.727 20.6855C20.7268 20.6822 20.727 20.6788 20.7276 20.6755M20.2237 20.7162C20.2264 20.7386 20.2305 20.7608 20.236 20.7826C20.2401 20.8048 20.2456 20.8267 20.2525 20.8483C20.2792 20.9325 20.3262 21.0096 20.3902 21.0724C20.4543 21.1352 20.5334 21.1817 20.6211 21.2067C20.7088 21.2318 20.8014 21.2344 20.8903 21.2143C20.9792 21.1941 21.061 21.152 21.1286 21.0927C21.1961 21.0334 21.2473 20.9588 21.2785 20.8761C21.3098 20.7934 21.3204 20.7045 21.3097 20.6172C21.3069 20.5947 21.3028 20.5725 21.2973 20.5507C21.2932 20.5286 21.2877 20.5066 21.2809 20.485C21.2542 20.4008 21.2072 20.3237 21.1431 20.261C21.0791 20.1982 20.9999 20.1517 20.9123 20.1266C20.8246 20.1015 20.732 20.0989 20.6431 20.1191C20.5542 20.1392 20.4724 20.1813 20.4048 20.2407C20.3373 20.2999 20.2861 20.3745 20.2548 20.4573C20.2235 20.54 20.213 20.6289 20.2237 20.7162Z" stroke="#181818"/>
+</g>
+<defs>
+<filter id="filter0_d_0_1" x="13.75" y="0.145597" width="47.5" height="38.1587" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="4"/>
+<feGaussianBlur stdDeviation="2"/>
+<feComposite in2="hardAlpha" operator="out"/>
+<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
+<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/>
+<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/>
+</filter>
+<filter id="filter1_d_0_1" x="0" y="15" width="58" height="25" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="4"/>
+<feGaussianBlur stdDeviation="2"/>
+<feComposite in2="hardAlpha" operator="out"/>
+<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
+<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_0_1"/>
+<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_0_1" result="shape"/>
+</filter>
+<linearGradient id="paint0_linear_0_1" x1="37.5" y1="0" x2="37.5" y2="30" gradientUnits="userSpaceOnUse">
+<stop stop-color="#0094FF"/>
+<stop offset="1" stop-color="#005999"/>
+</linearGradient>
+</defs>
+</svg>
diff --git a/Meta/NewKernel.svg b/Meta/NewKernel.svg
deleted file mode 100644
index a58c60ac..00000000
--- a/Meta/NewKernel.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-<svg width="52" height="63" viewBox="0 0 52 63" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<path d="M50.8111 26.8058L43.5 58L43.3573 58.4282C43.1674 58.9978 42.5219 59.2729 41.9795 59.0153L23.5887 50.2796C23.2309 50.1097 23.0071 49.7445 23.0181 49.3486L24 14L50.2437 25.6638C50.6825 25.8589 50.9207 26.3383 50.8111 26.8058Z" fill="#D33333" stroke="#BF1B1B"/>
-<path d="M22.6235 10.4445L25 19L42.4061 26.7361C42.7673 26.8966 43 27.2547 43 27.6499V54.5V58.4162C43 59.1512 42.2337 59.6351 41.5701 59.3191L1.57007 40.2715C1.22183 40.1056 1 39.7543 1 39.3686V7.5V1.56799C1 0.836924 1.75886 0.352957 2.42173 0.661271L22.0817 9.80544C22.3471 9.92889 22.5451 10.1625 22.6235 10.4445Z" fill="#D33333"/>
-<path d="M1 7.5L25 19M1 7.5V39.3686C1 39.7543 1.22183 40.1056 1.57007 40.2715L41.5701 59.3191C42.2337 59.6351 43 59.1512 43 58.4162V54.5V27.6499C43 27.2547 42.7673 26.8966 42.4061 26.7361L25 19M1 7.5V1.56799C1 0.836924 1.75886 0.352957 2.42173 0.661271L22.0817 9.80544C22.3471 9.92889 22.5451 10.1625 22.6235 10.4445L25 19" stroke="#BF1B1B"/>
-<rect x="34" y="45" width="18" height="18" fill="url(#pattern0_0_1)"/>
-<defs>
-<pattern id="pattern0_0_1" patternContentUnits="objectBoundingBox" width="1" height="1">
-<use xlink:href="#image0_0_1" transform="scale(0.00819672)"/>
-</pattern>
-<image id="image0_0_1" width="122" height="122" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHoAAAB6CAYAAABwWUfkAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAACGnSURBVHgB7V1djCXHVT7V996ZuTPeH3tJvOt4nd0NshEO8XqdkNgQeRMFiyAIJhJSpAAKIN4AJ0/8PBDnLeKFOOIFKUJ5QoIHEkAIRyHyBvLjQLIeYockxrF3vXF2vd6f2dmZuX99uzinqk71qerq2c1u3zt3nDlST/etrq6uqq/OOd+p6u5RcINy9OjR41mWHcXDh7XWR5VSe/F4L+xIk7KCfXsK+/YUHv9PURQnlpeXT8ANiPpxMiO4exHcx/Dwo7AD6lbJKdxOIOifQNBPXe9F1wW0A/jjYAHekdmRz14v4K1rZXjggQceQ9PxeTw8Djsya0Iu89EDBw5cOXv27PJmGTfV6GPHjv0V1GtxrvP8HBbwmi6Kq1AUG5g2gh1pUjqQZYu47UZA90GrdQDT2jV5P3Xy5MmP1RWUBJpMNRb8OdyOV05q3dPj8YuQ52dgB9jpS7t9ULVa94BS3fgUErdl3N6DpnylclmqrFar9RQx6Sg5R3C/h1r8EuzI1gkqmCYla7ePqHb7XnkKFZMw+xxu74kvq/hoZ64fDRJJi4fDr6B5fg12ZDakKC7DePxDReZcqQ4nI9iH0GfvRZ/9BZk9ABpB/gjuPhkUqPUqgvwN3G/AjsyajBDwcwj2TyHC8yL9XY6gPc0J3kejXz6EIdRTeHjIZ7ea/LUdkGdclFpUc3MPRX57BUOvw+yvM051cfIhef0OyNtEECODFfGoUnjuw4jRaKfNIcnK8+d2iNc2kwRBQ62+lbTaaLRE3giZ7B2Qt5/k+YuEnUxCbM08CJvu4/Ikxsnfhx3ZlmLmOEKhtQlQbhXqKXFipPv9J2FHtqt01MLC+0DMkaD5fg9inB0Pso3H52BHtrOMEMOzMoGWk8l03ycTcUbsIuzI9hatL4Q/9fGMZlKCTEVxBXZkWwsS6VX5GzG+L0O0DwW5iqIHO7LdJcZwL5nu+EmRnRWp7S8xhnsz2JGfCNkB+idE2vA6kz24ZPfOubl9t7dai29utfbsa7W6t2VZF7kI3IppSEGJnRAVhb7Wo8tFsbGhdX4JZ5RO5/mVF3D739Fo9Qqeg9eRvC6AfhCBfWhubv/bOp39e+nRGwSSgA0en8kyA64Rt1/AQXEABwMdvwWvecfc3J2c/SwC/sp4vPrvg8GZrw+H2z7k3LZAM7gIzsFulnU8iEq5nYCZz9GhOKdFuuJ8bpAcaLf30CB4AMtH7d54YTS6uJ1B33ZAPzI/v//9CwtHjrTb+xhUBtKAyBkj4BlERXvcgrwyP4iB4I734novAr749vn5g+dQ078wGLz0j73eGdhGsm2AJoA/vLR0L5lmLYBirSRAzG+gRZwcRqOR2Y/HY7MnGRdFOShw32q3DRtVaNY7nQ60cD83N4erfW0/CGT5dIy+f8/vLC4e/cDCwt3/3O8/v10An3mgyUT/Zrd7z2HUYOr8gjsezGS90VLaDwYDGOI2QlApT8Usgx0E9sBqNw8AOj8cDq1fpwGDGwG+MD9v9lmrFZRHsgcH3G93u0d/DQH/i9XVr50Zj2d6omlmgd6NROn3l5bueff8/GHWwoL+CDNNWru+sQEjBImZNO8luAwgiOshImsmlbTW5e/3+2YjmUfAu92u2Qf3AcPyFz+9d+/7nkTt/pv19Zld3p1JoO/CkOjx3bsfok7UwtSykPZuIMAFmmUGCHgvNY99sgNQ5ol9NJv9lND9+ri1UbOXlpZgAUEPCB4eo2u5G8O6Ox9H7X55BrW7deDAgceDlDx/HrZQfr3bPfjYLbe8Y0mphfhcjhq8uroKA9Q0LUw4sMYKTYslJmkqyid9Meg05JRngNajh4OM/Hq70wnKn0cr9DASNowCiufy/DJsoah2+x75eyY0monOH6CpfmRu7m6jcQI48sHrV69anyoZtrtOajRrZqyxFeicVgPnE0xbWgYuRw4UInVXccCRy+iihhOp47LQuHceXVi4F3W+85mNjZkx5TMBNIH1x0tLb/3FubnDAWFCGZKvJDPtiJePkwXhkmaXgVKRCQ/CLWkNoART832FtqtEXXnf6/WMSV+65RZYWFwM/P8jSNLQKrWfWF//DsyAbCnQyvnOP8Fw5RhOTEitM2YSO3LgCFHKtyqRHgAFQttFGl+jBZAxm45Jnc8H6RfVNA7ANdRusjZLu3bJBgBO6BwhDf/L9fVN33SchmzpogZ18h8uLr71fgcybxT7rjtf7DKWEx4xsRLXQSK9TBJpXJ5k5xELj/10LVlz5ZLVuXLpkqk7x/m00QD+I4z/Zd6tkKkDLUnQ7y0u3vMLnc5h7cwwg7yB/pj2ivMLk+3BSZGmGg3U8rroGmmudWzu47on2iDLM2Tx8mXjw32bSLM7nSPU1joiOA2ZOtCu8epD3e6R9yHxCjQZzV9/ba3s8Ljz2aRG4ZSSv+P7QWLCJCJvxKADd5CqN0Bt+MXtIqGQ7yppNoHtrqEJHGrrr87P3wVbJFtiug+2291HIpDN7Nb6uiVdDjw50SGZcSBiMNTmAajE0SaNwbiGX9fS1MeDzxervAZTG9ZIs50ZZ3fzwfn5n70Tl0q13mzITEamArQKyY/6s8XFB+eQpEjz1ncg64j1BrNaUsS14kZ2J+8d7c2lLq+cLdMiXZYFUdr1gER5yDqtr6wYbeYp2TmMs/98aenB3fQlgynLVIBmc03b7y4u3r2bFiag1OYRkq6C5525M3HLmHzpKOa1Gf1CRrzsGBOzGBr21QGTFlrrf0OCpMl2JdLkoDSuiAawGEi7cLbvw+ivqS9gijJVjb4TTfZ7O5272W8Zv4yTDjnGohIsJmDBylSCSfvfDozMAW+usReG8XNZoTB2js9HdU+ZcxDXS8sSW6AhzcVjmKhZszHtwXb78Ns7nX3TBHsqQKNJNg36UzTZ0icScck5hALbqZkwp5JpJ02m8H8QaT4PAA3RtKb0526v5NMnAIHfThrqaEIlNaki05h7+EGB+w/g3LjLOxWwp0bGfmV+/k4yWwHLFkuDLEkNizWVj7PMnU6EWu66LAIlFglqnE/LUC64qNReLiNVLucxHATnBfzqGG5vbrX2Pdzp7Hd51KRDrokDzSMWWfY9MtwoMOYsaHkRSnO3GdHxmgmlFgUmVZhjFp9Hkq0ov//tL3L3kH4/jr1rBkZKuJwxPQiBLqoQJvyD3e69dWU2LZMBWjJalPfjig6uL3flxEiBjZYShFKpyQrJhgWoKsojSZs36VHd5LRpLNLfpniBToCuw4TK4OAyhzgRJAc7Tph23y20epJmfDJA21hSceWxMUekyQa3CqWiAaEjk0hS1/JgEkSadqUq05VyQDDjTlkAf17ExADVwbSpcF0SLkM7TiLdxXtxIQeCYEJd+x43II0D7Uywr+kDnc5tb8yyXcw6jdkSJjv20dzQ2tku4RclUNK0xxbFDzAGT06aJEzmtbpZpa6L3IgM1SRBHG9s+DpSX9yFvvp+etDRF6MnYsYn6qOpyQ+12wflJL/R5sI8FBQAqmTMLAZAnRlVQnMkeXIHQT28RktG7/YpIlghiGJQVEy1v0k4MOXg4jqYn9h2IqHsp6knHmi3b9fe2EyGmDUOtGCiirZDOFoDIhRNjOjIl8UaLQdARaKQyhXi92qTWa4kYxaDKuWLa82qtA5CkyVnkIMoR632rgx/H22374x9etMyCaCt8uB2rNW6bZf79hU3SqGfYolBrBvJvpMTeSoEjskWVDVcJfxnfN948iMFeEUSbsKYd9ReP3A5K6UjA5fz7Dgf2rnfKoTXamhYJma6iYzh8tyd0hSDANn7SqiCVwlfVPnIkKrx2alyUuXq+FzCqmx2ffJ3akBAGd/7+4r7j8Vzb9QuBHq/thNLkrBAUzIRoHlk0sPu7Idon+Xie2cc4mwWSoWJtmypnU57U6Y2WP0S+ZhIpYCR96m0KbIOkkP4wRNfE9dblSQQSKuJnIINtX6m1bod3ASQ3zdowhsF2pscihGzrPMGpXbJsEqJEcz7VFMqixQi5o1JW3yNJG3SXHI5XtNUGY9L0gTCAmlHGkX7PC+I6yUyVa+BaPBqO2Ek/Ta5uF20okcJ4r5NEbNJaLSJnd+SZbul2c7EOjPIDtLV8ComPhk9GJAwy6rG9Ettl2bTx9By4ADUh1OqXEmr5Q+iHVKDqxmF7+ff6MrY2tF2H3IaZw395ElTxKwZoBONO+jMttcYIiYiP2tDHbvWonNTpjZ1TUyqAgKX0HjQ145Z5YDhcsVNwnxxXRNWR1oaja5Mhmy30Su/QpubDLWaAdpW1tSocGHVm9hsu4YoboD0zRFbZakAEze2xl8niZRSwQCLRSVMMWsxRMfc1qDO0QCQDNuDKqyKvw4c0O43+ek7lNpNl/BqH5alZ0ujnRiz40z0XprbhlKjMzHKJeN11wV7eU4ex9dBdF0cg3Oa1KLauou6VLRYZpTmPKpDACrUkDNZlBz8KNxnok7NqDM0BLQkYUawp/yjQmBHqwrzB6EF+0mOcU2nZWXVvMYCVEAESINY8eEqEWrVbHxe7gP/Hlsi175CgCzDxzrglXvzk69DAtuFKodshJDd9AP8scnUznRTpb25cuaaR33MQAM/awutaC2fY8Ijj30ZMo/WUBdHV3xonI/fChGmPABL66qVkPm5HsxDuAw5SAEqjD8ZiyfSb0RuWqNFJUqmiB2Fsz1t2bFkurMadhw0pAZkfxqgwphTkygpJi7Zu+ZnryEEPu70WBs1hK7GA1ZjCXz+lFaKOpARpxCLJ02cn25s6fKmNFol/Jg0kjHBkr6URetrPEILUDH7UuR5vxePBsWA02Ab63LNuMILhDsIzK8oT05+aMkbIpOuZJqwOrItsanXEPp7aMBsk9wU0AHLhXJkU/WKGl8Wi298osP8IIqZs9YV/6yjeqQGljFf7Tasr60Z7Qb246KTlbxnYgDqsvFBPwT1AwjWtTNVvmAfuLFYUUrLQjevN2s3IDftozcL7FMDwadH/spfU15cgsVAaJ0mVlyO7GTqYARTgqCc6TZTj27BAXhzfpnrprQOOEB8PyXa4id5uK6bSMBFAMrXg8F90YFOOZBFbE7x9E0B3wzrBuDO9+x7pSj6zLipAWMZ+kRMOzbxgcamGHdkAuOQqlIOnXcgx3FzECdHWhpsUFqsmCAFaaKO3CExmeO6FqqcuaN+6vM/P3FWUQzgm9buxuJoDeUSm7aRvv2wTEr7IvIVeyGptXWMU0X5+DoePLLspJerAVWeUwlt5vwgtFgy7YDMRRatcr1SPryi36uoHCA03hEzaIKQNQJ0pRZY2Sv0KWGnedSQkcgbh1dhYSpp1jOZLjtT5uPfMi9rdDQgytvrysoV/5ZxMdREBkHsDSILXybSUlxEurPeBD9L2ZTpNjNislEr43FfakqR8K2QSjMF6qpflGnCt1Y6VJXz26l4ncvy5AggmPYs3J4tj6qpQyqkAwF4PACktWBXNCYO4c4Xts96hshymXbS6Ka12RQFDUilJtiQV4riqv/eF/42QzUa+bGZlddLjVTxb3ErLcpRkX8EgIAX8O+U2a60RZhnBkP6cq3DR5UklwjaIY+5LDf1Wbjvl/FA+JHWa5RLkfszGULluRlp6tMWlitB2SGXyN84HwTCdJMEWsgsF8owKmUCIeHvVcL/15noshhdGQjBOZnGebmOSoXXS+AhIWJgZ84nS8kRaN9HKGfG4zW+o0mw7203gnWjc91abN8Zjy8XYuZn4Ni3kbgjAYKQJaXlAdFSIv7Vm6wVi/PBAACoMu/4Or5/Csy6/PxbHAeaLi0JphHQhRgMLyHQ7hotwrcZMt1M/wULXSuK8RWt+x58Nt/lRRUzLNMBSlCD9FgbBRgqKk90VnALXa0/JCW6Lhg0EYmLBxLIe+vwZQDlQOY0UoDzRbG2TmQsHPhNWe7Gwit2gGbHlfy/PDf/b5q1pheTI3GNNNGB/5OdHWmf7IVMmH3uTMly68I0WT+9ie9OpUtA+W1JUDWPR0XXD+ljdM5s028E+iq3kfMbe2cH0U0D3uh6tOxoasS38/yCfFRmTeZNmTN5feRLtfCT8T35WjnQ+B4Q3VNOxMRApsiclvcXIpm1HLDaPUkTh20xUiMy2+I7J/81HJ5z7dGcX9mb6i2Po8Vo0zjzpB3p0DwC0U+voG/OuZEE+kD4LBUWFhzLOWjPaiH041xODIaqqWsQ8mzi25W4RppouZc8Ipj+FANJWil5pyHOt48dOaNraaKE+kryAVdHN4a2WKNdxzERU7JhLM+ORud8LI3bZSZIEDkgHT5DJjVUam3Kv6qE31ZRnoBgyXpG5jq19+WIfUzMtGDokpQG5bh79+fm5AIQnCmKFbCarCV3YYC3XKNBVIbNjEsEd6yfHY8v0IEx4drM/gSzZJQ3k+AmOtf73ShtM0kNCIjK16nzEJldcY2O+EJKlKqZ0nXX0yTJ0H07lMEmsy3b58rWws3oWsJ4ndKcjxb+jcY1V+u7eb7yQzRLpvOcqV2pCU9UwgfHZlMJUw4ircKwU0QKIFm+9LVs0mvBAkiWy/eUmswDku9Bv9fn58tHfDHtAlKX75LZtjex2Te5141KY0ALbdPO7OrMmaOvDYevSFOFYVfwP+qlaB0+rG8qqarTmfE1MYjymbO66yC6jzS1ydiaTbOOVtdkHrHFbclx65E263JF7OvYN8C8puQhtgvj+9+ENLl6ZRetACoTHt9C9r0qY2rMdS5ipdyJko3LDvUdLcpNSUy65O+YaW9mDANT7g90hdnriIAF7VHlE6OU32iz0Hrqk684tm3arrXvw/jWNytN+Gi7h3J0q5J5+4o+2e+/KJ94XMfQoqd1knmz72YmWyS0vM60+uPrYNfxdayJweKHrn4MNtBilxb771gDexg3b7TbIouG/xgOT0PJa7Sks6p8+KARsBudGWPvaNLEoKeQ6xkkZa+4f1nMJ84i2LmuPh8tWGfpj0XnB4y6vlJct2CfvE6y4sgCpGJxrqc31XXl82BDN3KVmTbY5c+rqM1fHY1eBe4rMe2pEuXdrDQFtD0oO8yPRuOnHSN/CkewFlpN7PuCTswhC20MQh1dfbqD71/nw+pCJelGQFgA5yNry/GfsYzYezB3Hl17BU12LmJ+av9ner1vgxkDmRZz27opDY6lqUUNe8AAgzDftGFjSKu/OxqtnMzzHwFP/WG+S+MxXOb3suJRLEIvPm84AD/YBxCw8Trt88eqZk7aga0j1pyaXElpWqyBMscamux1EU5Ru7+e56dxgPez0r1p4e4gdntNSJPPddsGI6gELJ827JsbgOlPDganr4zHA2407c8j2H2tK9oUsF8JuGCttXVR1Tc7Yiasxb7ii4Vcy8f7ARJZjyEOyJWFheD8GgL8r/3+y75vQn8MLp3Lnh0yxqLEClYmfE4myAZpJy5sjD7b73974B6EK1yodRrBHtp8XGBIypzwUOdBUWHSkWalTLpO179qUa7d6Grc7sogU32x2/Xz2eYz1Zj8t73es0p4DtdP2jkPbxGblmYXNRQ/F6jtpAlpNo9S3rDBr+Hc7pf6/ZcKYTKHmP7SaARD9pkAPhbW4T1Kk50gXHUsOzbddb44Fp3gC+JkcH8WAvlVBHkkCCQJkq+Xqe3UruADtcq8RaJ9nzVstkma1GgQk/Cc7CvPWm78NW5P5/m5b2DDpV8k8/0DB7bUxticR/eAzeaog7haEigdPoIrz6cmSzbjAIWoEy1WnF9cNGD7mBmPn8a2fnk0eiWzfVHwJAn7Y9Zm0I1jbKS5CRPbGd7tKTZJbqSyicpK7YZ/Gw5fXkZyJocwgfzCcAgb/C0yly41MO6Ka4UilUFBdY1mzmJil2hgGAUA+JcAODetzJ1FnzwECBYtlkejH1FbC9sm7SyL7Q/aszZXCVljMokvB0piQRI2wjHwzJmozw8GL+J8+HnZMfTY0fdRs1+jrxiJsIRNrxIzTvEMmry3jkhbygoACL+v6teo4zJifrCK7PocmutcPNlJ9aW2URvBhVJg+6Lgwe9vn/h8R5MyyS8Haud3bDxtgS5wX3ADXcPh7/v9558ZDs/yF3qYkf8QwT6F2j2OYmkAQZ5U/aeaeVDIL/lDRLqC/FzxyMQHjYp8NZnqizgZQlsO5WCl+qO1OvsPg4H5F5AMclZauEJqs7R0WRm1NCaN/4OzhFaU5tz+sA3LMrRkRUYaropC/cto9CK9kvLznc5BUw7Ypc0L9F9n0OTdgbHoPvfUpC2tJG2af0PJyIMKyPokJk7k8WaTL9w+lj7W5zwCPHL/ZUdehfzjzBdHo9PyNplruwirrGaH5U/ESTcONHUSjUj3fq9cR+XQwVlpCw81mJ8OxY55GQlZ/k4Ee16pNnc4ffD5RdTsVezYO7Bj5zcJha7HXwcTILJym5TBoR4JsWkCuIf14Xid247+OT8xGp36bySblJaVLLrAH4USWuzSpUnXXE7TMnmNpsrbtwEJT/PmMnreItPaaDOeow7IHFGB/0Ry9lyeX/qthYW33qLUvNRA8tkXej2j2W9CnzgfEyq1+ecmA5A5tJMZRLgXX0/5yDRfxPuu0by1iJ8ZMZwMGfzdYPDcBQqhRFiZWZC9+1Lm/TrLWbIJhVOxTESjScQEilKs4RZ0M3FSWPNF8NK7rUUmwL6MVvHTvd43f6nTuevtqN0yDKIcBPhreQ63ojl/A263Os1y9zWbfy02rpsAmc0ta6sBOAYZf5PmXsL56g020bEPx/zPoj/+Up4bi6RCDsIEtGBSmpXE1JczKZPNMpF/Qpry0/Susul8xHNcMK7ERxSf83lcGeqLeX4GV73Of2huzmq3Ct+UuIyAX0LAF/C63QgGAU77NoTMOwaO02Mfz4BTDfpY5gZq7xUsb+zSZXncvrNar351MHj5Ba2vMHsAAXLmzDUIn+wHAkBgsq/FD25GJgK0NJ+i4pp/Zzx7ZjW80MaVWeADsPGaizg3/Ne93rdQs9/4LtTuJfoXzU5beaKi5+bKXx3Zp9EWsYw9CBANgEXM18FjpHHWtwP4T1/kTqMGuCe/S/sB5h2o6vvXsRaTmcYJkJfIzYCLLkBqsQMZLAGrmOrUwsWkQCaZ6L8VlpMo2n0Fj34X1q5myu0JYrLoNAD4IQPXZOXiDf3N0eg8bQT40Xb7jn2IJ9/D3czflyZb1umfmEpNZpNNWXHmKkXZUoyd78GajGvoqycdjzCxr/CxMchuUqRw5rpQAuRJm+pYpvL/o4VGyL40vhrTjR4b2w3m+TDlPv5kfHaZ2WofA/7Trdbut7XbbzyQZXuMWY8Kj1k5f1LKz7AJ4IMJGKUqEytoJ/LvFcVrz+f5xRfG41W3TOrJNjjX5I4LXmP2JMyBDc58i2thWoBPBehIs4HNM38QxnxrSdnuLawZB2/HDUaF73p+I5E6HP3iKplxAv3nEPR9St2yj76nCbDpI7dKgBykQWkhyDSfGo8vfX88NuD6zO5FBTndyxMcAbBgpn8LOStofHTpPjToqWBsZKv+I3xAvFp8TLNFdlmPlnNIzcgPK5FX+Q5W5btVBnQHRhfj7zdl2dJ+BPynEPjdWTY/h+3clWVztJefprqKYJJVwQmZAR2/WhRrV3D/Ayyrh+zZ1zZ8rlpqcjnj5R6yyGwYaUB2ey1A99fFEyyTlqkDrSwRs5Mp7v1fx74tANRBBC767ILMoI2VLPBuirmQCx4WeQ9+ryhyBP0KbbWVyDiwy4JvY0cV9WUK4XCpXGd3phoc2J5ZCzLm6jp1cy1lSzSawVbsVu00qP3Gkn3bn5gMaTdpNVFVA7xx6KVplwWyqVb8dIu2g8OmMqh8zNfGILuBJ0Iv+S6M9MP2d1WLrV82RTmQxcvsNCBSS6nTkK0y3aHPBku2dPntLwtyZog59645iQljbVyc7XVJ2DIRcoEz0aY8t6LEy5MyFuYZLJ5KcXWTVQ1NNBgkdWSy7QJFyKj9Ui0X5KjI1LWZhICm10H2ijT6J9YT+zpOjVjNYbCtJmTaTbAYU+7MNmm3A61w/tuTbbva6ywupRdFScLNn3L2TO7dec+eafAY7bP3lxpsTHpLglg+EyfJVuVJkSkDHP8j8pUq0PQp4aKYONBCo8o423YcH1NvK/fhFkPPC5tuflOvZuXno5UDWAVf8nEgkSYJAM2pwp5w2cwA0/wwgnsKxF7vwGUi5QFmkpXS4nKe27bVTahM0Vx35Q+87ykCehm3QyJ9D26rMGFJPe7jjrWPca1BZfuqMjtfbuJsN2VptdwCT7Nf/DUf/oST8oABMMimz126r0OLDIg75nCJBx4D6ipYPj2jwjdSYpDFfP9UGTa023uilNME9Jdxe5RTVKu1D0f3GZiipDTbaKybKvXxpgOdALe6ray2l3G2sihmykFoPQLfiElZzUdVW5IhSzJWgmvThPYasmWn/cw5Lmsa89d1gvfcF/1ebqM5W87kcl+rtR9Go63w01wpycghil85LLNa7Py5tqGXGSRGA7V/QV9OcVkOYOdhtbMIwftOsg5yD0y6yjR7zJofDRo5GTJtkI20WgfkT8T4hGnlsWPHcGVQ+Ok8f07n+UuwxaKrb/orXYIo05TMz8FREQPtr1BlmnMTUmP5j2PUwXtk5nJp2n2RW8OmK9JuH1Tt9lH+Sf75mWeeOcyq/ESQudU6AjMgYurQd7SyT2j41SBDilqtwq0M0b7gfUupMW0U22Y2j3lmLbOTHCaN9uifx27RwW9chnIfa3Dl+me+VOiXZwNkMK737uC3Uidoz7Hop8LcahE6nZkAmyUTZlJB2cFZyXwZEF4x8oPBTT8SoB5ENx9diGes7ZMfrjyXV/MGSjyxCbMHsJF2+4jBTghi+wnaG6CXl5cpxAq02o2MLsyI8LNodCw7WcknN/jNRHecsWayBjJoDjAeIAGodmCU58sN4nvPmHTRZN8dpX0WsT1FB4KQFo+DjalZOmp+/iGYMbBZlEp+aC0OeXgSpHCxsfZm26V5Bi1jYghfX024kFmTrsPKT5SQb2ZtJmnxwblz5/q33377ABvzy/5ypToUbsF4fB6g9rMjWy5KqdoN4PreWeMYWFwXHM+wEMjvwIrukokI9MdQm0/w75Y8iWA/feDAgVvx8F0+UakFRSHXeEyPr84s2HUSA5+Vs1/JqdBtJlaTI5BRnkCm/UmZkGzh/fff/xQ2/nicrsfj72CM/SK8DmQrJjIaFSRezicH89rYpmUE+f5K9lQZmPk3cEdgH5XpqNn3oiocRsCfx1h7qrNnTcs2Bblj4uRW63DMrkmwTSccdhXZ1GbhRAqFXY/VnB6ROceCLwJ9hKYoerBFs2mvY+nQIpOi/8Wt1BsU/df46soUyxMnT578aF1B13ROR48e/Qhq9sdxOwQ7MnOCiraC2HwCQf7UZvlacA1Bgra8f//+f8LDW2NTviNbLk+QqUaffOJaGX8suonafQjBfhwPH97R8K0Rp8FP0Gymm+i6LrnhuAJBP44hynE8vA9vfgj3NAj2wo40JgQq7gjYZQT2y2AmMcvY+MeR/weHeZWH+76o6gAAAABJRU5ErkJggg=="/>
-</defs>
-</svg>
diff --git a/Private/HALKit/PowerPC/.gitkeep b/Private/Applications/.gitkeep
index e69de29b..e69de29b 100644
--- a/Private/HALKit/PowerPC/.gitkeep
+++ b/Private/Applications/.gitkeep
diff --git a/Private/ArchKit/ArchKit.hpp b/Private/ArchKit/ArchKit.hpp
index ddccbb47..49c9dc94 100644
--- a/Private/ArchKit/ArchKit.hpp
+++ b/Private/ArchKit/ArchKit.hpp
@@ -15,7 +15,7 @@
#include <HALKit/AMD64/Hypervisor.hpp>
#include <HALKit/AMD64/Processor.hpp>
#elif defined(__NEWOS_PPC__)
-#include <HALKit/PowerPC/Processor.hpp>
+#include <HALKit/POWER/Processor.hpp>
#else
#error Unknown architecture
#endif
diff --git a/Private/Builtins/Toolbox/Rsrc/Cursor.rsrc b/Private/Builtins/Toolbox/Rsrc/Cursor.rsrc
new file mode 100644
index 00000000..cd011ab9
--- /dev/null
+++ b/Private/Builtins/Toolbox/Rsrc/Cursor.rsrc
@@ -0,0 +1,46 @@
+#define CURSOR_ICON_HEIGHT 40
+#define CURSOR_ICON_WIDTH 40
+
+// array size is 4800
+static const unsigned int cursor_icon[] = {
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x8b8b8b, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x7b7b7b, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x232323, 0xe3e3e3, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x232323, 0xe3e3e3, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x9b9b9b, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x8b8b8b, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5a5a5a, 0xf1f1f1, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x232323, 0xe3e3e3, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x232323, 0xd5d5d5, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x8b8b8b, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x8b8b8b, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x373737, 0xe3e3e3, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x232323, 0xe3e3e3, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x0e0e0e, 0xb8b8b8, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x8b8b8b, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x7b7b7b, 0xf1f1f1, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x232323, 0xe3e3e3, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x232323, 0xd5d5d5, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x494949, 0x9a9a9a, 0xc6c6c6, 0xc6c6c6, 0xc6c6c6, 0xc6c6c6, 0xc6c6c6, 0xc6c6c6, 0xc6c6c6, 0xc6c6c6, 0xc6c6c6, 0xc6c6c6, 0xc6c6c6, 0xc6c6c6, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x8a8a8a, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x8a8a8a, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x5a5a5a, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x232323, 0xf1f1f1, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x232323, 0xe3e3e3, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x0e0e0e, 0xe3e3e3, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0xb8b8b8, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x9a9a9a, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x8a8a8a, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
+ 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000
+};
diff --git a/Private/Builtins/Toolbox/Rsrc/Splash.rsrc b/Private/Builtins/Toolbox/Rsrc/Splash.rsrc
deleted file mode 100644
index 9b9a3e45..00000000
--- a/Private/Builtins/Toolbox/Rsrc/Splash.rsrc
+++ /dev/null
@@ -1,74 +0,0 @@
-#pragma once
-
-#define MAHROUSSLOGIC_HEIGHT 66
-#define MAHROUSSLOGIC_WIDTH 66
-
-// array size is 13068
-inline const unsigned int MahroussLogic[] = {
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000,
- 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff,
- 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
- 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0x000000,
- 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0x000000,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0x000000,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0x000000,
- 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff
-}; \ No newline at end of file
diff --git a/Private/Builtins/Toolbox/Toolbox.hxx b/Private/Builtins/Toolbox/Toolbox.hxx
index 2ac23267..5a510a5a 100644
--- a/Private/Builtins/Toolbox/Toolbox.hxx
+++ b/Private/Builtins/Toolbox/Toolbox.hxx
@@ -21,27 +21,36 @@ EXTERN_C NewOS::Boolean _hal_right_button_pressed();
#define ToolboxClearRsrc() uA = 0
+/// @brief Performs OR drawing on the framebuffer.
+#define ToolboxDrawOrRsrc(ImgPtr, _Height, _Width, BaseX, BaseY) \
+ uA = 0; \
+ \
+ for (NewOS::SizeT i = BaseX; i < _Height + BaseX; ++i) { \
+ for (NewOS::SizeT u = BaseY; u < _Width + BaseY; ++u) { \
+ *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \
+ 4 * \
+ kHandoverHeader->f_GOP \
+ .f_PixelPerLine * \
+ i + \
+ 4 * u))) |= ImgPtr[uA]; \
+ \
+ ++uA; \
+ } \
+ }
+
+
/// @brief Draws a resource.
#define ToolboxDrawRsrc(ImgPtr, _Height, _Width, BaseX, BaseY) \
uA = 0; \
\
for (NewOS::SizeT i = BaseX; i < _Height + BaseX; ++i) { \
for (NewOS::SizeT u = BaseY; u < _Width + BaseY; ++u) { \
- if (ImgPtr[uA] == 0) { \
*(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \
- 4 * \
- kHandoverHeader->f_GOP \
- .f_PixelPerLine * \
- i + \
- 4 * u))) |= ImgPtr[uA]; \
- } else { \
- *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \
- 4 * \
- kHandoverHeader->f_GOP \
- .f_PixelPerLine * \
- i + \
- 4 * u))) = ImgPtr[uA]; \
- } \
+ 4 * \
+ kHandoverHeader->f_GOP \
+ .f_PixelPerLine * \
+ i + \
+ 4 * u))) = ImgPtr[uA]; \
\
++uA; \
} \
@@ -76,4 +85,3 @@ EXTERN_C NewOS::Boolean _hal_right_button_pressed();
4 * u))) = _Clr; \
} \
}
-
diff --git a/Private/CFKit/Property.hpp b/Private/CFKit/Property.hpp
index ea427481..10c8ebf0 100644
--- a/Private/CFKit/Property.hpp
+++ b/Private/CFKit/Property.hpp
@@ -15,6 +15,7 @@
namespace NewOS {
using PropertyId = Int;
+/// @brief Kernel property class.
class Property {
public:
explicit Property(const StringView &sw) : fName(sw) {}
diff --git a/Private/Documentation/Spec.md b/Private/Documentation/Spec.md
index 458d17a9..e218947e 100644
--- a/Private/Documentation/Spec.md
+++ b/Private/Documentation/Spec.md
@@ -1,13 +1,17 @@
===================================
+
# 0: General Information
+
===================================
- ABI and Format: PEF/PE32+.
-- Kernel architecture: Microkernel.
-- Language: C++/(Assembly (AMD64, X64000, X86S, ARM64, PowerPC, RISCV))
+- Kernel architecture: Portable hybrid kernel.
+- Language: C++/(Assembly (AMD64, X64000, X86S, ARM64, POWER, RISCV))
===================================
+
# 1: The NewKernel
+
===================================
- Drive/Device Abstraction.
@@ -25,7 +29,9 @@
- Permission Selectors.
===================================
+
# 2: The Filesystem
+
===================================
- Catalog object with associated forks.
@@ -34,7 +40,9 @@
- UNIX path style.
==================================
+
# 3: Common naming conventions:
+
==================================
- Kernel -> ke_init_x
@@ -42,11 +50,13 @@
- Hal -> hal_foo_bar
===================================
+
# 4: The NewBoot
+
===================================
- Capable of booting from a network drive.
- Loads a PE file which is the kernel.
-- Sanity checks, based on the number of sections.
+- Sanity checks, based on the number of sections.
- Handover compliant.
- Does check for a valid partition (useful in the case of recovering)
diff --git a/Private/DriverKit/KernelDev.c b/Private/DriverKit/KernelDev.c
new file mode 100644
index 00000000..e8c041af
--- /dev/null
+++ b/Private/DriverKit/KernelDev.c
@@ -0,0 +1,31 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+ Purpose: Kernel Text I/O.
+
+------------------------------------------- */
+
+#include <DriverKit/KernelDev.h>
+
+/// @brief Open a new binary device from path.
+DK_EXTERN kernelDeviceRef kernelOpenBinaryDevice(const char* devicePath) {
+ if (!devicePath) return NIL;
+
+ return kernelCall("OpenBinaryDevice", 1, devicePath);
+}
+
+/// @brief Open a new character device from path.
+DK_EXTERN kernelDeviceRef kernelOpenCharDevice(const char* devicePath) {
+ if (!devicePath) return NIL;
+
+ return kernelCall("OpenCharDevice", 1, devicePath);
+}
+
+/// @brief Close any device.
+/// @param device valid device.
+DK_EXTERN void kernelCloseDevice(kernelDeviceRef device) {
+ if (!device) return;
+
+ kernelCall("CloseDevice", 1, device);
+}
diff --git a/Private/DriverKit/KernelDev.h b/Private/DriverKit/KernelDev.h
new file mode 100644
index 00000000..daa60a7c
--- /dev/null
+++ b/Private/DriverKit/KernelDev.h
@@ -0,0 +1,28 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+ Purpose: Kernel Devices.
+
+------------------------------------------- */
+
+#pragma once
+
+#include <DriverKit/KernelStd.h>
+
+typedef struct _kernelDevice {
+ int32_t(*read)(); // read from device.
+ int32_t(*write)(); // write to device.
+ struct _kernelDevice* (*open)(const char* path); // open device.
+ void (*close)(struct _kernelDevice* dev); // close device.
+} kernelDevice,* kernelDeviceRef;
+
+/// @brief Open a new binary device from path.
+DK_EXTERN kernelDeviceRef kernelOpenBinaryDevice(const char* devicePath);
+
+/// @brief Open a new character device from path.
+DK_EXTERN kernelDeviceRef kernelOpenCharDevice(const char* devicePath);
+
+/// @brief Close any device.
+/// @param device valid device.
+DK_EXTERN void kernelCloseDevice(kernelDeviceRef device);
diff --git a/Private/DriverKit/KernelDispatchCall.S b/Private/DriverKit/KernelDispatchCall.S
new file mode 100644
index 00000000..4eec8ae0
--- /dev/null
+++ b/Private/DriverKit/KernelDispatchCall.S
@@ -0,0 +1,21 @@
+.globl __kernelDispatchCall
+
+.section .text
+
+/* Really simple function, takes our va-list,
+ and brings it to the trap handler in the kernel. */
+
+#ifdef __x86_64__
+
+__kernelDispatchCall:
+ int $0x33
+ ret
+
+#elif defined(__powerpc64__)
+
+__kernelDispatchCall:
+ mflr 3
+ sc
+ blr
+
+#endif
diff --git a/Private/DriverKit/KernelPrint.c b/Private/DriverKit/KernelPrint.c
new file mode 100644
index 00000000..5ca09ccf
--- /dev/null
+++ b/Private/DriverKit/KernelPrint.c
@@ -0,0 +1,28 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+ Purpose: Kernel Text I/O.
+
+------------------------------------------- */
+
+#include <DriverKit/KernelPrint.h>
+
+DK_EXTERN void kernelPrintChar(const char ch) {
+ kernelCall("WriteCharacter", 1, ch);
+}
+
+/// @brief print string to UART.
+/// @param message UART to transmit.
+DK_EXTERN void kernelPrintStr(const char* message) {
+ if (!message) return;
+ if (*message == 0) return;
+
+ size_t index = 0;
+ size_t len = kernelStringLength(message);
+
+ while (index < len) {
+ kernelPrintChar(message[index]);
+ ++index;
+ }
+}
diff --git a/Private/DriverKit/KernelPrint.h b/Private/DriverKit/KernelPrint.h
new file mode 100644
index 00000000..36e55442
--- /dev/null
+++ b/Private/DriverKit/KernelPrint.h
@@ -0,0 +1,18 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+ Purpose: Kernel Text I/O.
+
+------------------------------------------- */
+
+#pragma once
+
+#include <DriverKit/KernelString.h>
+
+/// @brief print character into UART.
+DK_EXTERN void kernelPrintChar(const char ch);
+
+/// @brief print string to UART.
+/// @param message UART to transmit.
+DK_EXTERN void kernelPrintStr(const char* message);
diff --git a/Private/DriverKit/KernelStd.c b/Private/DriverKit/KernelStd.c
new file mode 100644
index 00000000..494ac0bc
--- /dev/null
+++ b/Private/DriverKit/KernelStd.c
@@ -0,0 +1,24 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+ Purpose: Kernel Definitions.
+
+------------------------------------------- */
+
+#include <DriverKit/KernelStd.h>
+#include <stdarg.h>
+
+DK_EXTERN __attribute__((naked)) void __kernelDispatchCall(int32_t cnt, ...);
+
+DK_EXTERN void* kernelCall(const char* kernelRpcName, int32_t cnt, ...) {
+ if (!kernelRpcName || cnt == 0) return NIL;
+
+ va_list arg;
+ va_start(arg, cnt);
+
+ __kernelDispatchCall(cnt, arg);
+
+ va_end(arg);
+
+}
diff --git a/Private/DriverKit/KernelStd.h b/Private/DriverKit/KernelStd.h
new file mode 100644
index 00000000..3344630e
--- /dev/null
+++ b/Private/DriverKit/KernelStd.h
@@ -0,0 +1,22 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+ Purpose: Kernel Definitions.
+
+------------------------------------------- */
+
+#pragma once
+
+#if defined(__cplusplus)
+#define DK_EXTERN extern "C"
+#define NIL nullptr
+#else
+#define DK_EXTERN extern
+#define NIL NULL
+#endif // defined(__cplusplus)
+
+#include <stdint.h>
+#include <stddef.h>
+
+DK_EXTERN void* kernelCall(const char* kernelRpcName, int32_t cnt, ...);
diff --git a/Private/DriverKit/KernelStdCxx.cc b/Private/DriverKit/KernelStdCxx.cc
new file mode 100644
index 00000000..79d41a72
--- /dev/null
+++ b/Private/DriverKit/KernelStdCxx.cc
@@ -0,0 +1,24 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+ Purpose: Driver C++ Definitions.
+
+------------------------------------------- */
+
+#include <DriverKit/KernelStd.h>
+
+void* operator new(size_t sz) {
+ if (!sz) ++sz;
+
+ auto ptr = kernelCall("NewKernelHeap", 1, sz);
+ kernelCall("KernelHeapProtect", 1, ptr);
+
+ return ptr;
+}
+
+void operator delete(void* ptr) noexcept {
+ if (!ptr) return;
+
+ kernelCall("DeleteKernelHeap", 1,ptr);
+}
diff --git a/Private/DriverKit/KernelString.c b/Private/DriverKit/KernelString.c
new file mode 100644
index 00000000..0bb45b16
--- /dev/null
+++ b/Private/DriverKit/KernelString.c
@@ -0,0 +1,30 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+ Purpose: Kernel Strings.
+
+------------------------------------------- */
+
+#include <DriverKit/KernelString.h>
+
+DK_EXTERN size_t kernelStringLength(const char* str) {
+ size_t index = 0;
+
+ while (str[index] != 0) {
+ ++index;
+ }
+
+ return index;
+}
+
+DK_EXTERN int kernelStringCopy(char* dst, const char* src, size_t len) {
+ size_t index = 0;
+
+ while (index != len) {
+ dst[index] = src[index];
+ ++index;
+ }
+
+ return index;
+}
diff --git a/Private/DriverKit/KernelString.h b/Private/DriverKit/KernelString.h
new file mode 100644
index 00000000..8e189d26
--- /dev/null
+++ b/Private/DriverKit/KernelString.h
@@ -0,0 +1,16 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+ Purpose: Kernel Strings.
+
+------------------------------------------- */
+
+#pragma once
+
+#include <DriverKit/KernelStd.h>
+
+/// @brief DriverKit equivalent of POSIX's string.h.
+
+DK_EXTERN size_t kernelStringLength(const char* str);
+DK_EXTERN int kernelStringCopy(char* dst, const char* src, size_t len);
diff --git a/Private/HALKit/PowerPC/APM/.gitkeep b/Private/Drivers/.gitkeep
index e69de29b..e69de29b 100644
--- a/Private/HALKit/PowerPC/APM/.gitkeep
+++ b/Private/Drivers/.gitkeep
diff --git a/Private/Drivers/Bonjour/Bonjour.c b/Private/Drivers/Bonjour/Bonjour.c
new file mode 100644
index 00000000..dba649c9
--- /dev/null
+++ b/Private/Drivers/Bonjour/Bonjour.c
@@ -0,0 +1,18 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+------------------------------------------- */
+
+#include <DriverKit/KernelString.h>
+#include <DriverKit/KernelPrint.h>
+
+int __ImageStart(void) {
+ kernelPrintStr("Bonjour: Starting up zeroconf...\r\n");
+ return 0;
+}
+
+int __ImageEnd(void) {
+ kernelPrintStr("Bonjour: Shutting down zeroconf...\r\n");
+ return 0;
+}
diff --git a/Private/Drivers/Bonjour/DriverRsrc.rsrc b/Private/Drivers/Bonjour/DriverRsrc.rsrc
new file mode 100644
index 00000000..ed24e10e
--- /dev/null
+++ b/Private/Drivers/Bonjour/DriverRsrc.rsrc
@@ -0,0 +1,25 @@
+1 ICON "../../Root/Boot/Icons/bonjour-logo.ico"
+
+1 VERSIONINFO
+FILEVERSION 1,0,0,0
+PRODUCTVERSION 1,0,0,0
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "080904E4"
+ BEGIN
+ VALUE "CompanyName", "Mahrouss-Logic"
+ VALUE "FileDescription", "New OS Bonjour driver."
+ VALUE "FileVersion", "1.00"
+ VALUE "InternalName", "Bonjour."
+ VALUE "LegalCopyright", "Copyright Mahrouss-Logic, all rights reserved."
+ VALUE "OriginalFilename", "Bonjour.exe"
+ VALUE "ProductName", "Bonjour."
+ VALUE "ProductVersion", "1.00"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x809, 1252
+ END
+END
diff --git a/Private/Drivers/Bonjour/x86_64.mk b/Private/Drivers/Bonjour/x86_64.mk
new file mode 100644
index 00000000..3461b2a3
--- /dev/null
+++ b/Private/Drivers/Bonjour/x86_64.mk
@@ -0,0 +1,52 @@
+##################################################
+# (C) Mahrouss Logic, all rights reserved.
+# This is the sample driver makefile.
+##################################################
+
+CC_GNU=x86_64-w64-mingw32-gcc
+LD_GNU=x86_64-w64-mingw32-ld
+
+WINDRES=x86_64-w64-mingw32-windres
+
+ADD_FILE=touch
+COPY=cp
+HTTP_GET=wget
+
+LD_FLAGS=-e __ImageStart --subsystem=17
+
+OBJ=*.o
+
+
+REM=rm
+REM_FLAG=-f
+
+FLAG_ASM=-f win64
+FLAG_GNU=-fshort-wchar -D__EFI_x86_64__ -mgeneral-regs-only -mno-red-zone -D__KERNEL__ -DEFI_FUNCTION_WRAPPER -I../ -I../../ -I./ -c -ffreestanding -std=c17 -D__HAVE_MAHROUSS_APIS__ -D__MAHROUSS__ -D__BOOTLOADER__ -I./
+
+.PHONY: invalid-recipe
+invalid-recipe:
+ @echo "invalid-recipe: Use make all instead."
+
+.PHONY: all
+all: compile-amd64
+ $(LD_GNU) $(OBJ) $(LD_FLAGS) -o Bonjour.exe
+ cp Bonjour.exe ../../Root/Boot/Bonjour.exe
+
+ifneq ($(DEBUG_SUPPORT), )
+DEBUG = -D__DEBUG__
+endif
+
+.PHONY: compile-amd64
+compile-amd64:
+ $(WINDRES) DriverRsrc.rsrc -O coff -o DriverRsrc.o
+ $(CC_GNU) $(FLAG_GNU) $(DEBUG) $(wildcard *.c) $(wildcard ../../DriverKit/*.c) $(wildcard ../../DriverKit/*.S)
+
+.PHONY: clean
+clean:
+ $(REM) $(REM_FLAG) $(OBJ) Bonjour.exe
+
+.PHONY: help
+help:
+ @echo "=== HELP ==="
+ @echo "clean: Clean driver."
+ @echo "compile-amd64: Build driver."
diff --git a/Private/Drivers/MahroussUpdate/DriverRsrc.rsrc b/Private/Drivers/MahroussUpdate/DriverRsrc.rsrc
new file mode 100644
index 00000000..359a0875
--- /dev/null
+++ b/Private/Drivers/MahroussUpdate/DriverRsrc.rsrc
@@ -0,0 +1,25 @@
+1 ICON "../../Root/Boot/Icons/update-logo.ico"
+
+1 VERSIONINFO
+FILEVERSION 1,0,0,0
+PRODUCTVERSION 1,0,0,0
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "080904E4"
+ BEGIN
+ VALUE "CompanyName", "Mahrouss-Logic"
+ VALUE "FileDescription", "New OS Mahrouss Update driver."
+ VALUE "FileVersion", "1.00"
+ VALUE "InternalName", "Mahrouss Update."
+ VALUE "LegalCopyright", "Copyright Mahrouss-Logic, all rights reserved."
+ VALUE "OriginalFilename", "MahroussUpdate.exe"
+ VALUE "ProductName", "MahroussUpdate."
+ VALUE "ProductVersion", "1.00"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x809, 1252
+ END
+END
diff --git a/Private/Drivers/MahroussUpdate/MahroussUpdate.cc b/Private/Drivers/MahroussUpdate/MahroussUpdate.cc
new file mode 100644
index 00000000..c8741ed0
--- /dev/null
+++ b/Private/Drivers/MahroussUpdate/MahroussUpdate.cc
@@ -0,0 +1,24 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+------------------------------------------- */
+
+#include <DriverKit/KernelString.h>
+#include <DriverKit/KernelPrint.h>
+
+#include <Drivers/MahroussUpdate/MahroussUpdate.hxx>
+
+DK_EXTERN int __ImageStart(void) {
+ kernelPrintStr("Mahrouss Update: Looking for updates...\r\n");
+ UpdateRequest req("mup://release-mahrouss.logic/newos/");
+
+ return 0;
+}
+
+DK_EXTERN int __ImageEnd(void) {
+ return 0;
+}
+
+///! @brief Use this to check your stack, if using MinGW/MSVC.
+DK_EXTERN void ___chkstk_ms(void) {}
diff --git a/Private/Drivers/MahroussUpdate/MahroussUpdate.hxx b/Private/Drivers/MahroussUpdate/MahroussUpdate.hxx
new file mode 100644
index 00000000..a4f219be
--- /dev/null
+++ b/Private/Drivers/MahroussUpdate/MahroussUpdate.hxx
@@ -0,0 +1,33 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+------------------------------------------- */
+
+#pragma once
+
+#include <DriverKit/KernelString.h>
+
+#include "DriverKit/KernelPrint.h"
+
+/// @file Software update job driver.
+
+class UpdateRequest;
+class UpdateRequestObserver;
+
+class UpdateRequest {
+ public:
+ explicit UpdateRequest(const char* patchUrl = "mup://invalid-url-scheme/") {
+ kernelStringCopy(this->fPatchUrl, patchUrl, kernelStringLength(patchUrl));
+
+ kernelPrintStr("Mahrouss Update, Looking at: ");
+ kernelPrintStr(patchUrl);
+ kernelPrintChar('\r');
+ kernelPrintChar('\n');
+ }
+
+ ~UpdateRequest() {}
+
+ private:
+ char fPatchUrl[4096] = {0};
+};
diff --git a/Private/Drivers/MahroussUpdate/x86_64.mk b/Private/Drivers/MahroussUpdate/x86_64.mk
new file mode 100644
index 00000000..cffa0ab7
--- /dev/null
+++ b/Private/Drivers/MahroussUpdate/x86_64.mk
@@ -0,0 +1,53 @@
+##################################################
+# (C) Mahrouss Logic, all rights reserved.
+# This is the sample driver makefile.
+##################################################
+
+CC_GNU=x86_64-w64-mingw32-gcc
+LD_GNU=x86_64-w64-mingw32-ld
+
+WINDRES=x86_64-w64-mingw32-windres
+
+ADD_FILE=touch
+COPY=cp
+HTTP_GET=wget
+
+LD_FLAGS=-e __ImageStart --subsystem=17
+
+OBJ=*.o
+
+
+REM=rm
+REM_FLAG=-f
+
+FLAG_ASM=-f win64
+FLAG_GNU=-fshort-wchar -D__EFI_x86_64__ -mgeneral-regs-only -mno-red-zone -D__KERNEL__ -DEFI_FUNCTION_WRAPPER -I../ -I../../ -I./ -c -ffreestanding -D__HAVE_MAHROUSS_APIS__ -D__MAHROUSS__ -D__BOOTLOADER__ -I./
+
+.PHONY: invalid-recipe
+invalid-recipe:
+ @echo "invalid-recipe: Use make all instead."
+
+.PHONY: all
+all: compile-amd64
+ $(LD_GNU) $(OBJ) $(LD_FLAGS) -o MahroussUpdate.exe
+ cp MahroussUpdate.exe ../../Root/Boot/MahroussUpdate.exe
+
+ifneq ($(DEBUG_SUPPORT), )
+DEBUG = -D__DEBUG__
+endif
+
+.PHONY: compile-amd64
+compile-amd64:
+ $(WINDRES) DriverRsrc.rsrc -O coff -o DriverRsrc.o
+ $(CC_GNU) $(FLAG_GNU) -std=c17 $(DEBUG) $(wildcard *.c) $(wildcard ../../DriverKit/*.c) $(wildcard ../../DriverKit/*.S)
+ $(CC_GNU) $(FLAG_GNU) -std=c++17 -fno-rtti -fno-exceptions $(DEBUG) $(wildcard *.cc) $(wildcard ../../DriverKit/*.cc)
+
+.PHONY: clean
+clean:
+ $(REM) $(REM_FLAG) $(OBJ) MahroussUpdate.exe
+
+.PHONY: help
+help:
+ @echo "=== HELP ==="
+ @echo "clean: Clean driver."
+ @echo "compile-amd64: Build driver."
diff --git a/Private/Drivers/SampleDriver/DriverRsrc.rsrc b/Private/Drivers/SampleDriver/DriverRsrc.rsrc
new file mode 100644
index 00000000..5129b077
--- /dev/null
+++ b/Private/Drivers/SampleDriver/DriverRsrc.rsrc
@@ -0,0 +1,25 @@
+1 ICON "../../Root/Boot/Icons/driver-logo.ico"
+
+1 VERSIONINFO
+FILEVERSION 1,0,0,0
+PRODUCTVERSION 1,0,0,0
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "080904E4"
+ BEGIN
+ VALUE "CompanyName", "Mahrouss-Logic"
+ VALUE "FileDescription", "New OS driver."
+ VALUE "FileVersion", "1.00"
+ VALUE "InternalName", "SampleDriver"
+ VALUE "LegalCopyright", "Copyright Mahrouss-Logic, all rights reserved."
+ VALUE "OriginalFilename", "SampleDriver.exe"
+ VALUE "ProductName", "SampleDriver"
+ VALUE "ProductVersion", "1.00"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x809, 1252
+ END
+END
diff --git a/Private/Drivers/SampleDriver/SampleDriver.c b/Private/Drivers/SampleDriver/SampleDriver.c
new file mode 100644
index 00000000..4481d480
--- /dev/null
+++ b/Private/Drivers/SampleDriver/SampleDriver.c
@@ -0,0 +1,21 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+------------------------------------------- */
+
+#include <DriverKit/KernelString.h>
+#include <DriverKit/KernelPrint.h>
+
+int __ImageStart(void) {
+ kernelPrintStr("SampleDriver: Starting up...\r\n");
+ return 0;
+}
+
+int __ImageEnd(void) {
+ kernelPrintStr("SampleDriver: Shutting down...\r\n");
+ return 0;
+}
+
+///! @brief Use this to check your stack, if using MinGW/MSVC.
+void ___chkstk_ms(void) {}
diff --git a/Private/Drivers/SampleDriver/x86_64.mk b/Private/Drivers/SampleDriver/x86_64.mk
new file mode 100644
index 00000000..f8d56b08
--- /dev/null
+++ b/Private/Drivers/SampleDriver/x86_64.mk
@@ -0,0 +1,52 @@
+##################################################
+# (C) Mahrouss Logic, all rights reserved.
+# This is the sample driver makefile.
+##################################################
+
+CC_GNU=x86_64-w64-mingw32-gcc
+LD_GNU=x86_64-w64-mingw32-ld
+
+WINDRES=x86_64-w64-mingw32-windres
+
+ADD_FILE=touch
+COPY=cp
+HTTP_GET=wget
+
+LD_FLAGS=-e __ImageStart --subsystem=17
+
+OBJ=*.o
+
+
+REM=rm
+REM_FLAG=-f
+
+FLAG_ASM=-f win64
+FLAG_GNU=-fshort-wchar -D__EFI_x86_64__ -mgeneral-regs-only -mno-red-zone -D__KERNEL__ -DEFI_FUNCTION_WRAPPER -I../ -I../../ -I./ -c -ffreestanding -std=c17 -D__HAVE_MAHROUSS_APIS__ -D__MAHROUSS__ -D__BOOTLOADER__ -I./
+
+.PHONY: invalid-recipe
+invalid-recipe:
+ @echo "invalid-recipe: Use make all instead."
+
+.PHONY: all
+all: compile-amd64
+ $(LD_GNU) $(OBJ) $(LD_FLAGS) -o SampleDriver.exe
+ cp SampleDriver.exe ../../Root/Boot/SampleDriver.exe
+
+ifneq ($(DEBUG_SUPPORT), )
+DEBUG = -D__DEBUG__
+endif
+
+.PHONY: compile-amd64
+compile-amd64:
+ $(WINDRES) DriverRsrc.rsrc -O coff -o DriverRsrc.o
+ $(CC_GNU) $(FLAG_GNU) $(DEBUG) $(wildcard *.c) $(wildcard ../../DriverKit/*.c) $(wildcard ../../DriverKit/*.S)
+
+.PHONY: clean
+clean:
+ $(REM) $(REM_FLAG) $(OBJ) SampleDriver.exe
+
+.PHONY: help
+help:
+ @echo "=== HELP ==="
+ @echo "clean: Clean driver."
+ @echo "compile-amd64: Build driver."
diff --git a/Private/FSKit/NewFS.hxx b/Private/FSKit/NewFS.hxx
index 3f93700f..339b9832 100644
--- a/Private/FSKit/NewFS.hxx
+++ b/Private/FSKit/NewFS.hxx
@@ -30,7 +30,11 @@ default.
#define kNewFSInvalidCatalog -1
#define kNewFSNodeNameLen 256
-#define kNewFSMinimumSectorSz 4096
+#ifdef __x86_64__
+#define kNewFSMinimumSectorSz (512)
+#else
+#define kNewFSMinimumSectorSz (1024)
+#endif // ifdef __x86_64__
#define kNewFSIdentLen 8
#define kNewFSIdent " NewFS"
@@ -105,6 +109,7 @@ enum {
/// @brief Ccatalog type.
struct PACKED NewCatalog final {
NewCharType Name[kNewFSNodeNameLen];
+ NewCharType Mime[kNewFSNodeNameLen];
NewOS::Int32 Flags;
NewOS::Int32 Kind;
@@ -173,7 +178,7 @@ enum {
/// forks...) Designed like the DOM, detects the filesystem automatically.
///
-class NewFSParser final {
+class NewFSParser {
public:
explicit NewFSParser() = default;
~NewFSParser() = default;
diff --git a/Private/HALKit/PowerPC/PCI/.gitkeep b/Private/FirmwareKit/CoreBoot/.gitkeep
index e69de29b..e69de29b 100644
--- a/Private/HALKit/PowerPC/PCI/.gitkeep
+++ b/Private/FirmwareKit/CoreBoot/.gitkeep
diff --git a/Private/FirmwareKit/EFI/API.hxx b/Private/FirmwareKit/EFI/API.hxx
index cfb3f425..138d6b42 100644
--- a/Private/FirmwareKit/EFI/API.hxx
+++ b/Private/FirmwareKit/EFI/API.hxx
@@ -19,7 +19,7 @@ EXTERN_C void rt_hlt();
namespace EFI {
/// @brief Halt and clear interrupts.
-/// @return
+/// @return
inline Void Stop() noexcept {
while (1) {
rt_hlt();
@@ -51,7 +51,7 @@ inline UInt32 Platform() noexcept { return kPEMachineAMD64; }
*/
inline void RaiseHardError(const EfiCharType *ErrorCode,
const EfiCharType *Reason) noexcept {
- ST->ConOut->OutputString(ST->ConOut, L"*** STOP ***\r\n");
+ ST->ConOut->OutputString(ST->ConOut, L"\r\n*** STOP ***\r\n");
ST->ConOut->OutputString(ST->ConOut, L"*** Error: ");
ST->ConOut->OutputString(ST->ConOut, ErrorCode);
diff --git a/Private/FirmwareKit/EFI/EFI.hxx b/Private/FirmwareKit/EFI/EFI.hxx
index 1d56f757..7f8223cf 100644
--- a/Private/FirmwareKit/EFI/EFI.hxx
+++ b/Private/FirmwareKit/EFI/EFI.hxx
@@ -571,8 +571,6 @@ typedef struct EfiSystemTable {
} *ConfigurationTable;
} EfiSystemTable;
-#define EfiMain efi_main
-
#define kEfiOk 0
#define kEfiFail -1
diff --git a/Private/FirmwareKit/EPM.hxx b/Private/FirmwareKit/EPM.hxx
index 5cc743be..b7f77742 100644
--- a/Private/FirmwareKit/EPM.hxx
+++ b/Private/FirmwareKit/EPM.hxx
@@ -71,7 +71,7 @@ struct PACKED PartitionBlock {
#define kEPMMagic32k "EPM32"
-/* @brief PowerPC magic for EPM */
+/* @brief POWER magic for EPM */
#define kEPMMagicPPC "EPMPC"
diff --git a/Private/HALKit/64x0/HalVirtualMemory.cxx b/Private/HALKit/64x0/HalVirtualMemory.cxx
index 8fc08df0..2ae0f7ac 100644
--- a/Private/HALKit/64x0/HalVirtualMemory.cxx
+++ b/Private/HALKit/64x0/HalVirtualMemory.cxx
@@ -4,11 +4,11 @@
------------------------------------------- */
-#include <HALKit/PowerPC/Processor.hpp>
+#include <HALKit/POWER/Processor.hpp>
#include <KernelKit/DebugOutput.hpp>
using namespace NewOS;
-/// @brief Flush system TLB, looks like the PowerPC version, as it acts the same, no specific instruction for that.
+/// @brief Flush system TLB, looks like the POWER version, as it acts the same, no specific instruction for that.
/// @note The 88K MMU should be present in the die.
-EXTERN_C void hal_flush_tlb() { asm volatile("isync;invltlb;msync;isync"); }
+EXTERN_C void hal_flush_tlb() { asm volatile("invltlb"); }
diff --git a/Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp b/Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp
index aa9c0e47..99a66532 100644
--- a/Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp
+++ b/Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp
@@ -9,86 +9,86 @@
#include <NewKit/String.hpp>
/// @brief Handle GPF fault.
-/// @param rsp
+/// @param rsp
EXTERN_C void idt_handle_gpf(NewOS::UIntPtr rsp) {
MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
- NewOS::kcout << "NewOS: Stack Pointer: "
+ NewOS::kcout << "New OS: Stack Pointer: "
<< NewOS::StringBuilder::FromInt("rsp{%}", rsp);
NewOS::kcout
- << "NewOS: General Protection Fault, caused by "
+ << "New OS: General Protection Fault, caused by "
<< NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
}
/// @brief Handle the scheduler interrupt, raised from the HPET timer.
-/// @param rsp
+/// @param rsp
EXTERN_C void idt_handle_scheduler(NewOS::UIntPtr rsp) {
NewOS::kcout << NewOS::StringBuilder::FromInt("rsp{%}", rsp);
NewOS::kcout
- << "NewOS: Will be scheduled back later "
+ << "New OS: Will be scheduled back later "
<< NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName()
<< NewOS::end_line();
/// schedule another process.
if (!NewOS::ProcessHelper::StartScheduling()) {
- NewOS::kcout << "NewOS: Continue schedule this process...\r\n";
+ NewOS::kcout << "New OS: Continue schedule this process...\r\n";
}
}
/// @brief Handle page fault.
-/// @param rsp
+/// @param rsp
EXTERN_C void idt_handle_pf(NewOS::UIntPtr rsp) {
MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
NewOS::kcout << NewOS::StringBuilder::FromInt("rsp{%}", rsp);
NewOS::kcout
- << "NewOS: Segmentation Fault, caused by "
+ << "New OS: Segmentation Fault, caused by "
<< NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
}
/// @brief Handle math fault.
-/// @param rsp
+/// @param rsp
EXTERN_C void idt_handle_math(NewOS::UIntPtr rsp) {
MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
NewOS::kcout << NewOS::StringBuilder::FromInt("rsp{%}", rsp);
NewOS::kcout
- << "NewOS: Math error, caused by "
+ << "New OS: Math error, caused by "
<< NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
}
/// @brief Handle any generic fault.
-/// @param rsp
+/// @param rsp
EXTERN_C void idt_handle_generic(NewOS::UIntPtr rsp) {
MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
NewOS::kcout << NewOS::StringBuilder::FromInt("sp{%}", rsp);
NewOS::kcout
- << "NewOS: Execution error, caused by "
+ << "New OS: Execution error, caused by "
<< NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
}
/// @brief Handle #UD fault.
-/// @param rsp
+/// @param rsp
EXTERN_C void idt_handle_ud(NewOS::UIntPtr rsp) {
MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
- NewOS::kcout << "NewOS: Stack Pointer: "
+ NewOS::kcout << "New OS: Stack Pointer: "
<< NewOS::StringBuilder::FromInt("rsp{%}", rsp);
NewOS::kcout
- << "NewOS: Invalid interrupt, caused by "
+ << "New OS: Invalid interrupt, caused by "
<< NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
-} \ No newline at end of file
+}
diff --git a/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp b/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
index 98d64215..0761114d 100644
--- a/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
+++ b/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
@@ -92,14 +92,14 @@ STATIC MadtType* kApicInfoBlock = nullptr;
///////////////////////////////////////////////////////////////////////////////////////
void hal_system_get_cores(voidPtr rsdPtr) {
- kcout << "NewOS: Constructing ACPIFactoryInterface...\r\n";
+ kcout << "New OS: Constructing ACPIFactoryInterface...\r\n";
auto acpi = ACPIFactoryInterface(rsdPtr);
kApicMadt = acpi.Find(kApicSignature).Leak().Leak();
MUST_PASS(kApicMadt); // MADT must exist.
- kcout << "NewOS: Successfuly fetched the MADT!\r\n";
+ kcout << "New OS: Successfuly fetched the MADT!\r\n";
kApicInfoBlock = (MadtType*)kApicMadt;
}
diff --git a/Private/HALKit/AMD64/HalHardwareMP.cpp b/Private/HALKit/AMD64/HalHardwareMP.cpp
index 0e9f3022..135222b9 100644
--- a/Private/HALKit/AMD64/HalHardwareMP.cpp
+++ b/Private/HALKit/AMD64/HalHardwareMP.cpp
@@ -19,20 +19,12 @@ void rt_wakeup_thread(HAL::StackFrame* stack) {
HAL::rt_sti();
}
-/// @brief Hangs until RCX register is cleared.
-/// @param stack
-static void __rt_hang_proc(HAL::StackFrame* stack) {
- while (stack->Rcx == 1) {
- ;
- }
-}
-
/// @brief makes thread sleep.
/// hooks and hangs thread to prevent code from executing.
void rt_hang_thread(HAL::StackFrame* stack) {
HAL::rt_cli();
- __rt_hang_proc(stack);
+ stack->Rcx = 1;
HAL::rt_sti();
}
diff --git a/Private/HALKit/AMD64/HalKernelMain.cxx b/Private/HALKit/AMD64/HalKernelMain.cxx
index f6b8e957..57c37778 100644
--- a/Private/HALKit/AMD64/HalKernelMain.cxx
+++ b/Private/HALKit/AMD64/HalKernelMain.cxx
@@ -5,7 +5,6 @@
------------------------------------------- */
#include <ArchKit/ArchKit.hpp>
-#include <Builtins/Toolbox/Rsrc/Splash.rsrc>
#include <Builtins/Toolbox/Toolbox.hxx>
#include <FirmwareKit/Handover.hxx>
#include <KernelKit/FileManager.hpp>
@@ -17,7 +16,7 @@
#include <NewKit/Json.hpp>
EXTERN_C NewOS::VoidPtr kInterruptVectorTable[];
-EXTERN_C void RuntimeMain();
+EXTERN_C void AppMain();
namespace NewOS::HAL {
/// @brief Gets the system cores using the MADT.
@@ -74,16 +73,7 @@ EXTERN_C void hal_init_platform(
/// END POST
- ToolboxInitRsrc();
-
- ToolboxDrawRsrc(
- MahroussLogic, MAHROUSSLOGIC_HEIGHT, MAHROUSSLOGIC_WIDTH,
- ((kHandoverHeader->f_GOP.f_Width - MAHROUSSLOGIC_WIDTH) / 2),
- ((kHandoverHeader->f_GOP.f_Height - MAHROUSSLOGIC_HEIGHT) / 2));
-
- ToolboxClearRsrc();
-
- RuntimeMain();
+ AppMain();
NewOS::ke_stop(RUNTIME_CHECK_BOOTSTRAP);
}
diff --git a/Private/HALKit/AMD64/Processor.hpp b/Private/HALKit/AMD64/Processor.hpp
index 7e2624d7..70452d1d 100644
--- a/Private/HALKit/AMD64/Processor.hpp
+++ b/Private/HALKit/AMD64/Processor.hpp
@@ -26,11 +26,11 @@
#define IsActiveLow(FLG) (FLG & 2)
#define IsLevelTriggered(FLG) (FLG & 8)
-#define kInterruptGate 0x8E
-#define kTrapGate 0xEF
-#define kTaskGate 0b10001100
-#define kGdtCodeSelector 0x08
-#define kVirtualAddressStartOffset 0x100
+#define kInterruptGate (0x8E)
+#define kTrapGate (0xEF)
+#define kTaskGate (0b10001100)
+#define kGdtCodeSelector (0x08)
+#define kVirtualAddressStartOffset (0x100)
namespace NewOS {
namespace Detail::AMD64 {
diff --git a/Private/HALKit/AMD64/Storage/ATA-PIO.cxx b/Private/HALKit/AMD64/Storage/ATA-PIO.cxx
index ebced11c..3cbba6f7 100644
--- a/Private/HALKit/AMD64/Storage/ATA-PIO.cxx
+++ b/Private/HALKit/AMD64/Storage/ATA-PIO.cxx
@@ -72,7 +72,7 @@ ATAInit_Retry:
auto statRdy = In8(IO + ATA_REG_STATUS);
if (statRdy & ATA_SR_ERR) {
- kcout << "NewOS: ATA: Select error, not an IDE based hard-drive.\r\n";
+ kcout << "New OS: ATA: Select error, not an IDE based hard-drive.\r\n";
return false;
}
@@ -107,21 +107,21 @@ ATAInit_Retry:
/* differentiate ATA, ATAPI, SATA and SATAPI */
if (cl == 0x14 && ch == 0xEB) {
- kcout << "NewOS: PATAPI drive detected.\r\n";
+ kcout << "New OS: PATAPI drive detected.\r\n";
kATADeviceType = kATADevicePATA_PI;
}
if (cl == 0x69 && ch == 0x96) {
- kcout << "NewOS: SATAPI drive detected.\r\n";
+ kcout << "New OS: SATAPI drive detected.\r\n";
kATADeviceType = kATADeviceSATA_PI;
}
if (cl == 0x0 && ch == 0x0) {
- kcout << "NewOS: PATA drive detected.\r\n";
+ kcout << "New OS: PATA drive detected.\r\n";
kATADeviceType = kATADevicePATA;
}
if (cl == 0x3c && ch == 0xc3) {
- kcout << "NewOS: SATA drive detected.\r\n";
+ kcout << "New OS: SATA drive detected.\r\n";
kATADeviceType = kATADeviceSATA;
}
@@ -148,7 +148,7 @@ Void drv_std_read(UInt64 Lba, UInt16 IO, UInt8 Master, Char* Buf,
for (SizeT IndexOff = 0; IndexOff < Size; ++IndexOff) {
WideChar chr = In16(IO + ATA_REG_DATA);
-
+
Buf[IndexOff] = chr;
}
}
@@ -171,11 +171,11 @@ Void drv_std_write(UInt64 Lba, UInt16 IO, UInt8 Master, Char* Buf,
for (SizeT IndexOff = 0; IndexOff < Size; ++IndexOff) {
Out16(IO + ATA_REG_DATA, Buf[IndexOff]);
-
+
}
}
/// @check is ATA detected?
Boolean drv_std_detected(Void) { return kATADetected; }
-#endif /* ifdef __ATA_PIO__ */ \ No newline at end of file
+#endif /* ifdef __ATA_PIO__ */
diff --git a/Private/NewBoot/Source/CDROM/.gitkeep b/Private/HALKit/POWER/.gitkeep
index e69de29b..e69de29b 100644
--- a/Private/NewBoot/Source/CDROM/.gitkeep
+++ b/Private/HALKit/POWER/.gitkeep
diff --git a/Private/NewBoot/Source/CDROM/EFI/BOOT/.gitkeep b/Private/HALKit/POWER/APM/.gitkeep
index e69de29b..e69de29b 100644
--- a/Private/NewBoot/Source/CDROM/EFI/BOOT/.gitkeep
+++ b/Private/HALKit/POWER/APM/.gitkeep
diff --git a/Private/HALKit/POWER/HalContextSwitchPowerPC.s b/Private/HALKit/POWER/HalContextSwitchPowerPC.s
new file mode 100644
index 00000000..75c9f37a
--- /dev/null
+++ b/Private/HALKit/POWER/HalContextSwitchPowerPC.s
@@ -0,0 +1,28 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+------------------------------------------- */
+
+.align 4
+.type name, @function
+.text
+.globl rt_do_context_switch
+
+/* r3 (3) = assigner stack, r4 (4) = assignee stack */
+rt_do_context_switch:
+ lwz 0(%4), 0(%3)
+ lwz 4(%4), 4(%3)
+ lwz 8(%4), 8(%3)
+ lwz 12(%4), 12(%3)
+ lwz 14(%4), 14(%3)
+ lwz 18(%4), 18(%3)
+ lwz 22(%4), 22(%3)
+ lwz 24(%4), 24(%3)
+ lwz 28(%4), 28(%3)
+ lwz 32(%4), 32(%3)
+ lwz 34(%4), 34(%3)
+ lwz 38(%4), 38(%3)
+
+ /* we are done here, the assignee should start executing code now. */
+ blr
diff --git a/Private/HALKit/PowerPC/HalHardware.cxx b/Private/HALKit/POWER/HalHardware.cxx
index 5d09805d..693bf70e 100644
--- a/Private/HALKit/PowerPC/HalHardware.cxx
+++ b/Private/HALKit/POWER/HalHardware.cxx
@@ -4,7 +4,7 @@
------------------------------------------- */
-#include <HALKit/PowerPC/Processor.hpp>
+#include <HALKit/POWER/Processor.hpp>
#include <KernelKit/DebugOutput.hpp>
namespace NewOS {
diff --git a/Private/HALKit/PowerPC/HalSMPManager.cxx b/Private/HALKit/POWER/HalHart.cxx
index 26ebc399..75eeb3f7 100644
--- a/Private/HALKit/PowerPC/HalSMPManager.cxx
+++ b/Private/HALKit/POWER/HalHart.cxx
@@ -4,8 +4,9 @@
------------------------------------------- */
-#include <HALKit/PowerPC/Processor.hpp>
+#include <HALKit/POWER/Processor.hpp>
#include <KernelKit/DebugOutput.hpp>
+#include <HALKit/POWER/Hart.hxx>
using namespace NewOS;
@@ -15,4 +16,4 @@ void rt_wakeup_thread(HAL::StackFramePtr stack) {}
/// @brief makes thread sleep.
/// hooks and hangs thread to prevent code from executing.
-void rt_hang_thread(HAL::StackFramePtr stack) {} \ No newline at end of file
+void rt_hang_thread(HAL::StackFramePtr stack) {}
diff --git a/Private/HALKit/PowerPC/HalSerialPort.cxx b/Private/HALKit/POWER/HalSerialPort.cxx
index 36878b61..cf943371 100644
--- a/Private/HALKit/PowerPC/HalSerialPort.cxx
+++ b/Private/HALKit/POWER/HalSerialPort.cxx
@@ -4,13 +4,13 @@
------------------------------------------- */
-#include <HALKit/PowerPC/Processor.hpp>
+#include <HALKit/POWER/Processor.hpp>
#include <KernelKit/DebugOutput.hpp>
using namespace NewOS;
/// @brief Writes to COM1.
-/// @param bytes
+/// @param bytes
void ke_io_write(const Char* bytes) {
if (!bytes) return;
@@ -21,4 +21,4 @@ void ke_io_write(const Char* bytes) {
// TODO
++index;
}
-} \ No newline at end of file
+}
diff --git a/Private/Servers/CoreDisplay/Headers/CDBitBlt.h b/Private/HALKit/POWER/HalStartSequence.s
index 21823755..f50a4d4f 100644
--- a/Private/Servers/CoreDisplay/Headers/CDBitBlt.h
+++ b/Private/HALKit/POWER/HalStartSequence.s
@@ -2,9 +2,13 @@
Copyright Mahrouss Logic
- File: CDBitBlt.h
- Purpose: Userbuffer to Framebuffer magic.
-
------------------------------------------- */
-#pragma once \ No newline at end of file
+.globl Main
+.extern HalKernelMain
+.align 4
+.text
+
+Main:
+ bl HalKernelMain
+ blr
diff --git a/Private/HALKit/PowerPC/HalThread.cxx b/Private/HALKit/POWER/HalThread.cxx
index a91e7f28..c79b4fb7 100644
--- a/Private/HALKit/PowerPC/HalThread.cxx
+++ b/Private/HALKit/POWER/HalThread.cxx
@@ -4,7 +4,7 @@
------------------------------------------- */
-#include <HALKit/PowerPC/Processor.hpp>
+#include <HALKit/POWER/Processor.hpp>
#include <KernelKit/DebugOutput.hpp>
extern "C" NewOS::HAL::StackFramePtr rt_get_current_context() { return nullptr; }
diff --git a/Private/HALKit/PowerPC/HalVirtualMemory.cxx b/Private/HALKit/POWER/HalVirtualMemory.cxx
index 301bda0c..c138d76f 100644
--- a/Private/HALKit/PowerPC/HalVirtualMemory.cxx
+++ b/Private/HALKit/POWER/HalVirtualMemory.cxx
@@ -4,14 +4,13 @@
------------------------------------------- */
-#include <HALKit/PowerPC/ppc-cpu.h>
-#include <HALKit/PowerPC/ppc-mmu.h>
+#include <HALKit/POWER/ppc-cpu.h>
+#include <HALKit/POWER/ppc-mmu.h>
-#include <HALKit/PowerPC/Processor.hpp>
+#include <HALKit/POWER/Processor.hpp>
#include <KernelKit/DebugOutput.hpp>
-/// NOTE: refer to: https://www.nxp.com/docs/en/white-paper/POWRPCARCPRMRM.pdf,
-/// or in /Developer/PDF/POWRPCARCPRMRM.pdf
+/// @note refer to our SoC documentation.
using namespace NewOS;
diff --git a/Private/HALKit/POWER/Hart.hxx b/Private/HALKit/POWER/Hart.hxx
new file mode 100644
index 00000000..2a908fcf
--- /dev/null
+++ b/Private/HALKit/POWER/Hart.hxx
@@ -0,0 +1,27 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+ File: Hart.hxx
+ Purpose: POWER hardware threads.
+
+ Revision History:
+
+ 14/04/24: Added file (amlel)
+
+------------------------------------------- */
+
+#pragma once
+
+#include <NewKit/Defines.hpp>
+
+/// @brief hardware thread indentification type.
+typedef NewOS::Int32 PPCHartType;
+
+/// @brief Hardware thread information structure.
+typedef struct HalHardwareThread {
+ NewOS::UIntPtr fStartAddress;
+ NewOS::UInt8 fPrivleged : 1;
+ NewOS::UInt32 fPageFlags;
+ PPCHartType fIdentNumber;
+} HalHardwareThread;
diff --git a/Private/NewBoot/Source/HEL/PowerPC/.gitkeep b/Private/HALKit/POWER/MBCI/.gitkeep
index e69de29b..e69de29b 100644
--- a/Private/NewBoot/Source/HEL/PowerPC/.gitkeep
+++ b/Private/HALKit/POWER/MBCI/.gitkeep
diff --git a/Private/Servers/CoreDisplay/Headers/CDServerStartup.h b/Private/HALKit/POWER/MBCI/HalMBCIHost.cxx
index 47f369ae..8ad039fe 100644
--- a/Private/Servers/CoreDisplay/Headers/CDServerStartup.h
+++ b/Private/HALKit/POWER/MBCI/HalMBCIHost.cxx
@@ -2,9 +2,7 @@
Copyright Mahrouss Logic
- File: CDServerStartup.h
- Purpose: Server entrypoint.
-
------------------------------------------- */
-#pragma once \ No newline at end of file
+#include <HALKit/POWER/Processor.hpp>
+#include <KernelKit/DebugOutput.hpp>
diff --git a/Private/HALKit/PowerPC/Processor.hpp b/Private/HALKit/POWER/Processor.hpp
index 19f8e799..d6fbfb89 100644
--- a/Private/HALKit/PowerPC/Processor.hpp
+++ b/Private/HALKit/POWER/Processor.hpp
@@ -2,7 +2,7 @@
Copyright Mahrouss Logic
- Purpose: PowerPC processor header.
+ Purpose: POWER processor header.
------------------------------------------- */
@@ -11,12 +11,12 @@
#include <NewKit/Defines.hpp>
#include <NewKit/Utils.hpp>
-#define __PPC_ALIGN __attribute__((aligned(4)))
+#define kHalPPCAlignment __attribute__((aligned(4)))
namespace NewOS::HAL {
typedef UIntPtr Reg;
-struct __PPC_ALIGN StackFrame {
+struct kHalPPCAlignment StackFrame {
Reg R0;
Reg R1;
Reg R2;
@@ -34,13 +34,17 @@ typedef StackFrame* StackFramePtr;
inline void rt_halt() {
while (1) {
-
+ asm volatile("mr 0, 0"); // no oop.
}
}
-inline void rt_cli() {}
+inline void rt_cli() {
+ asm volatile ("mr 0, 0"); // no oop
+}
} // namespace NewOS::HAL
-extern "C" void int_handle_math(NewOS::UIntPtr sp);
-extern "C" void int_handle_pf(NewOS::UIntPtr sp);
-extern "C" void* __ppc_alloca(size_t sz);
+EXTERN_C void int_handle_math(NewOS::UIntPtr sp);
+EXTERN_C void int_handle_pf(NewOS::UIntPtr sp);
+
+/// @brief Flush system TLB.
+EXTERN_C void hal_flush_tlb();
diff --git a/Private/HALKit/PowerPC/ppc-cpu.h b/Private/HALKit/POWER/ppc-cpu.h
index 4bc6e9f0..74003329 100644
--- a/Private/HALKit/PowerPC/ppc-cpu.h
+++ b/Private/HALKit/POWER/ppc-cpu.h
@@ -17,7 +17,7 @@ struct pt_regs {
unsigned long nip;
};
-#else
+#else
#include <asm/ptrace.h>
#include <asm/types.h>
#endif
@@ -880,8 +880,8 @@ struct pt_regs {
#define PVR_REV(pvr) (((pvr) >> 0) & 0xFFFF) /* Revison field */
/*
- * AMCC has further subdivided the standard PowerPC 16-bit version and
- * revision subfields of the PVR for the PowerPC 403s into the following:
+ * AMCC has further subdivided the standard ppc 16-bit version and
+ * revision subfields of the PVR for the ppc 403s into the following:
*/
#define PVR_FAM(pvr) (((pvr) >> 20) & 0xFFF) /* Family field */
@@ -990,7 +990,7 @@ struct pt_regs {
/*
* For the 8xx processors, all of them report the same PVR family for
- * the PowerPC core. The various versions of these processors must be
+ * the ppc core. The various versions of these processors must be
* differentiated by the version number in the Communication Processor
* Module (CPM).
*/
diff --git a/Private/HALKit/PowerPC/ppc-mmu.h b/Private/HALKit/POWER/ppc-mmu.h
index 372935aa..5a149243 100644
--- a/Private/HALKit/PowerPC/ppc-mmu.h
+++ b/Private/HALKit/POWER/ppc-mmu.h
@@ -1,6 +1,3 @@
-/*
- * PowerPC memory management structures
- */
#ifndef _PPC_MMU_H_
#define _PPC_MMU_H_
@@ -252,7 +249,7 @@ extern void print_bats(void);
#define MI_IDXMASK 0x00001f00 /* TLB index to be loaded */
#define MI_RESETVAL 0x00000000 /* Value of register at reset */
-/* These are the Ks and Kp from the PowerPC books. For proper operation,
+/* These are the Ks and Kp from the ppc books. For proper operation,
* Ks = 0, Kp = 1.
*/
#define MI_AP 786
@@ -311,7 +308,7 @@ extern void print_bats(void);
#define MC_ASIDMASK 0x0000000f /* Bits used for ASID value */
-/* These are the Ks and Kp from the PowerPC books. For proper operation,
+/* These are the Ks and Kp from the ppc books. For proper operation,
* Ks = 0, Kp = 1.
*/
#define MD_AP 794
@@ -368,7 +365,7 @@ extern void print_bats(void);
#define M_TW 799
/*
- * At present, all PowerPC 400-class processors share a similar TLB
+ * At present, all ppc 400-class processors share a similar TLB
* architecture. The instruction and data sides share a unified,
* 64-entry, fully-associative TLB which is maintained totally under
* software control. In addition, the instruction side has a
@@ -797,4 +794,4 @@ void change_tlb(uint32_t vaddr, uint32_t size, uint32_t tlb_word2_i_value);
#endif /* __ASSEMBLY__ */
#endif /* CONFIG_440 */
-#endif /* _PPC_MMU_H_ */ \ No newline at end of file
+#endif /* _PPC_MMU_H_ */
diff --git a/Private/HALKit/PowerPC/HalCoreContextSwitchPowerPC.s b/Private/HALKit/PowerPC/HalCoreContextSwitchPowerPC.s
deleted file mode 100644
index 0bf6418d..00000000
--- a/Private/HALKit/PowerPC/HalCoreContextSwitchPowerPC.s
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -------------------------------------------
-
- Copyright Mahrouss Logic
-
-------------------------------------------- */
-
-.align 4
-.type name, @function
-.text
-.globl rt_do_context_switch
-
-/* r3 = assigner stack, r4 = assignee stack */
-rt_do_context_switch:
-
- lwz 0(%r4), 0(%r3)
- lwz 4(%r4), 4(%r3)
- lwz 8(%r4), 8(%r3)
- lwz 12(%r4), 12(%r3)
- lwz 14(%r4), 14(%r3)
- lwz 18(%r4), 18(%r3)
- lwz 22(%r4), 22(%r3)
- lwz 24(%r4), 24(%r3)
- lwz 28(%r4), 28(%r3)
- lwz 32(%r4), 32(%r3)
- lwz 34(%r4), 34(%r3)
- lwz 38(%r4), 38(%r3)
-
- mr %r31, %r4
-
- bl
diff --git a/Private/HALKit/PowerPC/HalStartSequence.s b/Private/HALKit/PowerPC/HalStartSequence.s
deleted file mode 100644
index 112ac73f..00000000
--- a/Private/HALKit/PowerPC/HalStartSequence.s
+++ /dev/null
@@ -1,6 +0,0 @@
-.globl Main
-.align 4
-.text
-
-Main:
- b Main
diff --git a/Private/HALKit/PowerPC/Hart.hxx b/Private/HALKit/PowerPC/Hart.hxx
deleted file mode 100644
index 618cbd97..00000000
--- a/Private/HALKit/PowerPC/Hart.hxx
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -------------------------------------------
-
- Copyright Mahrouss Logic
-
- File: Hart.hxx
- Purpose: PowerPC hardware threads.
-
- Revision History:
-
- 14/04/24: Added file (amlel)
-
-------------------------------------------- */
-
-#pragma once
-
-#include <NewKit/Defines.hpp>
-
-typedef NewOS::Int32 PPCHartType;
-
-
diff --git a/Private/HALKit/PowerPC/PCI/HalDevice.cxx b/Private/HALKit/PowerPC/PCI/HalDevice.cxx
deleted file mode 100644
index 8b137891..00000000
--- a/Private/HALKit/PowerPC/PCI/HalDevice.cxx
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/Private/KernelKit/DriveManager.hxx b/Private/KernelKit/DriveManager.hxx
index e66dedc8..c3d7c484 100644
--- a/Private/KernelKit/DriveManager.hxx
+++ b/Private/KernelKit/DriveManager.hxx
@@ -92,7 +92,7 @@ class MountpointInterface final {
return &mD;
default: {
DbgLastError() = kErrorNoSuchDisk;
- kcout << "NewOS: No such disk.\n";
+ kcout << "New OS: No such disk.\n";
break;
}
@@ -106,13 +106,13 @@ class MountpointInterface final {
};
/// @brief Unimplemented drive.
-/// @param pckt
-/// @return
+/// @param pckt
+/// @return
Void ke_drv_unimplemented(DriveTrait::DrivePacket* pckt);
/// @brief Gets the drive kind (ATA, SCSI, AHCI...)
-/// @param
-/// @return
+/// @param
+/// @return
const Char* ke_drive_kind(Void);
/// @brief Makes a new drive.
diff --git a/Private/KernelKit/HError.hpp b/Private/KernelKit/HError.hpp
index a3ea5d61..b82f7c6b 100644
--- a/Private/KernelKit/HError.hpp
+++ b/Private/KernelKit/HError.hpp
@@ -35,6 +35,7 @@ inline constexpr HError kErrorOutOfTeamSlot = 51;
inline constexpr HError kErrorHeapNotPresent = 52;
inline constexpr HError kErrorNoEntrypoint = 53;
inline constexpr HError kErrorDiskIsCorrupted = 54;
+inline constexpr HError kErrorDisk = 55;
inline constexpr HError kErrorUnimplemented = 0;
Boolean ke_bug_check(void) noexcept;
diff --git a/Private/KernelKit/KernelHeap.hpp b/Private/KernelKit/KernelHeap.hpp
index 5358236e..471dcb54 100644
--- a/Private/KernelKit/KernelHeap.hpp
+++ b/Private/KernelKit/KernelHeap.hpp
@@ -13,7 +13,7 @@
#include <NewKit/Defines.hpp>
namespace NewOS {
-
+
/// @brief Declare pointer as free.
/// @param heapPtr the pointer.
/// @return
@@ -31,7 +31,7 @@ Boolean ke_is_valid_heap(VoidPtr ptr);
/// @return the pointer
voidPtr ke_new_ke_heap(SizeT sz, const bool rw, const bool user);
-/// @brief Protect the heap pointer with a CRC32.
+/// @brief Protect the heap with a CRC value.
/// @param heapPtr HIB pointer.
/// @return if it valid: point has crc now., otherwise fail.
Boolean ke_protect_ke_heap(VoidPtr heapPtr);
diff --git a/Private/KernelKit/PEFCodeManager.hxx b/Private/KernelKit/PEFCodeManager.hxx
index d9e857de..1f5269ae 100644
--- a/Private/KernelKit/PEFCodeManager.hxx
+++ b/Private/KernelKit/PEFCodeManager.hxx
@@ -24,7 +24,7 @@ class PEFLoader : public LoaderInterface {
public:
explicit PEFLoader(const VoidPtr blob);
- explicit PEFLoader(const char *path);
+ explicit PEFLoader(const Char* path);
~PEFLoader() override;
public:
diff --git a/Private/KernelKit/SMPManager.hpp b/Private/KernelKit/SMPManager.hpp
index 631b29ea..17ea9d38 100644
--- a/Private/KernelKit/SMPManager.hpp
+++ b/Private/KernelKit/SMPManager.hpp
@@ -31,7 +31,7 @@ enum ThreadKind {
///
/// \name HardwareThread
-/// @brief CPU Hardware Thread (PowerPC, Intel, or NewCPU)
+/// @brief CPU Hardware Thread (POWER, x64, or 64x0)
///
class HardwareThread final {
diff --git a/Private/KernelKit/XCOFF.hxx b/Private/KernelKit/XCOFF.hxx
index 35ca9896..631efdf3 100644
--- a/Private/KernelKit/XCOFF.hxx
+++ b/Private/KernelKit/XCOFF.hxx
@@ -16,14 +16,14 @@
#include <NewKit/Defines.hpp>
-#define kXCOFF64Magic 0x01F7
+#define kXCOFF64Magic 0x01F7
#define kXCOFFRelFlg 0x0001
#define kXCOFFExecutable 0x0002
#define kXCOFFLnno 0x0004
#define kXCOFFLSyms 0x0008
-/// @brief XCoff file header, meant for PowerPC programs.
+/// @brief XCoff file header, meant for POWER apps.
typedef struct XCoffFileHeader
{
NewOS::UInt16 fMagic;
@@ -35,4 +35,4 @@ typedef struct XCoffFileHeader
NewOS::UInt16 fOptHdr; // ?: Number of bytes in optional header
} XCoffFileHeader;
-#endif // ifndef __XCOFF__ \ No newline at end of file
+#endif // ifndef __XCOFF__
diff --git a/Private/KernelRsrc.rsrc b/Private/KernelRsrc.rsrc
index 7cdcf0e0..1fab6304 100644
--- a/Private/KernelRsrc.rsrc
+++ b/Private/KernelRsrc.rsrc
@@ -1,4 +1,4 @@
-1 ICON "Root/Boot/kernel-logo.ico"
+1 ICON "Root/Boot/Icons/kernel-logo.ico"
#include "CompilerKit/Version.hxx"
@@ -11,7 +11,7 @@ BEGIN
BLOCK "080904E4"
BEGIN
VALUE "CompanyName", "Mahrouss-Logic"
- VALUE "FileDescription", "NewOS multiplatform kernel."
+ VALUE "FileDescription", "New OS multiplatform kernel."
VALUE "FileVersion", KERNEL_VERSION
VALUE "InternalName", "NewKernel"
VALUE "LegalCopyright", "Mahrouss-Logic"
diff --git a/Private/NewBoot/BootKit/BootKit.hxx b/Private/NewBoot/BootKit/BootKit.hxx
index 1fbd0aef..117e32df 100644
--- a/Private/NewBoot/BootKit/BootKit.hxx
+++ b/Private/NewBoot/BootKit/BootKit.hxx
@@ -11,6 +11,12 @@
#pragma once
+/***********************************************************************************/
+/// Framebuffer helpers.
+/***********************************************************************************/
+
+#define RGB(R, G, B) (UInt32)(0x##R##G##B)
+
class BTextWriter;
class BFileReader;
class BFileRunner;
@@ -18,9 +24,20 @@ class BVersionString;
#include <BootKit/HW/ATA.hxx>
#include <CompilerKit/Version.hxx>
+
+/***********************************************************************************/
+/// Include other APIs.
+/***********************************************************************************/
+
+#include <BootKit/Platform.hxx>
+#include <BootKit/Protocol.hxx>
+
#ifdef __EFI_x86_64__
+///! The Boot page provided to NewKernel.
+#define kBootVirtualAddress (0xfffffff80000000)
#include <FirmwareKit/EFI.hxx>
#endif // ifdef __EFI_x86_64__
+
#include <FirmwareKit/EPM.hxx>
#include <NewKit/Defines.hpp>
@@ -68,8 +85,10 @@ NewOS::SizeT BSetMem(CharacterTypeUTF8 *src, const CharacterTypeUTF8 byte,
/// String length functions.
+/// @brief get string length.
NewOS::SizeT BStrLen(const CharacterTypeUTF16 *ptr);
+/// @brief set memory with custom value.
NewOS::SizeT BSetMem(CharacterTypeUTF16 *src, const CharacterTypeUTF16 byte,
const NewOS::SizeT len);
@@ -83,7 +102,8 @@ class BFileReader final {
EfiHandlePtr ImageHandle);
~BFileReader();
- Void ReadAll();
+ public:
+ Void ReadAll(SizeT until, SizeT chunk = 4096);
enum {
kOperationOkay,
@@ -94,15 +114,17 @@ class BFileReader final {
kCount,
};
- Int32 &Error() { return mErrorCode; }
- VoidPtr Blob() { return mBlob; }
- EfiFileProtocolPtr File() { return mFile; }
- UInt64 &Size() { return mSizeFile; }
+ /// @brief error code getter.
+ /// @return the error code.
+ Int32 &Error();
- UInt64 &Size(const UInt64 &Sz) {
- mSizeFile = Sz;
- return mSizeFile;
- }
+ /// @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;
@@ -119,14 +141,13 @@ class BFileReader final {
typedef UInt8 *BlobType;
-#define kMaxReadSize (320)
-
-/***********************************************************************************/
-/// Include other APIs.
-/***********************************************************************************/
+class BVersionString final {
+ public:
+ static const CharacterTypeUTF16 *Shared() { return BOOTLOADER_VERSION; }
+};
-#include <BootKit/Platform.hxx>
-#include <BootKit/Protocol.hxx>
+/// @brief Bootloader main type.
+typedef void (*BootMainKind)(HEL::HandoverInformationHeader *handoverInfo);
/***********************************************************************************/
/// Provide some useful processor features.
@@ -134,42 +155,16 @@ typedef UInt8 *BlobType;
#ifdef __EFI_x86_64__
-inline void Out8(UInt16 port, UInt8 value) {
- asm volatile("outb %%al, %1" : : "a"(value), "Nd"(port) : "memory");
-}
-
-inline void Out16(UInt16 port, UInt16 value) {
- asm volatile("outw %%ax, %1" : : "a"(value), "Nd"(port) : "memory");
-}
-
-inline void Out32(UInt16 port, UInt32 value) {
- asm volatile("outl %%eax, %1" : : "a"(value), "Nd"(port) : "memory");
-}
-
-inline UInt8 In8(UInt16 port) {
- UInt8 value;
- asm volatile("inb %1, %%al" : "=a"(value) : "Nd"(port) : "memory");
-
- return value;
-}
-
-inline UInt16 In16(UInt16 port) {
- UInt16 value;
- asm volatile("inw %%dx, %%ax" : "=a"(value) : "d"(port));
-
- return value;
-}
-
-inline UInt32 In32(UInt16 port) {
- UInt32 value;
- asm volatile("inl %1, %%eax" : "=a"(value) : "Nd"(port) : "memory");
-
- return value;
-}
-
/***
* Common processor instructions.
-*/
+ */
+
+EXTERN_C void Out8(UInt16 port, UInt8 value);
+EXTERN_C void Out16(UInt16 port, UInt16 value);
+EXTERN_C void Out32(UInt16 port, UInt32 value);
+EXTERN_C UInt8 In8(UInt16 port);
+EXTERN_C UInt16 In16(UInt16 port);
+EXTERN_C UInt32 In32(UInt16 port);
EXTERN_C void rt_hlt();
EXTERN_C void rt_cli();
@@ -179,50 +174,8 @@ EXTERN_C void rt_std();
#endif // __EFI_x86_64__
-/***********************************************************************************/
-/// Framebuffer.
-/***********************************************************************************/
-
-#define RGB(R, G, B) (UInt32)(0x##R##G##B)
-
-const UInt32 kRgbRed = 0x000000FF;
-const UInt32 kRgbGreen = 0x0000FF00;
-const UInt32 kRgbBlue = 0x00FF0000;
-const UInt32 kRgbBlack = 0x00000000;
-const UInt32 kRgbWhite = 0x00FFFFFF;
-
-#ifdef __EFI_x86_64__
-/** GOP and related. */
-inline EfiGraphicsOutputProtocol *kGop;
-inline UInt16 kStride;
-inline EfiGUID kGopGuid;
-
-/**
-@brief Inits the QuickTemplate GUI framework.
-*/
-inline Void InitGOP() noexcept {
- kGopGuid = EfiGUID(EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID);
- kGop = nullptr;
-
- extern EfiBootServices *BS;
-
- BS->LocateProtocol(&kGopGuid, nullptr, (VoidPtr *)&kGop);
-
- kStride = 4;
-}
-#endif // __EFI_x86_64__
-
-class BVersionString final {
- public:
- static const CharacterTypeUTF16 *Shared() { return BOOTLOADER_VERSION; }
-};
-
-/// @brief Writes an EPM partition on the main disk.
-/// @param namePart the partition's name
-/// @param namePartLength the partition name's length
-/// @param bootDev the disk interface.
-/// @return
-EXTERN_C Boolean boot_write_epm_partition(const Char *namePart,
- SizeT namePartLength,
- BootDevice *bootDev);
-
+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;
diff --git a/Private/NewBoot/BootKit/Rsrc/Driver.rsrc b/Private/NewBoot/BootKit/Rsrc/Driver.rsrc
new file mode 100644
index 00000000..bdbd6ea1
--- /dev/null
+++ b/Private/NewBoot/BootKit/Rsrc/Driver.rsrc
@@ -0,0 +1,144 @@
+#define DRIVER_HEIGHT 138
+#define DRIVER_WIDTH 154
+
+// array size is 85008
+static const unsigned int Driver[] = {
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x40e3e3e3, 0x70e4e4e4, 0xafe3e3e3, 0xdfe4e4e4, 0xefe4e4e4, 0xfee5e5e5, 0xffe3e3e3, 0xfee4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe5e5e5, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xfee5e5e5, 0xffe4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xfee4e4e4, 0xffe4e4e4, 0xffe3e3e3, 0xfee4e4e4, 0xfee5e5e5, 0xffe4e4e4, 0xffe3e3e3, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe5e5e5, 0xfee4e4e4, 0xffe4e4e4, 0xfee4e4e4, 0xffe4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xfee4e4e4, 0xfee4e4e4, 0xffe4e4e4, 0xfee4e4e4, 0xfee4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xfee4e4e4, 0xffe3e3e3, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xfee4e4e4, 0xfee4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xfee4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xfee4e4e4, 0xfee4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xfee4e4e4, 0xffe4e4e4, 0xfee4e4e4, 0xffe4e4e4, 0xfee4e4e4, 0xfee4e4e4, 0xfee5e5e5, 0xffe3e3e3, 0xfee5e5e5, 0xffe4e4e4, 0xfee4e4e4, 0xfee4e4e4, 0xfee4e4e4, 0xfee4e4e4, 0xfee4e4e4, 0xfee4e4e4, 0xffe3e3e3, 0xffe4e4e4, 0xffe4e4e4, 0xffe3e3e3, 0xfee4e4e4, 0xfee4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xffe4e4e4, 0xfee4e4e4, 0xfee4e4e4, 0xffe4e4e4, 0xfee5e5e5, 0xfee5e5e5, 0xffe4e4e4, 0xffe4e4e4, 0xeee4e4e4, 0xcfe4e4e4, 0xafe3e3e3, 0x80e3e3e3, 0x40e3e3e3, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x10dfdfdf, 0x7fe5e5e5, 0xefe3e3e3, 0xffe3e3e3, 0xfee4e4e4, 0xfee3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xfee4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xfee4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe4e4e4, 0xffe3e3e3, 0xfee4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xfee4e4e4, 0xffe3e3e3, 0xfee4e4e4, 0xfee4e4e4, 0xfee4e4e4, 0xffe4e4e4, 0xfee4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xffe4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xfee4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xfee4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xfee4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xfee4e4e4, 0xfee4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xfee4e4e4, 0xfee4e4e4, 0xffe3e3e3, 0xfee4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xfee3e3e3, 0xffe3e3e3, 0xfee4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xfee4e4e4, 0xffe3e3e3, 0xffe4e4e4, 0xffe3e3e3, 0xfee4e4e4, 0xffe3e3e3, 0xffe4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xffe4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xfee4e4e4, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xfee4e4e4, 0xdfe4e4e4, 0x9fe4e4e4, 0x20e7e7e7, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x10dfdfdf, 0x8fe2e2e2, 0xfee3e3e3, 0xfee3e3e3, 0xffe2e2e2, 0xfee3e3e3, 0xfee3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xffe3e3e3, 0xfee3e3e3, 0xffe3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xffe3e3e3, 0xfee3e3e3, 0xffe3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xfee3e3e3, 0xffe2e2e2, 0xffe3e3e3, 0xffe2e2e2, 0xffe3e3e3, 0xffe2e2e2, 0xffe3e3e3, 0xffe3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe3e3e3, 0xffe2e2e2, 0xfee3e3e3, 0xfee3e3e3, 0xffe3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xfee3e3e3, 0xffe2e2e2, 0xfee3e3e3, 0xfee3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xfee3e3e3, 0xffe2e2e2, 0xffe3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xffe3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xfee3e3e3, 0xffe2e2e2, 0xfee3e3e3, 0xffe3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xfee3e3e3, 0xfee3e3e3, 0xffe3e3e3, 0xffe2e2e2, 0xffe3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe3e3e3, 0xfee3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xffe3e3e3, 0xffe3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xffe3e3e3, 0xfee3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xfee3e3e3, 0xfee3e3e3, 0xffe3e3e3, 0xffe3e3e3, 0xfee3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xffe3e3e3, 0xffe3e3e3, 0xfee3e3e3, 0xfee3e3e3, 0xffe3e3e3, 0xffe2e2e2, 0x9fe4e4e4, 0x20e7e7e7, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x6fe3e3e3, 0xeee2e2e2, 0xffe1e1e1, 0xffe2e2e2, 0xffe2e2e2, 0xffe1e1e1, 0xffe2e2e2, 0xffe1e1e1, 0xffe2e2e2, 0xffe1e1e1, 0xffe2e2e2, 0xffe2e2e2, 0xffe1e1e1, 0xffe2e2e2, 0xffe2e2e2, 0xfee2e2e2, 0xfee2e2e2, 0xfee2e2e2, 0xffe1e1e1, 0xffe2e2e2, 0xffe2e2e2, 0xffe1e1e1, 0xffe1e1e1, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe1e1e1, 0xffe2e2e2, 0xffe1e1e1, 0xffe2e2e2, 0xfee2e2e2, 0xffe1e1e1, 0xffe1e1e1, 0xfee2e2e2, 0xfee2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xfee2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xfee2e2e2, 0xffe2e2e2, 0xffe1e1e1, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xfee2e2e2, 0xffe2e2e2, 0xffe3e3e3, 0xfee2e2e2, 0xfee2e2e2, 0xfee2e2e2, 0xffe2e2e2, 0xffe1e1e1, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe1e1e1, 0xffe2e2e2, 0xffe2e2e2, 0xfee2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xfee2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xfee2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xfee3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xffe1e1e1, 0xffe1e1e1, 0xffe2e2e2, 0xfee2e2e2, 0xffe2e2e2, 0xffe1e1e1, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe1e1e1, 0xfee2e2e2, 0xfee2e2e2, 0xffe1e1e1, 0xfee2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xfee2e2e2, 0xffe2e2e2, 0xffe1e1e1, 0xffe1e1e1, 0xffe2e2e2, 0xfee2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe1e1e1, 0xfee3e3e3, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xfee2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xffe2e2e2, 0xfee2e2e2, 0xffe2e2e2, 0xfee3e3e3, 0xffe1e1e1, 0xffe1e1e1, 0xffe2e2e2, 0xfee2e2e2, 0xffe2e2e2, 0xffe1e1e1, 0xfee2e2e2, 0xffe1e1e1, 0xffe2e2e2, 0xdee3e3e3, 0x60e2e2e2, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x8fe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee1e1e1, 0xfee2e2e2, 0xfee1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee2e2e2, 0xffe1e1e1, 0xfee1e1e1, 0xffe1e1e1, 0xfee2e2e2, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee2e2e2, 0xffe1e1e1, 0xffe1e1e1, 0xfee1e1e1, 0xffe1e1e1, 0xffe2e2e2, 0xffe1e1e1, 0xfee1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee2e2e2, 0xfee2e2e2, 0xffe1e1e1, 0xffe1e1e1, 0xfee1e1e1, 0xfee2e2e2, 0xffe1e1e1, 0xfee2e2e2, 0xffe1e1e1, 0xfee2e2e2, 0xfee2e2e2, 0xfee2e2e2, 0xfee2e2e2, 0xffe1e1e1, 0xffe1e1e1, 0xfee2e2e2, 0xfee1e1e1, 0xffe1e1e1, 0xfee1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee1e1e1, 0xfee2e2e2, 0xffe1e1e1, 0xfee1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee1e1e1, 0xffe0e0e0, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee1e1e1, 0xfee2e2e2, 0xfee1e1e1, 0xfee2e2e2, 0xffe1e1e1, 0xfee1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee1e1e1, 0xffe2e2e2, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee2e2e2, 0xfee1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee2e2e2, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xffe1e1e1, 0xfee2e2e2, 0xffe1e1e1, 0x8fe1e1e1, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x10dfdfdf, 0xbfe0e0e0, 0xfee1e1e1, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee1e1e1, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee1e1e1, 0xfee1e1e1, 0xffe0e0e0, 0xffe0e0e0, 0xfee1e1e1, 0xffe0e0e0, 0xffe0e0e0, 0xfee1e1e1, 0xffe1e1e1, 0xffe0e0e0, 0xfee1e1e1, 0xffe1e1e1, 0xffe0e0e0, 0xffe0e0e0, 0xffe1e1e1, 0xffe0e0e0, 0xffe0e0e0, 0xfee1e1e1, 0xffe1e1e1, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee1e1e1, 0xffe0e0e0, 0xfee1e1e1, 0xffe0e0e0, 0xffe0e0e0, 0xfee1e1e1, 0xffe1e1e1, 0xffe0e0e0, 0xfee1e1e1, 0xffe0e0e0, 0xffe1e1e1, 0xfee1e1e1, 0xffe1e1e1, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee1e1e1, 0xffe0e0e0, 0xffe1e1e1, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xfee1e1e1, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee1e1e1, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe1e1e1, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee1e1e1, 0xfee1e1e1, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee1e1e1, 0xfee1e1e1, 0xffe0e0e0, 0xffe0e0e0, 0xfee1e1e1, 0xfee1e1e1, 0xffe0e0e0, 0xffe0e0e0, 0xfee1e1e1, 0xffe0e0e0, 0xffe0e0e0, 0xfee1e1e1, 0xcfe1e1e1, 0x10dfdfdf, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xcfe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xbfe0e0e0, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x8fe1e1e1, 0xffe0e0e0, 0xffdfdfdf, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffdfdfdf, 0xfee0e0e0, 0xfee0e0e0, 0xffdfdfdf, 0xffe0e0e0, 0xffdfdfdf, 0xffe0e0e0, 0xffe0e0e0, 0xffdfdfdf, 0xffdfdfdf, 0xfee0e0e0, 0xffe0e0e0, 0xffdfdfdf, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffdfdfdf, 0xffe0e0e0, 0xffdfdfdf, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffdfdfdf, 0xffdfdfdf, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xfee0e0e0, 0xffdfdfdf, 0xffe0e0e0, 0xffdfdfdf, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffdfdfdf, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffdfdfdf, 0xffdfdfdf, 0xffe0e0e0, 0xffe0e0e0, 0xffdfdfdf, 0xffe0e0e0, 0xffdfdfdf, 0xfee0e0e0, 0xffdfdfdf, 0xfee0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffdfdfdf, 0xffe0e0e0, 0xffdfdfdf, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffdfdfdf, 0xfee0e0e0, 0xffe0e0e0, 0xffe0e0e0, 0xffdfdfdf, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffdfdfdf, 0xfee0e0e0, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffe0e0e0, 0xffe0e0e0, 0xffdfdfdf, 0xffe0e0e0, 0xffdfdfdf, 0xffdfdfdf, 0xffe0e0e0, 0xffe0e0e0, 0xfee0e0e0, 0xffe0e0e0, 0xffdfdfdf, 0x8fe1e1e1, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x60dfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xfedfdfdf, 0xfedfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdedede, 0xffdedede, 0xffdfdfdf, 0xfedfdfdf, 0xffdfdfdf, 0xfee0e0e0, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xfee0e0e0, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xfedfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xfee0e0e0, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xfedfdfdf, 0xfedfdfdf, 0xfee0e0e0, 0xfee0e0e0, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xfee0e0e0, 0xffe0e0e0, 0xffdedede, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xfedfdfdf, 0xfedfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xfedfdfdf, 0xffdedede, 0xfedfdfdf, 0xfedfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdedede, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdedede, 0xffdfdfdf, 0xfedfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xfedfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xfedfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xfedfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xfedfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xfee0e0e0, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xfee0e0e0, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xfedfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0xffdfdfdf, 0x6fdfdfdf, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x20dfdfdf, 0xdfdedede, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xfedfdfdf, 0xfedfdfdf, 0xffdfdfdf, 0xffdedede, 0xffdfdfdf, 0xffdfdfdf, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xffdedede, 0xffdedede, 0xffdfdfdf, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xffdedede, 0xfedfdfdf, 0xffdedede, 0xfedfdfdf, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdfdfdf, 0xffdfdfdf, 0xfedfdfdf, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xfedfdfdf, 0xffdedede, 0xfedfdfdf, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdfdfdf, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xffdfdfdf, 0xffdedede, 0xfedfdfdf, 0xffdedede, 0xfedfdfdf, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xfedfdfdf, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xffdedede, 0xffdedede, 0xffdfdfdf, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdfdfdf, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xffdedede, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xfededede, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xfedfdfdf, 0xffdedede, 0xffdedede, 0xfedfdfdf, 0xffdedede, 0xefdedede, 0x10dfdfdf, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x9fdddddd, 0xfededede, 0xffdddddd, 0xffdddddd, 0xfededede, 0xffdedede, 0xffdddddd, 0xfededede, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdedede, 0xffdddddd, 0xfededede, 0xffdedede, 0xffdddddd, 0xffdedede, 0xffdedede, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdedede, 0xffdedede, 0xffdddddd, 0xffdedede, 0xffdedede, 0xfededede, 0xffdedede, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdedede, 0xfededede, 0xffdddddd, 0xffdedede, 0xffdddddd, 0xfededede, 0xffdedede, 0xffdddddd, 0xfededede, 0xfededede, 0xffdddddd, 0xffdddddd, 0xfededede, 0xfededede, 0xffdddddd, 0xfededede, 0xffdddddd, 0xffdddddd, 0xfededede, 0xffdedede, 0xfededede, 0xffdddddd, 0xffdddddd, 0xfededede, 0xfedfdfdf, 0xffdedede, 0xfededede, 0xffdddddd, 0xffdedede, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdedede, 0xfededede, 0xfededede, 0xffdddddd, 0xfededede, 0xffdddddd, 0xffdedede, 0xfededede, 0xffdedede, 0xffdddddd, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdddddd, 0xffdedede, 0xffdedede, 0xfededede, 0xffdddddd, 0xfededede, 0xfededede, 0xfededede, 0xffdedede, 0xfededede, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdedede, 0xfededede, 0xffdedede, 0xffdedede, 0xfededede, 0xffdedede, 0xfededede, 0xffdedede, 0xffdedede, 0xffdddddd, 0xfededede, 0xffdddddd, 0xffdedede, 0xffdddddd, 0xffdddddd, 0xfedddddd, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdedede, 0xffdddddd, 0xffdddddd, 0xffdedede, 0xffdedede, 0xffdddddd, 0xfededede, 0xffdddddd, 0xffdddddd, 0xfededede, 0xffdedede, 0xffdedede, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdedede, 0xfededede, 0xfededede, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0x8fdfdfdf, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x20dfdfdf, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdcdcdc, 0xfedddddd, 0xffdcdcdc, 0xffdddddd, 0xffdcdcdc, 0xfedddddd, 0xffdddddd, 0xffdcdcdc, 0xffdddddd, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdcdcdc, 0xffdddddd, 0xfedddddd, 0xfedddddd, 0xfedddddd, 0xffdcdcdc, 0xffdddddd, 0xfedddddd, 0xfedddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xffdcdcdc, 0xfedddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdcdcdc, 0xffdddddd, 0xffdcdcdc, 0xffdddddd, 0xffdddddd, 0xffdcdcdc, 0xffdcdcdc, 0xffdddddd, 0xffdddddd, 0xffdcdcdc, 0xfededede, 0xffdcdcdc, 0xffdddddd, 0xffdddddd, 0xffdcdcdc, 0xfededede, 0xffdcdcdc, 0xfedddddd, 0xffdddddd, 0xffdddddd, 0xffdcdcdc, 0xffdddddd, 0xffdddddd, 0xffdcdcdc, 0xfedddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdcdcdc, 0xffdddddd, 0xffdddddd, 0xfedddddd, 0xffdcdcdc, 0xfedddddd, 0xffdddddd, 0xffdddddd, 0xfedddddd, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xfedddddd, 0xfedddddd, 0xfedddddd, 0xffdddddd, 0xffdddddd, 0xfedddddd, 0xffdddddd, 0xffdddddd, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xffdddddd, 0xffdddddd, 0xfedddddd, 0xffdcdcdc, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdcdcdc, 0xffdddddd, 0xffdddddd, 0xfedddddd, 0xffdddddd, 0xffdddddd, 0xfedddddd, 0xffdcdcdc, 0xffdddddd, 0xffdddddd, 0xffdddddd, 0xffdcdcdc, 0xffdddddd, 0xffdddddd, 0xfedddddd, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xffdddddd, 0xfedddddd, 0xffdcdcdc, 0xffdcdcdc, 0x10dfdfdf, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x9fdcdcdc, 0xfedddddd, 0xfedddddd, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdddddd, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xfedddddd, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xffdcdcdc, 0xffdbdbdb, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xfedcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xfedcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdddddd, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xffdcdcdc, 0xfedcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xfedcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xfedcdcdc, 0xfedddddd, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xffdddddd, 0xffdcdcdc, 0xfedddddd, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xfedddddd, 0xfedcdcdc, 0xfedddddd, 0x80dbdddb, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xdfdcdcdc, 0xffdbdbdb, 0xffdbdbdb, 0xffdcdcdc, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xfedcdcdc, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xfedcdcdc, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xfedcdcdc, 0xffdbdbdb, 0xfedbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdcdcdc, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xfedcdcdc, 0xffdbdbdb, 0xfedbdbdb, 0xfedcdcdc, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xfedcdcdc, 0xffdbdbdb, 0xfedcdcdc, 0xffdcdcdc, 0xfedcdcdc, 0xffdbdbdb, 0xffdbdbdb, 0xffdcdcdc, 0xffdbdbdb, 0xffdcdcdc, 0xffdbdbdb, 0xffdcdcdc, 0xffdbdbdb, 0xfedcdcdc, 0xfedcdcdc, 0xffdbdbdb, 0xffdcdcdc, 0xffdbdbdb, 0xffdcdcdc, 0xffdcdcdc, 0xffdbdbdb, 0xffdcdcdc, 0xffdbdbdb, 0xfedcdcdc, 0xffdcdcdc, 0xfedcdcdc, 0xffdbdbdb, 0xfedcdcdc, 0xffdcdcdc, 0xffdbdbdb, 0xfedcdcdc, 0xffdbdbdb, 0xfedcdcdc, 0xfedcdcdc, 0xfedcdcdc, 0xfedcdcdc, 0xffdbdbdb, 0xffdbdbdb, 0xffdcdcdc, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xfedcdcdc, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xfedcdcdc, 0xffdbdbdb, 0xffdbdbdb, 0xfedcdcdc, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdcdcdc, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdcdcdc, 0xffdbdbdb, 0xfedbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xfedcdcdc, 0xfedcdcdc, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdcdcdc, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xeedddddd, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x40dbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdadada, 0xfedbdbdb, 0xffdbdbdb, 0xfedbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdadada, 0xffdadada, 0xffdadada, 0xfedbdbdb, 0xffdadada, 0xffdadada, 0xffdadada, 0xfedbdbdb, 0xffdadada, 0xfedbdbdb, 0xffdadada, 0xfedbdbdb, 0xffdadada, 0xffdadada, 0xfedbdbdb, 0xfedbdbdb, 0xffdadada, 0xffdbdbdb, 0xffdadada, 0xfedbdbdb, 0xffdadada, 0xfedbdbdb, 0xfedbdbdb, 0xffdadada, 0xffdadada, 0xffdadada, 0xfedbdbdb, 0xffdbdbdb, 0xffdadada, 0xffdadada, 0xffdadada, 0xfedbdbdb, 0xfedbdbdb, 0xffdadada, 0xffdadada, 0xffdadada, 0xfedbdbdb, 0xffdbdbdb, 0xffdadada, 0xffdbdbdb, 0xfedbdbdb, 0xfedbdbdb, 0xffdbdbdb, 0xffdadada, 0xffdadada, 0xffdbdbdb, 0xffdadada, 0xfedbdbdb, 0xffdadada, 0xffdbdbdb, 0xffdbdbdb, 0xfedbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xfedbdbdb, 0xffdadada, 0xfedbdbdb, 0xffdadada, 0xffdbdbdb, 0xffdadada, 0xfedbdbdb, 0xffdadada, 0xffdbdbdb, 0xffdadada, 0xfedbdbdb, 0xffdbdbdb, 0xfedbdbdb, 0xfedbdbdb, 0xffdadada, 0xffdadada, 0xffdadada, 0xfedbdbdb, 0xffdbdbdb, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdbdbdb, 0xfedbdbdb, 0xffdbdbdb, 0xfedbdbdb, 0xffdbdbdb, 0xffdadada, 0xffdadada, 0xffdbdbdb, 0xffdadada, 0xffdadada, 0xfedbdbdb, 0xffdbdbdb, 0xffdadada, 0xffdbdbdb, 0xfedbdbdb, 0xffdbdbdb, 0xfedbdbdb, 0xfedbdbdb, 0xffdadada, 0xffdadada, 0xffdadada, 0xfedbdbdb, 0xffdadada, 0xfedbdbdb, 0xffdadada, 0xffdadada, 0xffdadada, 0xfedbdbdb, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdbdbdb, 0xffdbdbdb, 0xffdbdbdb, 0xffdadada, 0xffdadada, 0xffdbdbdb, 0xfedbdbdb, 0xffdadada, 0xfedbdbdb, 0xffdadada, 0xffdadada, 0xffdbdbdb, 0xfedbdbdb, 0xffdadada, 0xffdbdbdb, 0x40d7d7d7, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x80dbdbdb, 0xffdadada, 0xffdadada, 0xfedadada, 0xffdadada, 0xffd9d9d9, 0xffdadada, 0xffdadada, 0xffdadada, 0xfedadada, 0xffdadada, 0xfedadada, 0xfedadada, 0xffdadada, 0xfedadada, 0xfedbdbdb, 0xffdadada, 0xfedadada, 0xffdadada, 0xffd9d9d9, 0xfedadada, 0xffdadada, 0xffdadada, 0xfedadada, 0xffdadada, 0xffd9d9d9, 0xffdadada, 0xfedadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xfedadada, 0xfedbdbdb, 0xfedadada, 0xffdadada, 0xffd9d9d9, 0xffdadada, 0xffdadada, 0xffdadada, 0xfedbdbdb, 0xffdadada, 0xffd9d9d9, 0xffdadada, 0xfedadada, 0xffdadada, 0xffdadada, 0xfedbdbdb, 0xfedadada, 0xffdadada, 0xfedbdbdb, 0xfedadada, 0xfedadada, 0xffdadada, 0xffdadada, 0xffd9d9d9, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xfedadada, 0xffdadada, 0xffdadada, 0xfedadada, 0xffdadada, 0xffdadada, 0xffd9d9d9, 0xfedadada, 0xffd9d9d9, 0xfedadada, 0xffdadada, 0xffd9d9d9, 0xffdadada, 0xfedadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffd9d9d9, 0xffdadada, 0xffdadada, 0xffd9d9d9, 0xffdadada, 0xffd9d9d9, 0xffd9d9d9, 0xfedadada, 0xfedadada, 0xffdadada, 0xffdadada, 0xfedadada, 0xffd9d9d9, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffd9d9d9, 0xfedadada, 0xfedadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xfedadada, 0xffdadada, 0xfedadada, 0xffd9d9d9, 0xffdadada, 0xffdadada, 0xfedbdbdb, 0xfedadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffd9d9d9, 0xffdadada, 0xfedadada, 0xfedadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xfedadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xfedadada, 0xffdadada, 0xffd9d9d9, 0xffdadada, 0x70d8d8d8, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xafd9d9d9, 0xffd9d9d9, 0xfedadada, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xfedadada, 0xffd9d9d9, 0xffd9d9d9, 0xfedadada, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xfedadada, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xfedadada, 0xffd9d9d9, 0xfed9d9d9, 0xffd9d9d9, 0xfedadada, 0xfed9d9d9, 0xffdadada, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xfedadada, 0xffd9d9d9, 0xfed9d9d9, 0xffd9d9d9, 0xffd8d8d8, 0xfedadada, 0xffd9d9d9, 0xfedadada, 0xfedadada, 0xffd9d9d9, 0xffd9d9d9, 0xfedadada, 0xffd9d9d9, 0xffd9d9d9, 0xfedadada, 0xffd8d8d8, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xfed9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xfed9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xfed9d9d9, 0xffd9d9d9, 0xfedadada, 0xfed9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xfedadada, 0xffd9d9d9, 0xfedadada, 0xfed9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xfed9d9d9, 0xffd9d9d9, 0xfed9d9d9, 0xffdadada, 0xffdadada, 0xffd9d9d9, 0xfedadada, 0xffd9d9d9, 0xffd9d9d9, 0xfed9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xfedadada, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xfedadada, 0xffd9d9d9, 0xfedadada, 0xfedadada, 0xffd9d9d9, 0xfedadada, 0xfedadada, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xfedadada, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xfed9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xfed9d9d9, 0xffd9d9d9, 0xfed9d9d9, 0xffd9d9d9, 0xffd8d8d8, 0xfed9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xffd9d9d9, 0xfed9d9d9, 0xafdbdbdb, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xced9d9d9, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xfed9d9d9, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xfed9d9d9, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xffd9d9d9, 0xfed9d9d9, 0xfed9d9d9, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xffd9d9d9, 0xfed9d9d9, 0xffd8d8d8, 0xffd9d9d9, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xfed9d9d9, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd9d9d9, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xffd9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xffd9d9d9, 0xfed9d9d9, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd9d9d9, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xffd9d9d9, 0xfed9d9d9, 0xffd8d8d8, 0xfed9d9d9, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xfed9d9d9, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xffd9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd9d9d9, 0xdfd9d9d9, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xeed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xfed8d8d8, 0xfed8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xeed8d8d8, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xfed8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd7d7d7, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd7d7d7, 0xffd8d8d8, 0xffd8d8d8, 0xffd7d7d7, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd7d7d7, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd7d7d7, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd7d7d7, 0xffd8d8d8, 0xffd7d7d7, 0xfed8d8d8, 0xffd7d7d7, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd7d7d7, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd7d7d7, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd7d7d7, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd7d7d7, 0xffd7d7d7, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd7d7d7, 0xffd8d8d8, 0xffd8d8d8, 0xffd7d7d7, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd7d7d7, 0xffd8d8d8, 0xffd8d8d8, 0xffd8d8d8, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xfed8d8d8, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xfed7d7d7, 0xfed7d7d7, 0xfed7d7d7, 0xffd7d7d7, 0xfed8d8d8, 0xfed7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xfed8d8d8, 0xfed8d8d8, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xfed7d7d7, 0xfed8d8d8, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xfed8d8d8, 0xfed8d8d8, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xfed8d8d8, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xfed8d8d8, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xfed8d8d8, 0xffd7d7d7, 0xfed7d7d7, 0xffd7d7d7, 0xfed8d8d8, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xfed8d8d8, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd8d8d8, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xfed8d8d8, 0xffd7d7d7, 0xfed8d8d8, 0xfed8d8d8, 0xffd7d7d7, 0xfed7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xfed8d8d8, 0xffd7d7d7, 0xfed7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xfed8d8d8, 0xffd7d7d7, 0xfed8d8d8, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xfed7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xfed8d8d8, 0xffd7d7d7, 0xffd7d7d7, 0xfed8d8d8, 0xffd7d7d7, 0xffd7d7d7, 0xfed8d8d8, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xfed8d8d8, 0xffd7d7d7, 0xfed8d8d8, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xfed7d7d7, 0xfed7d7d7, 0xfed7d7d7, 0xffd6d6d6, 0xfed7d7d7, 0xffd6d6d6, 0xffd7d7d7, 0xfed6d6d6, 0xffd6d6d6, 0xffd7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xfed7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xfed7d7d7, 0xffd6d6d6, 0xfed7d7d7, 0xfed7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xfed7d7d7, 0xfed7d7d7, 0xfed7d7d7, 0xffd6d6d6, 0xffd7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xffd7d7d7, 0xffd6d6d6, 0xfed6d6d6, 0xfed7d7d7, 0xffd6d6d6, 0xfed7d7d7, 0xfed7d7d7, 0xffd7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd7d7d7, 0xfed7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xfed7d7d7, 0xffd7d7d7, 0xffd6d6d6, 0xfed7d7d7, 0xfed7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xffd7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xffd7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xfed7d7d7, 0xfed7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd7d7d7, 0xfed7d7d7, 0xffd6d6d6, 0xfed7d7d7, 0xfed7d7d7, 0xffd6d6d6, 0xfed7d7d7, 0xffd6d6d6, 0xffd7d7d7, 0xffd6d6d6, 0xfed7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xfed7d7d7, 0xfed7d7d7, 0xffd7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xffd7d7d7, 0xffd6d6d6, 0xfed6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd7d7d7, 0xffd7d7d7, 0xffd6d6d6, 0xfed7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xfed7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd7d7d7, 0xffd6d6d6, 0xffd7d7d7, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd7d7d7, 0xfed7d7d7, 0xffd6d6d6, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xfed6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd5d5d5, 0xffd6d6d6, 0xfed6d6d6, 0xffd5d5d5, 0xffd6d6d6, 0xfed6d6d6, 0xfed6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xfed6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd6d6d6, 0xffd6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd6d6d6, 0xffd5d5d5, 0xffd6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd6d6d6, 0xfed6d6d6, 0xfed6d6d6, 0xffd5d5d5, 0xfed6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd5d5d5, 0xffd6d6d6, 0xffd5d5d5, 0xffd6d6d6, 0xffd6d6d6, 0xffd5d5d5, 0xffd6d6d6, 0xffd5d5d5, 0xfed6d6d6, 0xfed6d6d6, 0xfed6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd6d6d6, 0xffd5d5d5, 0xfed7d7d7, 0xfed6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd5d5d5, 0xffd6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd6d6d6, 0xfed6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed6d6d6, 0xffd5d5d5, 0xffd6d6d6, 0xfed6d6d6, 0xfed6d6d6, 0xffd5d5d5, 0xffd6d6d6, 0xfed6d6d6, 0xffd5d5d5, 0xfed6d6d6, 0xffd6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xfed6d6d6, 0xffd6d6d6, 0xfed6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed6d6d6, 0xfed6d6d6, 0xffd6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xfed6d6d6, 0xfed6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xfed6d6d6, 0xffd6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd6d6d6, 0xffd6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed6d6d6, 0xffd6d6d6, 0xfed6d6d6, 0xfed6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd6d6d6, 0xfed7d7d7, 0xfed6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed6d6d6, 0xfed6d6d6, 0xffd6d6d6, 0xffd6d6d6, 0xfed6d6d6, 0xfed6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd6d6d6, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xffd5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xfed6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd4d4d4, 0xfed6d6d6, 0xfed5d5d5, 0xfed6d6d6, 0xffd5d5d5, 0xfed6d6d6, 0xfed5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xffd4d4d4, 0xfed6d6d6, 0xfed5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xffd4d4d4, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xfed6d6d6, 0xffd5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xfed6d6d6, 0xfed5d5d5, 0xffd4d4d4, 0xffd4d4d4, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed6d6d6, 0xfed6d6d6, 0xfed5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xfed6d6d6, 0xffd5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd4d4d4, 0xfed5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xfed6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xffd4d4d4, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd5d5d5, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xfed5d5d5, 0xfed4d4d4, 0xffd4d4d4, 0xfed5d5d5, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd5d5d5, 0xffd4d4d4, 0xfed4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xfed5d5d5, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xfed5d5d5, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd5d5d5, 0xffd4d4d4, 0xfed4d4d4, 0xfed5d5d5, 0xffd4d4d4, 0xffd4d4d4, 0xfed4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd5d5d5, 0xffd4d4d4, 0xfed5d5d5, 0xffd5d5d5, 0xffd4d4d4, 0xfed4d4d4, 0xfed5d5d5, 0xffd4d4d4, 0xfed4d4d4, 0xfed5d5d5, 0xffd4d4d4, 0xfed4d4d4, 0xfed5d5d5, 0xfed5d5d5, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xfed5d5d5, 0xfed5d5d5, 0xffd4d4d4, 0xfed5d5d5, 0xffd5d5d5, 0xffd3d3d3, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd5d5d5, 0xfed5d5d5, 0xffd4d4d4, 0xfed4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xfed5d5d5, 0xffd4d4d4, 0xfed4d4d4, 0xffd4d4d4, 0xfed5d5d5, 0xfed5d5d5, 0xfed4d4d4, 0xffd4d4d4, 0xffd5d5d5, 0xffd4d4d4, 0xffd5d5d5, 0xfed5d5d5, 0xfed5d5d5, 0xffd4d4d4, 0xfed4d4d4, 0xffd4d4d4, 0xfed4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xfed5d5d5, 0xffd4d4d4, 0xfed5d5d5, 0xfed5d5d5, 0xfed5d5d5, 0xffd5d5d5, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd5d5d5, 0xfed4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xfed5d5d5, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xfed5d5d5, 0xffd4d4d4, 0xfed4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xffd3d3d3, 0xfed4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xfed4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xfed4d4d4, 0xfed4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd4d4d4, 0xffd3d3d3, 0xfed4d4d4, 0xfed4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xffd4d4d4, 0xffd3d3d3, 0xfed4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xfed4d4d4, 0xffd3d3d3, 0xfed4d4d4, 0xfed4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xfed4d4d4, 0xffd3d3d3, 0xfed4d4d4, 0xffd4d4d4, 0xffd3d3d3, 0xfed4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd3d3d3, 0xffd4d4d4, 0xffd4d4d4, 0xfed4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xfed4d4d4, 0xffd4d4d4, 0xffd3d3d3, 0xffd4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xfed4d4d4, 0xffd4d4d4, 0xffd3d3d3, 0xfed4d4d4, 0xffd3d3d3, 0xfed4d4d4, 0xffd3d3d3, 0xfed4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xffd4d4d4, 0xffd4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xfed4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd4d4d4, 0xffd3d3d3, 0xffd4d4d4, 0xffd3d3d3, 0xffd4d4d4, 0xffd3d3d3, 0xfed4d4d4, 0xffd3d3d3, 0xffd4d4d4, 0xffd3d3d3, 0xffd4d4d4, 0xffd3d3d3, 0xfed4d4d4, 0xfed4d4d4, 0xfed4d4d4, 0xffd4d4d4, 0xfed4d4d4, 0xfed4d4d4, 0xffd4d4d4, 0xffd3d3d3, 0xfed4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xfed4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xfed4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xfed4d4d4, 0xfed4d4d4, 0xffd4d4d4, 0xffd3d3d3, 0xfed4d4d4, 0xffd4d4d4, 0xfed4d4d4, 0xffd4d4d4, 0xffd4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xfed4d4d4, 0xffd3d3d3, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xfed3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd2d2d2, 0xfed3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xfed3d3d3, 0xfed3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd2d2d2, 0xfed3d3d3, 0xfed3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd3d3d3, 0xffd2d2d2, 0xfed3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd2d2d2, 0xfed3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xfed3d3d3, 0xffd3d3d3, 0xfed3d3d3, 0xffd3d3d3, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd3d3d3, 0xffd2d2d2, 0xffd2d2d2, 0xffd3d3d3, 0xfed3d3d3, 0xffd3d3d3, 0xffd2d2d2, 0xfed3d3d3, 0xfed3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd3d3d3, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd2d2d2, 0xfed3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd2d2d2, 0xfed3d3d3, 0xffd3d3d3, 0xfed3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xfed3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd2d2d2, 0xfed3d3d3, 0xfed3d3d3, 0xffd2d2d2, 0xffd2d2d2, 0xffd3d3d3, 0xfed4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xfed4d4d4, 0xffd3d3d3, 0xfed3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd2d2d2, 0xffd2d2d2, 0xffd3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd3d3d3, 0xfed3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xfed3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd2d2d2, 0xfed3d3d3, 0xffd3d3d3, 0xffd3d3d3, 0xfed3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xfed3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd3d3d3, 0xffd2d2d2, 0xffd3d3d3, 0xffd3d3d3, 0xffd2d2d2, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xffd2d2d2, 0xffd1d1d1, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xfed2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd1d1d1, 0xffd2d2d2, 0xffd2d2d2, 0xfed2d2d2, 0xfed2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xfed3d3d3, 0xffd2d2d2, 0xffd2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xfed2d2d2, 0xfed3d3d3, 0xfed2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xfed2d2d2, 0xfed3d3d3, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd3d3d3, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xfed2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xfed3d3d3, 0xffd2d2d2, 0xffd2d2d2, 0xfed2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xffd1d1d1, 0xffd2d2d2, 0xfed3d3d3, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xfed3d3d3, 0xffd1d1d1, 0xfed3d3d3, 0xffd2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xffd1d1d1, 0xffd2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xfed3d3d3, 0xffd2d2d2, 0xffd2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xfed2d2d2, 0xffd1d1d1, 0xffd2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xfed3d3d3, 0xfed2d2d2, 0xfed2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xfed3d3d3, 0xffd2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xfed2d2d2, 0xffd1d1d1, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xffd1d1d1, 0xfed2d2d2, 0xfed2d2d2, 0xfed2d2d2, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xfed2d2d2, 0xfed2d2d2, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xffd2d2d2, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xfed2d2d2, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xfed1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xffd2d2d2, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xffd0d0d0, 0xfed1d1d1, 0xffd0d0d0, 0xfed1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xffd1d1d1, 0xffd0d0d0, 0xffd1d1d1, 0xffd0d0d0, 0xffd1d1d1, 0xfed1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd1d1d1, 0xfed1d1d1, 0xfed1d1d1, 0xffd1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xfed1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xfed1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xffd1d1d1, 0xfed1d1d1, 0xffd1d1d1, 0xffd0d0d0, 0xffd1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xffd1d1d1, 0xfed1d1d1, 0xffd0d0d0, 0xfed1d1d1, 0xffd0d0d0, 0xffd1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xffd1d1d1, 0xffd0d0d0, 0xffd1d1d1, 0xffd0d0d0, 0xffd1d1d1, 0xfed1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd1d1d1, 0xffd1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xfed1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xffd1d1d1, 0xffd0d0d0, 0xfed1d1d1, 0xffd0d0d0, 0xfed1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd0d0d0, 0xffd1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd1d1d1, 0xfed1d1d1, 0xffd0d0d0, 0xfed1d1d1, 0xffd1d1d1, 0xffd0d0d0, 0xffd1d1d1, 0xffd1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xfed1d1d1, 0xffd1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd1d1d1, 0xfed1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd1d1d1, 0xfed1d1d1, 0xffd0d0d0, 0xfed1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xfed1d1d1, 0xfed1d1d1, 0xffd1d1d1, 0xffd0d0d0, 0xfed1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xfed1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xffd1d1d1, 0xfed1d1d1, 0xfed1d1d1, 0xffd0d0d0, 0xffd1d1d1, 0xffd0d0d0, 0xfed1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd1d1d1, 0xffd1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xfed0d0d0, 0xffd0d0d0, 0xffcfcfcf, 0xffd0d0d0, 0xffd0d0d0, 0xffcfcfcf, 0xfed0d0d0, 0xffcfcfcf, 0xffd0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xfed0d0d0, 0xfed0d0d0, 0xfed0d0d0, 0xffcfcfcf, 0xfed0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffd0d0d0, 0xffd0d0d0, 0xffcfcfcf, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xfed0d0d0, 0xffd0d0d0, 0xfed0d0d0, 0xffd0d0d0, 0xfed0d0d0, 0xffd0d0d0, 0xfed0d0d0, 0xffcfcfcf, 0xffd0d0d0, 0xfed0d0d0, 0xffcfcfcf, 0xfed0d0d0, 0xffd0d0d0, 0xfed0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffcfcfcf, 0xffd0d0d0, 0xfed1d1d1, 0xffd0d0d0, 0xffcfcfcf, 0xfed0d0d0, 0xfed0d0d0, 0xfed0d0d0, 0xffd0d0d0, 0xffcfcfcf, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xfed0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xfed0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xfed0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xfed0d0d0, 0xffd0d0d0, 0xffcfcfcf, 0xfed0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xfed0d0d0, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffd0d0d0, 0xffd0d0d0, 0xfed0d0d0, 0xfed0d0d0, 0xffd0d0d0, 0xffcfcfcf, 0xffd0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xfed0d0d0, 0xffd0d0d0, 0xffcfcfcf, 0xfed1d1d1, 0xfed0d0d0, 0xfed0d0d0, 0xfed0d0d0, 0xffd0d0d0, 0xffcfcfcf, 0xffd0d0d0, 0xffcfcfcf, 0xffd0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xfed0d0d0, 0xfed0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xfed1d1d1, 0xffd0d0d0, 0xffd0d0d0, 0xffcfcfcf, 0xffd0d0d0, 0xffd0d0d0, 0xfed0d0d0, 0xffcfcfcf, 0xffd0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffd0d0d0, 0xffcfcfcf, 0xfed0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffd0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffd0d0d0, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfed0d0d0, 0xfecfcfcf, 0xffd0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffd0d0d0, 0xfecfcfcf, 0xfed0d0d0, 0xfed0d0d0, 0xfecfcfcf, 0xfed0d0d0, 0xfecfcfcf, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffd0d0d0, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xfed0d0d0, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xfed0d0d0, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcecece, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xfecfcfcf, 0xfecfcfcf, 0xffcecece, 0xfecfcfcf, 0xffcecece, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcecece, 0xffcecece, 0xffcecece, 0xfecfcfcf, 0xffcecece, 0xffcfcfcf, 0xffcecece, 0xffcecece, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcecece, 0xffcecece, 0xffcfcfcf, 0xffcecece, 0xfecfcfcf, 0xfecfcfcf, 0xffcecece, 0xfecfcfcf, 0xffcecece, 0xffcecece, 0xffcfcfcf, 0xffcecece, 0xffcecece, 0xffcecece, 0xfecfcfcf, 0xffcecece, 0xffcecece, 0xfecfcfcf, 0xffcecece, 0xffcfcfcf, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcecece, 0xffcecece, 0xfecfcfcf, 0xffcecece, 0xffcfcfcf, 0xffcecece, 0xffcfcfcf, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcecece, 0xfecfcfcf, 0xffcfcfcf, 0xffcecece, 0xffcfcfcf, 0xffcecece, 0xffcecece, 0xffcfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xffcecece, 0xffcecece, 0xffcecece, 0xfecfcfcf, 0xfecfcfcf, 0xffcecece, 0xffcecece, 0xfecfcfcf, 0xffcfcfcf, 0xffcecece, 0xfecfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xffcecece, 0xffcecece, 0xffcecece, 0xfecfcfcf, 0xffcecece, 0xffcecece, 0xffcfcfcf, 0xffcecece, 0xfecfcfcf, 0xfecfcfcf, 0xffcecece, 0xffcfcfcf, 0xffcecece, 0xffcecece, 0xfecfcfcf, 0xffcecece, 0xfecfcfcf, 0xffcecece, 0xffcecece, 0xfecfcfcf, 0xffcecece, 0xffcfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcecece, 0xffcecece, 0xfecfcfcf, 0xffcecece, 0xffcecece, 0xffcfcfcf, 0xffcecece, 0xffcecece, 0xfecfcfcf, 0xffcecece, 0xffcecece, 0xffcfcfcf, 0xffcfcfcf, 0xffcecece, 0xffcfcfcf, 0xffcfcfcf, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcfcfcf, 0xffcecece, 0xffcfcfcf, 0xfecfcfcf, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xefcdcdcd, 0xffcdcdcd, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcecece, 0xfececece, 0xfececece, 0xffcdcdcd, 0xffcecece, 0xfececece, 0xffcecece, 0xfececece, 0xffcdcdcd, 0xfecfcfcf, 0xfececece, 0xffcecece, 0xffcdcdcd, 0xffcecece, 0xffcdcdcd, 0xffcecece, 0xffcecece, 0xffcdcdcd, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcdcdcd, 0xfececece, 0xffcecece, 0xffcecece, 0xffcecece, 0xfecfcfcf, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcdcdcd, 0xfececece, 0xfececece, 0xffcecece, 0xfececece, 0xffcecece, 0xffcecece, 0xffcecece, 0xfececece, 0xfecfcfcf, 0xffcecece, 0xffcdcdcd, 0xffcecece, 0xfececece, 0xffcecece, 0xfececece, 0xffcdcdcd, 0xffcecece, 0xffcecece, 0xffcecece, 0xfececece, 0xffcdcdcd, 0xffcecece, 0xffcecece, 0xfececece, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcdcdcd, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcdcdcd, 0xffcecece, 0xffcdcdcd, 0xfecfcfcf, 0xffcecece, 0xfecfcfcf, 0xffcecece, 0xfececece, 0xfececece, 0xffcecece, 0xffcecece, 0xffcdcdcd, 0xffcecece, 0xfececece, 0xfececece, 0xffcecece, 0xffcecece, 0xffcdcdcd, 0xfececece, 0xffcecece, 0xfececece, 0xffcdcdcd, 0xffcecece, 0xfececece, 0xffcecece, 0xffcdcdcd, 0xffcecece, 0xffcecece, 0xfecfcfcf, 0xffcecece, 0xffcecece, 0xfececece, 0xffcecece, 0xfecfcfcf, 0xffcdcdcd, 0xffcdcdcd, 0xffcecece, 0xffcdcdcd, 0xfececece, 0xffcecece, 0xfececece, 0xffcecece, 0xffcecece, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcecece, 0xffcecece, 0xffcecece, 0xfecfcfcf, 0xfececece, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcecece, 0xffcdcdcd, 0xffcecece, 0xffcecece, 0xffcecece, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x80cbcbcb, 0xffcecece, 0xfecdcdcd, 0xfecdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xfecdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcecece, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xfecdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcccccc, 0xfececece, 0xffcdcdcd, 0xffcccccc, 0xfecdcdcd, 0xfecdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcccccc, 0xffcccccc, 0xffcdcdcd, 0xfecdcdcd, 0xfecdcdcd, 0xfecdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xfecdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xfecdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xfecdcdcd, 0xffcccccc, 0xffcdcdcd, 0xffcdcdcd, 0xfececece, 0xfecdcdcd, 0xfecdcdcd, 0xffb5b5b5, 0xff4c4c4c, 0xff424242, 0xff424242, 0xff424242, 0xff424242, 0xff424242, 0xff424242, 0xff424242, 0xff424242, 0xff424242, 0xff434343, 0xff424242, 0xff424242, 0xff424242, 0xff424242, 0xff565656, 0xffb5b5b5, 0xffcdcdcd, 0xfecdcdcd, 0xffcdcdcd, 0xfecdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xfececece, 0xffcdcdcd, 0xfececece, 0xffcdcdcd, 0xfecdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xfecdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcccccc, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xfecdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xfececece, 0xffcdcdcd, 0xffcdcdcd, 0xffcccccc, 0xfecdcdcd, 0xffcecece, 0xffcdcdcd, 0xfecdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcccccc, 0xffcdcdcd, 0xffcdcdcd, 0xfecdcdcd, 0xffcdcdcd, 0xffcecece, 0xfececece, 0xffcdcdcd, 0xffcccccc, 0x70e4e4e4, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xbfcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xfecdcdcd, 0xffcccccc, 0xffcdcdcd, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xfecdcdcd, 0xfecccccc, 0xfecdcdcd, 0xffcccccc, 0xffcccccc, 0xfecdcdcd, 0xffcdcdcd, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xfecdcdcd, 0xffcccccc, 0xfecdcdcd, 0xffcccccc, 0xffcccccc, 0xfecdcdcd, 0xffcccccc, 0xfecdcdcd, 0xffcccccc, 0xfecdcdcd, 0xffcdcdcd, 0xfecdcdcd, 0xffcccccc, 0xffcccccc, 0xfecdcdcd, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xfecdcdcd, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcdcdcd, 0xfecdcdcd, 0xffcccccc, 0xfecdcdcd, 0xffcccccc, 0xffcdcdcd, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xfecccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xfecdcdcd, 0xffcccccc, 0xfecdcdcd, 0xff686868, 0xff424242, 0xff424242, 0xff424242, 0xff424242, 0xff424242, 0xff424242, 0xff424242, 0xff424242, 0xff424242, 0xff424242, 0xff424242, 0xff414141, 0xff424242, 0xff424242, 0xff424242, 0xff414141, 0xff686868, 0xffcdcdcd, 0xffcdcdcd, 0xffcccccc, 0xffcccccc, 0xfecdcdcd, 0xffcccccc, 0xfecdcdcd, 0xffcccccc, 0xfecdcdcd, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcdcdcd, 0xfecdcdcd, 0xfecccccc, 0xfecdcdcd, 0xffcccccc, 0xffcccccc, 0xfecccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xfecdcdcd, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xfecdcdcd, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xfecdcdcd, 0xfecdcdcd, 0xffcccccc, 0xffe2e2e2, 0x40e3e3e3, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x10bfbfbf, 0xdecccccc, 0xffcccccc, 0xffcbcbcb, 0xfecccccc, 0xffcccccc, 0xfecccccc, 0xffcbcbcb, 0xffcccccc, 0xffcccccc, 0xfecccccc, 0xffcbcbcb, 0xffcbcbcb, 0xffcccccc, 0xffcccccc, 0xffcbcbcb, 0xffcccccc, 0xffcbcbcb, 0xffcccccc, 0xffcccccc, 0xffcbcbcb, 0xffcccccc, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xfecccccc, 0xffcbcbcb, 0xffcccccc, 0xfecccccc, 0xffcccccc, 0xffcbcbcb, 0xffcbcbcb, 0xffcccccc, 0xfecccccc, 0xffcbcbcb, 0xffcccccc, 0xffcccccc, 0xfecccccc, 0xffcbcbcb, 0xfecccccc, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcccccc, 0xffcccccc, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcccccc, 0xfecccccc, 0xffcbcbcb, 0xfecccccc, 0xfecccccc, 0xfecccccc, 0xfecccccc, 0xffcbcbcb, 0xffcccccc, 0xffcbcbcb, 0xffcccccc, 0xffcbcbcb, 0xfecccccc, 0xfecdcdcd, 0xffcbcbcb, 0xffcbcbcb, 0xff545454, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff424242, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff424242, 0xff424242, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff545454, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xfecccccc, 0xffcbcbcb, 0xffcbcbcb, 0xffcccccc, 0xffcccccc, 0xfecccccc, 0xffcccccc, 0xffcbcbcb, 0xffcccccc, 0xffcbcbcb, 0xfecccccc, 0xfecccccc, 0xffcbcbcb, 0xfecccccc, 0xffcccccc, 0xfecccccc, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xfecccccc, 0xffcccccc, 0xffcccccc, 0xfecccccc, 0xffcccccc, 0xfecccccc, 0xfecccccc, 0xfecccccc, 0xfecccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xfecccccc, 0xffcccccc, 0xffcccccc, 0xffcbcbcb, 0xffcccccc, 0xfecccccc, 0xffcbcbcb, 0xffcccccc, 0xfecccccc, 0xffcbcbcb, 0xfecccccc, 0xfecccccc, 0xffcbcbcb, 0xffcccccc, 0xffcbcbcb, 0xffcccccc, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffe0e0e0, 0xeee1e1e1, 0x20e7e7e7, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x20cfcfcf, 0xdfcacaca, 0xffcbcbcb, 0xffcbcbcb, 0xffcacaca, 0xffcbcbcb, 0xffcacaca, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xfecbcbcb, 0xffcbcbcb, 0xfecbcbcb, 0xfecccccc, 0xffcbcbcb, 0xfecbcbcb, 0xfecbcbcb, 0xfecbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xfecbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcacaca, 0xfecbcbcb, 0xffcacaca, 0xffcbcbcb, 0xfecbcbcb, 0xfecbcbcb, 0xfecbcbcb, 0xfecbcbcb, 0xfecbcbcb, 0xfecbcbcb, 0xffcbcbcb, 0xfecbcbcb, 0xffcacaca, 0xffcbcbcb, 0xffcacaca, 0xffcbcbcb, 0xffcacaca, 0xfecbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xfecbcbcb, 0xffcbcbcb, 0xffcacaca, 0xffcbcbcb, 0xffcbcbcb, 0xffcacaca, 0xfecbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xfecacaca, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xffc2c2c2, 0xfecbcbcb, 0xffcacaca, 0xffcbcbcb, 0xffcbcbcb, 0xffcacaca, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xfecbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xfecbcbcb, 0xffcbcbcb, 0xffcacaca, 0xfecccccc, 0xfecbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcacaca, 0xfecbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xfecbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcacaca, 0xfecbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xffcacaca, 0xffcbcbcb, 0xfecbcbcb, 0xffcbcbcb, 0xfecbcbcb, 0xfecbcbcb, 0xffcacaca, 0xffcacaca, 0xffcbcbcb, 0xfecbcbcb, 0xffcacaca, 0xfecbcbcb, 0xfecbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xfecbcbcb, 0xffcbcbcb, 0xfecbcbcb, 0xffcacaca, 0xffcbcbcb, 0xffcbcbcb, 0xffcbcbcb, 0xfecbcbcb, 0xffe0e0e0, 0xffe0e0e0, 0xdfe0e0e0, 0x20e7e7e7, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x30cacaca, 0xffcacaca, 0xffcacaca, 0xfecacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xfecacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xfecacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xfecbcbcb, 0xffcacaca, 0xfecbcbcb, 0xffcacaca, 0xffcacaca, 0xfecbcbcb, 0xffcacaca, 0xfecbcbcb, 0xffcacaca, 0xfecacaca, 0xffcacaca, 0xfecacaca, 0xffcacaca, 0xfecbcbcb, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xfecacaca, 0xffcacaca, 0xfecacaca, 0xfecacaca, 0xffcacaca, 0xffcacaca, 0xfecacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xfecacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffc9c9c9, 0xffc8c8c8, 0xffb0b0b0, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff414141, 0xff404040, 0xff404040, 0xff414141, 0xff414141, 0xff414141, 0xff404040, 0xff414141, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xffb8b8b8, 0xfec9c9c9, 0xfecacaca, 0xfecacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xfecacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xfecacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xfecbcbcb, 0xffcacaca, 0xfecacaca, 0xffcacaca, 0xffcacaca, 0xfecbcbcb, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xfecbcbcb, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xfecacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xfecbcbcb, 0xffcacaca, 0xfecbcbcb, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xfecbcbcb, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffdfdfdf, 0xffdedede, 0xffdfdfdf, 0xcfdfdfdf, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x70c8c8c8, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xfecacaca, 0xffc9c9c9, 0xfecacaca, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffcacaca, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffcacaca, 0xffcacaca, 0xfecacaca, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xfecacaca, 0xffc9c9c9, 0xfecacaca, 0xffc9c9c9, 0xfecacaca, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xfecacaca, 0xffc9c9c9, 0xffc9c9c9, 0xffcacaca, 0xfec9c9c9, 0xffc9c9c9, 0xfecacaca, 0xfecacaca, 0xffc9c9c9, 0xfecacaca, 0xffc9c9c9, 0xffc9c9c9, 0xfecacaca, 0xfecacaca, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc8c8c8, 0xffc7c7c7, 0xffc7c7c7, 0xff9e9e9e, 0xff404040, 0xff404040, 0xff404040, 0xff414141, 0xff414141, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xff414141, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xff9e9e9e, 0xffc6c6c6, 0xffc7c7c7, 0xfec9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xfecacaca, 0xffcacaca, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xfec9c9c9, 0xfecacaca, 0xffc9c9c9, 0xffc9c9c9, 0xffcacaca, 0xfecacaca, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xfecacaca, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xfecacaca, 0xffc9c9c9, 0xfecacaca, 0xffcacaca, 0xfecacaca, 0xfecacaca, 0xffc9c9c9, 0xffcacaca, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffcacaca, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffcacaca, 0xffcacaca, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xfededede, 0xffdddddd, 0xfededede, 0xffdddddd, 0x8fdfdfdf, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x80c9c9c9, 0xfec9c9c9, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xfec9c9c9, 0xffc8c8c8, 0xfec9c9c9, 0xfec9c9c9, 0xffc9c9c9, 0xfec9c9c9, 0xfec9c9c9, 0xffc9c9c9, 0xffc8c8c8, 0xffc8c8c8, 0xfec9c9c9, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc9c9c9, 0xffc8c8c8, 0xffc8c8c8, 0xffc9c9c9, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xfec9c9c9, 0xffc9c9c9, 0xffc8c8c8, 0xfec9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc8c8c8, 0xffc9c9c9, 0xffc8c8c8, 0xfec9c9c9, 0xffc8c8c8, 0xfec9c9c9, 0xfec9c9c9, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xfec9c9c9, 0xffc9c9c9, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc7c7c7, 0xffc6c6c6, 0xfec5c6c6, 0xff8d8d8d, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xff3f3f3f, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xff3f3f3f, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xff8d8d8d, 0xffc5c5c5, 0xffc6c6c6, 0xffc6c6c6, 0xfec9c9c9, 0xffc8c8c8, 0xffc8c8c8, 0xfec9c9c9, 0xffc8c8c8, 0xfec9c9c9, 0xfec9c9c9, 0xfec9c9c9, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xfec9c9c9, 0xfec9c9c9, 0xfec9c9c9, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xfec9c9c9, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc9c9c9, 0xfec9c9c9, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xfec9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc8c8c8, 0xfec9c9c9, 0xffc8c8c8, 0xffc9c9c9, 0xffc8c8c8, 0xffc9c9c9, 0xffc9c9c9, 0xfec9c9c9, 0xffc8c8c8, 0xffc9c9c9, 0xfec9c9c9, 0xffc8c8c8, 0xffc9c9c9, 0xffc8c8c8, 0xfec9c9c9, 0xffc9c9c9, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdcdcdc, 0xffdbdbdb, 0x7fdbdddb, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x9fc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc7c7c7, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc7c7c7, 0xfec9c9c9, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xfec8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc7c7c7, 0xfec8c8c8, 0xfec9c9c9, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xfec8c8c8, 0xffc8c8c8, 0xffc7c7c7, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc7c7c7, 0xfec8c8c8, 0xfec8c8c8, 0xffc8c8c8, 0xffc7c7c7, 0xfec8c8c8, 0xffc8c8c8, 0xfec8c8c8, 0xffc8c8c8, 0xffc7c7c7, 0xffc8c8c8, 0xffc8c8c8, 0xfec8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc7c7c7, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xfec8c8c8, 0xfec8c8c8, 0xffc6c6c6, 0xfec5c6c6, 0xfec4c4c4, 0xff7b7b7b, 0xff3f3f3f, 0xff3f3f3f, 0xff3f3f3f, 0xff404040, 0xff3f3f3f, 0xff3f3f3f, 0xff3f3f3f, 0xff3f3f3f, 0xff404040, 0xff404040, 0xff404040, 0xff404040, 0xff3f3f3f, 0xff3f3f3f, 0xff404040, 0xff3f3f3f, 0xff404040, 0xff404040, 0xff737373, 0xffc3c3c3, 0xfec5c5c5, 0xffc6c6c6, 0xffc6c6c6, 0xfec8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xfec8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xfec8c8c8, 0xfec8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xfec9c9c9, 0xffc8c8c8, 0xfec9c9c9, 0xffc8c8c8, 0xffc8c8c8, 0xfec8c8c8, 0xfec8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc7c7c7, 0xffc8c8c8, 0xffc8c8c8, 0xfec8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xffc8c8c8, 0xfec8c8c8, 0xffc8c8c8, 0xffc7c7c7, 0xfec9c9c9, 0xffc8c8c8, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xfec9c9c9, 0xffc7c7c7, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xffdadada, 0xfedbdbdb, 0x5fdcdcdc, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x10bfbfbf, 0xcfc8c8c8, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xfec8c8c8, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xfec7c7c7, 0xfec7c7c7, 0xfec8c8c8, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xfec7c7c7, 0xfec8c8c8, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xfec8c8c8, 0xffc7c7c7, 0xfec8c8c8, 0xffc7c7c7, 0xfec8c8c8, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xfec8c8c8, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xfec8c8c8, 0xffc7c7c7, 0xfec7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc6c6c6, 0xfec8c8c8, 0xfec7c7c7, 0xfec6c6c6, 0xffc5c5c5, 0xfec3c3c3, 0xfec1c1c1, 0xff626262, 0xff3f3f3f, 0xff3f3f3f, 0xff3f3f3f, 0xff3f3f3f, 0xff404040, 0xff3f3f3f, 0xff3f3f3f, 0xff3f3f3f, 0xff3f3f3f, 0xff404040, 0xff3f3f3f, 0xff3f3f3f, 0xff3f3f3f, 0xff404040, 0xff3f3f3f, 0xff404040, 0xff3f3f3f, 0xff3f3f3f, 0xff6a6a6a, 0xffc0c0c0, 0xffc2c2c2, 0xffc4c4c4, 0xffc6c6c6, 0xffc6c6c6, 0xffc7c7c7, 0xfec8c8c8, 0xffc7c7c7, 0xfec7c7c7, 0xfec8c8c8, 0xffc7c7c7, 0xffc6c6c6, 0xffc7c7c7, 0xfec8c8c8, 0xfec7c7c7, 0xfec7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xfec8c8c8, 0xffc7c7c7, 0xffc7c7c7, 0xffc6c6c6, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xfec8c8c8, 0xfec7c7c7, 0xfec8c8c8, 0xffc8c8c8, 0xffc7c7c7, 0xfec8c8c8, 0xffc7c7c7, 0xffc8c8c8, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xfec8c8c8, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xfec8c8c8, 0xfec7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffc7c7c7, 0xffd8d8d8, 0xffd9d9d9, 0xffd8d8d8, 0xfed9d9d9, 0xffd8d8d8, 0xffd9d9d9, 0xefd9d9d9, 0x30dadada, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x20c7c7c7, 0xdfc6c7c6, 0xffc6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc7c7c7, 0xfec7c7c7, 0xfec7c7c7, 0xffc6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc7c7c7, 0xffc6c6c6, 0xfec7c7c7, 0xfec7c7c7, 0xffc6c6c6, 0xffc6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xffc6c6c6, 0xfec7c7c7, 0xfec7c7c7, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec7c7c7, 0xfec7c7c7, 0xffc6c6c6, 0xffc6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xfec7c7c7, 0xfec7c7c7, 0xffc6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc5c5c5, 0xffc2c2c2, 0xfec2c2c2, 0xffbdbdbd, 0xff585858, 0xff3f3f3f, 0xff3f3f3f, 0xff3e3e3e, 0xff3f3f3f, 0xff3e3e3e, 0xff3e3e3e, 0xff3f3f3f, 0xff3f3f3f, 0xff3f3f3f, 0xff3f3f3f, 0xff3f3f3f, 0xff3e3e3e, 0xff3f3f3f, 0xff3f3f3f, 0xff3e3e3e, 0xff3e3e3e, 0xff3f3f3f, 0xff3f3f3f, 0xff515151, 0xfebebebe, 0xffc0c0c0, 0xffc2c2c2, 0xffc4c4c4, 0xfec6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc7c7c7, 0xffc6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xfec7c7c7, 0xfec7c7c7, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xfec7c7c7, 0xfec7c7c7, 0xfec7c7c7, 0xffc6c6c6, 0xffc7c7c7, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xfec7c7c7, 0xfec7c7c7, 0xffc7c7c7, 0xfec7c7c7, 0xfec7c7c7, 0xffc7c7c7, 0xffc6c6c6, 0xffc6c6c6, 0xfed8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xfed8d8d8, 0xfed8d8d8, 0xffd8d8d8, 0xdfd8d8d8, 0x20d7d7d7, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x30c5c5c5, 0xefc5c5c5, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xfec6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xfec6c6c6, 0xfec6c6c6, 0xfec6c6c6, 0xfec7c7c7, 0xfec6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xfec6c6c6, 0xfec6c6c6, 0xfec6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfebfbfbf, 0xff8d8d8d, 0xffa6a6a6, 0xffc6c6c6, 0xfec6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xfec6c6c6, 0xfec5c6c6, 0xffc3c3c3, 0xffc1c1c1, 0xffbebebe, 0xfeb5b5b5, 0xff3e3e3e, 0xff3e3e3e, 0xff3f3f3f, 0xff3f3f3f, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3f3f3f, 0xff3f3f3f, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3f3f3f, 0xffadadad, 0xffbebebe, 0xffc1c1c1, 0xffc3c3c3, 0xffc5c5c5, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffa7a7a7, 0xff8d8d8d, 0xffb7b7b7, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xfec6c6c6, 0xffd6d6d6, 0xffd7d7d7, 0xffd6d6d6, 0xffd7d7d7, 0xffd7d7d7, 0xfed7d7d7, 0xffd7d7d7, 0xffd7d7d7, 0xcfd6d6d6, 0x10cfcfcf, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x60c7c7c7, 0xffc6c6c6, 0xffc5c5c5, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec5c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc5c5c5, 0xfec5c6c6, 0xffc5c5c5, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc5c5c5, 0xffc6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec5c6c6, 0xffc6c6c6, 0xfec6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc5c5c5, 0xffc6c6c6, 0xffc6c6c6, 0xffc5c5c5, 0xffc5c5c5, 0xffc6c6c6, 0xff515151, 0xff3e3e3e, 0xff3e3e3e, 0xff515151, 0xff969696, 0xffb6b6b6, 0xffc5c5c5, 0xffc6c6c6, 0xfec5c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc5c5c5, 0xffc4c4c4, 0xffc1c1c1, 0xffb0b0b0, 0xff717171, 0xff474747, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3d3d3d, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3f3f3f, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3d3d3d, 0xff3e3e3e, 0xff717171, 0xfeb1b1b1, 0xfec3c3c3, 0xffc4c4c4, 0xffc5c5c5, 0xfec5c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffbebebe, 0xff858585, 0xff595959, 0xff3e3e3e, 0xff3e3e3e, 0xff5a5a5a, 0xffc5c5c5, 0xffc6c6c6, 0xfec5c6c6, 0xffc6c6c6, 0xfec5c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec5c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec5c6c6, 0xffc6c6c6, 0xffc5c5c5, 0xffc5c5c5, 0xffc6c6c6, 0xfec5c6c6, 0xffc6c6c6, 0xfec5c6c6, 0xfec5c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec5c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xfec5c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6, 0xffd5d5d5, 0xffd5d5d5, 0xffd5d5d5, 0xfed6d6d6, 0xffd5d5d5, 0xfed6d6d6, 0xfed6d6d6, 0xffd5d5d5, 0xffd5d5d5, 0x9fd5d5d5, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7fc5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xfec5c6c6, 0xfec5c6c6, 0xfec5c6c6, 0xffc5c5c5, 0xffc5c5c5, 0xfec5c6c6, 0xfec5c6c6, 0xffc5c5c5, 0xffc5c5c5, 0xfec5c6c6, 0xffc5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xfec5c6c6, 0xffc5c5c5, 0xffc5c5c5, 0xfec5c6c6, 0xffc5c5c5, 0xfec5c6c6, 0xffc5c5c5, 0xffc5c5c5, 0xfec5c6c6, 0xffc5c5c5, 0xffc5c5c5, 0xffc6c6c6, 0xffc5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xfec5c6c6, 0xffc5c5c5, 0xff949494, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3e3e3e, 0xff3e3e3e, 0xff3d3d3d, 0xff737373, 0xffa6a6a6, 0xffc5c5c5, 0xffc5c5c5, 0xfec5c6c6, 0xffc4c4c4, 0xffbbbbbb, 0xff828282, 0xff474747, 0xff3e3e3e, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3e3e3e, 0xff3e3e3e, 0xff3d3d3d, 0xff3e3e3e, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3d3d3d, 0xff3e3e3e, 0xff3d3d3d, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3d3d3d, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff828282, 0xffc3c3c3, 0xffc4c4c4, 0xffc5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xffa5a5a5, 0xff6b6b6b, 0xff474747, 0xff3d3d3d, 0xff3d3d3d, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xfe8e8e8e, 0xffc5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xfec5c6c6, 0xffc5c5c5, 0xfec5c6c6, 0xffc5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xfec5c6c6, 0xfec5c6c6, 0xffc5c5c5, 0xfec5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xfec5c6c6, 0xfec5c6c6, 0xffc5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xfec5c6c6, 0xffc5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xffc5c5c5, 0xfec5c5c5, 0xfec5c6c6, 0xfec5c6c6, 0xffc5c5c5, 0xfec5c6c6, 0xffc5c5c5, 0xffc5c5c5, 0xffd4d4d4, 0xffd4d4d4, 0xffd3d3d3, 0xffd4d4d4, 0xfed4d4d4, 0xffd3d3d3, 0xffd3d3d3, 0xfed4d4d4, 0xffd4d4d4, 0xfed4d4d4, 0x7fd5d5d5, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x8fc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc5c5c5, 0xffc5c5c5, 0xffc4c4c4, 0xfec5c5c5, 0xfec5c5c5, 0xffc4c4c4, 0xffc4c4c4, 0xfec5c5c5, 0xfec5c5c5, 0xffc4c4c4, 0xffc4c4c4, 0xfec5c5c5, 0xffc4c4c4, 0xffc4c4c4, 0xffc5c5c5, 0xffc4c4c4, 0xffc5c5c5, 0xffc4c4c4, 0xffc4c4c4, 0xfec5c5c5, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xfec5c5c5, 0xfec5c5c5, 0xfec5c6c6, 0xffc4c4c4, 0xffb4b4b4, 0xff505050, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff515151, 0xfe969696, 0xfeb5b5b5, 0xffacacac, 0xff505050, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3e3e3e, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3e3e3e, 0xff3d3d3d, 0xff3d3d3d, 0xff3e3e3e, 0xff3e3e3e, 0xff3e3e3e, 0xff505050, 0xffb3b3b3, 0xffbcbcbc, 0xff848484, 0xff595959, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3e3e3e, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff464646, 0xffbcbcbc, 0xffc4c4c4, 0xfec5c5c5, 0xfec5c5c5, 0xffc4c4c4, 0xffc4c4c4, 0xffc5c5c5, 0xffc4c4c4, 0xffc5c5c5, 0xfec5c5c5, 0xffc4c4c4, 0xfec5c5c5, 0xffc4c4c4, 0xfec5c5c5, 0xfec5c5c5, 0xfec5c5c5, 0xffc4c4c4, 0xfec5c5c5, 0xfec5c5c5, 0xffc5c5c5, 0xffc4c4c4, 0xfec5c5c5, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc5c5c5, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc5c5c5, 0xffc4c4c4, 0xffc4c4c4, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd2d2d2, 0xffd3d3d3, 0xffd2d2d2, 0xfed2d2d2, 0xffd2d2d2, 0xffd3d3d3, 0x6fd3d3d3, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xcfc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc3c3c3, 0xffc4c4c4, 0xffc4c4c4, 0xffc3c3c3, 0xfec4c4c4, 0xfec4c4c4, 0xffc3c3c3, 0xfec4c4c4, 0xfec4c4c4, 0xffc3c3c3, 0xfec4c4c4, 0xffc4c4c4, 0xfec4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc3c3c3, 0xfec4c4c4, 0xfec4c4c4, 0xfec4c4c4, 0xffc4c4c4, 0xfec4c4c4, 0xffc3c3c3, 0xffc4c4c4, 0xffc3c3c3, 0xffc4c4c4, 0xffc4c4c4, 0xffc3c3c3, 0xffc4c4c4, 0xffc3c3c3, 0xffc3c3c3, 0xff727272, 0xff3b3b3b, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff464646, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3b3b3b, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3b3b3b, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff464646, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff7a7a7a, 0xffc3c3c3, 0xffc3c3c3, 0xfec4c4c4, 0xffc3c3c3, 0xfec4c4c4, 0xffc4c4c4, 0xfec4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc3c3c3, 0xffc4c4c4, 0xfec4c4c4, 0xfec4c4c4, 0xfec4c4c4, 0xfec4c4c4, 0xffc4c4c4, 0xfec4c4c4, 0xfec4c4c4, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc4c4c4, 0xffc4c4c4, 0xfec4c4c4, 0xffc3c3c3, 0xffc3c3c3, 0xffc4c4c4, 0xfec4c4c4, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xffd1d1d1, 0xfed1d1d1, 0xffd1d1d1, 0xfed2d2d2, 0xffd1d1d1, 0xffd1d1d1, 0xfed1d1d1, 0xfed1d1d1, 0xfed1d1d1, 0x30cfcfcf, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x20bfbfbf, 0xdfc2c2c2, 0xffc2c2c2, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc2c2c2, 0xffc3c3c3, 0xfec3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc2c2c2, 0xfec4c4c4, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xfec3c3c3, 0xfec4c4c4, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xfec3c3c3, 0xffc3c3c3, 0xfec4c4c4, 0xffc2c2c2, 0xffc2c2c2, 0xffb2b2b2, 0xff3d3d3d, 0xff3d3d3d, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3d3d3d, 0xff3d3d3d, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3d3d3d, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xffaaaaaa, 0xfec3c3c3, 0xffc2c2c2, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xfec3c3c3, 0xfec3c3c3, 0xfec4c4c4, 0xfec3c3c3, 0xfec3c3c3, 0xfec3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xfec3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xfec3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xfec3c3c3, 0xfec3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfed0d0d0, 0xffd0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfed0d0d0, 0xffcfcfcf, 0xffcfcfcf, 0xdfd1d1d1, 0x20cfcfcf, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x20bfbfbf, 0xefc2c2c2, 0xfec2c2c2, 0xffc2c2c2, 0xffc2c2c2, 0xfec3c3c3, 0xffc3c3c3, 0xfec2c2c2, 0xfec3c3c3, 0xffc2c2c2, 0xffc2c2c2, 0xffc2c2c2, 0xffc2c2c2, 0xfec3c3c3, 0xfec3c3c3, 0xffc2c2c2, 0xffc3c3c3, 0xffc2c2c2, 0xfec3c3c3, 0xffc2c2c2, 0xffc2c2c2, 0xffc2c2c2, 0xfec2c2c2, 0xfec3c3c3, 0xfec2c2c2, 0xffc2c2c2, 0xffc2c2c2, 0xffc2c2c2, 0xffc1c1c1, 0xffc1c1c1, 0xffc0c0c0, 0xff686868, 0xff3d3d3d, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3d3d3d, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff606060, 0xffc0c0c0, 0xffc0c0c0, 0xffc2c2c2, 0xffc1c1c1, 0xfec3c3c3, 0xfec3c3c3, 0xfec3c3c3, 0xffc2c2c2, 0xfec2c2c2, 0xffc2c2c2, 0xffc2c2c2, 0xffc2c2c2, 0xffc2c2c2, 0xffc2c2c2, 0xffc2c2c2, 0xffc2c2c2, 0xfec3c3c3, 0xfec2c2c2, 0xfec2c2c2, 0xfec3c3c3, 0xfec3c3c3, 0xffc3c3c3, 0xffc2c2c2, 0xffc2c2c2, 0xffc2c2c2, 0xffc2c2c2, 0xffc3c3c3, 0xffc2c2c2, 0xffc2c2c2, 0xffc2c2c2, 0xfec2c2c2, 0xfec3c3c3, 0xffc2c2c2, 0xffc2c2c2, 0xfecfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xffcfcfcf, 0xfecfcfcf, 0xfecfcfcf, 0xffcecece, 0xffcecece, 0xffcecece, 0xdfcfcfcf, 0x10cfcfcf, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x40bfbfbf, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc2c2c2, 0xffc2c2c2, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc2c2c2, 0xffc2c2c2, 0xffc1c1c1, 0xffc2c2c2, 0xffc1c1c1, 0xffc1c1c1, 0xfec2c2c2, 0xfec2c2c2, 0xfec2c2c2, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc2c2c2, 0xffc1c1c1, 0xffc0c0c0, 0xffbfbfbf, 0xff919191, 0xff3a3a3a, 0xff3b3b3b, 0xff3b3b3b, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3a3a3a, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3a3a3a, 0xff3b3b3b, 0xff3b3b3b, 0xff3a3a3a, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3a3a3a, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3a3a3a, 0xff3b3b3b, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xff3a3a3a, 0xff3b3b3b, 0xff3b3b3b, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3b3b3b, 0xff3b3b3b, 0xfea0a0a0, 0xffc0c0c0, 0xfec1c1c1, 0xffc1c1c1, 0xfec2c2c2, 0xfec2c2c2, 0xffc2c2c2, 0xffc1c1c1, 0xffc2c2c2, 0xfec2c2c2, 0xffc1c1c1, 0xffc1c1c1, 0xffc2c2c2, 0xffc1c1c1, 0xffc1c1c1, 0xffc2c2c2, 0xfec2c2c2, 0xffc1c1c1, 0xffc2c2c2, 0xffc2c2c2, 0xfec2c2c2, 0xffc1c1c1, 0xfec2c2c2, 0xffc2c2c2, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc2c2c2, 0xffc1c1c1, 0xffc2c2c2, 0xfec1c1c1, 0xffc2c2c2, 0xffc1c1c1, 0xffc1c1c1, 0xffcecece, 0xffcdcdcd, 0xffcecece, 0xffcdcdcd, 0xffcdcdcd, 0xffcdcdcd, 0xffcecece, 0xffcdcdcd, 0xffcdcdcd, 0xfececece, 0xffcecece, 0xffcdcdcd, 0xffcecece, 0xffcdcdcd, 0xbfcecece, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7fc3c3c3, 0xffc0c0c0, 0xffc1c1c1, 0xfec1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc0c0c0, 0xffc1c1c1, 0xffc1c1c1, 0xfec1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xfec1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xfec1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc0c0c0, 0xffc0c0c0, 0xffbfbfbf, 0xfebebebe, 0xff4d4d4d, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff4c4c4c, 0xfeb8b8b8, 0xffbfbfbf, 0xffc0c0c0, 0xfec1c1c1, 0xffc0c0c0, 0xffc0c0c0, 0xfec1c1c1, 0xffc0c0c0, 0xfec1c1c1, 0xfec2c2c2, 0xffc1c1c1, 0xffc1c1c1, 0xfec1c1c1, 0xfec1c1c1, 0xfec1c1c1, 0xfec1c1c1, 0xfec1c1c1, 0xfec1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc0c0c0, 0xffc0c0c0, 0xfec1c1c1, 0xffc0c0c0, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xfec1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc0c0c0, 0xfec1c1c1, 0xffc1c1c1, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xfecdcdcd, 0xffcccccc, 0xfecccccc, 0xffcccccc, 0xffcccccc, 0xffcccccc, 0xfecccccc, 0xffcbcbcb, 0xfecccccc, 0xffcccccc, 0x8fcdcdcd,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x10bfbfbf, 0xffc0c0c0, 0xfec1c1c1, 0xfec1c1c1, 0xfec0c0c0, 0xffc0c0c0, 0xffbfbfbf, 0xfec0c0c0, 0xfec0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xfec0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xfec1c1c1, 0xffc0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xfec1c1c1, 0xffbfbfbf, 0xffbfbfbf, 0xffbdbdbd, 0xff7e7e7e, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff393939, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff393939, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3b3b3b, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff7e7e7e, 0xfebebebe, 0xffbebebe, 0xffbfbfbf, 0xffc0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xfec0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xfec0c0c0, 0xffc0c0c0, 0xfec1c1c1, 0xffc0c0c0, 0xfec1c1c1, 0xffc0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xfec1c1c1, 0xffc0c0c0, 0xffc0c0c0, 0xfec1c1c1, 0xffc0c0c0, 0xffc0c0c0, 0xfec0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xffc0c0c0, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xffcbcbcb, 0xfecbcbcb, 0xffcacaca, 0xffcacaca, 0xffcacaca, 0xfecbcbcb, 0xffcbcbcb, 0xffcacaca, 0xffcacaca, 0xfecbcbcb, 0xffcacaca,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xfec0c0c0, 0xfec0c0c0, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xfec0c0c0, 0xffbfbfbf, 0xffc0c0c0, 0xfec0c0c0, 0xffbfbfbf, 0xffbebebe, 0xffbebebe, 0xffbdbdbd, 0xffaeaeae, 0xff4c4c4c, 0xff3a3a3a, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff393939, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff393939, 0xff393939, 0xff393939, 0xff3a3a3a, 0xff393939, 0xff3a3a3a, 0xff393939, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff393939, 0xff393939, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff393939, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff393939, 0xff393939, 0xff393939, 0xff3a3a3a, 0xff3a3a3a, 0xff393939, 0xff3a3a3a, 0xff3a3a3a, 0xff393939, 0xff393939, 0xff3a3a3a, 0xff3a3a3a, 0xff393939, 0xff3a3a3a, 0xff393939, 0xff3a3a3a, 0xff3a3a3a, 0xff393939, 0xff3a3a3a, 0xff3a3a3a, 0xff393939, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff3a3a3a, 0xff434343, 0xfeb5b5b5, 0xffbdbdbd, 0xffbebebe, 0xffbfbfbf, 0xffbfbfbf, 0xffc0c0c0, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xfec0c0c0, 0xffbfbfbf, 0xfec0c0c0, 0xfec0c0c0, 0xfec0c0c0, 0xfec0c0c0, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xfec0c0c0, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xfec0c0c0, 0xfec9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xffc8c8c8, 0xffc9c9c9, 0xffc9c9c9, 0xffc9c9c9, 0xfecacaca, 0xffc9c9c9, 0xfecacaca, 0xffc8c8c8, 0xffc9c9c9, 0xfec9c9c9, 0xffcacaca, 0xfecacaca, 0xffc9c9c9,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xfebfbfbf, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xffbfbfbf, 0xfebfbfbf, 0xffbfbfbf, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xffbfbfbf, 0xfebfbfbf, 0xffbebebe, 0xffbebebe, 0xfebfbfbf, 0xfebfbfbf, 0xffbebebe, 0xffbebebe, 0xffbdbdbd, 0xffbbbbbb, 0xff6d6d6d, 0xff393939, 0xff3a3a3a, 0xff393939, 0xff3a3a3a, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff3a3a3a, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff3a3a3a, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff3a3a3a, 0xff393939, 0xff393939, 0xff393939, 0xff3a3a3a, 0xff393939, 0xff3a3a3a, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff3a3a3a, 0xff393939, 0xff393939, 0xff3a3a3a, 0xff393939, 0xff393939, 0xff393939, 0xff3a3a3a, 0xff393939, 0xff393939, 0xff6d6d6d, 0xffbbbbbb, 0xffbdbdbd, 0xffbdbdbd, 0xfebfbfbf, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xfebfbfbf, 0xfebfbfbf, 0xfebfbfbf, 0xfebfbfbf, 0xfebfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xfebfbfbf, 0xfebfbfbf, 0xffbebebe, 0xffbfbfbf, 0xffbebebe, 0xffbfbfbf, 0xffbebebe, 0xffbebebe, 0xffbfbfbf, 0xffbebebe, 0xffbebebe, 0xffbfbfbf, 0xfebfbfbf, 0xfebfbfbf, 0xffbebebe, 0xffbebebe, 0xffbfbfbf, 0xffc7c7c7, 0xffc8c8c8, 0xffc7c7c7, 0xffc8c8c8, 0xfec8c8c8, 0xfec8c8c8, 0xffc7c7c7, 0xffc8c8c8, 0xffc7c7c7, 0xffc8c8c8, 0xfec8c8c8, 0xfec8c8c8, 0xfec8c8c8, 0xffc8c8c8, 0xfec8c8c8, 0xffc7c7c7,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xfebebebe, 0xffbebebe, 0xffbebebe, 0xfebebebe, 0xffbebebe, 0xffbdbdbd, 0xffbdbdbd, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xffbdbdbd, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xffbdbdbd, 0xffbcbcbc, 0xfebcbcbc, 0xfeadadad, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff383838, 0xff393939, 0xff393939, 0xff393939, 0xff383838, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff383838, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff383838, 0xff444444, 0xff525252, 0xff525252, 0xff4b4b4b, 0xff393939, 0xff393939, 0xff393939, 0xff383838, 0xff393939, 0xff383838, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff383838, 0xff393939, 0xff383838, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff383838, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff393939, 0xff383838, 0xff393939, 0xff9d9d9d, 0xffbbbbbb, 0xffbdbdbd, 0xffbdbdbd, 0xffbebebe, 0xffbdbdbd, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xffbdbdbd, 0xffbdbdbd, 0xfebebebe, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xfebebebe, 0xffbdbdbd, 0xffbebebe, 0xfebebebe, 0xffbebebe, 0xffbdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xffbebebe, 0xfebebebe, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xfebebebe, 0xffbebebe, 0xffc6c6c6, 0xfec7c7c7, 0xfec7c7c7, 0xffc6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xffc6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xfec6c6c6, 0xfec7c7c7, 0xffc6c6c6, 0xffc6c6c6, 0xffc6c6c6,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xfebdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xfebebebe, 0xffbebebe, 0xfebdbdbd, 0xfebebebe, 0xfebdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xfebebebe, 0xfebebebe, 0xffbdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xfebdbdbd, 0xfebebebe, 0xffbdbdbd, 0xffbcbcbc, 0xfebdbdbd, 0xffbbbbbb, 0xffbbbbbb, 0xff535353, 0xff383838, 0xff383838, 0xff393939, 0xff393939, 0xff383838, 0xff383838, 0xff393939, 0xff383838, 0xff383838, 0xff383838, 0xff393939, 0xff393939, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff393939, 0xff383838, 0xff393939, 0xff393939, 0xff393939, 0xff383838, 0xff393939, 0xff383838, 0xff3f3f3f, 0xff636363, 0xff7e7e7e, 0xff8e8e8e, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xfe7e7e7e, 0xff5c5c5c, 0xff383838, 0xff393939, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff393939, 0xff383838, 0xff393939, 0xff383838, 0xff393939, 0xff393939, 0xff383838, 0xff393939, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff393939, 0xff393939, 0xff383838, 0xff383838, 0xff393939, 0xff393939, 0xff393939, 0xff383838, 0xff383838, 0xff383838, 0xff5b5b5b, 0xffbababa, 0xfebcbcbc, 0xffbcbcbc, 0xfebebebe, 0xffbdbdbd, 0xfebebebe, 0xfebdbdbd, 0xfebebebe, 0xffbdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xfebebebe, 0xfebebebe, 0xfebebebe, 0xffbdbdbd, 0xfebdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xfebdbdbd, 0xffbdbdbd, 0xffbcbcbc, 0xffc5c5c5, 0xfec5c6c6, 0xfec5c6c6, 0xffc5c5c5, 0xffc5c5c5, 0xfec5c6c6, 0xffc6c6c6, 0xfec5c6c6, 0xffc5c5c5, 0xfec5c6c6, 0xfec5c6c6, 0xffc5c5c5, 0xfec5c6c6, 0xfec5c6c6, 0xffc5c5c5, 0xffc5c5c5,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xffbcbcbc, 0xffbcbcbc, 0xffbcbcbc, 0xfebdbdbd, 0xffbcbcbc, 0xffbcbcbc, 0xffbcbcbc, 0xffbcbcbc, 0xfebcbcbc, 0xffbcbcbc, 0xffbcbcbc, 0xffbcbcbc, 0xffbcbcbc, 0xffbcbcbc, 0xffbcbcbc, 0xffbcbcbc, 0xffbcbcbc, 0xffbcbcbc, 0xffbcbcbc, 0xffbdbdbd, 0xffbcbcbc, 0xffbbbbbb, 0xffbbbbbb, 0xffb9b9b9, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff393939, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff393939, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff393939, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff636363, 0xff8e8e8e, 0xff939393, 0xfe949494, 0xfe959595, 0xfe949494, 0xff939393, 0xff939393, 0xfe949494, 0xff939393, 0xff939393, 0xff939393, 0xfe898989, 0xff5c5c5c, 0xff393939, 0xff383838, 0xff393939, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff393939, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xffb9b9b9, 0xffbababa, 0xfebcbcbc, 0xffbcbcbc, 0xfebdbdbd, 0xffbcbcbc, 0xfebdbdbd, 0xffbcbcbc, 0xffbcbcbc, 0xffbcbcbc, 0xffbcbcbc, 0xfebdbdbd, 0xffbcbcbc, 0xfebcbcbc, 0xfebdbdbd, 0xffbcbcbc, 0xffbcbcbc, 0xfebdbdbd, 0xffbcbcbc, 0xfebdbdbd, 0xfebcbcbc, 0xfebdbdbd, 0xffbdbdbd, 0xffbcbcbc, 0xffbcbcbc, 0xfebdbdbd, 0xffbcbcbc, 0xfebdbdbd, 0xffbdbdbd, 0xffbcbcbc, 0xffc4c4c4, 0xffc5c5c5, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xffc4c4c4, 0xfec4c4c4, 0xfec4c4c4, 0xffc4c4c4, 0xfec5c5c5, 0xffc4c4c4, 0xfec4c4c4,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xfebcbcbc, 0xffbbbbbb, 0xffbbbbbb, 0xfebcbcbc, 0xffbbbbbb, 0xffbcbcbc, 0xffbcbcbc, 0xfebcbcbc, 0xffbbbbbb, 0xfebcbcbc, 0xffbbbbbb, 0xffbbbbbb, 0xfebcbcbc, 0xffbcbcbc, 0xffbbbbbb, 0xffbbbbbb, 0xffbcbcbc, 0xffbcbcbc, 0xfebdbdbd, 0xffbbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xffb9b9b9, 0xffb7b7b7, 0xff6a6a6a, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff373737, 0xff383838, 0xff383838, 0xff373737, 0xff383838, 0xff373737, 0xff383838, 0xff373737, 0xff373737, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff373737, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff3d3d3d, 0xff727272, 0xff939393, 0xff939393, 0xff949494, 0xfe959595, 0xff949494, 0xff949494, 0xff949494, 0xfe959595, 0xff939393, 0xff949494, 0xff949494, 0xff939393, 0xff939393, 0xff939393, 0xff727272, 0xff3e3e3e, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff373737, 0xff373737, 0xff373737, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff383838, 0xff373737, 0xff727272, 0xffb7b7b7, 0xfebababa, 0xffbababa, 0xffbbbbbb, 0xffbbbbbb, 0xfebcbcbc, 0xffbbbbbb, 0xfebcbcbc, 0xffbcbcbc, 0xfebcbcbc, 0xfebcbcbc, 0xffbbbbbb, 0xfebcbcbc, 0xfebcbcbc, 0xfebcbcbc, 0xffbbbbbb, 0xffbcbcbc, 0xffbbbbbb, 0xfebcbcbc, 0xfebcbcbc, 0xffbcbcbc, 0xffbbbbbb, 0xffbcbcbc, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbcbcbc, 0xfebcbcbc, 0xffbcbcbc, 0xfec3c3c3, 0xffc2c2c2, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xffc3c3c3, 0xfec3c3c3, 0xffc2c2c2, 0xffc2c2c2, 0xfec3c3c3, 0xffc2c2c2, 0xffc3c3c3, 0xfec3c3c3, 0xffc2c2c2, 0xffc2c2c2, 0xffc2c2c2,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xfebbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xfebcbcbc, 0xffbbbbbb, 0xfebbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xfebababa, 0xffb8b8b8, 0xfeb5b5b5, 0xffb1b1b1, 0xff757575, 0xff383838, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff383838, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff383838, 0xff373737, 0xff373737, 0xff383838, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff3e3e3e, 0xfe838383, 0xff939393, 0xfe949494, 0xfe959595, 0xff949494, 0xff959595, 0xfe969696, 0xff959595, 0xff969696, 0xff959595, 0xff959595, 0xff969696, 0xff949494, 0xff959595, 0xff949494, 0xfe949494, 0xfe949494, 0xfe838383, 0xff3d3d3d, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff383838, 0xff373737, 0xff383838, 0xff373737, 0xff373737, 0xff383838, 0xff383838, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff383838, 0xff373737, 0xff757575, 0xffb1b1b1, 0xffb4b4b4, 0xffb7b7b7, 0xffb9b9b9, 0xffbababa, 0xffbbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xfebcbcbc, 0xfebbbbbb, 0xfebbbbbb, 0xfebbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xfec2c2c2, 0xffc1c1c1, 0xfec2c2c2, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1, 0xffc1c1c1,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xffbbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xffbababa, 0xfeb9b9b9, 0xffb5b5b5, 0xffb2b2b2, 0xffafafaf, 0xffababab, 0xff8d8d8d, 0xff464646, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff727272, 0xfe949494, 0xfe959595, 0xff949494, 0xff959595, 0xff969696, 0xff969696, 0xff979797, 0xfe989898, 0xff989898, 0xff989898, 0xff979797, 0xfe989898, 0xfe989898, 0xff969696, 0xff959595, 0xff949494, 0xff939393, 0xff939393, 0xff727272, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff363636, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff3f3f3f, 0xff8c8c8c, 0xffababab, 0xfeafafaf, 0xffb3b3b3, 0xffb5b5b5, 0xffb7b7b7, 0xfebababa, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xfebbbbbb, 0xfebbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xffc0c0c0, 0xffc0c0c0, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xffbfbfbf, 0xfec0c0c0, 0xffbfbfbf, 0xffbfbfbf, 0xffc0c0c0, 0xffc0c0c0, 0xfec0c0c0, 0xfec0c0c0, 0xfec0c0c0, 0xffc0c0c0, 0xfec0c0c0,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xfebbbbbb, 0xffbababa, 0xffbababa, 0xffbababa, 0xfebbbbbb, 0xffbababa, 0xffbababa, 0xfebababa, 0xffbababa, 0xffbababa, 0xffbababa, 0xffbababa, 0xffbbbbbb, 0xffbababa, 0xfebbbbbb, 0xffbababa, 0xfebbbbbb, 0xfebbbbbb, 0xffbbbbbb, 0xffbababa, 0xfeb9b9b9, 0xffb7b7b7, 0xffb4b4b4, 0xfeb1b1b1, 0xfeaeaeae, 0xfeaaaaaa, 0xffa4a4a4, 0xfe959595, 0xff4b4b4b, 0xff363636, 0xff373737, 0xff373737, 0xff373737, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff373737, 0xff363636, 0xff373737, 0xff363636, 0xff373737, 0xff373737, 0xff373737, 0xff363636, 0xff373737, 0xff373737, 0xff5b5b5b, 0xff929292, 0xff949494, 0xff959595, 0xfe979797, 0xff979797, 0xfe999999, 0xff999999, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xff9a9a9a, 0xfe9b9b9b, 0xff9a9a9a, 0xfe999999, 0xfe999999, 0xfe989898, 0xff969696, 0xff959595, 0xfe949494, 0xff939393, 0xff616161, 0xff363636, 0xff373737, 0xff373737, 0xff363636, 0xff373737, 0xff363636, 0xff363636, 0xff373737, 0xff363636, 0xff363636, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff373737, 0xff363636, 0xff363636, 0xff363636, 0xff4b4b4b, 0xfe959595, 0xffa4a4a4, 0xfeaaaaaa, 0xffadadad, 0xfeb1b1b1, 0xffb3b3b3, 0xffb6b6b6, 0xffb8b8b8, 0xffb9b9b9, 0xffbababa, 0xffbababa, 0xfebbbbbb, 0xfebbbbbb, 0xffbababa, 0xffbababa, 0xffbababa, 0xffbababa, 0xfebbbbbb, 0xffbababa, 0xffbbbbbb, 0xfebbbbbb, 0xfebbbbbb, 0xffbababa, 0xffbababa, 0xfebbbbbb, 0xffbababa, 0xfebbbbbb, 0xffbababa, 0xfebbbbbb, 0xfebbbbbb, 0xffbababa, 0xfebbbbbb, 0xffbababa, 0xffbababa, 0xffbebebe, 0xfebfbfbf, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xffbdbdbd, 0xfebebebe, 0xffbfbfbf, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xffbebebe, 0xfebfbfbf, 0xfebebebe, 0xffbebebe, 0xffbebebe,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xffb9b9b9, 0xfebababa, 0xffb9b9b9, 0xffbababa, 0xfebababa, 0xffbababa, 0xfebababa, 0xfebababa, 0xfebababa, 0xffbababa, 0xffb9b9b9, 0xffbababa, 0xffb9b9b9, 0xfebababa, 0xfebababa, 0xffbababa, 0xffb9b9b9, 0xffbababa, 0xffb9b9b9, 0xffb8b8b8, 0xffb7b7b7, 0xffb4b4b4, 0xffb2b2b2, 0xfeafafaf, 0xffababab, 0xffa7a7a7, 0xffa3a3a3, 0xfe9f9f9f, 0xff9a9a9a, 0xff696969, 0xff373737, 0xff363636, 0xff373737, 0xff363636, 0xff363636, 0xff363636, 0xff373737, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff888888, 0xff949494, 0xff959595, 0xfe989898, 0xff989898, 0xff999999, 0xff9a9a9a, 0xff9b9b9b, 0xff9d9d9d, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9d9d, 0xff9c9c9c, 0xff9c9c9c, 0xfe9c9c9c, 0xff989898, 0xfe989898, 0xff969696, 0xff949494, 0xff949494, 0xfe8e8e8e, 0xff3b3b3b, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff373737, 0xff363636, 0xff373737, 0xff363636, 0xff363636, 0xff363636, 0xff373737, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff373737, 0xff636363, 0xff9a9a9a, 0xff9e9e9e, 0xffa2a2a2, 0xfea7a7a7, 0xfeadadad, 0xfeafafaf, 0xfeb3b3b3, 0xffb4b4b4, 0xfeb8b8b8, 0xffb8b8b8, 0xffb9b9b9, 0xfebababa, 0xffb9b9b9, 0xffbababa, 0xffb9b9b9, 0xffb9b9b9, 0xfebababa, 0xffbababa, 0xffb9b9b9, 0xffb9b9b9, 0xffbababa, 0xfebababa, 0xffbababa, 0xffbababa, 0xfebababa, 0xffbababa, 0xfebababa, 0xffbababa, 0xffbababa, 0xffb9b9b9, 0xfebababa, 0xffbababa, 0xffb9b9b9, 0xfebababa, 0xffbababa, 0xffbdbdbd, 0xffbdbdbd, 0xffbcbcbc, 0xffbdbdbd, 0xffbcbcbc, 0xffbdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xfebdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xffbdbdbd, 0xffbcbcbc, 0xfebdbdbd, 0xfebdbdbd, 0xffbdbdbd,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xfeb9b9b9, 0xffb8b8b8, 0xffb8b8b8, 0xffb9b9b9, 0xffb9b9b9, 0xffb9b9b9, 0xfeb9b9b9, 0xffb9b9b9, 0xffb8b8b8, 0xfebababa, 0xffb9b9b9, 0xffb9b9b9, 0xffb9b9b9, 0xffb9b9b9, 0xffb8b8b8, 0xffb8b8b8, 0xffb8b8b8, 0xffb9b9b9, 0xfeb9b9b9, 0xfeb8b8b8, 0xffb6b6b6, 0xffb4b4b4, 0xffb0b0b0, 0xffaeafae, 0xffaaaaaa, 0xffa5a5a5, 0xffa0a0a0, 0xff9d9d9d, 0xff999999, 0xff969696, 0xff727272, 0xff3b3b3b, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff343434, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff5b5b5b, 0xff949494, 0xff959595, 0xff979797, 0xff989898, 0xfe9b9b9b, 0xff9c9c9c, 0xff9d9e9e, 0xff9e9e9e, 0xff9f9f9f, 0xfea1a1a1, 0xffa0a0a0, 0xffa1a1a1, 0xffa0a0a0, 0xff9f9f9f, 0xff9e9e9e, 0xfe9d9e9d, 0xff9c9c9c, 0xff9a9a9a, 0xff989898, 0xfe989898, 0xff959595, 0xff939393, 0xff616161, 0xff363636, 0xff343434, 0xff363636, 0xff363636, 0xff343434, 0xff363636, 0xff343434, 0xff363636, 0xff373737, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff3b3b3b, 0xff727272, 0xfe979797, 0xff999999, 0xfe9d9e9d, 0xfea2a2a2, 0xfea6a6a6, 0xfeababab, 0xffaeaeae, 0xffb0b0b0, 0xffb4b4b4, 0xffb6b6b6, 0xffb8b8b8, 0xffb8b8b8, 0xffb8b8b8, 0xffb9b9b9, 0xffb9b9b9, 0xffb9b9b9, 0xffb9b9b9, 0xffb9b9b9, 0xffb9b9b9, 0xffb9b9b9, 0xffb9b9b9, 0xfeb9b9b9, 0xffb9b9b9, 0xfeb9b9b9, 0xffb8b8b8, 0xffb9b9b9, 0xfeb9b9b9, 0xffb9b9b9, 0xffb9b9b9, 0xffb9b9b9, 0xffb9b9b9, 0xffb9b9b9, 0xffb8b8b8, 0xffb9b9b9, 0xfeb9b9b9, 0xffb9b9b9, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xfebcbcbc, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb, 0xfebcbcbc, 0xfebcbcbc, 0xffbbbbbb, 0xffbbbbbb, 0xffbbbbbb,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xffb8b8b8, 0xfeb9b9b9, 0xffb8b8b8, 0xffb8b8b8, 0xfeb9b9b9, 0xffb8b8b8, 0xffb8b8b8, 0xffb9b9b9, 0xfeb9b9b9, 0xffb8b8b8, 0xffb8b8b8, 0xffb8b8b8, 0xffb7b7b7, 0xfeb9b9b9, 0xffb8b8b8, 0xffb8b8b8, 0xffb8b8b8, 0xffb8b8b8, 0xffb7b7b7, 0xffb7b7b7, 0xffb5b5b5, 0xffb2b2b2, 0xffb0b0b0, 0xffadadad, 0xffa9a9a9, 0xffa4a4a4, 0xffa0a0a0, 0xff9d9d9d, 0xfe999999, 0xff969696, 0xff939393, 0xfe878787, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff343434, 0xff343434, 0xff363636, 0xff363636, 0xff363636, 0xff343434, 0xff343434, 0xff363636, 0xff7d7d7d, 0xff959595, 0xff979797, 0xff999999, 0xfe9c9c9c, 0xff9d9e9e, 0xff9f9f9f, 0xffa1a1a1, 0xffa3a3a3, 0xfea4a4a4, 0xffa5a5a5, 0xfea6a6a6, 0xffa5a5a5, 0xffa5a5a5, 0xfea4a4a4, 0xfea3a3a3, 0xffa1a1a1, 0xff9e9e9e, 0xff9d9e9e, 0xff9b9b9b, 0xff999999, 0xfe989898, 0xff959595, 0xff7d7d7d, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff363636, 0xff343434, 0xff363636, 0xff363636, 0xff343434, 0xff343434, 0xff343434, 0xff363636, 0xff343434, 0xff343434, 0xff868686, 0xff949494, 0xff969696, 0xfe9a9a9a, 0xff9d9d9d, 0xfea1a1a1, 0xffa4a4a4, 0xfeaaaaaa, 0xffadadad, 0xffb0b0b0, 0xffb2b2b2, 0xffb5b5b5, 0xffb7b7b7, 0xffb7b7b7, 0xffb8b8b8, 0xfeb9b9b9, 0xfeb9b9b9, 0xffb8b8b8, 0xffb8b8b8, 0xffb7b7b7, 0xffb8b8b8, 0xfeb9b9b9, 0xfeb9b9b9, 0xffb8b8b8, 0xfeb8b8b8, 0xffb8b8b8, 0xffb8b8b8, 0xffb8b8b8, 0xffb8b8b8, 0xfeb8b8b8, 0xfeb8b8b8, 0xffb8b8b8, 0xffb8b8b8, 0xffb8b8b8, 0xfeb9b9b9, 0xffb8b8b8, 0xffb8b8b8, 0xffb8b8b8, 0xffbbbbbb, 0xffbababa, 0xffbababa, 0xffbababa, 0xffbbbbbb, 0xffbbbbbb, 0xffbababa, 0xfebbbbbb, 0xffbababa, 0xffbababa, 0xffbababa, 0xfebbbbbb, 0xfebbbbbb, 0xffbababa, 0xffbbbbbb, 0xffbbbbbb,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xfeb7b7b7, 0xfeb8b8b8, 0xffb8b8b8, 0xfeb8b8b8, 0xffb8b8b8, 0xfeb8b8b8, 0xffb7b7b7, 0xffb7b7b7, 0xfeb8b8b8, 0xffb7b7b7, 0xffb7b7b7, 0xfeb8b8b8, 0xfeb8b8b8, 0xffb7b7b7, 0xffb7b7b7, 0xffb7b7b7, 0xffb7b7b7, 0xffb7b7b7, 0xffb7b7b7, 0xffb6b6b6, 0xfeb5b5b5, 0xffb2b2b2, 0xffafafaf, 0xfeadadad, 0xfea9a9a9, 0xffa4a4a4, 0xffa0a0a0, 0xff9c9c9c, 0xff989898, 0xfe979797, 0xff949494, 0xff868686, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff363636, 0xff343434, 0xff343434, 0xff343434, 0xff949494, 0xff969696, 0xfe9a9a9a, 0xff9b9b9b, 0xff9d9e9e, 0xfea1a1a1, 0xffa2a2a2, 0xffa4a4a4, 0xfea8a8a8, 0xffa8a8a8, 0xffa9a9a9, 0xfeaaaaaa, 0xfeaaaaaa, 0xfeaaaaaa, 0xffa8a8a8, 0xffa7a7a7, 0xffa5a5a5, 0xffa2a2a2, 0xffa0a0a0, 0xff9d9e9e, 0xff9c9c9c, 0xff999999, 0xfe979797, 0xff8e8e8e, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff363636, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff363636, 0xff343434, 0xff868686, 0xff939393, 0xff969696, 0xfe9a9a9a, 0xfe9d9e9d, 0xffa0a0a0, 0xffa4a4a4, 0xffa8a8a8, 0xffadadad, 0xffafafaf, 0xffb2b2b2, 0xffb4b4b4, 0xffb6b6b6, 0xfeb7b7b7, 0xffb8b8b8, 0xffb7b7b7, 0xfeb8b8b8, 0xffb8b8b8, 0xffb7b7b7, 0xfeb8b8b8, 0xfeb8b8b8, 0xfeb8b8b8, 0xffb7b7b7, 0xfeb8b8b8, 0xffb7b7b7, 0xffb8b8b8, 0xffb7b7b7, 0xffb7b7b7, 0xffb7b7b7, 0xffb7b7b7, 0xffb8b8b8, 0xffb8b8b8, 0xffb7b7b7, 0xffb7b7b7, 0xffb7b7b7, 0xffb7b7b7, 0xffb8b8b8, 0xfeb8b8b8, 0xffb9b9b9, 0xfebababa, 0xffb9b9b9, 0xffb9b9b9, 0xffb9b9b9, 0xfebababa, 0xffb9b9b9, 0xfebababa, 0xfebababa, 0xffbababa, 0xffb9b9b9, 0xffbababa, 0xffb9b9b9, 0xffb9b9b9, 0xffb9b9b9, 0xffb9b9b9,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xffb6b6b6, 0xffb7b7b7, 0xffb6b6b6, 0xffb7b7b7, 0xffb6b6b6, 0xffb7b7b7, 0xffb7b7b7, 0xffb6b6b6, 0xffb7b7b7, 0xfeb7b7b7, 0xffb6b6b6, 0xffb7b7b7, 0xffb7b7b7, 0xffb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xffb7b7b7, 0xffb6b6b6, 0xfeb7b7b7, 0xfeb6b6b6, 0xfeb5b5b5, 0xffb2b2b2, 0xfeb0b0b0, 0xffadadad, 0xffa9a9a9, 0xffa5a5a5, 0xffa0a0a0, 0xff9d9d9d, 0xff9a9a9a, 0xff979797, 0xfe959595, 0xff7c7c7c, 0xff333333, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff343434, 0xff484848, 0xff959595, 0xfe999999, 0xfe9c9c9c, 0xff9d9e9e, 0xfea1a1a1, 0xffa3a3a3, 0xfea7a7a7, 0xffa8a8a8, 0xffababab, 0xffababab, 0xfeadadad, 0xffadadad, 0xffadadad, 0xffadadad, 0xffababab, 0xffaaaaaa, 0xfea9a9a9, 0xfea7a7a7, 0xffa4a4a4, 0xfea2a2a2, 0xfe9e9e9e, 0xff9b9b9b, 0xfe999999, 0xfe969696, 0xff414141, 0xff343434, 0xff333333, 0xff343434, 0xff343434, 0xff333333, 0xff343434, 0xff343434, 0xff333333, 0xff343434, 0xff333333, 0xff343434, 0xff343434, 0xff343434, 0xff828282, 0xff949494, 0xff979797, 0xff9a9a9a, 0xff9d9e9e, 0xffa0a0a0, 0xffa5a5a5, 0xffa9a9a9, 0xffadadad, 0xffafafaf, 0xffb2b2b2, 0xffb4b4b4, 0xffb5b5b5, 0xffb6b6b6, 0xffb7b7b7, 0xffb7b7b7, 0xffb6b6b6, 0xfeb7b7b7, 0xffb6b6b6, 0xfeb7b7b7, 0xfeb7b7b7, 0xffb6b6b6, 0xfeb7b7b7, 0xffb6b6b6, 0xffb7b7b7, 0xffb6b6b6, 0xfeb7b7b7, 0xffb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xfeb7b7b7, 0xffb7b7b7, 0xfeb7b7b7, 0xfeb7b7b7, 0xffb7b7b7, 0xfeb7b7b7, 0xffb8b8b8, 0xffb8b8b8, 0xffb8b8b8, 0xffb7b7b7, 0xffb7b7b7, 0xffb7b7b7, 0xffb8b8b8, 0xffb8b8b8, 0xfeb8b8b8, 0xffb7b7b7, 0xfeb8b8b8, 0xffb8b8b8, 0xfeb8b8b8, 0xffb7b7b7, 0xffb8b8b8, 0xffb8b8b8,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xfeb7b7b7, 0xfeb6b6b6, 0xffb6b6b6, 0xfeb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xffb5b5b5, 0xfeb7b7b7, 0xffb6b6b6, 0xffb6b6b6, 0xfeb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xfeb6b6b6, 0xfeb7b7b7, 0xffb4b4b4, 0xffb3b3b3, 0xfeb3b3b3, 0xfeb0b0b0, 0xffadadad, 0xfeababab, 0xffa6a6a6, 0xffa2a2a2, 0xff9e9e9e, 0xfe9c9c9c, 0xfe999999, 0xff959595, 0xff7c7c7c, 0xff343434, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff343434, 0xff333333, 0xff333333, 0xff4e4e4e, 0xff979797, 0xfe9b9b9b, 0xfe9d9e9d, 0xffa0a0a0, 0xfea4a4a4, 0xffa6a6a6, 0xffa9a9a9, 0xffababab, 0xfeaeaeae, 0xffaeafae, 0xffaeafae, 0xffb0b0b0, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xfeaeaeae, 0xffababab, 0xffa9a9a9, 0xffa6a6a6, 0xffa3a3a3, 0xffa0a0a0, 0xff9d9e9e, 0xff9a9a9a, 0xff979797, 0xff4d4d4d, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff343434, 0xff343434, 0xff333333, 0xff343434, 0xff343434, 0xff7d7d7d, 0xfe979797, 0xff989898, 0xff9b9b9b, 0xff9e9e9e, 0xffa3a3a3, 0xffa6a6a6, 0xffaaaaaa, 0xffadadad, 0xffafafaf, 0xffb1b1b1, 0xffb4b4b4, 0xfeb6b6b6, 0xffb5b5b5, 0xffb6b6b6, 0xffb6b6b6, 0xfeb6b6b6, 0xfeb7b7b7, 0xffb6b6b6, 0xffb6b6b6, 0xffb5b5b5, 0xffb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xfeb6b6b6, 0xfeb7b7b7, 0xffb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xfeb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xfeb6b6b6, 0xfeb7b7b7, 0xfeb6b6b6, 0xfeb7b7b7, 0xffb6b6b6, 0xffb6b6b6, 0xfeb7b7b7, 0xffb6b6b6, 0xffb6b6b6, 0xffb6b6b6, 0xfeb6b6b6, 0xffb6b6b6, 0xffb7b7b7, 0xffb6b6b6, 0xffb6b6b6, 0xfeb7b7b7, 0xfeb7b7b7, 0xfeb6b6b6, 0xffb7b7b7,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xffb5b5b5, 0xffb4b4b4, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xfeb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xfeb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb4b4b4, 0xffb2b2b2, 0xffb0b0b0, 0xffaeaeae, 0xfeacacac, 0xfea8a8a8, 0xffa4a4a4, 0xffa1a1a1, 0xfe9d9e9d, 0xff9a9a9a, 0xff979797, 0xff7e7e7e, 0xff333333, 0xff343434, 0xff333333, 0xff323232, 0xff333333, 0xff333333, 0xff343434, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff4e4e4e, 0xff989898, 0xff9c9c9c, 0xff9f9f9f, 0xffa2a2a2, 0xffa6a6a6, 0xffa9a9a9, 0xfeacacac, 0xffadadad, 0xfeb0b0b0, 0xffafafaf, 0xfeb1b1b1, 0xfeb2b2b2, 0xffb1b1b1, 0xffb0b0b0, 0xfeb1b1b1, 0xffafafaf, 0xfeafafaf, 0xffacacac, 0xffaaaaaa, 0xffa6a6a6, 0xfea4a4a4, 0xff9f9f9f, 0xfe9d9d9d, 0xfe999999, 0xff4e4e4e, 0xff333333, 0xff323232, 0xff333333, 0xff323232, 0xff333333, 0xff333333, 0xff343434, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff7e7e7e, 0xff969696, 0xfe9b9b9b, 0xff9d9e9e, 0xffa0a0a0, 0xfea5a5a5, 0xffa8a8a8, 0xffababab, 0xfeafafaf, 0xfeb1b1b1, 0xffb2b2b2, 0xffb3b3b3, 0xfeb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xfeb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb6b6b6, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xfeb5b5b5, 0xfeb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xfeb6b6b6, 0xffb4b4b4, 0xffb4b4b4, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xfeb5b5b5, 0xfeb5b5b5, 0xffb5b5b5, 0xffb4b4b4, 0xffb5b5b5, 0xffb5b5b5, 0xffb5b5b5, 0xfeb5b5b5, 0xffb5b5b5, 0xffb4b4b4,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xffb4b4b4, 0xfeb5b5b5, 0xfeb5b5b5, 0xffb4b4b4, 0xffb5b5b5, 0xffb4b4b4, 0xffb5b5b5, 0xfeb5b5b5, 0xfeb5b5b5, 0xfeb5b5b5, 0xffb5b5b5, 0xffb4b4b4, 0xffb4b4b4, 0xffb4b4b4, 0xfeb5b5b5, 0xffb4b4b4, 0xffb4b4b4, 0xffb4b4b4, 0xffb4b4b4, 0xfeb5b5b5, 0xffb3b3b3, 0xffb2b2b2, 0xffb0b0b0, 0xffaeafae, 0xfeadadad, 0xffaaaaaa, 0xffa6a6a6, 0xffa2a2a2, 0xff9f9f9f, 0xff9d9d9d, 0xfe9a9a9a, 0xff858585, 0xff333333, 0xff323232, 0xff333333, 0xff323232, 0xff323232, 0xff333333, 0xff323232, 0xff333333, 0xff323232, 0xff333333, 0xff333333, 0xff323232, 0xff333333, 0xff414141, 0xff9a9a9a, 0xff9d9e9e, 0xffa1a1a1, 0xfea6a6a6, 0xffa8a8a8, 0xffacacac, 0xffaeaeae, 0xfeb0b0b0, 0xffb1b1b1, 0xffb1b1b1, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb1b1b1, 0xffb1b1b1, 0xffb0b0b0, 0xfeafafaf, 0xffababab, 0xfeaaaaaa, 0xfea6a6a6, 0xfea3a3a3, 0xff9d9e9e, 0xff9b9b9b, 0xff484848, 0xff333333, 0xff323232, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff323232, 0xff333333, 0xff333333, 0xff333333, 0xff333333, 0xff323232, 0xff323232, 0xff7e7e7e, 0xff999999, 0xfe9d9d9d, 0xff9f9f9f, 0xffa2a2a2, 0xffa6a6a6, 0xfeaaaaaa, 0xffacacac, 0xfeb0b0b0, 0xfeb2b2b2, 0xffb2b2b2, 0xffb3b3b3, 0xfeb5b5b5, 0xffb4b4b4, 0xffb4b4b4, 0xfeb5b5b5, 0xffb4b4b4, 0xfeb5b5b5, 0xffb4b4b4, 0xffb4b4b4, 0xfeb5b5b5, 0xffb4b4b4, 0xffb4b4b4, 0xffb4b4b4, 0xffb4b4b4, 0xffb4b4b4, 0xfeb5b5b5, 0xffb4b4b4, 0xfeb5b5b5, 0xffb4b4b4, 0xffb4b4b4, 0xffb5b5b5, 0xffb5b5b5, 0xffb4b4b4, 0xfeb5b5b5, 0xffb4b4b4, 0xffb4b4b4, 0xfeb5b5b5, 0xffb4b4b4, 0xfeb4b4b4, 0xffb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb4b4b4, 0xffb4b4b4, 0xfeb4b4b4, 0xffb3b3b3, 0xffb4b4b4, 0xfeb4b4b4, 0xffb3b3b3, 0xfeb4b4b4, 0xfeb4b4b4,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xffb4b4b4, 0xffb3b3b3, 0xffb4b4b4, 0xffb3b3b3, 0xffb3b3b3, 0xfeb4b4b4, 0xffb4b4b4, 0xfeb4b4b4, 0xffb4b4b4, 0xffb4b4b4, 0xfeb4b4b4, 0xffb3b3b3, 0xffb4b4b4, 0xffb4b4b4, 0xfeb4b4b4, 0xffb4b4b4, 0xffb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb2b2b2, 0xffb1b1b1, 0xffb1b1b1, 0xffafafaf, 0xffaeaeae, 0xffababab, 0xffa9a9a9, 0xffa5a5a5, 0xffa1a1a1, 0xff9d9e9e, 0xff9b9b9b, 0xff8b8b8b, 0xff323232, 0xff323232, 0xff323232, 0xff333333, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff333333, 0xff969696, 0xff9f9f9f, 0xffa3a3a3, 0xffa7a7a7, 0xffaaaaaa, 0xffadadad, 0xffafafaf, 0xffb1b1b1, 0xffb2b2b2, 0xffb3b3b3, 0xffb3b3b3, 0xfeb4b4b4, 0xfeb3b3b3, 0xffb2b2b2, 0xffb2b2b2, 0xfeb3b3b3, 0xffb0b0b0, 0xffafafaf, 0xffadadad, 0xfeababab, 0xffa7a7a7, 0xffa3a3a3, 0xfea0a0a0, 0xff9c9c9c, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff333333, 0xff323232, 0xff333333, 0xff323232, 0xff323232, 0xff323232, 0xff333333, 0xff333333, 0xff8b8b8b, 0xff9b9b9b, 0xff9d9e9e, 0xffa1a1a1, 0xffa5a5a5, 0xfeaaaaaa, 0xfeadadad, 0xfeaeaeae, 0xfeb0b0b0, 0xffb1b1b1, 0xffb2b2b2, 0xffb3b3b3, 0xffb4b4b4, 0xffb4b4b4, 0xffb4b4b4, 0xffb4b4b4, 0xfeb5b5b5, 0xffb4b4b4, 0xffb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb4b4b4, 0xfeb4b4b4, 0xfeb4b4b4, 0xfeb4b4b4, 0xffb4b4b4, 0xffb4b4b4, 0xffb4b4b4, 0xffb3b3b3, 0xffb4b4b4, 0xffb4b4b4, 0xfeb4b4b4, 0xffb4b4b4, 0xffb4b4b4, 0xffb4b4b4, 0xfeb4b4b4, 0xffb3b3b3, 0xffb4b4b4, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xfeb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xfeb2b2b2, 0xfeb2b2b2, 0xffb2b2b2, 0xffb2b2b2,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xffb3b3b3, 0xfeb3b3b3, 0xfeb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xfeb3b3b3, 0xffb3b3b3, 0xfeb3b3b3, 0xfeb3b3b3, 0xffb3b3b3, 0xfeb4b4b4, 0xffb3b3b3, 0xffb2b2b2, 0xfeb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb2b2b2, 0xffb2b2b2, 0xffb1b1b1, 0xfeb1b1b1, 0xffaeafae, 0xffadadad, 0xffababab, 0xffa7a7a7, 0xffa4a4a4, 0xffa0a0a0, 0xff9d9e9e, 0xff818181, 0xff313131, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff313131, 0xff313131, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff848484, 0xffa0a0a0, 0xffa5a5a5, 0xffa8a8a8, 0xffacacac, 0xffaeaeae, 0xffb0b0b0, 0xffb1b1b1, 0xffb2b2b2, 0xffb3b3b3, 0xfeb3b3b3, 0xffb3b3b3, 0xffb2b2b2, 0xffb3b3b3, 0xfeb4b4b4, 0xffb2b2b2, 0xfeb2b2b2, 0xffb0b0b0, 0xffaeaeae, 0xffacacac, 0xfeaaaaaa, 0xfea6a6a6, 0xffa1a1a1, 0xff848484, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff323232, 0xff313131, 0xff323232, 0xff323232, 0xff878787, 0xff9d9d9d, 0xffa0a0a0, 0xffa4a4a4, 0xfea8a8a8, 0xffaaaaaa, 0xffadadad, 0xffaeafae, 0xfeb1b1b1, 0xffb1b1b1, 0xffb2b2b2, 0xffb2b2b2, 0xffb3b3b3, 0xfeb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xfeb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xfeb3b3b3, 0xffb3b3b3, 0xfeb4b4b4, 0xfeb4b4b4, 0xffb3b3b3, 0xffb3b3b3, 0xfeb3b3b3, 0xfeb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb3b3b3, 0xffb2b2b2, 0xffb2b2b2, 0xffb3b3b3, 0xffb3b3b3, 0xfeb1b1b1, 0xffb1b1b1, 0xfeb1b1b1, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xfeb1b1b1, 0xfeb1b1b1, 0xffb0b0b0, 0xffb0b0b0, 0xfeb1b1b1, 0xfeb1b1b1,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xffb2b2b2, 0xfeb3b3b3, 0xfeb3b3b3, 0xffb2b2b2, 0xfeb3b3b3, 0xffb3b3b3, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xfeb3b3b3, 0xfeb2b2b2, 0xffb2b2b2, 0xfeb3b3b3, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xfeb3b3b3, 0xffb2b2b2, 0xffb1b1b1, 0xffb1b1b1, 0xffb0b0b0, 0xffb0b0b0, 0xfeaeaeae, 0xffacacac, 0xffa9a9a9, 0xffa5a5a5, 0xfea2a2a2, 0xff727272, 0xff323232, 0xff313131, 0xff313131, 0xff323232, 0xff313131, 0xff323232, 0xff313131, 0xff313131, 0xff323232, 0xff323232, 0xff313131, 0xff313131, 0xff323232, 0xff323232, 0xff323232, 0xff646464, 0xffa2a2a2, 0xfea6a6a6, 0xffaaaaaa, 0xffadadad, 0xffaeafae, 0xffb0b0b0, 0xffb1b1b1, 0xfeb3b3b3, 0xfeb3b3b3, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb0b0b0, 0xffaeafae, 0xffadadad, 0xffa9a9a9, 0xffa6a6a6, 0xffa2a2a2, 0xff5d5e5e, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff323232, 0xff313131, 0xff313131, 0xff313131, 0xff323232, 0xff313131, 0xff313131, 0xff323232, 0xff6b6b6b, 0xffa1a1a1, 0xfea6a6a6, 0xffa9a9a9, 0xfeadadad, 0xffaeaeae, 0xffafafaf, 0xffb0b0b0, 0xffb1b1b1, 0xffb2b2b2, 0xffb2b2b2, 0xffb3b3b3, 0xffb2b2b2, 0xfeb3b3b3, 0xffb2b2b2, 0xffb2b2b2, 0xfeb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xfeb3b3b3, 0xfeb3b3b3, 0xfeb3b3b3, 0xffb2b2b2, 0xfeb3b3b3, 0xffb3b3b3, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb3b3b3, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xfeb2b2b2, 0xffb2b2b2, 0xffafafaf, 0xffafafaf, 0xfeb0b0b0, 0xffafafaf, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xffafafaf, 0xffafafaf, 0xfeafafaf, 0xffafafaf, 0xfeafafaf, 0xffaeafae, 0xffafafaf, 0xffafafaf, 0xffafafaf,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xfeb2b2b2, 0xffb1b1b1, 0xffb2b2b2, 0xfeb2b2b2, 0xfeb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb2b2b2, 0xffb1b1b1, 0xfeb2b2b2, 0xffb2b2b2, 0xffb1b1b1, 0xfeb2b2b2, 0xffb1b1b1, 0xffb1b1b1, 0xffb1b1b1, 0xffb1b1b1, 0xffb1b1b1, 0xfeb2b2b2, 0xfeb2b2b2, 0xffb1b1b1, 0xffb1b1b1, 0xffb0b0b0, 0xffb0b0b0, 0xffaeafae, 0xffadadad, 0xffababab, 0xffa0a0a0, 0xff606060, 0xff313131, 0xff313131, 0xff323232, 0xff323232, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff323232, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff393939, 0xff9d9d9d, 0xfea8a8a8, 0xffaaaaaa, 0xffadadad, 0xfeb0b0b0, 0xfeb1b1b1, 0xffb2b2b2, 0xffb1b1b1, 0xffb2b2b2, 0xffb1b1b1, 0xffb1b1b1, 0xfeb2b2b2, 0xffb1b1b1, 0xffb1b1b1, 0xffb1b1b1, 0xfeb2b2b2, 0xffb0b0b0, 0xffaeafae, 0xffadadad, 0xffaaaaaa, 0xffa6a6a6, 0xff969696, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff323232, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff323232, 0xff323232, 0xff313131, 0xff323232, 0xff676767, 0xffa0a0a0, 0xffaaaaaa, 0xffadadad, 0xffaeafae, 0xfeb0b0b0, 0xffb0b0b0, 0xffb1b1b1, 0xffb1b1b1, 0xffb2b2b2, 0xffb1b1b1, 0xffb1b1b1, 0xffb2b2b2, 0xffb1b1b1, 0xffb2b2b2, 0xffb1b1b1, 0xfeb2b2b2, 0xffb1b1b1, 0xfeb2b2b2, 0xfeb2b2b2, 0xffb2b2b2, 0xffb1b1b1, 0xffb1b1b1, 0xffb2b2b2, 0xffb1b1b1, 0xffb1b1b1, 0xffb1b1b1, 0xffb1b1b1, 0xffb2b2b2, 0xffb2b2b2, 0xfeb2b2b2, 0xfeb2b2b2, 0xffb2b2b2, 0xffb1b1b1, 0xfeb2b2b2, 0xfeb2b2b2, 0xfeaeaeae, 0xfeaeaeae, 0xffaeafae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeafae, 0xfeaeaeae, 0xfeaeaeae, 0xfeaeaeae,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xffb0b0b0, 0xffb1b1b1, 0xfeb1b1b1, 0xffb1b1b1, 0xffb1b1b1, 0xffb0b0b0, 0xffb0b0b0, 0xffb1b1b1, 0xffb0b0b0, 0xffb0b0b0, 0xfeb2b2b2, 0xffb1b1b1, 0xffb0b0b0, 0xfeb1b1b1, 0xfeb1b1b1, 0xffb1b1b1, 0xffb0b0b0, 0xffb1b1b1, 0xfeb1b1b1, 0xffb1b1b1, 0xffb0b0b0, 0xffb1b1b1, 0xffb1b1b1, 0xfeb1b1b1, 0xffafafaf, 0xffaeafae, 0xfeaeaeae, 0xfe9d9e9d, 0xff494949, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff303030, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff676767, 0xffa7a7a7, 0xffaaaaaa, 0xffadadad, 0xfeafafaf, 0xfeb1b1b1, 0xffb1b1b1, 0xffb1b1b1, 0xfeb1b1b1, 0xffb1b1b1, 0xffb1b1b1, 0xfeb2b2b2, 0xffb1b1b1, 0xffb1b1b1, 0xffb1b1b1, 0xfeb1b1b1, 0xffb0b0b0, 0xffaeafae, 0xffadadad, 0xfeababab, 0xffa6a6a6, 0xff5f5f5f, 0xff313131, 0xff303030, 0xff313131, 0xff303030, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff303030, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff313131, 0xff303030, 0xff303030, 0xff303030, 0xff424242, 0xfe9d9e9d, 0xffadadad, 0xfeb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb1b1b1, 0xffb1b1b1, 0xffb1b1b1, 0xfeb1b1b1, 0xffb1b1b1, 0xffb0b0b0, 0xffb1b1b1, 0xffb1b1b1, 0xfeb1b1b1, 0xffb1b1b1, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xfeb1b1b1, 0xffb1b1b1, 0xffb0b0b0, 0xfeb1b1b1, 0xfeb1b1b1, 0xffb1b1b1, 0xffb1b1b1, 0xfeb1b1b1, 0xffb1b1b1, 0xfeb1b1b1, 0xffb1b1b1, 0xfeb1b1b1, 0xffb0b0b0, 0xffb0b0b0, 0xfeb1b1b1, 0xfeaeaeae, 0xffadadad, 0xffadadad, 0xfeaeaeae, 0xffadadad, 0xffadadad, 0xffadadad, 0xffadadad, 0xfeadadad, 0xffadadad, 0xffadadad, 0xffadadad, 0xffacacac, 0xffadadad, 0xfeaeaeae, 0xfeaeaeae,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xfeb0b0b0, 0xffb1b1b1, 0xfeb1b1b1, 0xffb0b0b0, 0xfeb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xfeb1b1b1, 0xffafafaf, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xfeafafaf, 0xff909090, 0xff393939, 0xff303030, 0xff303030, 0xff313131, 0xff313131, 0xff303030, 0xff303030, 0xff303030, 0xff313131, 0xff313131, 0xff313131, 0xff303030, 0xff303030, 0xff303030, 0xff313131, 0xff313131, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xfe7e7e7e, 0xfeababab, 0xffacacac, 0xffaeafae, 0xffafafaf, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xfeb0b0b0, 0xffaeaeae, 0xffacacac, 0xffaaaaaa, 0xff7d7d7d, 0xff313131, 0xff303030, 0xff313131, 0xff303030, 0xff303030, 0xff313131, 0xff313131, 0xff303030, 0xff313131, 0xff303030, 0xff303030, 0xff313131, 0xff303030, 0xff313131, 0xff313131, 0xff303030, 0xff303030, 0xff313131, 0xff313131, 0xff313131, 0xff424242, 0xff898989, 0xfeafafaf, 0xffafafaf, 0xfeb0b0b0, 0xfeb1b1b1, 0xfeb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xfeb1b1b1, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xfeb1b1b1, 0xfeb0b0b0, 0xffb0b0b0, 0xfeb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xfeb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xffb0b0b0, 0xfeb0b0b0, 0xffb0b0b0, 0xffafafaf, 0xfeacacac, 0xffacacac, 0xfeacacac, 0xffacacac, 0xfeacacac, 0xffababab, 0xffacacac, 0xffababab, 0xffababab, 0xffacacac, 0xfeacacac, 0xffababab, 0xffababab, 0xffababab, 0xffababab, 0xfeacacac,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xfeafafaf, 0xffafafaf, 0xfeafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xfeb0b0b0, 0xffafafaf, 0xfeb0b0b0, 0xffafafaf, 0xfeafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffb0b0b0, 0xffafafaf, 0xffafafaf, 0xfeb0b0b0, 0xffaeafae, 0xff727272, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff313131, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff2e2e2e, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff313131, 0xff383838, 0xff949494, 0xffacacac, 0xfeaeaeae, 0xffafafaf, 0xffafafaf, 0xfeb0b0b0, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffb0b0b0, 0xffafafaf, 0xffafafaf, 0xffaeafae, 0xfeaeaeae, 0xffacacac, 0xff949494, 0xff393939, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff313131, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff737373, 0xfeafafaf, 0xfeb0b0b0, 0xfeb0b0b0, 0xffb0b0b0, 0xffafafaf, 0xffafafaf, 0xfeb0b0b0, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xfeb0b0b0, 0xffb0b0b0, 0xfeb0b0b0, 0xffafafaf, 0xffafafaf, 0xfeb0b0b0, 0xffb0b0b0, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xffafafaf, 0xfeababab, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xffa9a9a9, 0xfeababab, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xfeaaaaaa, 0xfeaaaaaa, 0xffaaaaaa,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xffafafaf, 0xffafafaf, 0xfeafafaf, 0xfeafafaf, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xfeafafaf, 0xfeafafaf, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xfeafafaf, 0xffafafaf, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xfeafafaf, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xff6a6a6a, 0xff303030, 0xff303030, 0xff2e2e2e, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff2e2e2e, 0xff303030, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff303030, 0xff303030, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff303030, 0xff383838, 0xff7f7f7f, 0xffadadad, 0xffaeaeae, 0xffafafaf, 0xffaeafae, 0xffaeafae, 0xfeafafaf, 0xfeafafaf, 0xffafafaf, 0xfeafafaf, 0xffaeafae, 0xffaeafae, 0xfeafafaf, 0xfeaeaeae, 0xfeaeaeae, 0xff808080, 0xff383838, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff2e2e2e, 0xff2e2e2e, 0xff303030, 0xff303030, 0xff2e2e2e, 0xff303030, 0xff303030, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff303030, 0xff303030, 0xff2e2e2e, 0xff303030, 0xff636363, 0xffaeafae, 0xfeafafaf, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xffafafaf, 0xffaeafae, 0xffaeafae, 0xfeafafaf, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xfeafafaf, 0xfeafafaf, 0xffaeafae, 0xfeafafaf, 0xffaeafae, 0xfeafafaf, 0xffaeafae, 0xffafafaf, 0xffaeafae, 0xfeafafaf, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xfeafafaf, 0xffaeafae, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xffa8a8a8, 0xffa9a9a9, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa9a9a9, 0xfea9a9a9, 0xfea9a9a9, 0xffa8a8a8,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xfeaeaeae, 0xffaeaeae, 0xfeaeaeae, 0xffaeaeae, 0xffaeafae, 0xffaeaeae, 0xffaeafae, 0xfeaeaeae, 0xffaeafae, 0xffaeaeae, 0xfeaeaeae, 0xffaeafae, 0xfeafafaf, 0xffaeafae, 0xffaeaeae, 0xfeaeaeae, 0xfeaeaeae, 0xffaeafae, 0xfeaeaeae, 0xffaeafae, 0xfeafafaf, 0xffaeaeae, 0xfeaeaeae, 0xffaeaeae, 0xff2e2e2e, 0xff2e2e2e, 0xff303030, 0xff303030, 0xff303030, 0xff303030, 0xff2e2e2e, 0xff2e2e2e, 0xff303030, 0xff2e2e2e, 0xff2e2e2e, 0xff303030, 0xff2e2e2e, 0xff2e2e2e, 0xff303030, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff303030, 0xff2e2e2e, 0xff2e2e2e, 0xff626262, 0xff9e9e9e, 0xffaeaeae, 0xffaeafae, 0xfeafafaf, 0xffaeafae, 0xfeaeaeae, 0xffaeafae, 0xffaeaeae, 0xffaeaeae, 0xfeaeaeae, 0xffaeaeae, 0xffa6a6a6, 0xff696969, 0xff2e2e2e, 0xff303030, 0xff303030, 0xff2e2e2e, 0xff303030, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff303030, 0xff2e2e2e, 0xff303030, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff303030, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff303030, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xffadadad, 0xffaeaeae, 0xffaeafae, 0xffaeaeae, 0xffaeafae, 0xffaeafae, 0xfeaeaeae, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xfeaeaeae, 0xffaeafae, 0xffaeafae, 0xfeaeaeae, 0xfeafafaf, 0xfeaeaeae, 0xffaeafae, 0xfeaeaeae, 0xffaeafae, 0xffaeaeae, 0xfeaeaeae, 0xffaeaeae, 0xffaeafae, 0xffaeaeae, 0xffaeafae, 0xffaeafae, 0xffaeafae, 0xffaeaeae, 0xffaeafae, 0xffaeafae, 0xffa7a7a7, 0xfea8a8a8, 0xffa7a7a7, 0xfea8a8a8, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xfea8a8a8, 0xffa7a7a7, 0xfea8a8a8, 0xfea7a7a7, 0xffa7a7a7, 0xfea7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xfeaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xfeaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xfeaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffadadad, 0xffadadad, 0xffacacac, 0xff515151, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff303030, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff626262, 0xff909090, 0xfeaeaeae, 0xfeaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffa7a7a7, 0xff919191, 0xff6a6a6a, 0xff383838, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2d2d2d, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff494949, 0xffacacac, 0xffadadad, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xfeaeaeae, 0xffaeaeae, 0xffaeaeae, 0xfeaeaeae, 0xffaeaeae, 0xfeaeaeae, 0xfeaeaeae, 0xffaeaeae, 0xfeaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffaeaeae, 0xfeaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffadadad, 0xffaeaeae, 0xffaeaeae, 0xfeaeaeae, 0xffaeaeae, 0xfeaeaeae, 0xfeaeaeae, 0xffa5a5a5, 0xfea6a6a6, 0xffa6a6a6, 0xffa6a6a6, 0xffa5a5a5, 0xffa5a5a5, 0xfea6a6a6, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xfea6a6a6, 0xfea6a6a6,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xfeaeaeae, 0xfeadadad, 0xfeaeaeae, 0xfeaeaeae, 0xfeaeaeae, 0xfeaeaeae, 0xffadadad, 0xffaeaeae, 0xffadadad, 0xfeaeaeae, 0xfeaeaeae, 0xffadadad, 0xffaeaeae, 0xffadadad, 0xfeaeaeae, 0xffadadad, 0xffadadad, 0xffadadad, 0xffadadad, 0xffadadad, 0xffadadad, 0xffacacac, 0xffacacac, 0xffababab, 0xfe8d8d8d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2e2e2e, 0xff2e2e2e, 0xff2d2d2d, 0xff2d2d2d, 0xff2e2e2e, 0xff2e2e2e, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2e2e2e, 0xff2d2d2d, 0xff2e2e2e, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2e2e2e, 0xff2d2d2d, 0xff2d2d2d, 0xff2e2e2e, 0xff2d2d2d, 0xff2d2d2d, 0xff2e2e2e, 0xff2d2d2d, 0xff2d2d2d, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff494949, 0xff515151, 0xff525252, 0xff404040, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2d2d2d, 0xff2d2d2d, 0xff2e2e2e, 0xff2d2d2d, 0xff2e2e2e, 0xff2d2d2d, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2d2d2d, 0xff2e2e2e, 0xff2e2e2e, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2d2d2d, 0xff2e2e2e, 0xff2e2e2e, 0xff2e2e2e, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff9b9b9b, 0xffaaaaaa, 0xffababab, 0xffacacac, 0xffadadad, 0xffadadad, 0xffaeaeae, 0xffadadad, 0xffadadad, 0xffadadad, 0xffadadad, 0xfeaeaeae, 0xffadadad, 0xffadadad, 0xffadadad, 0xffadadad, 0xffadadad, 0xffadadad, 0xffadadad, 0xffadadad, 0xfeaeaeae, 0xffadadad, 0xffaeaeae, 0xffadadad, 0xffadadad, 0xffaeaeae, 0xfeaeaeae, 0xffaeaeae, 0xffaeaeae, 0xffadadad, 0xfeaeaeae, 0xffa4a4a4, 0xfea4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xfea5a5a5, 0xffa4a4a4, 0xffa4a4a4, 0xffa3a3a3, 0xfea4a4a4,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xfeadadad, 0xffadadad, 0xffadadad, 0xffacacac, 0xffadadad, 0xffadadad, 0xffacacac, 0xffacacac, 0xfeadadad, 0xffadadad, 0xffacacac, 0xfeadadad, 0xffacacac, 0xffacacac, 0xffacacac, 0xffadadad, 0xffacacac, 0xfeadadad, 0xffacacac, 0xffacacac, 0xffababab, 0xfeacacac, 0xffaaaaaa, 0xfeaaaaaa, 0xffa6a6a6, 0xff5d5e5e, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2e2e2e, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2e2e2e, 0xff2e2e2e, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2e2e2e, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2e2e2e, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2e2e2e, 0xff2d2d2d, 0xff5d5e5e, 0xfea7a7a7, 0xffa8a8a8, 0xffa9a9a9, 0xfeacacac, 0xfeadadad, 0xffacacac, 0xffadadad, 0xffacacac, 0xfeadadad, 0xffadadad, 0xffacacac, 0xffacacac, 0xffacacac, 0xffacacac, 0xffacacac, 0xfeadadad, 0xffadadad, 0xffacacac, 0xffacacac, 0xffacacac, 0xffacacac, 0xffadadad, 0xffacacac, 0xfeadadad, 0xffadadad, 0xffacacac, 0xffacacac, 0xffadadad, 0xfeadadad, 0xfeadadad, 0xffacacac, 0xffa2a2a2, 0xfea3a3a3, 0xffa2a2a2, 0xffa3a3a3, 0xffa3a3a3, 0xffa2a2a2, 0xffa3a3a3, 0xffa3a3a3, 0xfea3a3a3, 0xfea3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xfea3a3a3, 0xffa3a3a3, 0xffa2a2a2,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x10afafaf, 0xffacacac, 0xffacacac, 0xffababab, 0xfeacacac, 0xfeacacac, 0xffacacac, 0xffababab, 0xffacacac, 0xffacacac, 0xfeacacac, 0xffacacac, 0xffababab, 0xffacacac, 0xffacacac, 0xffacacac, 0xffababab, 0xfeacacac, 0xffababab, 0xffacacac, 0xffababab, 0xffaaaaaa, 0xffa9a9a9, 0xffa7a7a7, 0xffa6a6a6, 0xffa4a4a4, 0xff9a9a9a, 0xff343434, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2c2c2c, 0xff2c2c2c, 0xff2d2d2d, 0xff2c2c2c, 0xff2c2c2c, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2c2c2c, 0xff2d2d2d, 0xff2c2c2c, 0xff2c2c2c, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2c2c2c, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2c2c2c, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2c2c2c, 0xff2c2c2c, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff3e3e3e, 0xff939393, 0xffa3a3a3, 0xfea7a7a7, 0xffa7a7a7, 0xfeaaaaaa, 0xffaaaaaa, 0xffacacac, 0xffacacac, 0xfeacacac, 0xffababab, 0xffacacac, 0xffababab, 0xffababab, 0xfeacacac, 0xffababab, 0xffacacac, 0xfeacacac, 0xffacacac, 0xffababab, 0xffacacac, 0xffacacac, 0xffababab, 0xfeacacac, 0xffacacac, 0xffababab, 0xfeacacac, 0xffacacac, 0xffacacac, 0xffacacac, 0xffacacac, 0xffacacac, 0xffacacac, 0xffa1a1a1, 0xfea2a2a2, 0xffa1a1a1, 0xfea2a2a2, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xfea2a2a2, 0xffa1a1a1, 0xfea2a2a2, 0xffa1a1a1, 0xffa1a1a1, 0xfea2a2a2, 0xffa1a1a1,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7fadadad, 0xfeababab, 0xffababab, 0xffababab, 0xfeababab, 0xffababab, 0xffaaaaaa, 0xffababab, 0xffababab, 0xffababab, 0xfeacacac, 0xffababab, 0xffababab, 0xffababab, 0xfeababab, 0xffababab, 0xfeababab, 0xffababab, 0xffababab, 0xffababab, 0xffaaaaaa, 0xffa9a9a9, 0xfea9a9a9, 0xffa7a7a7, 0xffa4a4a4, 0xfea2a2a2, 0xff9d9e9e, 0xff676767, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2d2d2d, 0xff2d2d2d, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2d2d2d, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2d2d2d, 0xff2c2c2c, 0xff2c2c2c, 0xff2d2d2d, 0xff2d2d2d, 0xff2c2c2c, 0xff2d2d2d, 0xff2d2d2d, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2d2d2d, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2d2d2d, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2d2d2d, 0xff2d2d2d, 0xff2d2d2d, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff666666, 0xff9d9e9e, 0xfea2a2a2, 0xfea4a4a4, 0xfea7a7a7, 0xfea9a9a9, 0xffa9a9a9, 0xffaaaaaa, 0xffababab, 0xffacacac, 0xffababab, 0xffababab, 0xffababab, 0xffababab, 0xffacacac, 0xffababab, 0xffababab, 0xffababab, 0xffababab, 0xfeababab, 0xfeacacac, 0xfeacacac, 0xffababab, 0xffababab, 0xffababab, 0xffababab, 0xffababab, 0xffacacac, 0xfeababab, 0xffababab, 0xffababab, 0xffababab, 0xfeacacac, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xffa0a0a0, 0xff9f9f9f, 0xffa0a0a0, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xfea0a0a0, 0xfea0a0a0, 0xff9f9f9f, 0xffa0a0a0, 0xffa0a0a0, 0xfea0a0a0, 0xfea0a0a0,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x50a9a9a9, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xfeaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xfeababab, 0xffababab, 0xffaaaaaa, 0xfeababab, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xffababab, 0xffaaaaaa, 0xffa9a9a9, 0xffa8a8a8, 0xffa7a7a7, 0xffa4a4a4, 0xffa2a2a2, 0xff9f9f9f, 0xff9c9c9c, 0xff919191, 0xff3b3b3b, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2d2d2d, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2d2d2d, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2d2d2d, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff3b3b3b, 0xff999999, 0xfe9d9d9d, 0xff9e9e9e, 0xffa1a1a1, 0xffa4a4a4, 0xfea7a7a7, 0xffa8a8a8, 0xffa9a9a9, 0xffababab, 0xffaaaaaa, 0xfeababab, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xfeaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xfeababab, 0xfeaaaaaa, 0xfeababab, 0xffaaaaaa, 0xffababab, 0xffababab, 0xffaaaaaa, 0xffababab, 0xffaaaaaa, 0xffaaaaaa, 0xffaaaaaa, 0xff9e9e9e, 0xff9e9e9e, 0xfe9e9e9e, 0xff9e9e9e, 0xfe9e9e9e, 0xff9e9e9e, 0xfe9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xfe9f9f9f, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0x809d9d9d,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x20a7a7a7, 0xefaaaaaa, 0xffa9a9a9, 0xffa9a9a9, 0xffaaaaaa, 0xffa9a9a9, 0xfeaaaaaa, 0xffa9a9a9, 0xffa9a9a9, 0xffaaaaaa, 0xffa9a9a9, 0xfeaaaaaa, 0xffa9a9a9, 0xffa9a9a9, 0xfeaaaaaa, 0xfeaaaaaa, 0xffa9a9a9, 0xffaaaaaa, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xffa8a8a8, 0xffa7a7a7, 0xffa5a5a5, 0xffa3a3a3, 0xffa0a0a0, 0xff9d9d9d, 0xff999999, 0xff969696, 0xff7a7a7a, 0xff2c2c2c, 0xff2b2b2b, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2b2b2b, 0xff2c2c2c, 0xff2c2c2c, 0xff2b2b2b, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff2b2b2b, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2b2b2b, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2b2b2b, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2b2b2b, 0xff2b2b2b, 0xff2c2c2c, 0xff2c2c2c, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff2c2c2c, 0xff6e6e6e, 0xfe969696, 0xff999999, 0xfe9d9e9d, 0xffa0a0a0, 0xffa3a3a3, 0xffa5a5a5, 0xfea8a8a8, 0xffa8a8a8, 0xffaaaaaa, 0xffa9a9a9, 0xffa9a9a9, 0xfeaaaaaa, 0xffa9a9a9, 0xffaaaaaa, 0xfeaaaaaa, 0xfeaaaaaa, 0xffa9a9a9, 0xffa9a9a9, 0xfeaaaaaa, 0xffa9a9a9, 0xfeaaaaaa, 0xfeaaaaaa, 0xffaaaaaa, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xfeaaaaaa, 0xfeaaaaaa, 0xffaaaaaa, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xfe9d9e9d, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xfe9d9e9d, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9d9d, 0xfe9d9e9d, 0xff9d9e9e, 0xfe9d9e9d, 0xff9d9e9e, 0xff9d9e9e, 0xfe9e9e9e, 0x9f9f9f9f, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x20a7a7a7, 0xdfa9a9a9, 0xfea9a9a9, 0xffa9a9a9, 0xffa8a8a8, 0xfea9a9a9, 0xfea9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xfea9a9a9, 0xfeaaaaaa, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xfeaaaaaa, 0xffa8a8a8, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xffa8a8a8, 0xffa7a7a7, 0xffa6a6a6, 0xfea4a4a4, 0xffa2a2a2, 0xff9f9f9f, 0xff9c9c9c, 0xfe999999, 0xff949494, 0xff909090, 0xff464646, 0xff2c2c2c, 0xff2c2c2c, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2c2c2c, 0xff2c2c2c, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2c2c2c, 0xff2b2b2b, 0xff4c4c4c, 0xff909090, 0xff939393, 0xff979797, 0xff9b9b9b, 0xff9e9e9e, 0xfea3a3a3, 0xffa4a4a4, 0xffa7a7a7, 0xffa7a7a7, 0xffa9a9a9, 0xffa9a9a9, 0xfea9a9a9, 0xffa9a9a9, 0xffa8a8a8, 0xffa8a8a8, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xfeaaaaaa, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xfea9a9a9, 0xffa9a9a9, 0xffa8a8a8, 0xffa9a9a9, 0xffa9a9a9, 0xffa9a9a9, 0xfea9a9a9, 0xffa8a8a8, 0xffa9a9a9, 0xffa9a9a9, 0xfe9d9d9d, 0xff9c9c9c, 0xfe9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xfe9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xfe9d9d9d, 0xfe9d9d9d, 0xfe9d9d9d, 0xcf9e9e9e, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xcfa8a8a8, 0xfea9a9a9, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xfea8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa9a9a9, 0xfea9a9a9, 0xffa7a7a7, 0xffa6a6a6, 0xffa5a5a5, 0xffa3a3a3, 0xffa0a0a0, 0xff9d9e9e, 0xff9b9b9b, 0xfe979797, 0xfe939393, 0xfe8f8f8f, 0xff7b7b7b, 0xff2a2a2a, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2a2a2a, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2a2a2a, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff808080, 0xfe8f8f8f, 0xff929292, 0xfe979797, 0xff9b9b9b, 0xfe9e9e9e, 0xffa0a0a0, 0xffa3a3a3, 0xfea6a6a6, 0xffa7a7a7, 0xffa8a8a8, 0xffa8a8a8, 0xfea9a9a9, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xfea8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xfea9a9a9, 0xfea8a8a8, 0xffa8a8a8, 0xffa7a7a7, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xffa8a8a8, 0xfea9a9a9, 0xfea9a9a9, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xff9a9a9a, 0xff9b9b9b, 0xff9a9a9a, 0xff9b9b9b, 0xfe9b9b9b, 0xff9b9b9b, 0xff9a9a9a, 0xfe9b9b9b, 0xff9b9b9b, 0xdf9a9a9a, 0x109f9f9f, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x8fa9a9a9, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xffa8a8a8, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xffa8a8a8, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xfea8a8a8, 0xffa7a7a7, 0xfea8a8a8, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xffa6a6a6, 0xffa4a4a4, 0xffa3a3a3, 0xffa0a0a0, 0xff9d9e9e, 0xff9a9a9a, 0xff969696, 0xff929292, 0xff8e8e8e, 0xff8a8a8a, 0xff565656, 0xff2b2b2b, 0xff2a2a2a, 0xff2b2b2b, 0xff2b2b2b, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff313131, 0xff313131, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2b2b2b, 0xff2a2a2a, 0xff2b2b2b, 0xff2b2b2b, 0xff2a2a2a, 0xff2b2b2b, 0xff2b2b2b, 0xff2a2a2a, 0xff2a2a2a, 0xff2b2b2b, 0xff2a2a2a, 0xff2b2b2b, 0xff2a2a2a, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2a2a2a, 0xff2a2a2a, 0xff303030, 0xff313131, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff2a2a2a, 0xff2a2a2a, 0xff2b2b2b, 0xff2a2a2a, 0xff2b2b2b, 0xff2b2b2b, 0xff2b2b2b, 0xff505050, 0xff8b8b8b, 0xff8e8e8e, 0xfe939393, 0xff969696, 0xff9a9a9a, 0xff9d9e9e, 0xffa0a0a0, 0xffa3a3a3, 0xfea6a6a6, 0xffa6a6a6, 0xffa7a7a7, 0xffa7a7a7, 0xfea8a8a8, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xfea8a8a8, 0xffa8a8a8, 0xfea8a8a8, 0xffa7a7a7, 0xfea8a8a8, 0xffa7a7a7, 0xffa7a7a7, 0xfea8a8a8, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xfea8a8a8, 0xffa7a7a7, 0xfea8a8a8, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xfea8a8a8, 0xfe9a9a9a, 0xff999999, 0xfe999999, 0xff999999, 0xff999999, 0xff9a9a9a, 0xff999999, 0xff999999, 0xff999999, 0xfe9a9a9a, 0xff999999, 0xdf999999, 0x20979797, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7fa9a9a9, 0xffa6a6a6, 0xffa7a7a7, 0xfea7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xffa6a6a6, 0xffa7a7a7, 0xffa6a6a6, 0xffa6a6a6, 0xfea7a7a7, 0xffa6a6a6, 0xffa6a6a6, 0xffa7a7a7, 0xffa6a6a6, 0xffa7a7a7, 0xffa6a6a6, 0xffa6a6a6, 0xffa7a7a7, 0xffa7a7a7, 0xfea7a7a7, 0xffa7a7a7, 0xfea7a7a7, 0xffa7a7a7, 0xffa6a6a6, 0xffa5a5a5, 0xffa4a4a4, 0xffa2a2a2, 0xffa0a0a0, 0xff9d9d9d, 0xff9a9a9a, 0xff969696, 0xff929292, 0xfe8f8f8f, 0xff8b8b8b, 0xff828282, 0xff303030, 0xff2a2a2a, 0xff2a2a2a, 0xff2b2b2b, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2b2b2b, 0xff414141, 0xff5c5c5c, 0xff7c7c7c, 0xfe777777, 0xff363636, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2b2b2b, 0xff2b2b2b, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2b2b2b, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2b2b2b, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2b2b2b, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2b2b2b, 0xff2a2a2a, 0xff2b2b2b, 0xff2a2a2a, 0xff2a2a2a, 0xff3d3d3d, 0xff777777, 0xff7c7c7c, 0xfe626262, 0xff373737, 0xff2b2b2b, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff373737, 0xff7d7d7d, 0xff8b8b8b, 0xff8e8e8e, 0xff929292, 0xff969696, 0xff9a9a9a, 0xff9d9e9e, 0xffa0a0a0, 0xffa2a2a2, 0xfea5a5a5, 0xffa6a6a6, 0xffa6a6a6, 0xffa7a7a7, 0xffa7a7a7, 0xffa7a7a7, 0xffa6a6a6, 0xffa7a7a7, 0xffa6a6a6, 0xffa6a6a6, 0xfea7a7a7, 0xffa7a7a7, 0xffa6a6a6, 0xffa6a6a6, 0xffa7a7a7, 0xffa7a7a7, 0xfea7a7a7, 0xffa6a6a6, 0xfea7a7a7, 0xffa6a6a6, 0xffa7a7a7, 0xfea7a7a7, 0xffa6a6a6, 0xfea7a7a7, 0xffa6a6a6, 0xffa6a6a6, 0xffa7a7a7, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xfe999999, 0xff989898, 0xff989898, 0xff979797, 0xff989898, 0xff979797, 0xee989898, 0x20979797, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x50a6a6a6, 0xffa6a6a6, 0xffa6a6a6, 0xffa6a6a6, 0xffa6a6a6, 0xffa6a6a6, 0xffa6a6a6, 0xffa6a6a6, 0xfea6a6a6, 0xffa6a6a6, 0xffa6a6a6, 0xfea6a6a6, 0xfea6a6a6, 0xffa6a6a6, 0xffa6a6a6, 0xffa6a6a6, 0xffa5a5a5, 0xffa5a5a5, 0xfea6a6a6, 0xffa5a5a5, 0xffa6a6a6, 0xfea6a6a6, 0xffa6a6a6, 0xfea6a6a6, 0xffa6a6a6, 0xffa6a6a6, 0xffa5a5a5, 0xffa3a3a3, 0xffa2a2a2, 0xfea1a1a1, 0xff9d9e9e, 0xff9b9b9b, 0xff969696, 0xff929292, 0xff8f8f8f, 0xff8b8b8b, 0xfe888888, 0xff606060, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff303030, 0xff525252, 0xff6c6c6c, 0xfe818181, 0xff808080, 0xff818181, 0xff818181, 0xfe828282, 0xff585858, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff282828, 0xff2a2a2a, 0xff2a2a2a, 0xff282828, 0xff2a2a2a, 0xff2a2a2a, 0xff282828, 0xff2a2a2a, 0xff2a2a2a, 0xff282828, 0xff2a2a2a, 0xff282828, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff282828, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff303030, 0xff575757, 0xff818181, 0xff818181, 0xff808080, 0xff808080, 0xff808080, 0xff6d6d6d, 0xff4c4c4c, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff666666, 0xfe898989, 0xff8b8b8b, 0xfe8f8f8f, 0xff929292, 0xff979797, 0xff9a9a9a, 0xff9d9e9e, 0xffa0a0a0, 0xffa2a2a2, 0xfea5a5a5, 0xffa5a5a5, 0xffa6a6a6, 0xffa6a6a6, 0xffa5a5a5, 0xffa6a6a6, 0xffa6a6a6, 0xffa6a6a6, 0xfea6a6a6, 0xffa5a5a5, 0xffa6a6a6, 0xfea6a6a6, 0xffa5a5a5, 0xffa5a5a5, 0xfea6a6a6, 0xfea6a6a6, 0xffa6a6a6, 0xfea6a6a6, 0xfea6a6a6, 0xfea6a6a6, 0xfea6a6a6, 0xffa6a6a6, 0xfea7a7a7, 0xffa5a5a5, 0xffa6a6a6, 0xffa6a6a6, 0xffa6a6a6, 0xff969696, 0xff969696, 0xfe979797, 0xfe979797, 0xff979797, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0x309a9a9a, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x209f9f9f, 0xefa4a4a4, 0xffa5a5a5, 0xfea6a6a6, 0xffa5a5a5, 0xfea5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xfea6a6a6, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xfea5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xfea4a4a4, 0xffa2a2a2, 0xfea1a1a1, 0xff9d9e9e, 0xfe9c9c9c, 0xff989898, 0xfe959595, 0xff909090, 0xff8c8c8c, 0xff898989, 0xff868686, 0xff3d3d3d, 0xff282828, 0xff282828, 0xff3b3b3b, 0xff575757, 0xff7b7b7b, 0xff818181, 0xff808080, 0xff808080, 0xff818181, 0xff818181, 0xfe828282, 0xff808080, 0xff818181, 0xff767676, 0xff4c4c4c, 0xff2a2a2a, 0xff2a2a2a, 0xff282828, 0xff2a2a2a, 0xff282828, 0xff282828, 0xff2a2a2a, 0xff282828, 0xff2a2a2a, 0xff2a2a2a, 0xff2a2a2a, 0xff282828, 0xff2a2a2a, 0xff2a2a2a, 0xff282828, 0xff2a2a2a, 0xff2a2a2a, 0xff282828, 0xff2a2a2a, 0xff282828, 0xff282828, 0xff303030, 0xff535353, 0xff7b7b7b, 0xff818181, 0xfe818181, 0xfe828282, 0xfe828282, 0xff818181, 0xff808080, 0xff808080, 0xfe828282, 0xff767676, 0xff626262, 0xff343434, 0xff2a2a2a, 0xff282828, 0xff363636, 0xff868686, 0xff898989, 0xff8c8c8c, 0xff909090, 0xfe949494, 0xff989898, 0xff9b9b9b, 0xff9d9e9e, 0xffa0a0a0, 0xffa3a3a3, 0xffa3a3a3, 0xfea5a5a5, 0xfea6a6a6, 0xffa5a5a5, 0xffa6a6a6, 0xffa5a5a5, 0xfea6a6a6, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xfea6a6a6, 0xffa5a5a5, 0xfea5a5a5, 0xffa6a6a6, 0xfea6a6a6, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa4a4a4, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xffa5a5a5, 0xfea6a6a6, 0xffa5a5a5, 0xff949494, 0xff959595, 0xff959595, 0xff949494, 0xff959595, 0xfe969696, 0xff949494, 0xfe959595, 0xff949494, 0x5f969696, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x209f9f9f, 0xdfa5a5a5, 0xffa5a5a5, 0xfea5a5a5, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xfea5a5a5, 0xffa4a4a4, 0xffa5a5a5, 0xfea5a5a5, 0xffa5a5a5, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xfea5a5a5, 0xfea5a5a5, 0xffa4a4a4, 0xffa5a5a5, 0xffa5a5a5, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa3a3a3, 0xffa2a2a2, 0xffa1a1a1, 0xff9e9e9e, 0xff9c9c9c, 0xff999999, 0xfe969696, 0xff919191, 0xff8d8d8d, 0xff8a8a8a, 0xff878787, 0xff7a7a7a, 0xff696969, 0xff6d6d6d, 0xff818181, 0xff818181, 0xff818181, 0xff818181, 0xff818181, 0xff828282, 0xff818181, 0xff828282, 0xff818181, 0xff828282, 0xff808080, 0xff818181, 0xff808080, 0xff767676, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff2a2a2a, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff7c7c7c, 0xff808080, 0xff818181, 0xff818181, 0xfe828282, 0xff828282, 0xfe838383, 0xff818181, 0xff818181, 0xff818181, 0xff818181, 0xfe818181, 0xfe818181, 0xff818181, 0xff6d6d6d, 0xff636363, 0xfe818181, 0xff878787, 0xff8a8a8a, 0xff8d8d8d, 0xff919191, 0xff959595, 0xfe999999, 0xff9c9c9c, 0xff9e9e9e, 0xffa0a0a0, 0xfea3a3a3, 0xffa3a3a3, 0xffa4a4a4, 0xffa5a5a5, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xfea5a5a5, 0xfea5a5a5, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xfea4a4a4, 0xfea5a5a5, 0xfea5a5a5, 0xffa4a4a4, 0xfea4a4a4, 0xfea5a5a5, 0xffa4a4a4, 0xffa4a4a4, 0xfea5a5a5, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xfea5a5a5, 0xffa5a5a5, 0xff939393, 0xff939393, 0xfe949494, 0xfe949494, 0xff939393, 0xff939393, 0xff949494, 0xff939393, 0x80919393, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x10afafaf, 0xdfa4a4a4, 0xffa3a3a3, 0xffa4a4a4, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa4a4a4, 0xffa3a3a3, 0xfea4a4a4, 0xfea4a4a4, 0xffa3a3a3, 0xfea4a4a4, 0xfea4a4a4, 0xffa4a4a4, 0xffa3a3a3, 0xffa4a4a4, 0xffa3a3a3, 0xfea4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa3a3a3, 0xffa4a4a4, 0xffa4a4a4, 0xffa3a3a3, 0xffa3a3a3, 0xffa2a2a2, 0xffa0a0a0, 0xff9f9f9f, 0xff9d9d9d, 0xff9a9a9a, 0xfe979797, 0xff939393, 0xff909090, 0xfe8c8c8c, 0xfe898989, 0xff868686, 0xff848484, 0xfe838383, 0xff828282, 0xff818181, 0xff818181, 0xff828282, 0xff828282, 0xfe838383, 0xff838383, 0xff828282, 0xff828282, 0xff828282, 0xfe838383, 0xff818181, 0xff818181, 0xff808080, 0xff343434, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff272727, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff282828, 0xff3a3a3a, 0xff808080, 0xff818181, 0xff818181, 0xfe838383, 0xff828282, 0xff828282, 0xff828282, 0xff838383, 0xff828282, 0xff828282, 0xfe838383, 0xfe838383, 0xfe838383, 0xff828282, 0xfe848484, 0xff848484, 0xff868686, 0xff888888, 0xff8b8b8b, 0xff8e8e8e, 0xff929292, 0xfe989898, 0xff9a9a9a, 0xff9d9d9d, 0xff9f9f9f, 0xffa1a1a1, 0xffa2a2a2, 0xffa3a3a3, 0xfea5a5a5, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa4a4a4, 0xffa3a3a3, 0xffa3a3a3, 0xffa4a4a4, 0xffa3a3a3, 0xffa3a3a3, 0xffa4a4a4, 0xfea4a4a4, 0xffa3a3a3, 0xffa4a4a4, 0xffa3a3a3, 0xffa3a3a3, 0xffa4a4a4, 0xfea4a4a4, 0xffa4a4a4, 0xffa4a4a4, 0xff929292, 0xff919191, 0xff929292, 0xfe939393, 0xff929292, 0xff929292, 0xfe929292, 0x80919393, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xafa3a3a3, 0xffa3a3a3, 0xffa2a2a2, 0xffa3a3a3, 0xffa2a2a2, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xfea4a4a4, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa2a2a2, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xfea4a4a4, 0xffa3a3a3, 0xffa3a3a3, 0xfea4a4a4, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xfea3a3a3, 0xffa2a2a2, 0xffa1a1a1, 0xffa0a0a0, 0xfea0a0a0, 0xff9d9e9e, 0xfe9c9c9c, 0xff989898, 0xff949494, 0xff909090, 0xff8d8d8d, 0xfe8b8b8b, 0xff878787, 0xfe868686, 0xff848484, 0xfe848484, 0xff838383, 0xff838383, 0xff838383, 0xfe858585, 0xff848484, 0xfe858585, 0xff848484, 0xff848484, 0xff838383, 0xff838383, 0xff828282, 0xfe838383, 0xff818181, 0xff464646, 0xff272727, 0xff272727, 0xff272727, 0xff272727, 0xff282828, 0xff282828, 0xff272727, 0xff282828, 0xff282828, 0xff272727, 0xff282828, 0xff272727, 0xff272727, 0xff272727, 0xff282828, 0xff272727, 0xff272727, 0xff272727, 0xff404040, 0xff818181, 0xff818181, 0xfe838383, 0xfe848484, 0xfe858585, 0xfe858585, 0xfe858585, 0xff848484, 0xff848484, 0xff838383, 0xfe848484, 0xff838383, 0xff838383, 0xff838383, 0xff838383, 0xfe868686, 0xfe888888, 0xff8a8a8a, 0xfe8e8e8e, 0xff909090, 0xfe959595, 0xff989898, 0xff9c9c9c, 0xff9d9e9e, 0xff9f9f9f, 0xfea2a2a2, 0xfea2a2a2, 0xffa3a3a3, 0xfea4a4a4, 0xfea4a4a4, 0xffa3a3a3, 0xffa3a3a3, 0xfea3a3a3, 0xfea3a3a3, 0xffa3a3a3, 0xfea4a4a4, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xfea3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xfea3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xfea3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xffa3a3a3, 0xfea3a3a3, 0xfe909090, 0xff909090, 0xff909090, 0xff919191, 0xff909090, 0xff919191, 0x9f929292, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7fa3a3a3, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xfea3a3a3, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xfea2a2a2, 0xfea3a3a3, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xfea2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xfea3a3a3, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xfea3a3a3, 0xffa1a1a1, 0xffa1a1a1, 0xff9f9f9f, 0xff9d9e9e, 0xff9c9c9c, 0xff9a9a9a, 0xff969696, 0xff939393, 0xff8f8f8f, 0xff8c8c8c, 0xff898989, 0xff878787, 0xff858585, 0xff858585, 0xff848484, 0xff848484, 0xff858585, 0xff868686, 0xff868686, 0xfe878787, 0xff868686, 0xff868686, 0xfe868686, 0xff858585, 0xfe848484, 0xfe848484, 0xff818181, 0xff4b4b4b, 0xff272727, 0xff272727, 0xff262626, 0xff272727, 0xff272727, 0xff272727, 0xff272727, 0xff272727, 0xff272727, 0xff272727, 0xff272727, 0xff272727, 0xff272727, 0xff272727, 0xff282828, 0xff272727, 0xff272727, 0xff272727, 0xff515151, 0xff828282, 0xfe848484, 0xfe848484, 0xff858585, 0xff858585, 0xff868686, 0xff878787, 0xff878787, 0xff868686, 0xff868686, 0xfe868686, 0xff858585, 0xff858585, 0xfe868686, 0xff868686, 0xff878787, 0xff898989, 0xff8c8c8c, 0xfe909090, 0xff929292, 0xff969696, 0xff999999, 0xff9c9c9c, 0xff9e9e9e, 0xfea0a0a0, 0xffa1a1a1, 0xfea2a2a2, 0xffa2a2a2, 0xfea3a3a3, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xfea3a3a3, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xfea2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xfea3a3a3, 0xfea3a3a3, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xffa3a3a3, 0xffa3a3a3, 0xffa2a2a2, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xfe8f8f8f, 0xff8f8f8f, 0xcf8f8f8f, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x6fa1a1a1, 0xfea2a2a2, 0xffa1a1a1, 0xfea2a2a2, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa2a2a2, 0xffa1a1a1, 0xffa2a2a2, 0xfea2a2a2, 0xffa1a1a1, 0xffa1a1a1, 0xfea2a2a2, 0xfea2a2a2, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xfea2a2a2, 0xfea2a2a2, 0xffa1a1a1, 0xffa1a1a1, 0xfea2a2a2, 0xffa2a2a2, 0xfea2a2a2, 0xfea2a2a2, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa0a0a0, 0xfea1a1a1, 0xfe9e9e9e, 0xff9d9d9d, 0xfe9b9b9b, 0xfe989898, 0xfe959595, 0xff909090, 0xfe8f8f8f, 0xff8b8b8b, 0xff898989, 0xfe888888, 0xff878787, 0xff868686, 0xff878787, 0xfe898989, 0xff888888, 0xff898989, 0xfe8a8a8a, 0xff898989, 0xfe8a8a8a, 0xff888888, 0xfe888888, 0xff868686, 0xff858585, 0xff828282, 0xff5c5c5c, 0xff272727, 0xff272727, 0xff262626, 0xff262626, 0xff262626, 0xff272727, 0xff262626, 0xff272727, 0xff272727, 0xff272727, 0xff272727, 0xff272727, 0xff272727, 0xff262626, 0xff262626, 0xff272727, 0xff262626, 0xff272727, 0xff5c5c5c, 0xff828282, 0xff848484, 0xff868686, 0xff868686, 0xfe898989, 0xff888888, 0xff898989, 0xfe8a8a8a, 0xff898989, 0xff888888, 0xfe898989, 0xfe888888, 0xfe888888, 0xff878787, 0xff888888, 0xff898989, 0xfe8c8c8c, 0xfe8f8f8f, 0xff909090, 0xfe959595, 0xff979797, 0xff9b9b9b, 0xff9d9d9d, 0xff9e9e9e, 0xff9f9f9f, 0xfea1a1a1, 0xffa1a1a1, 0xfea2a2a2, 0xfea2a2a2, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa2a2a2, 0xffa2a2a2, 0xffa1a1a1, 0xffa1a1a1, 0xffa2a2a2, 0xffa2a2a2, 0xffa2a2a2, 0xfea2a2a2, 0xfea2a2a2, 0xfea2a2a2, 0xfea2a2a2, 0xfea2a2a2, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xfea2a2a2, 0xffa1a1a1, 0xffa1a1a1, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xdf8e8e8e, 0x108f8f8f, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x309f9f9f, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xfea1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa0a0a0, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xfea2a2a2, 0xffa1a1a1, 0xffa1a1a1, 0xfea1a1a1, 0xffa0a0a0, 0xffa1a1a1, 0xffa1a1a1, 0xffa0a0a0, 0xffa0a0a0, 0xffa1a1a1, 0xffa0a0a0, 0xffa1a1a1, 0xffa0a0a0, 0xffa1a1a1, 0xffa0a0a0, 0xffa0a0a0, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa0a0a0, 0xfea0a0a0, 0xff9e9e9e, 0xff9d9d9d, 0xff9b9b9b, 0xfe9a9a9a, 0xff969696, 0xff939393, 0xff909090, 0xff8e8e8e, 0xff8d8d8d, 0xff8a8a8a, 0xfe8b8b8b, 0xff898989, 0xff8a8a8a, 0xff8a8a8a, 0xff8b8b8b, 0xfe8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8b8b8b, 0xfe8b8b8b, 0xff888888, 0xff878787, 0xff848484, 0xff686868, 0xff262626, 0xff262626, 0xff272727, 0xff262626, 0xff262626, 0xff262626, 0xff262626, 0xff262626, 0xff262626, 0xff262626, 0xff262626, 0xff262626, 0xff272727, 0xff262626, 0xff272727, 0xff262626, 0xff262626, 0xff262626, 0xff686868, 0xfe858585, 0xff868686, 0xff888888, 0xfe8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xfe8a8a8a, 0xfe8b8b8b, 0xfe8b8b8b, 0xff8c8c8c, 0xff8d8d8d, 0xff909090, 0xfe949494, 0xff969696, 0xff999999, 0xff9c9c9c, 0xfe9e9e9e, 0xff9f9f9f, 0xffa0a0a0, 0xffa0a0a0, 0xffa1a1a1, 0xffa0a0a0, 0xfea1a1a1, 0xffa0a0a0, 0xffa1a1a1, 0xffa1a1a1, 0xffa0a0a0, 0xfea1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xfea1a1a1, 0xffa1a1a1, 0xffa0a0a0, 0xfea1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xfea1a1a1, 0xffa0a0a0, 0xfea1a1a1, 0xfea1a1a1, 0xfea1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa1a1a1, 0xffa0a0a0, 0xffa1a1a1, 0xffa1a1a1, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xdf8d8d8d, 0x20878787, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x209f9f9f, 0xdf9f9f9f, 0xffa0a0a0, 0xfea1a1a1, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xfea0a0a0, 0xffa0a0a0, 0xfea0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xfea0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xfea0a0a0, 0xfea0a0a0, 0xfea1a1a1, 0xffa0a0a0, 0xfea0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xfea0a0a0, 0xff9e9e9e, 0xff9d9d9d, 0xff9c9c9c, 0xff9a9a9a, 0xff989898, 0xff959595, 0xff929292, 0xff909090, 0xff8e8e8e, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8e8e8e, 0xff8f8f8f, 0xff8f8f8f, 0xff909090, 0xff909090, 0xff8f8f8f, 0xff8e8e8e, 0xfe8d8d8d, 0xfe8b8b8b, 0xff898989, 0xff868686, 0xff797979, 0xff262626, 0xff262626, 0xff262626, 0xff252525, 0xff262626, 0xff262626, 0xff262626, 0xff262626, 0xff262626, 0xff252525, 0xff252525, 0xff262626, 0xff252525, 0xff262626, 0xff262626, 0xff252525, 0xff262626, 0xff262626, 0xff747474, 0xff868686, 0xfe898989, 0xff8a8a8a, 0xff8c8c8c, 0xfe8f8f8f, 0xfe909090, 0xff909090, 0xff909090, 0xff909090, 0xff8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xfe8e8e8e, 0xff8d8d8d, 0xff8d8d8d, 0xff8e8e8e, 0xff909090, 0xff929292, 0xff949494, 0xff989898, 0xff9a9a9a, 0xfe9d9d9d, 0xff9d9e9e, 0xfe9f9f9f, 0xff9f9f9f, 0xfea1a1a1, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xfea0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xff9f9f9f, 0xfea1a1a1, 0xffa0a0a0, 0xffa0a0a0, 0xfea0a0a0, 0xffa0a0a0, 0xfea1a1a1, 0xfea0a0a0, 0xffa0a0a0, 0xfea0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xfea0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xff8a8a8a, 0xfe8b8b8b, 0xee8b8b8b, 0x20878787, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x10afafaf, 0xdfa0a0a0, 0xfea0a0a0, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xfea0a0a0, 0xff9f9f9f, 0xff9f9f9f, 0xffa0a0a0, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xfea0a0a0, 0xfea0a0a0, 0xff9f9f9f, 0xfe9f9f9f, 0xfea0a0a0, 0xff9f9f9f, 0xff9f9f9f, 0xfea0a0a0, 0xfea0a0a0, 0xff9f9f9f, 0xfea0a0a0, 0xffa0a0a0, 0xffa0a0a0, 0xfea0a0a0, 0xff9f9f9f, 0xffa0a0a0, 0xff9f9f9f, 0xfea0a0a0, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xfea0a0a0, 0xfea0a0a0, 0xff9f9f9f, 0xff9d9e9e, 0xff9d9d9d, 0xfe9c9c9c, 0xff9a9a9a, 0xff979797, 0xff959595, 0xff939393, 0xff929292, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff929292, 0xff929292, 0xff929292, 0xff939393, 0xff929292, 0xff929292, 0xff919191, 0xff8f8f8f, 0xff8d8d8d, 0xff8b8b8b, 0xff888888, 0xfe808080, 0xff252525, 0xff262626, 0xff252525, 0xff262626, 0xff252525, 0xff262626, 0xff252525, 0xff262626, 0xff262626, 0xff262626, 0xff252525, 0xff252525, 0xff262626, 0xff252525, 0xff262626, 0xff262626, 0xff262626, 0xff252525, 0xff858585, 0xff888888, 0xff8a8a8a, 0xff8c8c8c, 0xff8e8e8e, 0xff919191, 0xfe939393, 0xff939393, 0xff939393, 0xff939393, 0xff929292, 0xfe929292, 0xff909090, 0xff909090, 0xfe919191, 0xff909090, 0xff929292, 0xff939393, 0xfe969696, 0xff979797, 0xff9a9a9a, 0xff9b9b9b, 0xff9d9d9d, 0xff9d9e9e, 0xfe9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xfea0a0a0, 0xfea0a0a0, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xfea0a0a0, 0xffa0a0a0, 0xff9f9f9f, 0xfea0a0a0, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xfea0a0a0, 0xff9f9f9f, 0xff898989, 0xff898989, 0x308a8a8a, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xaf9f9f9f, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xfe9f9f9f, 0xff9f9f9f, 0xff9e9e9e, 0xff9e9e9e, 0xff9f9f9f, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xfe9f9f9f, 0xff9e9e9e, 0xff9f9f9f, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xfe9f9f9f, 0xff9f9f9f, 0xff9f9f9f, 0xff9e9e9e, 0xff9e9e9e, 0xff9f9f9f, 0xfe9f9f9f, 0xff9e9e9e, 0xff9f9f9f, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9f9f9f, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9d9e9e, 0xff9e9e9e, 0xff9d9d9d, 0xfe9c9c9c, 0xff9a9a9a, 0xfe999999, 0xfe989898, 0xfe979797, 0xff949494, 0xff949494, 0xfe959595, 0xff949494, 0xff949494, 0xff949494, 0xfe969696, 0xff959595, 0xff969696, 0xff969696, 0xfe969696, 0xfe949494, 0xff929292, 0xff909090, 0xfe8d8d8d, 0xff8a8a8a, 0xff868686, 0xff323232, 0xff252525, 0xff252525, 0xff252525, 0xff252525, 0xff252525, 0xff252525, 0xff252525, 0xff262626, 0xff262626, 0xff252525, 0xff252525, 0xff252525, 0xff262626, 0xff262626, 0xff252525, 0xff252525, 0xff323232, 0xfe878787, 0xff8a8a8a, 0xff8c8c8c, 0xfe909090, 0xfe939393, 0xff949494, 0xff969696, 0xff969696, 0xfe979797, 0xfe979797, 0xff969696, 0xff959595, 0xfe959595, 0xff949494, 0xfe949494, 0xff949494, 0xfe959595, 0xff959595, 0xff969696, 0xff989898, 0xff9a9a9a, 0xfe9c9c9c, 0xff9d9d9d, 0xff9d9e9e, 0xff9e9e9e, 0xfea0a0a0, 0xff9e9e9e, 0xff9f9f9f, 0xff9e9e9e, 0xff9f9f9f, 0xfe9f9f9f, 0xff9f9f9f, 0xff9e9e9e, 0xff9f9f9f, 0xfe9f9f9f, 0xff9e9e9e, 0xfe9f9f9f, 0xff9f9f9f, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9f9f9f, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xfe9f9f9f, 0xfe9f9f9f, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9f9f9f, 0xff9e9e9e, 0xff9f9f9f, 0xfe888888, 0x5f898989, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x7f9f9f9f, 0xff9e9e9e, 0xff9e9e9e, 0xff9d9e9e, 0xfe9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xfe9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9d9e9e, 0xff9e9e9e, 0xff9d9e9e, 0xff9e9e9e, 0xfe9e9e9e, 0xff9d9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9d9e9e, 0xff9e9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9e9e9e, 0xff9d9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xfe9e9e9e, 0xff9d9e9e, 0xfe9e9e9e, 0xff9e9e9e, 0xff9d9e9e, 0xfe9f9f9f, 0xff9e9e9e, 0xff9e9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9d9e9e, 0xff9d9d9d, 0xff9c9c9c, 0xff9b9b9b, 0xff9a9a9a, 0xff989898, 0xff989898, 0xff979797, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xfe979797, 0xfe989898, 0xff989898, 0xff989898, 0xfe9a9a9a, 0xff989898, 0xff969696, 0xff949494, 0xff919191, 0xff8e8e8e, 0xff8b8b8b, 0xfe898989, 0xff3f3f3f, 0xff252525, 0xff232323, 0xff232323, 0xff252525, 0xff252525, 0xff252525, 0xff232323, 0xff232323, 0xff252525, 0xff252525, 0xff232323, 0xff252525, 0xff252525, 0xff252525, 0xff252525, 0xff252525, 0xff404040, 0xff888888, 0xff8b8b8b, 0xff8e8e8e, 0xff919191, 0xff949494, 0xff969696, 0xff979797, 0xff989898, 0xff999999, 0xff989898, 0xff989898, 0xff989898, 0xff979797, 0xff979797, 0xff969696, 0xff969696, 0xff979797, 0xff989898, 0xff989898, 0xff9a9a9a, 0xff9c9c9c, 0xff9c9c9c, 0xff9d9d9d, 0xff9d9d9d, 0xfe9f9f9f, 0xff9e9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xfe9f9f9f, 0xfe9e9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9d9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9d9e9e, 0xfe9e9e9e, 0xfe9e9e9e, 0xff9d9e9e, 0xfe9e9e9e, 0xfe9e9e9e, 0xff9d9e9e, 0xfe9e9e9e, 0xff9e9e9e, 0xff9d9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xfe9e9e9e, 0xff9e9e9e, 0xff9e9e9e, 0xff9d9e9e, 0xff9d9e9e, 0x80878787, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xef9e9e9e, 0xfe9d9e9d, 0xfe9e9e9e, 0xfe9e9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xfe9d9e9d, 0xff9d9e9e, 0xff9d9e9e, 0xfe9d9e9d, 0xff9d9e9e, 0xff9d9e9e, 0xfe9e9e9e, 0xfe9d9e9d, 0xff9d9e9e, 0xfe9d9e9d, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xfe9e9e9e, 0xff9d9e9e, 0xfe9d9e9d, 0xff9d9e9e, 0xfe9d9e9d, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9d9d, 0xff9e9e9e, 0xff9d9e9e, 0xff9d9d9d, 0xff9d9d9d, 0xff9b9b9b, 0xfe9c9c9c, 0xff9a9a9a, 0xff999999, 0xff999999, 0xfe999999, 0xff989898, 0xff989898, 0xff989898, 0xff9a9a9a, 0xfe9a9a9a, 0xff999999, 0xff9a9a9a, 0xff9a9a9a, 0xff999999, 0xff989898, 0xfe979797, 0xfe949494, 0xff909090, 0xff8d8d8d, 0xff898989, 0xff757575, 0xff313131, 0xff252525, 0xff232323, 0xff232323, 0xff252525, 0xff232323, 0xff252525, 0xff252525, 0xff232323, 0xff252525, 0xff232323, 0xff252525, 0xff232323, 0xff232323, 0xff232323, 0xff2a2a2a, 0xff747474, 0xff898989, 0xff8c8c8c, 0xff909090, 0xfe949494, 0xff959595, 0xff979797, 0xff999999, 0xff9a9a9a, 0xff9a9a9a, 0xff9b9b9b, 0xfe9a9a9a, 0xff9a9a9a, 0xff999999, 0xfe9a9a9a, 0xff989898, 0xfe999999, 0xff989898, 0xff999999, 0xff9a9a9a, 0xff9b9b9b, 0xff9c9c9c, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9d9d, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9e9e, 0xfe9e9e9e, 0xff9d9e9e, 0xfe9d9e9d, 0xff9d9e9e, 0xff9d9e9e, 0xfe9d9e9d, 0xff9d9e9e, 0xfe9e9e9e, 0xff9d9e9e, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xfe9d9e9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xfe9d9e9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9e9e, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9e9e, 0xfe9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xfe9d9e9d, 0xfe9d9e9d, 0xff9d9d9d, 0xfe9d9e9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xfe9d9e9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xfe9d9e9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9e9e, 0xff9d9d9d, 0xfe9d9e9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xfe9d9d9d, 0xff9c9c9c, 0xff9b9b9b, 0xfe9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xfe9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xfe9c9c9c, 0xff9a9a9a, 0xff999999, 0xff969696, 0xfe959595, 0xff919191, 0xff8e8e8e, 0xfe8b8b8b, 0xff868686, 0xfe848484, 0xff7f7f7f, 0xff7d7d7d, 0xff7c7c7c, 0xfe7b7b7b, 0xff7a7a7a, 0xff797979, 0xfe797979, 0xff797979, 0xff797979, 0xfe7a7a7a, 0xff7b7b7b, 0xfe7c7c7c, 0xff7e7e7e, 0xff808080, 0xff828282, 0xfe878787, 0xfe8b8b8b, 0xff8e8e8e, 0xff919191, 0xff949494, 0xff969696, 0xff999999, 0xfe9b9b9b, 0xfe9c9c9c, 0xff9b9b9b, 0xff9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xff9a9a9a, 0xff999999, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9b9b9b, 0xff9b9b9b, 0xff9c9c9c, 0xfe9d9e9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9e9e, 0xff9d9d9d, 0xff9d9d9d, 0xfe9d9e9d, 0xff9d9d9d, 0xfe9d9e9d, 0xff9d9d9d, 0xff9d9e9e, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xfe9d9e9d, 0xff9d9d9d, 0xff9d9e9e, 0xfe9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xfe9d9e9d, 0xfe9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xfe9d9e9d, 0xfe9d9e9d, 0xff9d9e9e, 0xff9d9e9e, 0xff9d9d9d, 0xff9d9d9d, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xff9c9c9c, 0xff9d9d9d, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9d9d9d, 0xfe9d9d9d, 0xff9d9d9d, 0xff9c9c9c, 0xff9c9c9c, 0xfe9d9d9d, 0xff9c9c9c, 0xff9d9d9d, 0xff9c9c9c, 0xff9d9d9d, 0xfe9d9d9d, 0xff9c9c9c, 0xff9c9c9c, 0xff9d9d9d, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xfe9d9d9d, 0xff9d9d9d, 0xff9d9d9d, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9d9d9d, 0xff9c9c9c, 0xfe9d9d9d, 0xff9c9c9c, 0xfe9d9d9d, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9d9d9d, 0xff9d9d9d, 0xff9c9c9c, 0xff9c9c9c, 0xff9d9d9d, 0xff9c9c9c, 0xfe9d9d9d, 0xff9c9c9c, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xfe9c9c9c, 0xff9b9b9b, 0xff9b9b9b, 0xfe9c9c9c, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9c9c9c, 0xff9b9b9b, 0xff9c9c9c, 0xff9b9b9b, 0xff999999, 0xfe989898, 0xff959595, 0xff919191, 0xff8e8e8e, 0xfe8b8b8b, 0xff878787, 0xff838383, 0xfe818181, 0xff7e7e7e, 0xff7c7c7c, 0xfe7b7b7b, 0xfe7a7a7a, 0xff797979, 0xff7a7a7a, 0xff7a7a7a, 0xff7a7a7a, 0xff7a7a7a, 0xff7b7b7b, 0xff7c7c7c, 0xfe7e7e7e, 0xff818181, 0xff838383, 0xff878787, 0xff8b8b8b, 0xff8e8e8e, 0xfe939393, 0xff959595, 0xfe989898, 0xff999999, 0xff9b9b9b, 0xfe9c9c9c, 0xfe9c9c9c, 0xfe9d9d9d, 0xff9b9b9b, 0xff9c9c9c, 0xff9b9b9b, 0xfe9c9c9c, 0xff9b9b9b, 0xff9b9b9b, 0xff9a9a9a, 0xfe9c9c9c, 0xfe9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9d9d9d, 0xff9c9c9c, 0xff9d9d9d, 0xfe9d9d9d, 0xff9c9c9c, 0xff9c9c9c, 0xff9d9d9d, 0xff9d9d9d, 0xff9c9c9c, 0xff9c9c9c, 0xfe9d9d9d, 0xfe9d9d9d, 0xff9c9c9c, 0xff9d9d9d, 0xff9d9d9d, 0xff9c9c9c, 0xff9d9d9d, 0xff9d9d9d, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xfe9d9d9d, 0xff9c9c9c, 0xfe9d9d9d, 0xff9d9d9d, 0xfe9d9d9d, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xfe9c9c9c, 0xfe9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xfe9c9c9c, 0xff9c9c9c, 0xfe9c9c9c, 0xff9b9b9b, 0xff9c9c9c, 0xff9c9c9c, 0xfe9d9d9d, 0xff9c9c9c, 0xff9b9b9b, 0xff9c9c9c, 0xff9c9c9c, 0xff9b9b9b, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9b9b9b, 0xff9b9b9b, 0xff9c9c9c, 0xff9b9b9b, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9b9b9b, 0xfe9c9c9c, 0xff9c9c9c, 0xfe9c9c9c, 0xff9c9c9c, 0xff9b9b9b, 0xff9c9c9c, 0xff9b9b9b, 0xff9b9b9b, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xfe9c9c9c, 0xff9c9c9c, 0xff9b9b9b, 0xfe9d9d9d, 0xff9c9c9c, 0xff9b9b9b, 0xfe9c9c9c, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xfe9c9c9c, 0xff9b9b9b, 0xfe9c9c9c, 0xff9b9b9b, 0xfe9d9d9d, 0xff9c9c9c, 0xff9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xff989898, 0xff959595, 0xff929292, 0xff909090, 0xff8b8b8b, 0xff878787, 0xff848484, 0xff818181, 0xff7f7f7f, 0xfe7d7d7d, 0xff7c7c7c, 0xff7b7b7b, 0xfe7a7a7a, 0xff7a7a7a, 0xff7b7b7b, 0xfe7a7a7a, 0xfe7b7b7b, 0xff7b7b7b, 0xff7d7d7d, 0xff7f7f7f, 0xff818181, 0xff858585, 0xff888888, 0xfe8c8c8c, 0xff8f8f8f, 0xfe939393, 0xff959595, 0xff989898, 0xff999999, 0xff9b9b9b, 0xfe9d9d9d, 0xff9c9c9c, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xfe9c9c9c, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xfe9d9d9d, 0xff9c9c9c, 0xfe9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9b9b9b, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xfe9c9c9c, 0xff9c9c9c, 0xff9b9b9b, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xfe9c9c9c, 0xfe9c9c9c, 0xff9b9b9b, 0xff9c9c9c, 0xff9b9b9b, 0xff9b9b9b, 0xff9c9c9c, 0xff9b9b9b, 0xff9c9c9c, 0xff9b9b9b, 0xfe9c9c9c, 0xff9c9c9c, 0xff9c9c9c, 0xfe9c9c9c, 0xff9c9c9c, 0xff9b9b9b, 0xff9c9c9c, 0xff9c9c9c, 0xff9b9b9b, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xff9a9a9a, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xfe9c9c9c, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xfe9c9c9c, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xfe9b9b9b, 0xff9b9b9b, 0xff9a9a9a, 0xff9b9b9b, 0xff9b9b9b, 0xfe9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xfe9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9a9a9a, 0xfe9c9c9c, 0xff9b9b9b, 0xfe9b9b9b, 0xff9c9c9c, 0xff9b9b9b, 0xfe9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xfe9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xfe9b9b9b, 0xff9b9b9b, 0xff9c9c9c, 0xfe9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xfe9c9c9c, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xfe9c9c9c, 0xfe9b9b9b, 0xff9b9b9b, 0xff999999, 0xff989898, 0xff969696, 0xfe939393, 0xff909090, 0xff8c8c8c, 0xff898989, 0xfe868686, 0xff828282, 0xfe818181, 0xfe7e7e7e, 0xff7d7d7d, 0xff7c7c7c, 0xfe7b7b7b, 0xfe7c7c7c, 0xff7b7b7b, 0xff7b7b7b, 0xff7c7c7c, 0xff7c7c7c, 0xff7e7e7e, 0xff818181, 0xff828282, 0xff858585, 0xff898989, 0xfe8d8d8d, 0xff909090, 0xff939393, 0xff959595, 0xff979797, 0xff999999, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9c9c9c, 0xff9b9b9b, 0xff9c9c9c, 0xfe9b9b9b, 0xfe9c9c9c, 0xfe9c9c9c, 0xff9b9b9b, 0xfe9c9c9c, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xfe9c9c9c, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xfe9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xfe9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9b9b9b, 0xff9c9c9c, 0xfe9b9b9b, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9b9b9b, 0xfe9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xfe9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9b9b9b, 0xff9a9a9a, 0xfe9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xfe9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xfe9b9b9b, 0xfe9a9a9a, 0xff999999, 0xff979797, 0xff959595, 0xff939393, 0xff909090, 0xff8d8d8d, 0xff8a8a8a, 0xff868686, 0xff848484, 0xff818181, 0xfe818181, 0xfe7e7e7e, 0xff7d7d7d, 0xff7d7d7d, 0xff7d7d7d, 0xff7d7d7d, 0xfe7d7d7d, 0xfe7d7d7d, 0xff7e7e7e, 0xff7f7f7f, 0xff818181, 0xff848484, 0xff878787, 0xff8a8a8a, 0xff8d8d8d, 0xff909090, 0xff949494, 0xff959595, 0xff979797, 0xfe9a9a9a, 0xfe9b9b9b, 0xfe9b9b9b, 0xfe9b9b9b, 0xfe9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xfe9b9b9b, 0xff9a9a9a, 0xfe9b9b9b, 0xfe9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xfe9b9b9b, 0xff9b9b9b, 0xfe9b9b9b, 0xfe9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xfe9b9b9b, 0xff9a9a9a, 0xfe9b9b9b, 0xff9a9a9a, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xff9a9a9a, 0xff999999, 0xff999999, 0xff9a9a9a, 0xff9a9a9a, 0xff999999, 0xff999999, 0xff999999, 0xff9a9a9a, 0xff999999, 0xff999999, 0xff999999, 0xff999999, 0xff9a9a9a, 0xff9a9a9a, 0xff999999, 0xff999999, 0xff9a9a9a, 0xff999999, 0xff999999, 0xff999999, 0xff999999, 0xff999999, 0xfe9a9a9a, 0xfe9a9a9a, 0xff9a9a9a, 0xff999999, 0xfe9a9a9a, 0xff9a9a9a, 0xff999999, 0xff9a9a9a, 0xff999999, 0xff999999, 0xff999999, 0xff999999, 0xff9a9a9a, 0xff9a9a9a, 0xff999999, 0xff999999, 0xff999999, 0xff9a9a9a, 0xff9a9a9a, 0xff999999, 0xff999999, 0xff9a9a9a, 0xfe9a9a9a, 0xff999999, 0xff999999, 0xff9a9a9a, 0xff999999, 0xff9a9a9a, 0xff9a9a9a, 0xff999999, 0xff9a9a9a, 0xff9a9a9a, 0xff999999, 0xfe9a9a9a, 0xff9a9a9a, 0xfe9a9a9a, 0xff989898, 0xff979797, 0xfe979797, 0xff939393, 0xfe929292, 0xfe8f8f8f, 0xff8b8b8b, 0xff888888, 0xff868686, 0xff838383, 0xff828282, 0xff818181, 0xff7f7f7f, 0xff808080, 0xff7f7f7f, 0xff7f7f7f, 0xfe808080, 0xff808080, 0xff808080, 0xff828282, 0xff838383, 0xff858585, 0xff888888, 0xff8b8b8b, 0xff8e8e8e, 0xfe929292, 0xfe959595, 0xff969696, 0xfe989898, 0xff989898, 0xff9a9a9a, 0xff999999, 0xff9a9a9a, 0xff9a9a9a, 0xff999999, 0xff9a9a9a, 0xff9a9a9a, 0xff999999, 0xff999999, 0xff999999, 0xfe9a9a9a, 0xff999999, 0xff999999, 0xff999999, 0xff9a9a9a, 0xfe9a9a9a, 0xff999999, 0xff999999, 0xff999999, 0xff999999, 0xff999999, 0xfe9a9a9a, 0xff9a9a9a, 0xfe9a9a9a, 0xff9a9a9a, 0xff999999, 0xff999999, 0xff999999, 0xff9a9a9a, 0xfe9a9a9a, 0xff999999, 0xff9a9a9a, 0xff999999, 0xff999999, 0xfe9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff9a9a9a, 0xff999999, 0xff999999, 0xff999999, 0xff9a9a9a, 0xfe9a9a9a, 0xfe9a9a9a, 0xff999999, 0xff999999, 0xfe9a9a9a, 0xff999999, 0xff9a9a9a, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xfe999999, 0xfe999999, 0xff999999, 0xfe9a9a9a, 0xfe999999, 0xfe999999, 0xff989898, 0xfe999999, 0xfe999999, 0xfe999999, 0xff989898, 0xff989898, 0xff999999, 0xff999999, 0xff999999, 0xff999999, 0xfe999999, 0xff999999, 0xff999999, 0xff999999, 0xfe9a9a9a, 0xff999999, 0xff999999, 0xff999999, 0xff999999, 0xff999999, 0xff989898, 0xff999999, 0xff989898, 0xfe999999, 0xfe999999, 0xff999999, 0xff999999, 0xfe999999, 0xff999999, 0xfe999999, 0xfe999999, 0xff999999, 0xff989898, 0xff999999, 0xff989898, 0xfe999999, 0xff999999, 0xff999999, 0xfe999999, 0xfe999999, 0xff999999, 0xff989898, 0xfe999999, 0xff999999, 0xff999999, 0xff999999, 0xff999999, 0xff989898, 0xff999999, 0xfe999999, 0xff999999, 0xff999999, 0xff999999, 0xff989898, 0xff979797, 0xff959595, 0xfe959595, 0xff929292, 0xff909090, 0xff8d8d8d, 0xff8a8a8a, 0xff888888, 0xfe878787, 0xff848484, 0xff838383, 0xff838383, 0xff828282, 0xfe838383, 0xff828282, 0xff838383, 0xfe838383, 0xff838383, 0xff848484, 0xff858585, 0xff888888, 0xff8a8a8a, 0xff8c8c8c, 0xff8f8f8f, 0xff929292, 0xfe959595, 0xff959595, 0xff989898, 0xff989898, 0xff989898, 0xfe999999, 0xff999999, 0xff989898, 0xfe999999, 0xff999999, 0xff999999, 0xfe999999, 0xfe999999, 0xff999999, 0xff999999, 0xff999999, 0xff999999, 0xfe999999, 0xfe9a9a9a, 0xff999999, 0xfe999999, 0xff989898, 0xfe9a9a9a, 0xff989898, 0xff989898, 0xff989898, 0xfe999999, 0xff999999, 0xfe999999, 0xfe999999, 0xff999999, 0xff999999, 0xff989898, 0xff999999, 0xff999999, 0xff999999, 0xff999999, 0xff989898, 0xff999999, 0xff999999, 0xfe9a9a9a, 0xfe9a9a9a, 0xff989898, 0xfe999999, 0xfe9a9a9a, 0xfe999999, 0xff999999, 0xff999999, 0xff989898, 0xff999999, 0xff989898, 0xff999999, 0xff989898, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xff989898, 0xff989898, 0xfe999999, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xfe989898, 0xff989898, 0xff999999, 0xff989898, 0xff989898, 0xff999999, 0xff989898, 0xff989898, 0xff999999, 0xff989898, 0xff989898, 0xfe999999, 0xff989898, 0xff989898, 0xfe989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xfe999999, 0xff989898, 0xff989898, 0xff989898, 0xfe989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xfe989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xfe999999, 0xff989898, 0xff979797, 0xff979797, 0xff959595, 0xfe959595, 0xff939393, 0xff909090, 0xff8e8e8e, 0xff8c8c8c, 0xff8a8a8a, 0xfe898989, 0xff888888, 0xff868686, 0xfe878787, 0xff868686, 0xff858585, 0xff858585, 0xff868686, 0xff868686, 0xff878787, 0xff878787, 0xff888888, 0xff8a8a8a, 0xff8c8c8c, 0xff8e8e8e, 0xff909090, 0xff939393, 0xff949494, 0xfe969696, 0xff969696, 0xff989898, 0xfe999999, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xfe989898, 0xff989898, 0xfe989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xfe999999, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xfe999999, 0xff989898, 0xff989898, 0xff989898, 0xff989898, 0xfe999999, 0xff989898, 0xff989898, 0xff989898, 0xfe999999, 0xff989898, 0xff989898, 0xfe989898, 0xff989898, 0xff989898, 0xfe989898, 0xff989898, 0xff989898, 0xfe989898, 0xfe999999, 0xff989898, 0xff999999, 0xff989898, 0xff989898, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xff979797, 0xfe989898, 0xfe989898, 0xff979797, 0xff979797, 0xff979797, 0xfe989898, 0xff979797, 0xff989898, 0xff979797, 0xff979797, 0xfe989898, 0xff979797, 0xff989898, 0xfe989898, 0xff989898, 0xfe989898, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff989898, 0xff979797, 0xfe989898, 0xff989898, 0xff979797, 0xff989898, 0xfe989898, 0xff979797, 0xfe989898, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff989898, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff989898, 0xfe989898, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xfe989898, 0xff989898, 0xff979797, 0xff979797, 0xff989898, 0xff979797, 0xff979797, 0xff979797, 0xff969696, 0xfe979797, 0xfe959595, 0xff939393, 0xff929292, 0xff909090, 0xff8e8e8e, 0xff8d8d8d, 0xff8b8b8b, 0xff8a8a8a, 0xfe8b8b8b, 0xff898989, 0xff898989, 0xff888888, 0xff898989, 0xff898989, 0xff898989, 0xfe8b8b8b, 0xff8b8b8b, 0xfe8c8c8c, 0xff8d8d8d, 0xff8e8e8e, 0xfe919191, 0xff929292, 0xff939393, 0xff959595, 0xff959595, 0xfe979797, 0xff979797, 0xff979797, 0xff979797, 0xfe989898, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xfe989898, 0xff989898, 0xff979797, 0xff989898, 0xff979797, 0xff979797, 0xff979797, 0xff989898, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xfe989898, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff989898, 0xfe989898, 0xff979797, 0xfe989898, 0xff979797, 0xff979797, 0xff979797, 0xfe989898, 0xff979797, 0xff989898, 0xfe989898, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xfe989898, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xfe979797, 0xff969696, 0xfe979797, 0xff969696, 0xff979797, 0xfe979797, 0xff979797, 0xff979797, 0xff969696, 0xfe979797, 0xff969696, 0xff979797, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xfe979797, 0xff969696, 0xff969696, 0xff969696, 0xfe979797, 0xff969696, 0xff979797, 0xfe979797, 0xff969696, 0xff969696, 0xff969696, 0xff979797, 0xff969696, 0xfe989898, 0xff969696, 0xff979797, 0xff979797, 0xfe979797, 0xfe979797, 0xff969696, 0xff969696, 0xff969696, 0xfe979797, 0xfe979797, 0xff979797, 0xff969696, 0xff969696, 0xfe979797, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff969696, 0xff969696, 0xff979797, 0xff979797, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff959595, 0xff959595, 0xff949494, 0xff929292, 0xff929292, 0xff909090, 0xff8f8f8f, 0xff8e8e8e, 0xff8d8d8d, 0xfe8e8e8e, 0xff8c8c8c, 0xff8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8e8e8e, 0xff8e8e8e, 0xfe8f8f8f, 0xff909090, 0xff929292, 0xff939393, 0xfe959595, 0xff959595, 0xff959595, 0xff969696, 0xff979797, 0xff969696, 0xff969696, 0xfe979797, 0xff969696, 0xff969696, 0xff969696, 0xff979797, 0xfe979797, 0xff979797, 0xff969696, 0xfe979797, 0xff969696, 0xff969696, 0xff979797, 0xfe979797, 0xff979797, 0xff969696, 0xff979797, 0xff969696, 0xff979797, 0xfe979797, 0xff979797, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xfe979797, 0xff979797, 0xff969696, 0xff969696, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xff979797, 0xfe979797, 0xff979797, 0xff969696, 0xfe979797, 0xff979797, 0xff969696, 0xff969696, 0xff969696, 0xff979797, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xfe969696, 0xfe979797, 0xff969696, 0xfe969696, 0xff959595, 0xff969696, 0xff969696, 0xff959595, 0xfe979797, 0xff969696, 0xff959595, 0xff969696, 0xff969696, 0xff959595, 0xff969696, 0xff969696, 0xff959595, 0xfe969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff959595, 0xff969696, 0xff959595, 0xff969696, 0xff969696, 0xfe969696, 0xff969696, 0xff969696, 0xfe969696, 0xff969696, 0xff969696, 0xfe969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xfe969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xfe979797, 0xff959595, 0xff969696, 0xfe969696, 0xfe969696, 0xff969696, 0xff969696, 0xfe969696, 0xff969696, 0xff969696, 0xff959595, 0xff969696, 0xff959595, 0xfe979797, 0xff969696, 0xfe979797, 0xfe969696, 0xff949494, 0xfe949494, 0xfe949494, 0xff929292, 0xff919191, 0xff909090, 0xff909090, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xfe8f8f8f, 0xfe8f8f8f, 0xff8f8f8f, 0xff8e8e8e, 0xfe909090, 0xff8f8f8f, 0xff909090, 0xff919191, 0xff919191, 0xff929292, 0xff939393, 0xff949494, 0xfe959595, 0xfe969696, 0xff969696, 0xfe979797, 0xfe969696, 0xff969696, 0xff969696, 0xfe969696, 0xfe969696, 0xfe979797, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff959595, 0xff969696, 0xff969696, 0xfe969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xfe969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xfe979797, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xff969696, 0xfe969696, 0xff969696, 0xff959595, 0xff959595, 0xff969696, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xff959595, 0xff969696, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xfe959595, 0xff959595, 0xfe969696, 0xfe969696, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xfe959595, 0xff949494, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xfe969696, 0xfe969696, 0xff959595, 0xfe959595, 0xff959595, 0xff959595, 0xfe959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xfe969696, 0xff959595, 0xfe959595, 0xff959595, 0xfe969696, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff969696, 0xff959595, 0xff949494, 0xfe959595, 0xff959595, 0xff959595, 0xff959595, 0xff969696, 0xff949494, 0xff949494, 0xff949494, 0xff939393, 0xff939393, 0xfe939393, 0xff919191, 0xff919191, 0xfe929292, 0xfe919191, 0xff909090, 0xff919191, 0xff909090, 0xff909090, 0xff909090, 0xff919191, 0xff909090, 0xff919191, 0xff919191, 0xff929292, 0xff929292, 0xff939393, 0xff949494, 0xff949494, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff969696, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff949494, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xfe959595, 0xff959595, 0xfe969696, 0xff959595, 0xff959595, 0xff959595, 0xff959595, 0xfe969696, 0xff959595, 0xfe959595, 0xff959595, 0xff959595, 0xff969696, 0xfe959595, 0xff959595, 0xff959595, 0xff959595, 0xfe969696, 0xfe959595, 0xff959595, 0xfe959595, 0xfe959595, 0xff959595, 0xfe969696, 0xff959595, 0xff959595, 0xff969696, 0xff959595, 0xfe969696, 0xff959595, 0xff959595, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xff949494, 0xfe959595, 0xff949494, 0xfe959595, 0xfe959595, 0xfe959595, 0xff949494, 0xff949494, 0xff959595, 0xff949494, 0xff949494, 0xff949494, 0xff959595, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xfe959595, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xfe959595, 0xff949494, 0xff949494, 0xfe959595, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xfe959595, 0xff949494, 0xfe959595, 0xfe959595, 0xff949494, 0xff949494, 0xff949494, 0xfe959595, 0xff959595, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xfe959595, 0xfe959595, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xfe959595, 0xff949494, 0xff959595, 0xff949494, 0xff949494, 0xff949494, 0xfe959595, 0xff949494, 0xff949494, 0xfe959595, 0xff939393, 0xff939393, 0xff929292, 0xff939393, 0xff929292, 0xff929292, 0xff929292, 0xfe939393, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff939393, 0xff939393, 0xff939393, 0xff949494, 0xff949494, 0xff949494, 0xff959595, 0xff949494, 0xff959595, 0xfe959595, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xff959595, 0xff949494, 0xff959595, 0xff949494, 0xfe959595, 0xff949494, 0xfe959595, 0xff949494, 0xff949494, 0xff949494, 0xff959595, 0xff949494, 0xff949494, 0xff949494, 0xff959595, 0xff949494, 0xff949494, 0xff959595, 0xff959595, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xfe959595, 0xff949494, 0xfe959595, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xfe959595, 0xfe959595, 0xff949494, 0xff949494, 0xff949494, 0xfe959595, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xfe959595, 0xff949494, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xff949494, 0xff939393, 0xfe949494, 0xff939393, 0xff949494, 0xff939393, 0xff939393, 0xff949494, 0xff949494, 0xff939393, 0xfe949494, 0xff949494, 0xff939393, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xff939393, 0xff939393, 0xff949494, 0xff949494, 0xfe949494, 0xff949494, 0xff949494, 0xfe949494, 0xfe949494, 0xff949494, 0xfe949494, 0xff939393, 0xff939393, 0xff939393, 0xfe949494, 0xff939393, 0xff949494, 0xff939393, 0xff949494, 0xfe949494, 0xff939393, 0xff939393, 0xff949494, 0xff949494, 0xfe949494, 0xff939393, 0xff949494, 0xff949494, 0xff939393, 0xfe949494, 0xff949494, 0xff949494, 0xfe949494, 0xff949494, 0xff949494, 0xff949494, 0xfe949494, 0xff939393, 0xff939393, 0xff939393, 0xff949494, 0xff949494, 0xfe949494, 0xff949494, 0xff949494, 0xff949494, 0xfe949494, 0xff949494, 0xff949494, 0xfe949494, 0xff939393, 0xfe949494, 0xff929292, 0xff939393, 0xff939393, 0xfe949494, 0xff929292, 0xff929292, 0xfe949494, 0xff929292, 0xff939393, 0xff939393, 0xff939393, 0xfe949494, 0xff939393, 0xff939393, 0xff939393, 0xfe949494, 0xff949494, 0xff949494, 0xff949494, 0xff949494, 0xff939393, 0xff949494, 0xff939393, 0xfe949494, 0xff939393, 0xff939393, 0xff949494, 0xff939393, 0xfe949494, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xff949494, 0xff949494, 0xff949494, 0xff939393, 0xfe949494, 0xff939393, 0xff939393, 0xff949494, 0xff949494, 0xff939393, 0xff949494, 0xfe949494, 0xff939393, 0xfe949494, 0xff939393, 0xff949494, 0xfe949494, 0xff949494, 0xff949494, 0xff939393, 0xff949494, 0xfe949494, 0xff939393, 0xff949494, 0xfe949494, 0xfe949494, 0xff939393, 0xfe949494, 0xff939393, 0xff949494, 0xff949494, 0xff939393, 0xfe949494, 0xfe949494, 0xff949494, 0xff949494, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xef939393, 0xff939393, 0xff939393, 0xff939393, 0xff929292, 0xff929292, 0xff929292, 0xff939393, 0xfe939393, 0xff929292, 0xff929292, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xfe939393, 0xfe939393, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xfe939393, 0xff939393, 0xff939393, 0xff939393, 0xff929292, 0xff939393, 0xff939393, 0xff939393, 0xfe949494, 0xff939393, 0xff939393, 0xff939393, 0xff929292, 0xff939393, 0xff939393, 0xff939393, 0xff929292, 0xff929292, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xfe939393, 0xff929292, 0xff939393, 0xfe939393, 0xff929292, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xff929292, 0xff939393, 0xff939393, 0xff939393, 0xfe939393, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xfe939393, 0xff939393, 0xff939393, 0xff939393, 0xfe949494, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xfe939393, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xfe939393, 0xff939393, 0xfe939393, 0xff939393, 0xff939393, 0xfe939393, 0xff939393, 0xfe939393, 0xff939393, 0xff939393, 0xff929292, 0xfe939393, 0xff929292, 0xff939393, 0xff939393, 0xfe939393, 0xfe939393, 0xff929292, 0xff929292, 0xff939393, 0xff939393, 0xff939393, 0xfe939393, 0xff939393, 0xff939393, 0xff939393, 0xfe939393, 0xff939393, 0xff939393, 0xfe949494, 0xfe949494, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xfe939393, 0xff939393, 0xfe939393, 0xff939393, 0xff939393, 0xfe949494, 0xff929292, 0xff939393, 0xff939393, 0xff929292, 0xff939393, 0xff939393, 0xff939393, 0xff939393, 0xfe939393, 0xef929292, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xdf929292, 0xff929292, 0xfe939393, 0xfe939393, 0xff929292, 0xff929292, 0xfe939393, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xfe939393, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xfe939393, 0xff929292, 0xff929292, 0xfe939393, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xfe939393, 0xff929292, 0xfe939393, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xfe939393, 0xff929292, 0xff929292, 0xfe939393, 0xff939393, 0xff929292, 0xfe939393, 0xff929292, 0xfe939393, 0xff929292, 0xfe939393, 0xff929292, 0xfe939393, 0xff929292, 0xfe939393, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xfe939393, 0xff929292, 0xff929292, 0xfe939393, 0xff929292, 0xff929292, 0xff929292, 0xfe939393, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xfe939393, 0xff929292, 0xfe939393, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xfe939393, 0xff929292, 0xff929292, 0xff929292, 0xfe939393, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xfe929292, 0xff929292, 0xff929292, 0xff929292, 0xfe939393, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xfe929292, 0xfe939393, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xff929292, 0xfe939393, 0xfe929292, 0xff929292, 0xff929292, 0xcf939393, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xaf929292, 0xff919191, 0xff919191, 0xff919191, 0xfe929292, 0xff929292, 0xff919191, 0xfe929292, 0xff919191, 0xff919191, 0xfe929292, 0xfe929292, 0xff919191, 0xff919191, 0xff919191, 0xfe929292, 0xff919191, 0xfe929292, 0xff929292, 0xff919191, 0xfe929292, 0xff919191, 0xff919191, 0xfe929292, 0xff919191, 0xff919191, 0xff919191, 0xfe929292, 0xff919191, 0xfe929292, 0xff929292, 0xff919191, 0xfe929292, 0xff929292, 0xff919191, 0xff919191, 0xfe929292, 0xff929292, 0xff929292, 0xff919191, 0xff919191, 0xff919191, 0xff919191, 0xfe929292, 0xff929292, 0xff929292, 0xfe929292, 0xff929292, 0xff929292, 0xff919191, 0xfe929292, 0xff929292, 0xff929292, 0xff919191, 0xff919191, 0xff929292, 0xff929292, 0xff919191, 0xff919191, 0xfe929292, 0xff929292, 0xff919191, 0xff919191, 0xff919191, 0xfe919191, 0xff919191, 0xff919191, 0xff919191, 0xfe929292, 0xff919191, 0xfe929292, 0xfe929292, 0xff929292, 0xff929292, 0xfe929292, 0xff919191, 0xff919191, 0xff919191, 0xff929292, 0xff919191, 0xff919191, 0xff929292, 0xff919191, 0xff919191, 0xff929292, 0xff919191, 0xff919191, 0xff929292, 0xff919191, 0xff919191, 0xff919191, 0xff919191, 0xff919191, 0xff919191, 0xff919191, 0xff929292, 0xff919191, 0xff929292, 0xfe919191, 0xfe929292, 0xfe929292, 0xff929292, 0xff919191, 0xff929292, 0xff919191, 0xff919191, 0xff929292, 0xff919191, 0xff919191, 0xfe929292, 0xff929292, 0xff919191, 0xff919191, 0xff919191, 0xff919191, 0xff919191, 0xfe929292, 0xff919191, 0xff919191, 0xff929292, 0xfe929292, 0xff919191, 0xfe929292, 0xff919191, 0xff919191, 0xff919191, 0xff929292, 0xff919191, 0xff919191, 0xff919191, 0xff919191, 0xff919191, 0xff929292, 0xfe929292, 0xff919191, 0xff929292, 0xff919191, 0xb0929292, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x70929292, 0xff919191, 0xff919191, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff919191, 0xff919191, 0xfe919191, 0xff919191, 0xff919191, 0xff919191, 0xff919191, 0xff909090, 0xff919191, 0xff919191, 0xff919191, 0xff919191, 0xff919191, 0xff909090, 0xff919191, 0xfe919191, 0xff919191, 0xff919191, 0xff909090, 0xff919191, 0xff909090, 0xff919191, 0xff919191, 0xfe919191, 0xff909090, 0xfe919191, 0xfe919191, 0xff919191, 0xff909090, 0xff909090, 0xff919191, 0xff909090, 0xfe919191, 0xff919191, 0xff909090, 0xff919191, 0xff909090, 0xfe919191, 0xff909090, 0xff909090, 0xff909090, 0xfe919191, 0xff909090, 0xfe919191, 0xff909090, 0xff919191, 0xff919191, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xfe919191, 0xfe919191, 0xfe919191, 0xff909090, 0xff909090, 0xff919191, 0xff919191, 0xfe919191, 0xff909090, 0xff919191, 0xff909090, 0xff909090, 0xfe919191, 0xfe919191, 0xff909090, 0xff909090, 0xfe919191, 0xff919191, 0xfe919191, 0xfe919191, 0xff919191, 0xff909090, 0xff919191, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff919191, 0xff909090, 0xff909090, 0xfe919191, 0xfe919191, 0xfe919191, 0xfe919191, 0xfe919191, 0xff909090, 0xff919191, 0xff919191, 0xff919191, 0xff909090, 0xff909090, 0xff909090, 0xff919191, 0xff919191, 0xff909090, 0xff919191, 0xff919191, 0xff909090, 0xfe919191, 0xff909090, 0xff919191, 0xff919191, 0xff919191, 0xfe919191, 0xfe919191, 0xff909090, 0xfe929292, 0xff909090, 0xff909090, 0xff919191, 0xfe919191, 0xff909090, 0xff909090, 0xfe919191, 0xfe919191, 0xff909090, 0xff909090, 0xff909090, 0xfe919191, 0xff909090, 0xff919191, 0xfe919191, 0xfe919191, 0xff909090, 0xff909090, 0xff909090, 0xfe919191, 0x80919191, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0x408f8f8f, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xfe919191, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff8f8f8f, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xfe919191, 0xfe909090, 0xfe919191, 0xff909090, 0xff909090, 0xfe909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xfe909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xfe919191, 0xff909090, 0xfe919191, 0xff909090, 0xfe919191, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xfe909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xfe909090, 0xff909090, 0xfe909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff8f8f8f, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xfe909090, 0xfe919191, 0xff909090, 0xff8f8f8f, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xfe919191, 0xff909090, 0xff909090, 0xfe909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff8f8f8f, 0xfe919191, 0xff909090, 0xfe919191, 0xff909090, 0xff909090, 0xff909090, 0xff8f8f8f, 0xff909090, 0xff8f8f8f, 0xff909090, 0xff909090, 0xfe909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xfe909090, 0xff909090, 0xff909090, 0xff8f8f8f, 0xff909090, 0xfe919191, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xff909090, 0xfe909090, 0xfe909090, 0xff909090, 0xff909090, 0x408f8f8f, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xee909090, 0xfe909090, 0xfe8f8f8f, 0xff909090, 0xfe909090, 0xfe8f8f8f, 0xfe8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xfe8f8f8f, 0xfe909090, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xfe909090, 0xff8f8f8f, 0xff8f8f8f, 0xfe8f8f8f, 0xfe909090, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xfe909090, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xfe909090, 0xfe909090, 0xff8f8f8f, 0xff8f8f8f, 0xfe909090, 0xff8f8f8f, 0xfe909090, 0xfe8f8f8f, 0xfe909090, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xfe8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xfe8f8f8f, 0xfe909090, 0xfe909090, 0xff8f8f8f, 0xfe8f8f8f, 0xfe909090, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff909090, 0xfe909090, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xfe909090, 0xfe8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xfe909090, 0xff909090, 0xff8f8f8f, 0xfe909090, 0xff8f8f8f, 0xfe909090, 0xff909090, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xfe909090, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xfe8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xfe909090, 0xff909090, 0xff8f8f8f, 0xfe909090, 0xff8f8f8f, 0xfe909090, 0xfe909090, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xfe909090, 0xff8f8f8f, 0xfe909090, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xff8e8e8e, 0xff8f8f8f, 0xff8f8f8f, 0xfe909090, 0xfe909090, 0xfe8f8f8f, 0xfe909090, 0xfe909090, 0xfe909090, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xdf909090, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x808f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xfe8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8f8f8f, 0xfe8f8f8f, 0xff8e8e8e, 0xff8f8f8f, 0xff8f8f8f, 0xfe8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xfe8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xfe8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xfe8f8f8f, 0xfe8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8f8f8f, 0xff8e8e8e, 0xfe8f8f8f, 0xfe8f8f8f, 0xff8e8e8e, 0xff8f8f8f, 0xff8e8e8e, 0xfe8f8f8f, 0xff8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xff8f8f8f, 0xff8e8e8e, 0xff8f8f8f, 0xfe8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8f8f8f, 0xff8e8e8e, 0xfe8f8f8f, 0xff8e8e8e, 0xff8f8f8f, 0xff8e8e8e, 0xfe8f8f8f, 0xff8e8e8e, 0xff8f8f8f, 0xff8f8f8f, 0xff8f8f8f, 0xfe8f8f8f, 0xfe8f8f8f, 0xff8f8f8f, 0xff8e8e8e, 0xfe8f8f8f, 0xfe8f8f8f, 0xff8e8e8e, 0xff8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xfe8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8f8f8f, 0xff8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xfe8f8f8f, 0xff8f8f8f, 0xff8e8e8e, 0xfe8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xfe8f8f8f, 0xff8f8f8f, 0xfe8f8f8f, 0xff8f8f8f, 0xff8e8e8e, 0xfe8f8f8f, 0xff8e8e8e, 0xff8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xfe8f8f8f, 0xff8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xfe8f8f8f, 0xff8e8e8e, 0xfe8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xfe8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xfe8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xfe8f8f8f, 0xfe8f8f8f, 0xff8e8e8e, 0x9f909090, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0x108f8f8f, 0xff8e8e8e, 0xfe8e8e8e, 0xfe8f8f8f, 0xff8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xff8e8e8e, 0xfe8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xfe8e8e8e, 0xff8e8e8e, 0xfe8e8e8e, 0xfe8e8e8e, 0xff8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xfe8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xfe8f8f8f, 0xff8d8d8d, 0xff8e8e8e, 0xfe8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xfe8e8e8e, 0xff8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xff8e8e8e, 0xff8d8d8d, 0xff8d8d8d, 0xff8e8e8e, 0xfe8e8e8e, 0xff8e8e8e, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xfe8f8f8f, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xff8e8e8e, 0xfe8e8e8e, 0xfe8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xfe8e8e8e, 0xff8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xff8d8d8d, 0xfe8e8e8e, 0xff8e8e8e, 0xfe8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xfe8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xfe8e8e8e, 0xff8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xfe8e8e8e, 0xff8d8d8d, 0xff8d8d8d, 0xff8e8e8e, 0xff8d8d8d, 0xff8d8d8d, 0xff8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xfe8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8e8e8e, 0xff8d8d8d, 0xfe8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xff8e8e8e, 0xff8d8d8d, 0xff8e8e8e, 0xff8e8e8e, 0xff8d8d8d, 0x208f8f8f, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x8f8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8c8c8c, 0xff8d8d8d, 0xfe8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xfe8d8d8d, 0xff8d8d8d, 0xfe8d8d8d, 0xff8d8d8d, 0xff8c8c8c, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xfe8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8c8c8c, 0xfe8d8d8d, 0xfe8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xfe8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xfe8d8d8d, 0xfe8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xfe8d8d8d, 0xfe8d8d8d, 0xff8d8d8d, 0xff8e8e8e, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8c8c8c, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8c8c8c, 0xff8d8d8d, 0xfe8d8d8d, 0xff8c8c8c, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xfe8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xfe8e8e8e, 0xfe8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8c8c8c, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xfe8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xfe8e8e8e, 0xff8d8d8d, 0xfe8d8d8d, 0xff8d8d8d, 0xff8e8e8e, 0xfe8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xfe8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xfe8d8d8d, 0xff8e8e8e, 0xff8d8d8d, 0xff8d8d8d, 0xfe8e8e8e, 0xff8d8d8d, 0xfe8e8e8e, 0xff8d8d8d, 0xff8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xfe8e8e8e, 0xff8d8d8d, 0xff8c8c8c, 0xff8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xfe8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xff8c8c8c, 0xfe8d8d8d, 0xff8d8d8d, 0xff8d8d8d, 0xfe8d8d8d, 0x9f8f8f8f, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x108f8f8f, 0xef8c8c8c, 0xff8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xfe8d8d8d, 0xfe8d8d8d, 0xff8c8c8c, 0xfe8d8d8d, 0xfe8d8d8d, 0xff8c8c8c, 0xfe8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xfe8d8d8d, 0xff8d8d8d, 0xff8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xfe8d8d8d, 0xfe8d8d8d, 0xfe8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xfe8d8d8d, 0xfe8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xfe8d8d8d, 0xfe8d8d8d, 0xff8c8c8c, 0xfe8d8d8d, 0xfe8c8c8c, 0xff8d8d8d, 0xff8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xfe8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xfe8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xff8d8d8d, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xdf8d8d8d, 0x20878787, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x708b8b8b, 0xff8b8b8b, 0xfe8c8c8c, 0xff8b8b8b, 0xff8c8c8c, 0xfe8c8c8c, 0xff8b8b8b, 0xfe8c8c8c, 0xfe8c8c8c, 0xfe8c8c8c, 0xff8b8b8b, 0xff8c8c8c, 0xff8c8c8c, 0xff8b8b8b, 0xff8c8c8c, 0xff8b8b8b, 0xff8c8c8c, 0xfe8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xfe8c8c8c, 0xfe8c8c8c, 0xff8b8b8b, 0xfe8c8c8c, 0xff8c8c8c, 0xff8b8b8b, 0xfe8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8c8c8c, 0xff8b8b8b, 0xff8c8c8c, 0xff8c8c8c, 0xfe8c8c8c, 0xff8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xfe8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xfe8c8c8c, 0xff8c8c8c, 0xff8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8c8c8c, 0xff8b8b8b, 0xff8c8c8c, 0xfe8c8c8c, 0xff8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xfe8c8c8c, 0xfe8c8c8c, 0xff8b8b8b, 0xff8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xfe8c8c8c, 0xff8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8c8c8c, 0xff8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8c8c8c, 0xff8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8c8c8c, 0xff8c8c8c, 0xfe8c8c8c, 0xff8b8b8b, 0xff8c8c8c, 0xff8c8c8c, 0xfe8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xfe8c8c8c, 0xff8b8b8b, 0xff8c8c8c, 0xff8b8b8b, 0xfe8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8c8c8c, 0xff8b8b8b, 0xfe8c8c8c, 0xff8b8b8b, 0xff8c8c8c, 0xff8c8c8c, 0xfe8c8c8c, 0xff8b8b8b, 0xff8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xfe8c8c8c, 0xff8b8b8b, 0xfe8c8c8c, 0xfe8c8c8c, 0xff8c8c8c, 0xfe8c8c8c, 0xff8b8b8b, 0x5f8c8c8c, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x908a8a8a, 0xfe8b8b8b, 0xfe8c8c8c, 0xfe8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xfe8c8c8c, 0xff8b8b8b, 0xff8a8a8a, 0xff8b8b8b, 0xff8a8a8a, 0xff8b8b8b, 0xff8a8a8a, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xfe8b8b8b, 0xfe8c8c8c, 0xff8b8b8b, 0xfe8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xfe8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xfe8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xfe8c8c8c, 0xff8b8b8b, 0xff8a8a8a, 0xff8b8b8b, 0xfe8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xfe8b8b8b, 0xff8b8b8b, 0xff8a8a8a, 0xfe8b8b8b, 0xff8b8b8b, 0xfe8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xfe8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xfe8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xfe8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8c8c8c, 0xff8a8a8a, 0xff8b8b8b, 0xff8b8b8b, 0xfe8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8a8a8a, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8a8a8a, 0xff8b8b8b, 0xfe8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xfe8c8c8c, 0xff8b8b8b, 0xfe8b8b8b, 0xff8a8a8a, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8a8a8a, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xfe8b8b8b, 0xff8a8a8a, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xfe8b8b8b, 0xff8b8b8b, 0xfe8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0xfe8c8c8c, 0xff8b8b8b, 0xff8b8b8b, 0xff8b8b8b, 0x908a8a8a, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xbf8a8a8a, 0xfe8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8b8b8b, 0xff8a8a8a, 0xfe8a8a8a, 0xff8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xff8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xfe8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xfe8a8a8a, 0xfe8b8b8b, 0xff8a8a8a, 0xfe8b8b8b, 0xfe8b8b8b, 0xff8a8a8a, 0xfe8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xfe8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8b8b8b, 0xff8a8a8a, 0xfe8b8b8b, 0xff8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xfe8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xfe8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xfe8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xfe8b8b8b, 0xff8a8a8a, 0xfe8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xfe8b8b8b, 0xfe8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xfe8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xfe8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xfe8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xff898989, 0xfe8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xfe8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xfe8b8b8b, 0xfe8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xfe8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xfe8b8b8b, 0xff8a8a8a, 0xfe8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xfe8b8b8b, 0xff8b8b8b, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8b8b8b, 0xfe8a8a8a, 0xfe8b8b8b, 0xff8a8a8a, 0xfe8b8b8b, 0xcf8a8a8a, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x108f8f8f, 0xcf898989, 0xff898989, 0xff898989, 0xff8a8a8a, 0xfe8a8a8a, 0xff898989, 0xff898989, 0xff8a8a8a, 0xff898989, 0xff898989, 0xff898989, 0xff898989, 0xff898989, 0xfe8a8a8a, 0xfe8a8a8a, 0xfe8a8a8a, 0xff898989, 0xff898989, 0xff898989, 0xff898989, 0xfe8a8a8a, 0xff8a8a8a, 0xff898989, 0xff898989, 0xff898989, 0xfe8a8a8a, 0xff8a8a8a, 0xff898989, 0xff8a8a8a, 0xff898989, 0xff898989, 0xff898989, 0xff898989, 0xff8a8a8a, 0xff8a8a8a, 0xff898989, 0xff898989, 0xfe8a8a8a, 0xff898989, 0xff898989, 0xff8a8a8a, 0xff8a8a8a, 0xff898989, 0xff898989, 0xff898989, 0xfe8a8a8a, 0xff898989, 0xff898989, 0xff898989, 0xff898989, 0xff8a8a8a, 0xff898989, 0xff898989, 0xff898989, 0xff898989, 0xff8a8a8a, 0xff898989, 0xff8a8a8a, 0xfe8a8a8a, 0xff898989, 0xff898989, 0xff898989, 0xff898989, 0xff898989, 0xff8a8a8a, 0xfe8a8a8a, 0xff8a8a8a, 0xff898989, 0xff898989, 0xfe8a8a8a, 0xff898989, 0xff898989, 0xff898989, 0xff898989, 0xff898989, 0xff8a8a8a, 0xff8a8a8a, 0xfe8a8a8a, 0xff898989, 0xff8a8a8a, 0xff898989, 0xff898989, 0xff898989, 0xfe8a8a8a, 0xfe8a8a8a, 0xfe8a8a8a, 0xff898989, 0xff898989, 0xfe8a8a8a, 0xff898989, 0xfe8a8a8a, 0xff898989, 0xff898989, 0xff898989, 0xfe8a8a8a, 0xff898989, 0xff8a8a8a, 0xff898989, 0xfe8a8a8a, 0xfe8a8a8a, 0xff898989, 0xff898989, 0xff8a8a8a, 0xff898989, 0xff898989, 0xfe8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff898989, 0xfe8a8a8a, 0xff8a8a8a, 0xff898989, 0xfe8a8a8a, 0xfe8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff898989, 0xfe8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff8a8a8a, 0xff898989, 0xfe8a8a8a, 0xff8a8a8a, 0xbf8a8a8a, 0x108f8f8f, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x90888888, 0xfe898989, 0xff898989, 0xff888888, 0xfe898989, 0xff898989, 0xff898989, 0xfe898989, 0xff888888, 0xff888888, 0xff898989, 0xff898989, 0xff888888, 0xff898989, 0xff898989, 0xfe898989, 0xff898989, 0xff898989, 0xfe898989, 0xff898989, 0xff898989, 0xfe898989, 0xff888888, 0xfe898989, 0xff898989, 0xff888888, 0xfe898989, 0xff898989, 0xfe898989, 0xff898989, 0xff888888, 0xff898989, 0xfe898989, 0xff898989, 0xff898989, 0xff888888, 0xff898989, 0xfe898989, 0xfe898989, 0xff898989, 0xff888888, 0xfe898989, 0xff898989, 0xff898989, 0xff898989, 0xff898989, 0xff898989, 0xff888888, 0xfe898989, 0xff898989, 0xfe898989, 0xff898989, 0xfe8a8a8a, 0xfe898989, 0xff898989, 0xff898989, 0xff888888, 0xff898989, 0xff898989, 0xff888888, 0xff898989, 0xff888888, 0xff888888, 0xff888888, 0xff898989, 0xff888888, 0xfe898989, 0xff888888, 0xfe898989, 0xff888888, 0xff898989, 0xff898989, 0xff888888, 0xff888888, 0xff898989, 0xff898989, 0xff898989, 0xfe898989, 0xff898989, 0xff898989, 0xfe898989, 0xff898989, 0xff888888, 0xff898989, 0xff898989, 0xff888888, 0xff898989, 0xff898989, 0xff898989, 0xff888888, 0xff898989, 0xff898989, 0xff888888, 0xff898989, 0xff898989, 0xff888888, 0xff898989, 0xff898989, 0xff888888, 0xfe898989, 0xff898989, 0xff898989, 0xff898989, 0xff898989, 0xff898989, 0xfe898989, 0xff898989, 0xff898989, 0xff888888, 0xfe898989, 0xff898989, 0xfe898989, 0xff898989, 0xff898989, 0xff888888, 0xff898989, 0xfe898989, 0xff898989, 0xff898989, 0xff898989, 0xff898989, 0xff888888, 0xff898989, 0x90878787, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x60878787, 0xdf888888, 0xff888888, 0xff888888, 0xfe888888, 0xfe898989, 0xff888888, 0xff888888, 0xff888888, 0xfe898989, 0xff888888, 0xfe888888, 0xff888888, 0xff878787, 0xfe888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xfe888888, 0xff888888, 0xfe888888, 0xff888888, 0xff888888, 0xfe888888, 0xff888888, 0xff888888, 0xff888888, 0xfe898989, 0xff888888, 0xff888888, 0xfe898989, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff878787, 0xff888888, 0xff888888, 0xff888888, 0xfe888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xfe888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xfe888888, 0xff888888, 0xff888888, 0xff878787, 0xff888888, 0xff888888, 0xfe898989, 0xfe888888, 0xff888888, 0xff888888, 0xfe888888, 0xff888888, 0xff888888, 0xff888888, 0xff898989, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xfe898989, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xfe888888, 0xff888888, 0xfe888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xfe888888, 0xff888888, 0xff878787, 0xff878787, 0xfe888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xff888888, 0xfe898989, 0xff888888, 0xff888888, 0xff888888, 0xfe898989, 0xff888888, 0xfe898989, 0xff888888, 0xfe898989, 0xff888888, 0xef898989, 0x70868686, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x20878787, 0xa0878787, 0xfe878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff888888, 0xff888888, 0xff878787, 0xff878787, 0xff878787, 0xff888888, 0xfe888888, 0xff878787, 0xff878787, 0xff878787, 0xff888888, 0xff878787, 0xff888888, 0xff878787, 0xfe878787, 0xff878787, 0xfe888888, 0xfe878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xfe888888, 0xff878787, 0xff878787, 0xff888888, 0xff878787, 0xfe888888, 0xfe888888, 0xff878787, 0xfe878787, 0xfe888888, 0xff878787, 0xfe888888, 0xff878787, 0xff888888, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xfe888888, 0xfe888888, 0xfe888888, 0xff878787, 0xfe888888, 0xff878787, 0xff878787, 0xfe888888, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xfe878787, 0xff878787, 0xff878787, 0xff878787, 0xfe888888, 0xff878787, 0xfe888888, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xfe888888, 0xfe878787, 0xfe888888, 0xff878787, 0xfe888888, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xfe888888, 0xff878787, 0xfe878787, 0xff878787, 0xff878787, 0xfe888888, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xfe888888, 0xfe888888, 0xff878787, 0xfe888888, 0xff878787, 0xff878787, 0xff878787, 0xfe888888, 0xff878787, 0xff878787, 0xfe888888, 0xff878787, 0x90878787, 0x108f8f8f, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x20808080, 0x9f878787, 0xdf878787, 0xff878787, 0xff868686, 0xff878787, 0xff868686, 0xff868686, 0xff868686, 0xff878787, 0xff878787, 0xff868686, 0xff868686, 0xff868686, 0xff878787, 0xfe878787, 0xfe878787, 0xff868686, 0xff868686, 0xff868686, 0xfe878787, 0xff868686, 0xff868686, 0xff878787, 0xff868686, 0xff868686, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff868686, 0xff868686, 0xff868686, 0xff878787, 0xff878787, 0xff878787, 0xff878787, 0xff868686, 0xfe878787, 0xff868686, 0xfe878787, 0xff878787, 0xfe878787, 0xff878787, 0xff868686, 0xff868686, 0xff878787, 0xff878787, 0xff868686, 0xfe878787, 0xff868686, 0xff878787, 0xff878787, 0xff878787, 0xfe878787, 0xfe878787, 0xfe878787, 0xff868686, 0xff878787, 0xfe878787, 0xff878787, 0xff868686, 0xff868686, 0xff868686, 0xff878787, 0xff868686, 0xff878787, 0xfe878787, 0xfe878787, 0xff868686, 0xff868686, 0xff868686, 0xff868686, 0xff868686, 0xff878787, 0xff878787, 0xff878787, 0xfe878787, 0xff878787, 0xff878787, 0xfe878787, 0xff868686, 0xff878787, 0xff868686, 0xff868686, 0xff878787, 0xff868686, 0xff878787, 0xff868686, 0xff878787, 0xff868686, 0xff868686, 0xfe878787, 0xff868686, 0xfe878787, 0xfe878787, 0xff878787, 0xff868686, 0xfe878787, 0xff868686, 0xff868686, 0xff878787, 0xff868686, 0xfe878787, 0xff878787, 0xff868686, 0xff878787, 0xff868686, 0xff868686, 0xff868686, 0xff878787, 0xff868686, 0xff878787, 0xef888888, 0x80878787, 0x108f8f8f, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x40878787, 0x80858585, 0xaf888888, 0xcf868686, 0xef868686, 0xff868686, 0xff868686, 0xff868686, 0xff868686, 0xff858585, 0xfe868686, 0xff868686, 0xff868686, 0xff868686, 0xff868686, 0xfe878787, 0xff868686, 0xff868686, 0xff868686, 0xfe868686, 0xff868686, 0xff858585, 0xff868686, 0xfe868686, 0xff858585, 0xff868686, 0xfe868686, 0xfe868686, 0xfe868686, 0xff868686, 0xff868686, 0xfe868686, 0xff868686, 0xff868686, 0xfe868686, 0xfe868686, 0xfe878787, 0xff868686, 0xfe868686, 0xfe878787, 0xff868686, 0xff868686, 0xff868686, 0xff868686, 0xff858585, 0xff858585, 0xfe868686, 0xff868686, 0xff868686, 0xff868686, 0xff868686, 0xff868686, 0xfe868686, 0xfe868686, 0xff858585, 0xff868686, 0xff868686, 0xff868686, 0xff868686, 0xfe868686, 0xfe878787, 0xff868686, 0xff868686, 0xfe868686, 0xff868686, 0xff868686, 0xfe868686, 0xff858585, 0xfe868686, 0xff868686, 0xff868686, 0xff868686, 0xfe878787, 0xff868686, 0xff868686, 0xfe878787, 0xff858585, 0xff868686, 0xff858585, 0xff858585, 0xfe868686, 0xff858585, 0xff858585, 0xff868686, 0xff868686, 0xfe868686, 0xff868686, 0xfe868686, 0xff868686, 0xff868686, 0xfe868686, 0xff858585, 0xff868686, 0xfe868686, 0xff858585, 0xff868686, 0xff868686, 0xff868686, 0xff868686, 0xff868686, 0xff858585, 0xff868686, 0xff868686, 0xff858585, 0xff868686, 0xef888888, 0xdf878787, 0xaf868686, 0x70868686, 0x40878787, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
+};
diff --git a/Private/NewBoot/Source/BootloaderRsrc.rsrc b/Private/NewBoot/Source/BootloaderRsrc.rsrc
index f77a4079..e8d89e9a 100644
--- a/Private/NewBoot/Source/BootloaderRsrc.rsrc
+++ b/Private/NewBoot/Source/BootloaderRsrc.rsrc
@@ -1,6 +1,6 @@
#include "../../CompilerKit/Version.hxx"
-1 ICON "../../Root/Boot/boot-logo.ico"
+1 ICON "../../Root/Boot/Icons/boot-logo.ico"
1 VERSIONINFO
FILEVERSION 1,0,0,0
@@ -11,7 +11,7 @@ BEGIN
BLOCK "080904E4"
BEGIN
VALUE "CompanyName", "Mahrouss-Logic"
- VALUE "FileDescription", "NewOS multi-platform bootloader."
+ VALUE "FileDescription", "New OS multi-platform bootloader."
VALUE "FileVersion", BOOTLOADER_VERSION
VALUE "InternalName", "NewBoot"
VALUE "LegalCopyright", "Copyright Mahrouss-Logic, all rights reserved."
diff --git a/Private/NewBoot/Source/CDROM/.NEWDEV b/Private/NewBoot/Source/CDROM/.NEWDEV
deleted file mode 100644
index d5d2badf..00000000
--- a/Private/NewBoot/Source/CDROM/.NEWDEV
+++ /dev/null
@@ -1,2 +0,0 @@
-[POWER_MANAGEMENT]
-ENFORCE_ACPI=YES \ No newline at end of file
diff --git a/Private/NewBoot/Source/CDROM/SplashScreen.fmt b/Private/NewBoot/Source/CDROM/SplashScreen.fmt
new file mode 100644
index 00000000..e47a66a6
--- /dev/null
+++ b/Private/NewBoot/Source/CDROM/SplashScreen.fmt
@@ -0,0 +1,6 @@
+Welcome to NeWS
+
+Brought to you by:
+* MicroKernel, Bootloader: Amlal EL Mahrouss.
+
+Copyright Mahrouss-Logic, all rights reserved.
diff --git a/Private/NewBoot/Source/HEL/AMD64/BootATA.cxx b/Private/NewBoot/Source/HEL/AMD64/BootATA.cxx
index 2a2852fb..4e41ba2e 100644
--- a/Private/NewBoot/Source/HEL/AMD64/BootATA.cxx
+++ b/Private/NewBoot/Source/HEL/AMD64/BootATA.cxx
@@ -72,7 +72,7 @@ ATAInit_Retry:
if (statRdy & ATA_SR_ERR) {
writer.Write(
- L"NewOS: ATA: Select error, not an IDE based hard-drive.\r\n");
+ L"New Boot: ATA: Select error, not an IDE based hard-drive.\r\n");
return false;
}
@@ -108,21 +108,21 @@ ATAInit_Retry:
/* differentiate ATA, ATAPI, SATA and SATAPI */
if (cl == 0x14 && ch == 0xEB) {
- writer.Write(L"NewOS: PATAPI drive detected.\r\n");
+ writer.Write(L"New Boot: PATAPI drive detected.\r\n");
kATADeviceType = kATADevicePATA_PI;
}
if (cl == 0x69 && ch == 0x96) {
- writer.Write(L"NewOS: SATAPI drive detected.\r\n");
+ writer.Write(L"New Boot: SATAPI drive detected.\r\n");
kATADeviceType = kATADeviceSATA_PI;
}
if (cl == 0x0 && ch == 0x0) {
- writer.Write(L"NewOS: PATA drive detected.\r\n");
+ writer.Write(L"New Boot: PATA drive detected.\r\n");
kATADeviceType = kATADevicePATA;
}
if (cl == 0x3c && ch == 0xc3) {
- writer.Write(L"NewOS: SATA drive detected.\r\n");
+ writer.Write(L"New Boot: SATA drive detected.\r\n");
kATADeviceType = kATADeviceSATA;
}
@@ -159,7 +159,7 @@ Void boot_ata_read(UInt64 Lba, UInt16 IO, UInt8 Master, CharacterTypeUTF8* Buf,
++IndexOff;
while ((In8(ATA_COMMAND(IO))) & ATA_SR_BSY) boot_ata_wait_io(IO);
-
+
byte = In16(IO + ATA_REG_DATA);
Buf[IndexOff] = byte;
}
@@ -213,7 +213,7 @@ BootDeviceATA::BootDeviceATA() noexcept {
BTextWriter writer;
- writer.Write(L"NewOS: Drive is OnLine.\r\n");
+ writer.Write(L"New Boot: Drive is OnLine.\r\n");
}
}
/**
diff --git a/Private/NewBoot/Source/HEL/AMD64/BootEPM.cxx b/Private/NewBoot/Source/HEL/AMD64/BootEPM.cxx
deleted file mode 100644
index 0d678dc1..00000000
--- a/Private/NewBoot/Source/HEL/AMD64/BootEPM.cxx
+++ /dev/null
@@ -1,119 +0,0 @@
-/* -------------------------------------------
-
- Copyright Mahrouss Logic
-
-------------------------------------------- */
-
-#include <BootKit/BootKit.hxx>
-#include <FSKit/NewFS.hxx>
-
-#define kEPMSectorSize kATASectorSize
-#define kEPMSwapSize MIB(16)
-#define kEPMGPTStartLba (30)
-
-// {310E1FC7-2060-425D-BE7B-75A37CC679BC}
-STATIC const BlockGUID kEPMGuid = {
- 0x310e1fc7,
- 0x2060,
- 0x425d,
- {0xbe, 0x7b, 0x75, 0xa3, 0x7c, 0xc6, 0x79, 0xbc}};
-
-/// @brief Write epm partition to disk.
-/// @param namePart partition name
-/// @param namePartLength length of name
-/// @param bootDev disk interface.
-/// @return
-EXTERN_C Boolean boot_write_epm_partition(const Char* namePart, SizeT namePartLength,
- BootDevice* bootDev) {
- if (namePartLength > kEPMNameLength || !namePart) return No;
- if (!bootDev) return No;
-
- bootDev->Leak().mBase = kEPMGPTStartLba;
- bootDev->Leak().mSize = kEPMSectorSize;
-
- Char buf[kEPMSectorSize] = {0};
-
- bootDev->Read(buf, 1);
-
- BTextWriter writer;
-
- writer.Write(L"NewOS: Checking for a EPM partition...\r\n");
-
- for (SizeT index = 0; index < kEPMMagicLength; ++index) {
- if (buf[index] != kEPMMagic[index]) {
- writer.Write(L"NewOS: Writing a EPM partition...\r\n");
-
- BootBlockType* bootBlock = (BootBlockType*)buf;
-
- bootBlock->Version = kEPMRevision;
- bootBlock->NumBlocks = 2;
-
- for (SizeT i = 0; i < kEPMNameLength; ++i) {
- bootBlock->Magic[i] = kEPMMagic[i];
- }
-
- for (SizeT i = 0; i < namePartLength; ++i) {
- bootBlock->Name[i] = namePart[i];
- }
-
- bootBlock->LbaStart =
- sizeof(BootBlockType) + (sizeof(PartitionBlockType) * kEPMMaxBlks);
-
- bootBlock->SectorSz = kEPMSectorSize;
-
- bootBlock->Uuid = kEPMGuid;
-
- PartitionBlock* partBlock = (PartitionBlock*)(buf + sizeof(BootBlock));
-
- const char* fsName = "NewFS";
- int fsNameLength = 6;
-
- for (SizeT i = 0; i < fsNameLength; ++i) {
- partBlock->Fs[i] = fsName[i];
- }
-
- partBlock->Version = kEPMNewOS;
-
- const char* partNameSystem = "System HD";
- int partNameLength = 10;
-
- for (SizeT i = 0; i < partNameLength; ++i) {
- partBlock->Name[i] = partNameSystem[i];
- }
-
- partBlock->SectorSz = kEPMSectorSize;
- partBlock->LbaStart = kEPMStartPartitionBlk + kEPMSwapSize;
- partBlock->Version = kNewFSVersionInteger;
- partBlock->Kind = kNewFSPartitionTypeStandard;
- partBlock->LbaEnd = 0UL; ///! grows on the disk.
-
- PartitionBlock* swapBlock = (PartitionBlock*)(buf + sizeof(BootBlock) + sizeof(PartitionBlock));
-
- for (SizeT i = 0; i < fsNameLength; ++i) {
- swapBlock->Fs[i] = fsName[i];
- }
-
- swapBlock->Version = kEPMNewOS;
-
- const char *partNameSwap = "Swap HD";
- partNameLength = 8;
-
- for (SizeT i = 0; i < partNameLength; ++i) {
- swapBlock->Name[i] = partNameSwap[i];
- }
-
- swapBlock->SectorSz = kEPMSectorSize;
- swapBlock->LbaStart = kEPMStartPartitionBlk;
- swapBlock->Version = kNewFSVersionInteger;
- swapBlock->Kind = kNewFSPartitionTypePage;
- swapBlock->LbaEnd = kEPMSwapSize; /// 4 MIB swap partition.
-
- bootDev->Write(buf, 1);
-
- return No;
- }
- }
-
- writer.Write(L"NewOS: Partition found, everything's OK.\r\n");
- return Yes;
-} \ No newline at end of file
diff --git a/Private/NewBoot/Source/HEL/AMD64/BootFileReader.cxx b/Private/NewBoot/Source/HEL/AMD64/BootFileReader.cxx
index b31f37de..3a445d61 100644
--- a/Private/NewBoot/Source/HEL/AMD64/BootFileReader.cxx
+++ b/Private/NewBoot/Source/HEL/AMD64/BootFileReader.cxx
@@ -3,7 +3,7 @@
Copyright Mahrouss Logic
File: FileReader.cxx
- Purpose: NewBoot FileReader,
+ Purpose: New Boot FileReader,
Read complete file and store it in a buffer.
------------------------------------------- */
@@ -25,7 +25,8 @@
/***
@brief File Reader constructor.
*/
-BFileReader::BFileReader(const CharacterTypeUTF16* path, EfiHandlePtr ImageHandle) {
+BFileReader::BFileReader(const CharacterTypeUTF16* path,
+ EfiHandlePtr ImageHandle) {
if (path != nullptr) {
SizeT index = 0UL;
for (; path[index] != L'\0'; ++index) {
@@ -46,12 +47,12 @@ BFileReader::BFileReader(const CharacterTypeUTF16* path, EfiHandlePtr ImageHandl
EfiGUID guidImg = EfiGUID(EFI_LOADED_IMAGE_PROTOCOL_GUID);
if (BS->HandleProtocol(ImageHandle, &guidImg, (void**)&img) != kEfiOk) {
- mWriter.Write(L"NewOS: Fetch-Protocol: No-Such-Protocol").Write(L"\r\n");
+ mWriter.Write(L"New Boot: Fetch-Protocol: No-Such-Protocol").Write(L"\r\n");
this->mErrorCode = kNotSupported;
}
if (BS->HandleProtocol(img->DeviceHandle, &guidEfp, (void**)&efp) != kEfiOk) {
- mWriter.Write(L"NewOS: Fetch-Protocol: No-Such-Protocol").Write(L"\r\n");
+ mWriter.Write(L"New Boot: Fetch-Protocol: No-Such-Protocol").Write(L"\r\n");
this->mErrorCode = kNotSupported;
return;
}
@@ -59,7 +60,7 @@ BFileReader::BFileReader(const CharacterTypeUTF16* path, EfiHandlePtr ImageHandl
/// Start doing disk I/O
if (efp->OpenVolume(efp, &rootFs) != kEfiOk) {
- mWriter.Write(L"NewOS: Fetch-Protocol: No-Such-Volume").Write(L"\r\n");
+ mWriter.Write(L"New Boot: Fetch-Protocol: No-Such-Volume").Write(L"\r\n");
this->mErrorCode = kNotSupported;
return;
}
@@ -68,7 +69,7 @@ BFileReader::BFileReader(const CharacterTypeUTF16* path, EfiHandlePtr ImageHandl
if (rootFs->Open(rootFs, &kernelFile, mPath, kEFIFileRead, kEFIReadOnly) !=
kEfiOk) {
- mWriter.Write(L"NewOS: Fetch-Protocol: No-Such-Path: ")
+ mWriter.Write(L"New Boot: Fetch-Protocol: No-Such-Path: ")
.Write(mPath)
.Write(L"\r\n");
this->mErrorCode = kNotSupported;
@@ -88,24 +89,19 @@ BFileReader::~BFileReader() {
this->mFile = nullptr;
}
- if (this->mBlob)
- BS->FreePool(mBlob);
+ if (this->mBlob) BS->FreePool(mBlob);
BSetMem(this->mPath, 0, kPathLen);
}
/**
@brief this reads all of the buffer.
- @param ImageHandle used internally.
+ @param until read until size is reached.
*/
-Void BFileReader::ReadAll() {
- /// Allocate Handover page.
-
- if (this->mErrorCode != kOperationOkay) return;
-
+Void BFileReader::ReadAll(SizeT until, SizeT chunk) {
if (mBlob == nullptr) {
- if (auto err = BS->AllocatePool(EfiLoaderCode, mSizeFile,
- (VoidPtr*)&mBlob) != kEfiOk) {
+ if (auto err = BS->AllocatePool(EfiLoaderCode, until,
+ (VoidPtr*)&mBlob) != kEfiOk) {
mWriter.Write(L"*** EFI-Code: ").Write(err).Write(L" ***\r\n");
EFI::RaiseHardError(L"NewBoot_PageError", L"Allocation error.");
}
@@ -113,8 +109,34 @@ Void BFileReader::ReadAll() {
mErrorCode = kNotSupported;
- if (mFile->Read(mFile, &mSizeFile, (VoidPtr)((UIntPtr)mBlob)) != kEfiOk)
- return;
+ UInt64 bufSize = chunk;
+ UInt64 szCnt = 0;
+ UInt64 curSz = 0;
+
+ while (curSz < until) {
+ if (mFile->Read(mFile, &bufSize, (VoidPtr)((UIntPtr)mBlob + curSz)) != kEfiOk) {
+ break;
+ }
+
+ szCnt += bufSize;
+ curSz += bufSize;
+ if (bufSize == 0)
+ break;
+ }
+
+ mSizeFile = curSz;
mErrorCode = kOperationOkay;
}
+
+/// @brief error code getter.
+/// @return the error code.
+Int32& BFileReader::Error() { return mErrorCode; }
+
+/// @brief blob getter.
+/// @return the blob.
+VoidPtr BFileReader::Blob(){ return mBlob; }
+
+/// @breif Size getter.
+/// @return the size of the file.
+UInt64& BFileReader::Size() { return mSizeFile; }
diff --git a/Private/NewBoot/Source/HEL/AMD64/BootMain.cxx b/Private/NewBoot/Source/HEL/AMD64/BootMain.cxx
index f5bb3ce8..638fe37a 100644
--- a/Private/NewBoot/Source/HEL/AMD64/BootMain.cxx
+++ b/Private/NewBoot/Source/HEL/AMD64/BootMain.cxx
@@ -5,52 +5,61 @@
------------------------------------------- */
#include <BootKit/BootKit.hxx>
+#include <BootKit/Rsrc/Driver.rsrc>
+#include <Builtins/Toolbox/Toolbox.hxx>
#include <KernelKit/MSDOS.hpp>
#include <KernelKit/PE.hxx>
#include <NewKit/Ref.hpp>
-#ifdef __x86_64__
-#include <HALKit/AMD64/HalPageAlloc.hpp>
-#else
-#error This CPU is unknown.
-#endif // ifdef __x86_64__
+/** Graphics related. */
-#define kMaxBufSize 256
+STATIC EfiGraphicsOutputProtocol* kGop = nullptr;
+STATIC UInt16 kStride = 0U;
+STATIC EfiGUID kGopGuid;
-/// @brief Bootloader main type.
-typedef void (*bt_main_type)(HEL::HandoverInformationHeader* handoverInfo);
+/**
+ @brief Finds and stores the GOP.
+*/
+
+STATIC Void CheckAndFindFramebuffer() noexcept {
+ kGopGuid = EfiGUID(EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID);
+ kGop = nullptr;
+
+ extern EfiBootServices* BS;
+
+ BS->LocateProtocol(&kGopGuid, nullptr, (VoidPtr*)&kGop);
+
+ kStride = 4;
+}
+
+/// @brief check the BootDevice if suitable.
+STATIC Bool CheckBootDevice(BootDeviceATA& ataDev) {
+ if (ataDev.Leak().mErr) return false;
+ return true;
+}
/// @brief Main EFI entrypoint.
/// @param ImageHandle Handle of this image.
/// @param SystemTable The system table of it.
/// @return
-EFI_EXTERN_C EFI_API Int EfiMain(EfiHandlePtr ImageHandle,
- EfiSystemTable* SystemTable) {
- InitEFI(SystemTable); // Init the EFI library.
- InitGOP(); // Init the GOP.
+EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle,
+ EfiSystemTable* SystemTable) {
+ InitEFI(SystemTable); ///! Init the EFI library.
+ CheckAndFindFramebuffer(); ///! Init the GOP.
BTextWriter writer;
+
/// Splash screen stuff
- writer.Write(L"Mahrouss-Logic (R) NewOS: ").Write(BVersionString::Shared());
+ writer.Write(L"Mahrouss-Logic (R) New Boot: ")
+ .Write(BVersionString::Shared());
- writer.Write(L"\r\nNewOS: Firmware Vendor: ")
+ writer.Write(L"\r\nNewBoot: Firmware Vendor: ")
.Write(SystemTable->FirmwareVendor)
.Write(L"\r\n");
BootDeviceATA ataDev;
- Boolean isEpmFound = No;
-
- /// if ATA drive is initialized and EFI vendor supports an EPM scheme.
- /// @EDK tells our OS that it supports EPM scheme as well.
- if (ataDev) {
- Char namePart[kEPMNameLength] = {"NewBoot"};
- /// tries to read an EPM block, or writes one if it fails.
- isEpmFound = boot_write_epm_partition(namePart, kEPMNameLength, &ataDev);
- } else {
- writer.Write(L"NewOS: This computer can't work with NewOS.\r\n");
- return kEfiFail;
- }
+ Boolean isGptFound = No;
UInt32 MapKey = 0;
UInt32* SizePtr = nullptr;
@@ -60,7 +69,7 @@ EFI_EXTERN_C EFI_API Int EfiMain(EfiHandlePtr ImageHandle,
if (BS->AllocatePool(EfiLoaderData, sizeof(UInt32), (VoidPtr*)&SizePtr) !=
kEfiOk) {
- EFI::RaiseHardError(L"__bad_alloc", L"NewBoot ran out of memory!");
+ EFI::RaiseHardError(L"Bad-Alloc", L"New Boot ran out of memory!");
}
/****
@@ -73,23 +82,31 @@ EFI_EXTERN_C EFI_API Int EfiMain(EfiHandlePtr ImageHandle,
if (BS->AllocatePool(EfiLoaderData, sizeof(EfiMemoryDescriptor),
(VoidPtr*)&Descriptor) != kEfiOk) {
- EFI::RaiseHardError(L"__bad_alloc", L"NewBoot ran out of memory!");
+ EFI::RaiseHardError(L"Bad-Alloc", L"New Boot ran out of memory!");
}
- /****
- *
- * Get machine memory map.
- *
- */
+ HEL::HandoverInformationHeader* handoverHdrPtr = nullptr;
- while (BS->GetMemoryMap(SizePtr, Descriptor, &MapKey, &SzDesc, &RevDesc) !=
- kEfiOk)
- ;
+ for (SizeT indexVT = 0; indexVT < SystemTable->NumberOfTableEntries;
+ ++indexVT) {
+ volatile Char* vendorTable = reinterpret_cast<volatile Char*>(
+ SystemTable->ConfigurationTable[indexVT].VendorTable);
- HEL::HandoverInformationHeader* handoverHdrPtr = nullptr;
+ if (vendorTable[0] == 'R' && vendorTable[1] == 'S' &&
+ vendorTable[2] == 'D' && vendorTable[3] == ' ' &&
+ vendorTable[4] == 'P' && vendorTable[5] == 'T' &&
+ vendorTable[6] == 'R' && vendorTable[7] == ' ') {
+ handoverHdrPtr->f_HardwareTables.f_RsdPtr = (VoidPtr)vendorTable;
- BS->AllocatePool(EfiLoaderData, sizeof(HEL::HandoverInformationHeader),
- (VoidPtr*)&handoverHdrPtr);
+ break;
+ }
+ }
+
+ handoverHdrPtr->f_Magic = kHandoverMagic;
+ handoverHdrPtr->f_Version = kHandoverVersion;
+
+ BCopyMem(handoverHdrPtr->f_FirmwareVendorName, SystemTable->FirmwareVendor,
+ handoverHdrPtr->f_FirmwareVendorLen);
handoverHdrPtr->f_GOP.f_The = kGop->Mode->FrameBufferBase;
handoverHdrPtr->f_GOP.f_Width = kGop->Mode->Info->VerticalResolution;
@@ -98,58 +115,77 @@ EFI_EXTERN_C EFI_API Int EfiMain(EfiHandlePtr ImageHandle,
handoverHdrPtr->f_GOP.f_PixelFormat = kGop->Mode->Info->PixelFormat;
handoverHdrPtr->f_GOP.f_Size = kGop->Mode->FrameBufferSize;
- handoverHdrPtr->f_PhysicalStart =
- reinterpret_cast<voidPtr>(Descriptor->PhysicalStart);
- handoverHdrPtr->f_PhysicalSize = Descriptor->NumberOfPages;
+ ///! Finally draw bootloader screen.
- handoverHdrPtr->f_VirtualStart =
- reinterpret_cast<voidPtr>(Descriptor->VirtualStart);
+ auto kHandoverHeader = handoverHdrPtr;
- handoverHdrPtr->f_VirtualSize = Descriptor->NumberOfPages; /* # of pages */
+ ToolboxInitRsrc();
- handoverHdrPtr->f_FirmwareVendorLen = BStrLen(SystemTable->FirmwareVendor);
+ ToolboxDrawZone(RGB(FF, FF, FF), handoverHdrPtr->f_GOP.f_Height,
+ handoverHdrPtr->f_GOP.f_Width, 0, 0);
- BCopyMem(handoverHdrPtr->f_FirmwareVendorName, SystemTable->FirmwareVendor,
- handoverHdrPtr->f_FirmwareVendorLen);
+ ToolboxClearRsrc();
-#ifdef __DEBUG__
- writer.Write(L"NewOS: Fetching ACPI's 'RSD PTR'...").Write(L"\r\n");
-#endif
+ ToolboxDrawRsrc(Driver, DRIVER_HEIGHT, DRIVER_WIDTH,
+ (handoverHdrPtr->f_GOP.f_Width - DRIVER_HEIGHT) / 2,
+ (handoverHdrPtr->f_GOP.f_Height - DRIVER_HEIGHT) / 2);
- for (SizeT indexVT = 0; indexVT < SystemTable->NumberOfTableEntries;
- ++indexVT) {
- volatile Char* vendorTable = reinterpret_cast<volatile Char*>(
- SystemTable->ConfigurationTable[indexVT].VendorTable);
+ ToolboxClearRsrc();
- if (vendorTable[0] == 'R' && vendorTable[1] == 'S' &&
- vendorTable[2] == 'D' && vendorTable[3] == ' ' &&
- vendorTable[4] == 'P' && vendorTable[5] == 'T' &&
- vendorTable[6] == 'R' && vendorTable[7] == ' ') {
- handoverHdrPtr->f_HardwareTables.f_RsdPtr = (VoidPtr)vendorTable;
+ BS->AllocatePool(EfiLoaderData, sizeof(HEL::HandoverInformationHeader),
+ (VoidPtr*)&handoverHdrPtr);
-#ifdef __DEBUG__
- writer.Write(L"NewOS: Found ACPI's 'RSD PTR' table on this machine.")
- .Write(L"\r\n");
-#endif
+ handoverHdrPtr->f_PhysicalStart = 0;
+ handoverHdrPtr->f_PhysicalSize = 0;
- break;
- }
+ EfiPhysicalAddress* whereAddress =
+ reinterpret_cast<EfiPhysicalAddress*>(kBootVirtualAddress);
+
+ BS->AllocatePages(EfiAllocateType::AllocateAnyPages,
+ EfiMemoryType::EfiConventionalMemory, 1, whereAddress);
+
+ handoverHdrPtr->f_VirtualStart = reinterpret_cast<voidPtr>(whereAddress);
+
+ handoverHdrPtr->f_VirtualSize = Descriptor->NumberOfPages; /* # of pages */
+
+ handoverHdrPtr->f_FirmwareVendorLen = BStrLen(SystemTable->FirmwareVendor);
+
+ BFileReader reader(L"SplashScreen.fmt", ImageHandle);
+ reader.ReadAll(512, 16);
+
+ Char* buf = (Char*)reader.Blob();
+
+ for (SizeT i = 0; i < reader.Size(); ++i) {
+ if (buf[i] != '\n' && buf[i] != '\r') {
+ if (buf[i] == '*') {
+ writer.WriteCharacter('\t');
+ } else {
+ writer.WriteCharacter(buf[i]);
+ }
+ } else
+ writer.Write(L"\r\n");
}
- if (!isEpmFound) {
- writer.Write(L"NewOS: No partition found for NewOS. (HCR-1000)\r\n");
+ BFileReader kernelFile(L"NewKernel.exe", ImageHandle);
+ kernelFile.ReadAll(KIB(512), 4096);
+
+ ExecOptionalHeaderPtr headerKind = (ExecOptionalHeaderPtr)rt_find_exec_header((DosHeaderPtr)kernelFile.Blob());
+
+ if (!headerKind) {
+ EFI::RaiseHardError(L"Bad-Exec", L"New Boot can't recognize this executable.");
}
- handoverHdrPtr->f_Magic = kHandoverMagic;
- handoverHdrPtr->f_Version = kHandoverVersion;
+ BootMainKind main = (BootMainKind)nullptr;
- writer.Write(L"Running NewOS...\r\n");
+ if (!main) {
+ EFI::RaiseHardError(L"Bad-Exec", L"New Boot can't recognize this executable.");
+ }
EFI::ExitBootServices(MapKey, ImageHandle);
- /// TODO: Read catalog and read NewKernel.exe
+ main(handoverHdrPtr);
EFI::Stop();
- return kEfiFail;
+ CANT_REACH();
}
diff --git a/Private/NewBoot/Source/HEL/AMD64/BootPlatform.cxx b/Private/NewBoot/Source/HEL/AMD64/BootPlatform.cxx
index 00f7bdd8..d0da09b7 100644
--- a/Private/NewBoot/Source/HEL/AMD64/BootPlatform.cxx
+++ b/Private/NewBoot/Source/HEL/AMD64/BootPlatform.cxx
@@ -15,3 +15,36 @@ 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 Out8(UInt16 port, UInt8 value) {
+ asm volatile("outb %%al, %1" : : "a"(value), "Nd"(port) : "memory");
+}
+
+EXTERN_C void Out16(UInt16 port, UInt16 value) {
+ asm volatile("outw %%ax, %1" : : "a"(value), "Nd"(port) : "memory");
+}
+
+EXTERN_C void Out32(UInt16 port, UInt32 value) {
+ asm volatile("outl %%eax, %1" : : "a"(value), "Nd"(port) : "memory");
+}
+
+EXTERN_C UInt8 In8(UInt16 port) {
+ UInt8 value;
+ asm volatile("inb %1, %%al" : "=a"(value) : "Nd"(port) : "memory");
+
+ return value;
+}
+
+EXTERN_C UInt16 In16(UInt16 port) {
+ UInt16 value;
+ asm volatile("inw %%dx, %%ax" : "=a"(value) : "d"(port));
+
+ return value;
+}
+
+EXTERN_C UInt32 In32(UInt16 port) {
+ UInt32 value;
+ asm volatile("inl %1, %%eax" : "=a"(value) : "Nd"(port) : "memory");
+
+ return value;
+}
diff --git a/Private/NewBoot/Source/HEL/AMD64/BootTextWriter.cxx b/Private/NewBoot/Source/HEL/AMD64/BootTextWriter.cxx
index 7ccc37aa..2ebde023 100644
--- a/Private/NewBoot/Source/HEL/AMD64/BootTextWriter.cxx
+++ b/Private/NewBoot/Source/HEL/AMD64/BootTextWriter.cxx
@@ -21,23 +21,27 @@
@brief puts wrapper over EFI ConOut.
*/
BTextWriter &BTextWriter::Write(const CharacterTypeUTF16 *str) {
- if (*str == 0 || !str) return *this;
+#ifdef __DEBUG__
+ if (!str || *str == 0) return *this;
ST->ConOut->OutputString(ST->ConOut, str);
+#endif // ifdef __DEBUG__
return *this;
}
BTextWriter &BTextWriter::Write(const UChar *str) {
- if (*str == 0 || !str) return *this;
+#ifdef __DEBUG__
+ if (!str || *str == 0) return *this;
CharacterTypeUTF16 strTmp[2];
strTmp[1] = 0;
-
+
for (size_t i = 0; str[i] != 0; i++) {
strTmp[0] = str[i];
ST->ConOut->OutputString(ST->ConOut, strTmp);
}
+#endif // ifdef __DEBUG__
return *this;
}
@@ -46,22 +50,29 @@ BTextWriter &BTextWriter::Write(const UChar *str) {
@brief putc wrapper over EFI ConOut.
*/
BTextWriter &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;
}
BTextWriter &BTextWriter::Write(const Long &x) {
+#ifdef __DEBUG__
this->Write(L"0x");
this->_Write(x);
+#endif // ifdef __DEBUG__
+
return *this;
}
BTextWriter &BTextWriter::_Write(const Long &x) {
+#ifdef __DEBUG__
int y = x / 16;
int h = x % 16;
@@ -78,5 +89,7 @@ BTextWriter &BTextWriter::_Write(const Long &x) {
const char NUMBERS[17] = "0123456789ABCDEF";
this->WriteCharacter(NUMBERS[h]);
+#endif // ifdef __DEBUG__
+
return *this;
}
diff --git a/Private/Servers/.gitkeep b/Private/NewBoot/Source/HEL/POWER/.gitkeep
index e69de29b..e69de29b 100644
--- a/Private/Servers/.gitkeep
+++ b/Private/NewBoot/Source/HEL/POWER/.gitkeep
diff --git a/Private/NewBoot/Source/HEL/POWER/BootCoreBoot.S b/Private/NewBoot/Source/HEL/POWER/BootCoreBoot.S
new file mode 100644
index 00000000..c611467d
--- /dev/null
+++ b/Private/NewBoot/Source/HEL/POWER/BootCoreBoot.S
@@ -0,0 +1,34 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+------------------------------------------- */
+
+.section .boot_hdr
+.align 4
+
+/* NewBoot boot header begin */
+
+boot_hdr_mag:
+ .ascii "LX"
+boot_hdr_name:
+ // it has to match ten bytes.
+ .asciz "NewBoot\0\0\0"
+boot_hdr_ver:
+ .word 0x104
+boot_hdr_proc:
+ .long bootloader_start
+
+/* NewOS 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/Private/NewBoot/Source/HEL/PowerPC/BootEPM.cxx b/Private/NewBoot/Source/HEL/POWER/BootEPM.cxx
index f088d73c..72276ef9 100644
--- a/Private/NewBoot/Source/HEL/PowerPC/BootEPM.cxx
+++ b/Private/NewBoot/Source/HEL/POWER/BootEPM.cxx
@@ -21,7 +21,7 @@ STATIC const BlockGUID kEPMGuid = {
/// @param namePart partition name
/// @param namePartLength length of name
/// @param bootDev disk interface.
-/// @return
+/// @return
EXTERN_C Boolean boot_write_epm_partition(const Char* namePart, SizeT namePartLength,
BootDevice* bootDev) {
if (namePartLength > kEPMNameLength || !namePart) return No;
@@ -36,11 +36,11 @@ EXTERN_C Boolean boot_write_epm_partition(const Char* namePart, SizeT namePartLe
BTextWriter writer;
- writer.Write(L"NewOS: Checking for a EPM partition...\r\n");
+ writer.Write(L"NewBoot: Checking for an EPM partition...\r\n");
for (SizeT index = 0; index < kEPMMagicLength; ++index) {
if (buf[index] != kEPMMagic[index]) {
- writer.Write(L"NewOS: Writing a EPM partition...\r\n");
+ writer.Write(L"NewBoot: Writing an EPM partition...\r\n");
BootBlockType* bootBlock = (BootBlockType*)buf;
@@ -113,6 +113,6 @@ EXTERN_C Boolean boot_write_epm_partition(const Char* namePart, SizeT namePartLe
}
}
- writer.Write(L"NewOS: Partition found, everything's OK.\r\n");
+ writer.Write(L"NewBoot: Partition found, everything's OK.\r\n");
return Yes;
-} \ No newline at end of file
+}
diff --git a/Private/NewBoot/Source/HEL/PowerPC/BootPowerPC.S b/Private/NewBoot/Source/HEL/PowerPC/BootPowerPC.S
deleted file mode 100644
index 0b3cd493..00000000
--- a/Private/NewBoot/Source/HEL/PowerPC/BootPowerPC.S
+++ /dev/null
@@ -1,22 +0,0 @@
-/* -------------------------------------------
-
- Copyright Mahrouss Logic
-
-------------------------------------------- */
-
-.section .init
-.align 4
-
-/* NewOS kernel header begin */
-
-boot_hdr_mag:
- .ascii "LX"
-boot_hdr_name:
- // it has to match ten bytes.
- .asciz "NewBoot\0\0\0"
-boot_hdr_ver:
- .word 0x104
-boot_hdr_proc:
- .long bootloader_start
-
-/* NewOS kernel header end */ \ No newline at end of file
diff --git a/Private/NewBoot/Source/makefile b/Private/NewBoot/Source/makefile
index 4016e3a8..197eb91b 100644
--- a/Private/NewBoot/Source/makefile
+++ b/Private/NewBoot/Source/makefile
@@ -1,5 +1,5 @@
##################################################
-# (C) Mahrouss Logic, all rights reserved.
+# (C) Mahrouss Logic, all rights reserved.
# This is the bootloader makefile.
##################################################
@@ -20,12 +20,11 @@ endif
IMG=epm.img
IMG_2=epm-slave.img
-EMU_FLAGS=-net none -smp 4 -m 4G -M q35 -bios OVMF.fd -device piix3-ide,id=ide -drive id=disk,file=$(IMG),format=raw,if=none -device ide-hd,drive=disk,bus=ide.0 -drive file=fat:rw:CDROM,index=2,format=raw -d int -hdd epm-slave.img
+EMU_FLAGS=-net none -smp 4 -m 8G -M q35 -bios OVMF.fd -device piix3-ide,id=ide -drive id=disk,file=$(IMG),format=raw,if=none -device ide-hd,drive=disk,bus=ide.0 -drive file=fat:rw:CDROM,index=2,format=raw -d int -hdd epm-slave.img
-LD_FLAGS=-e efi_main --subsystem=10
-
-OBJ=$(wildcard *.o) $(wildcard HEL/AMD64/*.obj)
+LD_FLAGS=-e Main --subsystem=10
+OBJ=*.o
REM=rm
REM_FLAG=-f
@@ -35,14 +34,25 @@ FLAG_GNU=-fshort-wchar -D__EFI_x86_64__ -mgeneral-regs-only -mno-red-zone -D__KE
.PHONY: invalid-recipe
invalid-recipe:
- @echo "invalid-recipe: Use make bootloader-<arch> all instead."
+ @echo "invalid-recipe: Use make bootloader-<arch> instead."
+
+KERNEL_OBJ=kernel.bin
+DD=dd
+IMG_CREATE=qemu-img
+MAX_KERNEL_SIZE=1024K
+BOOT_LOADER=NewBoot.exe
+KERNEL=NewKernel.exe
.PHONY: all
all: compile-amd64
- $(LD_GNU) $(OBJ) $(LD_FLAGS) -o NewBoot.exe
- $(COPY) NewBoot.exe CDROM/EFI/BOOT/BOOTX64.EFI
- $(COPY) NewBoot.exe CDROM/EFI/BOOT/NEWBOOT.EFI
- $(COPY) NewBoot.exe ../../Root/Boot/NewBoot.exe
+ mkdir -p CDROM/EFI/BOOT
+ $(LD_GNU) $(OBJ) $(LD_FLAGS) -o $(KERNEL_OBJ)
+ $(IMG_CREATE) create -f raw $(BOOT_LOADER) $(MAX_KERNEL_SIZE)
+ $(DD) if=$(KERNEL_OBJ) of=$(BOOT_LOADER) bs=1 seek=0 conv=notrunc
+ $(COPY) $(BOOT_LOADER) CDROM/EFI/BOOT/BOOTX64.EFI
+ $(COPY) $(BOOT_LOADER) CDROM/EFI/BOOT/NEWBOOT.EFI
+ $(COPY) $(BOOT_LOADER) ../../Root/Boot/$(BOOT_LOADER)
+ $(COPY) ../../$(KERNEL) CDROM/$(KERNEL)
ifneq ($(DEBUG_SUPPORT), )
DEBUG = -D__DEBUG__
@@ -68,12 +78,13 @@ download-edk:
.PHONY: clean
clean:
- $(REM) $(REM_FLAG) $(OBJ) NewBoot.exe NewKernel.exe OVMF.fd
+ $(REM) $(REM_FLAG) $(OBJ) NewBoot.exe NewKernel.exe OVMF.fd $(IMG) $(IMG_2)
.PHONY: help
help:
@echo "=== HELP ==="
- @echo "epm-img: Format a disk using the Explicit Partition Map/GPT."
+ @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/Private/NewKit/Application.hxx b/Private/NewKit/Application.hxx
index f19dbd97..15ffd073 100644
--- a/Private/NewKit/Application.hxx
+++ b/Private/NewKit/Application.hxx
@@ -7,7 +7,7 @@
#pragma once
///
-/// @brief Main application object, given by the OS to interact with the OS.
+/// @brief Application object, given by the OS to the process. interact with the OS.
/// @file Application.hxx
/// @author Amlal EL Mahrouss
///
@@ -17,14 +17,14 @@
/// \brief Application Interface.
/// \author Amlal El Mahrouss
-typedef struct Application final {
+typedef struct _Application final {
/// @brief Releases the object exit the process on main object.
- NewOS::Void(*Release)(struct Application* Self, NewOS::Int32 ExitCode);
+ NewOS::Void(*Release)(struct _Application* Self, NewOS::Int32 ExitCode);
/// @brief Invoke a function from the application object.
- NewOS::IntPtr(*Invoke)(struct Application* Self, NewOS::Int32 Sel, ...);
+ NewOS::IntPtr(*Invoke)(struct _Application* Self, NewOS::Int32 Sel, ...);
/// @brief Query a new application object from a GUID.
/// @note this doesn't query a process, it query a registered object withtin that app.
- NewOS::Void(*Query)(struct Application* Self, NewOS::VoidPtr* Dst, NewOS::SizeT SzDst, NewOS::XRN::GUIDSequence GuidOf);
+ NewOS::Void(*Query)(struct _Application* Self, NewOS::VoidPtr* Dst, NewOS::SizeT SzDst, NewOS::XRN::GUIDSequence GuidOf);
} Application, *ApplicationRef;
#define app_cast reinterpret_cast<ApplicationRef>
diff --git a/Private/Root/Boot/Icons/bonjour-logo.ico b/Private/Root/Boot/Icons/bonjour-logo.ico
new file mode 100644
index 00000000..568de302
--- /dev/null
+++ b/Private/Root/Boot/Icons/bonjour-logo.ico
Binary files differ
diff --git a/Private/Root/Boot/Icons/boot-logo.ico b/Private/Root/Boot/Icons/boot-logo.ico
new file mode 100644
index 00000000..a7edcfe8
--- /dev/null
+++ b/Private/Root/Boot/Icons/boot-logo.ico
Binary files differ
diff --git a/Private/Root/Boot/Icons/driver-logo.ico b/Private/Root/Boot/Icons/driver-logo.ico
new file mode 100644
index 00000000..dbdcdee1
--- /dev/null
+++ b/Private/Root/Boot/Icons/driver-logo.ico
Binary files differ
diff --git a/Private/Root/Boot/Icons/kernel-logo.ico b/Private/Root/Boot/Icons/kernel-logo.ico
new file mode 100644
index 00000000..00724f48
--- /dev/null
+++ b/Private/Root/Boot/Icons/kernel-logo.ico
Binary files differ
diff --git a/Private/Root/Boot/Icons/settings-icon.ico b/Private/Root/Boot/Icons/settings-icon.ico
new file mode 100644
index 00000000..4fd36645
--- /dev/null
+++ b/Private/Root/Boot/Icons/settings-icon.ico
Binary files differ
diff --git a/Private/Root/Boot/Icons/update-logo.ico b/Private/Root/Boot/Icons/update-logo.ico
new file mode 100644
index 00000000..3423d76a
--- /dev/null
+++ b/Private/Root/Boot/Icons/update-logo.ico
Binary files differ
diff --git a/Private/Root/Boot/boot-logo.ico b/Private/Root/Boot/boot-logo.ico
deleted file mode 100644
index a9c250ed..00000000
--- a/Private/Root/Boot/boot-logo.ico
+++ /dev/null
Binary files differ
diff --git a/Private/Root/Boot/kernel-logo.ico b/Private/Root/Boot/kernel-logo.ico
deleted file mode 100644
index d5ea0310..00000000
--- a/Private/Root/Boot/kernel-logo.ico
+++ /dev/null
Binary files differ
diff --git a/Private/Servers/CoreDisplay/Headers/.gitkeep b/Private/Root/Users/Shared/.gitkeep
index e69de29b..e69de29b 100644
--- a/Private/Servers/CoreDisplay/Headers/.gitkeep
+++ b/Private/Root/Users/Shared/.gitkeep
diff --git a/Private/Root/Users/User.script b/Private/Root/Users/User.script
deleted file mode 100644
index 09cecb8b..00000000
--- a/Private/Root/Users/User.script
+++ /dev/null
@@ -1,3 +0,0 @@
-# User script
-
-Guest: true;
diff --git a/Private/Servers/CoreDisplay/README.txt b/Private/Servers/CoreDisplay/README.txt
deleted file mode 100644
index 669ec31c..00000000
--- a/Private/Servers/CoreDisplay/README.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-CoreDisplay is the window manager of NewOS.
-Written in C by Amlal EL Mahrouss.
-
-Unlike X it is not networked, but can be extend to with NetworkDisplay.
diff --git a/Private/Servers/CoreDisplay/Sources/CDBitBlt.c b/Private/Servers/CoreDisplay/Sources/CDBitBlt.c
deleted file mode 100644
index 91e5342f..00000000
--- a/Private/Servers/CoreDisplay/Sources/CDBitBlt.c
+++ /dev/null
@@ -1,11 +0,0 @@
-/* -------------------------------------------
-
- Copyright Mahrouss Logic
-
- File: CDBitBlt.c
- Purpose: Userbuffer to Framebuffer magic.
-
-------------------------------------------- */
-
-#include <CDBitBlt.h>
-
diff --git a/Private/Servers/CoreDisplay/Sources/CDServerStartup.c b/Private/Servers/CoreDisplay/Sources/CDServerStartup.c
deleted file mode 100644
index 7293b720..00000000
--- a/Private/Servers/CoreDisplay/Sources/CDServerStartup.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* -------------------------------------------
-
- Copyright Mahrouss Logic
-
- File: CDServerStartup.c
- Purpose: Server entrypoint.
-
-------------------------------------------- */
-
-#include <CDServerStartup.h>
-#include <IPC.h>
-
-/// @brief Called when the server starts.
-int ServerStartup(void)
-{
- return 0;
-}
-
-/// @brief Called when the server shuts down.
-int ServerShutdown(void)
-{
- return 0;
-}
-
-/// EOF.
diff --git a/Private/Source/RuntimeMain.cxx b/Private/Source/AppMain.cxx
index 5bbee3b2..87705393 100644
--- a/Private/Source/RuntimeMain.cxx
+++ b/Private/Source/AppMain.cxx
@@ -5,7 +5,6 @@
------------------------------------------- */
#include <ArchKit/ArchKit.hpp>
-#include <Builtins/Toolbox/Rsrc/Splash.rsrc>
#include <Builtins/Toolbox/Toolbox.hxx>
#include <FirmwareKit/Handover.hxx>
#include <KernelKit/FileManager.hpp>
@@ -18,15 +17,15 @@
/// @file Main microkernel entrypoint.
-EXTERN_C void RuntimeMain(void) {
+EXTERN_C NewOS::Void AppMain(NewOS::Void) {
///! Mounts a NewFS block.
NewOS::NewFilesystemManager* newFS = new NewOS::NewFilesystemManager();
NewOS::ke_protect_ke_heap(newFS);
NewOS::FilesystemManagerInterface::Mount(newFS);
-
+
while (NewOS::ProcessScheduler::Shared().Leak().Run() > 0);
///! we're done, unmount.
delete newFS;
-} \ No newline at end of file
+}
diff --git a/Private/Source/CxxAbi.cxx b/Private/Source/CxxAbi.cxx
index d79d688c..452c4383 100644
--- a/Private/Source/CxxAbi.cxx
+++ b/Private/Source/CxxAbi.cxx
@@ -13,7 +13,7 @@ atexit_func_entry_t __atexit_funcs[kDSOMaxObjects];
uarch_t __atexit_func_count;
extern "C" void __cxa_pure_virtual() {
- NewOS::kcout << "NewOS: C++ placeholder method.\n";
+ NewOS::kcout << "New OS: C++ placeholder method.\n";
}
extern "C" void ___chkstk_ms() {
diff --git a/Private/Source/FS/NewFS.cxx b/Private/Source/FS/NewFS.cxx
index 1d7d3621..7eb79d10 100644
--- a/Private/Source/FS/NewFS.cxx
+++ b/Private/Source/FS/NewFS.cxx
@@ -7,13 +7,16 @@
#ifdef __FSKIT_NEWFS__
#include <FSKit/NewFS.hxx>
+#include <KernelKit/HError.hpp>
+#include <NewKit/Crc32.hpp>
#include <NewKit/Utils.hpp>
using namespace NewOS;
-STATIC Lba ke_find_free_fork(SizeT sz);
-STATIC Lba ke_find_free_catalog(SizeT sz);
-STATIC Lba ke_find_free_data(SizeT sz);
+/// forward decl.
+
+STATIC Lba ke_find_free_fork(SizeT sz, Int32 drv, NewCatalog* catalog);
+STATIC Lba ke_find_free_catalog(SizeT kind, Int32 drv);
STATIC MountpointInterface sMountpointInterface;
@@ -26,7 +29,8 @@ _Output NewFork* NewFSParser::CreateFork(_Input NewCatalog* catalog,
if (catalog && theFork.Name[0] != 0 && theFork.DataSize > 0) {
Lba whereFork = 0;
- theFork.DataOffset = ke_find_free_fork(theFork.DataSize);
+ theFork.DataOffset =
+ ke_find_free_fork(theFork.DataSize, this->fDriveIndex, catalog);
theFork.Flags |= kNewFSFlagCreated;
if (catalog->FirstFork == 0) {
@@ -161,7 +165,55 @@ bool NewFSParser::Format(_Input _Output DriveTrait* drive) {
return false;
}
- return true;
+ Char sectorBuf[kNewFSMinimumSectorSz] = {0};
+
+ drive->fPacket.fPacketContent = sectorBuf;
+ drive->fPacket.fPacketSize = kNewFSMinimumSectorSz;
+ drive->fPacket.fLba = kNewFSAddressAsLba;
+
+ drive->fInput(&drive->fPacket);
+
+ /// disk isnt faulty and data has been fetched.
+ if (drive->fPacket.fPacketGood) {
+ NewPartitionBlock* partBlock = (NewPartitionBlock*)sectorBuf;
+
+ /// check for an empty partition here.
+ if (partBlock->PartitionName[0] == 0 &&
+ rt_string_cmp(partBlock->Ident, kNewFSIdent, kNewFSIdentLen)) {
+ /// partition is free and valid.
+
+ rt_copy_memory((VoidPtr)kNewFSIdent, (VoidPtr)partBlock->Ident,
+ kNewFSIdentLen);
+ rt_copy_memory((VoidPtr) "New OS\0", (VoidPtr)partBlock->PartitionName,
+ rt_string_len("New OS\0"));
+
+ SizeT catalogCount = 0;
+ SizeT sectorCount = 0;
+ SizeT diskSize = 0;
+
+ partBlock->Kind = kNewFSPartitionTypeStandard;
+ partBlock->StartCatalog = sizeof(NewPartitionBlock) + kNewFSAddressAsLba;
+ partBlock->CatalogCount = catalogCount;
+ partBlock->SectorCount = sectorCount;
+ partBlock->DiskSize = diskSize;
+ partBlock->FreeCatalog = partBlock->StartCatalog;
+
+ drive->fPacket.fPacketContent = sectorBuf;
+ drive->fPacket.fPacketSize = kNewFSMinimumSectorSz;
+ drive->fPacket.fLba = kNewFSAddressAsLba;
+
+ drive->fOutput(&drive->fPacket);
+
+ return true;
+ }
+
+ kcout << "New OS: Partition already exists.\r\n";
+
+ /// return success as well, do not ignore that partition.
+ return true;
+ }
+
+ return false;
}
/// @brief
@@ -173,73 +225,186 @@ bool NewFSParser::WriteCatalog(_Input _Output NewCatalog* catalog,
return false;
}
-/// @brief
-/// @param catalogName
-/// @return
+/// @brief
+/// @param catalogName
+/// @return
_Output NewCatalog* NewFSParser::FindCatalog(_Input const char* catalogName) {
return nullptr;
}
-/// @brief
-/// @param name
-/// @return
+/// @brief
+/// @param name
+/// @return
_Output NewCatalog* NewFSParser::GetCatalog(_Input const char* name) {
return nullptr;
}
-/// @brief
-/// @param catalog
-/// @return
+/// @brief
+/// @param catalog
+/// @return
Boolean NewFSParser::CloseCatalog(_Input _Output NewCatalog* catalog) {
- return false;
+ return true;
}
-/// @brief
-/// @param catalog
-/// @return
+/// @brief Mark catalog as removed.
+/// @param catalog The catalog structure.
+/// @return
Boolean NewFSParser::RemoveCatalog(_Input _Output NewCatalog* catalog) {
+ catalog->Flags |= kNewFSFlagDeleted;
+ this->WriteCatalog(catalog, nullptr);
+
return false;
}
-/// @brief
-/// @param catalog
-/// @param dataSz
-/// @return
+/// ***************************************************************** ///
+/// Reading,Seek,Tell are unimplemented on catalogs, refer to forks I/O instead.
+/// ***************************************************************** ///
+
+/// @brief
+/// @param catalog
+/// @param dataSz
+/// @return
VoidPtr NewFSParser::ReadCatalog(_Input _Output NewCatalog* catalog,
SizeT dataSz) {
return nullptr;
}
-/// @brief
-/// @param catalog
-/// @param off
-/// @return
+/// @brief
+/// @param catalog
+/// @param off
+/// @return
bool NewFSParser::Seek(_Input _Output NewCatalog* catalog, SizeT off) {
return false;
}
-/// @brief
-/// @param catalog
-/// @return
+/// @brief
+/// @param catalog
+/// @return
SizeT NewFSParser::Tell(_Input _Output NewCatalog* catalog) { return 0; }
-/// @brief
-/// @param sz
-/// @return
-STATIC Lba ke_find_free_fork(SizeT sz) { return 0; }
+/// @brief Find a free fork inside the filesystem.
+/// @param sz the size of the fork to set.
+/// @return the valid lba.
+STATIC Lba ke_find_free_fork(SizeT sz, Int32 drv, NewCatalog* catalog) {
+ auto drive = *sMountpointInterface.GetAddressOf(drv);
-/// @brief
-/// @param sz
-/// @return
-STATIC Lba ke_find_free_catalog(SizeT sz) { return 0; }
+ if (drive) {
+ /// prepare packet.
+ bool done = false;
+ bool error = false;
-/// @brief
-/// @param sz
-/// @return
-STATIC Lba ke_find_free_data(SizeT sz) { return 0; }
+ Lba lba = catalog->LastFork;
+
+ while (!done) {
+ Char sectorBuf[kNewFSMinimumSectorSz] = {0};
+
+ drive->fPacket.fPacketContent = sectorBuf;
+ drive->fPacket.fPacketSize = kNewFSMinimumSectorSz;
+ drive->fPacket.fLba = lba;
+
+ drive->fInput(&drive->fPacket);
+
+ if (!drive->fPacket.fPacketGood) {
+ ///! not a lot of choices, disk has become unreliable.
+ if (ke_calculate_crc32(sectorBuf, kNewFSMinimumSectorSz) !=
+ drive->fPacket.fPacketCRC32) {
+ DbgLastError() = kErrorDiskIsCorrupted;
+ }
+
+ error = true;
+ break;
+ }
+
+ NewFork* fork = (NewFork*)sectorBuf;
+
+ if (fork->DataSize == 0 && fork->Name[0] == 0 &&
+ (fork->Flags == kNewFSFlagDeleted ||
+ fork->Flags == kNewFSFlagUnallocated)) {
+ fork->DataSize = sz;
+ fork->Flags |= kNewFSFlagCreated;
+
+ drive->fOutput(&drive->fPacket);
+
+ /// here it's either a read-only filesystem or something bad happened.'
+ if (!drive->fPacket.fPacketGood) {
+ DbgLastError() = kErrorDiskReadOnly;
+
+ return 0;
+ }
+
+ return lba;
+ }
+
+ lba += sizeof(NewFork);
+ }
+
+ if (error) {
+ DbgLastError() = kErrorDisk;
+ return 0;
+ }
+ }
+
+ return 0;
+}
+
+/// @brief find a free catalog.
+/// @param kind the catalog kind.
+/// @return the valid lba.
+STATIC Lba ke_find_free_catalog(SizeT kind, Int32 drv) {
+ auto drive = *sMountpointInterface.GetAddressOf(drv);
+
+ if (drive) {
+ Char sectorBuf[kNewFSMinimumSectorSz] = {0};
+
+ /// prepare packet.
+
+ drive->fPacket.fPacketContent = sectorBuf;
+ drive->fPacket.fPacketSize = kNewFSMinimumSectorSz;
+ drive->fPacket.fLba = kNewFSAddressAsLba;
+
+ drive->fInput(&drive->fPacket);
+
+ NewPartitionBlock* partBlock = (NewPartitionBlock*)sectorBuf;
+
+ /// check for a valid partition.
+ if (partBlock->PartitionName[0] != 0 &&
+ rt_string_cmp(partBlock->Ident, kNewFSIdent, kNewFSIdentLen) == 0) {
+ auto startLba = partBlock->FreeCatalog;
+
+ if (startLba == 0) {
+ DbgLastError() = kErrorDiskIsFull;
+ return 1;
+ } else {
+ while (startLba != 0) {
+ drive->fPacket.fPacketContent = sectorBuf;
+ drive->fPacket.fPacketSize = kNewFSMinimumSectorSz;
+ drive->fPacket.fLba = startLba;
+
+ drive->fInput(&drive->fPacket);
+
+ NewCatalog* catalog = (NewCatalog*)sectorBuf;
+
+ if (catalog->Flags == kNewFSFlagUnallocated ||
+ catalog->Flags == kNewFSFlagDeleted) {
+ catalog->Flags |= kNewFSFlagCreated;
+ catalog->Kind |= kind;
+
+ return startLba;
+ }
+
+ startLba = catalog->NextSibling;
+ }
+
+ return 0;
+ }
+ }
+ }
+
+ return 0;
+}
namespace NewOS::Detail {
-Boolean fs_init_newfs(Void) noexcept { return false; }
+Boolean fs_init_newfs(Void) noexcept { return true; }
} // namespace NewOS::Detail
-#endif // ifdef __FSKIT_NEWFS__ \ No newline at end of file
+#endif // ifdef __FSKIT_NEWFS__
diff --git a/Private/Source/IndexableProperty.cxx b/Private/Source/IndexableProperty.cxx
index c3978fe9..dba56c74 100644
--- a/Private/Source/IndexableProperty.cxx
+++ b/Private/Source/IndexableProperty.cxx
@@ -34,7 +34,7 @@ Void fs_index_file(const Char* filename, SizeT filenameLen, IndexableProperty& i
indexer.AddFlag(kIndexerClaimed);
rt_copy_memory((VoidPtr)indexer.LeakProperty().Path, (VoidPtr)filename, filenameLen);
- kcout << "NewOS: FSKit: index new file: " << filename << endl;
+ kcout << "New OS: FSKit: index new file: " << filename << endl;
}
}
} // namespace Indexer
diff --git a/Private/Source/KernelHeap.cxx b/Private/Source/KernelHeap.cxx
index 72d291a8..3b77ebb6 100644
--- a/Private/Source/KernelHeap.cxx
+++ b/Private/Source/KernelHeap.cxx
@@ -97,7 +97,7 @@ Int32 ke_delete_ke_heap(VoidPtr heapPtr) {
PTEWrapper pageWrapper(false, false, false, (UIntPtr)virtualAddress);
Ref<PTEWrapper*> pteAddress{ &pageWrapper };
-
+
kHeapPageManager.Free(pteAddress);
--kHeapCount;
@@ -126,7 +126,7 @@ Boolean ke_is_valid_heap(VoidPtr heapPtr) {
return false;
}
-/// @brief Protect the heap pointer with a CRC32.
+/// @brief Protect the heap with a CRC value.
/// @param heapPtr HIB pointer.
/// @return if it valid: point has crc now., otherwise fail.
Boolean ke_protect_ke_heap(VoidPtr heapPtr) {
diff --git a/Private/Source/PEFCodeManager.cxx b/Private/Source/PEFCodeManager.cxx
index f8616a8c..2f60f085 100644
--- a/Private/Source/PEFCodeManager.cxx
+++ b/Private/Source/PEFCodeManager.cxx
@@ -17,6 +17,7 @@
namespace NewOS {
namespace Detail {
+/// @brief Get the PEF platform signature according to the compiled backebnd
UInt32 rt_get_pef_platform(void) noexcept {
#ifdef __32x0__
return kPefArch32x0;
@@ -33,7 +34,7 @@ UInt32 rt_get_pef_platform(void) noexcept {
} // namespace Detail
/// @brief PEF loader constructor w/ blob.
-/// @param blob
+/// @param blob
PEFLoader::PEFLoader(const VoidPtr blob) : fCachedBlob(nullptr) {
fCachedBlob = blob;
fBad = false;
@@ -42,11 +43,11 @@ PEFLoader::PEFLoader(const VoidPtr blob) : fCachedBlob(nullptr) {
}
/// @brief PEF loader constructor.
-/// @param path
-PEFLoader::PEFLoader(const char *path) : fCachedBlob(nullptr), fBad(false) {
- OwnPtr<FileStream<char>> file;
+/// @param path the filesystem path.
+PEFLoader::PEFLoader(const Char* path) : fCachedBlob(nullptr), fBad(false) {
+ OwnPtr<FileStream<Char>> file;
- file.New(const_cast<Char *>(path), kRestrictRB);
+ file.New(const_cast<Char*>(path), kRestrictRB);
if (StringBuilder::Equals(file->MIME(), this->MIME())) {
fPath = StringBuilder::Construct(path).Leak();
@@ -131,7 +132,7 @@ VoidPtr PEFLoader::FindSymbol(const char *name, Int32 kind) {
}
/// @brief Finds the executable entrypoint.
-/// @return
+/// @return
ErrorOr<VoidPtr> PEFLoader::FindStart() {
if (auto sym = this->FindSymbol(kPefStart, kPefCode); sym)
return ErrorOr<VoidPtr>(sym);
@@ -140,7 +141,7 @@ ErrorOr<VoidPtr> PEFLoader::FindStart() {
}
/// @brief Tells if the executable is loaded or not.
-/// @return
+/// @return
bool PEFLoader::IsLoaded() noexcept { return !fBad && fCachedBlob; }
#define kPefAppnameCommandHdr "PefAppName"
diff --git a/Private/Source/ThreadLocalStorage.cxx b/Private/Source/ThreadLocalStorage.cxx
index d3e31a1c..8d3281e3 100644
--- a/Private/Source/ThreadLocalStorage.cxx
+++ b/Private/Source/ThreadLocalStorage.cxx
@@ -31,7 +31,7 @@ Boolean tls_check_tib(ThreadInformationBlock* tib) {
Encoder encoder;
const char* tibAsBytes = encoder.AsBytes(tib);
- kcout << "NewOS: Checking for a valid cookie...\r\n";
+ kcout << "New OS: Checking for a valid cookie...\r\n";
return tibAsBytes[0] == kCookieMag0 && tibAsBytes[1] == kCookieMag1 &&
tibAsBytes[2] == kCookieMag2;
@@ -46,9 +46,9 @@ EXTERN_C Void tls_check_syscall_impl(NewOS::HAL::StackFramePtr stackPtr) noexcep
ThreadInformationBlock* tib = (ThreadInformationBlock*)stackPtr->Gs;
if (!tls_check_tib(tib)) {
- kcout << "NewOS: Verification failed, Crashing...\r\n";
+ kcout << "New OS: Verification failed, Crashing...\r\n";
ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
}
- kcout << "NewOS: Verification succeeded! Keeping on...\r\n";
+ kcout << "New OS: Verification succeeded! Keeping on...\r\n";
}
diff --git a/Private/Source/URL.cxx b/Private/Source/URL.cxx
index 090c7c66..4983a34c 100644
--- a/Private/Source/URL.cxx
+++ b/Private/Source/URL.cxx
@@ -15,12 +15,15 @@ URL::URL(StringView &strUrl) : fUrlView(strUrl, false) {}
URL::~URL() = default;
+/// @brief internal and reserved protocols by kernel.
constexpr const char *kURLProtocols[] = {
"file", // Filesystem protocol
+ "mup", // Mahrouss update protocol
+ "param", // Mahrouss parameter protocol.
};
constexpr const int kUrlOutSz = 1; //! such as: ://
-constexpr const int kProtosCount = 4;
+constexpr const int kProtosCount = 3;
constexpr const int kRangeSz = 4096;
ErrorOr<StringView> url_extract_location(const char *url) {
diff --git a/Private/makefile b/Private/makefile
index 412739ca..128ccc55 100644
--- a/Private/makefile
+++ b/Private/makefile
@@ -1,33 +1,35 @@
##################################################
-# (C) Mahrouss Logic, all rights reserved.
+# (C) Mahrouss Logic, all rights reserved.
# This is the microkernel makefile.
##################################################
CC = x86_64-w64-mingw32-gcc
LD = x86_64-w64-mingw32-ld
-CCFLAGS = -c -ffreestanding -D__NEWOS_AMD64__ -mgeneral-regs-only -mno-red-zone -fno-rtti -fno-exceptions -std=c++20 -D__FSKIT_NEWFS__ -D__KERNEL__ -D__HAVE_MAHROUSS_APIS__ -D__MAHROUSS__ -I../ -I./
+CCFLAGS = -c -ffreestanding -D__NEWOS_AMD64__ -mgeneral-regs-only -mno-red-zone -fno-rtti -fno-exceptions -std=c++20 -D__FSKIT_NEWFS__ -D__KERNEL__ -D__HAVE_MAHROUSS_APIS__ -D__MAHROUSS__ -I../ -I./
ASM = nasm
ifneq ($(ATA_PIO_SUPPORT), )
-DISKDRIVER = -D__ATA_PIO__
+DISKDRIVER = -D__ATA_PIO__
endif
ifneq ($(ATA_DMA_SUPPORT), )
-DISKDRIVER = -D__ATA_DMA__
+DISKDRIVER = -D__ATA_DMA__
endif
ifneq ($(AHCI_SUPPORT), )
-DISKDRIVER = -D__AHCI__
+DISKDRIVER = -D__AHCI__
endif
ifneq ($(DEBUG_SUPPORT), )
-DEBUG = -D__DEBUG__
+DEBUG = -D__DEBUG__
endif
+COPY = cp
+
# Add assembler, linker, and object files variables.
ASMFLAGS = -f win64
LDFLAGS = -e Main --subsystem=17
-LDOBJ = $(wildcard Objects/*.obj)
+LDOBJ = Objects/*.obj
# This file is the kernel, responsible of task management, memory, drivers and more.
KERNEL = NewKernel.exe
@@ -37,7 +39,7 @@ SCRIPT = --script=Linker/Platforms/PC.lds
.PHONY: error
error:
- @echo "Use a specific target."
+ @echo "=> Use a specific target."
MOVEALL=./MoveAll.sh
WINDRES=x86_64-w64-mingw32-windres
@@ -52,12 +54,19 @@ newos-amd64-epm: clean
$(ASM) $(ASMFLAGS) HALKit/AMD64/HalInstallTIB.asm
$(MOVEALL)
-OBJCOPY=x86_64-w64-mingw32-objcopy
+OBJCOPY=x86_64-w64-mingw32-objcopy
+
+KERNEL_OBJ=kernel.bin
+DD=dd
+IMG_CREATE=qemu-img
+MAX_KERNEL_SIZE=1024K
.PHONY: link-amd64-epm
link-amd64-epm:
- $(LD) $(LDFLAGS) $(LDOBJ) -o $(KERNEL)
- cp $(KERNEL) Root/Boot
+ $(LD) $(LDFLAGS) $(LDOBJ) -o $(KERNEL_OBJ)
+ $(IMG_CREATE) create -f raw $(KERNEL) $(MAX_KERNEL_SIZE)
+ $(DD) if=$(KERNEL_OBJ) of=$(KERNEL) bs=1 seek=0 conv=notrunc
+ $(COPY) $(KERNEL) Root/Boot
.PHONY: all
all: newos-amd64-epm link-amd64-epm
diff --git a/Public/Developer/PDF/POWRPCARCPRMRM.pdf b/Public/Developer/PDF/POWRPCARCPRMRM.pdf
deleted file mode 100644
index f6a50007..00000000
--- a/Public/Developer/PDF/POWRPCARCPRMRM.pdf
+++ /dev/null
Binary files differ
diff --git a/Public/Developer/DriverLib/.gitkeep b/Public/Developer/PDFLib/.gitkeep
index e69de29b..e69de29b 100644
--- a/Public/Developer/DriverLib/.gitkeep
+++ b/Public/Developer/PDFLib/.gitkeep
diff --git a/Public/Developer/ServerLib/.gitkeep b/Public/Developer/ServerLib/.gitkeep
deleted file mode 100644
index e69de29b..00000000
--- a/Public/Developer/ServerLib/.gitkeep
+++ /dev/null
diff --git a/Public/Developer/SystemLib/Headers/Dialog.h b/Public/Developer/SystemLib/Headers/Dialog.h
index 800f56db..823b3366 100644
--- a/Public/Developer/SystemLib/Headers/Dialog.h
+++ b/Public/Developer/SystemLib/Headers/Dialog.h
@@ -27,13 +27,13 @@ typedef struct _DialogPort {
DialogPoint dlgPosition;
WmDialogFn dlgProc;
struct _WmGFX* dlgGfx;
- struct _WindowPort* parentPort;
+ struct _WmWindowPort* parentPort;
} DialogPort;
/// @brief Creates a new dialog from a rsrc fork id.
/// @param rsrcId the resource id.
/// @return the dialog port.
-CA_EXTERN_C DialogPort* DlgCreateFromRsrc(QWordType rsrcId);
+CA_EXTERN_C DialogPort* DlgCreateFromRsrc(QWordType rsrcId);
/// @brief Shows an message box according to format.
/// @param title the message box title
diff --git a/Public/Developer/SystemLib/Headers/Wm.h b/Public/Developer/SystemLib/Headers/Wm.h
index 66ed96a3..f6484c29 100644
--- a/Public/Developer/SystemLib/Headers/Wm.h
+++ b/Public/Developer/SystemLib/Headers/Wm.h
@@ -7,21 +7,22 @@
#pragma once
#include <Headers/Defines.h>
+#include "Headers/Dialog.h"
/*************************************************************
- *
- * File: Wm.h
+ *
+ * File: Wm.h
* Purpose: Window Manager API for NewOS.
* Date: 3/26/24
- *
+ *
* Copyright Mahrouss Logic, all rights reserved.
- *
+ *
*************************************************************/
struct _WmPoint;
-struct _WindowPort;
-
-struct _ControlPort;
+struct _WmWindowPort;
+struct _WmGFX;
+struct _WmControlPort;
struct _WmPoint;
/// @brief Window Graphics type.
@@ -33,7 +34,7 @@ typedef struct _WmGFX {
} WmGFX, *WmGFXRef;
/// @brief Window procedure type.
-typedef VoidType(*WmWindowFn)(struct _WindowPort* port, UInt32Type msg, UIntPtrType pParam, UIntPtrType iParam);
+typedef VoidType(*WmWindowFn)(struct _WmWindowPort* port, UInt32Type msg, UIntPtrType pParam, UIntPtrType iParam);
/// @brief A point, can represent the size, position of a window.
typedef struct _WmPoint {
@@ -42,7 +43,7 @@ typedef struct _WmPoint {
/// @brief Window port type, can be used to control the window.
-typedef struct _WindowPort {
+typedef struct _WmWindowPort {
WordType windowPort;
WordType windowKind;
BooleanType windowVisible : 1;
@@ -56,12 +57,12 @@ typedef struct _WindowPort {
WmPoint windowSize;
WmGFXRef windowGfx;
WmWindowFn windowProc;
- struct _WindowPort* windowMenuPort; ///! Attached menu to it.
- struct _WindowPort* windowParentPort;
+ struct _WmWindowPort* windowMenuPort; ///! Attached menu to it.
+ struct _WmWindowPort* windowParentPort;
} WindowPort;
/// @brief Control port type.
-typedef struct _ControlPort {
+typedef struct _WmControlPort {
WordType controlPort;
WordType controlKind;
BooleanType controlVisible : 1;
@@ -70,7 +71,7 @@ typedef struct _ControlPort {
WmWindowFn controlProc;
WmGFXRef controlGfx;
WindowPort* parentPort;
-} ControlPort;
+} WmControlPort;
enum {
kWmErrIncompatible = 0x74,
@@ -111,31 +112,31 @@ CA_EXTERN_C const ColorRef kRgbWhite;
/// @brief Creates a new control
/// @param id the control rsrc fork.
-/// @return
-CA_EXTERN_C ControlPort* WmCreateControl(DWordType id);
+/// @return
+CA_EXTERN_C WmControlPort* WmCreateControl(DWordType id);
/// @brief Releases the control
/// @param ctrlPort the control ref.
-/// @return
-CA_EXTERN_C VoidType WmReleaseControl(ControlPort* ctrlPort);
+/// @return
+CA_EXTERN_C VoidType WmReleaseControl(WmControlPort* ctrlPort);
-/// @brief Moves a control inside a ControlPort.
+/// @brief Moves a control inside a WmControlPort.
/// @param ctrlPort the control ref.
/// @param where where to move at.
-/// @return
-CA_EXTERN_C Int32Type WmSetControlPosition(ControlPort* ctrlPort, WmPoint where);
+/// @return
+CA_EXTERN_C Int32Type WmSetControlPosition(WmControlPort* ctrlPort, WmPoint where);
/// @brief Enable control.
-/// @param ctrlPort
-/// @param enabled
-/// @return
-CA_EXTERN_C Int32Type WmSetControlEnabled(ControlPort* ctrlPort, BooleanType enabled);
+/// @param ctrlPort
+/// @param enabled
+/// @return
+CA_EXTERN_C Int32Type WmSetControlEnabled(WmControlPort* ctrlPort, BooleanType enabled);
/// @brief Make control visible.
-/// @param ctrlPort
-/// @param visible
-/// @return
-CA_EXTERN_C Int32Type WmSetControlVisible(ControlPort* ctrlPort, BooleanType visible);
+/// @param ctrlPort
+/// @param visible
+/// @return
+CA_EXTERN_C Int32Type WmSetControlVisible(WmControlPort* ctrlPort, BooleanType visible);
/// @brief Creates a new window.
/// @param name the window name
@@ -172,4 +173,4 @@ CA_EXTERN_C WindowPort* WmGetOSDlg(void);
/// @brief Draws a blur effect on the window.
/// @param wndPort the window port.
-CA_EXTERN_C VoidType WmBlur(WindowPort* wndPort); \ No newline at end of file
+CA_EXTERN_C VoidType WmBlur(WindowPort* wndPort);
diff --git a/Public/Developer/SystemLib/PowerPC/CoreAssembly.s b/Public/Developer/SystemLib/POWER/CoreAssembly.s
index 7078774e..99605870 100644
--- a/Public/Developer/SystemLib/PowerPC/CoreAssembly.s
+++ b/Public/Developer/SystemLib/POWER/CoreAssembly.s
@@ -2,21 +2,22 @@
;
; Copyright Mahrouss Logic
;
-; Purpose: PowerPC Core assembly routines.
+; Purpose: POWER low level I/O
;
; ------------------------------------------- */
/* @brief Application getter */
/* @throws: ApptError: appartement error. */
export .code64 RtGetAppPointer:
+ mflr r3
stw 0x10, 0(r3) /* sysGetProcessObject */
sc
blr
export .code64 RtAssertTriggerInterrupt:
+ mflr r3
stw 0x11, 0(r3) /* sysTerminateCurrentProcess */
sc
blr
-
diff --git a/Public/Developer/SystemLib/Sources/App.c b/Public/Developer/SystemLib/Sources/App.c
index 9d390795..36e53c7e 100644
--- a/Public/Developer/SystemLib/Sources/App.c
+++ b/Public/Developer/SystemLib/Sources/App.c
@@ -11,7 +11,7 @@ ApplicationRef kSharedApplication = NullPtr;
/// @brief Gets the app arguments count.
/// @param void no arguments.
-/// @return
+/// @return The number of arguments given to the application.
CA_EXTERN_C SizeType RtGetAppArgumentsCount(VoidType) {
CA_MUST_PASS(kSharedApplication);
@@ -23,7 +23,7 @@ CA_EXTERN_C SizeType RtGetAppArgumentsCount(VoidType) {
/// @return
CA_EXTERN_C CharacterTypeUTF8** RtGetAppArgumentsPtr(VoidType) {
CA_MUST_PASS(kSharedApplication);
-
+
return (CharacterTypeUTF8**)kSharedApplication->Invoke(kSharedApplication,
kCallGetArgsPtr);
}
diff --git a/Public/Developer/SystemLib/Sources/File.c b/Public/Developer/SystemLib/Sources/File.c
index 39a4aff0..6e4a7440 100644
--- a/Public/Developer/SystemLib/Sources/File.c
+++ b/Public/Developer/SystemLib/Sources/File.c
@@ -25,7 +25,8 @@ CA_EXTERN_C FSRef FsOpenFile(const CharacterTypeUTF8* path,
CA_MUST_PASS(path && FsIsValidPath(path) == Yes);
CA_MUST_PASS(rest);
- return kSharedApplication->Invoke(kSharedApplication, kCallOpenFile, path, rest);
+ return kSharedApplication->Invoke(kSharedApplication, kCallOpenFile, path,
+ rest);
}
/// @brief Closes the file and flushes it to the said file.
diff --git a/Public/Developer/SystemLib/Makefile b/Public/Developer/SystemLib/amd64.mk
index a753ccc8..a753ccc8 100644
--- a/Public/Developer/SystemLib/Makefile
+++ b/Public/Developer/SystemLib/amd64.mk
diff --git a/ReadMe.md b/ReadMe.md
index 641391b0..e3b6ff8c 100644
--- a/ReadMe.md
+++ b/ReadMe.md
@@ -1,5 +1,5 @@
<div align="center">
-<img src="Meta/NewKernel.svg" width="96" height="96"/>
+<img src="Meta/Kernel.svg" width="96" height="96"/>
<h1>NewKernel</h1>
</div>