egra: even more comments
[iv.d.git] / x11gfx.d
blob8a00f3926ff60d20c1f16f870fbf77e961bb490e
1 /* coded by Ketmar // Invisible Vector <ketmar@ketmar.no-ip.org>
2 * Understanding is not required. Only obedience.
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, version 3 of the License ONLY.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 module iv.x11gfx /*is aliced*/;
18 import arsd.simpledisplay;
19 //import arsd.color;
20 import iv.alice;
23 // ////////////////////////////////////////////////////////////////////////// //
24 // 0:b; 1:g; 2:r; 3: nothing
25 __gshared int vbufW = 256, vbufH = 192; // 128
26 __gshared uint[] vbuf;
27 __gshared bool blit2x = true;
28 enum BlitType { Normal, BlackWhite, Green, Red }
29 __gshared int blitType = BlitType.Normal;
30 __gshared int blitShine = 0; // adds this to non-black colors
31 __gshared Image vbimg;
32 __gshared SimpleWindow vbwin;
35 // ////////////////////////////////////////////////////////////////////////// //
36 void x11gfxDeinit () {
37 flushGui();
38 if (vbimg !is null) delete vbimg;
39 if (vbwin !is null) { if (!vbwin.closed) vbwin.close(); delete vbwin; }
40 if (vbuf !is null) delete vbuf;
41 vbimg = null;
42 vbwin = null;
43 vbuf = null;
44 flushGui();
48 SimpleWindow x11gfxInit (string title) {
49 if (vbufW < 1 || vbufH < 1 || vbufW > 4096 || vbufH > 4096) assert(0, "invalid dimensions");
50 initVBuf();
51 vbwin = new SimpleWindow(vbufW*(blit2x ? 2 : 1), vbufH*(blit2x ? 2 : 1), title, OpenGlOptions.no, Resizablity.fixedSize);
52 vbimg = new Image(vbufW*(blit2x ? 2 : 1), vbufH*(blit2x ? 2 : 1));
53 return vbwin;
57 void x11gfxBlit () {
58 if (vbwin is null || vbwin.closed) return;
59 auto painter = vbwin.draw();
60 painter.drawImage(Point(0, 0), vbimg);
64 // ////////////////////////////////////////////////////////////////////////// //
65 final class X11Image {
66 int width, height;
67 VColor[] data;
69 this (int w, int h) {
70 assert(w > 0 && w <= 4096);
71 assert(h > 0 && h <= 4096);
72 width = w;
73 height = h;
74 data.length = w*h;
75 data[] = Transparent;
78 VColor getPixel (int x, int y) const {
79 return (x >= 0 && y >= 0 && x < width && y < height ? data[y*width+x] : Transparent);
82 void setPixel (int x, int y, VColor c) {
83 if (x >= 0 && y >= 0 && x < width && y < height) data[y*width+x] = c;
86 void blitFast (int x, int y) const {
87 if (width < 1 || height < 1) return;
88 if (x <= -width || y <= -height) return;
89 if (x >= vbufW || y >= vbufH) return;
90 auto src = cast(const(VColor)*)data.ptr;
91 if (x >= 0 && y >= 0 && x+width < vbufW && y+height < vbufH) {
92 auto d = cast(uint*)vbuf.ptr;
93 d += vbufW*y+x;
94 foreach (int dy; 0..height) {
95 d[0..width] = src[0..width];
96 src += width;
97 d += vbufW;
99 } else {
100 foreach (int dy; 0..height) {
101 foreach (int dx; 0..width) {
102 .setPixel(x+dx, y+dy, *src++);
108 void blit (int x, int y) const {
109 if (width < 1 || height < 1) return;
110 if (x <= -width || y <= -height) return;
111 if (x >= vbufW || y >= vbufH) return;
112 auto src = cast(const(VColor)*)data.ptr;
113 foreach (int dy; 0..height) {
114 foreach (int dx; 0..width) {
115 putPixel(x+dx, y+dy, *src++);
122 private void initVBuf () {
123 vbuf.length = vbufW*vbufH;
124 vbuf[] = 0;
128 private {
129 void blit2xImpl(string op, bool scanlines=true) (Image img) {
130 enum ShineMixin = q{
131 if (blitShine && c0) {
133 immutable ubyte xc0 = clampToByte(cast(int)(c0&0xff ? cast(int)(c0&0xff)+blitShine : 0));
134 immutable ubyte xc1 = clampToByte(cast(int)((c0>>8)&0xff ? cast(int)((c0>>8)&0xff)+blitShine : 0));
135 immutable ubyte xc2 = clampToByte(cast(int)((c0>>16)&0xff ? cast(int)((c0>>16)&0xff)+blitShine : 0));
137 immutable ubyte xc0 = clampToByte(cast(int)(cast(int)(c0&0xff)+blitShine));
138 immutable ubyte xc1 = clampToByte(cast(int)(cast(int)((c0>>8)&0xff)+blitShine));
139 immutable ubyte xc2 = clampToByte(cast(int)(cast(int)((c0>>16)&0xff)+blitShine));
140 c0 = xc0|(xc1<<8)|(xc2<<16);
143 static if (UsingSimpledisplayX11) {
144 auto s = cast(const(ubyte)*)vbuf.ptr;
145 immutable iw = img.width;
146 auto dd = cast(uint*)img.getDataPointer;
147 foreach (immutable int dy; 0..vbufH) {
148 if (dy*2+1 >= img.height) return;
149 auto d = dd+iw*(dy*2);
150 foreach (immutable int dx; 0..vbufW) {
151 if (dx+1 < iw) {
152 static if (op.length) mixin(op);
153 mixin(ShineMixin);
154 static if (scanlines) {
155 immutable uint c1 = ((((c0&0x00ff00ff)*6)>>3)&0x00ff00ff)|(((c0&0x0000ff00)*6)>>3)&0x0000ff00;
156 } else {
157 alias c1 = c0;
159 d[0] = d[1] = c0;
160 d[iw+0] = d[iw+1] = c1;
161 d += 2;
162 s += 4;
166 } else {
167 // this sux
168 immutable bpp = img.bytesPerPixel();
169 immutable rofs = img.redByteOffset;
170 immutable gofs = img.greenByteOffset;
171 immutable bofs = img.blueByteOffset;
172 immutable nlo = img.adjustmentForNextLine;
173 auto s = cast(const(ubyte)*)vbuf.ptr;
174 immutable iw = img.width;
175 auto dd = cast(ubyte*)img.getDataPointer;
176 foreach (immutable int dy; 0..vbufH) {
177 if (dy*2+1 >= img.height) return;
178 auto d = dd+img.offsetForPixel(0, dy*2);
179 foreach (immutable int dx; 0..vbufW) {
180 if (dx+1 < iw) {
181 static if (op.length) mixin(op);
182 mixin(ShineMixin);
183 static if (scanlines) {
184 immutable uint c1 = ((((c0&0x00ff00ff)*6)>>3)&0x00ff00ff)|(((c0&0x0000ff00)*6)>>3)&0x0000ff00;
185 } else {
186 alias c1 = c0;
188 d[bofs] = d[bofs+bpp] = c0&0xff;
189 d[gofs] = d[gofs+bpp] = (c0>>8)&0xff;
190 d[rofs] = d[rofs+bpp] = (c0>>16)&0xff;
191 d[bofs+nlo] = d[bofs+nlo+bpp] = c0&0xff;
192 d[gofs+nlo] = d[gofs+nlo+bpp] = (c0>>8)&0xff;
193 d[rofs+nlo] = d[rofs+nlo+bpp] = (c0>>16)&0xff;
194 d += bpp*2;
195 s += 4;
202 alias blit2xTV = blit2xImpl!"uint c0 = (cast(immutable(uint)*)s)[0];";
203 alias blit2xTVBW = blit2xImpl!"immutable ubyte i = cast(ubyte)((s[0]*28+s[1]*151+s[2]*77)/256); uint c0 = (i<<16)|(i<<8)|i;";
204 alias blit2xTVGreen = blit2xImpl!"immutable ubyte i = cast(ubyte)((s[0]*28+s[1]*151+s[2]*77)/256); uint c0 = i<<8;";
205 alias blit2xTVRed = blit2xImpl!"immutable ubyte i = cast(ubyte)((s[0]*28+s[1]*151+s[2]*77)/256); uint c0 = i<<16;";
209 void realizeVBuf (/*Image img*/) {
210 if (vbimg is null) return;
211 Image img = vbimg;
213 auto sp = vbuf.ptr;
214 auto dp = cast(uint*)img.getDataPointer;
215 import core.stdc.string : memcpy;
216 memcpy(dp, sp, vbufW*vbufH*4);
218 if (blit2x) {
219 if (img.width < vbufW*2 || img.height < vbufH*2) return;
220 switch (blitType) {
221 case BlitType.BlackWhite: blit2xTVBW(img); break;
222 case BlitType.Green: blit2xTVGreen(img); break;
223 case BlitType.Red: blit2xTVRed(img); break;
224 default: blit2xTV(img); break;
226 } else {
227 if (img.width < vbufW || img.height < vbufH) return;
228 static if (UsingSimpledisplayX11) {
229 auto dp = cast(uint*)img.getDataPointer;
230 dp[0..vbufW*vbufH] = vbuf.ptr[0..vbufW*vbufH];
231 } else {
232 // this sux
233 auto sp = cast(ubyte*)vbuf.ptr;
234 auto dp = cast(ubyte*)img.getDataPointer;
235 immutable bpp = img.bytesPerPixel();
236 immutable rofs = img.redByteOffset;
237 immutable gofs = img.greenByteOffset;
238 immutable bofs = img.blueByteOffset;
239 foreach (immutable y; 0..vbufH) {
240 auto d = dp+img.offsetForTopLeftPixel;
241 foreach (immutable x; 0..vbufW) {
242 d[bofs] = *sp++;
243 d[gofs] = *sp++;
244 d[rofs] = *sp++;
245 ++sp;
246 d += bpp;
254 // ////////////////////////////////////////////////////////////////////////// //
255 ubyte clampToByte(T) (T n) @safe pure nothrow @nogc
256 if (__traits(isIntegral, T) && (T.sizeof == 2 || T.sizeof == 4))
258 static if (__VERSION__ > 2067) pragma(inline, true);
259 n &= -cast(int)(n >= 0);
260 return cast(ubyte)(n|((255-cast(int)n)>>31));
263 ubyte clampToByte(T) (T n) @safe pure nothrow @nogc
264 if (__traits(isIntegral, T) && T.sizeof == 1)
266 static if (__VERSION__ > 2067) pragma(inline, true);
267 return cast(ubyte)n;
271 // ////////////////////////////////////////////////////////////////////////// //
272 alias VColor = uint;
274 /// vlRGBA struct to ease color components extraction/replacing
275 align(1) struct vlRGBA {
276 align(1):
277 ubyte b, g, r, a;
279 static assert(vlRGBA.sizeof == VColor.sizeof);
282 enum : VColor {
283 vlAMask = 0xff000000u,
284 vlRMask = 0x00ff0000u,
285 vlGMask = 0x0000ff00u,
286 vlBMask = 0x000000ffu
289 enum : VColor {
290 vlAShift = 24,
291 vlRShift = 16,
292 vlGShift = 8,
293 vlBShift = 0
297 enum VColor Transparent = vlAMask; /// completely transparent pixel color
300 bool isTransparent(T : VColor) (T col) @safe pure nothrow @nogc {
301 static if (__VERSION__ > 2067) pragma(inline, true);
302 return ((col&vlAMask) == vlAMask);
305 bool isOpaque(T : VColor) (T col) @safe pure nothrow @nogc {
306 static if (__VERSION__ > 2067) pragma(inline, true);
307 return ((col&vlAMask) == 0);
310 // a=0: opaque
311 VColor rgbcol(TR, TG, TB, TA=ubyte) (TR r, TG g, TB b, TA a=0) @safe pure nothrow @nogc
312 if (__traits(isIntegral, TR) && __traits(isIntegral, TG) && __traits(isIntegral, TB) && __traits(isIntegral, TA)) {
313 static if (__VERSION__ > 2067) pragma(inline, true);
314 return
315 (clampToByte(a)<<vlAShift)|
316 (clampToByte(r)<<vlRShift)|
317 (clampToByte(g)<<vlGShift)|
318 (clampToByte(b)<<vlBShift);
321 alias rgbacol = rgbcol;
324 // generate some templates
325 private enum genRGBGetSet(string cname) =
326 "ubyte rgb"~cname~"() (VColor clr) @safe pure nothrow @nogc {\n"~
327 " static if (__VERSION__ > 2067) pragma(inline, true);\n"~
328 " return ((clr>>vl"~cname[0]~"Shift)&0xff);\n"~
329 "}\n"~
330 "VColor rgbSet"~cname~"(T) (VColor clr, T v) @safe pure nothrow @nogc if (__traits(isIntegral, T)) {\n"~
331 " static if (__VERSION__ > 2067) pragma(inline, true);\n"~
332 " return (clr&~vl"~cname[0]~"Mask)|(clampToByte(v)<<vl"~cname[0]~"Shift);\n"~
333 "}\n";
335 mixin(genRGBGetSet!"Alpha");
336 mixin(genRGBGetSet!"Red");
337 mixin(genRGBGetSet!"Green");
338 mixin(genRGBGetSet!"Blue");
341 // ////////////////////////////////////////////////////////////////////////// //
342 void putPixel(TX, TY) (TX x, TY y, VColor col) @trusted
343 if (__traits(isIntegral, TX) && __traits(isIntegral, TY))
345 static if (__VERSION__ > 2067) pragma(inline, true);
346 immutable long xx = cast(long)x;
347 immutable long yy = cast(long)y;
348 if ((col&vlAMask) != vlAMask && xx >= 0 && yy >= 0 && xx < vbufW && yy < vbufH) {
349 uint* da = vbuf.ptr+yy*vbufW+xx;
350 if (col&vlAMask) {
351 immutable uint a = 256-(col>>24); // to not loose bits
352 immutable uint dc = (*da)&0xffffff;
353 immutable uint srb = (col&0xff00ff);
354 immutable uint sg = (col&0x00ff00);
355 immutable uint drb = (dc&0xff00ff);
356 immutable uint dg = (dc&0x00ff00);
357 immutable uint orb = (drb+(((srb-drb)*a+0x800080)>>8))&0xff00ff;
358 immutable uint og = (dg+(((sg-dg)*a+0x008000)>>8))&0x00ff00;
359 *da = orb|og;
360 } else {
361 *da = col;
366 void setPixel(TX, TY) (TX x, TY y, VColor col) @trusted
367 if (__traits(isIntegral, TX) && __traits(isIntegral, TY))
369 static if (__VERSION__ > 2067) pragma(inline, true);
370 immutable long xx = cast(long)x;
371 immutable long yy = cast(long)y;
372 if (xx >= 0 && yy >= 0 && xx < vbufW && yy < vbufH) {
373 uint* da = vbuf.ptr+yy*vbufW+xx;
374 *da = col;
379 // ////////////////////////////////////////////////////////////////////////// //
380 void clear (VColor col) @trusted {
381 vbuf.ptr[0..vbufW*vbufH] = col;
385 // ////////////////////////////////////////////////////////////////////////// //
386 void drawRect (int x, int y, int w, int h, immutable VColor col) {
387 if (w < 1 || h < 1) return;
388 if (x <= -w || y <= -h || x >= vbufW || y >= vbufH || isTransparent(col)) return;
389 if (x < 0) { w += x; x = 0; }
390 if (y < 0) { h += y; h = 0; }
391 if (x+w >= vbufW) w = vbufW-x;
392 if (y+h >= vbufH) h = vbufH-y;
393 assert(x >= 0 && y >= 0 && x < vbufW && y < vbufH && w > 0 && h > 0 && x+w <= vbufW && y+h <= vbufH);
394 if (isOpaque(col)) {
395 uint d = y*vbufW+x;
396 vbuf[d..d+w] = col;
397 d += vbufW;
398 foreach (immutable yy; y+1..y+h-1) {
399 vbuf[d] = col;
400 vbuf[d+w-1] = col;
401 d += vbufW;
403 if (h > 1) vbuf[d..d+w] = col;
404 } else {
405 foreach (immutable yy; y..y+h) {
406 putPixel(x, yy, col);
407 putPixel(x+w-1, yy, col);
409 foreach (immutable xx; x+1..x+w-1) {
410 putPixel(xx, y, col);
411 if (h > 1) putPixel(xx, y+h-1, col);
416 void fillRect (int x, int y, int w, int h, immutable VColor col) {
417 if (w < 1 || h < 1) return;
418 if (x <= -w || y <= -h || x >= vbufW || y >= vbufH || isTransparent(col)) return;
419 if (x < 0) { w += x; x = 0; }
420 if (y < 0) { h += y; h = 0; }
421 if (x+w >= vbufW) w = vbufW-x;
422 if (y+h >= vbufH) h = vbufH-y;
423 assert(x >= 0 && y >= 0 && x < vbufW && y < vbufH && w > 0 && h > 0 && x+w <= vbufW && y+h <= vbufH);
424 if (isOpaque(col)) {
425 uint d = y*vbufW+x;
426 foreach (immutable yy; y..y+h) {
427 vbuf[d..d+w] = col;
428 d += vbufW;
430 } else {
431 foreach (immutable yy; y..y+h) {
432 foreach (immutable xx; x..x+w) {
433 putPixel(xx, yy, col);
439 void hline (int x, int y, int len, immutable VColor col) { drawRect(x, y, len, 1, col); }
440 void vline (int x, int y, int len, immutable VColor col) { drawRect(x, y, 1, len, col); }
443 // ////////////////////////////////////////////////////////////////////////// //
444 void drawLine(bool lastPoint=true) (int x0, int y0, int x1, int y1, immutable VColor col) {
445 enum swap(string a, string b) = "{int tmp_="~a~";"~a~"="~b~";"~b~"=tmp_;}";
447 if ((col&vlAMask) == vlAMask) return;
449 if (x0 == x1 && y0 == y1) {
450 static if (lastPoint) putPixel(x0, y0, col);
451 return;
454 // clip rectange
455 int wx0 = 0, wy0 = 0, wx1 = vbufW-1, wy1 = vbufH-1;
456 // other vars
457 int stx, sty; // "steps" for x and y axes
458 int dsx, dsy; // "lengthes" for x and y axes
459 int dx2, dy2; // "double lengthes" for x and y axes
460 int xd, yd; // current coord
461 int e; // "error" (as in bresenham algo)
462 int rem;
463 int term;
464 int *d0, d1;
465 // horizontal setup
466 if (x0 < x1) {
467 // from left to right
468 if (x0 > wx1 || x1 < wx0) return; // out of screen
469 stx = 1; // going right
470 } else {
471 // from right to left
472 if (x1 > wx1 || x0 < wx0) return; // out of screen
473 stx = -1; // going left
474 x0 = -x0;
475 x1 = -x1;
476 wx0 = -wx0;
477 wx1 = -wx1;
478 mixin(swap!("wx0", "wx1"));
480 // vertical setup
481 if (y0 < y1) {
482 // from top to bottom
483 if (y0 > wy1 || y1 < wy0) return; // out of screen
484 sty = 1; // going down
485 } else {
486 // from bottom to top
487 if (y1 > wy1 || y0 < wy0) return; // out of screen
488 sty = -1; // going up
489 y0 = -y0;
490 y1 = -y1;
491 wy0 = -wy0;
492 wy1 = -wy1;
493 mixin(swap!("wy0", "wy1"));
495 dsx = x1-x0;
496 dsy = y1-y0;
497 if (dsx < dsy) {
498 d0 = &yd;
499 d1 = &xd;
500 mixin(swap!("x0", "y0"));
501 mixin(swap!("x1", "y1"));
502 mixin(swap!("dsx", "dsy"));
503 mixin(swap!("wx0", "wy0"));
504 mixin(swap!("wx1", "wy1"));
505 mixin(swap!("stx", "sty"));
506 } else {
507 d0 = &xd;
508 d1 = &yd;
510 dx2 = 2*dsx;
511 dy2 = 2*dsy;
512 xd = x0;
513 yd = y0;
514 e = 2*dsy-dsx;
515 term = x1;
516 bool xfixed = false;
517 if (y0 < wy0) {
518 // clip at top
519 int temp = dx2*(wy0-y0)-dsx;
520 xd += temp/dy2;
521 rem = temp%dy2;
522 if (xd > wx1) return; // x is moved out of clipping rect, nothing to do
523 if (xd+1 >= wx0) {
524 yd = wy0;
525 e -= rem+dsx;
526 if (rem > 0) { ++xd; e += dy2; }
527 xfixed = true;
530 if (!xfixed && x0 < wx0) {
531 // clip at left
532 int temp = dy2*(wx0-x0);
533 yd += temp/dx2;
534 rem = temp%dx2;
535 if (yd > wy1 || yd == wy1 && rem >= dsx) return;
536 xd = wx0;
537 e += rem;
538 if (rem >= dsx) { ++yd; e -= dx2; }
540 if (y1 > wy1) {
541 // clip at bottom
542 int temp = dx2*(wy1-y0)+dsx;
543 term = x0+temp/dy2;
544 rem = temp%dy2;
545 if (rem == 0) --term;
547 if (term > wx1) term = wx1; // clip at right
548 static if (lastPoint) {
549 // draw last point
550 ++term;
551 } else {
552 if (term == xd) return; // this is the only point, get out of here
554 if (sty == -1) yd = -yd;
555 if (stx == -1) { xd = -xd; term = -term; }
556 dx2 -= dy2;
557 // draw it; `putPixel()` can omit checks
558 while (xd != term) {
559 // inlined `putPixel(*d0, *d1, col)`
560 // this can be made even faster by precalculating `da` and making
561 // separate code branches for mixing and non-mixing drawing, but...
562 // ah, screw it!
563 uint* da = vbuf.ptr+(*d1)*vbufW+(*d0);
564 if (col&vlAMask) {
565 immutable uint a = 256-(col>>24); // to not loose bits
566 immutable uint dc = (*da)&0xffffff;
567 immutable uint srb = (col&0xff00ff);
568 immutable uint sg = (col&0x00ff00);
569 immutable uint drb = (dc&0xff00ff);
570 immutable uint dg = (dc&0x00ff00);
571 immutable uint orb = (drb+(((srb-drb)*a+0x800080)>>8))&0xff00ff;
572 immutable uint og = (dg+(((sg-dg)*a+0x008000)>>8))&0x00ff00;
573 *da = orb|og;
574 } else {
575 *da = col;
577 // done drawing, move coords
578 if (e >= 0) {
579 yd += sty;
580 e -= dx2;
581 } else {
582 e += dy2;
584 xd += stx;
589 // ////////////////////////////////////////////////////////////////////////// //
590 private void plot4points() (int cx, int cy, int x, int y, VColor clr) @trusted {
591 putPixel(cx+x, cy+y, clr);
592 if (x != 0) putPixel(cx-x, cy+y, clr);
593 if (y != 0) putPixel(cx+x, cy-y, clr);
594 putPixel(cx-x, cy-y, clr);
598 void drawCircle (int cx, int cy, int radius, VColor clr) @trusted {
599 if (radius > 0 && !isTransparent(clr)) {
600 int error = -radius, x = radius, y = 0;
601 if (radius == 1) { putPixel(cx, cy, clr); return; }
602 while (x > y) {
603 plot4points(cx, cy, x, y, clr);
604 plot4points(cx, cy, y, x, clr);
605 error += y*2+1;
606 ++y;
607 if (error >= 0) { --x; error -= x*2; }
609 plot4points(cx, cy, x, y, clr);
613 void fillCircle (int cx, int cy, int radius, VColor clr) @trusted {
614 if (radius > 0 && !isTransparent(clr)) {
615 int error = -radius, x = radius, y = 0;
616 if (radius == 1) { putPixel(cx, cy, clr); return; }
617 while (x >= y) {
618 int last_y = y;
619 error += y;
620 ++y;
621 error += y;
622 hline(cx-x, cy+last_y, 2*x+1, clr);
623 if (x != 0 && last_y != 0) hline(cx-x, cy-last_y, 2*x+1, clr);
624 if (error >= 0) {
625 if (x != last_y) {
626 hline(cx-last_y, cy+x, 2*last_y+1, clr);
627 if (last_y != 0 && x != 0) hline(cx-last_y, cy-x, 2*last_y+1, clr);
629 error -= x;
630 --x;
631 error -= x;
638 void drawEllipse (int x0, int y0, int w, int h, VColor clr) @trusted {
639 import std.math : abs;
640 if (w == 0 && h == 0) return;
641 if (w == 1) { vline(x0, y0, h, clr); return; }
642 if (h == 1) { hline(x0, y0, w, clr); return; }
643 int x1 = x0+w-1;
644 int y1 = y0+h-1;
645 int a = abs(x1-x0), b = abs(y1-y0), b1 = b&1; // values of diameter
646 long dx = 4*(1-a)*b*b, dy = 4*(b1+1)*a*a; // error increment
647 long err = dx+dy+b1*a*a; // error of 1.step
648 if (x0 > x1) { x0 = x1; x1 += a; } // if called with swapped points...
649 if (y0 > y1) y0 = y1; // ...exchange them
650 y0 += (b+1)/2; y1 = y0-b1; // starting pixel
651 a *= 8*a; b1 = 8*b*b;
652 do {
653 long e2;
654 putPixel(x1, y0, clr); // I. Quadrant
655 putPixel(x0, y0, clr); // II. Quadrant
656 putPixel(x0, y1, clr); // III. Quadrant
657 putPixel(x1, y1, clr); // IV. Quadrant
658 e2 = 2*err;
659 if (e2 >= dx) { ++x0; --x1; err += dx += b1; } // x step
660 if (e2 <= dy) { ++y0; --y1; err += dy += a; } // y step
661 } while (x0 <= x1);
662 while (y0-y1 < b) {
663 // too early stop of flat ellipses a=1
664 putPixel(x0-1, ++y0, clr); // complete tip of ellipse
665 putPixel(x0-1, --y1, clr);
669 void fillEllipse (int x0, int y0, int w, int h, VColor clr) @trusted {
670 import std.math : abs;
671 if (w == 0 && h == 0) return;
672 if (w == 1) { vline(x0, y0, h, clr); return; }
673 if (h == 1) { hline(x0, y0, w, clr); return; }
674 int x1 = x0+w-1;
675 int y1 = y0+h-1;
676 int a = abs(x1-x0), b = abs(y1-y0), b1 = b&1; // values of diameter
677 long dx = 4*(1-a)*b*b, dy = 4*(b1+1)*a*a; // error increment
678 long err = dx+dy+b1*a*a; // error of 1.step
679 int prev_y0 = -1, prev_y1 = -1;
680 if (x0 > x1) { x0 = x1; x1 += a; } // if called with swapped points...
681 if (y0 > y1) y0 = y1; // ...exchange them
682 y0 += (b+1)/2; y1 = y0-b1; // starting pixel
683 a *= 8*a; b1 = 8*b*b;
684 do {
685 long e2;
686 if (y0 != prev_y0) { hline(x0, y0, x1-x0+1, clr); prev_y0 = y0; }
687 if (y1 != y0 && y1 != prev_y1) { hline(x0, y1, x1-x0+1, clr); prev_y1 = y1; }
688 e2 = 2*err;
689 if (e2 >= dx) { ++x0; --x1; err += dx += b1; } // x step
690 if (e2 <= dy) { ++y0; --y1; err += dy += a; } // y step
691 } while (x0 <= x1);
692 while (y0-y1 < b) {
693 // too early stop of flat ellipses a=1
694 putPixel(x0-1, ++y0, clr); // complete tip of ellipse
695 putPixel(x0-1, --y1, clr);
700 // //////////////////////////////////////////////////////////////////////// //
701 int charWidth(string type="msx") () {
702 static if (type == "msx") return 6;
703 else static if (type == "dos") return 8;
704 else static if (type == "d10") return 10;
705 else static assert(0, "invalid font type");
708 int charHeight(string type="msx") () {
709 static if (type == "msx") return 8;
710 else static if (type == "dos") return 8;
711 else static if (type == "d10") return 10;
712 else static assert(0, "invalid font type");
715 void drawCharWdt(string type="msx") (int x, int y, int wdt, int shift, char ch, VColor fgcol, VColor bgcol=Transparent) @trusted {
716 static if (type == "msx") { alias fontb8 = vlFont6; enum fwdt = 8; enum fhgt = 8; enum fmask = 0x80; }
717 else static if (type == "dos") { alias fontb8 = dosFont8; enum fwdt = 8; enum fhgt = 8; enum fmask = 0x80; }
718 else static if (type == "d10") { alias fontb8 = dosFont10; enum fwdt = 10; enum fhgt = 10; enum fmask = 0x8000; }
719 else static assert(0, "invalid font type");
720 usize pos = ch*fhgt;
721 if (wdt < 1 || shift >= fwdt) return;
722 if (fgcol == Transparent && bgcol == Transparent) return;
723 if (wdt > fwdt) wdt = fwdt;
724 if (shift < 0) shift = 0;
725 foreach (immutable int dy; 0..fhgt) {
726 ushort b = cast(ushort)(fontb8[pos++]<<shift);
727 foreach (immutable int dx; 0..wdt) {
728 VColor c = (b&fmask ? fgcol : bgcol);
729 if (!isTransparent(c)) putPixel(x+dx, y+dy, c);
730 b <<= 1;
735 // outline types
736 enum : ubyte {
737 OutLeft = 0x01,
738 OutRight = 0x02,
739 OutUp = 0x04,
740 OutDown = 0x08,
741 OutLU = 0x10, // left-up
742 OutRU = 0x20, // right-up
743 OutLD = 0x40, // left-down
744 OutRD = 0x80, // right-down
745 OutAll = 0xff,
748 void drawCharWdtOut(string type="msx") (int x, int y, int wdt, int shift, char ch, VColor fgcol, VColor outcol=Transparent, ubyte ot=0) @trusted {
749 static if (type == "msx") { alias fontb8 = vlFont6; enum fwdt = 8; enum fhgt = 8; enum fmask = 0x80; }
750 else static if (type == "dos") { alias fontb8 = dosFont8; enum fwdt = 8; enum fhgt = 8; enum fmask = 0x80; }
751 else static if (type == "d10") { alias fontb8 = dosFont10; enum fwdt = 10; enum fhgt = 10; enum fmask = 0x8000; }
752 else static assert(0, "invalid font type");
753 if (fgcol == Transparent && outcol == Transparent) return;
754 if (ot == 0 || outcol == Transparent) {
755 // no outline? simple draw
756 drawCharWdt(x, y, wdt, shift, ch, fgcol, Transparent);
757 return;
759 usize pos = ch*fhgt;
760 if (wdt < 1 || shift >= fwdt) return;
761 if (wdt > 8) wdt = fwdt;
762 if (shift < 0) shift = 0;
763 ubyte[fhgt+2][fwdt+2] bmp = 0; // char bitmap; 0: empty; 1: char; 2: outline
764 foreach (immutable dy; 1..fhgt+1) {
765 ushort b = cast(ushort)(fontb8[pos++]<<shift);
766 foreach (immutable dx; 1..wdt+1) {
767 if (b&fmask) {
768 // put pixel
769 bmp[dy][dx] = 1;
770 // put outlines
771 if ((ot&OutUp) && bmp[dy-1][dx] == 0) bmp[dy-1][dx] = 2;
772 if ((ot&OutDown) && bmp[dy+1][dx] == 0) bmp[dy+1][dx] = 2;
773 if ((ot&OutLeft) && bmp[dy][dx-1] == 0) bmp[dy][dx-1] = 2;
774 if ((ot&OutRight) && bmp[dy][dx+1] == 0) bmp[dy][dx+1] = 2;
775 if ((ot&OutLU) && bmp[dy-1][dx-1] == 0) bmp[dy-1][dx-1] = 2;
776 if ((ot&OutRU) && bmp[dy-1][dx+1] == 0) bmp[dy-1][dx+1] = 2;
777 if ((ot&OutLD) && bmp[dy+1][dx-1] == 0) bmp[dy+1][dx-1] = 2;
778 if ((ot&OutRD) && bmp[dy+1][dx+1] == 0) bmp[dy+1][dx+1] = 2;
780 b <<= 1;
783 // now draw it
784 --x;
785 --y;
786 foreach (immutable int dy; 0..fhgt+2) {
787 foreach (immutable int dx; 0..fwdt+2) {
788 if (auto t = bmp[dy][dx]) putPixel(x+dx, y+dy, (t == 1 ? fgcol : outcol));
793 void drawChar(string type="msx") (int x, int y, char ch, VColor fgcol, VColor bgcol=Transparent) @trusted {
794 drawCharWdt!type(x, y, charWidth!type, 0, ch, fgcol, bgcol);
797 void drawCharOut(string type="msx") (int x, int y, char ch, VColor fgcol, VColor outcol=Transparent, ubyte ot=OutAll) @trusted {
798 drawCharWdtOut!type(x, y, charWidth!type, 0, ch, fgcol, outcol, ot);
801 void drawStr(string type="msx") (int x, int y, const(char)[] str, VColor fgcol, VColor bgcol=Transparent) @trusted {
802 foreach (immutable char ch; str) {
803 drawChar!type(x, y, ch, fgcol, bgcol);
804 x += charWidth!type;
808 void drawStrOut(string type="msx") (int x, int y, const(char)[] str, VColor fgcol, VColor outcol=Transparent, ubyte ot=OutAll) @trusted {
809 foreach (immutable char ch; str) {
810 drawCharOut!type(x, y, ch, fgcol, outcol, ot);
811 x += charWidth!type;
815 int strWidth(string type="msx") (const(char)[] str) {
816 return cast(int)str.length*charWidth!type;
819 int charWidthProp(string type="msx") (char ch) @trusted pure {
820 static if (type == "msx") { alias fontw8 = vlFontPropWidth; }
821 else static if (type == "dos") { alias fontw8 = dosFontPropWidth; }
822 else static assert(0, "invalid font type");
823 return (fontw8.ptr[ch]&0x0f);
826 int strWidthProp(string type="msx") (const(char)[] str) @trusted pure {
827 static if (type == "msx") { alias fontw8 = vlFontPropWidth; }
828 else static if (type == "dos") { alias fontw8 = dosFontPropWidth; }
829 else static assert(0, "invalid font type");
830 int wdt = 0;
831 foreach (immutable char ch; str) wdt += (fontw8[ch]&0x0f)+1;
832 if (wdt > 0) --wdt; // don't count last empty pixel
833 return wdt;
836 int drawCharProp(string type="msx") (int x, int y, char ch, VColor fgcol, VColor bgcol=Transparent) @trusted {
837 static if (type == "msx") { alias fontw8 = vlFontPropWidth; }
838 else static if (type == "dos") { alias fontw8 = dosFontPropWidth; }
839 else static assert(0, "invalid font type");
840 immutable int wdt = (fontw8[ch]&0x0f);
841 drawCharWdt!type(x, y, wdt, fontw8[ch]>>4, ch, fgcol, bgcol);
842 return wdt;
845 int drawCharPropOut(string type="msx") (int x, int y, char ch, VColor fgcol, VColor outcol=Transparent, ubyte ot=OutAll) @trusted {
846 static if (type == "msx") { alias fontw8 = vlFontPropWidth; }
847 else static if (type == "dos") { alias fontw8 = dosFontPropWidth; }
848 else static assert(0, "invalid font type");
849 immutable int wdt = (fontw8[ch]&0x0f);
850 drawCharWdtOut!type(x, y, wdt, fontw8[ch]>>4, ch, fgcol, outcol, ot);
851 return wdt;
854 int drawStrProp(string type="msx") (int x, int y, const(char)[] str, VColor fgcol, VColor bgcol=Transparent) @trusted {
855 bool vline = false;
856 int sx = x;
857 foreach (immutable char ch; str) {
858 if (vline) {
859 if (!isTransparent(bgcol)) foreach (int dy; 0..8) putPixel(x, y+dy, bgcol);
860 ++x;
862 vline = true;
863 x += drawCharProp!type(x, y, ch, fgcol, bgcol);
865 return x-sx;
868 int drawStrPropOut(string type="msx") (int x, int y, const(char)[] str, VColor fgcol, VColor outcol=Transparent, ubyte ot=OutAll) @trusted {
869 int sx = x;
870 foreach (immutable char ch; str) {
871 x += drawCharPropOut!type(x, y, ch, fgcol, outcol, ot)+1;
873 if (x > sx) --x; // don't count last empty pixel
874 return x-sx;
878 // ////////////////////////////////////////////////////////////////////////// //
879 public static immutable ubyte[256*8] vlFont6 = [
880 /* 0 */
881 0b_00000000,
882 0b_00000000,
883 0b_00000000,
884 0b_00000000,
885 0b_00000000,
886 0b_00000000,
887 0b_00000000,
888 0b_00000000,
889 /* 1 */
890 0b_00111100,
891 0b_01000010,
892 0b_10100101,
893 0b_10000001,
894 0b_10100101,
895 0b_10011001,
896 0b_01000010,
897 0b_00111100,
898 /* 2 */
899 0b_00111100,
900 0b_01111110,
901 0b_11011011,
902 0b_11111111,
903 0b_11111111,
904 0b_11011011,
905 0b_01100110,
906 0b_00111100,
907 /* 3 */
908 0b_01101100,
909 0b_11111110,
910 0b_11111110,
911 0b_11111110,
912 0b_01111100,
913 0b_00111000,
914 0b_00010000,
915 0b_00000000,
916 /* 4 */
917 0b_00010000,
918 0b_00111000,
919 0b_01111100,
920 0b_11111110,
921 0b_01111100,
922 0b_00111000,
923 0b_00010000,
924 0b_00000000,
925 /* 5 */
926 0b_00010000,
927 0b_00111000,
928 0b_01010100,
929 0b_11111110,
930 0b_01010100,
931 0b_00010000,
932 0b_00111000,
933 0b_00000000,
934 /* 6 */
935 0b_00010000,
936 0b_00111000,
937 0b_01111100,
938 0b_11111110,
939 0b_11111110,
940 0b_00010000,
941 0b_00111000,
942 0b_00000000,
943 /* 7 */
944 0b_00000000,
945 0b_00000000,
946 0b_00000000,
947 0b_00110000,
948 0b_00110000,
949 0b_00000000,
950 0b_00000000,
951 0b_00000000,
952 /* 8 */
953 0b_11111111,
954 0b_11111111,
955 0b_11111111,
956 0b_11100111,
957 0b_11100111,
958 0b_11111111,
959 0b_11111111,
960 0b_11111111,
961 /* 9 */
962 0b_00111000,
963 0b_01000100,
964 0b_10000010,
965 0b_10000010,
966 0b_10000010,
967 0b_01000100,
968 0b_00111000,
969 0b_00000000,
970 /* 10 */
971 0b_11000111,
972 0b_10111011,
973 0b_01111101,
974 0b_01111101,
975 0b_01111101,
976 0b_10111011,
977 0b_11000111,
978 0b_11111111,
979 /* 11 */
980 0b_00001111,
981 0b_00000011,
982 0b_00000101,
983 0b_01111001,
984 0b_10001000,
985 0b_10001000,
986 0b_10001000,
987 0b_01110000,
988 /* 12 */
989 0b_00111000,
990 0b_01000100,
991 0b_01000100,
992 0b_01000100,
993 0b_00111000,
994 0b_00010000,
995 0b_01111100,
996 0b_00010000,
997 /* 13 */
998 0b_00110000,
999 0b_00101000,
1000 0b_00100100,
1001 0b_00100100,
1002 0b_00101000,
1003 0b_00100000,
1004 0b_11100000,
1005 0b_11000000,
1006 /* 14 */
1007 0b_00111100,
1008 0b_00100100,
1009 0b_00111100,
1010 0b_00100100,
1011 0b_00100100,
1012 0b_11100100,
1013 0b_11011100,
1014 0b_00011000,
1015 /* 15 */
1016 0b_00010000,
1017 0b_01010100,
1018 0b_00111000,
1019 0b_11101110,
1020 0b_00111000,
1021 0b_01010100,
1022 0b_00010000,
1023 0b_00000000,
1024 /* 16 */
1025 0b_00010000,
1026 0b_00010000,
1027 0b_00010000,
1028 0b_01111100,
1029 0b_00010000,
1030 0b_00010000,
1031 0b_00010000,
1032 0b_00010000,
1033 /* 17 */
1034 0b_00010000,
1035 0b_00010000,
1036 0b_00010000,
1037 0b_11111111,
1038 0b_00000000,
1039 0b_00000000,
1040 0b_00000000,
1041 0b_00000000,
1042 /* 18 */
1043 0b_00000000,
1044 0b_00000000,
1045 0b_00000000,
1046 0b_11111111,
1047 0b_00010000,
1048 0b_00010000,
1049 0b_00010000,
1050 0b_00010000,
1051 /* 19 */
1052 0b_00010000,
1053 0b_00010000,
1054 0b_00010000,
1055 0b_11110000,
1056 0b_00010000,
1057 0b_00010000,
1058 0b_00010000,
1059 0b_00010000,
1060 /* 20 */
1061 0b_00010000,
1062 0b_00010000,
1063 0b_00010000,
1064 0b_00011111,
1065 0b_00010000,
1066 0b_00010000,
1067 0b_00010000,
1068 0b_00010000,
1069 /* 21 */
1070 0b_00010000,
1071 0b_00010000,
1072 0b_00010000,
1073 0b_11111111,
1074 0b_00010000,
1075 0b_00010000,
1076 0b_00010000,
1077 0b_00010000,
1078 /* 22 */
1079 0b_00010000,
1080 0b_00010000,
1081 0b_00010000,
1082 0b_00010000,
1083 0b_00010000,
1084 0b_00010000,
1085 0b_00010000,
1086 0b_00010000,
1087 /* 23 */
1088 0b_00000000,
1089 0b_00000000,
1090 0b_00000000,
1091 0b_11111111,
1092 0b_00000000,
1093 0b_00000000,
1094 0b_00000000,
1095 0b_00000000,
1096 /* 24 */
1097 0b_00000000,
1098 0b_00000000,
1099 0b_00000000,
1100 0b_00011111,
1101 0b_00010000,
1102 0b_00010000,
1103 0b_00010000,
1104 0b_00010000,
1105 /* 25 */
1106 0b_00000000,
1107 0b_00000000,
1108 0b_00000000,
1109 0b_11110000,
1110 0b_00010000,
1111 0b_00010000,
1112 0b_00010000,
1113 0b_00010000,
1114 /* 26 */
1115 0b_00010000,
1116 0b_00010000,
1117 0b_00010000,
1118 0b_00011111,
1119 0b_00000000,
1120 0b_00000000,
1121 0b_00000000,
1122 0b_00000000,
1123 /* 27 */
1124 0b_00010000,
1125 0b_00010000,
1126 0b_00010000,
1127 0b_11110000,
1128 0b_00000000,
1129 0b_00000000,
1130 0b_00000000,
1131 0b_00000000,
1132 /* 28 */
1133 0b_10000001,
1134 0b_01000010,
1135 0b_00100100,
1136 0b_00011000,
1137 0b_00011000,
1138 0b_00100100,
1139 0b_01000010,
1140 0b_10000001,
1141 /* 29 */
1142 0b_00000001,
1143 0b_00000010,
1144 0b_00000100,
1145 0b_00001000,
1146 0b_00010000,
1147 0b_00100000,
1148 0b_01000000,
1149 0b_10000000,
1150 /* 30 */
1151 0b_10000000,
1152 0b_01000000,
1153 0b_00100000,
1154 0b_00010000,
1155 0b_00001000,
1156 0b_00000100,
1157 0b_00000010,
1158 0b_00000001,
1159 /* 31 */
1160 0b_00000000,
1161 0b_00010000,
1162 0b_00010000,
1163 0b_11111111,
1164 0b_00010000,
1165 0b_00010000,
1166 0b_00000000,
1167 0b_00000000,
1168 /* 32 ' ' */
1169 0b_00000000,
1170 0b_00000000,
1171 0b_00000000,
1172 0b_00000000,
1173 0b_00000000,
1174 0b_00000000,
1175 0b_00000000,
1176 0b_00000000,
1177 /* 33 '!' */
1178 0b_00100000,
1179 0b_00100000,
1180 0b_00100000,
1181 0b_00100000,
1182 0b_00000000,
1183 0b_00000000,
1184 0b_00100000,
1185 0b_00000000,
1186 /* 34 '"' */
1187 0b_01010000,
1188 0b_01010000,
1189 0b_01010000,
1190 0b_00000000,
1191 0b_00000000,
1192 0b_00000000,
1193 0b_00000000,
1194 0b_00000000,
1195 /* 35 '#' */
1196 0b_01010000,
1197 0b_01010000,
1198 0b_11111000,
1199 0b_01010000,
1200 0b_11111000,
1201 0b_01010000,
1202 0b_01010000,
1203 0b_00000000,
1204 /* 36 '$' */
1205 0b_00100000,
1206 0b_01111000,
1207 0b_10100000,
1208 0b_01110000,
1209 0b_00101000,
1210 0b_11110000,
1211 0b_00100000,
1212 0b_00000000,
1213 /* 37 '%' */
1214 0b_11000000,
1215 0b_11001000,
1216 0b_00010000,
1217 0b_00100000,
1218 0b_01000000,
1219 0b_10011000,
1220 0b_00011000,
1221 0b_00000000,
1222 /* 38 '&' */
1223 0b_01000000,
1224 0b_10100000,
1225 0b_01000000,
1226 0b_10101000,
1227 0b_10010000,
1228 0b_10011000,
1229 0b_01100000,
1230 0b_00000000,
1231 /* 39 ''' */
1232 0b_00010000,
1233 0b_00100000,
1234 0b_01000000,
1235 0b_00000000,
1236 0b_00000000,
1237 0b_00000000,
1238 0b_00000000,
1239 0b_00000000,
1240 /* 40 '(' */
1241 0b_00010000,
1242 0b_00100000,
1243 0b_01000000,
1244 0b_01000000,
1245 0b_01000000,
1246 0b_00100000,
1247 0b_00010000,
1248 0b_00000000,
1249 /* 41 ')' */
1250 0b_01000000,
1251 0b_00100000,
1252 0b_00010000,
1253 0b_00010000,
1254 0b_00010000,
1255 0b_00100000,
1256 0b_01000000,
1257 0b_00000000,
1258 /* 42 '*' */
1259 0b_10001000,
1260 0b_01010000,
1261 0b_00100000,
1262 0b_11111000,
1263 0b_00100000,
1264 0b_01010000,
1265 0b_10001000,
1266 0b_00000000,
1267 /* 43 '+' */
1268 0b_00000000,
1269 0b_00100000,
1270 0b_00100000,
1271 0b_11111000,
1272 0b_00100000,
1273 0b_00100000,
1274 0b_00000000,
1275 0b_00000000,
1276 /* 44 ',' */
1277 0b_00000000,
1278 0b_00000000,
1279 0b_00000000,
1280 0b_00000000,
1281 0b_00000000,
1282 0b_00100000,
1283 0b_00100000,
1284 0b_01000000,
1285 /* 45 '-' */
1286 0b_00000000,
1287 0b_00000000,
1288 0b_00000000,
1289 0b_01111000,
1290 0b_00000000,
1291 0b_00000000,
1292 0b_00000000,
1293 0b_00000000,
1294 /* 46 '.' */
1295 0b_00000000,
1296 0b_00000000,
1297 0b_00000000,
1298 0b_00000000,
1299 0b_00000000,
1300 0b_01100000,
1301 0b_01100000,
1302 0b_00000000,
1303 /* 47 '/' */
1304 0b_00000000,
1305 0b_00000000,
1306 0b_00001000,
1307 0b_00010000,
1308 0b_00100000,
1309 0b_01000000,
1310 0b_10000000,
1311 0b_00000000,
1312 /* 48 '0' */
1313 0b_01110000,
1314 0b_10001000,
1315 0b_10011000,
1316 0b_10101000,
1317 0b_11001000,
1318 0b_10001000,
1319 0b_01110000,
1320 0b_00000000,
1321 /* 49 '1' */
1322 0b_00100000,
1323 0b_01100000,
1324 0b_10100000,
1325 0b_00100000,
1326 0b_00100000,
1327 0b_00100000,
1328 0b_11111000,
1329 0b_00000000,
1330 /* 50 '2' */
1331 0b_01110000,
1332 0b_10001000,
1333 0b_00001000,
1334 0b_00010000,
1335 0b_01100000,
1336 0b_10000000,
1337 0b_11111000,
1338 0b_00000000,
1339 /* 51 '3' */
1340 0b_01110000,
1341 0b_10001000,
1342 0b_00001000,
1343 0b_00110000,
1344 0b_00001000,
1345 0b_10001000,
1346 0b_01110000,
1347 0b_00000000,
1348 /* 52 '4' */
1349 0b_00010000,
1350 0b_00110000,
1351 0b_01010000,
1352 0b_10010000,
1353 0b_11111000,
1354 0b_00010000,
1355 0b_00010000,
1356 0b_00000000,
1357 /* 53 '5' */
1358 0b_11111000,
1359 0b_10000000,
1360 0b_11100000,
1361 0b_00010000,
1362 0b_00001000,
1363 0b_00010000,
1364 0b_11100000,
1365 0b_00000000,
1366 /* 54 '6' */
1367 0b_00110000,
1368 0b_01000000,
1369 0b_10000000,
1370 0b_11110000,
1371 0b_10001000,
1372 0b_10001000,
1373 0b_01110000,
1374 0b_00000000,
1375 /* 55 '7' */
1376 0b_11111000,
1377 0b_10001000,
1378 0b_00010000,
1379 0b_00100000,
1380 0b_00100000,
1381 0b_00100000,
1382 0b_00100000,
1383 0b_00000000,
1384 /* 56 '8' */
1385 0b_01110000,
1386 0b_10001000,
1387 0b_10001000,
1388 0b_01110000,
1389 0b_10001000,
1390 0b_10001000,
1391 0b_01110000,
1392 0b_00000000,
1393 /* 57 '9' */
1394 0b_01110000,
1395 0b_10001000,
1396 0b_10001000,
1397 0b_01111000,
1398 0b_00001000,
1399 0b_00010000,
1400 0b_01100000,
1401 0b_00000000,
1402 /* 58 ':' */
1403 0b_00000000,
1404 0b_00000000,
1405 0b_00100000,
1406 0b_00000000,
1407 0b_00000000,
1408 0b_00100000,
1409 0b_00000000,
1410 0b_00000000,
1411 /* 59 ';' */
1412 0b_00000000,
1413 0b_00000000,
1414 0b_00100000,
1415 0b_00000000,
1416 0b_00000000,
1417 0b_00100000,
1418 0b_00100000,
1419 0b_01000000,
1420 /* 60 '<' */
1421 0b_00011000,
1422 0b_00110000,
1423 0b_01100000,
1424 0b_11000000,
1425 0b_01100000,
1426 0b_00110000,
1427 0b_00011000,
1428 0b_00000000,
1429 /* 61 '=' */
1430 0b_00000000,
1431 0b_00000000,
1432 0b_11111000,
1433 0b_00000000,
1434 0b_11111000,
1435 0b_00000000,
1436 0b_00000000,
1437 0b_00000000,
1438 /* 62 '>' */
1439 0b_11000000,
1440 0b_01100000,
1441 0b_00110000,
1442 0b_00011000,
1443 0b_00110000,
1444 0b_01100000,
1445 0b_11000000,
1446 0b_00000000,
1447 /* 63 '?' */
1448 0b_01110000,
1449 0b_10001000,
1450 0b_00001000,
1451 0b_00010000,
1452 0b_00100000,
1453 0b_00000000,
1454 0b_00100000,
1455 0b_00000000,
1456 /* 64 '@' */
1457 0b_01110000,
1458 0b_10001000,
1459 0b_00001000,
1460 0b_01101000,
1461 0b_10101000,
1462 0b_10101000,
1463 0b_01110000,
1464 0b_00000000,
1465 /* 65 'A' */
1466 0b_00100000,
1467 0b_01010000,
1468 0b_10001000,
1469 0b_10001000,
1470 0b_11111000,
1471 0b_10001000,
1472 0b_10001000,
1473 0b_00000000,
1474 /* 66 'B' */
1475 0b_11110000,
1476 0b_01001000,
1477 0b_01001000,
1478 0b_01110000,
1479 0b_01001000,
1480 0b_01001000,
1481 0b_11110000,
1482 0b_00000000,
1483 /* 67 'C' */
1484 0b_00110000,
1485 0b_01001000,
1486 0b_10000000,
1487 0b_10000000,
1488 0b_10000000,
1489 0b_01001000,
1490 0b_00110000,
1491 0b_00000000,
1492 /* 68 'D' */
1493 0b_11100000,
1494 0b_01010000,
1495 0b_01001000,
1496 0b_01001000,
1497 0b_01001000,
1498 0b_01010000,
1499 0b_11100000,
1500 0b_00000000,
1501 /* 69 'E' */
1502 0b_11111000,
1503 0b_10000000,
1504 0b_10000000,
1505 0b_11110000,
1506 0b_10000000,
1507 0b_10000000,
1508 0b_11111000,
1509 0b_00000000,
1510 /* 70 'F' */
1511 0b_11111000,
1512 0b_10000000,
1513 0b_10000000,
1514 0b_11110000,
1515 0b_10000000,
1516 0b_10000000,
1517 0b_10000000,
1518 0b_00000000,
1519 /* 71 'G' */
1520 0b_01110000,
1521 0b_10001000,
1522 0b_10000000,
1523 0b_10111000,
1524 0b_10001000,
1525 0b_10001000,
1526 0b_01110000,
1527 0b_00000000,
1528 /* 72 'H' */
1529 0b_10001000,
1530 0b_10001000,
1531 0b_10001000,
1532 0b_11111000,
1533 0b_10001000,
1534 0b_10001000,
1535 0b_10001000,
1536 0b_00000000,
1537 /* 73 'I' */
1538 0b_01110000,
1539 0b_00100000,
1540 0b_00100000,
1541 0b_00100000,
1542 0b_00100000,
1543 0b_00100000,
1544 0b_01110000,
1545 0b_00000000,
1546 /* 74 'J' */
1547 0b_00111000,
1548 0b_00010000,
1549 0b_00010000,
1550 0b_00010000,
1551 0b_10010000,
1552 0b_10010000,
1553 0b_01100000,
1554 0b_00000000,
1555 /* 75 'K' */
1556 0b_10001000,
1557 0b_10010000,
1558 0b_10100000,
1559 0b_11000000,
1560 0b_10100000,
1561 0b_10010000,
1562 0b_10001000,
1563 0b_00000000,
1564 /* 76 'L' */
1565 0b_10000000,
1566 0b_10000000,
1567 0b_10000000,
1568 0b_10000000,
1569 0b_10000000,
1570 0b_10000000,
1571 0b_11111000,
1572 0b_00000000,
1573 /* 77 'M' */
1574 0b_10001000,
1575 0b_11011000,
1576 0b_10101000,
1577 0b_10101000,
1578 0b_10001000,
1579 0b_10001000,
1580 0b_10001000,
1581 0b_00000000,
1582 /* 78 'N' */
1583 0b_10001000,
1584 0b_11001000,
1585 0b_11001000,
1586 0b_10101000,
1587 0b_10011000,
1588 0b_10011000,
1589 0b_10001000,
1590 0b_00000000,
1591 /* 79 'O' */
1592 0b_01110000,
1593 0b_10001000,
1594 0b_10001000,
1595 0b_10001000,
1596 0b_10001000,
1597 0b_10001000,
1598 0b_01110000,
1599 0b_00000000,
1600 /* 80 'P' */
1601 0b_11110000,
1602 0b_10001000,
1603 0b_10001000,
1604 0b_11110000,
1605 0b_10000000,
1606 0b_10000000,
1607 0b_10000000,
1608 0b_00000000,
1609 /* 81 'Q' */
1610 0b_01110000,
1611 0b_10001000,
1612 0b_10001000,
1613 0b_10001000,
1614 0b_10101000,
1615 0b_10010000,
1616 0b_01101000,
1617 0b_00000000,
1618 /* 82 'R' */
1619 0b_11110000,
1620 0b_10001000,
1621 0b_10001000,
1622 0b_11110000,
1623 0b_10100000,
1624 0b_10010000,
1625 0b_10001000,
1626 0b_00000000,
1627 /* 83 'S' */
1628 0b_01110000,
1629 0b_10001000,
1630 0b_10000000,
1631 0b_01110000,
1632 0b_00001000,
1633 0b_10001000,
1634 0b_01110000,
1635 0b_00000000,
1636 /* 84 'T' */
1637 0b_11111000,
1638 0b_00100000,
1639 0b_00100000,
1640 0b_00100000,
1641 0b_00100000,
1642 0b_00100000,
1643 0b_00100000,
1644 0b_00000000,
1645 /* 85 'U' */
1646 0b_10001000,
1647 0b_10001000,
1648 0b_10001000,
1649 0b_10001000,
1650 0b_10001000,
1651 0b_10001000,
1652 0b_01110000,
1653 0b_00000000,
1654 /* 86 'V' */
1655 0b_10001000,
1656 0b_10001000,
1657 0b_10001000,
1658 0b_10001000,
1659 0b_01010000,
1660 0b_01010000,
1661 0b_00100000,
1662 0b_00000000,
1663 /* 87 'W' */
1664 0b_10001000,
1665 0b_10001000,
1666 0b_10001000,
1667 0b_10101000,
1668 0b_10101000,
1669 0b_11011000,
1670 0b_10001000,
1671 0b_00000000,
1672 /* 88 'X' */
1673 0b_10001000,
1674 0b_10001000,
1675 0b_01010000,
1676 0b_00100000,
1677 0b_01010000,
1678 0b_10001000,
1679 0b_10001000,
1680 0b_00000000,
1681 /* 89 'Y' */
1682 0b_10001000,
1683 0b_10001000,
1684 0b_10001000,
1685 0b_01110000,
1686 0b_00100000,
1687 0b_00100000,
1688 0b_00100000,
1689 0b_00000000,
1690 /* 90 'Z' */
1691 0b_11111000,
1692 0b_00001000,
1693 0b_00010000,
1694 0b_00100000,
1695 0b_01000000,
1696 0b_10000000,
1697 0b_11111000,
1698 0b_00000000,
1699 /* 91 '[' */
1700 0b_01110000,
1701 0b_01000000,
1702 0b_01000000,
1703 0b_01000000,
1704 0b_01000000,
1705 0b_01000000,
1706 0b_01110000,
1707 0b_00000000,
1708 /* 92 '\' */
1709 0b_00000000,
1710 0b_00000000,
1711 0b_10000000,
1712 0b_01000000,
1713 0b_00100000,
1714 0b_00010000,
1715 0b_00001000,
1716 0b_00000000,
1717 /* 93 ']' */
1718 0b_01110000,
1719 0b_00010000,
1720 0b_00010000,
1721 0b_00010000,
1722 0b_00010000,
1723 0b_00010000,
1724 0b_01110000,
1725 0b_00000000,
1726 /* 94 '^' */
1727 0b_00100000,
1728 0b_01010000,
1729 0b_10001000,
1730 0b_00000000,
1731 0b_00000000,
1732 0b_00000000,
1733 0b_00000000,
1734 0b_00000000,
1735 /* 95 '_' */
1736 0b_00000000,
1737 0b_00000000,
1738 0b_00000000,
1739 0b_00000000,
1740 0b_00000000,
1741 0b_00000000,
1742 0b_11111000,
1743 0b_00000000,
1744 /* 96 '`' */
1745 0b_01000000,
1746 0b_00100000,
1747 0b_00010000,
1748 0b_00000000,
1749 0b_00000000,
1750 0b_00000000,
1751 0b_00000000,
1752 0b_00000000,
1753 /* 97 'a' */
1754 0b_00000000,
1755 0b_00000000,
1756 0b_01110000,
1757 0b_00001000,
1758 0b_01111000,
1759 0b_10001000,
1760 0b_01111000,
1761 0b_00000000,
1762 /* 98 'b' */
1763 0b_10000000,
1764 0b_10000000,
1765 0b_10110000,
1766 0b_11001000,
1767 0b_10001000,
1768 0b_11001000,
1769 0b_10110000,
1770 0b_00000000,
1771 /* 99 'c' */
1772 0b_00000000,
1773 0b_00000000,
1774 0b_01110000,
1775 0b_10001000,
1776 0b_10000000,
1777 0b_10001000,
1778 0b_01110000,
1779 0b_00000000,
1780 /* 100 'd' */
1781 0b_00001000,
1782 0b_00001000,
1783 0b_01101000,
1784 0b_10011000,
1785 0b_10001000,
1786 0b_10011000,
1787 0b_01101000,
1788 0b_00000000,
1789 /* 101 'e' */
1790 0b_00000000,
1791 0b_00000000,
1792 0b_01110000,
1793 0b_10001000,
1794 0b_11111000,
1795 0b_10000000,
1796 0b_01110000,
1797 0b_00000000,
1798 /* 102 'f' */
1799 0b_00010000,
1800 0b_00101000,
1801 0b_00100000,
1802 0b_11111000,
1803 0b_00100000,
1804 0b_00100000,
1805 0b_00100000,
1806 0b_00000000,
1807 /* 103 'g' */
1808 0b_00000000,
1809 0b_00000000,
1810 0b_01101000,
1811 0b_10011000,
1812 0b_10011000,
1813 0b_01101000,
1814 0b_00001000,
1815 0b_01110000,
1816 /* 104 'h' */
1817 0b_10000000,
1818 0b_10000000,
1819 0b_11110000,
1820 0b_10001000,
1821 0b_10001000,
1822 0b_10001000,
1823 0b_10001000,
1824 0b_00000000,
1825 /* 105 'i' */
1826 0b_00100000,
1827 0b_00000000,
1828 0b_01100000,
1829 0b_00100000,
1830 0b_00100000,
1831 0b_00100000,
1832 0b_01110000,
1833 0b_00000000,
1834 /* 106 'j' */
1835 0b_00010000,
1836 0b_00000000,
1837 0b_00110000,
1838 0b_00010000,
1839 0b_00010000,
1840 0b_00010000,
1841 0b_10010000,
1842 0b_01100000,
1843 /* 107 'k' */
1844 0b_01000000,
1845 0b_01000000,
1846 0b_01001000,
1847 0b_01010000,
1848 0b_01100000,
1849 0b_01010000,
1850 0b_01001000,
1851 0b_00000000,
1852 /* 108 'l' */
1853 0b_01100000,
1854 0b_00100000,
1855 0b_00100000,
1856 0b_00100000,
1857 0b_00100000,
1858 0b_00100000,
1859 0b_01110000,
1860 0b_00000000,
1861 /* 109 'm' */
1862 0b_00000000,
1863 0b_00000000,
1864 0b_11010000,
1865 0b_10101000,
1866 0b_10101000,
1867 0b_10101000,
1868 0b_10101000,
1869 0b_00000000,
1870 /* 110 'n' */
1871 0b_00000000,
1872 0b_00000000,
1873 0b_10110000,
1874 0b_11001000,
1875 0b_10001000,
1876 0b_10001000,
1877 0b_10001000,
1878 0b_00000000,
1879 /* 111 'o' */
1880 0b_00000000,
1881 0b_00000000,
1882 0b_01110000,
1883 0b_10001000,
1884 0b_10001000,
1885 0b_10001000,
1886 0b_01110000,
1887 0b_00000000,
1888 /* 112 'p' */
1889 0b_00000000,
1890 0b_00000000,
1891 0b_10110000,
1892 0b_11001000,
1893 0b_11001000,
1894 0b_10110000,
1895 0b_10000000,
1896 0b_10000000,
1897 /* 113 'q' */
1898 0b_00000000,
1899 0b_00000000,
1900 0b_01101000,
1901 0b_10011000,
1902 0b_10011000,
1903 0b_01101000,
1904 0b_00001000,
1905 0b_00001000,
1906 /* 114 'r' */
1907 0b_00000000,
1908 0b_00000000,
1909 0b_10110000,
1910 0b_11001000,
1911 0b_10000000,
1912 0b_10000000,
1913 0b_10000000,
1914 0b_00000000,
1915 /* 115 's' */
1916 0b_00000000,
1917 0b_00000000,
1918 0b_01111000,
1919 0b_10000000,
1920 0b_11110000,
1921 0b_00001000,
1922 0b_11110000,
1923 0b_00000000,
1924 /* 116 't' */
1925 0b_01000000,
1926 0b_01000000,
1927 0b_11110000,
1928 0b_01000000,
1929 0b_01000000,
1930 0b_01001000,
1931 0b_00110000,
1932 0b_00000000,
1933 /* 117 'u' */
1934 0b_00000000,
1935 0b_00000000,
1936 0b_10010000,
1937 0b_10010000,
1938 0b_10010000,
1939 0b_10010000,
1940 0b_01101000,
1941 0b_00000000,
1942 /* 118 'v' */
1943 0b_00000000,
1944 0b_00000000,
1945 0b_10001000,
1946 0b_10001000,
1947 0b_10001000,
1948 0b_01010000,
1949 0b_00100000,
1950 0b_00000000,
1951 /* 119 'w' */
1952 0b_00000000,
1953 0b_00000000,
1954 0b_10001000,
1955 0b_10101000,
1956 0b_10101000,
1957 0b_10101000,
1958 0b_01010000,
1959 0b_00000000,
1960 /* 120 'x' */
1961 0b_00000000,
1962 0b_00000000,
1963 0b_10001000,
1964 0b_01010000,
1965 0b_00100000,
1966 0b_01010000,
1967 0b_10001000,
1968 0b_00000000,
1969 /* 121 'y' */
1970 0b_00000000,
1971 0b_00000000,
1972 0b_10001000,
1973 0b_10001000,
1974 0b_10011000,
1975 0b_01101000,
1976 0b_00001000,
1977 0b_01110000,
1978 /* 122 'z' */
1979 0b_00000000,
1980 0b_00000000,
1981 0b_11111000,
1982 0b_00010000,
1983 0b_00100000,
1984 0b_01000000,
1985 0b_11111000,
1986 0b_00000000,
1987 /* 123 '{' */
1988 0b_00011000,
1989 0b_00100000,
1990 0b_00100000,
1991 0b_01000000,
1992 0b_00100000,
1993 0b_00100000,
1994 0b_00011000,
1995 0b_00000000,
1996 /* 124 '|' */
1997 0b_00100000,
1998 0b_00100000,
1999 0b_00100000,
2000 0b_00000000,
2001 0b_00100000,
2002 0b_00100000,
2003 0b_00100000,
2004 0b_00000000,
2005 /* 125 '}' */
2006 0b_11000000,
2007 0b_00100000,
2008 0b_00100000,
2009 0b_00010000,
2010 0b_00100000,
2011 0b_00100000,
2012 0b_11000000,
2013 0b_00000000,
2014 /* 126 '~' */
2015 0b_01000000,
2016 0b_10101000,
2017 0b_00010000,
2018 0b_00000000,
2019 0b_00000000,
2020 0b_00000000,
2021 0b_00000000,
2022 0b_00000000,
2023 /* 127 */
2024 0b_00000000,
2025 0b_00000000,
2026 0b_00100000,
2027 0b_01010000,
2028 0b_11111000,
2029 0b_00000000,
2030 0b_00000000,
2031 0b_00000000,
2032 /* 128 */
2033 0b_00000000,
2034 0b_00000000,
2035 0b_00000000,
2036 0b_00000000,
2037 0b_00000000,
2038 0b_00000000,
2039 0b_11111111,
2040 0b_11111111,
2041 /* 129 */
2042 0b_11110000,
2043 0b_11110000,
2044 0b_11110000,
2045 0b_11110000,
2046 0b_00001111,
2047 0b_00001111,
2048 0b_00001111,
2049 0b_00001111,
2050 /* 130 */
2051 0b_00000000,
2052 0b_00000000,
2053 0b_11111111,
2054 0b_11111111,
2055 0b_11111111,
2056 0b_11111111,
2057 0b_11111111,
2058 0b_11111111,
2059 /* 131 */
2060 0b_11111111,
2061 0b_11111111,
2062 0b_00000000,
2063 0b_00000000,
2064 0b_00000000,
2065 0b_00000000,
2066 0b_00000000,
2067 0b_00000000,
2068 /* 132 */
2069 0b_00000000,
2070 0b_00000000,
2071 0b_00000000,
2072 0b_00111100,
2073 0b_00111100,
2074 0b_00000000,
2075 0b_00000000,
2076 0b_00000000,
2077 /* 133 */
2078 0b_11111111,
2079 0b_11111111,
2080 0b_11111111,
2081 0b_11111111,
2082 0b_11111111,
2083 0b_11111111,
2084 0b_00000000,
2085 0b_00000000,
2086 /* 134 */
2087 0b_11000000,
2088 0b_11000000,
2089 0b_11000000,
2090 0b_11000000,
2091 0b_11000000,
2092 0b_11000000,
2093 0b_11000000,
2094 0b_11000000,
2095 /* 135 */
2096 0b_00001111,
2097 0b_00001111,
2098 0b_00001111,
2099 0b_00001111,
2100 0b_11110000,
2101 0b_11110000,
2102 0b_11110000,
2103 0b_11110000,
2104 /* 136 */
2105 0b_11111100,
2106 0b_11111100,
2107 0b_11111100,
2108 0b_11111100,
2109 0b_11111100,
2110 0b_11111100,
2111 0b_11111100,
2112 0b_11111100,
2113 /* 137 */
2114 0b_00000011,
2115 0b_00000011,
2116 0b_00000011,
2117 0b_00000011,
2118 0b_00000011,
2119 0b_00000011,
2120 0b_00000011,
2121 0b_00000011,
2122 /* 138 */
2123 0b_00111111,
2124 0b_00111111,
2125 0b_00111111,
2126 0b_00111111,
2127 0b_00111111,
2128 0b_00111111,
2129 0b_00111111,
2130 0b_00111111,
2131 /* 139 */
2132 0b_00010001,
2133 0b_00100010,
2134 0b_01000100,
2135 0b_10001000,
2136 0b_00010001,
2137 0b_00100010,
2138 0b_01000100,
2139 0b_10001000,
2140 /* 140 */
2141 0b_10001000,
2142 0b_01000100,
2143 0b_00100010,
2144 0b_00010001,
2145 0b_10001000,
2146 0b_01000100,
2147 0b_00100010,
2148 0b_00010001,
2149 /* 141 */
2150 0b_11111110,
2151 0b_01111100,
2152 0b_00111000,
2153 0b_00010000,
2154 0b_00000000,
2155 0b_00000000,
2156 0b_00000000,
2157 0b_00000000,
2158 /* 142 */
2159 0b_00000000,
2160 0b_00000000,
2161 0b_00000000,
2162 0b_00000000,
2163 0b_00010000,
2164 0b_00111000,
2165 0b_01111100,
2166 0b_11111110,
2167 /* 143 */
2168 0b_10000000,
2169 0b_11000000,
2170 0b_11100000,
2171 0b_11110000,
2172 0b_11100000,
2173 0b_11000000,
2174 0b_10000000,
2175 0b_00000000,
2176 /* 144 */
2177 0b_00000001,
2178 0b_00000011,
2179 0b_00000111,
2180 0b_00001111,
2181 0b_00000111,
2182 0b_00000011,
2183 0b_00000001,
2184 0b_00000000,
2185 /* 145 */
2186 0b_11111111,
2187 0b_01111110,
2188 0b_00111100,
2189 0b_00011000,
2190 0b_00011000,
2191 0b_00111100,
2192 0b_01111110,
2193 0b_11111111,
2194 /* 146 */
2195 0b_10000001,
2196 0b_11000011,
2197 0b_11100111,
2198 0b_11111111,
2199 0b_11111111,
2200 0b_11100111,
2201 0b_11000011,
2202 0b_10000001,
2203 /* 147 */
2204 0b_11110000,
2205 0b_11110000,
2206 0b_11110000,
2207 0b_11110000,
2208 0b_00000000,
2209 0b_00000000,
2210 0b_00000000,
2211 0b_00000000,
2212 /* 148 */
2213 0b_00000000,
2214 0b_00000000,
2215 0b_00000000,
2216 0b_00000000,
2217 0b_00001111,
2218 0b_00001111,
2219 0b_00001111,
2220 0b_00001111,
2221 /* 149 */
2222 0b_00001111,
2223 0b_00001111,
2224 0b_00001111,
2225 0b_00001111,
2226 0b_00000000,
2227 0b_00000000,
2228 0b_00000000,
2229 0b_00000000,
2230 /* 150 */
2231 0b_00000000,
2232 0b_00000000,
2233 0b_00000000,
2234 0b_00000000,
2235 0b_11110000,
2236 0b_11110000,
2237 0b_11110000,
2238 0b_11110000,
2239 /* 151 */
2240 0b_00110011,
2241 0b_00110011,
2242 0b_11001100,
2243 0b_11001100,
2244 0b_00110011,
2245 0b_00110011,
2246 0b_11001100,
2247 0b_11001100,
2248 /* 152 */
2249 0b_00000000,
2250 0b_00100000,
2251 0b_00100000,
2252 0b_01010000,
2253 0b_01010000,
2254 0b_10001000,
2255 0b_11111000,
2256 0b_00000000,
2257 /* 153 */
2258 0b_00100000,
2259 0b_00100000,
2260 0b_01110000,
2261 0b_00100000,
2262 0b_01110000,
2263 0b_00100000,
2264 0b_00100000,
2265 0b_00000000,
2266 /* 154 */
2267 0b_00000000,
2268 0b_00000000,
2269 0b_00000000,
2270 0b_01010000,
2271 0b_10001000,
2272 0b_10101000,
2273 0b_01010000,
2274 0b_00000000,
2275 /* 155 */
2276 0b_11111111,
2277 0b_11111111,
2278 0b_11111111,
2279 0b_11111111,
2280 0b_11111111,
2281 0b_11111111,
2282 0b_11111111,
2283 0b_11111111,
2284 /* 156 */
2285 0b_00000000,
2286 0b_00000000,
2287 0b_00000000,
2288 0b_00000000,
2289 0b_11111111,
2290 0b_11111111,
2291 0b_11111111,
2292 0b_11111111,
2293 /* 157 */
2294 0b_11110000,
2295 0b_11110000,
2296 0b_11110000,
2297 0b_11110000,
2298 0b_11110000,
2299 0b_11110000,
2300 0b_11110000,
2301 0b_11110000,
2302 /* 158 */
2303 0b_00001111,
2304 0b_00001111,
2305 0b_00001111,
2306 0b_00001111,
2307 0b_00001111,
2308 0b_00001111,
2309 0b_00001111,
2310 0b_00001111,
2311 /* 159 */
2312 0b_11111111,
2313 0b_11111111,
2314 0b_11111111,
2315 0b_11111111,
2316 0b_00000000,
2317 0b_00000000,
2318 0b_00000000,
2319 0b_00000000,
2320 /* 160 */
2321 0b_00000000,
2322 0b_00000000,
2323 0b_01101000,
2324 0b_10010000,
2325 0b_10010000,
2326 0b_10010000,
2327 0b_01101000,
2328 0b_00000000,
2329 /* 161 */
2330 0b_00110000,
2331 0b_01001000,
2332 0b_01001000,
2333 0b_01110000,
2334 0b_01001000,
2335 0b_01001000,
2336 0b_01110000,
2337 0b_11000000,
2338 /* 162 */
2339 0b_11111000,
2340 0b_10001000,
2341 0b_10000000,
2342 0b_10000000,
2343 0b_10000000,
2344 0b_10000000,
2345 0b_10000000,
2346 0b_00000000,
2347 /* 163 */
2348 0b_00000000,
2349 0b_01010000,
2350 0b_01110000,
2351 0b_10001000,
2352 0b_11111000,
2353 0b_10000000,
2354 0b_01110000,
2355 0b_00000000,
2356 /* 164 */
2357 0b_00000000,
2358 0b_00000000,
2359 0b_01111000,
2360 0b_10000000,
2361 0b_11110000,
2362 0b_10000000,
2363 0b_01111000,
2364 0b_00000000,
2365 /* 165 */
2366 0b_00000000,
2367 0b_00000000,
2368 0b_01111000,
2369 0b_10010000,
2370 0b_10010000,
2371 0b_10010000,
2372 0b_01100000,
2373 0b_00000000,
2374 /* 166 */
2375 0b_00100000,
2376 0b_00000000,
2377 0b_01100000,
2378 0b_00100000,
2379 0b_00100000,
2380 0b_00100000,
2381 0b_01110000,
2382 0b_00000000,
2383 /* 167 */
2384 0b_01010000,
2385 0b_00000000,
2386 0b_01110000,
2387 0b_00100000,
2388 0b_00100000,
2389 0b_00100000,
2390 0b_01110000,
2391 0b_00000000,
2392 /* 168 */
2393 0b_11111000,
2394 0b_00100000,
2395 0b_01110000,
2396 0b_10101000,
2397 0b_10101000,
2398 0b_01110000,
2399 0b_00100000,
2400 0b_11111000,
2401 /* 169 */
2402 0b_00100000,
2403 0b_01010000,
2404 0b_10001000,
2405 0b_11111000,
2406 0b_10001000,
2407 0b_01010000,
2408 0b_00100000,
2409 0b_00000000,
2410 /* 170 */
2411 0b_01110000,
2412 0b_10001000,
2413 0b_10001000,
2414 0b_10001000,
2415 0b_01010000,
2416 0b_01010000,
2417 0b_11011000,
2418 0b_00000000,
2419 /* 171 */
2420 0b_00110000,
2421 0b_01000000,
2422 0b_01000000,
2423 0b_00100000,
2424 0b_01010000,
2425 0b_01010000,
2426 0b_01010000,
2427 0b_00100000,
2428 /* 172 */
2429 0b_00000000,
2430 0b_00000000,
2431 0b_00000000,
2432 0b_01010000,
2433 0b_10101000,
2434 0b_10101000,
2435 0b_01010000,
2436 0b_00000000,
2437 /* 173 */
2438 0b_00001000,
2439 0b_01110000,
2440 0b_10101000,
2441 0b_10101000,
2442 0b_10101000,
2443 0b_01110000,
2444 0b_10000000,
2445 0b_00000000,
2446 /* 174 */
2447 0b_00111000,
2448 0b_01000000,
2449 0b_10000000,
2450 0b_11111000,
2451 0b_10000000,
2452 0b_01000000,
2453 0b_00111000,
2454 0b_00000000,
2455 /* 175 */
2456 0b_01110000,
2457 0b_10001000,
2458 0b_10001000,
2459 0b_10001000,
2460 0b_10001000,
2461 0b_10001000,
2462 0b_10001000,
2463 0b_00000000,
2464 /* 176 */
2465 0b_00000000,
2466 0b_11111000,
2467 0b_00000000,
2468 0b_11111000,
2469 0b_00000000,
2470 0b_11111000,
2471 0b_00000000,
2472 0b_00000000,
2473 /* 177 */
2474 0b_00100000,
2475 0b_00100000,
2476 0b_11111000,
2477 0b_00100000,
2478 0b_00100000,
2479 0b_00000000,
2480 0b_11111000,
2481 0b_00000000,
2482 /* 178 */
2483 0b_11000000,
2484 0b_00110000,
2485 0b_00001000,
2486 0b_00110000,
2487 0b_11000000,
2488 0b_00000000,
2489 0b_11111000,
2490 0b_00000000,
2491 /* 179 */
2492 0b_01010000,
2493 0b_11111000,
2494 0b_10000000,
2495 0b_11110000,
2496 0b_10000000,
2497 0b_10000000,
2498 0b_11111000,
2499 0b_00000000,
2500 /* 180 */
2501 0b_01111000,
2502 0b_10000000,
2503 0b_10000000,
2504 0b_11110000,
2505 0b_10000000,
2506 0b_10000000,
2507 0b_01111000,
2508 0b_00000000,
2509 /* 181 */
2510 0b_00100000,
2511 0b_00100000,
2512 0b_00100000,
2513 0b_00100000,
2514 0b_00100000,
2515 0b_00100000,
2516 0b_10100000,
2517 0b_01000000,
2518 /* 182 */
2519 0b_01110000,
2520 0b_00100000,
2521 0b_00100000,
2522 0b_00100000,
2523 0b_00100000,
2524 0b_00100000,
2525 0b_01110000,
2526 0b_00000000,
2527 /* 183 */
2528 0b_01010000,
2529 0b_01110000,
2530 0b_00100000,
2531 0b_00100000,
2532 0b_00100000,
2533 0b_00100000,
2534 0b_01110000,
2535 0b_00000000,
2536 /* 184 */
2537 0b_00000000,
2538 0b_00011000,
2539 0b_00100100,
2540 0b_00100100,
2541 0b_00011000,
2542 0b_00000000,
2543 0b_00000000,
2544 0b_00000000,
2545 /* 185 */
2546 0b_00000000,
2547 0b_00110000,
2548 0b_01111000,
2549 0b_01111000,
2550 0b_00110000,
2551 0b_00000000,
2552 0b_00000000,
2553 0b_00000000,
2554 /* 186 */
2555 0b_00000000,
2556 0b_00000000,
2557 0b_00000000,
2558 0b_00000000,
2559 0b_00110000,
2560 0b_00000000,
2561 0b_00000000,
2562 0b_00000000,
2563 /* 187 */
2564 0b_00111110,
2565 0b_00100000,
2566 0b_00100000,
2567 0b_00100000,
2568 0b_10100000,
2569 0b_01100000,
2570 0b_00100000,
2571 0b_00000000,
2572 /* 188 */
2573 0b_10100000,
2574 0b_01010000,
2575 0b_01010000,
2576 0b_01010000,
2577 0b_00000000,
2578 0b_00000000,
2579 0b_00000000,
2580 0b_00000000,
2581 /* 189 */
2582 0b_01000000,
2583 0b_10100000,
2584 0b_00100000,
2585 0b_01000000,
2586 0b_11100000,
2587 0b_00000000,
2588 0b_00000000,
2589 0b_00000000,
2590 /* 190 */
2591 0b_00000000,
2592 0b_00111000,
2593 0b_00111000,
2594 0b_00111000,
2595 0b_00111000,
2596 0b_00111000,
2597 0b_00111000,
2598 0b_00000000,
2599 /* 191 */
2600 0b_00111100,
2601 0b_01000010,
2602 0b_10011001,
2603 0b_10100001,
2604 0b_10100001,
2605 0b_10011001,
2606 0b_01000010,
2607 0b_00111100,
2608 /* 192 */
2609 0b_00000000,
2610 0b_00000000,
2611 0b_10010000,
2612 0b_10101000,
2613 0b_11101000,
2614 0b_10101000,
2615 0b_10010000,
2616 0b_00000000,
2617 /* 193 */
2618 0b_00000000,
2619 0b_00000000,
2620 0b_01100000,
2621 0b_00010000,
2622 0b_01110000,
2623 0b_10010000,
2624 0b_01101000,
2625 0b_00000000,
2626 /* 194 */
2627 0b_00000000,
2628 0b_00000000,
2629 0b_11110000,
2630 0b_10000000,
2631 0b_11110000,
2632 0b_10001000,
2633 0b_11110000,
2634 0b_00000000,
2635 /* 195 */
2636 0b_00000000,
2637 0b_00000000,
2638 0b_10010000,
2639 0b_10010000,
2640 0b_10010000,
2641 0b_11111000,
2642 0b_00001000,
2643 0b_00000000,
2644 /* 196 */
2645 0b_00000000,
2646 0b_00000000,
2647 0b_00110000,
2648 0b_01010000,
2649 0b_01010000,
2650 0b_01110000,
2651 0b_10001000,
2652 0b_00000000,
2653 /* 197 */
2654 0b_00000000,
2655 0b_00000000,
2656 0b_01110000,
2657 0b_10001000,
2658 0b_11111000,
2659 0b_10000000,
2660 0b_01110000,
2661 0b_00000000,
2662 /* 198 */
2663 0b_00000000,
2664 0b_00100000,
2665 0b_01110000,
2666 0b_10101000,
2667 0b_10101000,
2668 0b_01110000,
2669 0b_00100000,
2670 0b_00000000,
2671 /* 199 */
2672 0b_00000000,
2673 0b_00000000,
2674 0b_01111000,
2675 0b_01001000,
2676 0b_01000000,
2677 0b_01000000,
2678 0b_01000000,
2679 0b_00000000,
2680 /* 200 */
2681 0b_00000000,
2682 0b_00000000,
2683 0b_10001000,
2684 0b_01010000,
2685 0b_00100000,
2686 0b_01010000,
2687 0b_10001000,
2688 0b_00000000,
2689 /* 201 */
2690 0b_00000000,
2691 0b_00000000,
2692 0b_10001000,
2693 0b_10011000,
2694 0b_10101000,
2695 0b_11001000,
2696 0b_10001000,
2697 0b_00000000,
2698 /* 202 */
2699 0b_00000000,
2700 0b_01010000,
2701 0b_00100000,
2702 0b_00000000,
2703 0b_10011000,
2704 0b_10101000,
2705 0b_11001000,
2706 0b_00000000,
2707 /* 203 */
2708 0b_00000000,
2709 0b_00000000,
2710 0b_10010000,
2711 0b_10100000,
2712 0b_11000000,
2713 0b_10100000,
2714 0b_10010000,
2715 0b_00000000,
2716 /* 204 */
2717 0b_00000000,
2718 0b_00000000,
2719 0b_00111000,
2720 0b_00101000,
2721 0b_00101000,
2722 0b_01001000,
2723 0b_10001000,
2724 0b_00000000,
2725 /* 205 */
2726 0b_00000000,
2727 0b_00000000,
2728 0b_10001000,
2729 0b_11011000,
2730 0b_10101000,
2731 0b_10001000,
2732 0b_10001000,
2733 0b_00000000,
2734 /* 206 */
2735 0b_00000000,
2736 0b_00000000,
2737 0b_10001000,
2738 0b_10001000,
2739 0b_11111000,
2740 0b_10001000,
2741 0b_10001000,
2742 0b_00000000,
2743 /* 207 */
2744 0b_00000000,
2745 0b_00000000,
2746 0b_01110000,
2747 0b_10001000,
2748 0b_10001000,
2749 0b_10001000,
2750 0b_01110000,
2751 0b_00000000,
2752 /* 208 */
2753 0b_00000000,
2754 0b_00000000,
2755 0b_01111000,
2756 0b_01001000,
2757 0b_01001000,
2758 0b_01001000,
2759 0b_01001000,
2760 0b_00000000,
2761 /* 209 */
2762 0b_00000000,
2763 0b_00000000,
2764 0b_01111000,
2765 0b_10001000,
2766 0b_01111000,
2767 0b_00101000,
2768 0b_01001000,
2769 0b_00000000,
2770 /* 210 */
2771 0b_00000000,
2772 0b_00000000,
2773 0b_11110000,
2774 0b_10001000,
2775 0b_11110000,
2776 0b_10000000,
2777 0b_10000000,
2778 0b_00000000,
2779 /* 211 */
2780 0b_00000000,
2781 0b_00000000,
2782 0b_01111000,
2783 0b_10000000,
2784 0b_10000000,
2785 0b_10000000,
2786 0b_01111000,
2787 0b_00000000,
2788 /* 212 */
2789 0b_00000000,
2790 0b_00000000,
2791 0b_11111000,
2792 0b_00100000,
2793 0b_00100000,
2794 0b_00100000,
2795 0b_00100000,
2796 0b_00000000,
2797 /* 213 */
2798 0b_00000000,
2799 0b_00000000,
2800 0b_10001000,
2801 0b_01010000,
2802 0b_00100000,
2803 0b_01000000,
2804 0b_10000000,
2805 0b_00000000,
2806 /* 214 */
2807 0b_00000000,
2808 0b_00000000,
2809 0b_10101000,
2810 0b_01110000,
2811 0b_00100000,
2812 0b_01110000,
2813 0b_10101000,
2814 0b_00000000,
2815 /* 215 */
2816 0b_00000000,
2817 0b_00000000,
2818 0b_11110000,
2819 0b_01001000,
2820 0b_01110000,
2821 0b_01001000,
2822 0b_11110000,
2823 0b_00000000,
2824 /* 216 */
2825 0b_00000000,
2826 0b_00000000,
2827 0b_01000000,
2828 0b_01000000,
2829 0b_01110000,
2830 0b_01001000,
2831 0b_01110000,
2832 0b_00000000,
2833 /* 217 */
2834 0b_00000000,
2835 0b_00000000,
2836 0b_10001000,
2837 0b_10001000,
2838 0b_11001000,
2839 0b_10101000,
2840 0b_11001000,
2841 0b_00000000,
2842 /* 218 */
2843 0b_00000000,
2844 0b_00000000,
2845 0b_11110000,
2846 0b_00001000,
2847 0b_01110000,
2848 0b_00001000,
2849 0b_11110000,
2850 0b_00000000,
2851 /* 219 */
2852 0b_00000000,
2853 0b_00000000,
2854 0b_10101000,
2855 0b_10101000,
2856 0b_10101000,
2857 0b_10101000,
2858 0b_11111000,
2859 0b_00000000,
2860 /* 220 */
2861 0b_00000000,
2862 0b_00000000,
2863 0b_01110000,
2864 0b_10001000,
2865 0b_00111000,
2866 0b_10001000,
2867 0b_01110000,
2868 0b_00000000,
2869 /* 221 */
2870 0b_00000000,
2871 0b_00000000,
2872 0b_10101000,
2873 0b_10101000,
2874 0b_10101000,
2875 0b_11111000,
2876 0b_00001000,
2877 0b_00000000,
2878 /* 222 */
2879 0b_00000000,
2880 0b_00000000,
2881 0b_01001000,
2882 0b_01001000,
2883 0b_01111000,
2884 0b_00001000,
2885 0b_00001000,
2886 0b_00000000,
2887 /* 223 */
2888 0b_00000000,
2889 0b_00000000,
2890 0b_11000000,
2891 0b_01000000,
2892 0b_01110000,
2893 0b_01001000,
2894 0b_01110000,
2895 0b_00000000,
2896 /* 224 */
2897 0b_10010000,
2898 0b_10101000,
2899 0b_10101000,
2900 0b_11101000,
2901 0b_10101000,
2902 0b_10101000,
2903 0b_10010000,
2904 0b_00000000,
2905 /* 225 */
2906 0b_00100000,
2907 0b_01010000,
2908 0b_10001000,
2909 0b_10001000,
2910 0b_11111000,
2911 0b_10001000,
2912 0b_10001000,
2913 0b_00000000,
2914 /* 226 */
2915 0b_11111000,
2916 0b_10001000,
2917 0b_10000000,
2918 0b_11110000,
2919 0b_10001000,
2920 0b_10001000,
2921 0b_11110000,
2922 0b_00000000,
2923 /* 227 */
2924 0b_10010000,
2925 0b_10010000,
2926 0b_10010000,
2927 0b_10010000,
2928 0b_10010000,
2929 0b_11111000,
2930 0b_00001000,
2931 0b_00000000,
2932 /* 228 */
2933 0b_00111000,
2934 0b_00101000,
2935 0b_00101000,
2936 0b_01001000,
2937 0b_01001000,
2938 0b_11111000,
2939 0b_10001000,
2940 0b_00000000,
2941 /* 229 */
2942 0b_11111000,
2943 0b_10000000,
2944 0b_10000000,
2945 0b_11110000,
2946 0b_10000000,
2947 0b_10000000,
2948 0b_11111000,
2949 0b_00000000,
2950 /* 230 */
2951 0b_00100000,
2952 0b_01110000,
2953 0b_10101000,
2954 0b_10101000,
2955 0b_10101000,
2956 0b_01110000,
2957 0b_00100000,
2958 0b_00000000,
2959 /* 231 */
2960 0b_11111000,
2961 0b_10001000,
2962 0b_10001000,
2963 0b_10000000,
2964 0b_10000000,
2965 0b_10000000,
2966 0b_10000000,
2967 0b_00000000,
2968 /* 232 */
2969 0b_10001000,
2970 0b_10001000,
2971 0b_01010000,
2972 0b_00100000,
2973 0b_01010000,
2974 0b_10001000,
2975 0b_10001000,
2976 0b_00000000,
2977 /* 233 */
2978 0b_10001000,
2979 0b_10001000,
2980 0b_10011000,
2981 0b_10101000,
2982 0b_11001000,
2983 0b_10001000,
2984 0b_10001000,
2985 0b_00000000,
2986 /* 234 */
2987 0b_01010000,
2988 0b_00100000,
2989 0b_10001000,
2990 0b_10011000,
2991 0b_10101000,
2992 0b_11001000,
2993 0b_10001000,
2994 0b_00000000,
2995 /* 235 */
2996 0b_10001000,
2997 0b_10010000,
2998 0b_10100000,
2999 0b_11000000,
3000 0b_10100000,
3001 0b_10010000,
3002 0b_10001000,
3003 0b_00000000,
3004 /* 236 */
3005 0b_00011000,
3006 0b_00101000,
3007 0b_01001000,
3008 0b_01001000,
3009 0b_01001000,
3010 0b_01001000,
3011 0b_10001000,
3012 0b_00000000,
3013 /* 237 */
3014 0b_10001000,
3015 0b_11011000,
3016 0b_10101000,
3017 0b_10101000,
3018 0b_10001000,
3019 0b_10001000,
3020 0b_10001000,
3021 0b_00000000,
3022 /* 238 */
3023 0b_10001000,
3024 0b_10001000,
3025 0b_10001000,
3026 0b_11111000,
3027 0b_10001000,
3028 0b_10001000,
3029 0b_10001000,
3030 0b_00000000,
3031 /* 239 */
3032 0b_01110000,
3033 0b_10001000,
3034 0b_10001000,
3035 0b_10001000,
3036 0b_10001000,
3037 0b_10001000,
3038 0b_01110000,
3039 0b_00000000,
3040 /* 240 */
3041 0b_11111000,
3042 0b_10001000,
3043 0b_10001000,
3044 0b_10001000,
3045 0b_10001000,
3046 0b_10001000,
3047 0b_10001000,
3048 0b_00000000,
3049 /* 241 */
3050 0b_01111000,
3051 0b_10001000,
3052 0b_10001000,
3053 0b_01111000,
3054 0b_00101000,
3055 0b_01001000,
3056 0b_10001000,
3057 0b_00000000,
3058 /* 242 */
3059 0b_11110000,
3060 0b_10001000,
3061 0b_10001000,
3062 0b_11110000,
3063 0b_10000000,
3064 0b_10000000,
3065 0b_10000000,
3066 0b_00000000,
3067 /* 243 */
3068 0b_01110000,
3069 0b_10001000,
3070 0b_10000000,
3071 0b_10000000,
3072 0b_10000000,
3073 0b_10001000,
3074 0b_01110000,
3075 0b_00000000,
3076 /* 244 */
3077 0b_11111000,
3078 0b_00100000,
3079 0b_00100000,
3080 0b_00100000,
3081 0b_00100000,
3082 0b_00100000,
3083 0b_00100000,
3084 0b_00000000,
3085 /* 245 */
3086 0b_10001000,
3087 0b_10001000,
3088 0b_10001000,
3089 0b_01010000,
3090 0b_00100000,
3091 0b_01000000,
3092 0b_10000000,
3093 0b_00000000,
3094 /* 246 */
3095 0b_10101000,
3096 0b_10101000,
3097 0b_01110000,
3098 0b_00100000,
3099 0b_01110000,
3100 0b_10101000,
3101 0b_10101000,
3102 0b_00000000,
3103 /* 247 */
3104 0b_11110000,
3105 0b_01001000,
3106 0b_01001000,
3107 0b_01110000,
3108 0b_01001000,
3109 0b_01001000,
3110 0b_11110000,
3111 0b_00000000,
3112 /* 248 */
3113 0b_10000000,
3114 0b_10000000,
3115 0b_10000000,
3116 0b_11110000,
3117 0b_10001000,
3118 0b_10001000,
3119 0b_11110000,
3120 0b_00000000,
3121 /* 249 */
3122 0b_10001000,
3123 0b_10001000,
3124 0b_10001000,
3125 0b_11001000,
3126 0b_10101000,
3127 0b_10101000,
3128 0b_11001000,
3129 0b_00000000,
3130 /* 250 */
3131 0b_11110000,
3132 0b_00001000,
3133 0b_00001000,
3134 0b_00110000,
3135 0b_00001000,
3136 0b_00001000,
3137 0b_11110000,
3138 0b_00000000,
3139 /* 251 */
3140 0b_10101000,
3141 0b_10101000,
3142 0b_10101000,
3143 0b_10101000,
3144 0b_10101000,
3145 0b_10101000,
3146 0b_11111000,
3147 0b_00000000,
3148 /* 252 */
3149 0b_01110000,
3150 0b_10001000,
3151 0b_00001000,
3152 0b_01111000,
3153 0b_00001000,
3154 0b_10001000,
3155 0b_01110000,
3156 0b_00000000,
3157 /* 253 */
3158 0b_10101000,
3159 0b_10101000,
3160 0b_10101000,
3161 0b_10101000,
3162 0b_10101000,
3163 0b_11111000,
3164 0b_00001000,
3165 0b_00000000,
3166 /* 254 */
3167 0b_10001000,
3168 0b_10001000,
3169 0b_10001000,
3170 0b_10001000,
3171 0b_01111000,
3172 0b_00001000,
3173 0b_00001000,
3174 0b_00000000,
3175 /* 255 */
3176 0b_11000000,
3177 0b_01000000,
3178 0b_01000000,
3179 0b_01110000,
3180 0b_01001000,
3181 0b_01001000,
3182 0b_01110000,
3183 0b_00000000,
3187 // bits 0..3: width
3188 // bits 4..7: lshift
3189 public immutable ubyte[256] vlFontPropWidth = () {
3190 ubyte[256] res;
3191 foreach (immutable cnum; 0..256) {
3192 import core.bitop : bsf, bsr;
3193 immutable doshift =
3194 (cnum >= 32 && cnum <= 127) ||
3195 (cnum >= 143 && cnum <= 144) ||
3196 (cnum >= 166 && cnum <= 167) ||
3197 (cnum >= 192 && cnum <= 255);
3198 int shift = 0;
3199 if (doshift) {
3200 shift = 8;
3201 foreach (immutable dy; 0..8) {
3202 immutable b = vlFont6[cnum*8+dy];
3203 if (b) {
3204 immutable mn = 7-bsr(b);
3205 if (mn < shift) shift = mn;
3209 ubyte wdt = 0;
3210 foreach (immutable dy; 0..8) {
3211 immutable b = (vlFont6[cnum*8+dy]<<shift);
3212 immutable cwdt = (b ? 8-bsf(b) : 0);
3213 if (cwdt > wdt) wdt = cast(ubyte)cwdt;
3215 switch (cnum) {
3216 case 0: wdt = 8; break; // 8px space
3217 case 32: wdt = 5; break; // 5px space
3218 case 17: .. case 27: wdt = 8; break; // single frames
3219 case 48: .. case 57: wdt = 5; break; // digits are monospaced
3220 case 127: .. case 142: wdt = 8; break; // filled frames
3221 case 145: .. case 151: wdt = 8; break; // filled frames
3222 case 155: .. case 159: wdt = 8; break; // filled frames
3223 default:
3225 res[cnum] = (wdt&0x0f)|((shift<<4)&0xf0);
3227 return res;
3228 }();
3231 public static immutable ubyte[256*8] dosFont8 = [
3232 /* 0x00 */
3233 0b_00000000,
3234 0b_00000000,
3235 0b_00000000,
3236 0b_00000000,
3237 0b_00000000,
3238 0b_00000000,
3239 0b_00000000,
3240 0b_00000000,
3241 /* 0x01 */
3242 0b_01111110,
3243 0b_10000001,
3244 0b_10100101,
3245 0b_10000001,
3246 0b_10111101,
3247 0b_10011001,
3248 0b_10000001,
3249 0b_01111110,
3250 /* 0x02 */
3251 0b_01111110,
3252 0b_11111111,
3253 0b_11011011,
3254 0b_11111111,
3255 0b_11000011,
3256 0b_11100111,
3257 0b_11111111,
3258 0b_01111110,
3259 /* 0x03 */
3260 0b_01101100,
3261 0b_11111110,
3262 0b_11111110,
3263 0b_11111110,
3264 0b_01111100,
3265 0b_00111000,
3266 0b_00010000,
3267 0b_00000000,
3268 /* 0x04 */
3269 0b_00010000,
3270 0b_00111000,
3271 0b_01111100,
3272 0b_11111110,
3273 0b_01111100,
3274 0b_00111000,
3275 0b_00010000,
3276 0b_00000000,
3277 /* 0x05 */
3278 0b_00111000,
3279 0b_01111100,
3280 0b_00111000,
3281 0b_11111110,
3282 0b_11111110,
3283 0b_11010110,
3284 0b_00010000,
3285 0b_00111000,
3286 /* 0x06 */
3287 0b_00010000,
3288 0b_00010000,
3289 0b_00111000,
3290 0b_01111100,
3291 0b_11111110,
3292 0b_01111100,
3293 0b_00010000,
3294 0b_00111000,
3295 /* 0x07 */
3296 0b_00000000,
3297 0b_00000000,
3298 0b_00011000,
3299 0b_00111100,
3300 0b_00111100,
3301 0b_00011000,
3302 0b_00000000,
3303 0b_00000000,
3304 /* 0x08 */
3305 0b_11111111,
3306 0b_11111111,
3307 0b_11100111,
3308 0b_11000011,
3309 0b_11000011,
3310 0b_11100111,
3311 0b_11111111,
3312 0b_11111111,
3313 /* 0x09 */
3314 0b_00000000,
3315 0b_00111100,
3316 0b_01100110,
3317 0b_01000010,
3318 0b_01000010,
3319 0b_01100110,
3320 0b_00111100,
3321 0b_00000000,
3322 /* 0x0a */
3323 0b_11111111,
3324 0b_11000011,
3325 0b_10011001,
3326 0b_10111101,
3327 0b_10111101,
3328 0b_10011001,
3329 0b_11000011,
3330 0b_11111111,
3331 /* 0x0b */
3332 0b_00001111,
3333 0b_00000111,
3334 0b_00001111,
3335 0b_01111101,
3336 0b_11001100,
3337 0b_11001100,
3338 0b_11001100,
3339 0b_01111000,
3340 /* 0x0c */
3341 0b_00111100,
3342 0b_01100110,
3343 0b_01100110,
3344 0b_01100110,
3345 0b_00111100,
3346 0b_00011000,
3347 0b_01111110,
3348 0b_00011000,
3349 /* 0x0d */
3350 0b_00111111,
3351 0b_00110011,
3352 0b_00111111,
3353 0b_00110000,
3354 0b_00110000,
3355 0b_01110000,
3356 0b_11110000,
3357 0b_11100000,
3358 /* 0x0e */
3359 0b_01111111,
3360 0b_01100011,
3361 0b_01111111,
3362 0b_01100011,
3363 0b_01100011,
3364 0b_01100111,
3365 0b_11100110,
3366 0b_11000000,
3367 /* 0x0f */
3368 0b_10011001,
3369 0b_01011010,
3370 0b_00111100,
3371 0b_11100111,
3372 0b_11100111,
3373 0b_00111100,
3374 0b_01011010,
3375 0b_10011001,
3376 /* 0x10 */
3377 0b_10000000,
3378 0b_11100000,
3379 0b_11111000,
3380 0b_11111110,
3381 0b_11111000,
3382 0b_11100000,
3383 0b_10000000,
3384 0b_00000000,
3385 /* 0x11 */
3386 0b_00000010,
3387 0b_00001110,
3388 0b_00111110,
3389 0b_11111110,
3390 0b_00111110,
3391 0b_00001110,
3392 0b_00000010,
3393 0b_00000000,
3394 /* 0x12 */
3395 0b_00011000,
3396 0b_00111100,
3397 0b_01111110,
3398 0b_00011000,
3399 0b_00011000,
3400 0b_01111110,
3401 0b_00111100,
3402 0b_00011000,
3403 /* 0x13 */
3404 0b_01100110,
3405 0b_01100110,
3406 0b_01100110,
3407 0b_01100110,
3408 0b_01100110,
3409 0b_00000000,
3410 0b_01100110,
3411 0b_00000000,
3412 /* 0x14 */
3413 0b_01111111,
3414 0b_11011011,
3415 0b_11011011,
3416 0b_01111011,
3417 0b_00011011,
3418 0b_00011011,
3419 0b_00011011,
3420 0b_00000000,
3421 /* 0x15 */
3422 0b_01111110,
3423 0b_11000011,
3424 0b_01111000,
3425 0b_11001100,
3426 0b_11001100,
3427 0b_01111000,
3428 0b_10001100,
3429 0b_11111000,
3430 /* 0x16 */
3431 0b_00000000,
3432 0b_00000000,
3433 0b_00000000,
3434 0b_00000000,
3435 0b_01111110,
3436 0b_01111110,
3437 0b_01111110,
3438 0b_00000000,
3439 /* 0x17 */
3440 0b_00011000,
3441 0b_00111100,
3442 0b_01111110,
3443 0b_00011000,
3444 0b_01111110,
3445 0b_00111100,
3446 0b_00011000,
3447 0b_11111111,
3448 /* 0x18 */
3449 0b_00011000,
3450 0b_00111100,
3451 0b_01111110,
3452 0b_00011000,
3453 0b_00011000,
3454 0b_00011000,
3455 0b_00011000,
3456 0b_00000000,
3457 /* 0x19 */
3458 0b_00011000,
3459 0b_00011000,
3460 0b_00011000,
3461 0b_00011000,
3462 0b_01111110,
3463 0b_00111100,
3464 0b_00011000,
3465 0b_00000000,
3466 /* 0x1a */
3467 0b_00000000,
3468 0b_00011000,
3469 0b_00001100,
3470 0b_11111110,
3471 0b_00001100,
3472 0b_00011000,
3473 0b_00000000,
3474 0b_00000000,
3475 /* 0x1b */
3476 0b_00000000,
3477 0b_00110000,
3478 0b_01100000,
3479 0b_11111110,
3480 0b_01100000,
3481 0b_00110000,
3482 0b_00000000,
3483 0b_00000000,
3484 /* 0x1c */
3485 0b_00000000,
3486 0b_00000000,
3487 0b_11000000,
3488 0b_11000000,
3489 0b_11000000,
3490 0b_11111110,
3491 0b_00000000,
3492 0b_00000000,
3493 /* 0x1d */
3494 0b_00000000,
3495 0b_00100100,
3496 0b_01100110,
3497 0b_11111111,
3498 0b_01100110,
3499 0b_00100100,
3500 0b_00000000,
3501 0b_00000000,
3502 /* 0x1e */
3503 0b_00000000,
3504 0b_00011000,
3505 0b_00111100,
3506 0b_01111110,
3507 0b_11111111,
3508 0b_11111111,
3509 0b_00000000,
3510 0b_00000000,
3511 /* 0x1f */
3512 0b_00000000,
3513 0b_11111111,
3514 0b_11111111,
3515 0b_01111110,
3516 0b_00111100,
3517 0b_00011000,
3518 0b_00000000,
3519 0b_00000000,
3520 /* 0x20 */
3521 0b_00000000,
3522 0b_00000000,
3523 0b_00000000,
3524 0b_00000000,
3525 0b_00000000,
3526 0b_00000000,
3527 0b_00000000,
3528 0b_00000000,
3529 /* ! */
3530 0b_00110000,
3531 0b_01111000,
3532 0b_01111000,
3533 0b_00110000,
3534 0b_00110000,
3535 0b_00000000,
3536 0b_00110000,
3537 0b_00000000,
3538 /* " */
3539 0b_01101100,
3540 0b_01101100,
3541 0b_01101100,
3542 0b_00000000,
3543 0b_00000000,
3544 0b_00000000,
3545 0b_00000000,
3546 0b_00000000,
3547 /* # */
3548 0b_01101100,
3549 0b_01101100,
3550 0b_11111110,
3551 0b_01101100,
3552 0b_11111110,
3553 0b_01101100,
3554 0b_01101100,
3555 0b_00000000,
3556 /* $ */
3557 0b_00110000,
3558 0b_01111100,
3559 0b_11000000,
3560 0b_01111000,
3561 0b_00001100,
3562 0b_11111000,
3563 0b_00110000,
3564 0b_00000000,
3565 /* % */
3566 0b_00000000,
3567 0b_11000110,
3568 0b_11001100,
3569 0b_00011000,
3570 0b_00110000,
3571 0b_01100110,
3572 0b_11000110,
3573 0b_00000000,
3574 /* & */
3575 0b_00111000,
3576 0b_01101100,
3577 0b_00111000,
3578 0b_01110110,
3579 0b_11011100,
3580 0b_11001100,
3581 0b_01110110,
3582 0b_00000000,
3583 /* ' */
3584 0b_01100000,
3585 0b_01100000,
3586 0b_11000000,
3587 0b_00000000,
3588 0b_00000000,
3589 0b_00000000,
3590 0b_00000000,
3591 0b_00000000,
3592 /* ( */
3593 0b_00011000,
3594 0b_00110000,
3595 0b_01100000,
3596 0b_01100000,
3597 0b_01100000,
3598 0b_00110000,
3599 0b_00011000,
3600 0b_00000000,
3601 /* ) */
3602 0b_01100000,
3603 0b_00110000,
3604 0b_00011000,
3605 0b_00011000,
3606 0b_00011000,
3607 0b_00110000,
3608 0b_01100000,
3609 0b_00000000,
3610 /* * */
3611 0b_00000000,
3612 0b_01100110,
3613 0b_00111100,
3614 0b_11111111,
3615 0b_00111100,
3616 0b_01100110,
3617 0b_00000000,
3618 0b_00000000,
3619 /* + */
3620 0b_00000000,
3621 0b_00110000,
3622 0b_00110000,
3623 0b_11111100,
3624 0b_00110000,
3625 0b_00110000,
3626 0b_00000000,
3627 0b_00000000,
3628 /* , */
3629 0b_00000000,
3630 0b_00000000,
3631 0b_00000000,
3632 0b_00000000,
3633 0b_00000000,
3634 0b_01110000,
3635 0b_00110000,
3636 0b_01100000,
3637 /* - */
3638 0b_00000000,
3639 0b_00000000,
3640 0b_00000000,
3641 0b_11111100,
3642 0b_00000000,
3643 0b_00000000,
3644 0b_00000000,
3645 0b_00000000,
3646 /* . */
3647 0b_00000000,
3648 0b_00000000,
3649 0b_00000000,
3650 0b_00000000,
3651 0b_00000000,
3652 0b_00110000,
3653 0b_00110000,
3654 0b_00000000,
3655 /* / */
3656 0b_00000110,
3657 0b_00001100,
3658 0b_00011000,
3659 0b_00110000,
3660 0b_01100000,
3661 0b_11000000,
3662 0b_10000000,
3663 0b_00000000,
3664 /* 0 */
3665 0b_01111000,
3666 0b_11001100,
3667 0b_11011100,
3668 0b_11111100,
3669 0b_11101100,
3670 0b_11001100,
3671 0b_01111000,
3672 0b_00000000,
3673 /* 1 */
3674 0b_00110000,
3675 0b_11110000,
3676 0b_00110000,
3677 0b_00110000,
3678 0b_00110000,
3679 0b_00110000,
3680 0b_11111100,
3681 0b_00000000,
3682 /* 2 */
3683 0b_01111000,
3684 0b_11001100,
3685 0b_00001100,
3686 0b_00111000,
3687 0b_01100000,
3688 0b_11001100,
3689 0b_11111100,
3690 0b_00000000,
3691 /* 3 */
3692 0b_01111000,
3693 0b_11001100,
3694 0b_00001100,
3695 0b_00111000,
3696 0b_00001100,
3697 0b_11001100,
3698 0b_01111000,
3699 0b_00000000,
3700 /* 4 */
3701 0b_00011100,
3702 0b_00111100,
3703 0b_01101100,
3704 0b_11001100,
3705 0b_11111110,
3706 0b_00001100,
3707 0b_00001100,
3708 0b_00000000,
3709 /* 5 */
3710 0b_11111100,
3711 0b_11000000,
3712 0b_11111000,
3713 0b_00001100,
3714 0b_00001100,
3715 0b_11001100,
3716 0b_01111000,
3717 0b_00000000,
3718 /* 6 */
3719 0b_00111000,
3720 0b_01100000,
3721 0b_11000000,
3722 0b_11111000,
3723 0b_11001100,
3724 0b_11001100,
3725 0b_01111000,
3726 0b_00000000,
3727 /* 7 */
3728 0b_11111100,
3729 0b_11001100,
3730 0b_00001100,
3731 0b_00011000,
3732 0b_00110000,
3733 0b_01100000,
3734 0b_01100000,
3735 0b_00000000,
3736 /* 8 */
3737 0b_01111000,
3738 0b_11001100,
3739 0b_11001100,
3740 0b_01111000,
3741 0b_11001100,
3742 0b_11001100,
3743 0b_01111000,
3744 0b_00000000,
3745 /* 9 */
3746 0b_01111000,
3747 0b_11001100,
3748 0b_11001100,
3749 0b_01111100,
3750 0b_00001100,
3751 0b_00011000,
3752 0b_01110000,
3753 0b_00000000,
3754 /* : */
3755 0b_00000000,
3756 0b_00000000,
3757 0b_00110000,
3758 0b_00110000,
3759 0b_00000000,
3760 0b_00110000,
3761 0b_00110000,
3762 0b_00000000,
3763 /* ; */
3764 0b_00000000,
3765 0b_00000000,
3766 0b_00110000,
3767 0b_00110000,
3768 0b_00000000,
3769 0b_01110000,
3770 0b_00110000,
3771 0b_01100000,
3772 /* < */
3773 0b_00011000,
3774 0b_00110000,
3775 0b_01100000,
3776 0b_11000000,
3777 0b_01100000,
3778 0b_00110000,
3779 0b_00011000,
3780 0b_00000000,
3781 /* = */
3782 0b_00000000,
3783 0b_00000000,
3784 0b_11111100,
3785 0b_00000000,
3786 0b_11111100,
3787 0b_00000000,
3788 0b_00000000,
3789 0b_00000000,
3790 /* > */
3791 0b_01100000,
3792 0b_00110000,
3793 0b_00011000,
3794 0b_00001100,
3795 0b_00011000,
3796 0b_00110000,
3797 0b_01100000,
3798 0b_00000000,
3799 /* ? */
3800 0b_01111000,
3801 0b_11001100,
3802 0b_00001100,
3803 0b_00011000,
3804 0b_00110000,
3805 0b_00000000,
3806 0b_00110000,
3807 0b_00000000,
3808 /* @ */
3809 0b_01111100,
3810 0b_11000110,
3811 0b_11011110,
3812 0b_11011110,
3813 0b_11011110,
3814 0b_11000000,
3815 0b_01111000,
3816 0b_00000000,
3817 /* A */
3818 0b_00110000,
3819 0b_01111000,
3820 0b_11001100,
3821 0b_11001100,
3822 0b_11111100,
3823 0b_11001100,
3824 0b_11001100,
3825 0b_00000000,
3826 /* B */
3827 0b_11111100,
3828 0b_01100110,
3829 0b_01100110,
3830 0b_01111100,
3831 0b_01100110,
3832 0b_01100110,
3833 0b_11111100,
3834 0b_00000000,
3835 /* C */
3836 0b_00111100,
3837 0b_01100110,
3838 0b_11000000,
3839 0b_11000000,
3840 0b_11000000,
3841 0b_01100110,
3842 0b_00111100,
3843 0b_00000000,
3844 /* D */
3845 0b_11111100,
3846 0b_01101100,
3847 0b_01100110,
3848 0b_01100110,
3849 0b_01100110,
3850 0b_01101100,
3851 0b_11111100,
3852 0b_00000000,
3853 /* E */
3854 0b_11111110,
3855 0b_01100010,
3856 0b_01101000,
3857 0b_01111000,
3858 0b_01101000,
3859 0b_01100010,
3860 0b_11111110,
3861 0b_00000000,
3862 /* F */
3863 0b_11111110,
3864 0b_01100010,
3865 0b_01101000,
3866 0b_01111000,
3867 0b_01101000,
3868 0b_01100000,
3869 0b_11110000,
3870 0b_00000000,
3871 /* G */
3872 0b_00111100,
3873 0b_01100110,
3874 0b_11000000,
3875 0b_11000000,
3876 0b_11001110,
3877 0b_01100110,
3878 0b_00111110,
3879 0b_00000000,
3880 /* H */
3881 0b_11001100,
3882 0b_11001100,
3883 0b_11001100,
3884 0b_11111100,
3885 0b_11001100,
3886 0b_11001100,
3887 0b_11001100,
3888 0b_00000000,
3889 /* I */
3890 0b_01111000,
3891 0b_00110000,
3892 0b_00110000,
3893 0b_00110000,
3894 0b_00110000,
3895 0b_00110000,
3896 0b_01111000,
3897 0b_00000000,
3898 /* J */
3899 0b_00011110,
3900 0b_00001100,
3901 0b_00001100,
3902 0b_00001100,
3903 0b_11001100,
3904 0b_11001100,
3905 0b_01111000,
3906 0b_00000000,
3907 /* K */
3908 0b_11100110,
3909 0b_01100110,
3910 0b_01101100,
3911 0b_01111000,
3912 0b_01101100,
3913 0b_01100110,
3914 0b_11100110,
3915 0b_00000000,
3916 /* L */
3917 0b_11110000,
3918 0b_01100000,
3919 0b_01100000,
3920 0b_01100000,
3921 0b_01100010,
3922 0b_01100110,
3923 0b_11111110,
3924 0b_00000000,
3925 /* M */
3926 0b_11000110,
3927 0b_11101110,
3928 0b_11111110,
3929 0b_11010110,
3930 0b_11000110,
3931 0b_11000110,
3932 0b_11000110,
3933 0b_00000000,
3934 /* N */
3935 0b_11000110,
3936 0b_11100110,
3937 0b_11110110,
3938 0b_11011110,
3939 0b_11001110,
3940 0b_11000110,
3941 0b_11000110,
3942 0b_00000000,
3943 /* O */
3944 0b_00111000,
3945 0b_01101100,
3946 0b_11000110,
3947 0b_11000110,
3948 0b_11000110,
3949 0b_01101100,
3950 0b_00111000,
3951 0b_00000000,
3952 /* P */
3953 0b_11111100,
3954 0b_01100110,
3955 0b_01100110,
3956 0b_01111100,
3957 0b_01100000,
3958 0b_01100000,
3959 0b_11110000,
3960 0b_00000000,
3961 /* Q */
3962 0b_01111000,
3963 0b_11001100,
3964 0b_11001100,
3965 0b_11001100,
3966 0b_11011100,
3967 0b_01111000,
3968 0b_00011100,
3969 0b_00000000,
3970 /* R */
3971 0b_11111100,
3972 0b_01100110,
3973 0b_01100110,
3974 0b_01111100,
3975 0b_01111000,
3976 0b_01101100,
3977 0b_11100110,
3978 0b_00000000,
3979 /* S */
3980 0b_01111000,
3981 0b_11001100,
3982 0b_11100000,
3983 0b_00111000,
3984 0b_00011100,
3985 0b_11001100,
3986 0b_01111000,
3987 0b_00000000,
3988 /* T */
3989 0b_11111100,
3990 0b_10110100,
3991 0b_00110000,
3992 0b_00110000,
3993 0b_00110000,
3994 0b_00110000,
3995 0b_01111000,
3996 0b_00000000,
3997 /* U */
3998 0b_11001100,
3999 0b_11001100,
4000 0b_11001100,
4001 0b_11001100,
4002 0b_11001100,
4003 0b_11001100,
4004 0b_11111100,
4005 0b_00000000,
4006 /* V */
4007 0b_11001100,
4008 0b_11001100,
4009 0b_11001100,
4010 0b_11001100,
4011 0b_11001100,
4012 0b_01111000,
4013 0b_00110000,
4014 0b_00000000,
4015 /* W */
4016 0b_11000110,
4017 0b_11000110,
4018 0b_11000110,
4019 0b_11010110,
4020 0b_11111110,
4021 0b_11101110,
4022 0b_11000110,
4023 0b_00000000,
4024 /* X */
4025 0b_11000110,
4026 0b_11000110,
4027 0b_01101100,
4028 0b_00111000,
4029 0b_01101100,
4030 0b_11000110,
4031 0b_11000110,
4032 0b_00000000,
4033 /* Y */
4034 0b_11001100,
4035 0b_11001100,
4036 0b_11001100,
4037 0b_01111000,
4038 0b_00110000,
4039 0b_00110000,
4040 0b_01111000,
4041 0b_00000000,
4042 /* Z */
4043 0b_11111110,
4044 0b_11001100,
4045 0b_10011000,
4046 0b_00110000,
4047 0b_01100010,
4048 0b_11000110,
4049 0b_11111110,
4050 0b_00000000,
4051 /* [ */
4052 0b_01111000,
4053 0b_01100000,
4054 0b_01100000,
4055 0b_01100000,
4056 0b_01100000,
4057 0b_01100000,
4058 0b_01111000,
4059 0b_00000000,
4060 /* \ */
4061 0b_11000000,
4062 0b_01100000,
4063 0b_00110000,
4064 0b_00011000,
4065 0b_00001100,
4066 0b_00000110,
4067 0b_00000010,
4068 0b_00000000,
4069 /* ] */
4070 0b_01111000,
4071 0b_00011000,
4072 0b_00011000,
4073 0b_00011000,
4074 0b_00011000,
4075 0b_00011000,
4076 0b_01111000,
4077 0b_00000000,
4078 /* ^ */
4079 0b_00010000,
4080 0b_00111000,
4081 0b_01101100,
4082 0b_11000110,
4083 0b_00000000,
4084 0b_00000000,
4085 0b_00000000,
4086 0b_00000000,
4087 /* _ */
4088 0b_00000000,
4089 0b_00000000,
4090 0b_00000000,
4091 0b_00000000,
4092 0b_00000000,
4093 0b_00000000,
4094 0b_00000000,
4095 0b_11111111,
4096 /* ` */
4097 0b_00110000,
4098 0b_00110000,
4099 0b_00011000,
4100 0b_00000000,
4101 0b_00000000,
4102 0b_00000000,
4103 0b_00000000,
4104 0b_00000000,
4105 /* a */
4106 0b_00000000,
4107 0b_00000000,
4108 0b_01111000,
4109 0b_00001100,
4110 0b_01111100,
4111 0b_11001100,
4112 0b_01110110,
4113 0b_00000000,
4114 /* b */
4115 0b_11100000,
4116 0b_01100000,
4117 0b_01111100,
4118 0b_01100110,
4119 0b_01100110,
4120 0b_01100110,
4121 0b_10111100,
4122 0b_00000000,
4123 /* c */
4124 0b_00000000,
4125 0b_00000000,
4126 0b_01111000,
4127 0b_11001100,
4128 0b_11000000,
4129 0b_11001100,
4130 0b_01111000,
4131 0b_00000000,
4132 /* d */
4133 0b_00011100,
4134 0b_00001100,
4135 0b_00001100,
4136 0b_01111100,
4137 0b_11001100,
4138 0b_11001100,
4139 0b_01110110,
4140 0b_00000000,
4141 /* e */
4142 0b_00000000,
4143 0b_00000000,
4144 0b_01111000,
4145 0b_11001100,
4146 0b_11111100,
4147 0b_11000000,
4148 0b_01111000,
4149 0b_00000000,
4150 /* f */
4151 0b_00111000,
4152 0b_01101100,
4153 0b_01100000,
4154 0b_11110000,
4155 0b_01100000,
4156 0b_01100000,
4157 0b_11110000,
4158 0b_00000000,
4159 /* g */
4160 0b_00000000,
4161 0b_00000000,
4162 0b_01110110,
4163 0b_11001100,
4164 0b_11001100,
4165 0b_01111100,
4166 0b_00001100,
4167 0b_11111000,
4168 /* h */
4169 0b_11100000,
4170 0b_01100000,
4171 0b_01101100,
4172 0b_01110110,
4173 0b_01100110,
4174 0b_01100110,
4175 0b_11100110,
4176 0b_00000000,
4177 /* i */
4178 0b_00110000,
4179 0b_00000000,
4180 0b_01110000,
4181 0b_00110000,
4182 0b_00110000,
4183 0b_00110000,
4184 0b_01111000,
4185 0b_00000000,
4186 /* j */
4187 0b_00011000,
4188 0b_00000000,
4189 0b_01111000,
4190 0b_00011000,
4191 0b_00011000,
4192 0b_00011000,
4193 0b_11011000,
4194 0b_01110000,
4195 /* k */
4196 0b_11100000,
4197 0b_01100000,
4198 0b_01100110,
4199 0b_01101100,
4200 0b_01111000,
4201 0b_01101100,
4202 0b_11100110,
4203 0b_00000000,
4204 /* l */
4205 0b_01110000,
4206 0b_00110000,
4207 0b_00110000,
4208 0b_00110000,
4209 0b_00110000,
4210 0b_00110000,
4211 0b_01111000,
4212 0b_00000000,
4213 /* m */
4214 0b_00000000,
4215 0b_00000000,
4216 0b_11101100,
4217 0b_11111110,
4218 0b_11010110,
4219 0b_11000110,
4220 0b_11000110,
4221 0b_00000000,
4222 /* n */
4223 0b_00000000,
4224 0b_00000000,
4225 0b_11111000,
4226 0b_11001100,
4227 0b_11001100,
4228 0b_11001100,
4229 0b_11001100,
4230 0b_00000000,
4231 /* o */
4232 0b_00000000,
4233 0b_00000000,
4234 0b_01111000,
4235 0b_11001100,
4236 0b_11001100,
4237 0b_11001100,
4238 0b_01111000,
4239 0b_00000000,
4240 /* p */
4241 0b_00000000,
4242 0b_00000000,
4243 0b_11011100,
4244 0b_01100110,
4245 0b_01100110,
4246 0b_01111100,
4247 0b_01100000,
4248 0b_11110000,
4249 /* q */
4250 0b_00000000,
4251 0b_00000000,
4252 0b_01110110,
4253 0b_11001100,
4254 0b_11001100,
4255 0b_01111100,
4256 0b_00001100,
4257 0b_00011110,
4258 /* r */
4259 0b_00000000,
4260 0b_00000000,
4261 0b_11011000,
4262 0b_01101100,
4263 0b_01101100,
4264 0b_01100000,
4265 0b_11110000,
4266 0b_00000000,
4267 /* s */
4268 0b_00000000,
4269 0b_00000000,
4270 0b_01111100,
4271 0b_11000000,
4272 0b_01111000,
4273 0b_00001100,
4274 0b_11111000,
4275 0b_00000000,
4276 /* t */
4277 0b_00010000,
4278 0b_00110000,
4279 0b_01111100,
4280 0b_00110000,
4281 0b_00110000,
4282 0b_00110100,
4283 0b_00011000,
4284 0b_00000000,
4285 /* u */
4286 0b_00000000,
4287 0b_00000000,
4288 0b_11001100,
4289 0b_11001100,
4290 0b_11001100,
4291 0b_11001100,
4292 0b_01110110,
4293 0b_00000000,
4294 /* v */
4295 0b_00000000,
4296 0b_00000000,
4297 0b_11001100,
4298 0b_11001100,
4299 0b_11001100,
4300 0b_01111000,
4301 0b_00110000,
4302 0b_00000000,
4303 /* w */
4304 0b_00000000,
4305 0b_00000000,
4306 0b_11000110,
4307 0b_11000110,
4308 0b_11010110,
4309 0b_11111110,
4310 0b_01101100,
4311 0b_00000000,
4312 /* x */
4313 0b_00000000,
4314 0b_00000000,
4315 0b_11000110,
4316 0b_01101100,
4317 0b_00111000,
4318 0b_01101100,
4319 0b_11000110,
4320 0b_00000000,
4321 /* y */
4322 0b_00000000,
4323 0b_00000000,
4324 0b_11001100,
4325 0b_11001100,
4326 0b_11001100,
4327 0b_01111100,
4328 0b_00001100,
4329 0b_11111000,
4330 /* z */
4331 0b_00000000,
4332 0b_00000000,
4333 0b_11111100,
4334 0b_10011000,
4335 0b_00110000,
4336 0b_01100100,
4337 0b_11111100,
4338 0b_00000000,
4339 /* { */
4340 0b_00011100,
4341 0b_00110000,
4342 0b_00110000,
4343 0b_11100000,
4344 0b_00110000,
4345 0b_00110000,
4346 0b_00011100,
4347 0b_00000000,
4348 /* | */
4349 0b_00011000,
4350 0b_00011000,
4351 0b_00011000,
4352 0b_00000000,
4353 0b_00011000,
4354 0b_00011000,
4355 0b_00011000,
4356 0b_00000000,
4357 /* } */
4358 0b_11100000,
4359 0b_00110000,
4360 0b_00110000,
4361 0b_00011100,
4362 0b_00110000,
4363 0b_00110000,
4364 0b_11100000,
4365 0b_00000000,
4366 /* ~ */
4367 0b_01110110,
4368 0b_11011100,
4369 0b_00000000,
4370 0b_00000000,
4371 0b_00000000,
4372 0b_00000000,
4373 0b_00000000,
4374 0b_00000000,
4375 /* 0x7f */
4376 0b_00010000,
4377 0b_00111000,
4378 0b_01101100,
4379 0b_11000110,
4380 0b_11000110,
4381 0b_11000110,
4382 0b_11111110,
4383 0b_00000000,
4384 /* 0x80 */
4385 0b_01111000,
4386 0b_11001100,
4387 0b_11000000,
4388 0b_11001100,
4389 0b_01111000,
4390 0b_00011000,
4391 0b_00001100,
4392 0b_01111000,
4393 /* 0x81 */
4394 0b_00000000,
4395 0b_11001100,
4396 0b_00000000,
4397 0b_11001100,
4398 0b_11001100,
4399 0b_11001100,
4400 0b_01111110,
4401 0b_00000000,
4402 /* 0x82 */
4403 0b_00011100,
4404 0b_00000000,
4405 0b_01111000,
4406 0b_11001100,
4407 0b_11111100,
4408 0b_11000000,
4409 0b_01111000,
4410 0b_00000000,
4411 /* 0x83 */
4412 0b_01111110,
4413 0b_11000011,
4414 0b_00111100,
4415 0b_00000110,
4416 0b_00111110,
4417 0b_01100110,
4418 0b_00111111,
4419 0b_00000000,
4420 /* 0x84 */
4421 0b_11001100,
4422 0b_00000000,
4423 0b_01111000,
4424 0b_00001100,
4425 0b_01111100,
4426 0b_11001100,
4427 0b_01111110,
4428 0b_00000000,
4429 /* 0x85 */
4430 0b_11100000,
4431 0b_00000000,
4432 0b_01111000,
4433 0b_00001100,
4434 0b_01111100,
4435 0b_11001100,
4436 0b_01111110,
4437 0b_00000000,
4438 /* 0x86 */
4439 0b_00110000,
4440 0b_00110000,
4441 0b_01111000,
4442 0b_00001100,
4443 0b_01111100,
4444 0b_11001100,
4445 0b_01111110,
4446 0b_00000000,
4447 /* 0x87 */
4448 0b_00000000,
4449 0b_00000000,
4450 0b_01111100,
4451 0b_11000000,
4452 0b_11000000,
4453 0b_01111100,
4454 0b_00000110,
4455 0b_00111100,
4456 /* 0x88 */
4457 0b_01111110,
4458 0b_11000011,
4459 0b_00111100,
4460 0b_01100110,
4461 0b_01111110,
4462 0b_01100000,
4463 0b_00111100,
4464 0b_00000000,
4465 /* 0x89 */
4466 0b_11001100,
4467 0b_00000000,
4468 0b_01111000,
4469 0b_11001100,
4470 0b_11111100,
4471 0b_11000000,
4472 0b_01111000,
4473 0b_00000000,
4474 /* 0x8a */
4475 0b_11100000,
4476 0b_00000000,
4477 0b_01111000,
4478 0b_11001100,
4479 0b_11111100,
4480 0b_11000000,
4481 0b_01111000,
4482 0b_00000000,
4483 /* 0x8b */
4484 0b_11001100,
4485 0b_00000000,
4486 0b_01110000,
4487 0b_00110000,
4488 0b_00110000,
4489 0b_00110000,
4490 0b_01111000,
4491 0b_00000000,
4492 /* 0x8c */
4493 0b_01111100,
4494 0b_11000110,
4495 0b_00111000,
4496 0b_00011000,
4497 0b_00011000,
4498 0b_00011000,
4499 0b_00111100,
4500 0b_00000000,
4501 /* 0x8d */
4502 0b_11100000,
4503 0b_00000000,
4504 0b_01110000,
4505 0b_00110000,
4506 0b_00110000,
4507 0b_00110000,
4508 0b_01111000,
4509 0b_00000000,
4510 /* 0x8e */
4511 0b_11001100,
4512 0b_00110000,
4513 0b_01111000,
4514 0b_11001100,
4515 0b_11001100,
4516 0b_11111100,
4517 0b_11001100,
4518 0b_00000000,
4519 /* 0x8f */
4520 0b_00110000,
4521 0b_00110000,
4522 0b_00000000,
4523 0b_01111000,
4524 0b_11001100,
4525 0b_11111100,
4526 0b_11001100,
4527 0b_00000000,
4528 /* 0x90 */
4529 0b_00011100,
4530 0b_00000000,
4531 0b_11111100,
4532 0b_01100000,
4533 0b_01111000,
4534 0b_01100000,
4535 0b_11111100,
4536 0b_00000000,
4537 /* 0x91 */
4538 0b_00000000,
4539 0b_00000000,
4540 0b_01111111,
4541 0b_00001100,
4542 0b_01111111,
4543 0b_11001100,
4544 0b_01111111,
4545 0b_00000000,
4546 /* 0x92 */
4547 0b_00111110,
4548 0b_01101100,
4549 0b_11001100,
4550 0b_11111110,
4551 0b_11001100,
4552 0b_11001100,
4553 0b_11001110,
4554 0b_00000000,
4555 /* 0x93 */
4556 0b_01111000,
4557 0b_11001100,
4558 0b_00000000,
4559 0b_01111000,
4560 0b_11001100,
4561 0b_11001100,
4562 0b_01111000,
4563 0b_00000000,
4564 /* 0x94 */
4565 0b_00000000,
4566 0b_11001100,
4567 0b_00000000,
4568 0b_01111000,
4569 0b_11001100,
4570 0b_11001100,
4571 0b_01111000,
4572 0b_00000000,
4573 /* 0x95 */
4574 0b_00000000,
4575 0b_11100000,
4576 0b_00000000,
4577 0b_01111000,
4578 0b_11001100,
4579 0b_11001100,
4580 0b_01111000,
4581 0b_00000000,
4582 /* 0x96 */
4583 0b_01111000,
4584 0b_11001100,
4585 0b_00000000,
4586 0b_11001100,
4587 0b_11001100,
4588 0b_11001100,
4589 0b_01111110,
4590 0b_00000000,
4591 /* 0x97 */
4592 0b_00000000,
4593 0b_11100000,
4594 0b_00000000,
4595 0b_11001100,
4596 0b_11001100,
4597 0b_11001100,
4598 0b_01111110,
4599 0b_00000000,
4600 /* 0x98 */
4601 0b_00000000,
4602 0b_11001100,
4603 0b_00000000,
4604 0b_11001100,
4605 0b_11001100,
4606 0b_11111100,
4607 0b_00001100,
4608 0b_11111000,
4609 /* 0x99 */
4610 0b_11000110,
4611 0b_00111000,
4612 0b_01111100,
4613 0b_11000110,
4614 0b_11000110,
4615 0b_01111100,
4616 0b_00111000,
4617 0b_00000000,
4618 /* 0x9a */
4619 0b_11001100,
4620 0b_00000000,
4621 0b_11001100,
4622 0b_11001100,
4623 0b_11001100,
4624 0b_11001100,
4625 0b_01111000,
4626 0b_00000000,
4627 /* 0x9b */
4628 0b_00011000,
4629 0b_00011000,
4630 0b_01111110,
4631 0b_11000000,
4632 0b_11000000,
4633 0b_01111110,
4634 0b_00011000,
4635 0b_00011000,
4636 /* 0x9c */
4637 0b_00111000,
4638 0b_01101100,
4639 0b_01100100,
4640 0b_11110000,
4641 0b_01100000,
4642 0b_11100110,
4643 0b_11111100,
4644 0b_00000000,
4645 /* 0x9d */
4646 0b_11001100,
4647 0b_11001100,
4648 0b_01111000,
4649 0b_11111100,
4650 0b_00110000,
4651 0b_11111100,
4652 0b_00110000,
4653 0b_00000000,
4654 /* 0x9e */
4655 0b_11110000,
4656 0b_11011000,
4657 0b_11011000,
4658 0b_11110100,
4659 0b_11001100,
4660 0b_11011110,
4661 0b_11001100,
4662 0b_00001110,
4663 /* 0x9f */
4664 0b_00001110,
4665 0b_00011011,
4666 0b_00011000,
4667 0b_01111110,
4668 0b_00011000,
4669 0b_00011000,
4670 0b_11011000,
4671 0b_01110000,
4672 /* 0xa0 */
4673 0b_00011100,
4674 0b_00000000,
4675 0b_01111000,
4676 0b_00001100,
4677 0b_01111100,
4678 0b_11001100,
4679 0b_01111110,
4680 0b_00000000,
4681 /* 0xa1 */
4682 0b_00111000,
4683 0b_00000000,
4684 0b_01110000,
4685 0b_00110000,
4686 0b_00110000,
4687 0b_00110000,
4688 0b_01111000,
4689 0b_00000000,
4690 /* 0xa2 */
4691 0b_00000000,
4692 0b_00011100,
4693 0b_00000000,
4694 0b_01111000,
4695 0b_11001100,
4696 0b_11001100,
4697 0b_01111000,
4698 0b_00000000,
4699 /* 0xa3 */
4700 0b_00000000,
4701 0b_00011100,
4702 0b_00000000,
4703 0b_11001100,
4704 0b_11001100,
4705 0b_11001100,
4706 0b_01111110,
4707 0b_00000000,
4708 /* 0xa4 */
4709 0b_00000000,
4710 0b_11111000,
4711 0b_00000000,
4712 0b_11111000,
4713 0b_11001100,
4714 0b_11001100,
4715 0b_11001100,
4716 0b_00000000,
4717 /* 0xa5 */
4718 0b_11111100,
4719 0b_00000000,
4720 0b_11001100,
4721 0b_11101100,
4722 0b_11111100,
4723 0b_11011100,
4724 0b_11001100,
4725 0b_00000000,
4726 /* 0xa6 */
4727 0b_00111100,
4728 0b_01101100,
4729 0b_01101100,
4730 0b_00111110,
4731 0b_00000000,
4732 0b_01111110,
4733 0b_00000000,
4734 0b_00000000,
4735 /* 0xa7 */
4736 0b_00111100,
4737 0b_01100110,
4738 0b_01100110,
4739 0b_00111100,
4740 0b_00000000,
4741 0b_01111110,
4742 0b_00000000,
4743 0b_00000000,
4744 /* 0xa8 */
4745 0b_00110000,
4746 0b_00000000,
4747 0b_00110000,
4748 0b_01100000,
4749 0b_11000000,
4750 0b_11001100,
4751 0b_01111000,
4752 0b_00000000,
4753 /* 0xa9 */
4754 0b_00000000,
4755 0b_00000000,
4756 0b_00000000,
4757 0b_11111100,
4758 0b_11000000,
4759 0b_11000000,
4760 0b_00000000,
4761 0b_00000000,
4762 /* 0xaa */
4763 0b_00000000,
4764 0b_00000000,
4765 0b_00000000,
4766 0b_11111100,
4767 0b_00001100,
4768 0b_00001100,
4769 0b_00000000,
4770 0b_00000000,
4771 /* 0xab */
4772 0b_11000110,
4773 0b_11001100,
4774 0b_11011000,
4775 0b_00111110,
4776 0b_01100011,
4777 0b_11001110,
4778 0b_10011000,
4779 0b_00011111,
4780 /* 0xac */
4781 0b_11000110,
4782 0b_11001100,
4783 0b_11011000,
4784 0b_11110011,
4785 0b_01100111,
4786 0b_11001111,
4787 0b_10011111,
4788 0b_00000011,
4789 /* 0xad */
4790 0b_00000000,
4791 0b_00011000,
4792 0b_00000000,
4793 0b_00011000,
4794 0b_00011000,
4795 0b_00111100,
4796 0b_00111100,
4797 0b_00011000,
4798 /* 0xae */
4799 0b_00000000,
4800 0b_00110011,
4801 0b_01100110,
4802 0b_11001100,
4803 0b_01100110,
4804 0b_00110011,
4805 0b_00000000,
4806 0b_00000000,
4807 /* 0xaf */
4808 0b_00000000,
4809 0b_11001100,
4810 0b_01100110,
4811 0b_00110011,
4812 0b_01100110,
4813 0b_11001100,
4814 0b_00000000,
4815 0b_00000000,
4816 /* 0xb0 */
4817 0b_00100010,
4818 0b_10001000,
4819 0b_00100010,
4820 0b_10001000,
4821 0b_00100010,
4822 0b_10001000,
4823 0b_00100010,
4824 0b_10001000,
4825 /* 0xb1 */
4826 0b_01010101,
4827 0b_10101010,
4828 0b_01010101,
4829 0b_10101010,
4830 0b_01010101,
4831 0b_10101010,
4832 0b_01010101,
4833 0b_10101010,
4834 /* 0xb2 */
4835 0b_11011100,
4836 0b_01110110,
4837 0b_11011100,
4838 0b_01110110,
4839 0b_11011100,
4840 0b_01110110,
4841 0b_11011100,
4842 0b_01110110,
4843 /* 0xb3 */
4844 0b_00011000,
4845 0b_00011000,
4846 0b_00011000,
4847 0b_00011000,
4848 0b_00011000,
4849 0b_00011000,
4850 0b_00011000,
4851 0b_00011000,
4852 /* 0xb4 */
4853 0b_00011000,
4854 0b_00011000,
4855 0b_00011000,
4856 0b_00011000,
4857 0b_11111000,
4858 0b_00011000,
4859 0b_00011000,
4860 0b_00011000,
4861 /* 0xb5 */
4862 0b_00011000,
4863 0b_00011000,
4864 0b_11111000,
4865 0b_00011000,
4866 0b_11111000,
4867 0b_00011000,
4868 0b_00011000,
4869 0b_00011000,
4870 /* 0xb6 */
4871 0b_00110110,
4872 0b_00110110,
4873 0b_00110110,
4874 0b_00110110,
4875 0b_11110110,
4876 0b_00110110,
4877 0b_00110110,
4878 0b_00110110,
4879 /* 0xb7 */
4880 0b_00000000,
4881 0b_00000000,
4882 0b_00000000,
4883 0b_00000000,
4884 0b_11111110,
4885 0b_00110110,
4886 0b_00110110,
4887 0b_00110110,
4888 /* 0xb8 */
4889 0b_00000000,
4890 0b_00000000,
4891 0b_11111000,
4892 0b_00011000,
4893 0b_11111000,
4894 0b_00011000,
4895 0b_00011000,
4896 0b_00011000,
4897 /* 0xb9 */
4898 0b_00110110,
4899 0b_00110110,
4900 0b_11110110,
4901 0b_00000110,
4902 0b_11110110,
4903 0b_00110110,
4904 0b_00110110,
4905 0b_00110110,
4906 /* 0xba */
4907 0b_00110110,
4908 0b_00110110,
4909 0b_00110110,
4910 0b_00110110,
4911 0b_00110110,
4912 0b_00110110,
4913 0b_00110110,
4914 0b_00110110,
4915 /* 0xbb */
4916 0b_00000000,
4917 0b_00000000,
4918 0b_11111110,
4919 0b_00000110,
4920 0b_11110110,
4921 0b_00110110,
4922 0b_00110110,
4923 0b_00110110,
4924 /* 0xbc */
4925 0b_00110110,
4926 0b_00110110,
4927 0b_11110110,
4928 0b_00000110,
4929 0b_11111110,
4930 0b_00000000,
4931 0b_00000000,
4932 0b_00000000,
4933 /* 0xbd */
4934 0b_00110110,
4935 0b_00110110,
4936 0b_00110110,
4937 0b_00110110,
4938 0b_11111110,
4939 0b_00000000,
4940 0b_00000000,
4941 0b_00000000,
4942 /* 0xbe */
4943 0b_00011000,
4944 0b_00011000,
4945 0b_11111000,
4946 0b_00011000,
4947 0b_11111000,
4948 0b_00000000,
4949 0b_00000000,
4950 0b_00000000,
4951 /* 0xbf */
4952 0b_00000000,
4953 0b_00000000,
4954 0b_00000000,
4955 0b_00000000,
4956 0b_11111000,
4957 0b_00011000,
4958 0b_00011000,
4959 0b_00011000,
4960 /* 0xc0 */
4961 0b_00011000,
4962 0b_00011000,
4963 0b_00011000,
4964 0b_00011000,
4965 0b_00011111,
4966 0b_00000000,
4967 0b_00000000,
4968 0b_00000000,
4969 /* 0xc1 */
4970 0b_00011000,
4971 0b_00011000,
4972 0b_00011000,
4973 0b_00011000,
4974 0b_11111111,
4975 0b_00000000,
4976 0b_00000000,
4977 0b_00000000,
4978 /* 0xc2 */
4979 0b_00000000,
4980 0b_00000000,
4981 0b_00000000,
4982 0b_00000000,
4983 0b_11111111,
4984 0b_00011000,
4985 0b_00011000,
4986 0b_00011000,
4987 /* 0xc3 */
4988 0b_00011000,
4989 0b_00011000,
4990 0b_00011000,
4991 0b_00011000,
4992 0b_00011111,
4993 0b_00011000,
4994 0b_00011000,
4995 0b_00011000,
4996 /* 0xc4 */
4997 0b_00000000,
4998 0b_00000000,
4999 0b_00000000,
5000 0b_00000000,
5001 0b_11111111,
5002 0b_00000000,
5003 0b_00000000,
5004 0b_00000000,
5005 /* 0xc5 */
5006 0b_00011000,
5007 0b_00011000,
5008 0b_00011000,
5009 0b_00011000,
5010 0b_11111111,
5011 0b_00011000,
5012 0b_00011000,
5013 0b_00011000,
5014 /* 0xc6 */
5015 0b_00011000,
5016 0b_00011000,
5017 0b_00011111,
5018 0b_00011000,
5019 0b_00011111,
5020 0b_00011000,
5021 0b_00011000,
5022 0b_00011000,
5023 /* 0xc7 */
5024 0b_00110110,
5025 0b_00110110,
5026 0b_00110110,
5027 0b_00110110,
5028 0b_00110111,
5029 0b_00110110,
5030 0b_00110110,
5031 0b_00110110,
5032 /* 0xc8 */
5033 0b_00110110,
5034 0b_00110110,
5035 0b_00110111,
5036 0b_00110000,
5037 0b_00111111,
5038 0b_00000000,
5039 0b_00000000,
5040 0b_00000000,
5041 /* 0xc9 */
5042 0b_00000000,
5043 0b_00000000,
5044 0b_00111111,
5045 0b_00110000,
5046 0b_00110111,
5047 0b_00110110,
5048 0b_00110110,
5049 0b_00110110,
5050 /* 0xca */
5051 0b_00110110,
5052 0b_00110110,
5053 0b_11110111,
5054 0b_00000000,
5055 0b_11111111,
5056 0b_00000000,
5057 0b_00000000,
5058 0b_00000000,
5059 /* 0xcb */
5060 0b_00000000,
5061 0b_00000000,
5062 0b_11111111,
5063 0b_00000000,
5064 0b_11110111,
5065 0b_00110110,
5066 0b_00110110,
5067 0b_00110110,
5068 /* 0xcc */
5069 0b_00110110,
5070 0b_00110110,
5071 0b_00110111,
5072 0b_00110000,
5073 0b_00110111,
5074 0b_00110110,
5075 0b_00110110,
5076 0b_00110110,
5077 /* 0xcd */
5078 0b_00000000,
5079 0b_00000000,
5080 0b_11111111,
5081 0b_00000000,
5082 0b_11111111,
5083 0b_00000000,
5084 0b_00000000,
5085 0b_00000000,
5086 /* 0xce */
5087 0b_00110110,
5088 0b_00110110,
5089 0b_11110111,
5090 0b_00000000,
5091 0b_11110111,
5092 0b_00110110,
5093 0b_00110110,
5094 0b_00110110,
5095 /* 0xcf */
5096 0b_00011000,
5097 0b_00011000,
5098 0b_11111111,
5099 0b_00000000,
5100 0b_11111111,
5101 0b_00000000,
5102 0b_00000000,
5103 0b_00000000,
5104 /* 0xd0 */
5105 0b_00110110,
5106 0b_00110110,
5107 0b_00110110,
5108 0b_00110110,
5109 0b_11111111,
5110 0b_00000000,
5111 0b_00000000,
5112 0b_00000000,
5113 /* 0xd1 */
5114 0b_00000000,
5115 0b_00000000,
5116 0b_11111111,
5117 0b_00000000,
5118 0b_11111111,
5119 0b_00011000,
5120 0b_00011000,
5121 0b_00011000,
5122 /* 0xd2 */
5123 0b_00000000,
5124 0b_00000000,
5125 0b_00000000,
5126 0b_00000000,
5127 0b_11111111,
5128 0b_00110110,
5129 0b_00110110,
5130 0b_00110110,
5131 /* 0xd3 */
5132 0b_00110110,
5133 0b_00110110,
5134 0b_00110110,
5135 0b_00110110,
5136 0b_00111111,
5137 0b_00000000,
5138 0b_00000000,
5139 0b_00000000,
5140 /* 0xd4 */
5141 0b_00011000,
5142 0b_00011000,
5143 0b_00011111,
5144 0b_00011000,
5145 0b_00011111,
5146 0b_00000000,
5147 0b_00000000,
5148 0b_00000000,
5149 /* 0xd5 */
5150 0b_00000000,
5151 0b_00000000,
5152 0b_00011111,
5153 0b_00011000,
5154 0b_00011111,
5155 0b_00011000,
5156 0b_00011000,
5157 0b_00011000,
5158 /* 0xd6 */
5159 0b_00000000,
5160 0b_00000000,
5161 0b_00000000,
5162 0b_00000000,
5163 0b_00111111,
5164 0b_00110110,
5165 0b_00110110,
5166 0b_00110110,
5167 /* 0xd7 */
5168 0b_00110110,
5169 0b_00110110,
5170 0b_00110110,
5171 0b_00110110,
5172 0b_11110111,
5173 0b_00110110,
5174 0b_00110110,
5175 0b_00110110,
5176 /* 0xd8 */
5177 0b_00011000,
5178 0b_00011000,
5179 0b_11111111,
5180 0b_00000000,
5181 0b_11111111,
5182 0b_00011000,
5183 0b_00011000,
5184 0b_00011000,
5185 /* 0xd9 */
5186 0b_00011000,
5187 0b_00011000,
5188 0b_00011000,
5189 0b_00011000,
5190 0b_11111000,
5191 0b_00000000,
5192 0b_00000000,
5193 0b_00000000,
5194 /* 0xda */
5195 0b_00000000,
5196 0b_00000000,
5197 0b_00000000,
5198 0b_00000000,
5199 0b_00011111,
5200 0b_00011000,
5201 0b_00011000,
5202 0b_00011000,
5203 /* 0xdb */
5204 0b_11111111,
5205 0b_11111111,
5206 0b_11111111,
5207 0b_11111111,
5208 0b_11111111,
5209 0b_11111111,
5210 0b_11111111,
5211 0b_11111111,
5212 /* 0xdc */
5213 0b_00000000,
5214 0b_00000000,
5215 0b_00000000,
5216 0b_00000000,
5217 0b_11111111,
5218 0b_11111111,
5219 0b_11111111,
5220 0b_11111111,
5221 /* 0xdd */
5222 0b_11110000,
5223 0b_11110000,
5224 0b_11110000,
5225 0b_11110000,
5226 0b_11110000,
5227 0b_11110000,
5228 0b_11110000,
5229 0b_11110000,
5230 /* 0xde */
5231 0b_00001111,
5232 0b_00001111,
5233 0b_00001111,
5234 0b_00001111,
5235 0b_00001111,
5236 0b_00001111,
5237 0b_00001111,
5238 0b_00001111,
5239 /* 0xdf */
5240 0b_11111111,
5241 0b_11111111,
5242 0b_11111111,
5243 0b_11111111,
5244 0b_00000000,
5245 0b_00000000,
5246 0b_00000000,
5247 0b_00000000,
5248 /* 0xe0 */
5249 0b_00000000,
5250 0b_00000000,
5251 0b_01110110,
5252 0b_11011100,
5253 0b_11001000,
5254 0b_11011100,
5255 0b_01110110,
5256 0b_00000000,
5257 /* 0xe1 */
5258 0b_00000000,
5259 0b_01111000,
5260 0b_11001100,
5261 0b_11111000,
5262 0b_11001100,
5263 0b_11111000,
5264 0b_11000000,
5265 0b_11000000,
5266 /* 0xe2 */
5267 0b_00000000,
5268 0b_11111110,
5269 0b_11000110,
5270 0b_11000000,
5271 0b_11000000,
5272 0b_11000000,
5273 0b_11000000,
5274 0b_00000000,
5275 /* 0xe3 */
5276 0b_00000000,
5277 0b_11111110,
5278 0b_01101100,
5279 0b_01101100,
5280 0b_01101100,
5281 0b_01101100,
5282 0b_01101100,
5283 0b_00000000,
5284 /* 0xe4 */
5285 0b_11111110,
5286 0b_01100110,
5287 0b_00110000,
5288 0b_00011000,
5289 0b_00110000,
5290 0b_01100110,
5291 0b_11111110,
5292 0b_00000000,
5293 /* 0xe5 */
5294 0b_00000000,
5295 0b_00000000,
5296 0b_01111110,
5297 0b_11001100,
5298 0b_11001100,
5299 0b_11001100,
5300 0b_01111000,
5301 0b_00000000,
5302 /* 0xe6 */
5303 0b_00000000,
5304 0b_01100110,
5305 0b_01100110,
5306 0b_01100110,
5307 0b_01100110,
5308 0b_01111100,
5309 0b_01100000,
5310 0b_11000000,
5311 /* 0xe7 */
5312 0b_00000000,
5313 0b_01110110,
5314 0b_11011100,
5315 0b_00011000,
5316 0b_00011000,
5317 0b_00011000,
5318 0b_00011000,
5319 0b_00000000,
5320 /* 0xe8 */
5321 0b_11111100,
5322 0b_00110000,
5323 0b_01111000,
5324 0b_11001100,
5325 0b_11001100,
5326 0b_01111000,
5327 0b_00110000,
5328 0b_11111100,
5329 /* 0xe9 */
5330 0b_00111000,
5331 0b_01101100,
5332 0b_11000110,
5333 0b_11111110,
5334 0b_11000110,
5335 0b_01101100,
5336 0b_00111000,
5337 0b_00000000,
5338 /* 0xea */
5339 0b_00111000,
5340 0b_01101100,
5341 0b_11000110,
5342 0b_11000110,
5343 0b_01101100,
5344 0b_01101100,
5345 0b_11101110,
5346 0b_00000000,
5347 /* 0xeb */
5348 0b_00011100,
5349 0b_00110000,
5350 0b_00011000,
5351 0b_01111100,
5352 0b_11001100,
5353 0b_11001100,
5354 0b_01111000,
5355 0b_00000000,
5356 /* 0xec */
5357 0b_00000000,
5358 0b_00000000,
5359 0b_01111110,
5360 0b_11011011,
5361 0b_11011011,
5362 0b_01111110,
5363 0b_00000000,
5364 0b_00000000,
5365 /* 0xed */
5366 0b_00000110,
5367 0b_00001100,
5368 0b_01111110,
5369 0b_11011011,
5370 0b_11011011,
5371 0b_01111110,
5372 0b_01100000,
5373 0b_11000000,
5374 /* 0xee */
5375 0b_00111100,
5376 0b_01100000,
5377 0b_11000000,
5378 0b_11111100,
5379 0b_11000000,
5380 0b_01100000,
5381 0b_00111100,
5382 0b_00000000,
5383 /* 0xef */
5384 0b_01111000,
5385 0b_11001100,
5386 0b_11001100,
5387 0b_11001100,
5388 0b_11001100,
5389 0b_11001100,
5390 0b_11001100,
5391 0b_00000000,
5392 /* 0xf0 */
5393 0b_00000000,
5394 0b_11111100,
5395 0b_00000000,
5396 0b_11111100,
5397 0b_00000000,
5398 0b_11111100,
5399 0b_00000000,
5400 0b_00000000,
5401 /* 0xf1 */
5402 0b_00110000,
5403 0b_00110000,
5404 0b_11111100,
5405 0b_00110000,
5406 0b_00110000,
5407 0b_00000000,
5408 0b_11111100,
5409 0b_00000000,
5410 /* 0xf2 */
5411 0b_01100000,
5412 0b_00110000,
5413 0b_00011000,
5414 0b_00110000,
5415 0b_01100000,
5416 0b_00000000,
5417 0b_11111100,
5418 0b_00000000,
5419 /* 0xf3 */
5420 0b_00011000,
5421 0b_00110000,
5422 0b_01100000,
5423 0b_00110000,
5424 0b_00011000,
5425 0b_00000000,
5426 0b_11111100,
5427 0b_00000000,
5428 /* 0xf4 */
5429 0b_00001110,
5430 0b_00011011,
5431 0b_00011011,
5432 0b_00011000,
5433 0b_00011000,
5434 0b_00011000,
5435 0b_00011000,
5436 0b_00011000,
5437 /* 0xf5 */
5438 0b_00011000,
5439 0b_00011000,
5440 0b_00011000,
5441 0b_00011000,
5442 0b_00011000,
5443 0b_11011000,
5444 0b_11011000,
5445 0b_01110000,
5446 /* 0xf6 */
5447 0b_00110000,
5448 0b_00110000,
5449 0b_00000000,
5450 0b_11111100,
5451 0b_00000000,
5452 0b_00110000,
5453 0b_00110000,
5454 0b_00000000,
5455 /* 0xf7 */
5456 0b_00000000,
5457 0b_01110010,
5458 0b_10011100,
5459 0b_00000000,
5460 0b_01110010,
5461 0b_10011100,
5462 0b_00000000,
5463 0b_00000000,
5464 /* 0xf8 */
5465 0b_00111000,
5466 0b_01101100,
5467 0b_01101100,
5468 0b_00111000,
5469 0b_00000000,
5470 0b_00000000,
5471 0b_00000000,
5472 0b_00000000,
5473 /* 0xf9 */
5474 0b_00000000,
5475 0b_00000000,
5476 0b_00000000,
5477 0b_00011000,
5478 0b_00011000,
5479 0b_00000000,
5480 0b_00000000,
5481 0b_00000000,
5482 /* 0xfa */
5483 0b_00000000,
5484 0b_00000000,
5485 0b_00000000,
5486 0b_00000000,
5487 0b_00011000,
5488 0b_00000000,
5489 0b_00000000,
5490 0b_00000000,
5491 /* 0xfb */
5492 0b_00001111,
5493 0b_00001100,
5494 0b_00001100,
5495 0b_00001100,
5496 0b_11101100,
5497 0b_01101100,
5498 0b_00111100,
5499 0b_00011100,
5500 /* 0xfc */
5501 0b_01111000,
5502 0b_01101100,
5503 0b_01101100,
5504 0b_01101100,
5505 0b_01101100,
5506 0b_00000000,
5507 0b_00000000,
5508 0b_00000000,
5509 /* 0xfd */
5510 0b_01111000,
5511 0b_00001100,
5512 0b_00111000,
5513 0b_01100000,
5514 0b_01111100,
5515 0b_00000000,
5516 0b_00000000,
5517 0b_00000000,
5518 /* 0xfe */
5519 0b_00000000,
5520 0b_00000000,
5521 0b_00111100,
5522 0b_00111100,
5523 0b_00111100,
5524 0b_00111100,
5525 0b_00000000,
5526 0b_00000000,
5527 /* 0xff */
5528 0b_11111111,
5529 0b_11111111,
5530 0b_11111111,
5531 0b_11111111,
5532 0b_11111111,
5533 0b_11111111,
5534 0b_11111111,
5535 0b_11111111,
5539 // bits 0..3: width
5540 // bits 4..7: lshift
5541 public immutable ubyte[256] dosFontPropWidth = () {
5542 ubyte[256] res;
5543 foreach (immutable cnum; 0..256) {
5544 import core.bitop : bsf, bsr;
5545 immutable doshift =
5546 (cnum >= 32 && cnum <= 127) ||
5547 (cnum >= 143 && cnum <= 144) ||
5548 (cnum >= 166 && cnum <= 167) ||
5549 (cnum >= 192 && cnum <= 255);
5550 int shift = 0;
5551 if (doshift) {
5552 shift = 8;
5553 foreach (immutable dy; 0..8) {
5554 immutable b = dosFont8[cnum*8+dy];
5555 if (b) {
5556 immutable mn = 7-bsr(b);
5557 if (mn < shift) shift = mn;
5561 ubyte wdt = 0;
5562 foreach (immutable dy; 0..8) {
5563 immutable b = (dosFont8[cnum*8+dy]<<shift);
5564 immutable cwdt = (b ? 8-bsf(b) : 0);
5565 if (cwdt > wdt) wdt = cast(ubyte)cwdt;
5567 switch (cnum) {
5568 case 0: wdt = 8; break; // 8px space
5569 case 32: wdt = 5; break; // 5px space
5570 case 48: .. case 57: wdt = 5; break; // digits are monospaced
5571 case 176: .. case 223: wdt = 8; break; // pseudographics (frames, etc)
5572 default:
5574 res[cnum] = (wdt&0x0f)|((shift<<4)&0xf0);
5576 return res;
5577 }();
5580 static public immutable ushort[256*10] dosFont10 = [
5581 /* 0x00 */
5582 0b_0000000000_000000,
5583 0b_0000000000_000000,
5584 0b_0000000000_000000,
5585 0b_0000000000_000000,
5586 0b_0000000000_000000,
5587 0b_0000000000_000000,
5588 0b_0000000000_000000,
5589 0b_0000000000_000000,
5590 0b_0000000000_000000,
5591 0b_0000000000_000000,
5592 /* 0x01 */
5593 0b_0000000000_000000,
5594 0b_0011111100_000000,
5595 0b_0100000010_000000,
5596 0b_0101001010_000000,
5597 0b_0100000010_000000,
5598 0b_0101111010_000000,
5599 0b_0100110010_000000,
5600 0b_0010000100_000000,
5601 0b_0001111000_000000,
5602 0b_0000000000_000000,
5603 /* 0x02 */
5604 0b_0000000000_000000,
5605 0b_0011111100_000000,
5606 0b_0111111110_000000,
5607 0b_0110110110_000000,
5608 0b_0111111110_000000,
5609 0b_0110000110_000000,
5610 0b_0111001110_000000,
5611 0b_0011111100_000000,
5612 0b_0001111000_000000,
5613 0b_0000000000_000000,
5614 /* 0x03 */
5615 0b_0000000000_000000,
5616 0b_0011101110_000000,
5617 0b_0111111111_000000,
5618 0b_0111111111_000000,
5619 0b_0111111111_000000,
5620 0b_0011111110_000000,
5621 0b_0001111100_000000,
5622 0b_0000111000_000000,
5623 0b_0000010000_000000,
5624 0b_0000000000_000000,
5625 /* 0x04 */
5626 0b_0000010000_000000,
5627 0b_0000111000_000000,
5628 0b_0001111100_000000,
5629 0b_0011111110_000000,
5630 0b_0111111111_000000,
5631 0b_0011111110_000000,
5632 0b_0001111100_000000,
5633 0b_0000111000_000000,
5634 0b_0000010000_000000,
5635 0b_0000000000_000000,
5636 /* 0x05 */
5637 0b_0000000000_000000,
5638 0b_0000111000_000000,
5639 0b_0001111100_000000,
5640 0b_0000111000_000000,
5641 0b_0011111110_000000,
5642 0b_0111111111_000000,
5643 0b_0011010110_000000,
5644 0b_0000010000_000000,
5645 0b_0000111000_000000,
5646 0b_0000000000_000000,
5647 /* 0x06 */
5648 0b_0000010000_000000,
5649 0b_0000111000_000000,
5650 0b_0001111100_000000,
5651 0b_0011111110_000000,
5652 0b_0111111111_000000,
5653 0b_0111111111_000000,
5654 0b_0011010110_000000,
5655 0b_0000010000_000000,
5656 0b_0000111000_000000,
5657 0b_0000000000_000000,
5658 /* 0x07 */
5659 0b_0000000000_000000,
5660 0b_0000000000_000000,
5661 0b_0000000000_000000,
5662 0b_0000110000_000000,
5663 0b_0001111000_000000,
5664 0b_0001111000_000000,
5665 0b_0000110000_000000,
5666 0b_0000000000_000000,
5667 0b_0000000000_000000,
5668 0b_0000000000_000000,
5669 /* 0x08 */
5670 0b_1111111111_000000,
5671 0b_1111111111_000000,
5672 0b_1111111111_000000,
5673 0b_1111001111_000000,
5674 0b_1110000111_000000,
5675 0b_1110000111_000000,
5676 0b_1111001111_000000,
5677 0b_1111111111_000000,
5678 0b_1111111111_000000,
5679 0b_1111111111_000000,
5680 /* 0x09 */
5681 0b_0000000000_000000,
5682 0b_0000000000_000000,
5683 0b_0001111000_000000,
5684 0b_0011001100_000000,
5685 0b_0010000100_000000,
5686 0b_0010000100_000000,
5687 0b_0011001100_000000,
5688 0b_0001111000_000000,
5689 0b_0000000000_000000,
5690 0b_0000000000_000000,
5691 /* 0x0a */
5692 0b_1111111111_000000,
5693 0b_1111111111_000000,
5694 0b_1110000111_000000,
5695 0b_1100110011_000000,
5696 0b_1101111011_000000,
5697 0b_1101111011_000000,
5698 0b_1100110011_000000,
5699 0b_1110000111_000000,
5700 0b_1111111111_000000,
5701 0b_1111111111_000000,
5702 /* 0x0b */
5703 0b_0000000000_000000,
5704 0b_0000011110_000000,
5705 0b_0000001110_000000,
5706 0b_0000011110_000000,
5707 0b_0011111010_000000,
5708 0b_0110011000_000000,
5709 0b_0110011000_000000,
5710 0b_0110011000_000000,
5711 0b_0011110000_000000,
5712 0b_0000000000_000000,
5713 /* 0x0c */
5714 0b_0000000000_000000,
5715 0b_0001111000_000000,
5716 0b_0011001100_000000,
5717 0b_0011001100_000000,
5718 0b_0011001100_000000,
5719 0b_0001111000_000000,
5720 0b_0000110000_000000,
5721 0b_0011111100_000000,
5722 0b_0000110000_000000,
5723 0b_0000000000_000000,
5724 /* 0x0d */
5725 0b_0000010000_000000,
5726 0b_0000011000_000000,
5727 0b_0000011100_000000,
5728 0b_0000010100_000000,
5729 0b_0000010100_000000,
5730 0b_0000010000_000000,
5731 0b_0001110000_000000,
5732 0b_0011110000_000000,
5733 0b_0001100000_000000,
5734 0b_0000000000_000000,
5735 /* 0x0e */
5736 0b_0000000000_000000,
5737 0b_0001111110_000000,
5738 0b_0001111110_000000,
5739 0b_0001000010_000000,
5740 0b_0001000010_000000,
5741 0b_0001000110_000000,
5742 0b_0011001110_000000,
5743 0b_0111000100_000000,
5744 0b_0010000000_000000,
5745 0b_0000000000_000000,
5746 /* 0x0f */
5747 0b_0000000000_000000,
5748 0b_0000110000_000000,
5749 0b_0110110110_000000,
5750 0b_0001111000_000000,
5751 0b_0111001110_000000,
5752 0b_0111001110_000000,
5753 0b_0001111000_000000,
5754 0b_0110110110_000000,
5755 0b_0000110000_000000,
5756 0b_0000000000_000000,
5757 /* 0x10 */
5758 0b_0001000000_000000,
5759 0b_0001100000_000000,
5760 0b_0001110000_000000,
5761 0b_0001111000_000000,
5762 0b_0001111100_000000,
5763 0b_0001111000_000000,
5764 0b_0001110000_000000,
5765 0b_0001100000_000000,
5766 0b_0001000000_000000,
5767 0b_0000000000_000000,
5768 /* 0x11 */
5769 0b_0000000100_000000,
5770 0b_0000001100_000000,
5771 0b_0000011100_000000,
5772 0b_0000111100_000000,
5773 0b_0001111100_000000,
5774 0b_0000111100_000000,
5775 0b_0000011100_000000,
5776 0b_0000001100_000000,
5777 0b_0000000100_000000,
5778 0b_0000000000_000000,
5779 /* 0x12 */
5780 0b_0000000000_000000,
5781 0b_0000110000_000000,
5782 0b_0001111000_000000,
5783 0b_0011111100_000000,
5784 0b_0000110000_000000,
5785 0b_0000110000_000000,
5786 0b_0011111100_000000,
5787 0b_0001111000_000000,
5788 0b_0000110000_000000,
5789 0b_0000000000_000000,
5790 /* 0x13 */
5791 0b_0000000000_000000,
5792 0b_0011001100_000000,
5793 0b_0011001100_000000,
5794 0b_0011001100_000000,
5795 0b_0011001100_000000,
5796 0b_0011001100_000000,
5797 0b_0000000000_000000,
5798 0b_0011001100_000000,
5799 0b_0000000000_000000,
5800 0b_0000000000_000000,
5801 /* 0x14 */
5802 0b_0000000000_000000,
5803 0b_0011111110_000000,
5804 0b_0110110110_000000,
5805 0b_0110110110_000000,
5806 0b_0011110110_000000,
5807 0b_0000110110_000000,
5808 0b_0000110110_000000,
5809 0b_0000110110_000000,
5810 0b_0000000000_000000,
5811 0b_0000000000_000000,
5812 /* 0x15 */
5813 0b_0000000000_000000,
5814 0b_0001111100_000000,
5815 0b_0011000000_000000,
5816 0b_0001111100_000000,
5817 0b_0011000110_000000,
5818 0b_0001111100_000000,
5819 0b_0000000110_000000,
5820 0b_0001111100_000000,
5821 0b_0000000000_000000,
5822 0b_0000000000_000000,
5823 /* 0x16 */
5824 0b_0000000000_000000,
5825 0b_0000000000_000000,
5826 0b_0000000000_000000,
5827 0b_0000000000_000000,
5828 0b_0000000000_000000,
5829 0b_0111111110_000000,
5830 0b_0111111110_000000,
5831 0b_0111111110_000000,
5832 0b_0000000000_000000,
5833 0b_0000000000_000000,
5834 /* 0x17 */
5835 0b_0000000000_000000,
5836 0b_0000110000_000000,
5837 0b_0001111000_000000,
5838 0b_0011111100_000000,
5839 0b_0000110000_000000,
5840 0b_0000110000_000000,
5841 0b_0011111100_000000,
5842 0b_0001111000_000000,
5843 0b_0000110000_000000,
5844 0b_1111111111_000000,
5845 /* 0x18 */
5846 0b_0000000000_000000,
5847 0b_0000110000_000000,
5848 0b_0001111000_000000,
5849 0b_0011111100_000000,
5850 0b_0000110000_000000,
5851 0b_0000110000_000000,
5852 0b_0000110000_000000,
5853 0b_0000110000_000000,
5854 0b_0000110000_000000,
5855 0b_0000000000_000000,
5856 /* 0x19 */
5857 0b_0000000000_000000,
5858 0b_0000110000_000000,
5859 0b_0000110000_000000,
5860 0b_0000110000_000000,
5861 0b_0000110000_000000,
5862 0b_0000110000_000000,
5863 0b_0011111100_000000,
5864 0b_0001111000_000000,
5865 0b_0000110000_000000,
5866 0b_0000000000_000000,
5867 /* 0x1a */
5868 0b_0000000000_000000,
5869 0b_0000000000_000000,
5870 0b_0000011000_000000,
5871 0b_0000001100_000000,
5872 0b_0111111110_000000,
5873 0b_0000001100_000000,
5874 0b_0000011000_000000,
5875 0b_0000000000_000000,
5876 0b_0000000000_000000,
5877 0b_0000000000_000000,
5878 /* 0x1b */
5879 0b_0000000000_000000,
5880 0b_0000000000_000000,
5881 0b_0001100000_000000,
5882 0b_0011000000_000000,
5883 0b_0111111110_000000,
5884 0b_0011000000_000000,
5885 0b_0001100000_000000,
5886 0b_0000000000_000000,
5887 0b_0000000000_000000,
5888 0b_0000000000_000000,
5889 /* 0x1c */
5890 0b_0000000000_000000,
5891 0b_0000000000_000000,
5892 0b_0000000000_000000,
5893 0b_0000000000_000000,
5894 0b_0110000000_000000,
5895 0b_0110000000_000000,
5896 0b_0110000000_000000,
5897 0b_0111111110_000000,
5898 0b_0000000000_000000,
5899 0b_0000000000_000000,
5900 /* 0x1d */
5901 0b_0000000000_000000,
5902 0b_0000000000_000000,
5903 0b_0001000100_000000,
5904 0b_0011000110_000000,
5905 0b_0111111111_000000,
5906 0b_0011000110_000000,
5907 0b_0001000100_000000,
5908 0b_0000000000_000000,
5909 0b_0000000000_000000,
5910 0b_0000000000_000000,
5911 /* 0x1e */
5912 0b_0000000000_000000,
5913 0b_0000000000_000000,
5914 0b_0000010000_000000,
5915 0b_0000111000_000000,
5916 0b_0001111100_000000,
5917 0b_0011111110_000000,
5918 0b_0111111111_000000,
5919 0b_0000000000_000000,
5920 0b_0000000000_000000,
5921 0b_0000000000_000000,
5922 /* 0x1f */
5923 0b_0000000000_000000,
5924 0b_0000000000_000000,
5925 0b_0111111111_000000,
5926 0b_0011111110_000000,
5927 0b_0001111100_000000,
5928 0b_0000111000_000000,
5929 0b_0000010000_000000,
5930 0b_0000000000_000000,
5931 0b_0000000000_000000,
5932 0b_0000000000_000000,
5933 /* 0x20 */
5934 0b_0000000000_000000,
5935 0b_0000000000_000000,
5936 0b_0000000000_000000,
5937 0b_0000000000_000000,
5938 0b_0000000000_000000,
5939 0b_0000000000_000000,
5940 0b_0000000000_000000,
5941 0b_0000000000_000000,
5942 0b_0000000000_000000,
5943 0b_0000000000_000000,
5944 /* ! */
5945 0b_0000000000_000000,
5946 0b_0000110000_000000,
5947 0b_0001111000_000000,
5948 0b_0001111000_000000,
5949 0b_0000110000_000000,
5950 0b_0000110000_000000,
5951 0b_0000000000_000000,
5952 0b_0000110000_000000,
5953 0b_0000000000_000000,
5954 0b_0000000000_000000,
5955 /* " */
5956 0b_0000000000_000000,
5957 0b_0001101100_000000,
5958 0b_0001101100_000000,
5959 0b_0001101100_000000,
5960 0b_0000000000_000000,
5961 0b_0000000000_000000,
5962 0b_0000000000_000000,
5963 0b_0000000000_000000,
5964 0b_0000000000_000000,
5965 0b_0000000000_000000,
5966 /* # */
5967 0b_0000000000_000000,
5968 0b_0001101100_000000,
5969 0b_0001101100_000000,
5970 0b_0111111111_000000,
5971 0b_0001101100_000000,
5972 0b_0111111111_000000,
5973 0b_0001101100_000000,
5974 0b_0001101100_000000,
5975 0b_0000000000_000000,
5976 0b_0000000000_000000,
5977 /* $ */
5978 0b_0000010000_000000,
5979 0b_0001111100_000000,
5980 0b_0011010110_000000,
5981 0b_0011010000_000000,
5982 0b_0001111100_000000,
5983 0b_0000010110_000000,
5984 0b_0011010110_000000,
5985 0b_0001111100_000000,
5986 0b_0000010000_000000,
5987 0b_0000000000_000000,
5988 /* % */
5989 0b_0000000000_000000,
5990 0b_0011000110_000000,
5991 0b_0011001100_000000,
5992 0b_0000011000_000000,
5993 0b_0000110000_000000,
5994 0b_0001100110_000000,
5995 0b_0011000110_000000,
5996 0b_0000000000_000000,
5997 0b_0000000000_000000,
5998 0b_0000000000_000000,
5999 /* & */
6000 0b_0000000000_000000,
6001 0b_0001110000_000000,
6002 0b_0011001100_000000,
6003 0b_0011001100_000000,
6004 0b_0001111110_000000,
6005 0b_0011001100_000000,
6006 0b_0011001100_000000,
6007 0b_0001110110_000000,
6008 0b_0000000000_000000,
6009 0b_0000000000_000000,
6010 /* ' */
6011 0b_0000000000_000000,
6012 0b_0000111000_000000,
6013 0b_0000110000_000000,
6014 0b_0001100000_000000,
6015 0b_0000000000_000000,
6016 0b_0000000000_000000,
6017 0b_0000000000_000000,
6018 0b_0000000000_000000,
6019 0b_0000000000_000000,
6020 0b_0000000000_000000,
6021 /* ( */
6022 0b_0000000000_000000,
6023 0b_0000011000_000000,
6024 0b_0000110000_000000,
6025 0b_0001100000_000000,
6026 0b_0001100000_000000,
6027 0b_0001100000_000000,
6028 0b_0000110000_000000,
6029 0b_0000011000_000000,
6030 0b_0000000000_000000,
6031 0b_0000000000_000000,
6032 /* ) */
6033 0b_0000000000_000000,
6034 0b_0001100000_000000,
6035 0b_0000110000_000000,
6036 0b_0000011000_000000,
6037 0b_0000011000_000000,
6038 0b_0000011000_000000,
6039 0b_0000110000_000000,
6040 0b_0001100000_000000,
6041 0b_0000000000_000000,
6042 0b_0000000000_000000,
6043 /* * */
6044 0b_0000000000_000000,
6045 0b_0000000000_000000,
6046 0b_0011001100_000000,
6047 0b_0001111000_000000,
6048 0b_0111111110_000000,
6049 0b_0001111000_000000,
6050 0b_0011001100_000000,
6051 0b_0000000000_000000,
6052 0b_0000000000_000000,
6053 0b_0000000000_000000,
6054 /* + */
6055 0b_0000000000_000000,
6056 0b_0000000000_000000,
6057 0b_0000110000_000000,
6058 0b_0000110000_000000,
6059 0b_0011111100_000000,
6060 0b_0000110000_000000,
6061 0b_0000110000_000000,
6062 0b_0000000000_000000,
6063 0b_0000000000_000000,
6064 0b_0000000000_000000,
6065 /* , */
6066 0b_0000000000_000000,
6067 0b_0000000000_000000,
6068 0b_0000000000_000000,
6069 0b_0000000000_000000,
6070 0b_0000000000_000000,
6071 0b_0000000000_000000,
6072 0b_0000110000_000000,
6073 0b_0000110000_000000,
6074 0b_0001100000_000000,
6075 0b_0000000000_000000,
6076 /* - */
6077 0b_0000000000_000000,
6078 0b_0000000000_000000,
6079 0b_0000000000_000000,
6080 0b_0000000000_000000,
6081 0b_0011111100_000000,
6082 0b_0000000000_000000,
6083 0b_0000000000_000000,
6084 0b_0000000000_000000,
6085 0b_0000000000_000000,
6086 0b_0000000000_000000,
6087 /* . */
6088 0b_0000000000_000000,
6089 0b_0000000000_000000,
6090 0b_0000000000_000000,
6091 0b_0000000000_000000,
6092 0b_0000000000_000000,
6093 0b_0000000000_000000,
6094 0b_0000110000_000000,
6095 0b_0000110000_000000,
6096 0b_0000000000_000000,
6097 0b_0000000000_000000,
6098 /* / */
6099 0b_0000000000_000000,
6100 0b_0000000110_000000,
6101 0b_0000001100_000000,
6102 0b_0000011000_000000,
6103 0b_0000110000_000000,
6104 0b_0001100000_000000,
6105 0b_0011000000_000000,
6106 0b_0110000000_000000,
6107 0b_0000000000_000000,
6108 0b_0000000000_000000,
6109 /* 0 */
6110 0b_0000000000_000000,
6111 0b_0001111100_000000,
6112 0b_0011001110_000000,
6113 0b_0011011110_000000,
6114 0b_0011111110_000000,
6115 0b_0011110110_000000,
6116 0b_0011100110_000000,
6117 0b_0001111100_000000,
6118 0b_0000000000_000000,
6119 0b_0000000000_000000,
6120 /* 1 */
6121 0b_0000000000_000000,
6122 0b_0000110000_000000,
6123 0b_0001110000_000000,
6124 0b_0000110000_000000,
6125 0b_0000110000_000000,
6126 0b_0000110000_000000,
6127 0b_0000110000_000000,
6128 0b_0011111100_000000,
6129 0b_0000000000_000000,
6130 0b_0000000000_000000,
6131 /* 2 */
6132 0b_0000000000_000000,
6133 0b_0001111100_000000,
6134 0b_0011000110_000000,
6135 0b_0000000110_000000,
6136 0b_0000111100_000000,
6137 0b_0001100000_000000,
6138 0b_0011000110_000000,
6139 0b_0011111110_000000,
6140 0b_0000000000_000000,
6141 0b_0000000000_000000,
6142 /* 3 */
6143 0b_0000000000_000000,
6144 0b_0001111100_000000,
6145 0b_0011000110_000000,
6146 0b_0000000110_000000,
6147 0b_0000011100_000000,
6148 0b_0000000110_000000,
6149 0b_0011000110_000000,
6150 0b_0001111100_000000,
6151 0b_0000000000_000000,
6152 0b_0000000000_000000,
6153 /* 4 */
6154 0b_0000000000_000000,
6155 0b_0000011100_000000,
6156 0b_0000111100_000000,
6157 0b_0001101100_000000,
6158 0b_0011001100_000000,
6159 0b_0011111110_000000,
6160 0b_0000001100_000000,
6161 0b_0000011110_000000,
6162 0b_0000000000_000000,
6163 0b_0000000000_000000,
6164 /* 5 */
6165 0b_0000000000_000000,
6166 0b_0011111110_000000,
6167 0b_0011000000_000000,
6168 0b_0011000000_000000,
6169 0b_0011111100_000000,
6170 0b_0000000110_000000,
6171 0b_0011000110_000000,
6172 0b_0001111100_000000,
6173 0b_0000000000_000000,
6174 0b_0000000000_000000,
6175 /* 6 */
6176 0b_0000000000_000000,
6177 0b_0000111100_000000,
6178 0b_0001100000_000000,
6179 0b_0011000000_000000,
6180 0b_0011111100_000000,
6181 0b_0011000110_000000,
6182 0b_0011000110_000000,
6183 0b_0001111100_000000,
6184 0b_0000000000_000000,
6185 0b_0000000000_000000,
6186 /* 7 */
6187 0b_0000000000_000000,
6188 0b_0011111110_000000,
6189 0b_0011000110_000000,
6190 0b_0000000110_000000,
6191 0b_0000001100_000000,
6192 0b_0000011000_000000,
6193 0b_0000110000_000000,
6194 0b_0000110000_000000,
6195 0b_0000000000_000000,
6196 0b_0000000000_000000,
6197 /* 8 */
6198 0b_0000000000_000000,
6199 0b_0001111100_000000,
6200 0b_0011000110_000000,
6201 0b_0011000110_000000,
6202 0b_0001111100_000000,
6203 0b_0011000110_000000,
6204 0b_0011000110_000000,
6205 0b_0001111100_000000,
6206 0b_0000000000_000000,
6207 0b_0000000000_000000,
6208 /* 9 */
6209 0b_0000000000_000000,
6210 0b_0001111100_000000,
6211 0b_0011000110_000000,
6212 0b_0011000110_000000,
6213 0b_0001111110_000000,
6214 0b_0000000110_000000,
6215 0b_0000001100_000000,
6216 0b_0001111000_000000,
6217 0b_0000000000_000000,
6218 0b_0000000000_000000,
6219 /* : */
6220 0b_0000000000_000000,
6221 0b_0000000000_000000,
6222 0b_0000110000_000000,
6223 0b_0000110000_000000,
6224 0b_0000000000_000000,
6225 0b_0000000000_000000,
6226 0b_0000110000_000000,
6227 0b_0000110000_000000,
6228 0b_0000000000_000000,
6229 0b_0000000000_000000,
6230 /* ; */
6231 0b_0000000000_000000,
6232 0b_0000000000_000000,
6233 0b_0000110000_000000,
6234 0b_0000110000_000000,
6235 0b_0000000000_000000,
6236 0b_0000000000_000000,
6237 0b_0000110000_000000,
6238 0b_0000110000_000000,
6239 0b_0001100000_000000,
6240 0b_0000000000_000000,
6241 /* < */
6242 0b_0000000000_000000,
6243 0b_0000001100_000000,
6244 0b_0000011000_000000,
6245 0b_0000110000_000000,
6246 0b_0001100000_000000,
6247 0b_0000110000_000000,
6248 0b_0000011000_000000,
6249 0b_0000001100_000000,
6250 0b_0000000000_000000,
6251 0b_0000000000_000000,
6252 /* = */
6253 0b_0000000000_000000,
6254 0b_0000000000_000000,
6255 0b_0000000000_000000,
6256 0b_0011111100_000000,
6257 0b_0000000000_000000,
6258 0b_0011111100_000000,
6259 0b_0000000000_000000,
6260 0b_0000000000_000000,
6261 0b_0000000000_000000,
6262 0b_0000000000_000000,
6263 /* > */
6264 0b_0000000000_000000,
6265 0b_0001100000_000000,
6266 0b_0000110000_000000,
6267 0b_0000011000_000000,
6268 0b_0000001100_000000,
6269 0b_0000011000_000000,
6270 0b_0000110000_000000,
6271 0b_0001100000_000000,
6272 0b_0000000000_000000,
6273 0b_0000000000_000000,
6274 /* ? */
6275 0b_0000000000_000000,
6276 0b_0001111000_000000,
6277 0b_0011001100_000000,
6278 0b_0000001100_000000,
6279 0b_0000001100_000000,
6280 0b_0000011000_000000,
6281 0b_0000110000_000000,
6282 0b_0000000000_000000,
6283 0b_0000110000_000000,
6284 0b_0000000000_000000,
6285 /* @ */
6286 0b_0000000000_000000,
6287 0b_0011111100_000000,
6288 0b_0110000110_000000,
6289 0b_0110011110_000000,
6290 0b_0110110110_000000,
6291 0b_0110011110_000000,
6292 0b_0110000000_000000,
6293 0b_0011111100_000000,
6294 0b_0000000000_000000,
6295 0b_0000000000_000000,
6296 /* A */
6297 0b_0000000000_000000,
6298 0b_0001111100_000000,
6299 0b_0011000110_000000,
6300 0b_0011000110_000000,
6301 0b_0011111110_000000,
6302 0b_0011000110_000000,
6303 0b_0011000110_000000,
6304 0b_0011000110_000000,
6305 0b_0000000000_000000,
6306 0b_0000000000_000000,
6307 /* B */
6308 0b_0000000000_000000,
6309 0b_0011111100_000000,
6310 0b_0011000110_000000,
6311 0b_0011000110_000000,
6312 0b_0011111100_000000,
6313 0b_0011000110_000000,
6314 0b_0011000110_000000,
6315 0b_0011111100_000000,
6316 0b_0000000000_000000,
6317 0b_0000000000_000000,
6318 /* C */
6319 0b_0000000000_000000,
6320 0b_0001111100_000000,
6321 0b_0011000110_000000,
6322 0b_0011000000_000000,
6323 0b_0011000000_000000,
6324 0b_0011000000_000000,
6325 0b_0011000110_000000,
6326 0b_0001111100_000000,
6327 0b_0000000000_000000,
6328 0b_0000000000_000000,
6329 /* D */
6330 0b_0000000000_000000,
6331 0b_0011111000_000000,
6332 0b_0011001100_000000,
6333 0b_0011000110_000000,
6334 0b_0011000110_000000,
6335 0b_0011000110_000000,
6336 0b_0011001100_000000,
6337 0b_0011111000_000000,
6338 0b_0000000000_000000,
6339 0b_0000000000_000000,
6340 /* E */
6341 0b_0000000000_000000,
6342 0b_0011111110_000000,
6343 0b_0011000000_000000,
6344 0b_0011000000_000000,
6345 0b_0011111100_000000,
6346 0b_0011000000_000000,
6347 0b_0011000000_000000,
6348 0b_0011111110_000000,
6349 0b_0000000000_000000,
6350 0b_0000000000_000000,
6351 /* F */
6352 0b_0000000000_000000,
6353 0b_0011111110_000000,
6354 0b_0011000000_000000,
6355 0b_0011000000_000000,
6356 0b_0011111100_000000,
6357 0b_0011000000_000000,
6358 0b_0011000000_000000,
6359 0b_0011000000_000000,
6360 0b_0000000000_000000,
6361 0b_0000000000_000000,
6362 /* G */
6363 0b_0000000000_000000,
6364 0b_0001111100_000000,
6365 0b_0011000110_000000,
6366 0b_0011000000_000000,
6367 0b_0011001110_000000,
6368 0b_0011000110_000000,
6369 0b_0011000110_000000,
6370 0b_0001111100_000000,
6371 0b_0000000000_000000,
6372 0b_0000000000_000000,
6373 /* H */
6374 0b_0000000000_000000,
6375 0b_0011000110_000000,
6376 0b_0011000110_000000,
6377 0b_0011000110_000000,
6378 0b_0011111110_000000,
6379 0b_0011000110_000000,
6380 0b_0011000110_000000,
6381 0b_0011000110_000000,
6382 0b_0000000000_000000,
6383 0b_0000000000_000000,
6384 /* I */
6385 0b_0000000000_000000,
6386 0b_0001111000_000000,
6387 0b_0000110000_000000,
6388 0b_0000110000_000000,
6389 0b_0000110000_000000,
6390 0b_0000110000_000000,
6391 0b_0000110000_000000,
6392 0b_0001111000_000000,
6393 0b_0000000000_000000,
6394 0b_0000000000_000000,
6395 /* J */
6396 0b_0000000000_000000,
6397 0b_0000011100_000000,
6398 0b_0000001100_000000,
6399 0b_0000001100_000000,
6400 0b_0000001100_000000,
6401 0b_0011001100_000000,
6402 0b_0011001100_000000,
6403 0b_0001111000_000000,
6404 0b_0000000000_000000,
6405 0b_0000000000_000000,
6406 /* K */
6407 0b_0000000000_000000,
6408 0b_0011000110_000000,
6409 0b_0011000110_000000,
6410 0b_0011001100_000000,
6411 0b_0011111000_000000,
6412 0b_0011001100_000000,
6413 0b_0011000110_000000,
6414 0b_0011000110_000000,
6415 0b_0000000000_000000,
6416 0b_0000000000_000000,
6417 /* L */
6418 0b_0000000000_000000,
6419 0b_0011000000_000000,
6420 0b_0011000000_000000,
6421 0b_0011000000_000000,
6422 0b_0011000000_000000,
6423 0b_0011000000_000000,
6424 0b_0011000000_000000,
6425 0b_0011111110_000000,
6426 0b_0000000000_000000,
6427 0b_0000000000_000000,
6428 /* M */
6429 0b_0000000000_000000,
6430 0b_0110000110_000000,
6431 0b_0111001110_000000,
6432 0b_0111111110_000000,
6433 0b_0110110110_000000,
6434 0b_0110000110_000000,
6435 0b_0110000110_000000,
6436 0b_0110000110_000000,
6437 0b_0000000000_000000,
6438 0b_0000000000_000000,
6439 /* N */
6440 0b_0000000000_000000,
6441 0b_0011000110_000000,
6442 0b_0011100110_000000,
6443 0b_0011110110_000000,
6444 0b_0011011110_000000,
6445 0b_0011001110_000000,
6446 0b_0011000110_000000,
6447 0b_0011000110_000000,
6448 0b_0000000000_000000,
6449 0b_0000000000_000000,
6450 /* O */
6451 0b_0000000000_000000,
6452 0b_0001111100_000000,
6453 0b_0011000110_000000,
6454 0b_0011000110_000000,
6455 0b_0011000110_000000,
6456 0b_0011000110_000000,
6457 0b_0011000110_000000,
6458 0b_0001111100_000000,
6459 0b_0000000000_000000,
6460 0b_0000000000_000000,
6461 /* P */
6462 0b_0000000000_000000,
6463 0b_0011111100_000000,
6464 0b_0011000110_000000,
6465 0b_0011000110_000000,
6466 0b_0011111100_000000,
6467 0b_0011000000_000000,
6468 0b_0011000000_000000,
6469 0b_0011000000_000000,
6470 0b_0000000000_000000,
6471 0b_0000000000_000000,
6472 /* Q */
6473 0b_0000000000_000000,
6474 0b_0001111100_000000,
6475 0b_0011000110_000000,
6476 0b_0011000110_000000,
6477 0b_0011000110_000000,
6478 0b_0011000110_000000,
6479 0b_0011001110_000000,
6480 0b_0001111100_000000,
6481 0b_0000001110_000000,
6482 0b_0000000000_000000,
6483 /* R */
6484 0b_0000000000_000000,
6485 0b_0011111100_000000,
6486 0b_0011000110_000000,
6487 0b_0011000110_000000,
6488 0b_0011111100_000000,
6489 0b_0011001100_000000,
6490 0b_0011000110_000000,
6491 0b_0011000110_000000,
6492 0b_0000000000_000000,
6493 0b_0000000000_000000,
6494 /* S */
6495 0b_0000000000_000000,
6496 0b_0001111100_000000,
6497 0b_0011000110_000000,
6498 0b_0011000000_000000,
6499 0b_0001111100_000000,
6500 0b_0000000110_000000,
6501 0b_0011000110_000000,
6502 0b_0001111100_000000,
6503 0b_0000000000_000000,
6504 0b_0000000000_000000,
6505 /* T */
6506 0b_0000000000_000000,
6507 0b_0111111110_000000,
6508 0b_0000110000_000000,
6509 0b_0000110000_000000,
6510 0b_0000110000_000000,
6511 0b_0000110000_000000,
6512 0b_0000110000_000000,
6513 0b_0000110000_000000,
6514 0b_0000000000_000000,
6515 0b_0000000000_000000,
6516 /* U */
6517 0b_0000000000_000000,
6518 0b_0011000110_000000,
6519 0b_0011000110_000000,
6520 0b_0011000110_000000,
6521 0b_0011000110_000000,
6522 0b_0011000110_000000,
6523 0b_0011000110_000000,
6524 0b_0001111100_000000,
6525 0b_0000000000_000000,
6526 0b_0000000000_000000,
6527 /* V */
6528 0b_0000000000_000000,
6529 0b_0011000110_000000,
6530 0b_0011000110_000000,
6531 0b_0011000110_000000,
6532 0b_0011000110_000000,
6533 0b_0001101100_000000,
6534 0b_0000111000_000000,
6535 0b_0000010000_000000,
6536 0b_0000000000_000000,
6537 0b_0000000000_000000,
6538 /* W */
6539 0b_0000000000_000000,
6540 0b_0110000110_000000,
6541 0b_0110000110_000000,
6542 0b_0110000110_000000,
6543 0b_0110110110_000000,
6544 0b_0111111110_000000,
6545 0b_0111001110_000000,
6546 0b_0110000110_000000,
6547 0b_0000000000_000000,
6548 0b_0000000000_000000,
6549 /* X */
6550 0b_0000000000_000000,
6551 0b_0110000110_000000,
6552 0b_0011001100_000000,
6553 0b_0001111000_000000,
6554 0b_0000110000_000000,
6555 0b_0001111000_000000,
6556 0b_0011001100_000000,
6557 0b_0110000110_000000,
6558 0b_0000000000_000000,
6559 0b_0000000000_000000,
6560 /* Y */
6561 0b_0000000000_000000,
6562 0b_0110000110_000000,
6563 0b_0110000110_000000,
6564 0b_0011001100_000000,
6565 0b_0001111000_000000,
6566 0b_0000110000_000000,
6567 0b_0000110000_000000,
6568 0b_0000110000_000000,
6569 0b_0000000000_000000,
6570 0b_0000000000_000000,
6571 /* Z */
6572 0b_0000000000_000000,
6573 0b_0011111110_000000,
6574 0b_0000001100_000000,
6575 0b_0000011000_000000,
6576 0b_0000110000_000000,
6577 0b_0001100000_000000,
6578 0b_0011000000_000000,
6579 0b_0011111110_000000,
6580 0b_0000000000_000000,
6581 0b_0000000000_000000,
6582 /* [ */
6583 0b_0000000000_000000,
6584 0b_0001111000_000000,
6585 0b_0001100000_000000,
6586 0b_0001100000_000000,
6587 0b_0001100000_000000,
6588 0b_0001100000_000000,
6589 0b_0001100000_000000,
6590 0b_0001111000_000000,
6591 0b_0000000000_000000,
6592 0b_0000000000_000000,
6593 /* \ */
6594 0b_0000000000_000000,
6595 0b_0110000000_000000,
6596 0b_0011000000_000000,
6597 0b_0001100000_000000,
6598 0b_0000110000_000000,
6599 0b_0000011000_000000,
6600 0b_0000001100_000000,
6601 0b_0000000000_000000,
6602 0b_0000000000_000000,
6603 0b_0000000000_000000,
6604 /* ] */
6605 0b_0000000000_000000,
6606 0b_0001111000_000000,
6607 0b_0000011000_000000,
6608 0b_0000011000_000000,
6609 0b_0000011000_000000,
6610 0b_0000011000_000000,
6611 0b_0000011000_000000,
6612 0b_0001111000_000000,
6613 0b_0000000000_000000,
6614 0b_0000000000_000000,
6615 /* ^ */
6616 0b_0000000000_000000,
6617 0b_0000010000_000000,
6618 0b_0000111000_000000,
6619 0b_0001101100_000000,
6620 0b_0011000110_000000,
6621 0b_0000000000_000000,
6622 0b_0000000000_000000,
6623 0b_0000000000_000000,
6624 0b_0000000000_000000,
6625 0b_0000000000_000000,
6626 /* _ */
6627 0b_0000000000_000000,
6628 0b_0000000000_000000,
6629 0b_0000000000_000000,
6630 0b_0000000000_000000,
6631 0b_0000000000_000000,
6632 0b_0000000000_000000,
6633 0b_0000000000_000000,
6634 0b_0000000000_000000,
6635 0b_1111111111_000000,
6636 0b_0000000000_000000,
6637 /* ` */
6638 0b_0000000000_000000,
6639 0b_0001110000_000000,
6640 0b_0000110000_000000,
6641 0b_0000011000_000000,
6642 0b_0000000000_000000,
6643 0b_0000000000_000000,
6644 0b_0000000000_000000,
6645 0b_0000000000_000000,
6646 0b_0000000000_000000,
6647 0b_0000000000_000000,
6648 /* a */
6649 0b_0000000000_000000,
6650 0b_0000000000_000000,
6651 0b_0000000000_000000,
6652 0b_0001111100_000000,
6653 0b_0000000110_000000,
6654 0b_0001111110_000000,
6655 0b_0011000110_000000,
6656 0b_0001111110_000000,
6657 0b_0000000000_000000,
6658 0b_0000000000_000000,
6659 /* b */
6660 0b_0000000000_000000,
6661 0b_0011000000_000000,
6662 0b_0011000000_000000,
6663 0b_0011111100_000000,
6664 0b_0011000110_000000,
6665 0b_0011000110_000000,
6666 0b_0011000110_000000,
6667 0b_0011111100_000000,
6668 0b_0000000000_000000,
6669 0b_0000000000_000000,
6670 /* c */
6671 0b_0000000000_000000,
6672 0b_0000000000_000000,
6673 0b_0000000000_000000,
6674 0b_0001111100_000000,
6675 0b_0011000110_000000,
6676 0b_0011000000_000000,
6677 0b_0011000110_000000,
6678 0b_0001111100_000000,
6679 0b_0000000000_000000,
6680 0b_0000000000_000000,
6681 /* d */
6682 0b_0000000000_000000,
6683 0b_0000000110_000000,
6684 0b_0000000110_000000,
6685 0b_0001111110_000000,
6686 0b_0011000110_000000,
6687 0b_0011000110_000000,
6688 0b_0011000110_000000,
6689 0b_0001111110_000000,
6690 0b_0000000000_000000,
6691 0b_0000000000_000000,
6692 /* e */
6693 0b_0000000000_000000,
6694 0b_0000000000_000000,
6695 0b_0000000000_000000,
6696 0b_0001111100_000000,
6697 0b_0011000110_000000,
6698 0b_0011111110_000000,
6699 0b_0011000000_000000,
6700 0b_0001111100_000000,
6701 0b_0000000000_000000,
6702 0b_0000000000_000000,
6703 /* f */
6704 0b_0000000000_000000,
6705 0b_0000111100_000000,
6706 0b_0001100000_000000,
6707 0b_0001100000_000000,
6708 0b_0011111000_000000,
6709 0b_0001100000_000000,
6710 0b_0001100000_000000,
6711 0b_0001100000_000000,
6712 0b_0000000000_000000,
6713 0b_0000000000_000000,
6714 /* g */
6715 0b_0000000000_000000,
6716 0b_0000000000_000000,
6717 0b_0000000000_000000,
6718 0b_0001111110_000000,
6719 0b_0011000110_000000,
6720 0b_0011000110_000000,
6721 0b_0011000110_000000,
6722 0b_0001111110_000000,
6723 0b_0000000110_000000,
6724 0b_0001111100_000000,
6725 /* h */
6726 0b_0000000000_000000,
6727 0b_0011000000_000000,
6728 0b_0011000000_000000,
6729 0b_0011111100_000000,
6730 0b_0011000110_000000,
6731 0b_0011000110_000000,
6732 0b_0011000110_000000,
6733 0b_0011000110_000000,
6734 0b_0000000000_000000,
6735 0b_0000000000_000000,
6736 /* i */
6737 0b_0000000000_000000,
6738 0b_0000110000_000000,
6739 0b_0000000000_000000,
6740 0b_0001110000_000000,
6741 0b_0000110000_000000,
6742 0b_0000110000_000000,
6743 0b_0000110000_000000,
6744 0b_0001111000_000000,
6745 0b_0000000000_000000,
6746 0b_0000000000_000000,
6747 /* j */
6748 0b_0000000000_000000,
6749 0b_0000011000_000000,
6750 0b_0000000000_000000,
6751 0b_0000111000_000000,
6752 0b_0000011000_000000,
6753 0b_0000011000_000000,
6754 0b_0000011000_000000,
6755 0b_0000011000_000000,
6756 0b_0000011000_000000,
6757 0b_0001110000_000000,
6758 /* k */
6759 0b_0000000000_000000,
6760 0b_0011000000_000000,
6761 0b_0011000000_000000,
6762 0b_0011000110_000000,
6763 0b_0011001100_000000,
6764 0b_0011111000_000000,
6765 0b_0011001100_000000,
6766 0b_0011000110_000000,
6767 0b_0000000000_000000,
6768 0b_0000000000_000000,
6769 /* l */
6770 0b_0000000000_000000,
6771 0b_0001110000_000000,
6772 0b_0000110000_000000,
6773 0b_0000110000_000000,
6774 0b_0000110000_000000,
6775 0b_0000110000_000000,
6776 0b_0000110000_000000,
6777 0b_0000011100_000000,
6778 0b_0000000000_000000,
6779 0b_0000000000_000000,
6780 /* m */
6781 0b_0000000000_000000,
6782 0b_0000000000_000000,
6783 0b_0000000000_000000,
6784 0b_0011001100_000000,
6785 0b_0111111110_000000,
6786 0b_0110110110_000000,
6787 0b_0110110110_000000,
6788 0b_0110000110_000000,
6789 0b_0000000000_000000,
6790 0b_0000000000_000000,
6791 /* n */
6792 0b_0000000000_000000,
6793 0b_0000000000_000000,
6794 0b_0000000000_000000,
6795 0b_0011111100_000000,
6796 0b_0011000110_000000,
6797 0b_0011000110_000000,
6798 0b_0011000110_000000,
6799 0b_0011000110_000000,
6800 0b_0000000000_000000,
6801 0b_0000000000_000000,
6802 /* o */
6803 0b_0000000000_000000,
6804 0b_0000000000_000000,
6805 0b_0000000000_000000,
6806 0b_0001111100_000000,
6807 0b_0011000110_000000,
6808 0b_0011000110_000000,
6809 0b_0011000110_000000,
6810 0b_0001111100_000000,
6811 0b_0000000000_000000,
6812 0b_0000000000_000000,
6813 /* p */
6814 0b_0000000000_000000,
6815 0b_0000000000_000000,
6816 0b_0000000000_000000,
6817 0b_0011111100_000000,
6818 0b_0011000110_000000,
6819 0b_0011000110_000000,
6820 0b_0011111100_000000,
6821 0b_0011000000_000000,
6822 0b_0011000000_000000,
6823 0b_0000000000_000000,
6824 /* q */
6825 0b_0000000000_000000,
6826 0b_0000000000_000000,
6827 0b_0000000000_000000,
6828 0b_0001111110_000000,
6829 0b_0011000110_000000,
6830 0b_0011000110_000000,
6831 0b_0001111110_000000,
6832 0b_0000000110_000000,
6833 0b_0000000111_000000,
6834 0b_0000000000_000000,
6835 /* r */
6836 0b_0000000000_000000,
6837 0b_0000000000_000000,
6838 0b_0000000000_000000,
6839 0b_0011111100_000000,
6840 0b_0011000110_000000,
6841 0b_0011000000_000000,
6842 0b_0011000000_000000,
6843 0b_0011000000_000000,
6844 0b_0000000000_000000,
6845 0b_0000000000_000000,
6846 /* s */
6847 0b_0000000000_000000,
6848 0b_0000000000_000000,
6849 0b_0000000000_000000,
6850 0b_0001111110_000000,
6851 0b_0011000000_000000,
6852 0b_0001111100_000000,
6853 0b_0000000110_000000,
6854 0b_0011111100_000000,
6855 0b_0000000000_000000,
6856 0b_0000000000_000000,
6857 /* t */
6858 0b_0000000000_000000,
6859 0b_0001100000_000000,
6860 0b_0001100000_000000,
6861 0b_0011111000_000000,
6862 0b_0001100000_000000,
6863 0b_0001100000_000000,
6864 0b_0001100000_000000,
6865 0b_0000111100_000000,
6866 0b_0000000000_000000,
6867 0b_0000000000_000000,
6868 /* u */
6869 0b_0000000000_000000,
6870 0b_0000000000_000000,
6871 0b_0000000000_000000,
6872 0b_0011000110_000000,
6873 0b_0011000110_000000,
6874 0b_0011000110_000000,
6875 0b_0011000110_000000,
6876 0b_0001111110_000000,
6877 0b_0000000000_000000,
6878 0b_0000000000_000000,
6879 /* v */
6880 0b_0000000000_000000,
6881 0b_0000000000_000000,
6882 0b_0000000000_000000,
6883 0b_0011000110_000000,
6884 0b_0011000110_000000,
6885 0b_0001101100_000000,
6886 0b_0000111000_000000,
6887 0b_0000010000_000000,
6888 0b_0000000000_000000,
6889 0b_0000000000_000000,
6890 /* w */
6891 0b_0000000000_000000,
6892 0b_0000000000_000000,
6893 0b_0000000000_000000,
6894 0b_0110000110_000000,
6895 0b_0110110110_000000,
6896 0b_0110110110_000000,
6897 0b_0111111110_000000,
6898 0b_0011001100_000000,
6899 0b_0000000000_000000,
6900 0b_0000000000_000000,
6901 /* x */
6902 0b_0000000000_000000,
6903 0b_0000000000_000000,
6904 0b_0000000000_000000,
6905 0b_0011000110_000000,
6906 0b_0001101100_000000,
6907 0b_0000111000_000000,
6908 0b_0001101100_000000,
6909 0b_0011000110_000000,
6910 0b_0000000000_000000,
6911 0b_0000000000_000000,
6912 /* y */
6913 0b_0000000000_000000,
6914 0b_0000000000_000000,
6915 0b_0000000000_000000,
6916 0b_0011000110_000000,
6917 0b_0011000110_000000,
6918 0b_0011000110_000000,
6919 0b_0001111110_000000,
6920 0b_0000000110_000000,
6921 0b_0001111100_000000,
6922 0b_0000000000_000000,
6923 /* z */
6924 0b_0000000000_000000,
6925 0b_0000000000_000000,
6926 0b_0000000000_000000,
6927 0b_0011111100_000000,
6928 0b_0000011000_000000,
6929 0b_0000110000_000000,
6930 0b_0001100000_000000,
6931 0b_0011111100_000000,
6932 0b_0000000000_000000,
6933 0b_0000000000_000000,
6934 /* { */
6935 0b_0000000000_000000,
6936 0b_0000111000_000000,
6937 0b_0001100000_000000,
6938 0b_0001100000_000000,
6939 0b_0011000000_000000,
6940 0b_0001100000_000000,
6941 0b_0001100000_000000,
6942 0b_0000111000_000000,
6943 0b_0000000000_000000,
6944 0b_0000000000_000000,
6945 /* | */
6946 0b_0000110000_000000,
6947 0b_0000110000_000000,
6948 0b_0000110000_000000,
6949 0b_0000110000_000000,
6950 0b_0000000000_000000,
6951 0b_0000110000_000000,
6952 0b_0000110000_000000,
6953 0b_0000110000_000000,
6954 0b_0000110000_000000,
6955 0b_0000000000_000000,
6956 /* } */
6957 0b_0000000000_000000,
6958 0b_0001110000_000000,
6959 0b_0000011000_000000,
6960 0b_0000011000_000000,
6961 0b_0000001100_000000,
6962 0b_0000011000_000000,
6963 0b_0000011000_000000,
6964 0b_0001110000_000000,
6965 0b_0000000000_000000,
6966 0b_0000000000_000000,
6967 /* ~ */
6968 0b_0000000000_000000,
6969 0b_0000000000_000000,
6970 0b_0000000000_000000,
6971 0b_0011100000_000000,
6972 0b_0110110110_000000,
6973 0b_0000011100_000000,
6974 0b_0000000000_000000,
6975 0b_0000000000_000000,
6976 0b_0000000000_000000,
6977 0b_0000000000_000000,
6978 /* 0x7f */
6979 0b_0000000000_000000,
6980 0b_0000010000_000000,
6981 0b_0000111000_000000,
6982 0b_0001101100_000000,
6983 0b_0011000110_000000,
6984 0b_0011000110_000000,
6985 0b_0011000110_000000,
6986 0b_0011111110_000000,
6987 0b_0000000000_000000,
6988 0b_0000000000_000000,
6989 /* 0x80 */
6990 0b_0000000000_000000,
6991 0b_0001111100_000000,
6992 0b_0011000110_000000,
6993 0b_0011000000_000000,
6994 0b_0011000000_000000,
6995 0b_0011000000_000000,
6996 0b_0011000110_000000,
6997 0b_0001111100_000000,
6998 0b_0000110000_000000,
6999 0b_0001100000_000000,
7000 /* 0x81 */
7001 0b_0000000000_000000,
7002 0b_0001101100_000000,
7003 0b_0000000000_000000,
7004 0b_0011000110_000000,
7005 0b_0011000110_000000,
7006 0b_0011000110_000000,
7007 0b_0011000110_000000,
7008 0b_0001111110_000000,
7009 0b_0000000000_000000,
7010 0b_0000000000_000000,
7011 /* 0x82 */
7012 0b_0000011000_000000,
7013 0b_0000110000_000000,
7014 0b_0000000000_000000,
7015 0b_0001111100_000000,
7016 0b_0011000110_000000,
7017 0b_0011111110_000000,
7018 0b_0011000000_000000,
7019 0b_0001111100_000000,
7020 0b_0000000000_000000,
7021 0b_0000000000_000000,
7022 /* 0x83 */
7023 0b_0000111000_000000,
7024 0b_0001101100_000000,
7025 0b_0000000000_000000,
7026 0b_0001111100_000000,
7027 0b_0000000110_000000,
7028 0b_0001111110_000000,
7029 0b_0011000110_000000,
7030 0b_0001111110_000000,
7031 0b_0000000000_000000,
7032 0b_0000000000_000000,
7033 /* 0x84 */
7034 0b_0000000000_000000,
7035 0b_0001101100_000000,
7036 0b_0000000000_000000,
7037 0b_0001111100_000000,
7038 0b_0000000110_000000,
7039 0b_0001111110_000000,
7040 0b_0011000110_000000,
7041 0b_0001111110_000000,
7042 0b_0000000000_000000,
7043 0b_0000000000_000000,
7044 /* 0x85 */
7045 0b_0000110000_000000,
7046 0b_0000011000_000000,
7047 0b_0000000000_000000,
7048 0b_0001111100_000000,
7049 0b_0000000110_000000,
7050 0b_0001111110_000000,
7051 0b_0011000110_000000,
7052 0b_0001111110_000000,
7053 0b_0000000000_000000,
7054 0b_0000000000_000000,
7055 /* 0x86 */
7056 0b_0000111000_000000,
7057 0b_0001101100_000000,
7058 0b_0000111000_000000,
7059 0b_0001111100_000000,
7060 0b_0000000110_000000,
7061 0b_0001111110_000000,
7062 0b_0011000110_000000,
7063 0b_0001111110_000000,
7064 0b_0000000000_000000,
7065 0b_0000000000_000000,
7066 /* 0x87 */
7067 0b_0000000000_000000,
7068 0b_0000000000_000000,
7069 0b_0000000000_000000,
7070 0b_0001111100_000000,
7071 0b_0011000110_000000,
7072 0b_0011000000_000000,
7073 0b_0011000110_000000,
7074 0b_0001111100_000000,
7075 0b_0000110000_000000,
7076 0b_0001100000_000000,
7077 /* 0x88 */
7078 0b_0000111000_000000,
7079 0b_0001101100_000000,
7080 0b_0000000000_000000,
7081 0b_0001111100_000000,
7082 0b_0011000110_000000,
7083 0b_0011111110_000000,
7084 0b_0011000000_000000,
7085 0b_0001111100_000000,
7086 0b_0000000000_000000,
7087 0b_0000000000_000000,
7088 /* 0x89 */
7089 0b_0000000000_000000,
7090 0b_0001101100_000000,
7091 0b_0000000000_000000,
7092 0b_0001111100_000000,
7093 0b_0011000110_000000,
7094 0b_0011111110_000000,
7095 0b_0011000000_000000,
7096 0b_0001111100_000000,
7097 0b_0000000000_000000,
7098 0b_0000000000_000000,
7099 /* 0x8a */
7100 0b_0000110000_000000,
7101 0b_0000011000_000000,
7102 0b_0000000000_000000,
7103 0b_0001111100_000000,
7104 0b_0011000110_000000,
7105 0b_0011111110_000000,
7106 0b_0011000000_000000,
7107 0b_0001111100_000000,
7108 0b_0000000000_000000,
7109 0b_0000000000_000000,
7110 /* 0x8b */
7111 0b_0000000000_000000,
7112 0b_0011011000_000000,
7113 0b_0000000000_000000,
7114 0b_0001110000_000000,
7115 0b_0000110000_000000,
7116 0b_0000110000_000000,
7117 0b_0000110000_000000,
7118 0b_0001111000_000000,
7119 0b_0000000000_000000,
7120 0b_0000000000_000000,
7121 /* 0x8c */
7122 0b_0001110000_000000,
7123 0b_0011011000_000000,
7124 0b_0000000000_000000,
7125 0b_0001110000_000000,
7126 0b_0000110000_000000,
7127 0b_0000110000_000000,
7128 0b_0000110000_000000,
7129 0b_0001111000_000000,
7130 0b_0000000000_000000,
7131 0b_0000000000_000000,
7132 /* 0x8d */
7133 0b_0001100000_000000,
7134 0b_0000110000_000000,
7135 0b_0000000000_000000,
7136 0b_0001110000_000000,
7137 0b_0000110000_000000,
7138 0b_0000110000_000000,
7139 0b_0000110000_000000,
7140 0b_0001111000_000000,
7141 0b_0000000000_000000,
7142 0b_0000000000_000000,
7143 /* 0x8e */
7144 0b_0000000000_000000,
7145 0b_0001101100_000000,
7146 0b_0000000000_000000,
7147 0b_0001111100_000000,
7148 0b_0011000110_000000,
7149 0b_0011111110_000000,
7150 0b_0011000110_000000,
7151 0b_0011000110_000000,
7152 0b_0000000000_000000,
7153 0b_0000000000_000000,
7154 /* 0x8f */
7155 0b_0000111000_000000,
7156 0b_0001101100_000000,
7157 0b_0000111000_000000,
7158 0b_0001111100_000000,
7159 0b_0011000110_000000,
7160 0b_0011111110_000000,
7161 0b_0011000110_000000,
7162 0b_0011000110_000000,
7163 0b_0000000000_000000,
7164 0b_0000000000_000000,
7165 /* 0x90 */
7166 0b_0000011000_000000,
7167 0b_0000110000_000000,
7168 0b_0000000000_000000,
7169 0b_0011111110_000000,
7170 0b_0011000000_000000,
7171 0b_0011111100_000000,
7172 0b_0011000000_000000,
7173 0b_0011111110_000000,
7174 0b_0000000000_000000,
7175 0b_0000000000_000000,
7176 /* 0x91 */
7177 0b_0000000000_000000,
7178 0b_0000000000_000000,
7179 0b_0000000000_000000,
7180 0b_0011101110_000000,
7181 0b_0000111011_000000,
7182 0b_0011111111_000000,
7183 0b_0110111000_000000,
7184 0b_0011101110_000000,
7185 0b_0000000000_000000,
7186 0b_0000000000_000000,
7187 /* 0x92 */
7188 0b_0000000000_000000,
7189 0b_0001111110_000000,
7190 0b_0011011000_000000,
7191 0b_0110011000_000000,
7192 0b_0111111110_000000,
7193 0b_0110011000_000000,
7194 0b_0110011000_000000,
7195 0b_0110011110_000000,
7196 0b_0000000000_000000,
7197 0b_0000000000_000000,
7198 /* 0x93 */
7199 0b_0000111000_000000,
7200 0b_0001101100_000000,
7201 0b_0000000000_000000,
7202 0b_0001111100_000000,
7203 0b_0011000110_000000,
7204 0b_0011000110_000000,
7205 0b_0011000110_000000,
7206 0b_0001111100_000000,
7207 0b_0000000000_000000,
7208 0b_0000000000_000000,
7209 /* 0x94 */
7210 0b_0000000000_000000,
7211 0b_0001101100_000000,
7212 0b_0000000000_000000,
7213 0b_0001111100_000000,
7214 0b_0011000110_000000,
7215 0b_0011000110_000000,
7216 0b_0011000110_000000,
7217 0b_0001111100_000000,
7218 0b_0000000000_000000,
7219 0b_0000000000_000000,
7220 /* 0x95 */
7221 0b_0000110000_000000,
7222 0b_0000011000_000000,
7223 0b_0000000000_000000,
7224 0b_0001111100_000000,
7225 0b_0011000110_000000,
7226 0b_0011000110_000000,
7227 0b_0011000110_000000,
7228 0b_0001111100_000000,
7229 0b_0000000000_000000,
7230 0b_0000000000_000000,
7231 /* 0x96 */
7232 0b_0000111000_000000,
7233 0b_0001101100_000000,
7234 0b_0000000000_000000,
7235 0b_0011000110_000000,
7236 0b_0011000110_000000,
7237 0b_0011000110_000000,
7238 0b_0011000110_000000,
7239 0b_0001111110_000000,
7240 0b_0000000000_000000,
7241 0b_0000000000_000000,
7242 /* 0x97 */
7243 0b_0000110000_000000,
7244 0b_0000011000_000000,
7245 0b_0000000000_000000,
7246 0b_0011000110_000000,
7247 0b_0011000110_000000,
7248 0b_0011000110_000000,
7249 0b_0011000110_000000,
7250 0b_0001111110_000000,
7251 0b_0000000000_000000,
7252 0b_0000000000_000000,
7253 /* 0x98 */
7254 0b_0000000000_000000,
7255 0b_0001101100_000000,
7256 0b_0000000000_000000,
7257 0b_0011000110_000000,
7258 0b_0011000110_000000,
7259 0b_0011000110_000000,
7260 0b_0001111110_000000,
7261 0b_0000000110_000000,
7262 0b_0001111100_000000,
7263 0b_0000000000_000000,
7264 /* 0x99 */
7265 0b_0000000000_000000,
7266 0b_0001101100_000000,
7267 0b_0000000000_000000,
7268 0b_0001111100_000000,
7269 0b_0011000110_000000,
7270 0b_0011000110_000000,
7271 0b_0011000110_000000,
7272 0b_0001111100_000000,
7273 0b_0000000000_000000,
7274 0b_0000000000_000000,
7275 /* 0x9a */
7276 0b_0000000000_000000,
7277 0b_0001101100_000000,
7278 0b_0000000000_000000,
7279 0b_0011000110_000000,
7280 0b_0011000110_000000,
7281 0b_0011000110_000000,
7282 0b_0011000110_000000,
7283 0b_0001111110_000000,
7284 0b_0000000000_000000,
7285 0b_0000000000_000000,
7286 /* 0x9b */
7287 0b_0000000000_000000,
7288 0b_0000000000_000000,
7289 0b_0000010000_000000,
7290 0b_0001111100_000000,
7291 0b_0011010110_000000,
7292 0b_0011010000_000000,
7293 0b_0011010110_000000,
7294 0b_0001111100_000000,
7295 0b_0000010000_000000,
7296 0b_0000000000_000000,
7297 /* 0x9c */
7298 0b_0000000000_000000,
7299 0b_0000111100_000000,
7300 0b_0001100110_000000,
7301 0b_0001100000_000000,
7302 0b_0011111000_000000,
7303 0b_0001100000_000000,
7304 0b_0001100000_000000,
7305 0b_0011000000_000000,
7306 0b_0011111110_000000,
7307 0b_0000000000_000000,
7308 /* 0x9d */
7309 0b_0000000000_000000,
7310 0b_0110000110_000000,
7311 0b_0110000110_000000,
7312 0b_0011001100_000000,
7313 0b_0001111000_000000,
7314 0b_0011111100_000000,
7315 0b_0000110000_000000,
7316 0b_0011111100_000000,
7317 0b_0000110000_000000,
7318 0b_0000000000_000000,
7319 /* 0x9e */
7320 0b_0000000000_000000,
7321 0b_0111111100_000000,
7322 0b_0110000110_000000,
7323 0b_0110110110_000000,
7324 0b_0110110110_000000,
7325 0b_0111111100_000000,
7326 0b_0110110000_000000,
7327 0b_0110110000_000000,
7328 0b_0110011100_000000,
7329 0b_0000000000_000000,
7330 /* 0x9f */
7331 0b_0000000000_000000,
7332 0b_0000011100_000000,
7333 0b_0000110000_000000,
7334 0b_0000110000_000000,
7335 0b_0001111000_000000,
7336 0b_0000110000_000000,
7337 0b_0000110000_000000,
7338 0b_0000110000_000000,
7339 0b_0011100000_000000,
7340 0b_0000000000_000000,
7341 /* 0xa0 */
7342 0b_0000011000_000000,
7343 0b_0000110000_000000,
7344 0b_0000000000_000000,
7345 0b_0001111100_000000,
7346 0b_0000000110_000000,
7347 0b_0001111110_000000,
7348 0b_0011000110_000000,
7349 0b_0001111110_000000,
7350 0b_0000000000_000000,
7351 0b_0000000000_000000,
7352 /* 0xa1 */
7353 0b_0000110000_000000,
7354 0b_0001100000_000000,
7355 0b_0000000000_000000,
7356 0b_0001110000_000000,
7357 0b_0000110000_000000,
7358 0b_0000110000_000000,
7359 0b_0000110000_000000,
7360 0b_0001111000_000000,
7361 0b_0000000000_000000,
7362 0b_0000000000_000000,
7363 /* 0xa2 */
7364 0b_0000011000_000000,
7365 0b_0000110000_000000,
7366 0b_0000000000_000000,
7367 0b_0001111100_000000,
7368 0b_0011000110_000000,
7369 0b_0011000110_000000,
7370 0b_0011000110_000000,
7371 0b_0001111100_000000,
7372 0b_0000000000_000000,
7373 0b_0000000000_000000,
7374 /* 0xa3 */
7375 0b_0000011000_000000,
7376 0b_0000110000_000000,
7377 0b_0000000000_000000,
7378 0b_0011000110_000000,
7379 0b_0011000110_000000,
7380 0b_0011000110_000000,
7381 0b_0011000110_000000,
7382 0b_0001111110_000000,
7383 0b_0000000000_000000,
7384 0b_0000000000_000000,
7385 /* 0xa4 */
7386 0b_0001110110_000000,
7387 0b_0011011100_000000,
7388 0b_0000000000_000000,
7389 0b_0011111100_000000,
7390 0b_0011000110_000000,
7391 0b_0011000110_000000,
7392 0b_0011000110_000000,
7393 0b_0011000110_000000,
7394 0b_0000000000_000000,
7395 0b_0000000000_000000,
7396 /* 0xa5 */
7397 0b_0001110110_000000,
7398 0b_0011011100_000000,
7399 0b_0000000000_000000,
7400 0b_0011100110_000000,
7401 0b_0011110110_000000,
7402 0b_0011011110_000000,
7403 0b_0011001110_000000,
7404 0b_0011000110_000000,
7405 0b_0000000000_000000,
7406 0b_0000000000_000000,
7407 /* 0xa6 */
7408 0b_0000000000_000000,
7409 0b_0001111000_000000,
7410 0b_0000001100_000000,
7411 0b_0001111100_000000,
7412 0b_0011001100_000000,
7413 0b_0001111100_000000,
7414 0b_0000000000_000000,
7415 0b_0000000000_000000,
7416 0b_0000000000_000000,
7417 0b_0000000000_000000,
7418 /* 0xa7 */
7419 0b_0000000000_000000,
7420 0b_0001111000_000000,
7421 0b_0011001100_000000,
7422 0b_0011001100_000000,
7423 0b_0011001100_000000,
7424 0b_0001111000_000000,
7425 0b_0000000000_000000,
7426 0b_0000000000_000000,
7427 0b_0000000000_000000,
7428 0b_0000000000_000000,
7429 /* 0xa8 */
7430 0b_0000000000_000000,
7431 0b_0000110000_000000,
7432 0b_0000000000_000000,
7433 0b_0000110000_000000,
7434 0b_0001100000_000000,
7435 0b_0011000000_000000,
7436 0b_0011000000_000000,
7437 0b_0011001100_000000,
7438 0b_0001111000_000000,
7439 0b_0000000000_000000,
7440 /* 0xa9 */
7441 0b_0000000000_000000,
7442 0b_0000000000_000000,
7443 0b_0000000000_000000,
7444 0b_0000000000_000000,
7445 0b_0011111110_000000,
7446 0b_0011000000_000000,
7447 0b_0011000000_000000,
7448 0b_0011000000_000000,
7449 0b_0000000000_000000,
7450 0b_0000000000_000000,
7451 /* 0xaa */
7452 0b_0000000000_000000,
7453 0b_0000000000_000000,
7454 0b_0000000000_000000,
7455 0b_0000000000_000000,
7456 0b_0011111110_000000,
7457 0b_0000000110_000000,
7458 0b_0000000110_000000,
7459 0b_0000000110_000000,
7460 0b_0000000000_000000,
7461 0b_0000000000_000000,
7462 /* 0xab */
7463 0b_0000000000_000000,
7464 0b_0010000010_000000,
7465 0b_0010000100_000000,
7466 0b_0010001000_000000,
7467 0b_0010010000_000000,
7468 0b_0000101100_000000,
7469 0b_0001000110_000000,
7470 0b_0010001100_000000,
7471 0b_0100001110_000000,
7472 0b_0000000000_000000,
7473 /* 0xac */
7474 0b_0000000000_000000,
7475 0b_0010000010_000000,
7476 0b_0010000100_000000,
7477 0b_0010001000_000000,
7478 0b_0010010000_000000,
7479 0b_0000101010_000000,
7480 0b_0001001010_000000,
7481 0b_0010001110_000000,
7482 0b_0100000010_000000,
7483 0b_0000000000_000000,
7484 /* 0xad */
7485 0b_0000000000_000000,
7486 0b_0000110000_000000,
7487 0b_0000000000_000000,
7488 0b_0000110000_000000,
7489 0b_0000110000_000000,
7490 0b_0001111000_000000,
7491 0b_0001111000_000000,
7492 0b_0000110000_000000,
7493 0b_0000000000_000000,
7494 0b_0000000000_000000,
7495 /* 0xae */
7496 0b_0000000000_000000,
7497 0b_0000000000_000000,
7498 0b_0001100110_000000,
7499 0b_0011001100_000000,
7500 0b_0110011000_000000,
7501 0b_0011001100_000000,
7502 0b_0001100110_000000,
7503 0b_0000000000_000000,
7504 0b_0000000000_000000,
7505 0b_0000000000_000000,
7506 /* 0xaf */
7507 0b_0000000000_000000,
7508 0b_0000000000_000000,
7509 0b_0110011000_000000,
7510 0b_0011001100_000000,
7511 0b_0001100110_000000,
7512 0b_0011001100_000000,
7513 0b_0110011000_000000,
7514 0b_0000000000_000000,
7515 0b_0000000000_000000,
7516 0b_0000000000_000000,
7517 /* 0xb0 */
7518 0b_0010001000_000000,
7519 0b_1000100010_000000,
7520 0b_0010001000_000000,
7521 0b_1000100010_000000,
7522 0b_0010001000_000000,
7523 0b_1000100010_000000,
7524 0b_0010001000_000000,
7525 0b_1000100010_000000,
7526 0b_0010001000_000000,
7527 0b_1000100010_000000,
7528 /* 0xb1 */
7529 0b_0101010101_000000,
7530 0b_1010101010_000000,
7531 0b_0101010101_000000,
7532 0b_1010101010_000000,
7533 0b_0101010101_000000,
7534 0b_1010101010_000000,
7535 0b_0101010101_000000,
7536 0b_1010101010_000000,
7537 0b_0101010101_000000,
7538 0b_1010101010_000000,
7539 /* 0xb2 */
7540 0b_1011101110_000000,
7541 0b_1110111011_000000,
7542 0b_1011101110_000000,
7543 0b_1110111011_000000,
7544 0b_1011101110_000000,
7545 0b_1110111011_000000,
7546 0b_1011101110_000000,
7547 0b_1110111011_000000,
7548 0b_1011101110_000000,
7549 0b_1110111011_000000,
7550 /* 0xb3 */
7551 0b_0000110000_000000,
7552 0b_0000110000_000000,
7553 0b_0000110000_000000,
7554 0b_0000110000_000000,
7555 0b_0000110000_000000,
7556 0b_0000110000_000000,
7557 0b_0000110000_000000,
7558 0b_0000110000_000000,
7559 0b_0000110000_000000,
7560 0b_0000110000_000000,
7561 /* 0xb4 */
7562 0b_0000110000_000000,
7563 0b_0000110000_000000,
7564 0b_0000110000_000000,
7565 0b_0000110000_000000,
7566 0b_1111110000_000000,
7567 0b_1111110000_000000,
7568 0b_0000110000_000000,
7569 0b_0000110000_000000,
7570 0b_0000110000_000000,
7571 0b_0000110000_000000,
7572 /* 0xb5 */
7573 0b_0000110000_000000,
7574 0b_0000110000_000000,
7575 0b_1111110000_000000,
7576 0b_1111110000_000000,
7577 0b_0000110000_000000,
7578 0b_0000110000_000000,
7579 0b_1111110000_000000,
7580 0b_1111110000_000000,
7581 0b_0000110000_000000,
7582 0b_0000110000_000000,
7583 /* 0xb6 */
7584 0b_0011001100_000000,
7585 0b_0011001100_000000,
7586 0b_0011001100_000000,
7587 0b_0011001100_000000,
7588 0b_1111001100_000000,
7589 0b_1111001100_000000,
7590 0b_0011001100_000000,
7591 0b_0011001100_000000,
7592 0b_0011001100_000000,
7593 0b_0011001100_000000,
7594 /* 0xb7 */
7595 0b_0000000000_000000,
7596 0b_0000000000_000000,
7597 0b_0000000000_000000,
7598 0b_0000000000_000000,
7599 0b_1111111100_000000,
7600 0b_1111111100_000000,
7601 0b_0011001100_000000,
7602 0b_0011001100_000000,
7603 0b_0011001100_000000,
7604 0b_0011001100_000000,
7605 /* 0xb8 */
7606 0b_0000000000_000000,
7607 0b_0000000000_000000,
7608 0b_1111110000_000000,
7609 0b_1111110000_000000,
7610 0b_0000110000_000000,
7611 0b_0000110000_000000,
7612 0b_1111110000_000000,
7613 0b_1111110000_000000,
7614 0b_0000110000_000000,
7615 0b_0000110000_000000,
7616 /* 0xb9 */
7617 0b_0011001100_000000,
7618 0b_0011001100_000000,
7619 0b_1111001100_000000,
7620 0b_1111001100_000000,
7621 0b_0000001100_000000,
7622 0b_0000001100_000000,
7623 0b_1111001100_000000,
7624 0b_1111001100_000000,
7625 0b_0011001100_000000,
7626 0b_0011001100_000000,
7627 /* 0xba */
7628 0b_0011001100_000000,
7629 0b_0011001100_000000,
7630 0b_0011001100_000000,
7631 0b_0011001100_000000,
7632 0b_0011001100_000000,
7633 0b_0011001100_000000,
7634 0b_0011001100_000000,
7635 0b_0011001100_000000,
7636 0b_0011001100_000000,
7637 0b_0011001100_000000,
7638 /* 0xbb */
7639 0b_0000000000_000000,
7640 0b_0000000000_000000,
7641 0b_1111111100_000000,
7642 0b_1111111100_000000,
7643 0b_0000001100_000000,
7644 0b_0000001100_000000,
7645 0b_1111001100_000000,
7646 0b_1111001100_000000,
7647 0b_0011001100_000000,
7648 0b_0011001100_000000,
7649 /* 0xbc */
7650 0b_0011001100_000000,
7651 0b_0011001100_000000,
7652 0b_1111001100_000000,
7653 0b_1111001100_000000,
7654 0b_0000001100_000000,
7655 0b_0000001100_000000,
7656 0b_1111111100_000000,
7657 0b_1111111100_000000,
7658 0b_0000000000_000000,
7659 0b_0000000000_000000,
7660 /* 0xbd */
7661 0b_0011001100_000000,
7662 0b_0011001100_000000,
7663 0b_0011001100_000000,
7664 0b_0011001100_000000,
7665 0b_1111111100_000000,
7666 0b_1111111100_000000,
7667 0b_0000000000_000000,
7668 0b_0000000000_000000,
7669 0b_0000000000_000000,
7670 0b_0000000000_000000,
7671 /* 0xbe */
7672 0b_0001100000_000000,
7673 0b_0001100000_000000,
7674 0b_1111100000_000000,
7675 0b_1111100000_000000,
7676 0b_0001100000_000000,
7677 0b_0001100000_000000,
7678 0b_1111100000_000000,
7679 0b_1111100000_000000,
7680 0b_0000000000_000000,
7681 0b_0000000000_000000,
7682 /* 0xbf */
7683 0b_0000000000_000000,
7684 0b_0000000000_000000,
7685 0b_0000000000_000000,
7686 0b_0000000000_000000,
7687 0b_1111110000_000000,
7688 0b_1111110000_000000,
7689 0b_0000110000_000000,
7690 0b_0000110000_000000,
7691 0b_0000110000_000000,
7692 0b_0000110000_000000,
7693 /* 0xc0 */
7694 0b_0000110000_000000,
7695 0b_0000110000_000000,
7696 0b_0000110000_000000,
7697 0b_0000110000_000000,
7698 0b_0000111111_000000,
7699 0b_0000111111_000000,
7700 0b_0000000000_000000,
7701 0b_0000000000_000000,
7702 0b_0000000000_000000,
7703 0b_0000000000_000000,
7704 /* 0xc1 */
7705 0b_0000110000_000000,
7706 0b_0000110000_000000,
7707 0b_0000110000_000000,
7708 0b_0000110000_000000,
7709 0b_1111111111_000000,
7710 0b_1111111111_000000,
7711 0b_0000000000_000000,
7712 0b_0000000000_000000,
7713 0b_0000000000_000000,
7714 0b_0000000000_000000,
7715 /* 0xc2 */
7716 0b_0000000000_000000,
7717 0b_0000000000_000000,
7718 0b_0000000000_000000,
7719 0b_0000000000_000000,
7720 0b_1111111111_000000,
7721 0b_1111111111_000000,
7722 0b_0000110000_000000,
7723 0b_0000110000_000000,
7724 0b_0000110000_000000,
7725 0b_0000110000_000000,
7726 /* 0xc3 */
7727 0b_0000110000_000000,
7728 0b_0000110000_000000,
7729 0b_0000110000_000000,
7730 0b_0000110000_000000,
7731 0b_0000111111_000000,
7732 0b_0000111111_000000,
7733 0b_0000110000_000000,
7734 0b_0000110000_000000,
7735 0b_0000110000_000000,
7736 0b_0000110000_000000,
7737 /* 0xc4 */
7738 0b_0000000000_000000,
7739 0b_0000000000_000000,
7740 0b_0000000000_000000,
7741 0b_0000000000_000000,
7742 0b_1111111111_000000,
7743 0b_1111111111_000000,
7744 0b_0000000000_000000,
7745 0b_0000000000_000000,
7746 0b_0000000000_000000,
7747 0b_0000000000_000000,
7748 /* 0xc5 */
7749 0b_0000110000_000000,
7750 0b_0000110000_000000,
7751 0b_0000110000_000000,
7752 0b_0000110000_000000,
7753 0b_1111111111_000000,
7754 0b_1111111111_000000,
7755 0b_0000110000_000000,
7756 0b_0000110000_000000,
7757 0b_0000110000_000000,
7758 0b_0000110000_000000,
7759 /* 0xc6 */
7760 0b_0000110000_000000,
7761 0b_0000110000_000000,
7762 0b_0000111111_000000,
7763 0b_0000111111_000000,
7764 0b_0000110000_000000,
7765 0b_0000110000_000000,
7766 0b_0000111111_000000,
7767 0b_0000111111_000000,
7768 0b_0000110000_000000,
7769 0b_0000110000_000000,
7770 /* 0xc7 */
7771 0b_0011001100_000000,
7772 0b_0011001100_000000,
7773 0b_0011001100_000000,
7774 0b_0011001100_000000,
7775 0b_0011001111_000000,
7776 0b_0011001111_000000,
7777 0b_0011001100_000000,
7778 0b_0011001100_000000,
7779 0b_0011001100_000000,
7780 0b_0011001100_000000,
7781 /* 0xc8 */
7782 0b_0011001100_000000,
7783 0b_0011001100_000000,
7784 0b_0011001111_000000,
7785 0b_0011001111_000000,
7786 0b_0011000000_000000,
7787 0b_0011000000_000000,
7788 0b_0011111111_000000,
7789 0b_0011111111_000000,
7790 0b_0000000000_000000,
7791 0b_0000000000_000000,
7792 /* 0xc9 */
7793 0b_0000000000_000000,
7794 0b_0000000000_000000,
7795 0b_0011111111_000000,
7796 0b_0011111111_000000,
7797 0b_0011000000_000000,
7798 0b_0011000000_000000,
7799 0b_0011001111_000000,
7800 0b_0011001111_000000,
7801 0b_0011001100_000000,
7802 0b_0011001100_000000,
7803 /* 0xca */
7804 0b_0011001100_000000,
7805 0b_0011001100_000000,
7806 0b_1111001111_000000,
7807 0b_1111001111_000000,
7808 0b_0000000000_000000,
7809 0b_0000000000_000000,
7810 0b_1111111111_000000,
7811 0b_1111111111_000000,
7812 0b_0000000000_000000,
7813 0b_0000000000_000000,
7814 /* 0xcb */
7815 0b_0000000000_000000,
7816 0b_0000000000_000000,
7817 0b_1111111111_000000,
7818 0b_1111111111_000000,
7819 0b_0000000000_000000,
7820 0b_0000000000_000000,
7821 0b_1111001111_000000,
7822 0b_1111001111_000000,
7823 0b_0011001100_000000,
7824 0b_0011001100_000000,
7825 /* 0xcc */
7826 0b_0011001100_000000,
7827 0b_0011001100_000000,
7828 0b_0011001111_000000,
7829 0b_0011001111_000000,
7830 0b_0011000000_000000,
7831 0b_0011000000_000000,
7832 0b_0011001111_000000,
7833 0b_0011001111_000000,
7834 0b_0011001100_000000,
7835 0b_0011001100_000000,
7836 /* 0xcd */
7837 0b_0000000000_000000,
7838 0b_0000000000_000000,
7839 0b_1111111111_000000,
7840 0b_1111111111_000000,
7841 0b_0000000000_000000,
7842 0b_0000000000_000000,
7843 0b_1111111111_000000,
7844 0b_1111111111_000000,
7845 0b_0000000000_000000,
7846 0b_0000000000_000000,
7847 /* 0xce */
7848 0b_0011001100_000000,
7849 0b_0011001100_000000,
7850 0b_1111001111_000000,
7851 0b_1111001111_000000,
7852 0b_0000000000_000000,
7853 0b_0000000000_000000,
7854 0b_1111001111_000000,
7855 0b_1111001111_000000,
7856 0b_0011001100_000000,
7857 0b_0011001100_000000,
7858 /* 0xcf */
7859 0b_0000110000_000000,
7860 0b_0000110000_000000,
7861 0b_1111111111_000000,
7862 0b_1111111111_000000,
7863 0b_0000000000_000000,
7864 0b_0000000000_000000,
7865 0b_1111111111_000000,
7866 0b_1111111111_000000,
7867 0b_0000000000_000000,
7868 0b_0000000000_000000,
7869 /* 0xd0 */
7870 0b_0011001100_000000,
7871 0b_0011001100_000000,
7872 0b_0011001100_000000,
7873 0b_0011001100_000000,
7874 0b_1111111111_000000,
7875 0b_1111111111_000000,
7876 0b_0000000000_000000,
7877 0b_0000000000_000000,
7878 0b_0000000000_000000,
7879 0b_0000000000_000000,
7880 /* 0xd1 */
7881 0b_0000000000_000000,
7882 0b_0000000000_000000,
7883 0b_1111111111_000000,
7884 0b_1111111111_000000,
7885 0b_0000000000_000000,
7886 0b_0000000000_000000,
7887 0b_1111111111_000000,
7888 0b_1111111111_000000,
7889 0b_0000110000_000000,
7890 0b_0000110000_000000,
7891 /* 0xd2 */
7892 0b_0000000000_000000,
7893 0b_0000000000_000000,
7894 0b_0000000000_000000,
7895 0b_0000000000_000000,
7896 0b_1111111111_000000,
7897 0b_1111111111_000000,
7898 0b_0011001100_000000,
7899 0b_0011001100_000000,
7900 0b_0011001100_000000,
7901 0b_0011001100_000000,
7902 /* 0xd3 */
7903 0b_0011001100_000000,
7904 0b_0011001100_000000,
7905 0b_0011001100_000000,
7906 0b_0011001100_000000,
7907 0b_0011111111_000000,
7908 0b_0011111111_000000,
7909 0b_0000000000_000000,
7910 0b_0000000000_000000,
7911 0b_0000000000_000000,
7912 0b_0000000000_000000,
7913 /* 0xd4 */
7914 0b_0000110000_000000,
7915 0b_0000110000_000000,
7916 0b_0000111111_000000,
7917 0b_0000111111_000000,
7918 0b_0000110000_000000,
7919 0b_0000110000_000000,
7920 0b_0000111111_000000,
7921 0b_0000111111_000000,
7922 0b_0000000000_000000,
7923 0b_0000000000_000000,
7924 /* 0xd5 */
7925 0b_0000000000_000000,
7926 0b_0000000000_000000,
7927 0b_0000111111_000000,
7928 0b_0000111111_000000,
7929 0b_0000110000_000000,
7930 0b_0000110000_000000,
7931 0b_0000111111_000000,
7932 0b_0000111111_000000,
7933 0b_0000110000_000000,
7934 0b_0000110000_000000,
7935 /* 0xd6 */
7936 0b_0000000000_000000,
7937 0b_0000000000_000000,
7938 0b_0000000000_000000,
7939 0b_0000000000_000000,
7940 0b_0011111111_000000,
7941 0b_0011111111_000000,
7942 0b_0011001100_000000,
7943 0b_0011001100_000000,
7944 0b_0011001100_000000,
7945 0b_0011001100_000000,
7946 /* 0xd7 */
7947 0b_0011001100_000000,
7948 0b_0011001100_000000,
7949 0b_0011001100_000000,
7950 0b_0011001100_000000,
7951 0b_1111001111_000000,
7952 0b_1111001111_000000,
7953 0b_0011001100_000000,
7954 0b_0011001100_000000,
7955 0b_0011001100_000000,
7956 0b_0011001100_000000,
7957 /* 0xd8 */
7958 0b_0000110000_000000,
7959 0b_0000110000_000000,
7960 0b_1111111111_000000,
7961 0b_1111111111_000000,
7962 0b_0000000000_000000,
7963 0b_0000000000_000000,
7964 0b_1111111111_000000,
7965 0b_1111111111_000000,
7966 0b_0000110000_000000,
7967 0b_0000110000_000000,
7968 /* 0xd9 */
7969 0b_0000110000_000000,
7970 0b_0000110000_000000,
7971 0b_0000110000_000000,
7972 0b_0000110000_000000,
7973 0b_1111110000_000000,
7974 0b_1111110000_000000,
7975 0b_0000000000_000000,
7976 0b_0000000000_000000,
7977 0b_0000000000_000000,
7978 0b_0000000000_000000,
7979 /* 0xda */
7980 0b_0000000000_000000,
7981 0b_0000000000_000000,
7982 0b_0000000000_000000,
7983 0b_0000000000_000000,
7984 0b_0000111111_000000,
7985 0b_0000111111_000000,
7986 0b_0000110000_000000,
7987 0b_0000110000_000000,
7988 0b_0000110000_000000,
7989 0b_0000110000_000000,
7990 /* 0xdb */
7991 0b_1111111111_000000,
7992 0b_1111111111_000000,
7993 0b_1111111111_000000,
7994 0b_1111111111_000000,
7995 0b_1111111111_000000,
7996 0b_1111111111_000000,
7997 0b_1111111111_000000,
7998 0b_1111111111_000000,
7999 0b_1111111111_000000,
8000 0b_1111111111_000000,
8001 /* 0xdc */
8002 0b_0000000000_000000,
8003 0b_0000000000_000000,
8004 0b_0000000000_000000,
8005 0b_0000000000_000000,
8006 0b_0000000000_000000,
8007 0b_1111111111_000000,
8008 0b_1111111111_000000,
8009 0b_1111111111_000000,
8010 0b_1111111111_000000,
8011 0b_1111111111_000000,
8012 /* 0xdd */
8013 0b_1111100000_000000,
8014 0b_1111100000_000000,
8015 0b_1111100000_000000,
8016 0b_1111100000_000000,
8017 0b_1111100000_000000,
8018 0b_1111100000_000000,
8019 0b_1111100000_000000,
8020 0b_1111100000_000000,
8021 0b_1111100000_000000,
8022 0b_1111100000_000000,
8023 /* 0xde */
8024 0b_0000011111_000000,
8025 0b_0000011111_000000,
8026 0b_0000011111_000000,
8027 0b_0000011111_000000,
8028 0b_0000011111_000000,
8029 0b_0000011111_000000,
8030 0b_0000011111_000000,
8031 0b_0000011111_000000,
8032 0b_0000011111_000000,
8033 0b_0000011111_000000,
8034 /* 0xdf */
8035 0b_1111111111_000000,
8036 0b_1111111111_000000,
8037 0b_1111111111_000000,
8038 0b_1111111111_000000,
8039 0b_1111111111_000000,
8040 0b_0000000000_000000,
8041 0b_0000000000_000000,
8042 0b_0000000000_000000,
8043 0b_0000000000_000000,
8044 0b_0000000000_000000,
8045 /* 0xe0 */
8046 0b_0000000000_000000,
8047 0b_0000000000_000000,
8048 0b_0000000000_000000,
8049 0b_0001110110_000000,
8050 0b_0011011100_000000,
8051 0b_0011001000_000000,
8052 0b_0011011100_000000,
8053 0b_0001110110_000000,
8054 0b_0000000000_000000,
8055 0b_0000000000_000000,
8056 /* 0xe1 */
8057 0b_0000000000_000000,
8058 0b_0001111000_000000,
8059 0b_0011001100_000000,
8060 0b_0011001100_000000,
8061 0b_0011011000_000000,
8062 0b_0011001100_000000,
8063 0b_0011000110_000000,
8064 0b_0011011100_000000,
8065 0b_0011000000_000000,
8066 0b_0000000000_000000,
8067 /* 0xe2 */
8068 0b_0000000000_000000,
8069 0b_0011111110_000000,
8070 0b_0011000110_000000,
8071 0b_0011000000_000000,
8072 0b_0011000000_000000,
8073 0b_0011000000_000000,
8074 0b_0011000000_000000,
8075 0b_0011000000_000000,
8076 0b_0000000000_000000,
8077 0b_0000000000_000000,
8078 /* 0xe3 */
8079 0b_0000000000_000000,
8080 0b_0000000000_000000,
8081 0b_0111111110_000000,
8082 0b_0011001100_000000,
8083 0b_0011001100_000000,
8084 0b_0011001100_000000,
8085 0b_0011001100_000000,
8086 0b_0011001100_000000,
8087 0b_0000000000_000000,
8088 0b_0000000000_000000,
8089 /* 0xe4 */
8090 0b_0000000000_000000,
8091 0b_0011111110_000000,
8092 0b_0001100000_000000,
8093 0b_0000110000_000000,
8094 0b_0000011000_000000,
8095 0b_0000110000_000000,
8096 0b_0001100000_000000,
8097 0b_0011111110_000000,
8098 0b_0000000000_000000,
8099 0b_0000000000_000000,
8100 /* 0xe5 */
8101 0b_0000000000_000000,
8102 0b_0000000000_000000,
8103 0b_0000000000_000000,
8104 0b_0001111110_000000,
8105 0b_0011011000_000000,
8106 0b_0011001100_000000,
8107 0b_0011001100_000000,
8108 0b_0001111000_000000,
8109 0b_0000000000_000000,
8110 0b_0000000000_000000,
8111 /* 0xe6 */
8112 0b_0000000000_000000,
8113 0b_0000000000_000000,
8114 0b_0000000000_000000,
8115 0b_0110001100_000000,
8116 0b_0110001100_000000,
8117 0b_0110011100_000000,
8118 0b_0111110110_000000,
8119 0b_0110000000_000000,
8120 0b_0110000000_000000,
8121 0b_0000000000_000000,
8122 /* 0xe7 */
8123 0b_0000000000_000000,
8124 0b_0000000000_000000,
8125 0b_0000000000_000000,
8126 0b_0011111100_000000,
8127 0b_0000110000_000000,
8128 0b_0000110000_000000,
8129 0b_0000110000_000000,
8130 0b_0000011000_000000,
8131 0b_0000000000_000000,
8132 0b_0000000000_000000,
8133 /* 0xe8 */
8134 0b_0000000000_000000,
8135 0b_0001111000_000000,
8136 0b_0000110000_000000,
8137 0b_0011111100_000000,
8138 0b_0110110110_000000,
8139 0b_0110110110_000000,
8140 0b_0011111100_000000,
8141 0b_0000110000_000000,
8142 0b_0001111000_000000,
8143 0b_0000000000_000000,
8144 /* 0xe9 */
8145 0b_0000000000_000000,
8146 0b_0001111000_000000,
8147 0b_0011001100_000000,
8148 0b_0011001100_000000,
8149 0b_0011111100_000000,
8150 0b_0011001100_000000,
8151 0b_0011001100_000000,
8152 0b_0001111000_000000,
8153 0b_0000000000_000000,
8154 0b_0000000000_000000,
8155 /* 0xea */
8156 0b_0000000000_000000,
8157 0b_0001111100_000000,
8158 0b_0011000110_000000,
8159 0b_0011000110_000000,
8160 0b_0011000110_000000,
8161 0b_0011000110_000000,
8162 0b_0001101100_000000,
8163 0b_0011101110_000000,
8164 0b_0000000000_000000,
8165 0b_0000000000_000000,
8166 /* 0xeb */
8167 0b_0000000000_000000,
8168 0b_0001111100_000000,
8169 0b_0000110000_000000,
8170 0b_0000011000_000000,
8171 0b_0001111100_000000,
8172 0b_0011000110_000000,
8173 0b_0011000110_000000,
8174 0b_0001111100_000000,
8175 0b_0000000000_000000,
8176 0b_0000000000_000000,
8177 /* 0xec */
8178 0b_0000000000_000000,
8179 0b_0000000000_000000,
8180 0b_0000000000_000000,
8181 0b_0011101110_000000,
8182 0b_0110011011_000000,
8183 0b_0110010011_000000,
8184 0b_0110110011_000000,
8185 0b_0011101110_000000,
8186 0b_0000000000_000000,
8187 0b_0000000000_000000,
8188 /* 0xed */
8189 0b_0000000000_000000,
8190 0b_0000000000_000000,
8191 0b_0000000110_000000,
8192 0b_0011111100_000000,
8193 0b_0110011110_000000,
8194 0b_0110110110_000000,
8195 0b_0111100110_000000,
8196 0b_0011111100_000000,
8197 0b_0110000000_000000,
8198 0b_0000000000_000000,
8199 /* 0xee */
8200 0b_0000000000_000000,
8201 0b_0000000000_000000,
8202 0b_0000000000_000000,
8203 0b_0001111100_000000,
8204 0b_0011000000_000000,
8205 0b_0001111000_000000,
8206 0b_0011000000_000000,
8207 0b_0001111100_000000,
8208 0b_0000000000_000000,
8209 0b_0000000000_000000,
8210 /* 0xef */
8211 0b_0000000000_000000,
8212 0b_0001111100_000000,
8213 0b_0011000110_000000,
8214 0b_0011000110_000000,
8215 0b_0011000110_000000,
8216 0b_0011000110_000000,
8217 0b_0011000110_000000,
8218 0b_0011000110_000000,
8219 0b_0000000000_000000,
8220 0b_0000000000_000000,
8221 /* 0xf0 */
8222 0b_0000000000_000000,
8223 0b_0000000000_000000,
8224 0b_0011111100_000000,
8225 0b_0000000000_000000,
8226 0b_0011111100_000000,
8227 0b_0000000000_000000,
8228 0b_0011111100_000000,
8229 0b_0000000000_000000,
8230 0b_0000000000_000000,
8231 0b_0000000000_000000,
8232 /* 0xf1 */
8233 0b_0000000000_000000,
8234 0b_0000110000_000000,
8235 0b_0000110000_000000,
8236 0b_0011111100_000000,
8237 0b_0000110000_000000,
8238 0b_0000110000_000000,
8239 0b_0000000000_000000,
8240 0b_0011111100_000000,
8241 0b_0000000000_000000,
8242 0b_0000000000_000000,
8243 /* 0xf2 */
8244 0b_0000000000_000000,
8245 0b_0000011000_000000,
8246 0b_0000110000_000000,
8247 0b_0001100000_000000,
8248 0b_0000110000_000000,
8249 0b_0000011000_000000,
8250 0b_0000000000_000000,
8251 0b_0011111100_000000,
8252 0b_0000000000_000000,
8253 0b_0000000000_000000,
8254 /* 0xf3 */
8255 0b_0000000000_000000,
8256 0b_0001100000_000000,
8257 0b_0000110000_000000,
8258 0b_0000011000_000000,
8259 0b_0000110000_000000,
8260 0b_0001100000_000000,
8261 0b_0000000000_000000,
8262 0b_0011111100_000000,
8263 0b_0000000000_000000,
8264 0b_0000000000_000000,
8265 /* 0xf4 */
8266 0b_0000000000_000000,
8267 0b_0000011100_000000,
8268 0b_0000110110_000000,
8269 0b_0000110110_000000,
8270 0b_0000110000_000000,
8271 0b_0000110000_000000,
8272 0b_0000110000_000000,
8273 0b_0000110000_000000,
8274 0b_0000110000_000000,
8275 0b_0000110000_000000,
8276 /* 0xf5 */
8277 0b_0000110000_000000,
8278 0b_0000110000_000000,
8279 0b_0000110000_000000,
8280 0b_0000110000_000000,
8281 0b_0000110000_000000,
8282 0b_0000110000_000000,
8283 0b_0110110000_000000,
8284 0b_0110110000_000000,
8285 0b_0011100000_000000,
8286 0b_0000000000_000000,
8287 /* 0xf6 */
8288 0b_0000000000_000000,
8289 0b_0000000000_000000,
8290 0b_0000110000_000000,
8291 0b_0000000000_000000,
8292 0b_0011111100_000000,
8293 0b_0000000000_000000,
8294 0b_0000110000_000000,
8295 0b_0000000000_000000,
8296 0b_0000000000_000000,
8297 0b_0000000000_000000,
8298 /* 0xf7 */
8299 0b_0000000000_000000,
8300 0b_0011100000_000000,
8301 0b_0110110110_000000,
8302 0b_0000011100_000000,
8303 0b_0000000000_000000,
8304 0b_0011100000_000000,
8305 0b_0110110110_000000,
8306 0b_0000011100_000000,
8307 0b_0000000000_000000,
8308 0b_0000000000_000000,
8309 /* 0xf8 */
8310 0b_0000000000_000000,
8311 0b_0000111000_000000,
8312 0b_0001101100_000000,
8313 0b_0001101100_000000,
8314 0b_0000111000_000000,
8315 0b_0000000000_000000,
8316 0b_0000000000_000000,
8317 0b_0000000000_000000,
8318 0b_0000000000_000000,
8319 0b_0000000000_000000,
8320 /* 0xf9 */
8321 0b_0000000000_000000,
8322 0b_0000000000_000000,
8323 0b_0000000000_000000,
8324 0b_0000110000_000000,
8325 0b_0000110000_000000,
8326 0b_0000000000_000000,
8327 0b_0000000000_000000,
8328 0b_0000000000_000000,
8329 0b_0000000000_000000,
8330 0b_0000000000_000000,
8331 /* 0xfa */
8332 0b_0000000000_000000,
8333 0b_0000000000_000000,
8334 0b_0000000000_000000,
8335 0b_0000000000_000000,
8336 0b_0000110000_000000,
8337 0b_0000000000_000000,
8338 0b_0000000000_000000,
8339 0b_0000000000_000000,
8340 0b_0000000000_000000,
8341 0b_0000000000_000000,
8342 /* 0xfb */
8343 0b_0000000000_000000,
8344 0b_0000011111_000000,
8345 0b_0000011000_000000,
8346 0b_0000011000_000000,
8347 0b_0110011000_000000,
8348 0b_0011011000_000000,
8349 0b_0001111000_000000,
8350 0b_0000111000_000000,
8351 0b_0000011000_000000,
8352 0b_0000001000_000000,
8353 /* 0xfc */
8354 0b_0000000000_000000,
8355 0b_0011111000_000000,
8356 0b_0011001100_000000,
8357 0b_0011001100_000000,
8358 0b_0011001100_000000,
8359 0b_0011001100_000000,
8360 0b_0000000000_000000,
8361 0b_0000000000_000000,
8362 0b_0000000000_000000,
8363 0b_0000000000_000000,
8364 /* 0xfd */
8365 0b_0000000000_000000,
8366 0b_0001111000_000000,
8367 0b_0000001100_000000,
8368 0b_0000111000_000000,
8369 0b_0001100000_000000,
8370 0b_0001111100_000000,
8371 0b_0000000000_000000,
8372 0b_0000000000_000000,
8373 0b_0000000000_000000,
8374 0b_0000000000_000000,
8375 /* 0xfe */
8376 0b_0000000000_000000,
8377 0b_0000000000_000000,
8378 0b_0000000000_000000,
8379 0b_0001111000_000000,
8380 0b_0001111000_000000,
8381 0b_0001111000_000000,
8382 0b_0001111000_000000,
8383 0b_0000000000_000000,
8384 0b_0000000000_000000,
8385 0b_0000000000_000000,
8386 /* 0xff */
8387 0b_0000000000_000000,
8388 0b_0000000000_000000,
8389 0b_0000000000_000000,
8390 0b_0000000000_000000,
8391 0b_0000000000_000000,
8392 0b_0000000000_000000,
8393 0b_0000000000_000000,
8394 0b_0000000000_000000,
8395 0b_0000000000_000000,
8396 0b_0000000000_000000,