From d5fa9d0bc4d04c766a151431caf9f20ebed81def Mon Sep 17 00:00:00 2001 From: crc Date: Tue, 3 Sep 2024 15:33:56 +0200 Subject: [PATCH] ilo+x11: embed font data into vm binary, make use of pledge() on openbsd --- source/font.h | 342 ++++++++++++++++++++++++++++++++++++++++++ source/x11-ilo.c | 16 +- source/x11-mult-ilo.c | 11 +- 3 files changed, 345 insertions(+), 24 deletions(-) create mode 100644 source/font.h diff --git a/source/font.h b/source/font.h new file mode 100644 index 0000000..5a0800b --- /dev/null +++ b/source/font.h @@ -0,0 +1,342 @@ +unsigned char font[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, +0x81, 0xE7, 0xA5, 0x99, 0x81, 0x99, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3C, 0x7E, 0xFF, 0x99, 0xDB, 0xE7, 0xFF, 0xE7, 0x7E, 0x3C, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0xFF, 0xFF, 0xFF, +0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x18, 0x3C, 0x7E, 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x5A, 0xFF, 0xFF, 0x5A, 0x18, 0x3C, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, +0xFF, 0x5A, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x42, +0x42, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x00, 0x00, 0x0F, 0x07, 0x0D, 0x18, 0x3E, 0x63, 0xC3, 0xC3, 0xC6, 0x7C, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xC3, 0xC3, 0xC3, 0x7E, 0x18, +0x18, 0x1E, 0x78, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0C, +0x0E, 0x0B, 0x08, 0x08, 0x08, 0x78, 0xF8, 0x70, 0x00, 0x00, 0x00, 0x00, +0x00, 0x10, 0x18, 0x1C, 0x16, 0x1A, 0x16, 0x12, 0x72, 0xF2, 0x62, 0x0E, +0x1E, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0xDB, 0x7E, 0x3C, 0xFF, +0x3C, 0x7E, 0xDB, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x70, +0x78, 0x7C, 0x7E, 0x7E, 0x7C, 0x78, 0x70, 0x60, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x06, 0x0E, 0x1E, 0x3E, 0x7E, 0x7E, 0x3E, 0x1E, 0x0E, 0x06, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x38, 0x38, +0x38, 0x38, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, +0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3F, 0x7B, 0xDB, 0xDB, 0xDB, 0x7F, 0x3B, 0x1B, 0x1B, 0x1B, +0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x30, 0x78, 0xDC, 0xCE, 0xE7, 0x73, +0x3B, 0x1E, 0x0C, 0x18, 0x30, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x38, 0x38, 0x38, 0xFE, 0x7C, 0x38, +0x10, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x38, 0x38, +0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, +0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0C, 0xFE, 0xFF, 0xFE, 0x0C, 0x08, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x30, 0x7F, +0xFF, 0x7F, 0x30, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x66, +0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x66, 0xFF, 0xFF, 0x66, 0x24, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x7E, +0x7E, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0x7E, 0x7E, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x66, +0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x33, 0x33, 0xFF, 0x66, 0x66, 0x66, 0x66, 0xFF, 0xCC, 0xCC, +0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7E, 0xDB, 0xD8, 0x78, 0x1C, 0x1E, +0x1B, 0xDB, 0xDB, 0x7E, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xD1, +0xB3, 0x66, 0x0C, 0x18, 0x36, 0x6D, 0xCB, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x1C, 0x36, 0x66, 0x3C, 0x38, 0x6C, 0xC7, 0xC6, 0x6E, 0x3B, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, +0x30, 0x60, 0x60, 0x60, 0x60, 0x30, 0x30, 0x18, 0x0C, 0x00, 0x00, 0x00, +0x00, 0x30, 0x18, 0x0C, 0x0C, 0x06, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x18, +0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, +0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x06, 0x04, 0x0C, 0x08, 0x18, 0x10, 0x30, 0x20, 0x60, 0x40, +0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0xC3, 0xC3, 0xC3, 0xCF, +0xDB, 0xF3, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x1C, +0x3C, 0x6C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3E, 0x63, 0xC3, 0x03, 0x06, 0x0C, 0x18, 0x30, 0x63, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xC6, 0x0C, 0x18, 0x3E, 0x03, +0x03, 0xC3, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0E, +0x1E, 0x36, 0x66, 0xC7, 0xDE, 0xF6, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x1F, 0xF0, 0xC0, 0xDC, 0xF6, 0x03, 0x03, 0xC3, 0xC6, 0x7C, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0xC6, 0xC0, 0xDC, 0xF6, +0xC6, 0xC6, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xC3, +0x06, 0x0C, 0x0C, 0x18, 0x18, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3C, 0x66, 0xC6, 0x6C, 0x3E, 0x63, 0xC3, 0xC3, 0xC6, 0x7C, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0xC6, 0xC6, 0xDE, 0x76, +0x06, 0xC6, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x60, +0x30, 0x18, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x06, 0x0C, 0x18, 0x30, 0x60, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0xC6, 0x0C, 0x18, 0x30, +0x30, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x33, +0x6F, 0xDB, 0xDB, 0xDB, 0xDE, 0xD8, 0xC6, 0xDC, 0x70, 0x00, 0x00, 0x00, +0x00, 0x00, 0x18, 0x18, 0x3C, 0x24, 0x66, 0x6E, 0x7A, 0xE3, 0xC3, 0xC3, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x33, 0xE3, 0xC6, 0xDC, 0xF7, +0xC3, 0xC6, 0xDC, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x33, +0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x63, 0x3E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xFC, 0xC6, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC6, 0xDC, 0xF0, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xF0, 0xC0, 0xC0, 0xDC, 0xF0, +0xC0, 0xC0, 0xDE, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xF0, +0xC0, 0xC0, 0xDC, 0xF0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3E, 0x63, 0xC0, 0xC0, 0xC0, 0xCF, 0xC3, 0xC3, 0x66, 0x3C, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0xC3, 0xC3, 0xC3, 0xCF, 0xFB, +0xC3, 0xC3, 0xC3, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x38, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1C, 0x38, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0xC3, 0xC3, 0x63, 0x3E, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0xC6, 0xDC, 0xF0, 0xE0, 0xF0, +0xD8, 0xCC, 0xC6, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, +0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xDE, 0xF0, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xC3, 0xC3, 0xE7, 0xEF, 0xFB, 0xD3, 0xC3, 0xC3, 0xC3, 0xC3, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0xC3, 0xE3, 0xF3, 0xD3, 0xDB, +0xCF, 0xC7, 0xC3, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, +0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x1E, 0x33, 0xE3, 0xC3, 0xC6, 0xDC, 0xF0, 0xC0, 0xC0, 0xC0, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0xC3, 0xC3, 0xC3, 0xC3, +0xF3, 0xDE, 0xCC, 0x7C, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x33, +0xE3, 0xC3, 0xC6, 0xFC, 0xD8, 0xCC, 0xC6, 0xC3, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7E, 0xC3, 0xC0, 0x70, 0x1C, 0x06, 0x03, 0xC3, 0xC3, 0x7E, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0xC3, +0xC3, 0xC3, 0xC3, 0xC3, 0xC6, 0xC6, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xC3, 0xC3, 0xC3, 0xC3, 0x66, 0x66, 0x7C, 0x38, 0x30, 0x30, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0xC3, 0xC3, 0xC3, 0xDB, 0xDB, +0xDB, 0xFF, 0xE7, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0xC3, +0x66, 0x66, 0x3C, 0x3C, 0x66, 0x66, 0xC3, 0xC3, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xC3, 0xC3, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF6, 0x04, 0x0C, 0x18, 0x10, +0x30, 0x20, 0x6F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x30, 0x30, +0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3E, 0x00, 0x00, 0x00, +0x00, 0x00, 0xC0, 0x40, 0x60, 0x20, 0x30, 0x10, 0x18, 0x08, 0x0C, 0x04, +0x06, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, +0x0C, 0x0C, 0x0C, 0x0C, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x66, +0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x3E, 0x63, 0x1F, 0x73, 0xC3, 0xCF, 0x7B, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xDC, 0xF6, 0xC3, 0xC3, 0xC6, 0xDC, 0xF0, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x33, 0x60, +0xC0, 0xC0, 0xC3, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, +0x03, 0x1F, 0x73, 0xC3, 0xC7, 0xCF, 0xDB, 0x73, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0xCE, 0xF8, 0xC0, 0xC3, 0x7E, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x33, 0x30, 0x30, 0x3C, 0xF0, +0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x3F, 0x63, 0xC3, 0xC7, 0xCF, 0xDB, 0x73, 0x03, 0xC3, 0x7E, 0x00, +0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xCE, 0xDB, 0xF3, 0xE3, 0xC3, 0xC3, 0xC3, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, +0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00, +0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC6, 0xCC, 0xD8, 0xF8, 0xEC, 0xC6, 0xC3, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xE6, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3, 0xC3, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0xDB, 0xF3, 0xE3, 0xC3, 0xC3, 0xC3, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0xC3, +0xC3, 0xC3, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xCE, 0xDB, 0xF3, 0xE3, 0xC3, 0xC6, 0xFC, 0xC0, 0xC0, 0xC0, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0xDB, 0xCF, 0xC7, 0xC3, 0x63, 0x3F, +0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0xDB, 0xF3, +0xE0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x7E, 0xC3, 0x70, 0x1E, 0x03, 0xC3, 0x7E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x10, 0x30, 0x30, 0x3C, 0xF0, 0x30, 0x30, 0x36, 0x3C, 0x18, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0xC3, 0xC3, +0xC7, 0xCF, 0xDB, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xC3, 0xC3, 0xC3, 0x66, 0x6C, 0x38, 0x18, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0xC3, 0xC3, 0xDB, 0xDB, 0xFF, 0xC3, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x66, 0x3C, +0x18, 0x3C, 0x66, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x66, 0x3E, 0x0C, 0xD8, 0x70, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x18, 0x18, 0x18, 0x18, 0x70, 0x70, +0x18, 0x18, 0x18, 0x18, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, +0x00, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0E, 0x0E, 0x18, 0x18, 0x18, 0x18, +0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x1E, 0x33, 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x63, 0x3E, +0x0C, 0x18, 0xF0, 0x00, 0x00, 0x00, 0x66, 0x66, 0x00, 0xC3, 0xC3, 0xC3, +0xC7, 0xCF, 0xDB, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, +0x00, 0x3E, 0x63, 0xCE, 0xF8, 0xC0, 0xC3, 0x7E, 0x00, 0x00, 0x00, 0x00, +0x0C, 0x1E, 0x33, 0x60, 0x00, 0x3E, 0x63, 0x1F, 0x73, 0xC3, 0xCF, 0x7B, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x00, 0x3E, 0x63, 0x1F, +0x73, 0xC3, 0xCF, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, +0x00, 0x3E, 0x63, 0x1F, 0x73, 0xC3, 0xCF, 0x7B, 0x00, 0x00, 0x00, 0x00, +0x1C, 0x36, 0x36, 0x1C, 0x00, 0x3E, 0x63, 0x1F, 0x73, 0xC3, 0xCF, 0x7B, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x33, 0x60, +0xC0, 0xC0, 0xC3, 0x7E, 0x0C, 0x18, 0xF0, 0x00, 0x18, 0x3C, 0x66, 0xC0, +0x00, 0x3E, 0x63, 0xCE, 0xF8, 0xC0, 0xC3, 0x7E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x66, 0x66, 0x00, 0x3E, 0x63, 0xCE, 0xF8, 0xC0, 0xC3, 0x7E, +0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x3E, 0x63, 0xCE, +0xF8, 0xC0, 0xC3, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, +0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, +0x18, 0x3C, 0x66, 0xC0, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x18, 0x18, +0x3C, 0x24, 0x66, 0x66, 0x7E, 0xC3, 0xC3, 0xC3, 0x00, 0x00, 0x00, 0x00, +0x18, 0x24, 0x24, 0x18, 0x3C, 0x24, 0x66, 0x66, 0x7E, 0xC3, 0xC3, 0xC3, +0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x1E, 0xF0, 0xC0, 0xDE, 0xF0, +0xC0, 0xC0, 0xDE, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x7E, 0xDB, 0x3B, 0x7E, 0xDC, 0xDB, 0x6E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3F, 0x3E, 0x3C, 0x6C, 0x6F, 0x6E, 0x7C, 0xCC, 0xCF, 0xCE, +0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x66, 0xC0, 0x00, 0x3E, 0x63, 0xC3, +0xC3, 0xC3, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, +0x00, 0x3E, 0x63, 0xC3, 0xC3, 0xC3, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x60, 0x30, 0x18, 0x00, 0x3E, 0x63, 0xC3, 0xC3, 0xC3, 0xC6, 0x7C, +0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x66, 0xC0, 0x00, 0xC3, 0xC3, 0xC3, +0xC7, 0xCF, 0xDB, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, +0x00, 0xC3, 0xC3, 0xC3, 0xC7, 0xCF, 0xDB, 0x73, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x66, 0x66, 0x00, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x66, 0x3E, +0x0C, 0xD8, 0x70, 0x00, 0x66, 0x00, 0x3E, 0x63, 0xC3, 0xC3, 0xC3, 0xC3, +0xC3, 0xC3, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0xC3, 0xC3, +0xC3, 0xC3, 0xC3, 0xC3, 0xC6, 0xC6, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x08, 0x08, 0x1E, 0x3B, 0x68, 0xC8, 0xC8, 0xCB, 0x7E, +0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x60, 0xF8, 0x60, 0xF8, +0x60, 0x60, 0x63, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0xC3, +0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, +0x00, 0x00, 0x1E, 0x33, 0xE3, 0xC3, 0xC6, 0xDC, 0xF8, 0xCC, 0xDE, 0xCC, +0x0F, 0x0E, 0x04, 0x00, 0x00, 0x00, 0x1E, 0x33, 0x30, 0x30, 0x3C, 0xF0, +0x30, 0x30, 0x30, 0x30, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, +0x00, 0x3E, 0x63, 0x1F, 0x73, 0xC3, 0xCF, 0x7B, 0x00, 0x00, 0x00, 0x00, +0x00, 0x06, 0x0C, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, 0x00, 0x3E, 0x63, 0xC3, +0xC3, 0xC3, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, +0x00, 0xC3, 0xC3, 0xC3, 0xC7, 0xCF, 0xDB, 0x73, 0x00, 0x00, 0x00, 0x00, +0x00, 0x03, 0x76, 0xDC, 0x00, 0xCE, 0xDB, 0xF3, 0xE3, 0xC3, 0xC3, 0xC3, +0x00, 0x00, 0x00, 0x00, 0x03, 0x76, 0xDC, 0x00, 0xC3, 0xE3, 0xF3, 0xD3, +0xDB, 0xCF, 0xC7, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, +0x1F, 0x73, 0xC3, 0xCF, 0x7B, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3E, 0x63, 0xC3, 0xC3, 0xC3, 0xC6, 0x7C, 0x00, 0x00, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x0C, 0x0C, 0x18, +0x30, 0x63, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06, 0x06, 0x06, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xE1, 0x63, 0x66, 0x6C, 0x18, 0x30, +0x60, 0xCE, 0x9B, 0x06, 0x0D, 0x1F, 0x00, 0x00, 0x00, 0x60, 0xE1, 0x63, +0x66, 0x6C, 0x18, 0x30, 0x66, 0xCE, 0x97, 0x3E, 0x06, 0x06, 0x00, 0x00, +0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x36, 0x6C, 0xD8, +0xD8, 0x6C, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x6C, 0x36, 0x1B, 0x1B, 0x36, 0x6C, 0xC0, 0x00, 0x00, 0x00, 0x00, +0x82, 0x10, 0x82, 0x10, 0x82, 0x10, 0x82, 0x10, 0x82, 0x10, 0x82, 0x10, +0x82, 0x10, 0x82, 0x10, 0x00, 0x95, 0x00, 0xA9, 0x00, 0x95, 0x00, 0xA9, +0x00, 0x95, 0x00, 0xA9, 0x00, 0x95, 0x00, 0xA9, 0x92, 0x49, 0x92, 0x49, +0x92, 0x49, 0x92, 0x49, 0x92, 0x49, 0x92, 0x49, 0x92, 0x49, 0x92, 0x49, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0xF8, 0xF8, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0xFC, 0x3C, 0x3C, 0x3C, +0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFC, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xF8, 0xF8, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0xFC, 0xFC, 0xFC, 0x3C, 0x3C, 0x3C, +0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, +0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xFC, 0xFC, 0xFC, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, +0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0xFC, 0xFC, 0xFC, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, +0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x1F, +0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x3C, 0x3C, 0x3C, +0x3C, 0x3C, 0x3C, 0x3C, 0x3F, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, +0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3F, 0x3F, 0x3F, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3F, +0x3F, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, +0x3C, 0x3C, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x3C, 0x3C, 0x3C, +0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3F, 0x3F, +0x3F, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0xFF, 0xFF, 0xFF, 0x3C, 0x3C, 0x3C, +0x3C, 0x3C, 0x3C, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0xFF, +0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, +0x3C, 0x3C, 0x3C, 0x3C, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFF, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, +0x3C, 0x3C, 0x3C, 0x3C, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, +0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x3F, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, +0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0xFF, 0x3C, 0x3C, 0x3C, +0x3C, 0x3C, 0x3C, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0xFF, +0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, +0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, +0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x76, 0xCC, 0xCC, 0xCC, 0xDE, 0x73, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x33, 0xE3, 0xC2, 0xCC, 0xC2, +0xC3, 0xC3, 0xCE, 0xD8, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF3, +0xC3, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x03, 0x7E, 0xE6, 0x66, 0x66, 0x66, 0x66, 0x44, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF0, 0x60, 0x30, 0x18, 0x30, +0x60, 0xC0, 0xDF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x7F, 0xF0, 0xD8, 0xD8, 0xD8, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x63, 0x63, 0x67, 0x6F, 0x7B, +0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F, 0xB8, 0x30, 0x30, +0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, +0x7E, 0xDB, 0xDB, 0xDB, 0xDB, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3C, 0x66, 0xC3, 0xC3, 0xFF, 0xC3, 0xC3, 0x66, 0x3C, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0xC3, 0xC3, 0xC3, 0xC3, +0x66, 0x24, 0xA5, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1C, 0x30, +0x18, 0x0C, 0x3E, 0x66, 0xC6, 0xC6, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xDB, 0xDB, 0xDB, 0x76, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x7C, 0xCE, 0xD6, +0xE6, 0x7C, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x30, +0x60, 0x60, 0x7E, 0x60, 0x60, 0x60, 0x30, 0x1E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7E, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, +0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00, 0x7E, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x60, 0x30, +0x18, 0x0C, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, +0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, 0x70, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0xFF, +0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, +0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x03, 0x02, 0x06, 0x04, 0x0C, 0x08, 0xD8, 0x50, 0x70, 0x20, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0xF6, 0xE6, 0xC6, 0xC6, 0xC6, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xCC, +0x18, 0x30, 0x64, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/source/x11-ilo.c b/source/x11-ilo.c index 1c37fab..620a508 100644 --- a/source/x11-ilo.c +++ b/source/x11-ilo.c @@ -12,7 +12,7 @@ #define BLOCKS "ilo.blocks" #define ROM "ilo.rom" -#define FONT "ilo.fnt" + #define FG 0xFFFFFF #define BG 0x000000 #define CURSOR 0x00FFFF @@ -53,7 +53,7 @@ C i[1]; /* for misc. purposes */ #define TERM_H (FH / FONT_H) I frame[(FW * FH)/32]; /* frame buffer for display */ -I font[4096]; /* font bitmap */ +#include "font.h" /* font data */ I tx, ty; /* text cursor location */ /* variables for Arland's DEC subset */ @@ -105,14 +105,6 @@ I wait_key() { } } -V load_font() { - f = open(FONT, O_RDONLY, 0666); - ulf(); - if (!f) { return; }; - read(f, &font, 4096); - close(f); -} - V pixel(I x, I y, I c) { I index = y * FW + x; if (c == 0) { @@ -435,16 +427,12 @@ I main(I argc, C **argv) { rom = (argc > 2) ? argv[2] : ROM; ok = 0; -/* #ifdef __OpenBSD__ pledge("stdio rpath wpath unix video", NULL); #endif -*/ load_image(); - load_font(); - disp = XOpenDisplay(NULL); win = XCreateSimpleWindow(disp, RootWindow(disp, 0), 0, 0, FW, FH, 0, 0x0, 0x0); diff --git a/source/x11-mult-ilo.c b/source/x11-mult-ilo.c index d494209..073fc55 100644 --- a/source/x11-mult-ilo.c +++ b/source/x11-mult-ilo.c @@ -51,7 +51,6 @@ #define BLOCKS "ilo.blocks" /* default data storage */ #define ROM "ilo.rom" /* default ilo rom */ -#define FONT "ilo.fnt" /* default font */ #define FONT_H 16 /* font height */ #define FONT_W 8 /* font width */ @@ -136,7 +135,7 @@ I cur; /* track current session */ #define WINDOW_WIDTH (FW) I frame[(FW * FH)/32]; /* frame buffer for display */ -I font[4096]; /* font bitmap */ +#include "font.h" /* font bitmap */ I tx, ty; /* text cursor location */ /* variables for Arland's DEC subset */ @@ -259,12 +258,6 @@ I wait_key() { return k; } -V load_font(ilo *v) { - F = open(FONT, O_RDONLY, 0666); FAILED { ulf(v); return; } - read(F, &font, 4096); - close(F); -} - V pixel(I x, I y, I c) { I index = y * FW + x; if (c == 0) { @@ -645,8 +638,6 @@ I main(I argc, C **argv) { load_image(v); } - /* load the font data */ - load_font(&systems[0]); initialize_display(); #ifdef CENTER_WINDOW