load the fonts from a zip archive
authorChristoph von Wittich <christoph_vw@reactos.org>
Mon, 21 Jan 2008 21:01:52 +0000 (21:01 +0000)
committerChristoph von Wittich <christoph_vw@reactos.org>
Mon, 21 Jan 2008 21:01:52 +0000 (21:01 +0000)
svn path=/trunk/; revision=31931

reactos/drivers/setup/blue/blue.h
reactos/drivers/setup/blue/font.c

index f8cc09d..ddff050 100644 (file)
@@ -8,6 +8,33 @@
 
 /* DEFINITIONS ***************************************************************/
 
+#define  BUFFER_SIZE 260
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifndef TAG
+#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
+#endif
+
+#define TAG_BLUE TAG('B', 'L', 'U', 'E')
+
+#include <pshpack1.h>
+typedef struct {
+    short Version;
+    short GeneralPurposeBitFlag;
+    short CompressionMethod;
+    short LastModFileTime;
+    short LastModFileDate;
+    int CRC32;
+    int CompressedSize;
+    int UncompressedSize;
+    short FileNameLength;
+    short ExtraFieldLength;
+} ZIP_LOCAL_HEADER;
+#include <poppack.h>
+
 #define VIDMEM_BASE        0xb8000
 #define BITPLANE_BASE      0xa0000
 
@@ -59,3 +86,4 @@
 #define PELDATA      (PUCHAR)0x3c9
 
 void ScrLoadFontTable(UINT CodePage);
+NTSTATUS ExtractFont(UINT CodePage, PUCHAR FontBitField);
index cd437cc..a081abf 100644 (file)
@@ -5,6 +5,7 @@
 * PURPOSE:         Loading specific fonts into VGA
 * PROGRAMMERS:     Aleksey Bragin (aleksey@reactos.org)
 *                  Colin Finck (mail@colinfinck.de)
+*                  Christoph von Wittich (christoph_vw@reactos.org)
 */
 
 /* INCLUDES ***************************************************************/
@@ -19,9 +20,6 @@ VOID OpenBitPlane();
 VOID CloseBitPlane();
 VOID LoadFont(PBYTE Bitplane, PUCHAR FontBitfield);
 
-static UCHAR Cp850Font[2048];
-static UCHAR Cp866Font[2048];
-
 /* FUNCTIONS ****************************************************************/
 
 VOID
@@ -30,31 +28,140 @@ ScrLoadFontTable(UINT CodePage)
     PHYSICAL_ADDRESS BaseAddress;
     PBYTE Bitplane;
     PUCHAR FontBitfield = NULL;
+    NTSTATUS Status = STATUS_SUCCESS;
 
-    /* open bit plane for font table access */
-    OpenBitPlane();
-
-    /* get pointer to video memory */
-    BaseAddress.QuadPart = BITPLANE_BASE;
-    Bitplane = (PBYTE)MmMapIoSpace (BaseAddress, 0xFFFF, MmNonCached);
-
-    switch(CodePage)
+    FontBitfield = (PUCHAR) ExAllocatePoolWithTag(NonPagedPool, 2048, TAG_BLUE);
+    if(FontBitfield)
     {
-        case 850: FontBitfield = Cp850Font; break;
-        case 866: FontBitfield = Cp866Font; break;
+        /* open bit plane for font table access */
+        OpenBitPlane();
+
+        /* get pointer to video memory */
+        BaseAddress.QuadPart = BITPLANE_BASE;
+        Bitplane = (PBYTE)MmMapIoSpace (BaseAddress, 0xFFFF, MmNonCached);
+
+        Status = ExtractFont(CodePage, FontBitfield);
+        if (NT_SUCCESS(Status))
+            LoadFont(Bitplane, FontBitfield);
+    
+        MmUnmapIoSpace(Bitplane, 0xFFFF);
+        ExFreePool(FontBitfield);
+
+        /* close bit plane */
+        CloseBitPlane();
     }
-
-    if(FontBitfield)
-        LoadFont(Bitplane, FontBitfield);
-
-    MmUnmapIoSpace(Bitplane, 0xFFFF);
-
-    /* close bit plane */
-    CloseBitPlane();
 }
 
 /* PRIVATE FUNCTIONS *********************************************************/
 
+NTSTATUS ExtractFont(UINT CodePage, PUCHAR FontBitField)
+{
+    HANDLE             Handle;
+    NTSTATUS           Status = STATUS_SUCCESS;
+    CHAR               FileHeader[5];
+    CHAR               Header[5];
+    CHAR               FileName[BUFFER_SIZE];
+    ULONG              Length;
+    IO_STATUS_BLOCK    IoStatusBlock;
+    OBJECT_ATTRIBUTES  ObjectAttributes;
+    UNICODE_STRING     LinkName;
+    UNICODE_STRING     SourceName;
+    ZIP_LOCAL_HEADER   LocalHeader;
+    LARGE_INTEGER      ByteOffset;
+    WCHAR              SourceBuffer[MAX_PATH] = {L'\0'};
+
+    if(KeGetCurrentIrql() != PASSIVE_LEVEL)
+        return STATUS_INVALID_DEVICE_STATE; 
+
+    RtlZeroMemory(FileHeader, sizeof(FileHeader));
+    RtlZeroMemory(Header, sizeof(Header));
+
+    RtlInitUnicodeString(&LinkName,
+                         L"\\SystemRoot");
+
+    InitializeObjectAttributes(&ObjectAttributes,
+                               &LinkName,
+                               OBJ_CASE_INSENSITIVE,
+                               NULL,
+                               NULL);
+
+    Status = ZwOpenSymbolicLinkObject(&Handle,
+                                      SYMBOLIC_LINK_ALL_ACCESS,
+                                      &ObjectAttributes);
+
+    if (!NT_SUCCESS(Status))
+        return(Status);
+
+    SourceName.Length = 0;
+    SourceName.MaximumLength = MAX_PATH * sizeof(WCHAR);
+    SourceName.Buffer = SourceBuffer;
+
+    Status = ZwQuerySymbolicLinkObject(Handle,
+                                      &SourceName,
+                                      &Length);
+    ZwClose(Handle);
+
+    Status = RtlAppendUnicodeToString(&SourceName, L"\\vgafont.bin");
+    InitializeObjectAttributes(&ObjectAttributes, &SourceName,
+                               OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
+                               NULL, NULL);
+
+    Status = ZwCreateFile(&Handle,
+                          GENERIC_READ,
+                          &ObjectAttributes, &IoStatusBlock, NULL,
+                          FILE_ATTRIBUTE_NORMAL,
+                          0,
+                          FILE_OPEN, 
+                          FILE_SYNCHRONOUS_IO_NONALERT,
+                          NULL, 0);
+    if(NT_SUCCESS(Status)) {
+        sprintf(Header, "PK%c%c", 3, 4);
+
+        Status = ZwReadFile(Handle, NULL, NULL, NULL, &IoStatusBlock,
+                              FileHeader, 4, &ByteOffset, NULL);
+        ByteOffset.LowPart += 4;
+
+        if(NT_SUCCESS(Status))
+        {
+            while(strcmp(FileHeader, Header) == 0)
+            {
+                Status = ZwReadFile(Handle, NULL, NULL, NULL, &IoStatusBlock,
+                              &LocalHeader, sizeof(ZIP_LOCAL_HEADER), &ByteOffset, NULL);
+                ByteOffset.LowPart += sizeof(ZIP_LOCAL_HEADER);
+                if (LocalHeader.FileNameLength < BUFFER_SIZE)
+                {
+                    RtlZeroMemory(FileName, BUFFER_SIZE);
+                    Status = ZwReadFile(Handle, NULL, NULL, NULL, &IoStatusBlock,
+                              FileName, LocalHeader.FileNameLength, &ByteOffset, NULL);
+                }
+                ByteOffset.LowPart += LocalHeader.FileNameLength;
+                if (LocalHeader.ExtraFieldLength > 0)
+                    ByteOffset.LowPart += LocalHeader.ExtraFieldLength;
+                if (atoi(FileName) == CodePage)
+                {
+                    if (LocalHeader.CompressedSize == 2048)
+                        Status = ZwReadFile(Handle, NULL, NULL, NULL, &IoStatusBlock,
+                              FontBitField, LocalHeader.CompressedSize, &ByteOffset, NULL);
+                    ZwClose(Handle);
+                    return STATUS_SUCCESS;
+                }
+                ByteOffset.LowPart += LocalHeader.CompressedSize;
+                Status = ZwReadFile(Handle, NULL, NULL, NULL, &IoStatusBlock,
+                              FileHeader, 4, &ByteOffset, NULL);
+                ByteOffset.LowPart += 4;
+                DbgPrint("%s\n", FileHeader);
+            }
+        }
+        ZwClose(Handle);
+    }
+    else
+    {
+        DbgPrint("Error: Can not open vgafont.bin\n");
+        return Status;
+    }
+    return STATUS_NO_MATCH;
+}
+
 /* Font-load specific funcs */
 VOID
 OpenBitPlane()
