# DEL is checkerboard, but the denser DEL from subtable 2 is MEDIUM SHADE # ª looks like shit # subtable 1 covers most of Latin-1 Supplement (U+00A1 to U+00DF): some holes, some very weird because it's 8x8 # the invisible hyphen (that's just thicker) got moved to ― (U+2015 HORIZONTAL BAR) # the thin ± (subtable 2, 07) got moved to ∓; this is wrong, but # the 2x2 center dot (subtable 1, 77) is (U+00B7, MIDDLE DOT); the 1x1 one (subtable 2, 1e) is (U+22C5, DOT OPERATOR) # the thin £ (subtable 2, 1d) is remapped to ₤ (U+20A4, LIRA SIGN) # the control characters in subtable 2 get mapped to SYMBOL FOR XXX lambda c, s: { '1': { 0x5F: ord('🮕'), 0x60: ord('▯'), 0x61: ord('¡'), 0x62: ord('¢'), 0x63: ord('£'), 0x64: ord('¤'), 0x65: ord('¥'), 0x66: ord('¦'), 0x67: ord('§'), 0x68: ord('¨'), 0x69: ord('©'), 0x6A: ord('ª'), 0x6B: ord('«'), 0x6C: ord('¬'), 0x6D: ord('―'), 0x6E: ord('®'), 0x6F: ord('¯'), 0x70: ord('˚'), 0x71: ord('±'), 0x72: ord('²'), 0x73: ord('³'), 0x74: ord('´'), 0x75: ord('µ'), 0x76: ord('¶'), 0x77: ord('·'), 0x78: ord('¸'), 0x79: ord('¹'), 0x7A: ord('º'), 0x7B: ord('»'), 0x7C: ord('¼'), 0x7D: ord('½'), 0x7E: ord('¾'), 0x7F: ord('¿'), 0x80: ord('À'), 0x81: ord('Á'), 0x82: ord('Â'), 0x83: ord('Ã'), 0x84: ord('Ä'), 0x85: ord('Å'), 0x86: ord('Æ'), 0x87: ord('Ç'), 0x88: ord('È'), 0x89: ord('É'), 0x8A: ord('Ê'), 0x8B: ord('Ë'), 0x8C: ord('Ì'), 0x8D: ord('Í'), 0x8E: ord('Î'), 0x8F: ord('Ï'), 0x90: ord('Ð'), 0x91: ord('Ñ'), 0x92: ord('Ò'), 0x93: ord('Ó'), 0x94: ord('Ô'), 0x95: ord('Õ'), 0x96: ord('Ö'), 0x97: ord('×'), 0x98: ord('Ø'), 0x99: ord('Ù'), 0x9A: ord('Ú'), 0x9B: ord('Û'), 0x9C: ord('Ü'), 0x9D: ord('Ý'), 0x9E: ord('Þ'), 0x9F: ord('ß'), 0xA0: ord('à'), 0xA1: ord('á'), 0xA2: ord('â'), 0xA3: ord('ã'), 0xA4: ord('ä'), 0xA5: ord('å'), 0xA6: ord('æ'), 0xA7: ord('ç'), 0xA8: ord('è'), 0xA9: ord('é'), 0xAA: ord('ê'), 0xAB: ord('ë'), 0xAC: ord('ì'), 0xAD: ord('í'), 0xAE: ord('î'), 0xAF: ord('ï'), 0xB0: ord('ð'), 0xB1: ord('ñ'), 0xB2: ord('ò'), 0xB3: ord('ó'), 0xB4: ord('ô'), 0xB5: ord('õ'), 0xB6: ord('ö'), 0xB7: ord('÷'), 0xB8: ord('ø'), 0xB9: ord('ù'), 0xBA: ord('ú'), 0xBB: ord('û'), 0xBC: ord('ü'), 0xBD: ord('ý'), 0xBE: ord('þ'), 0xBF: ord('ÿ'), }, '2': { 0x00: ord('◆'), 0x01: ord('■'), 0x02: ord('␉'), 0x03: ord('␌'), 0x04: ord('␍'), 0x05: ord('␊'), 0x06: ord('°'), 0x07: ord('∓'), 0x08: ord('␤'), 0x09: ord('␋'), 0x0A: ord('┘'), 0x0B: ord('┐'), 0x0C: ord('┌'), 0x0D: ord('└'), 0x0E: ord('┼'), 0x0F: ord('▔'), 0x10: ord('🭷'), 0x11: ord('🭸'), 0x12: ord('🭺'), 0x13: ord('▁'), 0x14: ord('├'), 0x15: ord('┤'), 0x16: ord('┴'), 0x17: ord('┬'), 0x18: ord('│'), 0x19: ord('≤'), 0x1A: ord('≥'), 0x1B: 0x20, 0x1C: ord('≠'), 0x1D: ord('₤'), 0x1E: ord('⋅'), 0x1F: ord('▒'), } }.get(s).get(c) or c + 0x20