feat: WiFi驱动(ath9k) + TTF字体 + shell命令行 + FirstInit WiFi跳过
新增: ath9k PCIe WiFi驱动(被动扫描/beacon解析), shell命令行(help/clear/echo/version/date/reboot/halt), Consolas 18px TTF字体, render_ascii.py 修改: dkm_net_api扩展scan接口, FirstInit无WiFi设备时跳过, DSK加载shell.elf, 非首次启动直接进shell
This commit is contained in:
@@ -0,0 +1,1908 @@
|
||||
/* Auto-generated by render_ascii.py - Consolas 18px grayscale */
|
||||
/* 95 glyphs: ASCII 32 (space) .. 126 (~), cell 11x18 */
|
||||
/* Do not edit - regenerate via: py render_ascii.py */
|
||||
|
||||
static const int g_ascii_w = 11;
|
||||
static const int g_ascii_h = 18;
|
||||
static const unsigned char g_ascii[95][11*18] = {
|
||||
/* 'space' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x21' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 253, 216, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 246, 210, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 239, 204, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 232, 198, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 226, 192, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 219, 186, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 212, 180, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 205, 174, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 198, 168, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 191, 162, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 21, 223, 202, 3, 0, 0, 0, 0,
|
||||
0, 0, 0, 22, 224, 204, 3, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x22' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 181, 255, 43, 73, 255, 151, 0, 0, 0,
|
||||
0, 0, 165, 255, 27, 57, 255, 135, 0, 0, 0,
|
||||
0, 0, 149, 255, 11, 41, 255, 119, 0, 0, 0,
|
||||
0, 0, 132, 251, 0, 24, 255, 103, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x23' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 245, 83, 0, 105, 226, 0, 0, 0,
|
||||
0, 0, 14, 255, 59, 0, 130, 199, 0, 0, 0,
|
||||
0, 0, 39, 255, 35, 0, 155, 173, 0, 0, 0,
|
||||
44, 255, 255, 255, 255, 255, 255, 255, 255, 132, 0,
|
||||
0, 0, 95, 234, 0, 0, 213, 118, 0, 0, 0,
|
||||
0, 0, 123, 209, 0, 0, 238, 91, 0, 0, 0,
|
||||
0, 0, 150, 184, 0, 7, 255, 65, 0, 0, 0,
|
||||
160, 255, 255, 255, 255, 255, 255, 255, 255, 12, 0,
|
||||
0, 0, 207, 125, 0, 67, 255, 9, 0, 0, 0,
|
||||
0, 0, 235, 97, 0, 95, 237, 0, 0, 0, 0,
|
||||
0, 7, 254, 69, 0, 122, 209, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x24' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 219, 108, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 246, 78, 0, 0, 0, 0,
|
||||
0, 0, 72, 192, 242, 255, 255, 255, 8, 0, 0,
|
||||
0, 99, 254, 109, 83, 253, 5, 0, 0, 0, 0,
|
||||
0, 215, 196, 0, 99, 226, 0, 0, 0, 0, 0,
|
||||
0, 217, 230, 20, 133, 193, 0, 0, 0, 0, 0,
|
||||
0, 75, 249, 235, 220, 164, 0, 0, 0, 0, 0,
|
||||
0, 0, 40, 164, 251, 254, 184, 49, 0, 0, 0,
|
||||
0, 0, 0, 0, 236, 166, 226, 249, 67, 0, 0,
|
||||
0, 0, 0, 11, 255, 55, 19, 240, 193, 0, 0,
|
||||
0, 0, 0, 44, 255, 23, 1, 229, 191, 0, 0,
|
||||
0, 0, 0, 76, 247, 29, 144, 251, 72, 0, 0,
|
||||
8, 255, 255, 255, 254, 227, 173, 58, 0, 0, 0,
|
||||
0, 0, 0, 159, 169, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 194, 133, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x25' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
7, 158, 240, 216, 60, 0, 0, 26, 241, 103, 0,
|
||||
114, 221, 23, 137, 214, 0, 0, 171, 199, 1, 0,
|
||||
162, 166, 0, 71, 251, 1, 74, 251, 46, 0, 0,
|
||||
127, 217, 19, 143, 203, 10, 223, 137, 0, 0, 0,
|
||||
15, 179, 244, 205, 47, 137, 224, 10, 0, 0, 0,
|
||||
0, 0, 0, 0, 45, 251, 75, 0, 0, 0, 0,
|
||||
0, 0, 0, 1, 198, 171, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 104, 241, 26, 0, 0, 0, 0, 0,
|
||||
0, 0, 23, 239, 108, 62, 212, 242, 164, 5, 0,
|
||||
0, 0, 166, 203, 5, 231, 120, 27, 234, 98, 0,
|
||||
0, 70, 252, 49, 26, 255, 46, 0, 191, 136, 0,
|
||||
8, 220, 142, 0, 4, 242, 112, 30, 237, 87, 0,
|
||||
132, 227, 12, 0, 0, 82, 225, 238, 144, 1, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x26' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 54, 198, 243, 208, 72, 0, 0, 0, 0,
|
||||
0, 19, 239, 143, 14, 140, 246, 28, 0, 0, 0,
|
||||
0, 96, 255, 33, 0, 38, 255, 94, 0, 0, 0,
|
||||
0, 116, 255, 44, 0, 65, 255, 83, 0, 0, 0,
|
||||
0, 74, 255, 126, 8, 195, 241, 20, 0, 0, 0,
|
||||
0, 3, 215, 240, 202, 248, 81, 0, 0, 0, 0,
|
||||
0, 2, 161, 255, 248, 49, 0, 0, 0, 0, 0,
|
||||
0, 165, 252, 188, 255, 125, 0, 147, 240, 0, 0,
|
||||
62, 255, 122, 3, 191, 253, 66, 168, 211, 0, 0,
|
||||
115, 255, 35, 0, 23, 230, 232, 231, 150, 0, 0,
|
||||
96, 255, 56, 0, 0, 62, 252, 255, 64, 0, 0,
|
||||
21, 235, 199, 40, 16, 94, 243, 254, 185, 2, 0,
|
||||
0, 44, 180, 235, 246, 197, 71, 128, 255, 129, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x27' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 4, 255, 235, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 245, 219, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 229, 203, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 212, 187, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x28' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 8, 177, 60, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 170, 241, 43, 0, 0, 0,
|
||||
0, 0, 0, 0, 108, 254, 72, 0, 0, 0, 0,
|
||||
0, 0, 0, 22, 243, 163, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 130, 251, 27, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 215, 186, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 31, 255, 110, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 64, 255, 77, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 85, 255, 58, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 67, 255, 79, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 37, 255, 113, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 1, 224, 190, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 134, 252, 32, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 25, 241, 170, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 109, 255, 79, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 2, 171, 244, 48, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 7, 176, 56, 0, 0, 0,
|
||||
},
|
||||
/* '0x29' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 76, 167, 4, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 69, 251, 153, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 106, 255, 90, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 233, 13, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 56, 255, 115, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 219, 207, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 143, 255, 16, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 109, 255, 52, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 87, 255, 62, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 105, 255, 40, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 137, 253, 11, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 212, 201, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 48, 255, 108, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 189, 229, 9, 0, 0, 0, 0,
|
||||
0, 0, 0, 98, 255, 82, 0, 0, 0, 0, 0,
|
||||
0, 0, 63, 249, 145, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 82, 162, 2, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x2a' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 163, 137, 0, 0, 0, 0, 0,
|
||||
0, 58, 169, 17, 144, 117, 27, 184, 36, 0, 0,
|
||||
0, 34, 167, 226, 182, 173, 235, 165, 30, 0, 0,
|
||||
0, 0, 0, 89, 253, 247, 69, 0, 0, 0, 0,
|
||||
0, 31, 161, 228, 189, 180, 233, 146, 23, 0, 0,
|
||||
0, 67, 169, 18, 146, 118, 30, 186, 37, 0, 0,
|
||||
0, 0, 0, 0, 163, 138, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x2b' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 208, 180, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 208, 180, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 208, 180, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 208, 180, 0, 0, 0, 0, 0,
|
||||
68, 255, 255, 255, 255, 255, 255, 255, 255, 40, 0,
|
||||
0, 0, 0, 0, 208, 180, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 208, 180, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 208, 180, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 208, 180, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x2c' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 42, 231, 182, 2, 0, 0, 0, 0,
|
||||
0, 0, 0, 86, 255, 255, 62, 0, 0, 0, 0,
|
||||
0, 0, 0, 7, 221, 255, 79, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 168, 252, 27, 0, 0, 0, 0,
|
||||
0, 0, 9, 83, 243, 138, 0, 0, 0, 0, 0,
|
||||
0, 0, 223, 207, 101, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x2d' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 172, 255, 255, 255, 255, 148, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x2e' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 48, 227, 200, 13, 0, 0, 0, 0,
|
||||
0, 0, 0, 136, 255, 255, 73, 0, 0, 0, 0,
|
||||
0, 0, 0, 51, 230, 204, 14, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x2f' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 40, 255, 76, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 142, 226, 3, 0, 0,
|
||||
0, 0, 0, 0, 0, 8, 237, 126, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 92, 252, 27, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 195, 176, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 42, 255, 73, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 145, 224, 2, 0, 0, 0, 0,
|
||||
0, 0, 0, 9, 238, 123, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 95, 251, 25, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 198, 173, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 45, 255, 70, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 148, 222, 1, 0, 0, 0, 0, 0, 0,
|
||||
0, 10, 240, 120, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 98, 250, 23, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 201, 171, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 44, 179, 241, 244, 186, 49, 0, 0, 0,
|
||||
0, 38, 240, 156, 20, 30, 178, 242, 35, 0, 0,
|
||||
0, 172, 220, 3, 0, 0, 13, 241, 160, 0, 0,
|
||||
5, 248, 138, 0, 0, 0, 104, 250, 234, 0, 0,
|
||||
39, 255, 97, 0, 4, 149, 202, 147, 255, 16, 0,
|
||||
52, 255, 85, 19, 190, 164, 8, 112, 255, 28, 0,
|
||||
42, 255, 129, 218, 120, 0, 0, 131, 255, 15, 0,
|
||||
9, 252, 242, 77, 0, 0, 0, 162, 230, 0, 0,
|
||||
0, 189, 214, 2, 0, 0, 10, 235, 148, 0, 0,
|
||||
0, 58, 250, 150, 20, 25, 173, 231, 25, 0, 0,
|
||||
0, 0, 65, 198, 247, 239, 173, 35, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '1' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 67, 206, 255, 52, 0, 0, 0, 0,
|
||||
0, 45, 183, 184, 151, 255, 52, 0, 0, 0, 0,
|
||||
0, 130, 117, 1, 128, 255, 52, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 128, 255, 52, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 128, 255, 52, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 128, 255, 52, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 128, 255, 52, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 128, 255, 52, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 128, 255, 52, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 128, 255, 52, 0, 0, 0, 0,
|
||||
0, 116, 255, 255, 255, 255, 255, 255, 196, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '2' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 6, 119, 215, 248, 225, 148, 16, 0, 0, 0,
|
||||
0, 77, 196, 56, 8, 65, 237, 182, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 139, 255, 27, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 113, 255, 51, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 179, 246, 13, 0, 0,
|
||||
0, 0, 0, 0, 0, 94, 255, 140, 0, 0, 0,
|
||||
0, 0, 0, 0, 74, 250, 201, 7, 0, 0, 0,
|
||||
0, 0, 0, 67, 247, 204, 17, 0, 0, 0, 0,
|
||||
0, 0, 59, 244, 198, 15, 0, 0, 0, 0, 0,
|
||||
0, 52, 241, 192, 12, 0, 0, 0, 0, 0, 0,
|
||||
0, 179, 255, 255, 255, 255, 255, 255, 220, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '3' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 64, 255, 255, 250, 222, 146, 19, 0, 0, 0,
|
||||
0, 0, 0, 0, 8, 66, 238, 185, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 148, 253, 10, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 165, 242, 2, 0, 0,
|
||||
0, 0, 0, 0, 12, 94, 250, 103, 0, 0, 0,
|
||||
0, 0, 40, 255, 255, 255, 187, 36, 0, 0, 0,
|
||||
0, 0, 0, 0, 8, 49, 179, 246, 49, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 13, 253, 146, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 31, 255, 127, 0, 0,
|
||||
0, 0, 0, 0, 10, 64, 202, 221, 20, 0, 0,
|
||||
0, 144, 255, 255, 244, 208, 131, 17, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '4' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 23, 239, 255, 120, 0, 0, 0,
|
||||
0, 0, 0, 0, 164, 234, 255, 120, 0, 0, 0,
|
||||
0, 0, 0, 65, 255, 96, 255, 120, 0, 0, 0,
|
||||
0, 0, 6, 215, 170, 24, 255, 120, 0, 0, 0,
|
||||
0, 0, 123, 242, 27, 24, 255, 120, 0, 0, 0,
|
||||
0, 33, 246, 112, 0, 24, 255, 120, 0, 0, 0,
|
||||
0, 180, 207, 3, 0, 24, 255, 120, 0, 0, 0,
|
||||
82, 254, 56, 0, 0, 24, 255, 120, 0, 0, 0,
|
||||
160, 255, 255, 255, 255, 255, 255, 255, 255, 112, 0,
|
||||
0, 0, 0, 0, 0, 24, 255, 120, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 24, 255, 120, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '5' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 255, 255, 255, 255, 244, 0, 0, 0,
|
||||
0, 60, 255, 52, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 52, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 52, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 255, 247, 222, 150, 36, 0, 0, 0,
|
||||
0, 0, 0, 0, 16, 68, 215, 238, 28, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 63, 255, 118, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 34, 255, 133, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 102, 255, 71, 0, 0,
|
||||
0, 0, 0, 0, 23, 100, 241, 158, 0, 0, 0,
|
||||
0, 112, 255, 255, 241, 189, 75, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '6' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 42, 151, 223, 249, 255, 28, 0, 0,
|
||||
0, 0, 88, 245, 148, 40, 6, 0, 0, 0, 0,
|
||||
0, 32, 248, 112, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 137, 236, 1, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 198, 190, 121, 222, 247, 214, 116, 3, 0, 0,
|
||||
0, 224, 245, 121, 27, 15, 105, 255, 122, 0, 0,
|
||||
0, 231, 172, 0, 0, 0, 0, 191, 221, 0, 0,
|
||||
0, 210, 193, 0, 0, 0, 0, 161, 247, 0, 0,
|
||||
0, 153, 243, 10, 0, 0, 0, 208, 198, 0, 0,
|
||||
0, 40, 247, 168, 27, 18, 134, 251, 53, 0, 0,
|
||||
0, 0, 59, 194, 246, 244, 186, 49, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '7' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 248, 255, 255, 255, 255, 255, 255, 204, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 18, 242, 141, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 133, 248, 26, 0, 0,
|
||||
0, 0, 0, 0, 0, 18, 242, 151, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 133, 251, 33, 0, 0, 0,
|
||||
0, 0, 0, 0, 18, 242, 161, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 133, 253, 40, 0, 0, 0, 0,
|
||||
0, 0, 0, 18, 242, 170, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 133, 255, 48, 0, 0, 0, 0, 0,
|
||||
0, 0, 18, 242, 180, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 132, 255, 57, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '8' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 74, 194, 237, 240, 201, 89, 0, 0, 0,
|
||||
0, 71, 254, 113, 14, 18, 136, 255, 72, 0, 0,
|
||||
0, 162, 232, 0, 0, 0, 5, 252, 142, 0, 0,
|
||||
0, 143, 251, 35, 0, 0, 46, 255, 107, 0, 0,
|
||||
0, 27, 223, 229, 79, 63, 225, 189, 8, 0, 0,
|
||||
0, 0, 26, 225, 255, 255, 212, 17, 0, 0, 0,
|
||||
0, 38, 221, 205, 51, 88, 230, 224, 36, 0, 0,
|
||||
0, 188, 231, 12, 0, 0, 31, 246, 173, 0, 0,
|
||||
0, 231, 196, 0, 0, 0, 0, 219, 209, 0, 0,
|
||||
0, 158, 252, 100, 14, 16, 114, 254, 113, 0, 0,
|
||||
0, 8, 127, 214, 244, 239, 199, 93, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '9' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 64, 196, 247, 239, 170, 31, 0, 0, 0,
|
||||
0, 83, 254, 111, 15, 39, 191, 223, 12, 0, 0,
|
||||
2, 230, 180, 0, 0, 0, 37, 255, 106, 0, 0,
|
||||
24, 255, 133, 0, 0, 0, 0, 228, 171, 0, 0,
|
||||
4, 249, 160, 0, 0, 0, 0, 205, 196, 0, 0,
|
||||
0, 154, 247, 81, 11, 34, 136, 251, 194, 0, 0,
|
||||
0, 9, 135, 220, 249, 216, 106, 216, 169, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 11, 248, 108, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 125, 236, 15, 0, 0,
|
||||
0, 0, 0, 12, 54, 154, 238, 64, 0, 0, 0,
|
||||
0, 108, 254, 241, 207, 138, 28, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x3a' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 23, 216, 200, 10, 0, 0, 0, 0,
|
||||
0, 0, 0, 89, 255, 255, 63, 0, 0, 0, 0,
|
||||
0, 0, 0, 25, 218, 203, 11, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 23, 216, 200, 10, 0, 0, 0, 0,
|
||||
0, 0, 0, 89, 255, 255, 63, 0, 0, 0, 0,
|
||||
0, 0, 0, 25, 218, 203, 11, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x3b' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 23, 216, 200, 10, 0, 0, 0, 0,
|
||||
0, 0, 0, 89, 255, 255, 63, 0, 0, 0, 0,
|
||||
0, 0, 0, 25, 218, 203, 11, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 26, 224, 198, 10, 0, 0, 0, 0,
|
||||
0, 0, 0, 62, 255, 255, 86, 0, 0, 0, 0,
|
||||
0, 0, 0, 1, 199, 255, 103, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 141, 255, 47, 0, 0, 0, 0,
|
||||
0, 0, 7, 70, 234, 162, 0, 0, 0, 0, 0,
|
||||
0, 0, 197, 213, 115, 3, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x3c' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 123, 149, 0, 0, 0,
|
||||
0, 0, 0, 0, 6, 162, 253, 117, 0, 0, 0,
|
||||
0, 0, 0, 20, 195, 243, 77, 0, 0, 0, 0,
|
||||
0, 0, 41, 221, 224, 45, 0, 0, 0, 0, 0,
|
||||
0, 68, 239, 198, 22, 0, 0, 0, 0, 0, 0,
|
||||
0, 69, 240, 202, 25, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 41, 221, 227, 48, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 20, 195, 244, 79, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 6, 162, 253, 117, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 124, 150, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x3d' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 212, 255, 255, 255, 255, 255, 255, 188, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 212, 255, 255, 255, 255, 255, 255, 188, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x3e' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 3, 167, 102, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 2, 138, 255, 141, 2, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 98, 250, 177, 11, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 63, 237, 206, 27, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 36, 216, 229, 51, 0, 0,
|
||||
0, 0, 0, 0, 0, 32, 211, 229, 51, 0, 0,
|
||||
0, 0, 0, 0, 59, 234, 207, 28, 0, 0, 0,
|
||||
0, 0, 0, 95, 249, 178, 11, 0, 0, 0, 0,
|
||||
0, 2, 136, 255, 142, 2, 0, 0, 0, 0, 0,
|
||||
0, 3, 167, 103, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x3f' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 87, 239, 204, 120, 11, 0, 0, 0, 0,
|
||||
0, 0, 0, 25, 90, 226, 219, 26, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 40, 245, 181, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 170, 254, 10, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 153, 253, 8, 0, 0,
|
||||
0, 0, 0, 0, 2, 47, 229, 185, 0, 0, 0,
|
||||
0, 0, 0, 117, 255, 231, 159, 22, 0, 0, 0,
|
||||
0, 0, 0, 110, 255, 1, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 103, 251, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 96, 246, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 157, 239, 57, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 160, 239, 59, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x40' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 63, 195, 247, 227, 126, 3, 0, 0,
|
||||
0, 0, 88, 239, 93, 10, 50, 216, 146, 0, 0,
|
||||
0, 35, 246, 79, 0, 0, 0, 52, 252, 30, 0,
|
||||
0, 156, 179, 0, 0, 0, 0, 0, 215, 106, 0,
|
||||
16, 245, 71, 0, 0, 0, 0, 0, 163, 155, 0,
|
||||
85, 236, 3, 25, 188, 244, 214, 118, 136, 184, 0,
|
||||
142, 183, 0, 182, 168, 43, 255, 87, 124, 196, 0,
|
||||
189, 135, 31, 255, 55, 53, 255, 51, 122, 193, 0,
|
||||
208, 112, 93, 252, 5, 87, 255, 15, 132, 179, 0,
|
||||
224, 96, 126, 231, 0, 121, 234, 0, 156, 150, 0,
|
||||
226, 92, 130, 226, 0, 159, 205, 0, 199, 99, 0,
|
||||
212, 105, 101, 245, 38, 229, 217, 45, 243, 21, 0,
|
||||
180, 139, 18, 205, 232, 70, 210, 237, 92, 0, 0,
|
||||
126, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
41, 254, 55, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 226, 66, 8, 39, 125, 102, 0, 0, 0,
|
||||
0, 4, 124, 222, 249, 225, 161, 41, 0, 0, 0,
|
||||
},
|
||||
/* 'A' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 69, 246, 255, 55, 0, 0, 0, 0,
|
||||
0, 0, 0, 157, 165, 214, 143, 0, 0, 0, 0,
|
||||
0, 0, 6, 239, 87, 135, 228, 1, 0, 0, 0,
|
||||
0, 0, 79, 250, 15, 56, 255, 62, 0, 0, 0,
|
||||
0, 0, 167, 187, 0, 1, 231, 150, 0, 0, 0,
|
||||
0, 11, 244, 109, 0, 0, 154, 234, 3, 0, 0,
|
||||
0, 89, 255, 31, 0, 0, 75, 255, 69, 0, 0,
|
||||
0, 178, 255, 255, 255, 255, 255, 255, 157, 0, 0,
|
||||
16, 249, 97, 0, 0, 0, 0, 146, 238, 5, 0,
|
||||
99, 255, 29, 0, 0, 0, 0, 76, 255, 76, 0,
|
||||
188, 217, 0, 0, 0, 0, 0, 12, 250, 164, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'B' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 156, 255, 255, 254, 233, 189, 69, 0, 0, 0,
|
||||
0, 156, 244, 0, 3, 37, 178, 250, 46, 0, 0,
|
||||
0, 156, 244, 0, 0, 0, 44, 255, 115, 0, 0,
|
||||
0, 156, 244, 0, 0, 0, 59, 255, 102, 0, 0,
|
||||
0, 156, 244, 0, 3, 45, 201, 214, 14, 0, 0,
|
||||
0, 156, 255, 255, 255, 255, 241, 90, 0, 0, 0,
|
||||
0, 156, 244, 0, 3, 34, 146, 255, 123, 0, 0,
|
||||
0, 156, 244, 0, 0, 0, 0, 213, 222, 0, 0,
|
||||
0, 156, 244, 0, 0, 0, 0, 216, 213, 0, 0,
|
||||
0, 156, 244, 0, 1, 26, 132, 254, 93, 0, 0,
|
||||
0, 156, 255, 255, 251, 226, 175, 63, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'C' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 4, 110, 205, 245, 231, 177, 49, 0, 0,
|
||||
0, 3, 183, 236, 92, 14, 12, 82, 151, 0, 0,
|
||||
0, 116, 255, 69, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 222, 203, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
23, 255, 153, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
43, 255, 125, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
34, 255, 136, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
3, 243, 186, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 160, 251, 42, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 23, 223, 225, 79, 12, 12, 83, 151, 0, 0,
|
||||
0, 0, 20, 141, 219, 249, 228, 165, 38, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'D' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
12, 255, 255, 255, 245, 214, 141, 23, 0, 0, 0,
|
||||
12, 255, 132, 0, 24, 69, 204, 230, 31, 0, 0,
|
||||
12, 255, 132, 0, 0, 0, 19, 238, 175, 0, 0,
|
||||
12, 255, 132, 0, 0, 0, 0, 158, 252, 10, 0,
|
||||
12, 255, 132, 0, 0, 0, 0, 115, 255, 48, 0,
|
||||
12, 255, 132, 0, 0, 0, 0, 103, 255, 58, 0,
|
||||
12, 255, 132, 0, 0, 0, 0, 118, 255, 39, 0,
|
||||
12, 255, 132, 0, 0, 0, 0, 171, 237, 3, 0,
|
||||
12, 255, 132, 0, 0, 0, 40, 249, 137, 0, 0,
|
||||
12, 255, 132, 0, 19, 90, 229, 190, 10, 0, 0,
|
||||
12, 255, 255, 251, 230, 191, 99, 3, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'E' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 255, 255, 255, 255, 255, 76, 0, 0,
|
||||
0, 60, 255, 84, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 84, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 84, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 84, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 255, 255, 255, 255, 255, 28, 0, 0,
|
||||
0, 60, 255, 84, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 84, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 84, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 84, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 255, 255, 255, 255, 255, 76, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'F' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 52, 255, 255, 255, 255, 255, 255, 72, 0, 0,
|
||||
0, 52, 255, 104, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 52, 255, 104, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 52, 255, 104, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 52, 255, 104, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 52, 255, 255, 255, 255, 255, 255, 8, 0, 0,
|
||||
0, 52, 255, 104, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 52, 255, 104, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 52, 255, 104, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 52, 255, 104, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 52, 255, 104, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'G' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 9, 116, 204, 244, 235, 183, 60, 0, 0,
|
||||
0, 16, 205, 225, 84, 14, 11, 75, 165, 0, 0,
|
||||
0, 163, 241, 31, 0, 0, 0, 0, 0, 0, 0,
|
||||
24, 253, 141, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
82, 255, 90, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
103, 255, 63, 0, 0, 255, 255, 255, 228, 0, 0,
|
||||
91, 255, 82, 0, 0, 0, 0, 168, 228, 0, 0,
|
||||
44, 255, 126, 0, 0, 0, 0, 168, 228, 0, 0,
|
||||
0, 205, 230, 9, 0, 0, 0, 168, 228, 0, 0,
|
||||
0, 47, 239, 196, 58, 8, 13, 184, 228, 0, 0,
|
||||
0, 0, 33, 156, 225, 251, 243, 203, 119, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'H' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
8, 255, 140, 0, 0, 0, 0, 164, 240, 0, 0,
|
||||
8, 255, 140, 0, 0, 0, 0, 164, 240, 0, 0,
|
||||
8, 255, 140, 0, 0, 0, 0, 164, 240, 0, 0,
|
||||
8, 255, 140, 0, 0, 0, 0, 164, 240, 0, 0,
|
||||
8, 255, 140, 0, 0, 0, 0, 164, 240, 0, 0,
|
||||
8, 255, 255, 255, 255, 255, 255, 255, 240, 0, 0,
|
||||
8, 255, 140, 0, 0, 0, 0, 164, 240, 0, 0,
|
||||
8, 255, 140, 0, 0, 0, 0, 164, 240, 0, 0,
|
||||
8, 255, 140, 0, 0, 0, 0, 164, 240, 0, 0,
|
||||
8, 255, 140, 0, 0, 0, 0, 164, 240, 0, 0,
|
||||
8, 255, 140, 0, 0, 0, 0, 164, 240, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'I' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 124, 255, 255, 255, 255, 255, 255, 100, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 124, 255, 255, 255, 255, 255, 255, 100, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'J' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 64, 255, 255, 255, 255, 255, 180, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 224, 180, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 224, 180, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 224, 180, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 224, 180, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 224, 180, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 224, 180, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 225, 175, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 7, 249, 139, 0, 0, 0,
|
||||
0, 90, 115, 21, 17, 150, 247, 36, 0, 0, 0,
|
||||
0, 17, 153, 235, 247, 196, 52, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'K' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 160, 240, 0, 0, 0, 63, 252, 149, 0, 0,
|
||||
0, 160, 240, 0, 0, 21, 229, 188, 4, 0, 0,
|
||||
0, 160, 240, 0, 1, 185, 219, 18, 0, 0, 0,
|
||||
0, 160, 240, 0, 124, 240, 40, 0, 0, 0, 0,
|
||||
0, 160, 240, 63, 249, 72, 0, 0, 0, 0, 0,
|
||||
0, 160, 241, 219, 174, 0, 0, 0, 0, 0, 0,
|
||||
0, 160, 240, 91, 254, 90, 0, 0, 0, 0, 0,
|
||||
0, 160, 240, 0, 143, 248, 60, 0, 0, 0, 0,
|
||||
0, 160, 240, 0, 4, 190, 235, 35, 0, 0, 0,
|
||||
0, 160, 240, 0, 0, 21, 225, 216, 17, 0, 0,
|
||||
0, 160, 240, 0, 0, 0, 51, 247, 191, 6, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'L' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 244, 164, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 244, 164, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 244, 164, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 244, 164, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 244, 164, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 244, 164, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 244, 164, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 244, 164, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 244, 164, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 244, 164, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 244, 255, 255, 255, 255, 255, 168, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'M' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
6, 255, 246, 13, 0, 0, 47, 255, 238, 0, 0,
|
||||
20, 255, 236, 95, 0, 0, 143, 232, 251, 0, 0,
|
||||
33, 255, 132, 186, 0, 4, 229, 110, 255, 8, 0,
|
||||
46, 255, 38, 242, 23, 77, 178, 72, 255, 21, 0,
|
||||
59, 255, 18, 164, 110, 170, 81, 64, 255, 34, 0,
|
||||
72, 255, 11, 68, 204, 223, 5, 57, 255, 47, 0,
|
||||
85, 255, 5, 2, 225, 144, 0, 50, 255, 60, 0,
|
||||
98, 254, 0, 0, 0, 0, 0, 42, 255, 73, 0,
|
||||
111, 248, 0, 0, 0, 0, 0, 35, 255, 86, 0,
|
||||
124, 241, 0, 0, 0, 0, 0, 27, 255, 99, 0,
|
||||
137, 235, 0, 0, 0, 0, 0, 20, 255, 113, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'N' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 244, 255, 72, 0, 0, 0, 152, 220, 0, 0,
|
||||
0, 244, 206, 185, 0, 0, 0, 152, 220, 0, 0,
|
||||
0, 244, 131, 227, 43, 0, 0, 152, 220, 0, 0,
|
||||
0, 244, 128, 128, 156, 0, 0, 152, 220, 0, 0,
|
||||
0, 244, 128, 23, 240, 21, 0, 152, 220, 0, 0,
|
||||
0, 244, 128, 0, 158, 126, 0, 152, 220, 0, 0,
|
||||
0, 244, 128, 0, 44, 231, 7, 152, 220, 0, 0,
|
||||
0, 244, 128, 0, 0, 186, 95, 152, 220, 0, 0,
|
||||
0, 244, 128, 0, 0, 73, 201, 152, 220, 0, 0,
|
||||
0, 244, 128, 0, 0, 1, 213, 202, 220, 0, 0,
|
||||
0, 244, 128, 0, 0, 0, 101, 255, 220, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'O' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 58, 185, 243, 244, 196, 72, 0, 0, 0,
|
||||
0, 71, 250, 136, 17, 21, 145, 254, 82, 0, 0,
|
||||
3, 222, 190, 0, 0, 0, 0, 205, 226, 2, 0,
|
||||
61, 255, 96, 0, 0, 0, 0, 117, 255, 50, 0,
|
||||
109, 255, 53, 0, 0, 0, 0, 79, 255, 89, 0,
|
||||
124, 255, 37, 0, 0, 0, 0, 62, 255, 99, 0,
|
||||
113, 255, 54, 0, 0, 0, 0, 81, 255, 83, 0,
|
||||
75, 255, 91, 0, 0, 0, 0, 124, 255, 33, 0,
|
||||
11, 242, 180, 0, 0, 0, 5, 216, 197, 0, 0,
|
||||
0, 109, 255, 124, 15, 22, 166, 243, 47, 0, 0,
|
||||
0, 0, 92, 205, 247, 239, 175, 44, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'P' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 156, 255, 255, 253, 230, 179, 66, 0, 0, 0,
|
||||
0, 156, 244, 0, 3, 37, 167, 252, 78, 0, 0,
|
||||
0, 156, 244, 0, 0, 0, 4, 227, 207, 0, 0,
|
||||
0, 156, 244, 0, 0, 0, 0, 191, 232, 0, 0,
|
||||
0, 156, 244, 0, 0, 0, 7, 231, 181, 0, 0,
|
||||
0, 156, 244, 0, 5, 42, 173, 242, 46, 0, 0,
|
||||
0, 156, 255, 255, 252, 230, 162, 37, 0, 0, 0,
|
||||
0, 156, 244, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 156, 244, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 156, 244, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 156, 244, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'Q' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 54, 182, 242, 244, 196, 72, 0, 0, 0,
|
||||
0, 65, 249, 136, 17, 22, 148, 254, 82, 0, 0,
|
||||
1, 218, 190, 0, 0, 0, 0, 206, 226, 2, 0,
|
||||
57, 255, 94, 0, 0, 0, 0, 117, 255, 51, 0,
|
||||
106, 255, 53, 0, 0, 0, 0, 79, 255, 90, 0,
|
||||
122, 255, 37, 0, 0, 0, 0, 62, 255, 99, 0,
|
||||
105, 255, 54, 0, 0, 0, 0, 80, 255, 84, 0,
|
||||
75, 255, 92, 0, 0, 0, 0, 123, 255, 37, 0,
|
||||
9, 238, 180, 0, 0, 0, 4, 215, 203, 0, 0,
|
||||
0, 121, 255, 124, 15, 22, 165, 247, 55, 0, 0,
|
||||
0, 0, 105, 218, 255, 250, 186, 52, 0, 0, 0,
|
||||
0, 0, 0, 0, 198, 178, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 106, 253, 88, 13, 92, 133, 0,
|
||||
0, 0, 0, 0, 0, 116, 220, 245, 204, 77, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'R' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 128, 255, 255, 254, 237, 178, 46, 0, 0, 0,
|
||||
0, 128, 255, 16, 3, 47, 209, 231, 18, 0, 0,
|
||||
0, 128, 255, 16, 0, 0, 87, 255, 77, 0, 0,
|
||||
0, 128, 255, 16, 0, 0, 98, 255, 68, 0, 0,
|
||||
0, 128, 255, 16, 7, 62, 225, 203, 3, 0, 0,
|
||||
0, 128, 255, 255, 255, 254, 138, 12, 0, 0, 0,
|
||||
0, 128, 255, 16, 36, 210, 226, 27, 0, 0, 0,
|
||||
0, 128, 255, 16, 0, 55, 255, 165, 0, 0, 0,
|
||||
0, 128, 255, 16, 0, 0, 186, 251, 29, 0, 0,
|
||||
0, 128, 255, 16, 0, 0, 64, 255, 141, 0, 0,
|
||||
0, 128, 255, 16, 0, 0, 0, 197, 242, 15, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'S' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 78, 189, 240, 248, 194, 77, 0, 0, 0,
|
||||
0, 97, 255, 123, 24, 7, 58, 183, 7, 0, 0,
|
||||
0, 201, 211, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 196, 243, 31, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 68, 248, 239, 133, 33, 0, 0, 0, 0, 0,
|
||||
0, 0, 38, 162, 248, 254, 181, 46, 0, 0, 0,
|
||||
0, 0, 0, 0, 16, 110, 232, 249, 59, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 28, 246, 178, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 3, 244, 174, 0, 0,
|
||||
7, 187, 70, 15, 6, 35, 160, 251, 66, 0, 0,
|
||||
0, 77, 182, 238, 247, 223, 164, 54, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'T' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
64, 255, 255, 255, 255, 255, 255, 255, 255, 36, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'U' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
12, 255, 132, 0, 0, 0, 0, 156, 244, 0, 0,
|
||||
12, 255, 132, 0, 0, 0, 0, 156, 244, 0, 0,
|
||||
12, 255, 132, 0, 0, 0, 0, 156, 244, 0, 0,
|
||||
12, 255, 132, 0, 0, 0, 0, 156, 244, 0, 0,
|
||||
12, 255, 132, 0, 0, 0, 0, 156, 244, 0, 0,
|
||||
12, 255, 132, 0, 0, 0, 0, 156, 244, 0, 0,
|
||||
12, 255, 132, 0, 0, 0, 0, 156, 244, 0, 0,
|
||||
5, 253, 137, 0, 0, 0, 0, 163, 235, 0, 0,
|
||||
0, 222, 175, 0, 0, 0, 0, 209, 186, 0, 0,
|
||||
0, 109, 253, 100, 17, 21, 130, 251, 62, 0, 0,
|
||||
0, 1, 111, 213, 249, 243, 186, 49, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'V' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
204, 239, 6, 0, 0, 0, 0, 8, 242, 174, 0,
|
||||
115, 255, 76, 0, 0, 0, 0, 81, 255, 83, 0,
|
||||
28, 254, 162, 0, 0, 0, 0, 167, 240, 8, 0,
|
||||
0, 194, 240, 6, 0, 0, 8, 243, 157, 0, 0,
|
||||
0, 105, 255, 77, 0, 0, 82, 255, 66, 0, 0,
|
||||
0, 20, 251, 163, 0, 0, 168, 229, 2, 0, 0,
|
||||
0, 0, 183, 241, 7, 9, 243, 140, 0, 0, 0,
|
||||
0, 0, 95, 255, 77, 82, 255, 49, 0, 0, 0,
|
||||
0, 0, 14, 247, 160, 167, 214, 0, 0, 0, 0,
|
||||
0, 0, 0, 173, 238, 243, 123, 0, 0, 0, 0,
|
||||
0, 0, 0, 84, 255, 255, 33, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'W' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
147, 230, 0, 0, 0, 0, 0, 0, 235, 118, 0,
|
||||
128, 245, 0, 0, 0, 0, 0, 0, 248, 101, 0,
|
||||
110, 255, 3, 0, 0, 0, 0, 5, 255, 83, 0,
|
||||
91, 255, 17, 0, 0, 0, 0, 19, 255, 65, 0,
|
||||
73, 255, 31, 0, 197, 163, 0, 33, 255, 47, 0,
|
||||
54, 255, 45, 23, 237, 242, 8, 46, 255, 29, 0,
|
||||
36, 255, 59, 102, 153, 215, 82, 60, 255, 12, 0,
|
||||
17, 255, 73, 182, 75, 131, 170, 73, 249, 0, 0,
|
||||
1, 253, 109, 233, 6, 42, 245, 101, 232, 0, 0,
|
||||
0, 236, 230, 162, 0, 0, 209, 227, 214, 0, 0,
|
||||
0, 217, 255, 78, 0, 0, 120, 255, 196, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'X' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
55, 252, 175, 0, 0, 0, 1, 189, 241, 29, 0,
|
||||
0, 140, 255, 104, 0, 0, 108, 255, 101, 0, 0,
|
||||
0, 9, 218, 246, 43, 35, 245, 187, 0, 0, 0,
|
||||
0, 0, 60, 254, 210, 196, 242, 31, 0, 0, 0,
|
||||
0, 0, 0, 146, 255, 255, 104, 0, 0, 0, 0,
|
||||
0, 0, 0, 51, 255, 255, 45, 0, 0, 0, 0,
|
||||
0, 0, 3, 200, 247, 254, 200, 2, 0, 0, 0,
|
||||
0, 0, 122, 255, 111, 153, 255, 112, 0, 0, 0,
|
||||
0, 45, 249, 195, 2, 14, 226, 244, 32, 0, 0,
|
||||
5, 206, 246, 36, 0, 0, 72, 255, 184, 0, 0,
|
||||
129, 255, 113, 0, 0, 0, 0, 160, 255, 93, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'Y' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
180, 253, 47, 0, 0, 0, 0, 46, 253, 151, 0,
|
||||
36, 248, 190, 0, 0, 0, 0, 185, 237, 19, 0,
|
||||
0, 133, 255, 80, 0, 0, 72, 255, 105, 0, 0,
|
||||
0, 10, 226, 219, 6, 3, 211, 207, 2, 0, 0,
|
||||
0, 0, 85, 255, 110, 99, 255, 59, 0, 0, 0,
|
||||
0, 0, 0, 188, 233, 228, 163, 0, 0, 0, 0,
|
||||
0, 0, 0, 41, 250, 242, 25, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 216, 188, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'Z' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 220, 255, 255, 255, 255, 255, 255, 167, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 110, 245, 30, 0, 0,
|
||||
0, 0, 0, 0, 0, 23, 240, 120, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 163, 216, 6, 0, 0, 0,
|
||||
0, 0, 0, 0, 62, 254, 67, 0, 0, 0, 0,
|
||||
0, 0, 0, 4, 211, 168, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 114, 243, 27, 0, 0, 0, 0, 0,
|
||||
0, 0, 26, 242, 114, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 168, 211, 4, 0, 0, 0, 0, 0, 0,
|
||||
0, 66, 254, 61, 0, 0, 0, 0, 0, 0, 0,
|
||||
1, 215, 255, 255, 255, 255, 255, 255, 232, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x5b' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 255, 255, 255, 92, 0, 0, 0,
|
||||
0, 0, 0, 248, 124, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 124, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 124, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 124, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 124, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 124, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 124, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 124, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 124, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 124, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 124, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 124, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 124, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 124, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 124, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 255, 255, 255, 92, 0, 0, 0,
|
||||
},
|
||||
/* '0x5c' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 101, 249, 21, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 12, 242, 117, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 151, 219, 1, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 48, 255, 67, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 201, 170, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 98, 250, 23, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 10, 240, 120, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 148, 221, 1, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 45, 255, 70, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 198, 173, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 95, 251, 25, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 9, 239, 123, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 145, 224, 2, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 42, 255, 73, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 195, 176, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x5d' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 120, 255, 255, 255, 220, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 156, 220, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 156, 220, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 156, 220, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 156, 220, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 156, 220, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 156, 220, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 156, 220, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 156, 220, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 156, 220, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 156, 220, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 156, 220, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 156, 220, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 156, 220, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 156, 220, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 156, 220, 0, 0, 0, 0,
|
||||
0, 0, 120, 255, 255, 255, 220, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x5e' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 15, 237, 205, 1, 0, 0, 0, 0,
|
||||
0, 0, 0, 134, 201, 244, 95, 0, 0, 0, 0,
|
||||
0, 0, 25, 245, 59, 129, 228, 10, 0, 0, 0,
|
||||
0, 0, 153, 185, 0, 13, 233, 127, 0, 0, 0,
|
||||
0, 38, 251, 55, 0, 0, 108, 244, 26, 0, 0,
|
||||
0, 171, 181, 0, 0, 0, 5, 220, 159, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x5f' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
255, 255, 255, 255, 255, 255, 255, 255, 255, 228, 0,
|
||||
},
|
||||
/* '0x60' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 20, 176, 248, 78, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 103, 240, 91, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'a' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 81, 187, 241, 239, 191, 63, 0, 0, 0,
|
||||
0, 23, 181, 64, 9, 28, 182, 244, 32, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 48, 255, 96, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 24, 255, 116, 0, 0,
|
||||
0, 1, 111, 208, 240, 255, 255, 255, 116, 0, 0,
|
||||
0, 122, 254, 100, 15, 0, 24, 255, 116, 0, 0,
|
||||
0, 197, 212, 0, 0, 0, 45, 255, 116, 0, 0,
|
||||
0, 163, 244, 52, 12, 95, 229, 253, 116, 0, 0,
|
||||
0, 24, 175, 239, 244, 184, 56, 239, 116, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'b' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 239, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 231, 37, 179, 244, 233, 118, 0, 0, 0,
|
||||
0, 152, 239, 225, 102, 15, 114, 255, 73, 0, 0,
|
||||
0, 152, 255, 87, 0, 0, 0, 223, 176, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 174, 218, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 160, 237, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 181, 213, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 13, 241, 139, 0, 0,
|
||||
0, 152, 246, 57, 9, 37, 186, 226, 21, 0, 0,
|
||||
0, 70, 180, 231, 250, 233, 159, 27, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'c' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 97, 205, 247, 224, 141, 7, 0, 0,
|
||||
0, 0, 128, 250, 117, 22, 33, 121, 61, 0, 0,
|
||||
0, 40, 250, 133, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 124, 255, 35, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 151, 255, 5, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 136, 255, 26, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 76, 255, 106, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 2, 193, 241, 95, 19, 30, 127, 62, 0, 0,
|
||||
0, 0, 10, 135, 220, 249, 221, 132, 6, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'd' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 24, 255, 116, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 24, 255, 116, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 24, 255, 116, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 24, 255, 116, 0, 0,
|
||||
0, 0, 37, 168, 236, 249, 225, 255, 116, 0, 0,
|
||||
0, 35, 238, 169, 34, 11, 79, 255, 116, 0, 0,
|
||||
0, 166, 229, 6, 0, 0, 24, 255, 116, 0, 0,
|
||||
0, 239, 162, 0, 0, 0, 24, 255, 116, 0, 0,
|
||||
6, 255, 138, 0, 0, 0, 24, 255, 116, 0, 0,
|
||||
0, 245, 150, 0, 0, 0, 27, 255, 116, 0, 0,
|
||||
0, 205, 196, 0, 0, 0, 156, 255, 116, 0, 0,
|
||||
0, 102, 254, 90, 17, 142, 192, 247, 116, 0, 0,
|
||||
0, 0, 126, 238, 239, 153, 12, 239, 116, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'e' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 32, 169, 240, 245, 187, 43, 0, 0, 0,
|
||||
0, 17, 230, 177, 28, 31, 171, 246, 33, 0, 0,
|
||||
0, 138, 240, 15, 0, 0, 12, 240, 152, 0, 0,
|
||||
0, 221, 183, 0, 0, 0, 0, 200, 198, 0, 0,
|
||||
0, 241, 255, 255, 255, 255, 255, 255, 216, 0, 0,
|
||||
0, 215, 178, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 169, 233, 11, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 50, 249, 183, 46, 5, 0, 0, 0, 0, 0,
|
||||
0, 0, 54, 182, 238, 254, 255, 255, 100, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'f' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 43, 178, 231, 255, 255, 60, 0,
|
||||
0, 0, 0, 16, 230, 189, 32, 0, 0, 0, 0,
|
||||
0, 0, 0, 82, 255, 55, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 113, 255, 25, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 116, 255, 24, 0, 0, 0, 0, 0,
|
||||
76, 255, 255, 255, 255, 255, 255, 255, 248, 0, 0,
|
||||
0, 0, 0, 116, 255, 24, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 116, 255, 24, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 116, 255, 24, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 116, 255, 24, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 116, 255, 24, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 116, 255, 24, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 116, 255, 24, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'g' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 62, 194, 242, 255, 255, 255, 255, 44, 0,
|
||||
0, 44, 248, 153, 19, 42, 214, 238, 10, 0, 0,
|
||||
0, 132, 251, 9, 0, 0, 92, 255, 55, 0, 0,
|
||||
0, 146, 251, 8, 0, 0, 93, 255, 44, 0, 0,
|
||||
0, 54, 253, 150, 17, 42, 215, 203, 2, 0, 0,
|
||||
0, 82, 247, 197, 246, 230, 159, 24, 0, 0, 0,
|
||||
0, 194, 174, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 181, 222, 48, 20, 10, 0, 0, 0, 0, 0,
|
||||
0, 68, 255, 236, 234, 243, 244, 191, 55, 0, 0,
|
||||
4, 222, 206, 9, 0, 0, 24, 198, 238, 4, 0,
|
||||
34, 255, 126, 0, 0, 0, 0, 147, 255, 22, 0,
|
||||
3, 232, 212, 52, 8, 19, 90, 244, 175, 0, 0,
|
||||
0, 41, 170, 232, 252, 246, 210, 122, 7, 0, 0,
|
||||
},
|
||||
/* 'h' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 235, 36, 184, 247, 221, 94, 0, 0, 0,
|
||||
0, 152, 243, 222, 88, 12, 138, 252, 39, 0, 0,
|
||||
0, 152, 253, 75, 0, 0, 26, 255, 103, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 127, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 128, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 128, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 128, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 128, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 128, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'i' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 24, 223, 211, 11, 0, 0, 0, 0,
|
||||
0, 0, 0, 24, 224, 211, 11, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 52, 255, 255, 255, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 124, 255, 255, 255, 255, 255, 255, 152, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'j' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 123, 245, 104, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 124, 245, 105, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 124, 255, 255, 255, 255, 255, 100, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 40, 255, 100, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 40, 255, 100, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 40, 255, 100, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 40, 255, 100, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 40, 255, 100, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 40, 255, 100, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 40, 255, 100, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 40, 255, 100, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 58, 255, 89, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 120, 255, 41, 0, 0, 0,
|
||||
0, 151, 59, 8, 66, 238, 164, 0, 0, 0, 0,
|
||||
0, 60, 203, 250, 228, 131, 7, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'k' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 104, 255, 32, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 104, 255, 32, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 104, 255, 32, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 104, 255, 32, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 104, 255, 32, 0, 0, 104, 254, 150, 1, 0,
|
||||
0, 104, 255, 32, 0, 103, 254, 143, 0, 0, 0,
|
||||
0, 104, 255, 32, 102, 254, 135, 0, 0, 0, 0,
|
||||
0, 104, 255, 133, 254, 128, 0, 0, 0, 0, 0,
|
||||
0, 104, 255, 159, 255, 100, 0, 0, 0, 0, 0,
|
||||
0, 104, 255, 33, 169, 251, 73, 0, 0, 0, 0,
|
||||
0, 104, 255, 32, 9, 203, 243, 50, 0, 0, 0,
|
||||
0, 104, 255, 32, 0, 26, 229, 230, 31, 0, 0,
|
||||
0, 104, 255, 32, 0, 0, 52, 246, 214, 17, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'l' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 52, 255, 255, 255, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 152, 244, 0, 0, 0, 0, 0,
|
||||
0, 124, 255, 255, 255, 255, 255, 255, 152, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'm' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
52, 252, 53, 226, 222, 32, 164, 242, 124, 0, 0,
|
||||
52, 255, 202, 37, 219, 204, 137, 106, 246, 4, 0,
|
||||
52, 255, 127, 0, 193, 231, 9, 77, 255, 24, 0,
|
||||
52, 255, 52, 0, 192, 164, 0, 76, 255, 28, 0,
|
||||
52, 255, 52, 0, 192, 164, 0, 76, 255, 28, 0,
|
||||
52, 255, 52, 0, 192, 164, 0, 76, 255, 28, 0,
|
||||
52, 255, 52, 0, 192, 164, 0, 76, 255, 28, 0,
|
||||
52, 255, 52, 0, 192, 164, 0, 76, 255, 28, 0,
|
||||
52, 255, 52, 0, 192, 164, 0, 76, 255, 28, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'n' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 201, 49, 191, 247, 222, 97, 0, 0, 0,
|
||||
0, 152, 238, 231, 80, 12, 136, 253, 41, 0, 0,
|
||||
0, 152, 253, 70, 0, 0, 26, 255, 104, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 127, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 128, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 128, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 128, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 128, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 128, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'o' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 54, 183, 242, 246, 194, 69, 0, 0, 0,
|
||||
0, 51, 248, 148, 17, 29, 157, 253, 71, 0, 0,
|
||||
0, 196, 204, 0, 0, 0, 3, 221, 198, 0, 0,
|
||||
21, 255, 124, 0, 0, 0, 0, 152, 252, 6, 0,
|
||||
43, 255, 102, 0, 0, 0, 0, 127, 255, 18, 0,
|
||||
28, 255, 124, 0, 0, 0, 0, 150, 247, 3, 0,
|
||||
0, 225, 196, 0, 0, 0, 3, 225, 177, 0, 0,
|
||||
0, 96, 255, 135, 23, 21, 163, 240, 43, 0, 0,
|
||||
0, 0, 87, 206, 248, 240, 176, 31, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'p' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 203, 45, 185, 245, 232, 118, 0, 0, 0,
|
||||
0, 152, 238, 233, 102, 15, 114, 255, 73, 0, 0,
|
||||
0, 152, 255, 87, 0, 0, 0, 223, 176, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 174, 218, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 163, 237, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 187, 215, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 19, 244, 143, 0, 0,
|
||||
0, 152, 246, 56, 9, 40, 187, 228, 23, 0, 0,
|
||||
0, 152, 254, 245, 254, 233, 159, 27, 0, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'q' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 38, 171, 236, 248, 214, 202, 110, 0, 0,
|
||||
0, 36, 238, 169, 34, 11, 79, 255, 116, 0, 0,
|
||||
0, 165, 230, 6, 0, 0, 24, 255, 116, 0, 0,
|
||||
0, 227, 162, 0, 0, 0, 24, 255, 116, 0, 0,
|
||||
4, 254, 138, 0, 0, 0, 24, 255, 116, 0, 0,
|
||||
0, 245, 149, 0, 0, 0, 27, 255, 116, 0, 0,
|
||||
0, 205, 196, 0, 0, 0, 156, 255, 116, 0, 0,
|
||||
0, 105, 254, 91, 17, 142, 211, 255, 116, 0, 0,
|
||||
0, 2, 140, 239, 240, 158, 34, 255, 116, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 23, 255, 116, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 24, 255, 116, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 24, 255, 116, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 24, 255, 116, 0, 0,
|
||||
},
|
||||
/* 'r' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 51, 129, 226, 244, 189, 36, 0, 0,
|
||||
0, 60, 255, 224, 169, 33, 30, 222, 191, 0, 0,
|
||||
0, 60, 255, 159, 0, 0, 0, 146, 246, 0, 0,
|
||||
0, 60, 255, 80, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 80, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 80, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 80, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 80, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 60, 255, 80, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 's' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 43, 176, 238, 243, 186, 57, 0, 0, 0,
|
||||
0, 14, 230, 174, 29, 14, 77, 154, 0, 0, 0,
|
||||
0, 58, 255, 89, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 14, 232, 234, 115, 29, 0, 0, 0, 0, 0,
|
||||
0, 0, 39, 175, 250, 254, 195, 60, 0, 0, 0,
|
||||
0, 0, 0, 0, 17, 99, 222, 249, 36, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 65, 255, 87, 0, 0,
|
||||
0, 93, 143, 49, 10, 26, 162, 244, 30, 0, 0,
|
||||
0, 13, 133, 211, 245, 237, 176, 49, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 't' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 176, 129, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 140, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 140, 0, 0, 0, 0, 0, 0,
|
||||
116, 255, 255, 255, 255, 255, 255, 255, 132, 0, 0,
|
||||
0, 0, 0, 248, 140, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 140, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 140, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 248, 140, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 247, 140, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 223, 161, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 150, 243, 67, 5, 0, 0, 0, 0,
|
||||
0, 0, 0, 14, 151, 228, 254, 255, 132, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'u' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 128, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 128, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 128, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 128, 0, 0,
|
||||
0, 152, 240, 0, 0, 0, 8, 255, 128, 0, 0,
|
||||
0, 151, 240, 0, 0, 0, 8, 255, 128, 0, 0,
|
||||
0, 130, 252, 4, 0, 0, 92, 255, 128, 0, 0,
|
||||
0, 66, 255, 114, 10, 97, 229, 247, 128, 0, 0,
|
||||
0, 0, 122, 228, 247, 183, 38, 228, 128, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'v' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
59, 255, 125, 0, 0, 0, 0, 151, 249, 20, 0,
|
||||
0, 216, 210, 0, 0, 0, 2, 232, 172, 0, 0,
|
||||
0, 119, 255, 38, 0, 0, 63, 255, 74, 0, 0,
|
||||
0, 24, 251, 122, 0, 0, 147, 229, 3, 0, 0,
|
||||
0, 0, 178, 206, 0, 1, 229, 133, 0, 0, 0,
|
||||
0, 0, 80, 255, 34, 59, 255, 36, 0, 0, 0,
|
||||
0, 0, 4, 232, 117, 141, 193, 0, 0, 0, 0,
|
||||
0, 0, 0, 140, 194, 218, 95, 0, 0, 0, 0,
|
||||
0, 0, 0, 41, 253, 242, 10, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'w' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
155, 222, 0, 0, 0, 0, 0, 2, 251, 129, 0,
|
||||
119, 249, 1, 0, 0, 0, 0, 24, 255, 93, 0,
|
||||
83, 255, 25, 0, 195, 157, 0, 50, 255, 56, 0,
|
||||
47, 255, 54, 13, 243, 232, 1, 76, 255, 20, 0,
|
||||
11, 255, 84, 79, 176, 224, 55, 102, 239, 0, 0,
|
||||
0, 231, 113, 149, 105, 152, 132, 129, 203, 0, 0,
|
||||
0, 195, 146, 220, 32, 77, 213, 157, 166, 0, 0,
|
||||
0, 159, 240, 214, 0, 10, 247, 244, 130, 0, 0,
|
||||
0, 122, 255, 140, 0, 0, 182, 255, 94, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'x' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
8, 210, 241, 29, 0, 0, 21, 235, 209, 8, 0,
|
||||
0, 42, 246, 183, 0, 0, 171, 244, 40, 0, 0,
|
||||
0, 0, 102, 255, 96, 87, 255, 95, 0, 0, 0,
|
||||
0, 0, 0, 171, 239, 235, 163, 0, 0, 0, 0,
|
||||
0, 0, 0, 44, 255, 255, 41, 0, 0, 0, 0,
|
||||
0, 0, 3, 195, 206, 218, 194, 3, 0, 0, 0,
|
||||
0, 0, 134, 252, 50, 65, 255, 131, 0, 0, 0,
|
||||
0, 70, 254, 139, 0, 0, 159, 253, 66, 0, 0,
|
||||
25, 234, 222, 10, 0, 0, 18, 234, 230, 22, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'y' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
58, 255, 127, 0, 0, 0, 0, 153, 248, 19, 0,
|
||||
0, 213, 215, 0, 0, 0, 5, 236, 165, 0, 0,
|
||||
0, 113, 255, 48, 0, 0, 76, 255, 62, 0, 0,
|
||||
0, 19, 249, 136, 0, 0, 165, 215, 0, 0, 0,
|
||||
0, 0, 168, 223, 0, 10, 244, 112, 0, 0, 0,
|
||||
0, 0, 68, 255, 56, 87, 247, 18, 0, 0, 0,
|
||||
0, 0, 1, 221, 150, 179, 163, 0, 0, 0, 0,
|
||||
0, 0, 0, 123, 248, 250, 62, 0, 0, 0, 0,
|
||||
0, 0, 0, 26, 252, 226, 1, 0, 0, 0, 0,
|
||||
0, 0, 0, 29, 252, 127, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 144, 242, 20, 0, 0, 0, 0, 0,
|
||||
0, 8, 101, 253, 99, 0, 0, 0, 0, 0, 0,
|
||||
124, 251, 214, 93, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* 'z' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 112, 255, 255, 255, 255, 255, 253, 42, 0, 0,
|
||||
0, 0, 0, 0, 0, 10, 221, 145, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 141, 223, 11, 0, 0, 0,
|
||||
0, 0, 0, 0, 53, 252, 70, 0, 0, 0, 0,
|
||||
0, 0, 0, 5, 210, 159, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 126, 232, 18, 0, 0, 0, 0, 0,
|
||||
0, 0, 41, 249, 84, 0, 0, 0, 0, 0, 0,
|
||||
0, 2, 198, 174, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 103, 255, 255, 255, 255, 255, 255, 140, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x7b' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 12, 151, 237, 227, 0, 0, 0,
|
||||
0, 0, 0, 0, 159, 223, 51, 2, 0, 0, 0,
|
||||
0, 0, 0, 1, 248, 113, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 22, 255, 85, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 28, 255, 84, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 28, 255, 82, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 42, 255, 60, 0, 0, 0, 0, 0,
|
||||
0, 0, 20, 157, 220, 5, 0, 0, 0, 0, 0,
|
||||
0, 148, 255, 233, 59, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 24, 160, 238, 17, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 38, 255, 74, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 28, 255, 88, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 28, 255, 88, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 27, 255, 88, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 5, 252, 108, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 183, 216, 45, 2, 0, 0, 0,
|
||||
0, 0, 0, 0, 25, 165, 232, 227, 0, 0, 0,
|
||||
},
|
||||
/* '0x7c' */ {
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 196, 172, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x7d' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 249, 223, 137, 8, 0, 0, 0, 0, 0,
|
||||
0, 0, 4, 64, 239, 131, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 147, 221, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 117, 251, 1, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 116, 255, 4, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 114, 255, 4, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 93, 255, 20, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 22, 240, 151, 21, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 78, 241, 255, 124, 0, 0,
|
||||
0, 0, 0, 0, 27, 244, 121, 16, 0, 0, 0,
|
||||
0, 0, 0, 0, 94, 255, 11, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 108, 255, 4, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 108, 255, 4, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 108, 255, 3, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 128, 235, 0, 0, 0, 0, 0,
|
||||
0, 0, 3, 52, 227, 159, 0, 0, 0, 0, 0,
|
||||
0, 0, 251, 237, 155, 16, 0, 0, 0, 0, 0,
|
||||
},
|
||||
/* '0x7e' */ {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 98, 224, 226, 82, 0, 0, 0, 0, 0, 0,
|
||||
34, 252, 81, 66, 240, 65, 0, 28, 255, 66, 0,
|
||||
93, 255, 5, 0, 90, 232, 48, 100, 244, 17, 0,
|
||||
0, 0, 0, 0, 0, 105, 233, 222, 83, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
},
|
||||
};
|
||||
+325
-162
@@ -99,106 +99,26 @@ static u32 blend(u32 c1, u32 c2, u32 a) {
|
||||
return 0xFF000000|(b<<16)|(g<<8)|r;
|
||||
}
|
||||
|
||||
/* 8x8 font for ASCII */
|
||||
static const u8 font[95][8] = {
|
||||
{0,0,0,0,0,0,0,0},{0x18,0x3c,0x3c,0x18,0x18,0,0x18,0}, /* ! */
|
||||
{0x6c,0x6c,0,0,0,0,0,0},{0x6c,0x6c,0xfe,0x6c,0xfe,0x6c,0x6c,0}, /* # */
|
||||
{0x18,0x7e,0xc0,0x7c,0x6,0xfc,0x18,0},{0,0xc6,0xcc,0x18,0x30,0x66,0xc6,0}, /* $ % */
|
||||
{0x38,0x6c,0x38,0x76,0xdc,0xcc,0x76,0},{0x18,0x18,0x30,0,0,0,0,0}, /* & ' */
|
||||
{0xc,0x18,0x30,0x30,0x30,0x18,0xc,0},{0x30,0x18,0xc,0xc,0xc,0x18,0x30,0}, /* ( ) */
|
||||
{0,0x66,0x3c,0xff,0x3c,0x66,0,0},{0,0x18,0x18,0x7e,0x18,0x18,0,0}, /* * + */
|
||||
{0,0,0,0,0,0x18,0x18,0x30},{0,0,0,0x7e,0,0,0,0},{0,0,0,0,0,0x18,0x18,0}, /* , - . */
|
||||
{0x6,0xc,0x18,0x30,0x60,0xc0,0x80,0}, /* / */
|
||||
{0x7c,0xc6,0xce,0xde,0xf6,0xe6,0x7c,0},{0x18,0x38,0x18,0x18,0x18,0x18,0x7e,0}, /* 0 1 */
|
||||
{0x7c,0xc6,0x6,0xc,0x30,0x60,0xfe,0},{0x7c,0xc6,0x6,0x3c,0x6,0xc6,0x7c,0}, /* 2 3 */
|
||||
{0x1c,0x3c,0x6c,0xcc,0xfe,0xc,0x1e,0},{0xfe,0xc0,0xfc,0x6,0x6,0xc6,0x7c,0}, /* 4 5 */
|
||||
{0x38,0x60,0xc0,0xfc,0xc6,0xc6,0x7c,0},{0xfe,0xc6,0xc,0x18,0x30,0x30,0x30,0}, /* 6 7 */
|
||||
{0x7c,0xc6,0xc6,0x7c,0xc6,0xc6,0x7c,0},{0x7c,0xc6,0xc6,0x7e,0x6,0xc,0x78,0}, /* 8 9 */
|
||||
{0,0x18,0x18,0,0,0x18,0x18,0},{0,0x18,0x18,0,0,0x18,0x18,0x30}, /* : ; */
|
||||
{0x6,0xc,0x18,0x30,0x18,0xc,0x6,0},{0,0,0x7e,0,0,0x7e,0,0}, /* < = */
|
||||
{0x60,0x30,0x18,0xc,0x18,0x30,0x60,0},{0x7c,0xc6,0xc,0x18,0x18,0,0x18,0}, /* > ? */
|
||||
{0x7c,0xc6,0xde,0xde,0xde,0xc0,0x78,0}, /* @ */
|
||||
{0x38,0x6c,0xc6,0xfe,0xc6,0xc6,0xc6,0},{0xfc,0x66,0x66,0x7c,0x66,0x66,0xfc,0}, /* A B */
|
||||
{0x3c,0x66,0xc0,0xc0,0xc0,0x66,0x3c,0},{0xf8,0x6c,0x66,0x66,0x66,0x6c,0xf8,0}, /* C D */
|
||||
{0xfe,0x62,0x68,0x78,0x68,0x62,0xfe,0},{0xfe,0x62,0x68,0x78,0x68,0x60,0xf0,0}, /* E F */
|
||||
{0x3c,0x66,0xc0,0xc0,0xce,0x66,0x3e,0},{0xc6,0xc6,0xc6,0xfe,0xc6,0xc6,0xc6,0}, /* G H */
|
||||
{0x3c,0x18,0x18,0x18,0x18,0x18,0x3c,0},{0x1e,0xc,0xc,0xc,0xcc,0xcc,0x78,0}, /* I J */
|
||||
{0xe6,0x66,0x6c,0x78,0x6c,0x66,0xe6,0},{0xf0,0x60,0x60,0x60,0x62,0x66,0xfe,0}, /* K L */
|
||||
{0xc6,0xee,0xfe,0xfe,0xd6,0xc6,0xc6,0},{0xc6,0xe6,0xf6,0xde,0xce,0xc6,0xc6,0}, /* M N */
|
||||
{0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0},{0xfc,0x66,0x66,0x7c,0x60,0x60,0xf0,0}, /* O P */
|
||||
{0x7c,0xc6,0xc6,0xc6,0xc6,0xce,0x7c,0xe},{0xfc,0x66,0x66,0x7c,0x6c,0x66,0xe6,0}, /* Q R */
|
||||
{0x7c,0xc6,0xe0,0x78,0xe,0xc6,0x7c,0},{0x7e,0x7e,0x5a,0x18,0x18,0x18,0x3c,0}, /* S T */
|
||||
{0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0},{0xc6,0xc6,0xc6,0xc6,0xc6,0x6c,0x38,0}, /* U V */
|
||||
{0xc6,0xc6,0xc6,0xd6,0xd6,0xfe,0x6c,0},{0xc6,0xc6,0x6c,0x38,0x38,0x6c,0xc6,0}, /* W X */
|
||||
{0x66,0x66,0x66,0x3c,0x18,0x18,0x3c,0},{0xfe,0xc6,0x8c,0x18,0x32,0x66,0xfe,0}, /* Y Z */
|
||||
{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0}, /* [ \ */
|
||||
{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0}, /* ] ^ */
|
||||
{0x18,0x18,0x18,0x18,0x18,0x18,0x18,0}, /* _ */
|
||||
{0,0,0,0,0,0,0,0}, /* ` */
|
||||
/* a-z lowercase — full-height (no top blank rows) so they scale like uppercase */
|
||||
{0x7c,0xc6,0xc6,0xfe,0xc6,0xc6,0xc6,0}, /* a */
|
||||
{0xc6,0xc6,0xc6,0xfc,0xc6,0xc6,0xfc,0}, /* b */
|
||||
{0x7c,0xc6,0xc0,0xc0,0xc0,0xc6,0x7c,0}, /* c */
|
||||
{0x06,0x06,0x06,0xfc,0xc6,0xc6,0xfc,0}, /* d */
|
||||
{0x7c,0xc6,0xfe,0xc0,0xfc,0xc0,0xc0,0}, /* e */
|
||||
{0x7c,0xc6,0xc0,0xf8,0xc0,0xc0,0xc0,0}, /* f */
|
||||
{0x7c,0xc6,0xc0,0xde,0xc6,0xc6,0x7c,0}, /* g */
|
||||
{0xc6,0xc6,0xc6,0xfe,0xc6,0xc6,0xc6,0}, /* h */
|
||||
{0x7e,0x18,0x18,0x18,0x18,0x18,0x18,0}, /* i */
|
||||
{0x06,0x06,0x06,0xc6,0xc6,0xc6,0x7c,0}, /* j */
|
||||
{0xc6,0xcc,0xd8,0xf0,0xd8,0xcc,0xc6,0}, /* k */
|
||||
{0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xfe,0}, /* l */
|
||||
{0xc6,0xee,0xfe,0xfe,0xc6,0xc6,0xc6,0}, /* m */
|
||||
{0xc6,0xe6,0xf6,0xde,0xce,0xc6,0xc6,0}, /* n */
|
||||
{0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0}, /* o */
|
||||
{0xc6,0xc6,0xc6,0xfc,0xc0,0xc0,0xc0,0}, /* p */
|
||||
{0x7c,0xc6,0xc6,0xce,0x7c,0x06,0x06,0}, /* q */
|
||||
{0xc6,0xc6,0xcc,0xf8,0xcc,0xc6,0xc6,0}, /* r */
|
||||
{0x7c,0xc0,0x7c,0x06,0xc6,0xc6,0x7c,0}, /* s */
|
||||
{0x18,0x18,0x7e,0x18,0x18,0x18,0x18,0}, /* t */
|
||||
{0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0}, /* u */
|
||||
{0xc6,0xc6,0xc6,0xc6,0xc6,0x6c,0x38,0}, /* v */
|
||||
{0xc6,0xc6,0xd6,0xfe,0xee,0xc6,0xc6,0}, /* w */
|
||||
{0xc6,0xc6,0x6c,0x38,0x6c,0xc6,0xc6,0}, /* x */
|
||||
{0xc6,0xc6,0xc6,0x7c,0x06,0x06,0x7c,0}, /* y */
|
||||
{0xfe,0x0c,0x18,0x30,0x60,0xc0,0xfe,0}, /* z */
|
||||
};
|
||||
|
||||
/* ASCII text — thin 8x8 → 10x16, preserves case, draws foreground only (no bg fill) */
|
||||
#define ASCII_W 10
|
||||
#define ASCII_H 16
|
||||
#define ASCII_STEP 12
|
||||
/* ASCII font — Consolas 18px grayscale, pre-rendered from C:\Windows\Fonts\consola.ttf */
|
||||
#include "ascii_bitmaps.c"
|
||||
/* ASCII text — Consolas 18px grayscale, alpha-blend rendered (skips transparent pixels) */
|
||||
#define ASCII_W 11
|
||||
#define ASCII_H 18
|
||||
#define ASCII_STEP 11
|
||||
static void fb_char(u32 *fb, u32 ch, i64 x, i64 y, u32 fg, u32 bg) {
|
||||
u32 idx = ch >= ' ' && ch <= 'z' ? (u32)(ch-' ') : 0;
|
||||
const u8 *g = font[idx];
|
||||
u8 pat[8][8];
|
||||
for (i64 r=0; r<8; r++) {
|
||||
u8 row = g[r];
|
||||
for (i64 c=0; c<8; c++) {
|
||||
pat[r][c] = (row & (0x80>>c)) ? 1 : 0;
|
||||
}
|
||||
}
|
||||
for (i64 sy=0; sy<ASCII_H; sy++) {
|
||||
i64 yy = y + sy;
|
||||
if (ch < ' ' || ch > '~') ch = ' ';
|
||||
u32 idx = (u32)(ch - ' ');
|
||||
const u8 *g = g_ascii[idx];
|
||||
for (i64 r=0; r<ASCII_H; r++) {
|
||||
i64 yy = y + r;
|
||||
if (yy < 0 || (u64)yy >= fb_h) continue;
|
||||
u32 *line = (u32 *)((u8 *)fb + (u64)yy * fb_p);
|
||||
i64 src_y = sy * 7 / (ASCII_H - 1);
|
||||
if (src_y > 7) src_y = 7;
|
||||
for (i64 sx=0; sx<ASCII_W; sx++) {
|
||||
i64 src_x = sx * 7 / (ASCII_W - 1);
|
||||
if (src_x > 7) src_x = 7;
|
||||
int on = pat[src_y][src_x];
|
||||
int edge = 0;
|
||||
if (!on) {
|
||||
if (src_x > 0 && pat[src_y][src_x-1]) edge = 1;
|
||||
if (src_x < 7 && pat[src_y][src_x+1]) edge = 1;
|
||||
if (src_y > 0 && pat[src_y-1][src_x]) edge = 1;
|
||||
if (src_y < 7 && pat[src_y+1][src_x]) edge = 1;
|
||||
if (!edge) continue;
|
||||
}
|
||||
i64 xx = x + sx;
|
||||
for (i64 c=0; c<ASCII_W; c++) {
|
||||
u32 a = g[r * ASCII_W + c];
|
||||
if (a == 0) continue;
|
||||
i64 xx = x + c;
|
||||
if (xx < 0 || (u64)xx >= fb_w) continue;
|
||||
line[(u64)xx] = on ? fg : blend(bg, fg, 72);
|
||||
line[(u64)xx] = (a == 255) ? fg : blend(bg, fg, a);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -352,7 +272,7 @@ static void draw_rounded_input(u32 *fb, i64 x, i64 y, i64 w, i64 h, const char *
|
||||
char out[64]; int i=0;
|
||||
while(value[i] && i<60) { out[i] = mask ? '*' : value[i]; i++; }
|
||||
out[i]=0;
|
||||
if (out[0]) fb_text(fb, out, x+14, y+(h-16)/2, fg, fill);
|
||||
if (out[0]) fb_text(fb, out, x+14, y+(h-ASCII_H)/2, fg, fill);
|
||||
if (active) {
|
||||
i64 cx2 = x + 14 + i * ASCII_STEP;
|
||||
fill_rect(fb, cx2, y+10, 2, h-20, fg);
|
||||
@@ -704,43 +624,202 @@ static void read_prefs_page(u32 *fb, i64 card_x, i64 card_y, setup_prefs *prefs,
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
int mode;
|
||||
int device;
|
||||
int ip;
|
||||
int dns;
|
||||
int selected;
|
||||
int connected;
|
||||
char ssid[32];
|
||||
char password[64];
|
||||
} setup_net;
|
||||
|
||||
static const char *net_value(int row, int val) {
|
||||
if (row == 0) return val == 0 ? "Disabled" : (val == 1 ? "DHCP" : "Manual");
|
||||
if (row == 1) return val == 0 ? "Auto" : (val == 1 ? "e1000" : "virtio-net");
|
||||
if (row == 2) return val ? "Manual" : "Auto DHCP";
|
||||
if (row == 3) return val ? "Manual DNS" : "Auto DNS";
|
||||
return "";
|
||||
/* UI 显示行数(固定 4 行布局);真实扫描结果数由 g_wifi_scan_count 决定。 */
|
||||
#define WIFI_SCAN_COUNT 4
|
||||
#define WIFI_MAX_RESULTS 8
|
||||
|
||||
/* 真实 WiFi 扫描结果(来自 ath9k 驱动通过 kernel_api.net.scan_* 查询)。 */
|
||||
static char g_wifi_ssids[WIFI_MAX_RESULTS][34];
|
||||
static char g_wifi_meta[WIFI_MAX_RESULTS][20];
|
||||
static int g_wifi_scan_count;
|
||||
static int g_wifi_scan_tried; /* 是否已尝试查询扫描结果 */
|
||||
static int g_no_wireless_device; /* 检测到无无线设备时跳过 WiFi 页面 */
|
||||
|
||||
/* dkm_net_api 函数指针类型(通过偏移访问 kernel_api.net)。 */
|
||||
typedef u32 (*net_device_count_fn)(void);
|
||||
typedef int (*net_device_info_fn)(u32 index, void *out);
|
||||
typedef int (*net_scan_start_fn)(u32 index);
|
||||
typedef int (*net_scan_count_fn)(u32 index);
|
||||
typedef int (*net_scan_result_fn)(u32 index, u32 n, void *out);
|
||||
typedef int (*net_is_wireless_fn)(u32 index);
|
||||
|
||||
/* dkm_net_scan_result 布局(须与 UTSM/include/utsm/net.h 一致)。 */
|
||||
typedef struct {
|
||||
char ssid[33];
|
||||
u8 bssid[6];
|
||||
u8 channel;
|
||||
i8 rssi;
|
||||
u8 security;
|
||||
} net_scan_result;
|
||||
|
||||
#define DKM_NET_SEC_OPEN 0
|
||||
#define DKM_NET_SEC_WEP 1
|
||||
#define DKM_NET_SEC_WPA 2
|
||||
#define DKM_NET_SEC_WPA2 3
|
||||
#define DKM_NET_SEC_WPA3 4
|
||||
|
||||
/* 把加密类型 + RSSI 转为 "WPA2 strong" 这种简短描述。 */
|
||||
static void wifi_meta_str(char *out, u32 cap, u8 security, i8 rssi) {
|
||||
if (!cap) return;
|
||||
const char *sec;
|
||||
switch (security) {
|
||||
case DKM_NET_SEC_WPA2: sec = "WPA2"; break;
|
||||
case DKM_NET_SEC_WPA: sec = "WPA "; break;
|
||||
case DKM_NET_SEC_WPA3: sec = "WPA3"; break;
|
||||
case DKM_NET_SEC_WEP: sec = "WEP "; break;
|
||||
default: sec = "Open"; break;
|
||||
}
|
||||
/* RSSI 分级:>=-50 strong, -51..-65 good, -66..-75 weak, else very weak */
|
||||
const char *q;
|
||||
i8 r = rssi;
|
||||
if (r >= -50) q = "strong";
|
||||
else if (r >= -65) q = "good";
|
||||
else if (r >= -75) q = "weak";
|
||||
else q = "very weak";
|
||||
/* 手动拼接 "SEC quality" */
|
||||
u32 i = 0;
|
||||
while (sec[i] && i + 1 < cap) { out[i] = sec[i]; i++; }
|
||||
while (i < 5 && i + 1 < cap) { out[i++] = ' '; }
|
||||
u32 j = 0;
|
||||
while (q[j] && i + 1 < cap) { out[i++] = q[j++]; }
|
||||
out[i] = 0;
|
||||
}
|
||||
|
||||
static int net_get(const setup_net *n, int row) {
|
||||
if (row == 0) return n->mode;
|
||||
if (row == 1) return n->device;
|
||||
if (row == 2) return n->ip;
|
||||
if (row == 3) return n->dns;
|
||||
return 0;
|
||||
/* 通过 kernel_api 查询无线设备并读取扫描结果。
|
||||
* kernel_api 偏移布局:
|
||||
* +0x48 net_api 指针
|
||||
* net_api 偏移布局(追加 scan 接口后):
|
||||
* +0 register_device, +8 device_count, +16 device_info,
|
||||
* +24 tx, +32 rx_poll, +40 scan_start, +48 scan_count,
|
||||
* +56 scan_result, +64 is_wireless
|
||||
*/
|
||||
static void wifi_query_scan(u64 kernel_api) {
|
||||
g_wifi_scan_tried = 1;
|
||||
g_wifi_scan_count = 0;
|
||||
if (!kernel_api) { logl("[FirstInit] no kernel_api, wifi scan skipped"); return; }
|
||||
u64 net_api = *(u64 *)(kernel_api + 0x48);
|
||||
if (!net_api) { logl("[FirstInit] no net_api, wifi scan skipped"); return; }
|
||||
net_device_count_fn dcount = (net_device_count_fn)*(u64 *)(net_api + 8);
|
||||
net_scan_start_fn sstart = (net_scan_start_fn)*(u64 *)(net_api + 40);
|
||||
net_scan_count_fn scount = (net_scan_count_fn)*(u64 *)(net_api + 48);
|
||||
net_scan_result_fn sresult = (net_scan_result_fn)*(u64 *)(net_api + 56);
|
||||
net_is_wireless_fn iswl = (net_is_wireless_fn)*(u64 *)(net_api + 64);
|
||||
if (!dcount || !iswl || !scount || !sresult) {
|
||||
logl("[FirstInit] net scan api incomplete");
|
||||
return;
|
||||
}
|
||||
u32 ndev = dcount();
|
||||
/* 串口日志:设备数 */
|
||||
{
|
||||
char b[24]; int p=0;
|
||||
const char *s="[FirstInit] net devices=";
|
||||
while(s[p]) b[p]=s[p], p++;
|
||||
b[p++]='0'+(ndev/10); b[p++]='0'+(ndev%10); b[p]=0;
|
||||
logl(b);
|
||||
}
|
||||
/* 找第一个无线设备 */
|
||||
int wifi_idx = -1;
|
||||
for (u32 i = 0; i < ndev; i++) {
|
||||
int rc = iswl(i);
|
||||
if (rc == 1) { wifi_idx = (int)i; break; }
|
||||
}
|
||||
if (wifi_idx < 0) {
|
||||
logl("[FirstInit] no wireless device found");
|
||||
g_no_wireless_device = 1;
|
||||
return;
|
||||
}
|
||||
/* ath9k 驱动在 driver_init 时已同步扫描,但保险起见若 count=0 再触发一次 */
|
||||
int count = scount((u32)wifi_idx);
|
||||
if (count <= 0 && sstart) {
|
||||
logl("[FirstInit] triggering wifi scan...");
|
||||
int rc = sstart((u32)wifi_idx);
|
||||
{
|
||||
char b[32]; int p=0;
|
||||
const char *s="[FirstInit] scan_start rc=";
|
||||
while(s[p]) b[p]=s[p], p++;
|
||||
if (rc < 0) { b[p++]='-'; b[p++]='0'+(-rc); } else { b[p++]='0'+rc; }
|
||||
b[p]=0; logl(b);
|
||||
}
|
||||
count = scount((u32)wifi_idx);
|
||||
}
|
||||
if (count <= 0) {
|
||||
logl("[FirstInit] wifi scan: no results");
|
||||
return;
|
||||
}
|
||||
if (count > WIFI_MAX_RESULTS) count = WIFI_MAX_RESULTS;
|
||||
/* 读取每个扫描结果 */
|
||||
for (int i = 0; i < count; i++) {
|
||||
net_scan_result r;
|
||||
for (u32 k = 0; k < sizeof(r); k++) ((u8 *)&r)[k] = 0;
|
||||
int rc = sresult((u32)wifi_idx, (u32)i, &r);
|
||||
if (rc != 0) continue;
|
||||
/* 拷贝 SSID */
|
||||
u32 j = 0;
|
||||
while (r.ssid[j] && j + 1 < sizeof(g_wifi_ssids[i])) {
|
||||
g_wifi_ssids[i][j] = r.ssid[j]; j++;
|
||||
}
|
||||
g_wifi_ssids[i][j] = 0;
|
||||
/* 生成 meta 字符串 */
|
||||
wifi_meta_str(g_wifi_meta[i], sizeof(g_wifi_meta[i]), r.security, r.rssi);
|
||||
g_wifi_scan_count++;
|
||||
}
|
||||
{
|
||||
char b[32]; int p=0;
|
||||
const char *s="[FirstInit] wifi scan results=";
|
||||
while(s[p]) b[p]=s[p], p++;
|
||||
b[p++]='0'+(g_wifi_scan_count/10); b[p++]='0'+(g_wifi_scan_count%10); b[p]=0;
|
||||
logl(b);
|
||||
}
|
||||
}
|
||||
|
||||
static void net_toggle(setup_net *n, int row) {
|
||||
if (row == 0) n->mode = (n->mode + 1) % 3;
|
||||
else if (row == 1) n->device = (n->device + 1) % 3;
|
||||
else if (row == 2) n->ip ^= 1;
|
||||
else if (row == 3) n->dns ^= 1;
|
||||
static void net_copy(char *dst, u32 cap, const char *src) {
|
||||
if (!cap) return;
|
||||
u32 i = 0;
|
||||
while (src[i] && i + 1 < cap) {
|
||||
dst[i] = src[i];
|
||||
i++;
|
||||
}
|
||||
dst[i] = 0;
|
||||
}
|
||||
|
||||
static void draw_network_row(u32 *fb, i64 card_x, i64 card_y, setup_net *net, int row, int active, u32 fg) {
|
||||
static void net_select(setup_net *net, int idx) {
|
||||
if (idx < 0) idx = 0;
|
||||
if (idx >= WIFI_SCAN_COUNT) idx = WIFI_SCAN_COUNT - 1;
|
||||
if (net->selected != idx) {
|
||||
net->password[0] = 0;
|
||||
net->connected = 0;
|
||||
}
|
||||
net->selected = idx;
|
||||
if (idx < g_wifi_scan_count) {
|
||||
net_copy(net->ssid, sizeof(net->ssid), g_wifi_ssids[idx]);
|
||||
} else {
|
||||
net->ssid[0] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void draw_wifi_row(u32 *fb, i64 card_x, i64 card_y, setup_net *net, int row, int active, u32 fg) {
|
||||
u32 card = CARD_BG;
|
||||
i64 ry = card_y + 150 + (i64)row * 88;
|
||||
const u8 *label = g_txt_net_mode; i64 lw = g_txt_net_mode_w, lh = g_txt_net_mode_h;
|
||||
if (row == 1) { label = g_txt_net_device; lw = g_txt_net_device_w; lh = g_txt_net_device_h; }
|
||||
else if (row == 2) { label = g_txt_net_ip; lw = g_txt_net_ip_w; lh = g_txt_net_ip_h; }
|
||||
else if (row == 3) { label = g_txt_net_dns; lw = g_txt_net_dns_w; lh = g_txt_net_dns_h; }
|
||||
draw_option_row(fb, card_x+40, ry, 820, 42, label, lw, lh, net_value(row, net_get(net, row)), active==row, fg, card);
|
||||
i64 x = card_x + 40;
|
||||
i64 y = card_y + 132 + (i64)row * 64;
|
||||
u32 fill = active == row ? 0xFFFFFFFF : (net->selected == row ? 0xFFDCECF8 : INPUT_BG);
|
||||
fill_rounded_rect(fb, x, y, 390, 50, 9, fill);
|
||||
stroke_rounded_rect(fb, x, y, 390, 50, 9, 1, active == row ? 0xFF7FA7C8 : card);
|
||||
fb_text(fb, net->selected == row ? ">" : " ", x + 12, y + 16, fg, fill);
|
||||
if (row < g_wifi_scan_count) {
|
||||
fb_text(fb, g_wifi_ssids[row], x + 42, y + 8, fg, fill);
|
||||
fb_text(fb, g_wifi_meta[row], x + 42, y + 28, 0xFF7F97AC, fill);
|
||||
} else {
|
||||
/* 无扫描结果时的占位行 */
|
||||
const char *placeholder = (g_wifi_scan_tried && g_wifi_scan_count == 0)
|
||||
? "No networks found" : "(empty)";
|
||||
fb_text(fb, placeholder, x + 42, y + 16, 0xFF9AACC0, fill);
|
||||
}
|
||||
}
|
||||
|
||||
static void redraw_network_card(u32 *fb, i64 card_x, i64 card_y, setup_net *net, int active, i64 mx, i64 my, u32 bg, u32 fg) {
|
||||
@@ -749,23 +828,42 @@ static void redraw_network_card(u32 *fb, i64 card_x, i64 card_y, setup_net *net,
|
||||
fill_gradient_rect(fb, card_x - 24, card_y - 24, 948, 648);
|
||||
draw_card(fb, card_x, card_y, 900, 600, card, bg);
|
||||
fb_bitmap_alpha(fb, g_txt_network_title, g_txt_network_title_w, g_txt_network_title_h, card_x+40, card_y+40, fg, card, 255);
|
||||
for (int r=0; r<4; r++) draw_network_row(fb, card_x, card_y, net, r, active, fg);
|
||||
fb_bitmap_alpha(fb, g_txt_net_hint, g_txt_net_hint_w, g_txt_net_hint_h, card_x+40, card_y+555, 0xFF7F97AC, card, 255);
|
||||
cursor_draw(fb, mx, my);
|
||||
}
|
||||
fb_text(fb, "Choose a network", card_x + 40, card_y + 88, 0xFF7F97AC, card);
|
||||
for (int r=0; r<WIFI_SCAN_COUNT; r++) draw_wifi_row(fb, card_x, card_y, net, r, active, fg);
|
||||
|
||||
static void redraw_network_row(u32 *fb, i64 card_x, i64 card_y, setup_net *net, int row, int active, i64 mx, i64 my, u32 fg) {
|
||||
u32 card = CARD_BG;
|
||||
i64 ry = card_y + 150 + (i64)row * 88;
|
||||
cursor_erase(fb);
|
||||
fill_rect(fb, card_x + 36, ry - 8, 832, 58, card);
|
||||
draw_network_row(fb, card_x, card_y, net, row, active, fg);
|
||||
fill_rounded_rect(fb, card_x + 470, card_y + 120, 390, 260, 12, INPUT_BG);
|
||||
stroke_rounded_rect(fb, card_x + 470, card_y + 120, 390, 260, 12, 1, 0xFFD2E3F0);
|
||||
fb_text(fb, "Highlighted network", card_x + 494, card_y + 148, 0xFF7F97AC, INPUT_BG);
|
||||
int preview = active < WIFI_SCAN_COUNT ? active : net->selected;
|
||||
if (preview < g_wifi_scan_count) {
|
||||
fb_text(fb, g_wifi_ssids[preview], card_x + 494, card_y + 182, fg, INPUT_BG);
|
||||
fb_text(fb, g_wifi_meta[preview], card_x + 494, card_y + 210, 0xFF7F97AC, INPUT_BG);
|
||||
} else {
|
||||
fb_text(fb, g_wifi_scan_tried ? "No networks found" : "WiFi not initialized",
|
||||
card_x + 494, card_y + 182, 0xFF9AACC0, INPUT_BG);
|
||||
fb_text(fb, g_wifi_scan_tried ? "Check ath9k driver" : "Run ath9k driver first",
|
||||
card_x + 494, card_y + 210, 0xFF9AACC0, INPUT_BG);
|
||||
}
|
||||
fb_text(fb, "Use Up/Down or click menu", card_x + 494, card_y + 260, 0xFF7F97AC, INPUT_BG);
|
||||
fb_text(fb, "Enter selects highlighted item", card_x + 494, card_y + 288, 0xFF7F97AC, INPUT_BG);
|
||||
|
||||
fb_text(fb, "Password", card_x + 470, card_y + 400, fg, card);
|
||||
draw_rounded_input(fb, card_x + 470, card_y + 430, 390, 44, net->password, 1, fg, card, active == WIFI_SCAN_COUNT);
|
||||
u32 btn = active == WIFI_SCAN_COUNT + 1 ? 0xFFFFFFFF : 0xFFDCECF8;
|
||||
fill_rounded_rect(fb, card_x + 620, card_y + 500, 240, 48, 10, btn);
|
||||
stroke_rounded_rect(fb, card_x + 620, card_y + 500, 240, 48, 10, 1, active == WIFI_SCAN_COUNT + 1 ? 0xFFB6C9DD : card);
|
||||
fb_text(fb, "Connect", card_x + 690, card_y + 516, fg, btn);
|
||||
if (net->connected) fb_text(fb, "Connection profile saved", card_x + 40, card_y + 515, 0xFF4F8A5F, card);
|
||||
else fb_text(fb, "Select SSID, enter password, then Connect", card_x + 40, card_y + 555, 0xFF7F97AC, card);
|
||||
cursor_draw(fb, mx, my);
|
||||
}
|
||||
|
||||
static void read_network_page(u32 *fb, i64 card_x, i64 card_y, setup_net *net, i64 *mx, i64 *my, u32 bg, u32 fg) {
|
||||
int active = 0, mcnt = 0, e0 = 0;
|
||||
int active = 0, mcnt = 0, e0 = 0, shift = 0;
|
||||
u8 mpkt[3]; u8 prev_btns = 0;
|
||||
int len = 0;
|
||||
while (net->password[len]) len++;
|
||||
net_select(net, net->selected);
|
||||
redraw_network_card(fb, card_x, card_y, net, active, *mx, *my, bg, fg);
|
||||
for (;;) {
|
||||
u8 st = inb(0x64);
|
||||
@@ -787,28 +885,79 @@ static void read_network_page(u32 *fb, i64 card_x, i64 card_y, setup_net *net, i
|
||||
cursor_draw(fb, *mx, *my);
|
||||
}
|
||||
if ((btns & 1) && !(prev_btns & 1)) {
|
||||
for (int r=0; r<4; r++) {
|
||||
i64 ry = card_y + 150 + (i64)r * 88;
|
||||
if (*mx >= card_x + 260 && *mx < card_x + 860 && *my >= ry && *my < ry + 42) {
|
||||
int old = active; active = r; net_toggle(net, active);
|
||||
if (old != active) redraw_network_row(fb, card_x, card_y, net, old, active, *mx, *my, fg);
|
||||
redraw_network_row(fb, card_x, card_y, net, active, active, *mx, *my, fg);
|
||||
for (int r=0; r<WIFI_SCAN_COUNT; r++) {
|
||||
i64 ry = card_y + 132 + (i64)r * 64;
|
||||
if (*mx >= card_x + 40 && *mx < card_x + 430 && *my >= ry && *my < ry + 50) {
|
||||
active = r;
|
||||
net_select(net, r);
|
||||
len = 0;
|
||||
redraw_network_card(fb, card_x, card_y, net, active, *mx, *my, bg, fg);
|
||||
}
|
||||
}
|
||||
if (*mx >= card_x + 470 && *mx < card_x + 860 && *my >= card_y + 430 && *my < card_y + 474) {
|
||||
active = WIFI_SCAN_COUNT;
|
||||
redraw_network_card(fb, card_x, card_y, net, active, *mx, *my, bg, fg);
|
||||
}
|
||||
if (*mx >= card_x + 620 && *mx < card_x + 860 && *my >= card_y + 500 && *my < card_y + 548) {
|
||||
net->connected = 1;
|
||||
logl("[FirstInit] wireless profile selected");
|
||||
redraw_network_card(fb, card_x, card_y, net, WIFI_SCAN_COUNT + 1, *mx, *my, bg, fg);
|
||||
for (int i=0;i<30;i++) delay_frame();
|
||||
return;
|
||||
}
|
||||
}
|
||||
prev_btns = btns;
|
||||
continue;
|
||||
}
|
||||
u8 sc = data;
|
||||
if (sc == 0xE0) { e0 = 1; continue; }
|
||||
if (sc == 0x2A || sc == 0x36) { shift = 1; continue; }
|
||||
if (sc == 0xAA || sc == 0xB6) { shift = 0; continue; }
|
||||
if (sc & 0x80) { e0 = 0; continue; }
|
||||
if (e0 && sc == 0x48) { if (active > 0) { int old=active; active--; redraw_network_row(fb, card_x, card_y, net, old, active, *mx, *my, fg); redraw_network_row(fb, card_x, card_y, net, active, active, *mx, *my, fg); } e0=0; continue; }
|
||||
if (e0 && sc == 0x50) { if (active < 3) { int old=active; active++; redraw_network_row(fb, card_x, card_y, net, old, active, *mx, *my, fg); redraw_network_row(fb, card_x, card_y, net, active, active, *mx, *my, fg); } e0=0; continue; }
|
||||
if (e0 && sc == 0x48) {
|
||||
if (active > 0) active--;
|
||||
redraw_network_card(fb, card_x, card_y, net, active, *mx, *my, bg, fg);
|
||||
e0=0; continue;
|
||||
}
|
||||
if (e0 && sc == 0x50) {
|
||||
if (active < WIFI_SCAN_COUNT + 1) active++;
|
||||
redraw_network_card(fb, card_x, card_y, net, active, *mx, *my, bg, fg);
|
||||
e0=0; continue;
|
||||
}
|
||||
e0 = 0;
|
||||
if (sc == 0x39 || sc == 0x4D || sc == 0x4B) { net_toggle(net, active); redraw_network_row(fb, card_x, card_y, net, active, active, *mx, *my, fg); continue; }
|
||||
if (sc == 0x1C) {
|
||||
if (active < 3) { int old=active; active++; redraw_network_row(fb, card_x, card_y, net, old, active, *mx, *my, fg); redraw_network_row(fb, card_x, card_y, net, active, active, *mx, *my, fg); }
|
||||
else return;
|
||||
char c = scan_to_ascii(sc, shift);
|
||||
if (!c) continue;
|
||||
if (c == '\n') {
|
||||
if (active < WIFI_SCAN_COUNT) {
|
||||
net_select(net, active);
|
||||
len = 0;
|
||||
active = WIFI_SCAN_COUNT;
|
||||
} else if (active == WIFI_SCAN_COUNT) {
|
||||
active = WIFI_SCAN_COUNT + 1;
|
||||
} else {
|
||||
net->connected = 1;
|
||||
logl("[FirstInit] wireless profile selected");
|
||||
redraw_network_card(fb, card_x, card_y, net, active, *mx, *my, bg, fg);
|
||||
for (int i=0;i<30;i++) delay_frame();
|
||||
return;
|
||||
}
|
||||
redraw_network_card(fb, card_x, card_y, net, active, *mx, *my, bg, fg);
|
||||
continue;
|
||||
}
|
||||
if (c == '\t') {
|
||||
active = (active + 1) % (WIFI_SCAN_COUNT + 2);
|
||||
redraw_network_card(fb, card_x, card_y, net, active, *mx, *my, bg, fg);
|
||||
continue;
|
||||
}
|
||||
if (active == WIFI_SCAN_COUNT) {
|
||||
if (c == 8) {
|
||||
if (len > 0) net->password[--len] = 0;
|
||||
} else if (len < 63 && c >= 32 && c <= 126) {
|
||||
net->password[len++] = c;
|
||||
net->password[len] = 0;
|
||||
}
|
||||
net->connected = 0;
|
||||
redraw_network_card(fb, card_x, card_y, net, active, *mx, *my, bg, fg);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -854,20 +1003,20 @@ static void build_user_conf(const char *pc, const char *user, const char *pass,
|
||||
const char *th0="\ntheme="; for(int i=0;th0[i];i++) conf[p++]=th0[i];
|
||||
const char *v4 = prefs->theme ? "dark" : "light"; for(int i=0;v4[i];i++) conf[p++]=v4[i];
|
||||
const char *nm="\nnetwork.mode="; for(int i=0;nm[i];i++) conf[p++]=nm[i];
|
||||
const char *nv0 = net->mode == 0 ? "disabled" : (net->mode == 1 ? "dhcp" : "manual"); for(int i=0;nv0[i];i++) conf[p++]=nv0[i];
|
||||
const char *nd="\nnetwork.device="; for(int i=0;nd[i];i++) conf[p++]=nd[i];
|
||||
const char *nv1 = net->device == 0 ? "auto" : (net->device == 1 ? "e1000" : "virtio-net"); for(int i=0;nv1[i];i++) conf[p++]=nv1[i];
|
||||
const char *ni="\nnetwork.ip="; for(int i=0;ni[i];i++) conf[p++]=ni[i];
|
||||
const char *nv2 = net->ip ? "manual" : "dhcp"; for(int i=0;nv2[i];i++) conf[p++]=nv2[i];
|
||||
const char *dns="\nnetwork.dns="; for(int i=0;dns[i];i++) conf[p++]=dns[i];
|
||||
const char *nv3 = net->dns ? "manual" : "auto"; for(int i=0;nv3[i];i++) conf[p++]=nv3[i];
|
||||
const char *nv0 = net->connected ? "wifi" : "disabled"; for(int i=0;nv0[i];i++) conf[p++]=nv0[i];
|
||||
const char *ns="\nnetwork.ssid="; for(int i=0;ns[i];i++) conf[p++]=ns[i];
|
||||
for(int i=0;net->ssid[i]&&p<740;i++) conf[p++]=net->ssid[i];
|
||||
const char *np="\nnetwork.password="; for(int i=0;np[i];i++) conf[p++]=np[i];
|
||||
for(int i=0;net->password[i]&&p<740;i++) conf[p++]=net->password[i];
|
||||
const char *ni="\nnetwork.ip=dhcp"; for(int i=0;ni[i];i++) conf[p++]=ni[i];
|
||||
const char *dns="\nnetwork.dns=auto"; for(int i=0;dns[i];i++) conf[p++]=dns[i];
|
||||
conf[p++]='\n';
|
||||
/* XOR encrypt buffer with hash-derived stream; real disk write waits for FAT32 write support. */
|
||||
for(int i=0;i<p;i++) conf[i]^=hash[i&31];
|
||||
logl("[FirstInit] user.conf encrypted in memory (disk write pending)");
|
||||
}
|
||||
|
||||
__attribute__((visibility("default"), noreturn))
|
||||
__attribute__((visibility("default")))
|
||||
void dsk_entry(const dsk_boot_context *ctx) {
|
||||
__asm__ volatile("cli"); /* prevent IRQ1 (ps2kbd) from racing with our polling */
|
||||
logl("[FirstInit] boot");
|
||||
@@ -965,12 +1114,25 @@ void dsk_entry(const dsk_boot_context *ctx) {
|
||||
prefs.keyboard = 0; /* US-QWERTY */
|
||||
prefs.theme = 0; /* Light */
|
||||
read_prefs_page(fb, card_x, card_y, &prefs, &mx, &my, bg, fg);
|
||||
/* 查询真实 WiFi 扫描结果(来自 ath9k 驱动通过 kernel_api.net.scan_*) */
|
||||
wifi_query_scan(ctx->dkm_kernel_api);
|
||||
setup_net net;
|
||||
net.mode = 0; /* Disabled */
|
||||
net.device = 0; /* Auto */
|
||||
net.ip = 0; /* Auto DHCP */
|
||||
net.dns = 0; /* Auto DNS */
|
||||
read_network_page(fb, card_x, card_y, &net, &mx, &my, bg, fg);
|
||||
net.selected = 0;
|
||||
net.connected = 0;
|
||||
net.ssid[0] = 0;
|
||||
net.password[0] = 0;
|
||||
if (g_no_wireless_device) {
|
||||
/* QEMU 或无无线网卡场景:跳过 WiFi 设置页面,network.mode=disabled */
|
||||
logl("[FirstInit] no wireless device, skipping WiFi setup page");
|
||||
net.connected = 0;
|
||||
} else {
|
||||
cursor_bg_valid = 0;
|
||||
cursor_cur_x = -100;
|
||||
cursor_cur_y = -100;
|
||||
logl("[FirstInit] entering wireless setup page");
|
||||
read_network_page(fb, card_x, card_y, &net, &mx, &my, bg, fg);
|
||||
logl("[FirstInit] wireless setup page returned");
|
||||
}
|
||||
build_user_conf(pc, user, pass, &prefs, &net);
|
||||
|
||||
cursor_erase(fb);
|
||||
@@ -978,5 +1140,6 @@ void dsk_entry(const dsk_boot_context *ctx) {
|
||||
fb_bitmap_alpha(fb, g_txt_done, g_txt_done_w, g_txt_done_h, cx - g_txt_done_w/2, cy - 20, fg, bg_at_y(cy), 255);
|
||||
logl("[FirstInit] user setup finished");
|
||||
|
||||
for(;;) __asm__("hlt");
|
||||
/* 短暂停留后返回,由 DSK 接管加载 shell */
|
||||
for (int i = 0; i < 60; i++) delay_frame();
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user