@@ -120,523 +227,3 @@ LoadFont(PBYTE Bitplane, PUCHAR FontBitfield)
     }
 }
 
-/* This font has been imported from DragonFlyBSD / FreeBSD
-   Original URL is: http://opengrok.creo.hu/dragonfly/xref/src/share/syscons/fonts/ (2008/01/21) */
-static UCHAR Cp850Font[2048] = {
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x7E,0x81,0xA5,0x81,0xBD,0x99,0x81,0x7E,
-0x7E,0xFF,0xDB,0xFF,0xC3,0xE7,0xFF,0x7E,
-0x6C,0xFE,0xFE,0xFE,0x7C,0x38,0x10,0x00,
-0x10,0x38,0x7C,0xFE,0x7C,0x38,0x10,0x00,
-0x38,0x7C,0x38,0xFE,0xFE,0xD6,0x10,0x38,
-0x10,0x38,0x7C,0xFE,0xFE,0x7C,0x10,0x38,
-0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00,
-0xFF,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFF,
-0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00,
-0xFF,0xC3,0x99,0xBD,0xBD,0x99,0xC3,0xFF,
-0x0F,0x07,0x0F,0x7D,0xCC,0xCC,0xCC,0x78,
-0x3C,0x66,0x66,0x66,0x3C,0x18,0x7E,0x18,
-0x3F,0x33,0x3F,0x30,0x30,0x70,0xF0,0xE0,
-0x7F,0x63,0x7F,0x63,0x63,0x67,0xE6,0xC0,
-0x18,0xDB,0x3C,0xE7,0xE7,0x3C,0xDB,0x18,
-0x80,0xE0,0xF8,0xFE,0xF8,0xE0,0x80,0x00,
-0x02,0x0E,0x3E,0xFE,0x3E,0x0E,0x02,0x00,
-0x18,0x3C,0x7E,0x18,0x18,0x7E,0x3C,0x18,
-0x66,0x66,0x66,0x66,0x66,0x00,0x66,0x00,
-0x7F,0xDB,0xDB,0x7B,0x1B,0x1B,0x1B,0x00,
-0x3E,0x61,0x3C,0x66,0x66,0x3C,0x86,0x7C,
-0x00,0x00,0x00,0x00,0x7E,0x7E,0x7E,0x00,
-0x18,0x3C,0x7E,0x18,0x7E,0x3C,0x18,0xFF,
-0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,0x00,
-0x18,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00,
-0x00,0x18,0x0C,0xFE,0x0C,0x18,0x00,0x00,
-0x00,0x30,0x60,0xFE,0x60,0x30,0x00,0x00,
-0x00,0x00,0xC0,0xC0,0xC0,0xFE,0x00,0x00,
-0x00,0x24,0x66,0xFF,0x66,0x24,0x00,0x00,
-0x00,0x18,0x3C,0x7E,0xFF,0xFF,0x00,0x00,
-0x00,0xFF,0xFF,0x7E,0x3C,0x18,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x18,0x3C,0x3C,0x18,0x18,0x00,0x18,0x00,
-0x66,0x66,0x24,0x00,0x00,0x00,0x00,0x00,
-0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00,
-0x18,0x3E,0x60,0x3C,0x06,0x7C,0x18,0x00,
-0x00,0xC6,0xCC,0x18,0x30,0x66,0xC6,0x00,
-0x38,0x6C,0x38,0x76,0xDC,0xCC,0x76,0x00,
-0x18,0x18,0x30,0x00,0x00,0x00,0x00,0x00,
-0x0C,0x18,0x30,0x30,0x30,0x18,0x0C,0x00,
-0x30,0x18,0x0C,0x0C,0x0C,0x18,0x30,0x00,
-0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00,
-0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x30,
-0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,
-0x06,0x0C,0x18,0x30,0x60,0xC0,0x80,0x00,
-0x38,0x6C,0xC6,0xD6,0xC6,0x6C,0x38,0x00,
-0x18,0x38,0x18,0x18,0x18,0x18,0x7E,0x00,
-0x7C,0xC6,0x06,0x1C,0x30,0x66,0xFE,0x00,
-0x7C,0xC6,0x06,0x3C,0x06,0xC6,0x7C,0x00,
-0x1C,0x3C,0x6C,0xCC,0xFE,0x0C,0x1E,0x00,
-0xFE,0xC0,0xC0,0xFC,0x06,0xC6,0x7C,0x00,
-0x38,0x60,0xC0,0xFC,0xC6,0xC6,0x7C,0x00,
-0xFE,0xC6,0x0C,0x18,0x30,0x30,0x30,0x00,
-0x7C,0xC6,0xC6,0x7C,0xC6,0xC6,0x7C,0x00,
-0x7C,0xC6,0xC6,0x7E,0x06,0x0C,0x78,0x00,
-0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x00,
-0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x30,
-0x06,0x0C,0x18,0x30,0x18,0x0C,0x06,0x00,
-0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,
-0x60,0x30,0x18,0x0C,0x18,0x30,0x60,0x00,
-0x7C,0xC6,0x0C,0x18,0x18,0x00,0x18,0x00,
-0x7C,0xC6,0xDE,0xDE,0xDE,0xC0,0x78,0x00,
-0x38,0x6C,0xC6,0xFE,0xC6,0xC6,0xC6,0x00,
-0xFC,0x66,0x66,0x7C,0x66,0x66,0xFC,0x00,
-0x3C,0x66,0xC0,0xC0,0xC0,0x66,0x3C,0x00,
-0xF8,0x6C,0x66,0x66,0x66,0x6C,0xF8,0x00,
-0xFE,0x62,0x68,0x78,0x68,0x62,0xFE,0x00,
-0xFE,0x62,0x68,0x78,0x68,0x60,0xF0,0x00,
-0x3C,0x66,0xC0,0xC0,0xCE,0x66,0x3A,0x00,
-0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0x00,
-0x3C,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,
-0x1E,0x0C,0x0C,0x0C,0xCC,0xCC,0x78,0x00,
-0xE6,0x66,0x6C,0x78,0x6C,0x66,0xE6,0x00,
-0xF0,0x60,0x60,0x60,0x62,0x66,0xFE,0x00,
-0xC6,0xEE,0xFE,0xFE,0xD6,0xC6,0xC6,0x00,
-0xC6,0xE6,0xF6,0xDE,0xCE,0xC6,0xC6,0x00,
-0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,
-0xFC,0x66,0x66,0x7C,0x60,0x60,0xF0,0x00,
-0x7C,0xC6,0xC6,0xC6,0xC6,0xCE,0x7C,0x0E,
-0xFC,0x66,0x66,0x7C,0x6C,0x66,0xE6,0x00,
-0x3C,0x66,0x30,0x18,0x0C,0x66,0x3C,0x00,
-0x7E,0x7E,0x5A,0x18,0x18,0x18,0x3C,0x00,
-0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,
-0xC6,0xC6,0xC6,0xC6,0xC6,0x6C,0x38,0x00,
-0xC6,0xC6,0xC6,0xD6,0xD6,0xFE,0x6C,0x00,
-0xC6,0xC6,0x6C,0x38,0x6C,0xC6,0xC6,0x00,
-0x66,0x66,0x66,0x3C,0x18,0x18,0x3C,0x00,
-0xFE,0xC6,0x8C,0x18,0x32,0x66,0xFE,0x00,
-0x3C,0x30,0x30,0x30,0x30,0x30,0x3C,0x00,
-0xC0,0x60,0x30,0x18,0x0C,0x06,0x02,0x00,
-0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00,
-0x10,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
-0x30,0x18,0x0C,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x78,0x0C,0x7C,0xCC,0x76,0x00,
-0xE0,0x60,0x7C,0x66,0x66,0x66,0xDC,0x00,
-0x00,0x00,0x7C,0xC6,0xC0,0xC6,0x7C,0x00,
-0x1C,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,
-0x00,0x00,0x7C,0xC6,0xFE,0xC0,0x7C,0x00,
-0x3C,0x66,0x60,0xF8,0x60,0x60,0xF0,0x00,
-0x00,0x00,0x76,0xCC,0xCC,0x7C,0x0C,0xF8,
-0xE0,0x60,0x6C,0x76,0x66,0x66,0xE6,0x00,
-0x18,0x00,0x38,0x18,0x18,0x18,0x3C,0x00,
-0x06,0x00,0x06,0x06,0x06,0x66,0x66,0x3C,
-0xE0,0x60,0x66,0x6C,0x78,0x6C,0xE6,0x00,
-0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,
-0x00,0x00,0xEC,0xFE,0xD6,0xD6,0xD6,0x00,
-0x00,0x00,0xDC,0x66,0x66,0x66,0x66,0x00,
-0x00,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0x00,
-0x00,0x00,0xDC,0x66,0x66,0x7C,0x60,0xF0,
-0x00,0x00,0x76,0xCC,0xCC,0x7C,0x0C,0x1E,
-0x00,0x00,0xDC,0x76,0x60,0x60,0xF0,0x00,
-0x00,0x00,0x7E,0xC0,0x7C,0x06,0xFC,0x00,
-0x30,0x30,0xFC,0x30,0x30,0x36,0x1C,0x00,
-0x00,0x00,0xCC,0xCC,0xCC,0xCC,0x76,0x00,
-0x00,0x00,0xC6,0xC6,0xC6,0x6C,0x38,0x00,
-0x00,0x00,0xC6,0xD6,0xD6,0xFE,0x6C,0x00,
-0x00,0x00,0xC6,0x6C,0x38,0x6C,0xC6,0x00,
-0x00,0x00,0xC6,0xC6,0xC6,0x7E,0x06,0xFC,
-0x00,0x00,0x7E,0x4C,0x18,0x32,0x7E,0x00,
-0x0E,0x18,0x18,0x70,0x18,0x18,0x0E,0x00,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,
-0x70,0x18,0x18,0x0E,0x18,0x18,0x70,0x00,
-0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x10,0x38,0x6C,0xC6,0xC6,0xFE,0x00,
-0x7C,0xC6,0xC0,0xC0,0xC6,0x7C,0x0C,0x78,
-0xCC,0x00,0xCC,0xCC,0xCC,0xCC,0x76,0x00,
-0x0C,0x18,0x7C,0xC6,0xFE,0xC0,0x7C,0x00,
-0x7C,0x82,0x78,0x0C,0x7C,0xCC,0x76,0x00,
-0xC6,0x00,0x78,0x0C,0x7C,0xCC,0x76,0x00,
-0x30,0x18,0x78,0x0C,0x7C,0xCC,0x76,0x00,
-0x30,0x30,0x78,0x0C,0x7C,0xCC,0x76,0x00,
-0x00,0x00,0x7E,0xC0,0xC0,0x7E,0x0C,0x38,
-0x7C,0x82,0x7C,0xC6,0xFE,0xC0,0x7C,0x00,
-0xC6,0x00,0x7C,0xC6,0xFE,0xC0,0x7C,0x00,
-0x30,0x18,0x7C,0xC6,0xFE,0xC0,0x7C,0x00,
-0x66,0x00,0x38,0x18,0x18,0x18,0x3C,0x00,
-0x7C,0x82,0x38,0x18,0x18,0x18,0x3C,0x00,
-0x30,0x18,0x00,0x38,0x18,0x18,0x3C,0x00,
-0xC6,0x38,0x6C,0xC6,0xFE,0xC6,0xC6,0x00,
-0x38,0x6C,0x7C,0xC6,0xFE,0xC6,0xC6,0x00,
-0x18,0x30,0xFE,0xC0,0xF8,0xC0,0xFE,0x00,
-0x00,0x00,0x7E,0x12,0xFE,0x90,0xFE,0x00,
-0x3E,0x6C,0xCC,0xFE,0xCC,0xCC,0xCE,0x00,
-0x7C,0x82,0x7C,0xC6,0xC6,0xC6,0x7C,0x00,
-0xC6,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0x00,
-0x30,0x18,0x7C,0xC6,0xC6,0xC6,0x7C,0x00,
-0x78,0x84,0x00,0xCC,0xCC,0xCC,0x76,0x00,
-0x60,0x30,0xCC,0xCC,0xCC,0xCC,0x76,0x00,
-0xC6,0x00,0xC6,0xC6,0xC6,0x7E,0x06,0xFC,
-0xC6,0x38,0x6C,0xC6,0xC6,0x6C,0x38,0x00,
-0xC6,0x00,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,
-0x00,0x02,0x7C,0xCE,0xD6,0xE6,0x7C,0x80,
-0x38,0x6C,0x64,0xF0,0x60,0x66,0xFC,0x00,
-0x3A,0x6C,0xCE,0xD6,0xE6,0x6C,0xB8,0x00,
-0x00,0xC6,0x6C,0x38,0x6C,0xC6,0x00,0x00,
-0x0E,0x1B,0x18,0x3C,0x18,0xD8,0x70,0x00,
-0x18,0x30,0x78,0x0C,0x7C,0xCC,0x76,0x00,
-0x0C,0x18,0x00,0x38,0x18,0x18,0x3C,0x00,
-0x0C,0x18,0x7C,0xC6,0xC6,0xC6,0x7C,0x00,
-0x18,0x30,0xCC,0xCC,0xCC,0xCC,0x76,0x00,
-0x76,0xDC,0x00,0xDC,0x66,0x66,0x66,0x00,
-0x76,0xDC,0x00,0xE6,0xF6,0xDE,0xCE,0x00,
-0x3C,0x6C,0x6C,0x3E,0x00,0x7E,0x00,0x00,
-0x38,0x6C,0x6C,0x38,0x00,0x7C,0x00,0x00,
-0x18,0x00,0x18,0x18,0x30,0x63,0x3E,0x00,
-0x7E,0x81,0xB9,0xA5,0xB9,0xA5,0x81,0x7E,
-0x00,0x00,0x00,0xFE,0x06,0x06,0x00,0x00,
-0x63,0xE6,0x6C,0x7E,0x33,0x66,0xCC,0x0F,
-0x63,0xE6,0x6C,0x7A,0x36,0x6A,0xDF,0x06,
-0x18,0x00,0x18,0x18,0x3C,0x3C,0x18,0x00,
-0x00,0x33,0x66,0xCC,0x66,0x33,0x00,0x00,
-0x00,0xCC,0x66,0x33,0x66,0xCC,0x00,0x00,
-0x22,0x88,0x22,0x88,0x22,0x88,0x22,0x88,
-0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,
-0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0xF8,0x18,0x18,0x18,
-0x30,0x60,0x38,0x6C,0xC6,0xFE,0xC6,0x00,
-0x7C,0x82,0x38,0x6C,0xC6,0xFE,0xC6,0x00,
-0x18,0x0C,0x38,0x6C,0xC6,0xFE,0xC6,0x00,
-0x7E,0x81,0x9D,0xA1,0xA1,0x9D,0x81,0x7E,
-0x36,0x36,0xF6,0x06,0xF6,0x36,0x36,0x36,
-0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
-0x00,0x00,0xFE,0x06,0xF6,0x36,0x36,0x36,
-0x36,0x36,0xF6,0x06,0xFE,0x00,0x00,0x00,
-0x18,0x18,0x7E,0xC0,0xC0,0x7E,0x18,0x18,
-0x66,0x66,0x3C,0x7E,0x18,0x7E,0x18,0x18,
-0x00,0x00,0x00,0x00,0xF8,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x1F,0x00,0x00,0x00,
-0x18,0x18,0x18,0x18,0xFF,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0xFF,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x1F,0x18,0x18,0x18,
-0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
-0x18,0x18,0x18,0x18,0xFF,0x18,0x18,0x18,
-0x76,0xDC,0x7C,0x06,0x7E,0xC6,0x7E,0x00,
-0x76,0xDC,0x38,0x6C,0xC6,0xFE,0xC6,0x00,
-0x36,0x36,0x37,0x30,0x3F,0x00,0x00,0x00,
-0x00,0x00,0x3F,0x30,0x37,0x36,0x36,0x36,
-0x36,0x36,0xF7,0x00,0xFF,0x00,0x00,0x00,
-0x00,0x00,0xFF,0x00,0xF7,0x36,0x36,0x36,
-0x36,0x36,0x37,0x30,0x37,0x36,0x36,0x36,
-0x00,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00,
-0x36,0x36,0xF7,0x00,0xF7,0x36,0x36,0x36,
-0x00,0xC6,0x7C,0xC6,0xC6,0x7C,0xC6,0x00,
-0x30,0x7E,0x0C,0x7C,0xCC,0xCC,0x78,0x00,
-0xF8,0x6C,0x66,0xF6,0x66,0x6C,0xF8,0x00,
-0x7C,0x82,0xFE,0xC0,0xFC,0xC0,0xFE,0x00,
-0xC6,0x00,0xFE,0xC0,0xFC,0xC0,0xFE,0x00,
-0x30,0x18,0xFE,0xC0,0xFC,0xC0,0xFE,0x00,
-0x00,0x00,0x38,0x18,0x18,0x18,0x3C,0x00,
-0x0C,0x18,0x3C,0x18,0x18,0x18,0x3C,0x00,
-0x3C,0x42,0x3C,0x18,0x18,0x18,0x3C,0x00,
-0x66,0x00,0x3C,0x18,0x18,0x18,0x3C,0x00,
-0x18,0x18,0x18,0x18,0xF8,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x1F,0x18,0x18,0x18,
-0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
-0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,
-0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0, // modified for the usetup progress bar
-0x30,0x18,0x3C,0x18,0x18,0x18,0x3C,0x00,
-0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
-0x30,0x60,0x38,0x6C,0xC6,0x6C,0x38,0x00,
-0x78,0xCC,0xCC,0xD8,0xCC,0xC6,0xCC,0x00,
-0x7C,0x82,0x38,0x6C,0xC6,0x6C,0x38,0x00,
-0x0C,0x06,0x38,0x6C,0xC6,0x6C,0x38,0x00,
-0x76,0xDC,0x7C,0xC6,0xC6,0xC6,0x7C,0x00,
-0x76,0xDC,0x38,0x6C,0xC6,0x6C,0x38,0x00,
-0x00,0x00,0x66,0x66,0x66,0x66,0x7C,0xC0,
-0xE0,0x60,0x7C,0x66,0x66,0x7C,0x60,0xF0,
-0xF0,0x60,0x7C,0x66,0x7C,0x60,0xF0,0x00,
-0x18,0x30,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,
-0x7C,0x82,0x00,0xC6,0xC6,0xC6,0x7C,0x00,
-0x60,0x30,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,
-0x18,0x30,0xC6,0xC6,0xC6,0x7E,0x06,0xFC,
-0x0C,0x18,0x66,0x66,0x3C,0x18,0x3C,0x00,
-0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x0C,0x18,0x30,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,
-0x18,0x18,0x7E,0x18,0x18,0x00,0x7E,0x00,
-0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,
-0xE1,0x32,0xE4,0x3A,0xF6,0x2A,0x5F,0x86,
-0x7F,0xDB,0xDB,0x7B,0x1B,0x1B,0x1B,0x00,
-0x3E,0x61,0x3C,0x66,0x66,0x3C,0x86,0x7C,
-0x00,0x18,0x00,0x7E,0x00,0x18,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x18,0x0C,0x38,
-0x38,0x6C,0x6C,0x38,0x00,0x00,0x00,0x00,
-0x00,0xC6,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,
-0x18,0x38,0x18,0x18,0x3C,0x00,0x00,0x00,
-0x78,0x0C,0x38,0x0C,0x78,0x00,0x00,0x00,
-0x78,0x0C,0x18,0x30,0x7C,0x00,0x00,0x00,
-0x00,0x00,0x3C,0x3C,0x3C,0x3C,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
-};
-
-/* This font was provided by ??? */
-static UCHAR Cp866Font[2048] = {
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x7E,0x81,0xA5,0x81,0xBD,0x99,0x81,0x7E,
-0x7E,0xFF,0xDB,0xFF,0xC3,0xE7,0xFF,0x7E,
-0x6C,0xFE,0xFE,0xFE,0x7C,0x38,0x10,0x00,
-0x10,0x38,0x7C,0xFE,0x7C,0x38,0x10,0x00,
-0x38,0x7C,0x38,0xFE,0xFE,0x7C,0x38,0x7C,
-0x10,0x10,0x38,0x7C,0xFE,0x7C,0x38,0x7C,
-0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00,
-0xFF,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFF,
-0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00,
-0xFF,0xC3,0x99,0xBD,0xBD,0x99,0xC3,0xFF,
-0x0F,0x07,0x0F,0x7D,0xCC,0xCC,0xCC,0x78,
-0x3C,0x66,0x66,0x66,0x3C,0x18,0x7E,0x18,
-0x3F,0x33,0x3F,0x30,0x30,0x70,0xF0,0xE0,
-0x7F,0x63,0x7F,0x63,0x63,0x67,0xE6,0xC0,
-0x99,0x5A,0x3C,0xE7,0xE7,0x3C,0x5A,0x99,
-0x80,0xE0,0xF8,0xFE,0xF8,0xE0,0x80,0x00,
-0x02,0x0E,0x3E,0xFE,0x3E,0x0E,0x02,0x00,
-0x18,0x3C,0x7E,0x18,0x18,0x7E,0x3C,0x18,
-0x66,0x66,0x66,0x66,0x66,0x00,0x66,0x00,
-0x7F,0xDB,0xDB,0x7B,0x1B,0x1B,0x1B,0x00,
-0x3E,0x63,0x38,0x6C,0x6C,0x38,0xCC,0x78,
-0x00,0x00,0x00,0x00,0x7E,0x7E,0x7E,0x00,
-0x18,0x3C,0x7E,0x18,0x7E,0x3C,0x18,0xFF,
-0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,0x00,
-0x18,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00,
-0x00,0x18,0x0C,0xFE,0x0C,0x18,0x00,0x00,
-0x00,0x30,0x60,0xFE,0x60,0x30,0x00,0x00,
-0x00,0x00,0xC0,0xC0,0xC0,0xFE,0x00,0x00,
-0x00,0x24,0x66,0xFF,0x66,0x24,0x00,0x00,
-0x00,0x18,0x3C,0x7E,0xFF,0xFF,0x00,0x00,
-0x00,0xFF,0xFF,0x7E,0x3C,0x18,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x30,0x78,0x78,0x30,0x30,0x00,0x30,0x00, // !   33   21
-0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00, // "   34   22
-0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00, // #   35   23
-0x30,0x7C,0xC0,0x78,0x0C,0xF8,0x30,0x00, // $   36   24
-0x00,0xC6,0xCC,0x18,0x30,0x66,0xC6,0x00, // %   37   25
-0x38,0x6C,0x38,0x76,0xDC,0xCC,0x76,0x00, // &   38   26
-0x60,0x60,0xC0,0x00,0x00,0x00,0x00,0x00, // '   39   27
-0x18,0x30,0x60,0x60,0x60,0x30,0x18,0x00, // (   40   28
-0x60,0x30,0x18,0x18,0x18,0x30,0x60,0x00, // )   41   29
-0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00, // *   42   2A
-0x00,0x30,0x30,0xFC,0x30,0x30,0x00,0x00, // +   43   2B
-0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x60, // ,   44   2C
-0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00, // -   45   2D
-0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00, // .   46   2E
-0x06,0x0C,0x18,0x30,0x60,0xC0,0x80,0x00, // /   47   2F
-0x7C,0xC6,0xCE,0xDE,0xF6,0xE6,0x7C,0x00, // 0   48   30
-0x30,0x70,0x30,0x30,0x30,0x30,0xFC,0x00, // 1   49   31
-0x78,0xCC,0x0C,0x38,0x60,0xCC,0xFC,0x00, // 2   50   32
-0x78,0xCC,0x0C,0x38,0x0C,0xCC,0x78,0x00, // 3   51   33
-0x1C,0x3C,0x6C,0xCC,0xFE,0x0C,0x1E,0x00, // 4   52   34
-0xFC,0xC0,0xF8,0x0C,0x0C,0xCC,0x78,0x00, // 5   53   35
-0x38,0x60,0xC0,0xF8,0xCC,0xCC,0x78,0x00, // 6   54   36
-0xFC,0xCC,0x0C,0x18,0x30,0x30,0x30,0x00, // 7   55   37
-0x78,0xCC,0xCC,0x78,0xCC,0xCC,0x78,0x00, // 8   56   38
-0x78,0xCC,0xCC,0x7C,0x0C,0x18,0x70,0x00, // 9   57   39
-0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00, // :   58   3A
-0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x60, //  //   59   3B
-0x18,0x30,0x60,0xC0,0x60,0x30,0x18,0x00, // <   60   3C
-0x00,0x00,0xFC,0x00,0x00,0xFC,0x00,0x00, // =   61   3D
-0x60,0x30,0x18,0x0C,0x18,0x30,0x60,0x00, // >   62   3E
-0x78,0xCC,0x0C,0x18,0x30,0x00,0x30,0x00, // ?   63   3F
-0x7C,0xC6,0xDE,0xDE,0xDE,0xC0,0x78,0x00, // @   64   40
-0x30,0x78,0xCC,0xCC,0xFC,0xCC,0xCC,0x00, // A   65   41
-0xFC,0x66,0x66,0x7C,0x66,0x66,0xFC,0x00, // B   66   42
-0x3C,0x66,0xC0,0xC0,0xC0,0x66,0x3C,0x00, // C   67   43
-0xF8,0x6C,0x66,0x66,0x66,0x6C,0xF8,0x00, // D   68   44
-0xFE,0x62,0x68,0x78,0x68,0x62,0xFE,0x00, // E   69   45
-0xFE,0x62,0x68,0x78,0x68,0x60,0xF0,0x00, // F   70   46
-0x3C,0x66,0xC0,0xC0,0xCE,0x66,0x3E,0x00, // G   71   47
-0xCC,0xCC,0xCC,0xFC,0xCC,0xCC,0xCC,0x00, // H   72   48
-0x78,0x30,0x30,0x30,0x30,0x30,0x78,0x00, // I   73   49
-0x1E,0x0C,0x0C,0x0C,0xCC,0xCC,0x78,0x00, // J   74   4A
-0xE6,0x66,0x6C,0x78,0x6C,0x66,0xE6,0x00, // K   75   4B
-0xF0,0x60,0x60,0x60,0x62,0x66,0xFE,0x00, // L   76   4C
-0xC6,0xEE,0xFE,0xFE,0xD6,0xC6,0xC6,0x00, // M   77   4D
-0xC6,0xE6,0xF6,0xDE,0xCE,0xC6,0xC6,0x00, // N   78   4E
-0x38,0x6C,0xC6,0xC6,0xC6,0x6C,0x38,0x00, // O   79   4F
-0xFC,0x66,0x66,0x7C,0x60,0x60,0xF0,0x00, // P   80   50
-0x78,0xCC,0xCC,0xCC,0xDC,0x78,0x1C,0x00, // Q   81   51
-0xFC,0x66,0x66,0x7C,0x6C,0x66,0xE6,0x00, // R   82   52
-0x78,0xCC,0xE0,0x70,0x1C,0xCC,0x78,0x00, // S   83   53
-0xFC,0xB4,0x30,0x30,0x30,0x30,0x78,0x00, // T   84   54
-0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xFC,0x00, // U   85   55
-0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x30,0x00, // V   86   56
-0xC6,0xC6,0xC6,0xD6,0xFE,0xEE,0xC6,0x00, // W   87   57
-0xC6,0xC6,0x6C,0x38,0x38,0x6C,0xC6,0x00, // X   88   58
-0xCC,0xCC,0xCC,0x78,0x30,0x30,0x78,0x00, // Y   89   59
-0xFE,0xC6,0x8C,0x18,0x32,0x66,0xFE,0x00, // Z   90   5A
-0x78,0x60,0x60,0x60,0x60,0x60,0x78,0x00, // [   91   5B
-0xC0,0x60,0x30,0x18,0x0C,0x06,0x02,0x00, // \   92   5C
-0x78,0x18,0x18,0x18,0x18,0x18,0x78,0x00, // ]   93   5D
-0x10,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00, // ^   94   5E
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, // _   95   5F
-0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00, // `   96   60
-0x00,0x00,0x78,0x0C,0x7C,0xCC,0x76,0x00, // a   97   61
-0xE0,0x60,0x60,0x7C,0x66,0x66,0xDC,0x00, // b   98   62
-0x00,0x00,0x78,0xCC,0xC0,0xCC,0x78,0x00, // c   99   63
-0x1C,0x0C,0x0C,0x7C,0xCC,0xCC,0x76,0x00, // d   100   64
-0x00,0x00,0x78,0xCC,0xFC,0xC0,0x78,0x00, // e   101   65
-0x38,0x6C,0x60,0xF0,0x60,0x60,0xF0,0x00, // f   102   66
-0x00,0x00,0x76,0xCC,0xCC,0x7C,0x0C,0xF8, // g   103   67
-0xE0,0x60,0x6C,0x76,0x66,0x66,0xE6,0x00, // h   104   68
-0x30,0x00,0x70,0x30,0x30,0x30,0x78,0x00, // i   105   69
-0x0C,0x00,0x0C,0x0C,0x0C,0xCC,0xCC,0x78, // j   106   6A
-0xE0,0x60,0x66,0x6C,0x78,0x6C,0xE6,0x00, // k   107   6B
-0x70,0x30,0x30,0x30,0x30,0x30,0x78,0x00, // l   108   6C
-0x00,0x00,0xCC,0xFE,0xFE,0xD6,0xC6,0x00, // m   109   6D
-0x00,0x00,0xF8,0xCC,0xCC,0xCC,0xCC,0x00, // n   110   6E
-0x00,0x00,0x78,0xCC,0xCC,0xCC,0x78,0x00, // o   111   6F
-0x00,0x00,0xDC,0x66,0x66,0x7C,0x60,0xF0, // p   112   70
-0x00,0x00,0x76,0xCC,0xCC,0x7C,0x0C,0x1E, // q   113   71
-0x00,0x00,0xDC,0x76,0x66,0x60,0xF0,0x00, // r   114   72
-0x00,0x00,0x7C,0xC0,0x78,0x0C,0xF8,0x00, // s   115   73
-0x10,0x30,0x7C,0x30,0x30,0x34,0x18,0x00, // t   116   74
-0x00,0x00,0xCC,0xCC,0xCC,0xCC,0x76,0x00, // u   117   75
-0x00,0x00,0xCC,0xCC,0xCC,0x78,0x30,0x00, // v   118   76
-0x00,0x00,0xC6,0xD6,0xFE,0xFE,0x6C,0x00, // w   119   77
-0x00,0x00,0xC6,0x6C,0x38,0x6C,0xC6,0x00, // x   120   78
-0x00,0x00,0xCC,0xCC,0xCC,0x7C,0x0C,0xF8, // y   121   79
-0x00,0x00,0xFC,0x98,0x30,0x64,0xFC,0x00, // z   122   7A
-0x1C,0x30,0x30,0xE0,0x30,0x30,0x1C,0x00, // {   123   7B
-0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x00, // |   124   7C
-0xE0,0x30,0x30,0x1C,0x30,0x30,0xE0,0x00, // }   125   7D
-0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00, // ~   126   7E
-0x00,0x10,0x38,0x6C,0xC6,0xC6,0xFE,0x00, // \7f   127   7F
-0x30,0x78,0xCC,0xCC,0xFC,0xCC,0xCC,0x00, // À   128   80
-0xFE,0x62,0x60,0x7C,0x66,0x66,0xFC,0x00, // Á   129   81
-0xFC,0x66,0x66,0x7C,0x66,0x66,0xFC,0x00, // Â   130   82
-0xFE,0x62,0x60,0x60,0x60,0x60,0xF0,0x00, // Ã   131   83
-0x3C,0x4C,0x4C,0x4C,0x4C,0x4C,0xFE,0x82, // Ä   132   84
-0xFE,0x62,0x68,0x78,0x68,0x62,0xFE,0x00, // Å   133   85
-0xD6,0xD6,0x54,0x38,0xD6,0xD6,0xD6,0x00, // Æ   134   86
-0x78,0xCC,0x0C,0x38,0x0C,0xCC,0x78,0x00, // Ç   135   87
-0xC6,0xC6,0xCE,0xDE,0xF6,0xE6,0xC6,0x00, // È   136   88
-0xD6,0xC6,0xCE,0xDE,0xF6,0xE6,0xC6,0x00, // É   137   89
-0xE6,0x66,0x6C,0x78,0x6C,0x66,0xE6,0x00, // Ê   138   8A
-0x3E,0x66,0x66,0x66,0x66,0x66,0xE6,0x00, // Ë   139   8B
-0xC6,0xEE,0xFE,0xFE,0xD6,0xC6,0xC6,0x00, // Ì   140   8C
-0xCC,0xCC,0xCC,0xFC,0xCC,0xCC,0xCC,0x00, // Í   141   8D
-0x38,0x6C,0xC6,0xC6,0xC6,0x6C,0x38,0x00, // Î   142   8E
-0xFC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x00, // Ï   143   8F
-0xFC,0x66,0x66,0x7C,0x60,0x60,0xF0,0x00, // Ð   144   90
-0x3C,0x66,0xC0,0xC0,0xC0,0x66,0x3C,0x00, // Ñ   145   91
-0xFC,0xB4,0x30,0x30,0x30,0x30,0x78,0x00, // Ò   146   92
-0xCC,0xCC,0xCC,0x7C,0x0C,0xCC,0x78,0x00, // Ó   147   93
-0x7C,0xD6,0xD6,0xD6,0x7C,0x10,0x38,0x00, // Ô   148   94
-0xC6,0xC6,0x6C,0x38,0x38,0x6C,0xC6,0x00, // Õ   149   95
-0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xFE,0x02, // Ö   150   96
-0xCC,0xCC,0xCC,0xCC,0x7C,0x0C,0x0C,0x00, // ×   151   97
-0xC6,0xC6,0xC6,0xD6,0xD6,0xD6,0xFE,0x00, // Ø   152   98
-0xC6,0xC6,0xC6,0xD6,0xD6,0xD6,0xFF,0x01, // Ù   153   99
-0xF8,0xB0,0x30,0x3C,0x36,0x36,0x7C,0x00, // Ú   154   9A
-0xC6,0xC6,0xC6,0xE6,0xD6,0xD6,0xE6,0x00, // Û   155   9B
-0xF0,0x60,0x60,0x7C,0x66,0x66,0xFC,0x00, // Ü   156   9C
-0x78,0xCC,0x06,0x1E,0x06,0xCC,0x78,0x00, // Ý   157   9D
-0xCC,0xD6,0xD6,0xF6,0xD6,0xD6,0xCC,0x00, // Þ   158   9E
-0x7C,0xCC,0xCC,0x7C,0x6C,0xCC,0xCE,0x00, // ß   159   9F
-0x00,0x00,0x78,0x0C,0x7C,0xCC,0x76,0x00, // à   160   A0
-0x1C,0x30,0x60,0x7C,0x66,0x66,0x3C,0x00, // á   161   A1
-0x00,0x00,0xFC,0x66,0x7C,0x66,0xFC,0x00, // â   162   A2
-0x00,0x00,0xFE,0x62,0x60,0x60,0xF0,0x00, // ã   163   A3
-0x00,0x00,0x3C,0x4C,0x4C,0x4C,0xFE,0x82, // ä   164   A4
-0x00,0x00,0x78,0xCC,0xFC,0xC0,0x78,0x00, // å   165   A5
-0x00,0x00,0xD6,0xD6,0x7C,0xD6,0xD6,0x00, // æ   166   A6
-0x00,0x00,0x7C,0xC6,0x0C,0xC6,0x7C,0x00, // ç   167   A7
-0x00,0x00,0xC6,0xCE,0xD6,0xE6,0xC6,0x00, // è   168   A8
-0x38,0x00,0xC6,0xCE,0xD6,0xE6,0xC6,0x00, // é   169   A9
-0x00,0x00,0xE6,0x6C,0x78,0x6C,0xE6,0x00, // ê   170   AA
-0x00,0x00,0x3E,0x66,0x66,0x66,0xE6,0x00, // ë   171   AB
-0x00,0x00,0xC6,0xEE,0xFE,0xD6,0xC6,0x00, // ì   172   AC
-0x00,0x00,0xCC,0xCC,0xFC,0xCC,0xCC,0x00, // í   173   AD
-0x00,0x00,0x78,0xCC,0xCC,0xCC,0x78,0x00, // î   174   AE
-0x00,0x00,0xFC,0xCC,0xCC,0xCC,0xCC,0x00, // ï   175   AF
-0x22,0x88,0x22,0x88,0x22,0x88,0x22,0x88, // -   176   B0
-0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA, // -   177   B1
-0xDB,0x77,0xDB,0xEE,0xDB,0x77,0xDB,0xEE, // -   178   B2
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, // ?   179   B3
-0x18,0x18,0x18,0x18,0xF8,0x18,0x18,0x18, // +   180   B4
-0x18,0x18,0xF8,0x18,0xF8,0x18,0x18,0x18, // ?   181   B5
-0x36,0x36,0x36,0x36,0xF6,0x36,0x36,0x36, // ?   182   B6
-0x00,0x00,0x00,0x00,0xFE,0x36,0x36,0x36, // ?   183   B7
-0x00,0x00,0xF8,0x18,0xF8,0x18,0x18,0x18, // ?   184   B8
-0x36,0x36,0xF6,0x06,0xF6,0x36,0x36,0x36, // ?   185   B9
-0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, // ?   186   BA
-0x00,0x00,0xFE,0x06,0xF6,0x36,0x36,0x36, // ?   187   BB
-0x36,0x36,0xF6,0x06,0xFE,0x00,0x00,0x00, // -   188   BC
-0x36,0x36,0x36,0x36,0xFE,0x00,0x00,0x00, // -   189   BD
-0x18,0x18,0xF8,0x18,0xF8,0x00,0x00,0x00, // -   190   BE
-0x00,0x00,0x00,0x00,0xF8,0x18,0x18,0x18, // ?   191   BF
-0x18,0x18,0x18,0x18,0x1F,0x00,0x00,0x00, // L   192   C0
-0x18,0x18,0x18,0x18,0xFF,0x00,0x00,0x00, // +   193   C1
-0x00,0x00,0x00,0x00,0xFF,0x18,0x18,0x18, // T   194   C2
-0x18,0x18,0x18,0x18,0x1F,0x18,0x18,0x18, // +   195   C3
-0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, // -   196   C4
-0x18,0x18,0x18,0x18,0xFF,0x18,0x18,0x18, // +   197   C5
-0x18,0x18,0x1F,0x18,0x1F,0x18,0x18,0x18, // ?   198   C6
-0x36,0x36,0x36,0x36,0x37,0x36,0x36,0x36, // ?   199   C7
-0x36,0x36,0x37,0x30,0x3F,0x00,0x00,0x00, // L   200   C8
-0x00,0x00,0x3F,0x30,0x37,0x36,0x36,0x36, // ã   201   C9
-0x36,0x36,0xF7,0x00,0xFF,0x00,0x00,0x00, // ?   202   CA
-0x00,0x00,0xFF,0x00,0xF7,0x36,0x36,0x36, // T   203   CB
-0x36,0x36,0x37,0x30,0x37,0x36,0x36,0x36, // ?   204   CC
-0x00,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00, // =   205   CD
-0x36,0x36,0xF7,0x00,0xF7,0x36,0x36,0x36, // +   206   CE
-0x18,0x18,0xFF,0x00,0xFF,0x00,0x00,0x00, // ?   207   CF
-0x36,0x36,0x36,0x36,0xFF,0x00,0x00,0x00, // ?   208   D0
-0x00,0x00,0xFF,0x00,0xFF,0x18,0x18,0x18, // T   209   D1
-0x00,0x00,0x00,0x00,0xFF,0x36,0x36,0x36, // T   210   D2
-0x36,0x36,0x36,0x36,0x3F,0x00,0x00,0x00, // L   211   D3
-0x18,0x18,0x1F,0x18,0x1F,0x00,0x00,0x00, // L   212   D4
-0x00,0x00,0x1F,0x18,0x1F,0x18,0x18,0x18, // -   213   D5
-0x00,0x00,0x00,0x00,0x3F,0x36,0x36,0x36, // ã   214   D6
-0x36,0x36,0x36,0x36,0xFF,0x36,0x36,0x36, // +   215   D7
-0x18,0x18,0xFF,0x18,0xFF,0x18,0x18,0x18, // +   216   D8
-0x18,0x18,0x18,0x18,0xF8,0x00,0x00,0x00, // -   217   D9
-0x00,0x00,0x00,0x00,0x1F,0x18,0x18,0x18, // -   218   DA
-0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, // -   219   DB
-0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF, // -   220   DC
-0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0, // ?   221   DD
-0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, // ?   222   DE
-0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00, // -   223   DF
-0x00,0x00,0xFC,0x66,0x7C,0x60,0xF0,0x00, // ð   224   E0
-0x00,0x00,0x78,0xCC,0xC0,0xCC,0x78,0x00, // ñ   225   E1
-0x00,0x00,0xFC,0xB4,0x30,0x30,0x78,0x00, // ò   226   E2
-0x00,0x00,0xCC,0xCC,0x7C,0x0C,0xF8,0x00, // ó   227   E3
-0x00,0x00,0x7C,0xD6,0xD6,0x7C,0x10,0x00, // ô   228   E4
-0x00,0x00,0xC6,0x6C,0x38,0x6C,0xC6,0x00, // õ   229   E5
-0x00,0x00,0xCC,0xCC,0xCC,0xCC,0x76,0x02, // ö   230   E6
-0x00,0x00,0xCC,0xCC,0x7C,0x0C,0x0C,0x00, // ÷   231   E7
-0x00,0x00,0xC6,0xC6,0xD6,0xD6,0xFE,0x00, // ø   232   E8
-0x00,0x00,0xC6,0xC6,0xD6,0xD6,0xFF,0x01, // ù   233   E9
-0x00,0x00,0xF0,0xB0,0x3C,0x32,0xFC,0x00, // ú   234   EA
-0x00,0x00,0xC6,0xE6,0xD6,0xD6,0xE6,0x00, // û   235   EB
-0x00,0x00,0xE0,0x60,0x7C,0x62,0xFC,0x00, // ü   236   EC
-0x00,0x00,0xFC,0x06,0x1E,0x06,0xFC,0x00, // ý   237   ED
-0x00,0x00,0xCC,0xD6,0xF6,0xD6,0xCC,0x00, // þ   238   EE
-0x00,0x00,0x76,0xCC,0x7C,0x2C,0xCE,0x00, // ÿ   239   EF
-0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x00, // ¨   240   F0
-0x30,0x30,0xFC,0x30,0x30,0x00,0xFC,0x00, // ¸   241   F1
-0x60,0x30,0x18,0x30,0x60,0x00,0xFC,0x00, // ª   242   F2
-0x18,0x30,0x60,0x30,0x18,0x00,0xFC,0x00, // º   243   F3
-0x0E,0x1B,0x1B,0x18,0x18,0x18,0x18,0x18, // ¯   244   F4
-0x18,0x18,0x18,0x18,0x18,0xD8,0xD8,0x70, // ¿   245   F5
-0x30,0x30,0x00,0xFC,0x00,0x30,0x30,0x00, // ¡   246   F6
-0x00,0x76,0xDC,0x00,0x76,0xDC,0x00,0x00, // ¢   247   F7
-0x38,0x6C,0x6C,0x38,0x00,0x00,0x00,0x00, // °   248   F8
-0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00, // \a   249   F9
-0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00, // ·   250   FA
-0x0F,0x0C,0x0C,0x0C,0xEC,0x6C,0x3C,0x1C, // v   251   FB
-0x78,0x6C,0x6C,0x6C,0x6C,0x00,0x00,0x00, // ¹   252   FC
-0x70,0x18,0x30,0x60,0x78,0x00,0x00,0x00, // ¤   253   FD
-0x00,0x00,0x3C,0x3C,0x3C,0x3C,0x00,0x00, // ?   254   FE
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00  //     255   FF
-};