feat(core): add TT Hoves fonts, introduce medium variant

Co-authored-by: Pavol Rusnak <pavol@rusnak.io>

[no changelog]
mmilata/tt-pin-keyboard
Martin Milata 2 years ago
parent 310b6c5217
commit b46901bc8b

@ -181,6 +181,15 @@ SOURCE_MOD += [
'vendor/micropython/lib/uzlib/crc32.c',
'vendor/micropython/lib/uzlib/tinflate.c',
]
if NEW_UI:
CPPDEFINES_MOD += [
'TREZOR_FONT_MEDIUM_ENABLE',
]
SOURCE_MOD += [
'embed/extmod/modtrezorui/font_tthoves_bold_16.c',
'embed/extmod/modtrezorui/font_tthoves_medium_20.c',
'embed/extmod/modtrezorui/font_tthoves_regular_18.c',
]
# modtrezorutils
SOURCE_MOD += [

@ -176,6 +176,15 @@ SOURCE_MOD += [
'vendor/micropython/lib/uzlib/crc32.c',
'vendor/micropython/lib/uzlib/tinflate.c',
]
if NEW_UI:
CPPDEFINES_MOD += [
'TREZOR_FONT_MEDIUM_ENABLE',
]
SOURCE_MOD += [
'embed/extmod/modtrezorui/font_tthoves_bold_16.c',
'embed/extmod/modtrezorui/font_tthoves_medium_20.c',
'embed/extmod/modtrezorui/font_tthoves_regular_18.c',
]
if FROZEN:
CPPDEFINES_MOD += ['TREZOR_EMULATOR_FROZEN']

@ -30,17 +30,41 @@
#if TREZOR_MODEL == T
// TT new rust UI
#if TREZOR_FONT_MEDIUM_ENABLE
#include "font_tthoves_regular_18.h"
#define FONT_NORMAL_DATA Font_TTHoves_Regular_18
#define FONT_NORMAL_HEIGHT 18
#include "font_tthoves_medium_20.h"
#define FONT_MEDIUM_DATA Font_TTHoves_Medium_20
#define FONT_MEDIUM_HEIGHT 20
#include "font_tthoves_bold_16.h"
#define FONT_BOLD_DATA Font_TTHoves_Bold_16
#define FONT_BOLD_HEIGHT 16
#include "font_robotomono_regular_20.h"
#define FONT_MONO_DATA Font_RobotoMono_Regular_20
#define FONT_MONO_HEIGHT 20
// TT old python UI
#else
#ifdef TREZOR_FONT_NORMAL_ENABLE
#include "font_roboto_regular_20.h"
#define FONT_NORMAL_DATA Font_Roboto_Regular_20
#define FONT_NORMAL_HEIGHT 20
#endif
#ifdef TREZOR_FONT_BOLD_ENABLE
#include "font_roboto_bold_20.h"
#define FONT_BOLD_DATA Font_Roboto_Bold_20
#define FONT_BOLD_HEIGHT 20
#endif
#ifdef TREZOR_FONT_MONO_ENABLE
#include "font_robotomono_regular_20.h"
#define FONT_MONO_DATA Font_RobotoMono_Regular_20
#define FONT_MONO_HEIGHT 20
#endif
#endif
#elif TREZOR_MODEL == 1
@ -48,14 +72,22 @@
#ifdef TREZOR_FONT_NORMAL_ENABLE
#include "font_pixeloperator_regular_8.h"
#define FONT_NORMAL_DATA Font_PixelOperator_Regular_8
#define FONT_NORMAL_HEIGHT 8
#endif
#ifdef TREZOR_FONT_MEDIUM_ENABLE
#include "font_pixeloperator_regular_8.h"
#define FONT_MEDIUM_DATA Font_PixelOperator_Regular_8
#define FONT_MEDIUM_HEIGHT 8
#endif
#ifdef TREZOR_FONT_BOLD_ENABLE
#include "font_pixeloperator_bold_8.h"
#define FONT_BOLD_DATA Font_PixelOperator_Bold_8
#define FONT_BOLD_HEIGHT 8
#endif
#ifdef TREZOR_FONT_MONO_ENABLE
#include "font_pixeloperatormono_regular_8.h"
#define FONT_MONO_DATA Font_PixelOperatorMono_Regular_8
#define FONT_MONO_HEIGHT 8
#endif
#else
@ -632,6 +664,10 @@ static const uint8_t *get_glyph(int font, uint8_t c) {
case FONT_NORMAL:
return FONT_NORMAL_DATA[c - ' '];
#endif
#ifdef TREZOR_FONT_MEDIUM_ENABLE
case FONT_MEDIUM:
return FONT_MEDIUM_DATA[c - ' '];
#endif
#ifdef TREZOR_FONT_BOLD_ENABLE
case FONT_BOLD:
return FONT_BOLD_DATA[c - ' '];
@ -653,6 +689,10 @@ static const uint8_t *get_glyph(int font, uint8_t c) {
case FONT_NORMAL:
return NONPRINTABLE_GLYPH(FONT_NORMAL_DATA);
#endif
#ifdef TREZOR_FONT_MEDIUM_ENABLE
case FONT_MEDIUM:
return NONPRINTABLE_GLYPH(FONT_MEDIUM_DATA);
#endif
#ifdef TREZOR_FONT_BOLD_ENABLE
case FONT_BOLD:
return NONPRINTABLE_GLYPH(FONT_BOLD_DATA);
@ -793,6 +833,28 @@ int display_text_split(const char *text, int textlen, int font,
return textlen;
}
int display_text_height(int font) {
switch (font) {
#ifdef TREZOR_FONT_NORMAL_ENABLE
case FONT_NORMAL:
return FONT_NORMAL_HEIGHT;
#endif
#ifdef TREZOR_FONT_MEDIUM_ENABLE
case FONT_MEDIUM:
return FONT_MEDIUM_HEIGHT;
#endif
#ifdef TREZOR_FONT_BOLD_ENABLE
case FONT_BOLD:
return FONT_BOLD_HEIGHT;
#endif
#ifdef TREZOR_FONT_MONO_ENABLE
case FONT_MONO:
return FONT_MONO_HEIGHT;
#endif
}
return 0;
}
#define QR_MAX_VERSION 9
void display_qrcode(int x, int y, const char *data, uint32_t datalen,

@ -54,6 +54,9 @@
#ifdef TREZOR_FONT_NORMAL_ENABLE
#define FONT_NORMAL (-1)
#endif
#ifdef TREZOR_FONT_MEDIUM_ENABLE
#define FONT_MEDIUM (-5)
#endif
#ifdef TREZOR_FONT_BOLD_ENABLE
#define FONT_BOLD (-2)
#endif
@ -105,6 +108,7 @@ void display_text_right(int x, int y, const char *text, int textlen, int font,
int display_text_width(const char *text, int textlen, int font);
int display_text_split(const char *text, int textlen, int font,
int requested_width);
int display_text_height(int font);
void display_qrcode(int x, int y, const char *data, uint32_t datalen,
uint8_t scale);

@ -0,0 +1,203 @@
#include <stdint.h>
// clang-format off
// - the first two bytes are width and height of the glyph
// - the third, fourth and fifth bytes are advance, bearingX and bearingY of the horizontal metrics of the glyph
// - the rest is packed 4-bit glyph data
/* */ static const uint8_t Font_TTHoves_Bold_16_glyph_32[] = { 0, 0, 4, 0, 0 };
/* ! */ static const uint8_t Font_TTHoves_Bold_16_glyph_33[] = { 3, 12, 5, 1, 12, 191, 219, 253, 191, 219, 253, 191, 218, 251, 159, 167, 249, 19, 23, 168, 191, 219, 253 };
/* " */ static const uint8_t Font_TTHoves_Bold_16_glyph_34[] = { 7, 4, 7, 0, 12, 15, 241, 223, 64, 255, 29, 244, 15, 241, 223, 64, 255, 29, 244 };
/* # */ static const uint8_t Font_TTHoves_Bold_16_glyph_35[] = { 12, 12, 12, 0, 12, 0, 1, 255, 34, 255, 0, 0, 4, 254, 6, 253, 0, 1, 40, 252, 42, 251, 33, 10, 255, 255, 255, 255, 247, 13, 255, 255, 255, 255, 243, 0, 31, 242, 63, 240, 0, 0, 79, 240, 111, 208, 0, 127, 255, 255, 255, 255, 144, 191, 255, 255, 255, 255, 96, 34, 255, 99, 255, 82, 0, 1, 255, 19, 255, 0, 0, 4, 254, 6, 253, 0, 0 };
/* $ */ static const uint8_t Font_TTHoves_Bold_16_glyph_36[] = { 10, 15, 10, 0, 13, 0, 2, 255, 48, 0, 0, 4, 255, 80, 0, 1, 207, 255, 252, 32, 12, 255, 255, 255, 224, 47, 250, 17, 159, 245, 63, 247, 0, 8, 132, 14, 255, 218, 98, 0, 4, 239, 255, 255, 144, 0, 4, 122, 255, 245, 72, 128, 0, 47, 248, 95, 248, 16, 95, 247, 13, 255, 255, 255, 242, 2, 207, 255, 254, 64, 0, 4, 255, 80, 0, 0, 2, 255, 48, 0 };
/* % */ static const uint8_t Font_TTHoves_Bold_16_glyph_37[] = { 13, 12, 13, 0, 12, 4, 222, 144, 0, 79, 241, 2, 255, 223, 112, 13, 247, 0, 111, 96, 252, 6, 253, 0, 5, 249, 63, 177, 239, 80, 0, 13, 255, 244, 159, 176, 0, 0, 24, 148, 47, 242, 0, 0, 0, 0, 11, 249, 0, 0, 0, 0, 5, 254, 20, 222, 144, 0, 0, 223, 98, 255, 223, 128, 0, 127, 208, 95, 112, 253, 0, 31, 244, 2, 253, 175, 144, 10, 250, 0, 5, 223, 160 };
/* & */ static const uint8_t Font_TTHoves_Bold_16_glyph_38[] = { 11, 12, 10, 0, 12, 0, 125, 252, 64, 0, 0, 127, 255, 255, 48, 0, 13, 250, 61, 249, 0, 0, 207, 128, 191, 128, 0, 5, 255, 191, 243, 0, 0, 11, 255, 245, 0, 0, 6, 255, 253, 19, 169, 2, 255, 172, 252, 159, 192, 111, 240, 29, 255, 247, 5, 255, 65, 127, 255, 0, 14, 255, 255, 255, 248, 0, 42, 239, 198, 95, 246 };
/* ' */ static const uint8_t Font_TTHoves_Bold_16_glyph_39[] = { 4, 4, 4, 0, 12, 15, 241, 15, 241, 15, 241, 15, 241 };
/* ( */ static const uint8_t Font_TTHoves_Bold_16_glyph_40[] = { 5, 16, 6, 1, 12, 0, 239, 128, 127, 224, 13, 249, 2, 255, 48, 127, 224, 10, 252, 0, 191, 160, 13, 249, 0, 223, 144, 11, 250, 0, 175, 192, 7, 254, 0, 47, 243, 0, 223, 144, 7, 254, 0, 14, 248 };
/* ) */ static const uint8_t Font_TTHoves_Bold_16_glyph_41[] = { 6, 16, 6, 0, 12, 111, 242, 0, 13, 249, 0, 6, 255, 0, 1, 255, 80, 0, 207, 144, 0, 175, 192, 0, 143, 208, 0, 111, 240, 0, 111, 240, 0, 143, 208, 0, 175, 192, 0, 207, 144, 1, 255, 80, 6, 255, 0, 13, 249, 0, 111, 242, 0 };
/* * */ static const uint8_t Font_TTHoves_Bold_16_glyph_42[] = { 8, 7, 8, 0, 12, 0, 15, 192, 0, 2, 13, 176, 48, 63, 206, 221, 240, 58, 255, 254, 161, 0, 175, 248, 0, 7, 249, 207, 64, 1, 176, 43, 0 };
/* + */ static const uint8_t Font_TTHoves_Bold_16_glyph_43[] = { 9, 7, 9, 0, 8, 0, 10, 249, 0, 0, 0, 175, 144, 0, 63, 255, 255, 255, 35, 255, 255, 255, 242, 3, 59, 251, 51, 0, 0, 175, 144, 0, 0, 10, 249, 0, 0 };
/* , */ static const uint8_t Font_TTHoves_Bold_16_glyph_44[] = { 4, 4, 4, 0, 3, 15, 248, 31, 243, 63, 240, 95, 160 };
/* - */ static const uint8_t Font_TTHoves_Bold_16_glyph_45[] = { 7, 3, 7, 0, 6, 63, 255, 255, 67, 255, 255, 244, 3, 51, 51, 16 };
/* . */ static const uint8_t Font_TTHoves_Bold_16_glyph_46[] = { 4, 3, 5, 0, 3, 10, 166, 15, 249, 15, 249 };
/* / */ static const uint8_t Font_TTHoves_Bold_16_glyph_47[] = { 7, 16, 7, 0, 12, 0, 0, 191, 160, 0, 15, 246, 0, 4, 255, 16, 0, 159, 208, 0, 13, 248, 0, 1, 255, 64, 0, 111, 240, 0, 10, 251, 0, 0, 239, 112, 0, 63, 242, 0, 7, 254, 0, 0, 207, 160, 0, 15, 245, 0, 5, 255, 16, 0, 159, 192, 0, 13, 248, 0, 0 };
/* 0 */ static const uint8_t Font_TTHoves_Bold_16_glyph_48[] = { 11, 12, 11, 0, 12, 0, 7, 207, 198, 0, 0, 12, 255, 255, 250, 0, 6, 255, 216, 223, 244, 0, 239, 208, 1, 255, 192, 31, 247, 0, 9, 255, 3, 255, 80, 0, 127, 241, 63, 245, 0, 7, 255, 17, 255, 112, 0, 159, 240, 14, 253, 0, 31, 252, 0, 111, 252, 141, 255, 64, 0, 207, 255, 255, 160, 0, 0, 140, 252, 96, 0 };
/* 1 */ static const uint8_t Font_TTHoves_Bold_16_glyph_49[] = { 6, 12, 6, 0, 12, 0, 79, 244, 54, 175, 244, 143, 255, 244, 143, 255, 244, 0, 79, 244, 0, 79, 244, 0, 79, 244, 0, 79, 244, 0, 79, 244, 0, 79, 244, 0, 79, 244, 0, 79, 244 };
/* 2 */ static const uint8_t Font_TTHoves_Bold_16_glyph_50[] = { 9, 12, 9, 0, 12, 0, 108, 253, 128, 0, 127, 255, 255, 176, 31, 255, 174, 255, 68, 255, 96, 63, 247, 2, 32, 3, 255, 112, 0, 1, 223, 243, 0, 1, 223, 248, 0, 1, 223, 249, 0, 1, 223, 249, 0, 1, 239, 254, 119, 116, 63, 255, 255, 255, 163, 255, 255, 255, 250 };
/* 3 */ static const uint8_t Font_TTHoves_Bold_16_glyph_51[] = { 9, 12, 9, 0, 12, 0, 108, 253, 128, 0, 159, 255, 255, 192, 47, 253, 140, 255, 67, 187, 48, 47, 246, 0, 0, 25, 255, 48, 0, 63, 255, 144, 0, 3, 255, 249, 0, 0, 0, 111, 245, 91, 178, 0, 255, 148, 255, 199, 207, 247, 11, 255, 255, 253, 16, 7, 223, 217, 16 };
/* 4 */ static const uint8_t Font_TTHoves_Bold_16_glyph_52[] = { 10, 12, 9, 0, 12, 0, 4, 255, 253, 0, 0, 12, 255, 253, 0, 0, 95, 255, 253, 0, 0, 223, 187, 253, 0, 6, 255, 59, 253, 0, 14, 250, 11, 253, 0, 127, 242, 11, 253, 0, 207, 255, 255, 255, 240, 207, 255, 255, 255, 240, 69, 85, 92, 254, 80, 0, 0, 11, 253, 0, 0, 0, 11, 253, 0 };
/* 5 */ static const uint8_t Font_TTHoves_Bold_16_glyph_53[] = { 9, 12, 9, 0, 12, 8, 255, 255, 255, 64, 159, 255, 255, 244, 11, 252, 85, 85, 16, 207, 144, 0, 0, 14, 254, 238, 162, 0, 255, 255, 255, 241, 31, 253, 122, 255, 144, 0, 0, 13, 252, 41, 147, 0, 239, 192, 239, 231, 191, 249, 6, 255, 255, 254, 16, 5, 207, 234, 16 };
/* 6 */ static const uint8_t Font_TTHoves_Bold_16_glyph_54[] = { 9, 12, 9, 0, 12, 0, 0, 223, 241, 0, 0, 111, 247, 0, 0, 30, 253, 0, 0, 9, 255, 64, 0, 3, 255, 254, 161, 0, 207, 255, 255, 225, 63, 253, 122, 255, 134, 255, 64, 13, 252, 95, 244, 0, 239, 194, 255, 232, 191, 248, 7, 255, 255, 253, 0, 5, 207, 217, 16 };
/* 7 */ static const uint8_t Font_TTHoves_Bold_16_glyph_55[] = { 9, 12, 9, 0, 12, 143, 255, 255, 255, 40, 255, 255, 255, 242, 71, 119, 127, 255, 16, 0, 3, 255, 160, 0, 0, 159, 244, 0, 0, 15, 253, 0, 0, 6, 255, 112, 0, 0, 207, 241, 0, 0, 47, 251, 0, 0, 9, 255, 64, 0, 0, 239, 224, 0, 0, 95, 248, 0, 0 };
/* 8 */ static const uint8_t Font_TTHoves_Bold_16_glyph_56[] = { 9, 12, 9, 0, 12, 0, 108, 253, 145, 0, 143, 255, 255, 209, 15, 253, 89, 255, 114, 255, 112, 15, 249, 15, 252, 39, 255, 96, 111, 255, 255, 192, 5, 255, 255, 251, 1, 255, 161, 79, 248, 95, 244, 0, 223, 179, 255, 197, 143, 249, 10, 255, 255, 255, 32, 7, 223, 234, 32 };
/* 9 */ static const uint8_t Font_TTHoves_Bold_16_glyph_57[] = { 9, 12, 9, 0, 12, 0, 92, 253, 144, 0, 127, 255, 255, 208, 31, 254, 139, 255, 133, 255, 64, 14, 252, 95, 244, 0, 223, 194, 255, 214, 175, 250, 9, 255, 255, 255, 48, 6, 223, 255, 160, 0, 0, 223, 241, 0, 0, 111, 247, 0, 0, 31, 253, 0, 0, 9, 255, 64, 0 };
/* : */ static const uint8_t Font_TTHoves_Bold_16_glyph_58[] = { 4, 9, 5, 0, 9, 15, 249, 15, 249, 10, 166, 0, 0, 0, 0, 0, 0, 10, 166, 15, 249, 15, 249 };
/* ; */ static const uint8_t Font_TTHoves_Bold_16_glyph_59[] = { 4, 10, 4, 0, 9, 15, 250, 15, 250, 10, 167, 0, 0, 0, 0, 3, 50, 15, 247, 47, 243, 63, 224, 95, 160 };
/* < */ static const uint8_t Font_TTHoves_Bold_16_glyph_60[] = { 9, 8, 9, 0, 9, 0, 0, 0, 108, 16, 0, 57, 255, 241, 6, 223, 255, 233, 1, 255, 250, 64, 0, 31, 255, 164, 0, 0, 125, 255, 254, 144, 0, 3, 159, 255, 16, 0, 0, 6, 193 };
/* = */ static const uint8_t Font_TTHoves_Bold_16_glyph_61[] = { 7, 7, 9, 1, 8, 17, 17, 17, 30, 255, 255, 253, 239, 255, 255, 208, 0, 0, 0, 239, 255, 255, 222, 255, 255, 253, 17, 17, 17, 16 };
/* > */ static const uint8_t Font_TTHoves_Bold_16_glyph_62[] = { 9, 8, 9, 0, 9, 28, 80, 0, 0, 1, 255, 233, 48, 0, 10, 255, 255, 198, 0, 0, 90, 255, 241, 0, 5, 175, 255, 16, 158, 255, 253, 96, 31, 255, 147, 0, 1, 197, 0, 0, 0 };
/* ? */ static const uint8_t Font_TTHoves_Bold_16_glyph_63[] = { 9, 12, 9, 0, 12, 1, 157, 252, 96, 0, 223, 255, 255, 128, 111, 250, 126, 255, 5, 136, 0, 159, 241, 0, 0, 45, 254, 0, 0, 78, 254, 48, 0, 13, 253, 32, 0, 0, 255, 96, 0, 0, 3, 49, 0, 0, 1, 170, 64, 0, 0, 31, 246, 0, 0, 1, 255, 96, 0 };
/* @ */ static const uint8_t Font_TTHoves_Bold_16_glyph_64[] = { 15, 14, 15, 0, 12, 0, 0, 57, 207, 219, 112, 0, 0, 0, 159, 255, 255, 255, 229, 0, 0, 175, 230, 16, 3, 175, 243, 0, 79, 225, 58, 199, 168, 111, 208, 12, 245, 47, 255, 255, 176, 207, 64, 255, 9, 250, 26, 251, 8, 247, 47, 208, 207, 64, 79, 176, 111, 145, 254, 12, 244, 3, 251, 7, 248, 15, 240, 159, 144, 159, 225, 207, 80, 207, 83, 255, 255, 255, 255, 224, 5, 254, 20, 206, 164, 190, 178, 0, 11, 254, 98, 0, 0, 0, 0, 0, 9, 255, 255, 255, 208, 0, 0, 0, 3, 155, 238, 236, 0, 0 };
/* A */ static const uint8_t Font_TTHoves_Bold_16_glyph_65[] = { 13, 12, 12, 0, 12, 0, 0, 111, 255, 144, 0, 0, 0, 11, 255, 254, 0, 0, 0, 1, 255, 255, 243, 0, 0, 0, 95, 244, 255, 128, 0, 0, 11, 254, 11, 253, 0, 0, 0, 255, 144, 111, 243, 0, 0, 95, 244, 2, 255, 128, 0, 10, 255, 255, 255, 253, 0, 0, 255, 255, 255, 255, 242, 0, 79, 248, 51, 53, 255, 112, 9, 255, 16, 0, 14, 252, 0, 239, 208, 0, 0, 175, 241 };
/* B */ static const uint8_t Font_TTHoves_Bold_16_glyph_66[] = { 9, 12, 11, 1, 12, 239, 255, 255, 214, 14, 255, 255, 255, 245, 239, 195, 54, 255, 190, 250, 0, 12, 252, 239, 160, 2, 255, 174, 255, 255, 255, 242, 239, 255, 255, 254, 46, 252, 51, 94, 251, 239, 160, 0, 175, 254, 251, 51, 94, 253, 239, 255, 255, 255, 142, 255, 255, 253, 128 };
/* C */ static const uint8_t Font_TTHoves_Bold_16_glyph_67[] = { 12, 12, 12, 0, 12, 0, 4, 174, 252, 80, 0, 0, 143, 255, 255, 248, 0, 5, 255, 249, 158, 255, 80, 14, 254, 32, 1, 223, 208, 31, 247, 0, 0, 55, 113, 79, 244, 0, 0, 0, 0, 79, 244, 0, 0, 0, 0, 31, 247, 0, 0, 56, 129, 14, 254, 32, 1, 223, 208, 5, 255, 233, 158, 255, 96, 0, 143, 255, 255, 248, 0, 0, 4, 174, 252, 96, 0 };
/* D */ static const uint8_t Font_TTHoves_Bold_16_glyph_68[] = { 10, 12, 11, 1, 12, 239, 255, 251, 112, 0, 239, 255, 255, 252, 16, 239, 215, 141, 255, 160, 239, 160, 0, 191, 243, 239, 160, 0, 47, 247, 239, 160, 0, 14, 250, 239, 160, 0, 14, 250, 239, 160, 0, 47, 247, 239, 160, 0, 191, 243, 239, 215, 141, 255, 160, 239, 255, 255, 252, 16, 239, 255, 252, 112, 0 };
/* E */ static const uint8_t Font_TTHoves_Bold_16_glyph_69[] = { 8, 12, 10, 1, 12, 239, 255, 255, 252, 239, 255, 255, 252, 239, 197, 85, 84, 239, 160, 0, 0, 239, 160, 0, 0, 239, 255, 255, 247, 239, 255, 255, 247, 239, 195, 51, 49, 239, 160, 0, 0, 239, 196, 68, 67, 239, 255, 255, 252, 239, 255, 255, 252 };
/* F */ static const uint8_t Font_TTHoves_Bold_16_glyph_70[] = { 8, 12, 9, 1, 12, 239, 255, 255, 251, 239, 255, 255, 251, 239, 197, 85, 83, 239, 160, 0, 0, 239, 179, 51, 49, 239, 255, 255, 244, 239, 255, 255, 244, 239, 160, 0, 0, 239, 160, 0, 0, 239, 160, 0, 0, 239, 160, 0, 0, 239, 160, 0, 0 };
/* G */ static const uint8_t Font_TTHoves_Bold_16_glyph_71[] = { 12, 12, 12, 0, 12, 0, 4, 174, 252, 80, 0, 0, 127, 255, 255, 248, 0, 4, 255, 250, 158, 255, 96, 13, 255, 48, 1, 223, 224, 31, 248, 0, 0, 36, 64, 63, 244, 0, 0, 0, 0, 95, 243, 0, 207, 255, 244, 47, 246, 0, 156, 223, 244, 14, 254, 16, 0, 191, 244, 5, 255, 233, 141, 255, 244, 0, 159, 255, 255, 255, 244, 0, 4, 190, 251, 75, 244 };
/* H */ static const uint8_t Font_TTHoves_Bold_16_glyph_72[] = { 10, 12, 12, 1, 12, 239, 160, 0, 15, 248, 239, 160, 0, 15, 248, 239, 160, 0, 15, 248, 239, 160, 0, 15, 248, 239, 234, 170, 175, 248, 239, 255, 255, 255, 248, 239, 255, 255, 255, 248, 239, 160, 0, 15, 248, 239, 160, 0, 15, 248, 239, 160, 0, 15, 248, 239, 160, 0, 15, 248, 239, 160, 0, 15, 248 };
/* I */ static const uint8_t Font_TTHoves_Bold_16_glyph_73[] = { 3, 12, 5, 1, 12, 239, 174, 250, 239, 174, 250, 239, 174, 250, 239, 174, 250, 239, 174, 250, 239, 174, 250 };
/* J */ static const uint8_t Font_TTHoves_Bold_16_glyph_74[] = { 6, 12, 7, 0, 12, 0, 11, 253, 0, 11, 253, 0, 11, 253, 0, 11, 253, 0, 11, 253, 0, 11, 253, 0, 11, 253, 0, 11, 253, 0, 11, 253, 103, 143, 252, 223, 255, 250, 223, 255, 177 };
/* K */ static const uint8_t Font_TTHoves_Bold_16_glyph_75[] = { 10, 12, 10, 1, 12, 239, 160, 5, 255, 176, 239, 160, 30, 255, 32, 239, 160, 175, 247, 0, 239, 164, 255, 192, 0, 239, 189, 255, 32, 0, 239, 255, 248, 0, 0, 239, 255, 250, 0, 0, 239, 171, 255, 64, 0, 239, 161, 255, 225, 0, 239, 160, 111, 250, 0, 239, 160, 11, 255, 80, 239, 160, 1, 255, 225 };
/* L */ static const uint8_t Font_TTHoves_Bold_16_glyph_76[] = { 8, 12, 9, 1, 12, 239, 160, 0, 0, 239, 160, 0, 0, 239, 160, 0, 0, 239, 160, 0, 0, 239, 160, 0, 0, 239, 160, 0, 0, 239, 160, 0, 0, 239, 160, 0, 0, 239, 160, 0, 0, 239, 215, 119, 117, 239, 255, 255, 251, 239, 255, 255, 251 };
/* M */ static const uint8_t Font_TTHoves_Bold_16_glyph_77[] = { 13, 12, 15, 1, 12, 239, 255, 32, 0, 79, 255, 190, 255, 247, 0, 9, 255, 251, 239, 255, 192, 0, 239, 255, 190, 255, 255, 16, 47, 255, 251, 239, 255, 245, 7, 255, 255, 190, 250, 223, 160, 207, 188, 251, 239, 168, 254, 31, 246, 207, 190, 250, 63, 250, 255, 28, 251, 239, 160, 239, 255, 192, 207, 190, 250, 9, 255, 246, 12, 251, 239, 160, 63, 255, 16, 207, 190, 250, 0, 239, 192, 12, 251 };
/* N */ static const uint8_t Font_TTHoves_Bold_16_glyph_78[] = { 10, 12, 12, 1, 12, 239, 247, 0, 14, 250, 239, 254, 0, 14, 250, 239, 255, 96, 14, 250, 239, 255, 224, 14, 250, 239, 255, 246, 14, 250, 239, 171, 253, 14, 250, 239, 163, 255, 94, 250, 239, 160, 191, 239, 250, 239, 160, 63, 255, 250, 239, 160, 11, 255, 250, 239, 160, 3, 255, 250, 239, 160, 0, 191, 250 };
/* O */ static const uint8_t Font_TTHoves_Bold_16_glyph_79[] = { 12, 12, 12, 0, 12, 0, 4, 174, 235, 80, 0, 0, 143, 255, 255, 250, 0, 5, 255, 249, 158, 255, 112, 14, 254, 32, 1, 223, 241, 31, 247, 0, 0, 95, 244, 79, 244, 0, 0, 47, 246, 79, 244, 0, 0, 47, 246, 31, 247, 0, 0, 95, 244, 14, 254, 32, 1, 223, 241, 5, 255, 233, 142, 255, 112, 0, 143, 255, 255, 250, 0, 0, 4, 174, 235, 80, 0 };
/* P */ static const uint8_t Font_TTHoves_Bold_16_glyph_80[] = { 9, 12, 11, 1, 12, 239, 255, 255, 195, 14, 255, 255, 255, 243, 239, 215, 122, 255, 190, 250, 0, 11, 254, 239, 160, 0, 191, 238, 253, 119, 175, 251, 239, 255, 255, 255, 62, 255, 255, 252, 64, 239, 160, 0, 0, 14, 250, 0, 0, 0, 239, 160, 0, 0, 14, 250, 0, 0, 0 };
/* Q */ static const uint8_t Font_TTHoves_Bold_16_glyph_81[] = { 12, 13, 12, 0, 12, 0, 4, 174, 235, 80, 0, 0, 143, 255, 255, 250, 0, 5, 255, 249, 158, 255, 112, 14, 254, 32, 1, 223, 241, 31, 247, 0, 0, 95, 244, 79, 244, 0, 0, 47, 246, 79, 244, 0, 0, 31, 247, 31, 247, 0, 0, 79, 244, 14, 254, 43, 238, 223, 241, 5, 255, 235, 255, 255, 128, 0, 143, 255, 255, 254, 0, 0, 4, 174, 252, 255, 128, 0, 0, 0, 0, 159, 245 };
/* R */ static const uint8_t Font_TTHoves_Bold_16_glyph_82[] = { 10, 12, 11, 1, 12, 239, 255, 255, 196, 0, 239, 255, 255, 255, 64, 239, 198, 105, 255, 192, 239, 160, 0, 175, 240, 239, 160, 0, 159, 240, 239, 160, 2, 239, 224, 239, 255, 255, 255, 112, 239, 255, 255, 249, 0, 239, 205, 255, 80, 0, 239, 161, 239, 242, 0, 239, 160, 47, 254, 32, 239, 160, 4, 255, 209 };
/* S */ static const uint8_t Font_TTHoves_Bold_16_glyph_83[] = { 10, 12, 10, 0, 12, 0, 92, 238, 198, 0, 8, 255, 255, 255, 144, 31, 253, 101, 223, 243, 63, 246, 0, 47, 246, 47, 253, 98, 0, 0, 10, 255, 255, 250, 32, 0, 124, 255, 255, 241, 0, 0, 3, 175, 247, 110, 226, 0, 31, 248, 63, 253, 100, 175, 246, 9, 255, 255, 255, 192, 0, 92, 239, 200, 0 };
/* T */ static const uint8_t Font_TTHoves_Bold_16_glyph_84[] = { 10, 12, 9, 0, 12, 175, 255, 255, 255, 241, 175, 255, 255, 255, 241, 87, 124, 255, 119, 112, 0, 8, 255, 0, 0, 0, 8, 255, 0, 0, 0, 8, 255, 0, 0, 0, 8, 255, 0, 0, 0, 8, 255, 0, 0, 0, 8, 255, 0, 0, 0, 8, 255, 0, 0, 0, 8, 255, 0, 0, 0, 8, 255, 0, 0 };
/* U */ static const uint8_t Font_TTHoves_Bold_16_glyph_85[] = { 10, 12, 12, 1, 12, 255, 144, 0, 31, 247, 255, 144, 0, 31, 247, 255, 144, 0, 31, 247, 255, 144, 0, 31, 247, 255, 144, 0, 31, 247, 255, 144, 0, 31, 247, 255, 144, 0, 31, 247, 239, 160, 0, 47, 246, 191, 225, 0, 143, 243, 111, 254, 138, 255, 224, 12, 255, 255, 255, 64, 0, 124, 253, 162, 0 };
/* V */ static const uint8_t Font_TTHoves_Bold_16_glyph_86[] = { 12, 12, 11, 0, 12, 223, 224, 0, 0, 239, 224, 143, 243, 0, 3, 255, 144, 63, 248, 0, 8, 255, 64, 14, 253, 0, 12, 255, 0, 9, 255, 32, 31, 250, 0, 5, 255, 96, 111, 245, 0, 0, 255, 176, 191, 240, 0, 0, 191, 241, 255, 176, 0, 0, 111, 251, 255, 96, 0, 0, 31, 255, 255, 16, 0, 0, 12, 255, 253, 0, 0, 0, 7, 255, 248, 0, 0 };
/* W */ static const uint8_t Font_TTHoves_Bold_16_glyph_87[] = { 16, 12, 16, 0, 12, 207, 240, 0, 143, 246, 0, 47, 250, 159, 243, 0, 207, 250, 0, 95, 246, 95, 246, 0, 255, 253, 0, 159, 243, 47, 249, 4, 255, 255, 16, 207, 240, 14, 253, 8, 255, 255, 80, 255, 176, 10, 255, 11, 250, 207, 147, 255, 128, 7, 255, 79, 246, 159, 199, 255, 64, 3, 255, 223, 242, 95, 253, 255, 16, 0, 255, 255, 224, 31, 255, 253, 0, 0, 207, 255, 160, 13, 255, 249, 0, 0, 143, 255, 96, 9, 255, 245, 0, 0, 95, 255, 48, 5, 255, 242, 0 };
/* X */ static const uint8_t Font_TTHoves_Bold_16_glyph_88[] = { 12, 12, 11, 0, 12, 11, 255, 64, 0, 239, 242, 2, 255, 208, 7, 255, 112, 0, 127, 246, 31, 253, 0, 0, 13, 254, 175, 244, 0, 0, 4, 255, 255, 160, 0, 0, 0, 191, 255, 16, 0, 0, 0, 223, 255, 64, 0, 0, 7, 255, 255, 208, 0, 0, 47, 253, 127, 247, 0, 0, 191, 244, 13, 255, 32, 5, 255, 160, 4, 255, 176, 14, 255, 16, 0, 191, 245 };
/* Y */ static const uint8_t Font_TTHoves_Bold_16_glyph_89[] = { 12, 12, 11, 0, 12, 31, 253, 0, 0, 175, 243, 8, 255, 80, 1, 255, 176, 1, 255, 192, 9, 255, 48, 0, 143, 244, 31, 251, 0, 0, 31, 251, 127, 243, 0, 0, 8, 255, 255, 192, 0, 0, 1, 255, 255, 64, 0, 0, 0, 143, 252, 0, 0, 0, 0, 63, 246, 0, 0, 0, 0, 47, 246, 0, 0, 0, 0, 47, 246, 0, 0, 0, 0, 47, 246, 0, 0 };
/* Z */ static const uint8_t Font_TTHoves_Bold_16_glyph_90[] = { 10, 12, 10, 0, 12, 79, 255, 255, 255, 243, 79, 255, 255, 255, 243, 39, 119, 123, 255, 241, 0, 0, 30, 255, 80, 0, 0, 175, 250, 0, 0, 6, 255, 225, 0, 0, 47, 255, 48, 0, 0, 207, 248, 0, 0, 8, 255, 192, 0, 0, 63, 255, 151, 119, 114, 95, 255, 255, 255, 244, 95, 255, 255, 255, 244 };
/* [ */ static const uint8_t Font_TTHoves_Bold_16_glyph_91[] = { 5, 16, 6, 1, 12, 191, 255, 155, 255, 249, 191, 195, 43, 250, 0, 191, 160, 11, 250, 0, 191, 160, 11, 250, 0, 191, 160, 11, 250, 0, 191, 160, 11, 250, 0, 191, 160, 11, 251, 50, 191, 255, 155, 255, 249 };
/* \ */ static const uint8_t Font_TTHoves_Bold_16_glyph_92[] = { 7, 16, 7, 0, 12, 223, 128, 0, 9, 252, 0, 0, 95, 241, 0, 0, 255, 80, 0, 12, 250, 0, 0, 127, 224, 0, 3, 255, 32, 0, 14, 247, 0, 0, 175, 176, 0, 6, 255, 0, 0, 31, 244, 0, 0, 223, 128, 0, 9, 253, 0, 0, 79, 241, 0, 0, 255, 96, 0, 11, 250 };
/* ] */ static const uint8_t Font_TTHoves_Bold_16_glyph_93[] = { 5, 16, 6, 0, 12, 127, 255, 215, 255, 253, 19, 175, 208, 8, 253, 0, 143, 208, 8, 253, 0, 143, 208, 8, 253, 0, 143, 208, 8, 253, 0, 143, 208, 8, 253, 0, 143, 209, 58, 253, 127, 255, 215, 255, 253 };
/* ^ */ static const uint8_t Font_TTHoves_Bold_16_glyph_94[] = { 7, 5, 7, 0, 12, 0, 223, 244, 0, 63, 255, 144, 8, 250, 254, 0, 223, 60, 244, 63, 224, 127, 160 };
/* _ */ static const uint8_t Font_TTHoves_Bold_16_glyph_95[] = { 8, 3, 7, 0, 0, 19, 51, 51, 50, 95, 255, 255, 251, 95, 255, 255, 251 };
/* ` */ static const uint8_t Font_TTHoves_Bold_16_glyph_96[] = { 5, 3, 5, 0, 12, 47, 243, 0, 79, 208, 0, 53, 16 };
/* a */ static const uint8_t Font_TTHoves_Bold_16_glyph_97[] = { 9, 9, 9, 0, 9, 0, 141, 253, 128, 0, 175, 255, 255, 160, 10, 165, 9, 255, 0, 5, 137, 191, 242, 12, 255, 255, 255, 37, 255, 80, 95, 242, 111, 242, 11, 255, 34, 255, 254, 255, 242, 4, 223, 214, 255, 32 };
/* b */ static const uint8_t Font_TTHoves_Bold_16_glyph_98[] = { 9, 12, 10, 1, 12, 255, 96, 0, 0, 15, 246, 0, 0, 0, 255, 96, 0, 0, 15, 250, 207, 198, 0, 255, 255, 255, 248, 15, 255, 133, 207, 241, 255, 160, 1, 255, 95, 247, 0, 14, 247, 255, 160, 1, 255, 95, 255, 116, 207, 241, 255, 255, 255, 248, 15, 247, 207, 214, 0 };
/* c */ static const uint8_t Font_TTHoves_Bold_16_glyph_99[] = { 9, 9, 9, 0, 9, 0, 76, 238, 161, 0, 111, 255, 255, 209, 31, 253, 87, 255, 132, 255, 32, 5, 134, 111, 240, 0, 0, 4, 255, 32, 5, 118, 31, 252, 71, 255, 128, 111, 255, 255, 209, 0, 76, 254, 161, 0 };
/* d */ static const uint8_t Font_TTHoves_Bold_16_glyph_100[] = { 10, 12, 10, 0, 12, 0, 0, 0, 95, 240, 0, 0, 0, 95, 240, 0, 0, 0, 95, 240, 0, 92, 252, 159, 240, 7, 255, 255, 255, 240, 31, 253, 87, 255, 240, 79, 242, 0, 159, 240, 111, 240, 0, 111, 240, 79, 242, 0, 159, 240, 31, 252, 71, 255, 240, 7, 255, 255, 255, 240, 0, 92, 252, 111, 240 };
/* e */ static const uint8_t Font_TTHoves_Bold_16_glyph_101[] = { 9, 9, 10, 0, 9, 0, 76, 237, 145, 0, 111, 255, 255, 225, 31, 248, 1, 239, 148, 255, 118, 107, 253, 111, 255, 255, 255, 228, 255, 32, 0, 0, 31, 249, 2, 154, 80, 111, 255, 255, 225, 0, 76, 253, 145, 0 };
/* f */ static const uint8_t Font_TTHoves_Bold_16_glyph_102[] = { 6, 12, 6, 0, 12, 0, 126, 254, 2, 255, 254, 3, 255, 48, 143, 255, 254, 143, 255, 254, 38, 255, 83, 3, 255, 32, 3, 255, 32, 3, 255, 32, 3, 255, 32, 3, 255, 32, 3, 255, 32 };
/* g */ static const uint8_t Font_TTHoves_Bold_16_glyph_103[] = { 9, 13, 10, 0, 9, 0, 125, 251, 143, 176, 143, 255, 255, 251, 31, 252, 90, 255, 180, 255, 64, 15, 251, 111, 240, 0, 207, 180, 255, 48, 15, 251, 31, 252, 73, 255, 176, 159, 255, 255, 251, 0, 125, 234, 207, 176, 17, 0, 12, 250, 47, 249, 38, 255, 128, 159, 255, 255, 225, 0, 125, 254, 162, 0 };
/* h */ static const uint8_t Font_TTHoves_Bold_16_glyph_104[] = { 8, 12, 10, 1, 12, 255, 96, 0, 0, 255, 96, 0, 0, 255, 96, 0, 0, 255, 172, 253, 80, 255, 255, 255, 244, 255, 248, 159, 251, 255, 144, 11, 253, 255, 112, 8, 253, 255, 96, 8, 253, 255, 96, 8, 253, 255, 96, 8, 253, 255, 96, 8, 253 };
/* i */ static const uint8_t Font_TTHoves_Bold_16_glyph_105[] = { 4, 13, 4, 0, 13, 1, 16, 15, 245, 15, 245, 0, 0, 15, 245, 15, 245, 15, 245, 15, 245, 15, 245, 15, 245, 15, 245, 15, 245, 15, 245 };
/* j */ static const uint8_t Font_TTHoves_Bold_16_glyph_106[] = { 5, 17, 5, 0, 13, 0, 17, 0, 15, 245, 0, 255, 80, 0, 0, 0, 255, 80, 15, 245, 0, 255, 80, 15, 245, 0, 255, 80, 15, 245, 0, 255, 80, 15, 245, 0, 255, 80, 15, 245, 53, 255, 92, 255, 243, 207, 232, 0 };
/* k */ static const uint8_t Font_TTHoves_Bold_16_glyph_107[] = { 9, 12, 9, 1, 12, 255, 96, 0, 0, 15, 246, 0, 0, 0, 255, 96, 0, 0, 15, 246, 2, 255, 144, 255, 96, 207, 208, 15, 246, 127, 243, 0, 255, 175, 247, 0, 15, 255, 255, 0, 0, 255, 142, 249, 0, 15, 246, 95, 245, 0, 255, 96, 175, 225, 15, 246, 1, 239, 176 };
/* l */ static const uint8_t Font_TTHoves_Bold_16_glyph_108[] = { 3, 12, 4, 1, 12, 255, 111, 246, 255, 111, 246, 255, 111, 246, 255, 111, 246, 255, 111, 246, 255, 111, 246 };
/* m */ static const uint8_t Font_TTHoves_Bold_16_glyph_109[] = { 13, 9, 14, 0, 9, 15, 246, 206, 162, 174, 215, 0, 255, 255, 255, 255, 255, 246, 15, 254, 125, 255, 199, 239, 192, 255, 112, 95, 244, 8, 254, 15, 245, 3, 255, 32, 111, 240, 255, 80, 63, 242, 6, 255, 15, 245, 3, 255, 32, 111, 240, 255, 80, 63, 242, 6, 255, 15, 245, 3, 255, 32, 111, 240 };
/* n */ static const uint8_t Font_TTHoves_Bold_16_glyph_110[] = { 9, 9, 10, 0, 9, 15, 246, 223, 196, 0, 255, 255, 255, 243, 15, 255, 137, 255, 160, 255, 128, 12, 252, 15, 245, 0, 159, 192, 255, 80, 9, 252, 15, 245, 0, 159, 192, 255, 80, 9, 252, 15, 245, 0, 159, 192 };
/* o */ static const uint8_t Font_TTHoves_Bold_16_glyph_111[] = { 10, 9, 10, 0, 9, 0, 76, 237, 145, 0, 6, 255, 255, 254, 16, 31, 253, 87, 255, 144, 79, 242, 0, 159, 208, 111, 240, 0, 111, 240, 79, 242, 0, 159, 208, 31, 252, 71, 255, 144, 6, 255, 255, 254, 16, 0, 76, 253, 161, 0 };
/* p */ static const uint8_t Font_TTHoves_Bold_16_glyph_112[] = { 10, 13, 10, 0, 9, 15, 246, 207, 197, 0, 15, 255, 255, 255, 96, 15, 255, 117, 223, 241, 15, 249, 0, 63, 244, 15, 246, 0, 15, 246, 15, 249, 0, 47, 244, 15, 255, 117, 223, 241, 15, 255, 255, 255, 96, 15, 249, 223, 197, 0, 15, 245, 0, 0, 0, 15, 245, 0, 0, 0, 15, 245, 0, 0, 0, 15, 245, 0, 0, 0 };
/* q */ static const uint8_t Font_TTHoves_Bold_16_glyph_113[] = { 10, 13, 10, 0, 9, 0, 92, 252, 111, 240, 7, 255, 255, 255, 240, 31, 253, 87, 255, 240, 79, 242, 0, 159, 240, 111, 240, 0, 111, 240, 79, 242, 0, 159, 240, 31, 252, 71, 255, 240, 7, 255, 255, 255, 240, 0, 92, 253, 159, 240, 0, 0, 0, 95, 240, 0, 0, 0, 95, 240, 0, 0, 0, 95, 240, 0, 0, 0, 95, 240 };
/* r */ static const uint8_t Font_TTHoves_Bold_16_glyph_114[] = { 7, 9, 6, 0, 9, 15, 250, 239, 48, 255, 255, 243, 15, 253, 83, 0, 255, 112, 0, 15, 245, 0, 0, 255, 80, 0, 15, 245, 0, 0, 255, 80, 0, 15, 245, 0, 0 };
/* s */ static const uint8_t Font_TTHoves_Bold_16_glyph_115[] = { 8, 9, 8, 0, 9, 4, 206, 252, 48, 63, 255, 239, 243, 127, 224, 8, 132, 95, 252, 149, 0, 10, 255, 255, 225, 0, 21, 143, 248, 125, 176, 12, 249, 47, 254, 223, 244, 3, 207, 252, 80 };
/* t */ static const uint8_t Font_TTHoves_Bold_16_glyph_116[] = { 6, 12, 7, 0, 12, 3, 255, 32, 3, 255, 32, 3, 255, 32, 143, 255, 255, 143, 255, 255, 38, 255, 83, 3, 255, 32, 3, 255, 32, 3, 255, 32, 3, 255, 115, 1, 255, 255, 0, 126, 255 };
/* u */ static const uint8_t Font_TTHoves_Bold_16_glyph_117[] = { 9, 9, 10, 0, 9, 15, 245, 0, 159, 192, 255, 80, 9, 252, 15, 245, 0, 159, 192, 255, 80, 9, 252, 15, 245, 0, 159, 192, 255, 128, 12, 252, 14, 255, 121, 255, 192, 127, 255, 255, 252, 0, 125, 251, 143, 192 };
/* v */ static const uint8_t Font_TTHoves_Bold_16_glyph_118[] = { 9, 9, 9, 0, 9, 207, 160, 0, 239, 151, 255, 0, 63, 244, 47, 244, 7, 255, 0, 223, 128, 207, 160, 9, 253, 31, 245, 0, 79, 247, 255, 16, 0, 255, 255, 192, 0, 10, 255, 247, 0, 0, 95, 255, 32, 0 };
/* w */ static const uint8_t Font_TTHoves_Bold_16_glyph_119[] = { 13, 9, 13, 0, 9, 191, 176, 13, 252, 0, 207, 167, 255, 1, 255, 240, 15, 247, 79, 242, 79, 255, 67, 255, 48, 255, 104, 255, 247, 127, 240, 12, 249, 207, 111, 186, 252, 0, 159, 255, 240, 255, 255, 128, 5, 255, 251, 12, 255, 244, 0, 31, 255, 128, 159, 255, 16, 0, 239, 244, 5, 255, 208, 0 };
/* x */ static const uint8_t Font_TTHoves_Bold_16_glyph_120[] = { 10, 9, 9, 0, 9, 10, 254, 0, 127, 242, 2, 255, 96, 239, 144, 0, 159, 214, 255, 16, 0, 31, 255, 247, 0, 0, 8, 255, 240, 0, 0, 13, 255, 245, 0, 0, 127, 234, 254, 0, 2, 255, 96, 239, 144, 12, 253, 0, 95, 243 };
/* y */ static const uint8_t Font_TTHoves_Bold_16_glyph_121[] = { 10, 13, 10, 0, 9, 14, 249, 0, 13, 251, 9, 254, 0, 31, 246, 4, 255, 64, 95, 241, 0, 239, 144, 159, 192, 0, 175, 224, 223, 128, 0, 79, 245, 255, 48, 0, 15, 255, 254, 0, 0, 10, 255, 249, 0, 0, 5, 255, 244, 0, 0, 0, 255, 240, 0, 0, 52, 239, 176, 0, 0, 255, 255, 80, 0, 0, 255, 232, 0, 0 };
/* z */ static const uint8_t Font_TTHoves_Bold_16_glyph_122[] = { 8, 9, 8, 0, 9, 95, 255, 255, 246, 95, 255, 255, 246, 19, 53, 255, 243, 0, 12, 255, 96, 0, 159, 249, 0, 6, 255, 192, 0, 63, 255, 83, 49, 127, 255, 255, 248, 127, 255, 255, 248 };
/* { */ static const uint8_t Font_TTHoves_Bold_16_glyph_123[] = { 6, 16, 6, 0, 12, 0, 77, 251, 0, 239, 251, 3, 255, 130, 3, 255, 32, 3, 255, 32, 4, 255, 32, 45, 255, 0, 95, 230, 0, 95, 229, 0, 45, 255, 0, 4, 255, 32, 3, 255, 32, 3, 255, 32, 3, 255, 129, 0, 239, 251, 0, 77, 251 };
/* | */ static const uint8_t Font_TTHoves_Bold_16_glyph_124[] = { 4, 16, 6, 1, 12, 31, 244, 31, 244, 31, 244, 31, 244, 31, 244, 31, 244, 31, 244, 31, 244, 31, 244, 31, 244, 31, 244, 31, 244, 31, 244, 31, 244, 31, 244, 31, 244 };
/* } */ static const uint8_t Font_TTHoves_Bold_16_glyph_125[] = { 6, 16, 6, 0, 12, 127, 231, 0, 127, 255, 64, 20, 255, 128, 0, 223, 128, 0, 223, 128, 0, 223, 144, 0, 191, 229, 0, 44, 250, 0, 44, 250, 0, 191, 245, 0, 223, 144, 0, 223, 128, 0, 223, 128, 20, 255, 128, 127, 255, 64, 127, 231, 0 };
/* ~ */ static const uint8_t Font_TTHoves_Bold_16_glyph_126[] = { 10, 5, 10, 0, 7, 0, 19, 0, 0, 0, 7, 255, 211, 111, 240, 47, 255, 255, 255, 176, 95, 243, 125, 252, 32, 19, 48, 0, 0, 0 };
const uint8_t Font_TTHoves_Bold_16_glyph_nonprintable[] = { 9, 12, 9, 0, 12, 254, 98, 3, 159, 255, 32, 0, 0, 127, 144, 5, 129, 0, 250, 119, 255, 96, 14, 255, 255, 210, 1, 255, 255, 177, 1, 207, 255, 242, 2, 223, 255, 255, 0, 159, 255, 255, 252, 206, 255, 255, 254, 85, 191, 255, 255, 224, 9, 255, 255, 254, 0, 159, 255 };
const uint8_t * const Font_TTHoves_Bold_16[126 + 1 - 32] = {
Font_TTHoves_Bold_16_glyph_32,
Font_TTHoves_Bold_16_glyph_33,
Font_TTHoves_Bold_16_glyph_34,
Font_TTHoves_Bold_16_glyph_35,
Font_TTHoves_Bold_16_glyph_36,
Font_TTHoves_Bold_16_glyph_37,
Font_TTHoves_Bold_16_glyph_38,
Font_TTHoves_Bold_16_glyph_39,
Font_TTHoves_Bold_16_glyph_40,
Font_TTHoves_Bold_16_glyph_41,
Font_TTHoves_Bold_16_glyph_42,
Font_TTHoves_Bold_16_glyph_43,
Font_TTHoves_Bold_16_glyph_44,
Font_TTHoves_Bold_16_glyph_45,
Font_TTHoves_Bold_16_glyph_46,
Font_TTHoves_Bold_16_glyph_47,
Font_TTHoves_Bold_16_glyph_48,
Font_TTHoves_Bold_16_glyph_49,
Font_TTHoves_Bold_16_glyph_50,
Font_TTHoves_Bold_16_glyph_51,
Font_TTHoves_Bold_16_glyph_52,
Font_TTHoves_Bold_16_glyph_53,
Font_TTHoves_Bold_16_glyph_54,
Font_TTHoves_Bold_16_glyph_55,
Font_TTHoves_Bold_16_glyph_56,
Font_TTHoves_Bold_16_glyph_57,
Font_TTHoves_Bold_16_glyph_58,
Font_TTHoves_Bold_16_glyph_59,
Font_TTHoves_Bold_16_glyph_60,
Font_TTHoves_Bold_16_glyph_61,
Font_TTHoves_Bold_16_glyph_62,
Font_TTHoves_Bold_16_glyph_63,
Font_TTHoves_Bold_16_glyph_64,
Font_TTHoves_Bold_16_glyph_65,
Font_TTHoves_Bold_16_glyph_66,
Font_TTHoves_Bold_16_glyph_67,
Font_TTHoves_Bold_16_glyph_68,
Font_TTHoves_Bold_16_glyph_69,
Font_TTHoves_Bold_16_glyph_70,
Font_TTHoves_Bold_16_glyph_71,
Font_TTHoves_Bold_16_glyph_72,
Font_TTHoves_Bold_16_glyph_73,
Font_TTHoves_Bold_16_glyph_74,
Font_TTHoves_Bold_16_glyph_75,
Font_TTHoves_Bold_16_glyph_76,
Font_TTHoves_Bold_16_glyph_77,
Font_TTHoves_Bold_16_glyph_78,
Font_TTHoves_Bold_16_glyph_79,
Font_TTHoves_Bold_16_glyph_80,
Font_TTHoves_Bold_16_glyph_81,
Font_TTHoves_Bold_16_glyph_82,
Font_TTHoves_Bold_16_glyph_83,
Font_TTHoves_Bold_16_glyph_84,
Font_TTHoves_Bold_16_glyph_85,
Font_TTHoves_Bold_16_glyph_86,
Font_TTHoves_Bold_16_glyph_87,
Font_TTHoves_Bold_16_glyph_88,
Font_TTHoves_Bold_16_glyph_89,
Font_TTHoves_Bold_16_glyph_90,
Font_TTHoves_Bold_16_glyph_91,
Font_TTHoves_Bold_16_glyph_92,
Font_TTHoves_Bold_16_glyph_93,
Font_TTHoves_Bold_16_glyph_94,
Font_TTHoves_Bold_16_glyph_95,
Font_TTHoves_Bold_16_glyph_96,
Font_TTHoves_Bold_16_glyph_97,
Font_TTHoves_Bold_16_glyph_98,
Font_TTHoves_Bold_16_glyph_99,
Font_TTHoves_Bold_16_glyph_100,
Font_TTHoves_Bold_16_glyph_101,
Font_TTHoves_Bold_16_glyph_102,
Font_TTHoves_Bold_16_glyph_103,
Font_TTHoves_Bold_16_glyph_104,
Font_TTHoves_Bold_16_glyph_105,
Font_TTHoves_Bold_16_glyph_106,
Font_TTHoves_Bold_16_glyph_107,
Font_TTHoves_Bold_16_glyph_108,
Font_TTHoves_Bold_16_glyph_109,
Font_TTHoves_Bold_16_glyph_110,
Font_TTHoves_Bold_16_glyph_111,
Font_TTHoves_Bold_16_glyph_112,
Font_TTHoves_Bold_16_glyph_113,
Font_TTHoves_Bold_16_glyph_114,
Font_TTHoves_Bold_16_glyph_115,
Font_TTHoves_Bold_16_glyph_116,
Font_TTHoves_Bold_16_glyph_117,
Font_TTHoves_Bold_16_glyph_118,
Font_TTHoves_Bold_16_glyph_119,
Font_TTHoves_Bold_16_glyph_120,
Font_TTHoves_Bold_16_glyph_121,
Font_TTHoves_Bold_16_glyph_122,
Font_TTHoves_Bold_16_glyph_123,
Font_TTHoves_Bold_16_glyph_124,
Font_TTHoves_Bold_16_glyph_125,
Font_TTHoves_Bold_16_glyph_126,
};

@ -0,0 +1,7 @@
#include <stdint.h>
#if TREZOR_FONT_BPP != 4
#error Wrong TREZOR_FONT_BPP (expected 4)
#endif
extern const uint8_t* const Font_TTHoves_Bold_16[126 + 1 - 32];
extern const uint8_t Font_TTHoves_Bold_16_glyph_nonprintable[];

@ -0,0 +1,203 @@
#include <stdint.h>
// clang-format off
// - the first two bytes are width and height of the glyph
// - the third, fourth and fifth bytes are advance, bearingX and bearingY of the horizontal metrics of the glyph
// - the rest is packed 4-bit glyph data
/* */ static const uint8_t Font_TTHoves_Medium_20_glyph_32[] = { 0, 0, 5, 0, 0 };
/* ! */ static const uint8_t Font_TTHoves_Medium_20_glyph_33[] = { 3, 14, 6, 1, 14, 79, 196, 252, 79, 196, 252, 79, 196, 252, 79, 179, 250, 47, 144, 248, 6, 49, 68, 111, 230, 254 };
/* " */ static const uint8_t Font_TTHoves_Medium_20_glyph_34[] = { 6, 4, 8, 1, 14, 207, 23, 246, 207, 23, 246, 207, 23, 246, 207, 23, 246 };
/* # */ static const uint8_t Font_TTHoves_Medium_20_glyph_35[] = { 14, 14, 14, 0, 14, 0, 0, 14, 240, 3, 250, 0, 0, 0, 47, 176, 7, 246, 0, 0, 0, 111, 112, 11, 242, 0, 5, 204, 239, 220, 207, 252, 200, 9, 255, 255, 255, 255, 255, 248, 0, 1, 253, 0, 95, 128, 0, 0, 4, 249, 0, 159, 80, 0, 0, 7, 246, 0, 207, 16, 0, 108, 206, 253, 204, 255, 204, 112, 191, 255, 255, 255, 255, 255, 96, 0, 47, 192, 6, 247, 0, 0, 0, 95, 144, 9, 244, 0, 0, 0, 143, 96, 13, 241, 0, 0, 0, 191, 32, 15, 224, 0, 0 };
/* $ */ static const uint8_t Font_TTHoves_Medium_20_glyph_36[] = { 12, 18, 13, 0, 16, 0, 0, 14, 241, 0, 0, 0, 0, 14, 241, 0, 0, 0, 7, 207, 253, 146, 0, 0, 207, 255, 255, 255, 64, 8, 254, 64, 3, 207, 224, 13, 245, 0, 0, 14, 243, 13, 245, 0, 0, 4, 82, 8, 254, 98, 0, 0, 0, 1, 207, 255, 252, 114, 0, 0, 4, 156, 255, 255, 112, 0, 0, 0, 3, 159, 243, 5, 80, 0, 0, 10, 247, 15, 242, 0, 0, 9, 248, 11, 253, 64, 0, 111, 243, 1, 223, 255, 239, 255, 144, 0, 7, 207, 254, 180, 0, 0, 0, 14, 241, 0, 0, 0, 0, 14, 241, 0, 0 };
/* % */ static const uint8_t Font_TTHoves_Medium_20_glyph_37[] = { 15, 14, 16, 0, 14, 1, 174, 232, 0, 0, 47, 208, 0, 207, 189, 249, 0, 11, 244, 0, 63, 144, 12, 240, 5, 250, 0, 3, 249, 0, 207, 1, 238, 16, 0, 12, 251, 207, 144, 159, 96, 0, 0, 26, 238, 128, 63, 192, 0, 0, 0, 0, 0, 13, 242, 0, 0, 0, 0, 0, 7, 248, 0, 0, 0, 0, 0, 2, 253, 1, 174, 215, 0, 0, 0, 191, 64, 223, 189, 247, 0, 0, 95, 160, 79, 112, 14, 224, 0, 14, 241, 4, 247, 0, 238, 0, 9, 246, 0, 13, 251, 223, 112, 3, 252, 0, 0, 43, 237, 112 };
/* & */ static const uint8_t Font_TTHoves_Medium_20_glyph_38[] = { 13, 14, 13, 0, 14, 0, 25, 223, 196, 0, 0, 0, 12, 255, 239, 245, 0, 0, 5, 254, 16, 127, 224, 0, 0, 127, 160, 1, 255, 0, 0, 4, 255, 32, 143, 208, 0, 0, 11, 253, 175, 244, 0, 0, 0, 13, 255, 227, 0, 0, 0, 8, 255, 250, 0, 23, 96, 8, 254, 60, 249, 6, 252, 0, 255, 32, 12, 248, 175, 128, 47, 240, 0, 29, 255, 242, 0, 255, 112, 0, 143, 251, 0, 6, 255, 237, 255, 237, 248, 0, 3, 190, 252, 112, 47, 248 };
/* ' */ static const uint8_t Font_TTHoves_Medium_20_glyph_39[] = { 3, 4, 4, 1, 14, 207, 28, 241, 207, 28, 241 };
/* ( */ static const uint8_t Font_TTHoves_Medium_20_glyph_40[] = { 6, 19, 7, 1, 15, 0, 31, 225, 0, 175, 96, 2, 254, 0, 8, 247, 0, 14, 242, 0, 31, 224, 0, 95, 160, 0, 127, 144, 0, 143, 112, 0, 159, 96, 0, 143, 112, 0, 127, 128, 0, 95, 160, 0, 31, 224, 0, 14, 242, 0, 8, 247, 0, 2, 254, 0, 0, 175, 96, 0, 47, 225 };
/* ) */ static const uint8_t Font_TTHoves_Medium_20_glyph_41[] = { 6, 19, 7, 0, 15, 79, 192, 0, 11, 245, 0, 3, 253, 0, 0, 207, 48, 0, 127, 144, 0, 63, 192, 0, 15, 240, 0, 14, 242, 0, 12, 243, 0, 11, 244, 0, 12, 243, 0, 14, 242, 0, 15, 240, 0, 63, 192, 0, 127, 144, 0, 207, 48, 3, 253, 0, 11, 245, 0, 79, 192, 0 };
/* * */ static const uint8_t Font_TTHoves_Medium_20_glyph_42[] = { 9, 8, 10, 0, 14, 0, 1, 250, 0, 0, 0, 15, 144, 0, 10, 97, 248, 57, 81, 255, 255, 255, 249, 0, 59, 255, 98, 0, 2, 252, 250, 0, 0, 223, 23, 247, 0, 7, 96, 11, 32 };
/* + */ static const uint8_t Font_TTHoves_Medium_20_glyph_43[] = { 9, 10, 11, 1, 11, 0, 7, 246, 0, 0, 0, 127, 96, 0, 0, 7, 246, 0, 0, 0, 127, 96, 0, 204, 206, 254, 204, 191, 255, 255, 255, 254, 0, 7, 246, 0, 0, 0, 127, 96, 0, 0, 7, 246, 0, 0, 0, 127, 96, 0 };
/* , */ static const uint8_t Font_TTHoves_Medium_20_glyph_44[] = { 4, 4, 5, 0, 2, 12, 247, 13, 242, 15, 224, 15, 160 };
/* - */ static const uint8_t Font_TTHoves_Medium_20_glyph_45[] = { 8, 2, 8, 0, 7, 28, 204, 204, 198, 31, 255, 255, 247 };
/* . */ static const uint8_t Font_TTHoves_Medium_20_glyph_46[] = { 3, 2, 5, 1, 2, 207, 124, 247 };
/* / */ static const uint8_t Font_TTHoves_Medium_20_glyph_47[] = { 8, 19, 8, 0, 15, 0, 0, 10, 245, 0, 0, 14, 241, 0, 0, 63, 192, 0, 0, 143, 112, 0, 0, 207, 48, 0, 1, 254, 0, 0, 6, 249, 0, 0, 10, 245, 0, 0, 15, 240, 0, 0, 79, 176, 0, 0, 143, 112, 0, 0, 223, 32, 0, 1, 254, 0, 0, 6, 249, 0, 0, 11, 244, 0, 0, 15, 240, 0, 0, 79, 176, 0, 0, 159, 96, 0, 0, 223, 32, 0, 0 };
/* 0 */ static const uint8_t Font_TTHoves_Medium_20_glyph_48[] = { 12, 14, 13, 1, 14, 0, 7, 207, 200, 16, 0, 1, 207, 255, 255, 210, 0, 11, 254, 65, 60, 253, 0, 63, 241, 0, 0, 223, 96, 159, 128, 0, 0, 95, 192, 207, 64, 0, 0, 31, 240, 239, 32, 0, 0, 15, 241, 239, 32, 0, 0, 15, 241, 207, 64, 0, 0, 31, 240, 159, 128, 0, 0, 95, 192, 79, 241, 0, 0, 223, 112, 11, 253, 64, 60, 253, 0, 1, 207, 255, 255, 211, 0, 0, 7, 207, 201, 16, 0 };
/* 1 */ static const uint8_t Font_TTHoves_Medium_20_glyph_49[] = { 6, 14, 7, 0, 14, 0, 10, 247, 127, 255, 247, 127, 255, 247, 0, 9, 247, 0, 9, 247, 0, 9, 247, 0, 9, 247, 0, 9, 247, 0, 9, 247, 0, 9, 247, 0, 9, 247, 0, 9, 247, 0, 9, 247, 0, 9, 247 };
/* 2 */ static const uint8_t Font_TTHoves_Medium_20_glyph_50[] = { 11, 14, 11, 0, 14, 0, 8, 223, 216, 0, 0, 13, 255, 255, 253, 0, 9, 254, 64, 78, 249, 0, 239, 64, 0, 111, 208, 10, 160, 0, 4, 255, 0, 0, 0, 0, 143, 192, 0, 0, 0, 79, 245, 0, 0, 0, 79, 247, 0, 0, 0, 79, 249, 0, 0, 0, 79, 248, 0, 0, 0, 79, 248, 0, 0, 0, 95, 248, 0, 0, 0, 15, 255, 255, 255, 255, 32, 255, 255, 255, 255, 242 };
/* 3 */ static const uint8_t Font_TTHoves_Medium_20_glyph_51[] = { 11, 14, 11, 0, 14, 0, 25, 223, 216, 16, 0, 46, 255, 255, 254, 16, 11, 252, 48, 61, 250, 0, 255, 32, 0, 63, 224, 0, 0, 0, 3, 254, 0, 0, 0, 3, 223, 128, 0, 0, 127, 255, 144, 0, 0, 7, 239, 251, 16, 0, 0, 0, 26, 251, 0, 0, 0, 0, 15, 241, 63, 224, 0, 0, 255, 16, 239, 178, 2, 191, 208, 3, 255, 255, 255, 242, 0, 1, 157, 253, 145, 0 };
/* 4 */ static const uint8_t Font_TTHoves_Medium_20_glyph_52[] = { 11, 14, 11, 0, 14, 0, 0, 11, 255, 224, 0, 0, 4, 255, 254, 0, 0, 0, 223, 207, 224, 0, 0, 111, 211, 254, 0, 0, 14, 245, 63, 224, 0, 8, 252, 3, 254, 0, 2, 255, 48, 63, 224, 0, 175, 160, 3, 254, 0, 63, 241, 0, 63, 224, 10, 255, 238, 238, 255, 232, 191, 255, 255, 255, 255, 144, 0, 0, 3, 254, 0, 0, 0, 0, 63, 224, 0, 0, 0, 3, 254, 0 };
/* 5 */ static const uint8_t Font_TTHoves_Medium_20_glyph_53[] = { 11, 14, 12, 0, 14, 0, 255, 255, 255, 252, 0, 47, 255, 255, 255, 192, 4, 251, 0, 0, 0, 0, 111, 144, 0, 0, 0, 7, 247, 67, 0, 0, 0, 159, 255, 254, 179, 0, 11, 255, 255, 255, 245, 0, 69, 83, 2, 159, 241, 0, 0, 0, 0, 207, 96, 0, 0, 0, 8, 248, 12, 194, 0, 0, 207, 96, 175, 211, 2, 159, 241, 1, 223, 255, 255, 245, 0, 0, 140, 253, 162, 0 };
/* 6 */ static const uint8_t Font_TTHoves_Medium_20_glyph_54[] = { 11, 14, 11, 0, 14, 0, 0, 8, 253, 0, 0, 0, 2, 255, 64, 0, 0, 0, 191, 160, 0, 0, 0, 95, 241, 0, 0, 0, 14, 247, 0, 0, 0, 8, 255, 254, 179, 0, 2, 255, 255, 255, 245, 0, 191, 195, 0, 143, 241, 15, 242, 0, 0, 207, 98, 255, 0, 0, 8, 248, 15, 242, 0, 0, 207, 80, 159, 212, 2, 175, 225, 0, 223, 255, 255, 244, 0, 0, 124, 253, 162, 0 };
/* 7 */ static const uint8_t Font_TTHoves_Medium_20_glyph_55[] = { 10, 14, 10, 0, 14, 127, 255, 255, 255, 249, 127, 255, 255, 255, 249, 0, 0, 0, 31, 244, 0, 0, 0, 111, 224, 0, 0, 0, 223, 112, 0, 0, 3, 255, 16, 0, 0, 10, 250, 0, 0, 0, 31, 244, 0, 0, 0, 127, 208, 0, 0, 0, 239, 112, 0, 0, 4, 255, 16, 0, 0, 11, 249, 0, 0, 0, 47, 243, 0, 0, 0, 143, 192, 0, 0 };
/* 8 */ static const uint8_t Font_TTHoves_Medium_20_glyph_56[] = { 11, 14, 11, 0, 14, 0, 7, 207, 218, 32, 0, 12, 255, 255, 255, 48, 7, 253, 48, 9, 253, 0, 191, 96, 0, 15, 241, 10, 246, 0, 0, 255, 0, 95, 228, 2, 191, 176, 0, 127, 255, 255, 193, 0, 28, 255, 223, 255, 64, 10, 251, 16, 6, 255, 16, 255, 16, 0, 11, 245, 15, 242, 0, 0, 191, 96, 191, 194, 0, 127, 242, 2, 239, 254, 255, 246, 0, 1, 140, 253, 179, 0 };
/* 9 */ static const uint8_t Font_TTHoves_Medium_20_glyph_57[] = { 11, 14, 11, 0, 14, 0, 7, 207, 218, 32, 0, 12, 255, 255, 255, 64, 9, 253, 65, 42, 254, 16, 255, 48, 0, 12, 245, 47, 240, 0, 0, 143, 128, 255, 32, 0, 11, 247, 10, 252, 32, 8, 255, 16, 29, 255, 255, 255, 128, 0, 9, 223, 255, 224, 0, 0, 0, 31, 245, 0, 0, 0, 10, 251, 0, 0, 0, 4, 255, 32, 0, 0, 0, 223, 128, 0, 0, 0, 143, 208, 0, 0 };
/* : */ static const uint8_t Font_TTHoves_Medium_20_glyph_58[] = { 3, 10, 5, 1, 10, 207, 124, 247, 0, 0, 0, 0, 0, 0, 0, 4, 82, 207, 124, 247 };
/* ; */ static const uint8_t Font_TTHoves_Medium_20_glyph_59[] = { 4, 12, 5, 0, 10, 11, 249, 11, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 50, 12, 246, 13, 242, 15, 224, 15, 160 };
/* < */ static const uint8_t Font_TTHoves_Medium_20_glyph_60[] = { 9, 9, 11, 1, 10, 0, 0, 0, 23, 160, 0, 4, 175, 252, 1, 125, 255, 233, 41, 255, 252, 80, 0, 239, 228, 0, 0, 9, 255, 251, 80, 0, 1, 125, 255, 232, 32, 0, 4, 175, 252, 0, 0, 0, 23, 160 };
/* = */ static const uint8_t Font_TTHoves_Medium_20_glyph_61[] = { 9, 6, 11, 1, 9, 124, 204, 204, 204, 57, 255, 255, 255, 244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, 255, 255, 255, 71, 204, 204, 204, 195 };
/* > */ static const uint8_t Font_TTHoves_Medium_20_glyph_62[] = { 9, 9, 11, 1, 10, 182, 0, 0, 0, 14, 255, 147, 0, 0, 57, 255, 252, 96, 0, 0, 108, 255, 248, 0, 0, 5, 255, 192, 0, 108, 255, 248, 57, 255, 253, 96, 14, 255, 163, 0, 0, 182, 16, 0, 0, 0 };
/* ? */ static const uint8_t Font_TTHoves_Medium_20_glyph_63[] = { 10, 14, 10, 0, 14, 0, 75, 238, 197, 0, 8, 255, 255, 255, 144, 47, 247, 17, 127, 243, 111, 176, 0, 10, 247, 0, 0, 0, 10, 248, 0, 0, 0, 95, 244, 0, 0, 27, 255, 128, 0, 0, 175, 229, 0, 0, 0, 239, 64, 0, 0, 1, 255, 0, 0, 0, 0, 119, 0, 0, 0, 0, 51, 0, 0, 0, 3, 255, 16, 0, 0, 3, 255, 16, 0 };
/* @ */ static const uint8_t Font_TTHoves_Medium_20_glyph_64[] = { 17, 16, 19, 1, 14, 0, 0, 3, 121, 169, 115, 0, 0, 0, 0, 60, 255, 255, 255, 251, 32, 0, 0, 143, 250, 82, 2, 90, 255, 112, 0, 111, 211, 0, 0, 0, 3, 223, 80, 31, 243, 1, 174, 234, 126, 35, 254, 7, 248, 1, 239, 203, 255, 242, 8, 246, 191, 48, 159, 96, 4, 255, 32, 79, 173, 240, 13, 224, 0, 12, 242, 1, 252, 239, 0, 253, 0, 0, 175, 32, 15, 188, 241, 12, 240, 0, 13, 243, 3, 249, 159, 80, 127, 160, 8, 255, 113, 191, 84, 253, 0, 207, 255, 252, 255, 255, 192, 11, 249, 0, 105, 165, 2, 154, 112, 0, 30, 253, 64, 0, 0, 0, 0, 0, 0, 25, 255, 253, 186, 170, 64, 0, 0, 0, 3, 157, 255, 255, 246, 0, 0 };
/* A */ static const uint8_t Font_TTHoves_Medium_20_glyph_65[] = { 14, 14, 13, 0, 14, 0, 0, 31, 255, 112, 0, 0, 0, 0, 127, 255, 208, 0, 0, 0, 0, 223, 191, 243, 0, 0, 0, 2, 255, 43, 249, 0, 0, 0, 8, 252, 6, 254, 0, 0, 0, 14, 246, 1, 255, 64, 0, 0, 79, 241, 0, 191, 160, 0, 0, 175, 176, 0, 95, 240, 0, 0, 255, 80, 0, 15, 246, 0, 5, 255, 255, 255, 255, 252, 0, 11, 255, 238, 238, 238, 255, 16, 31, 244, 0, 0, 0, 223, 112, 127, 208, 0, 0, 0, 127, 208, 223, 112, 0, 0, 0, 31, 243 };
/* B */ static const uint8_t Font_TTHoves_Medium_20_glyph_66[] = { 11, 14, 13, 1, 14, 127, 255, 255, 253, 128, 7, 255, 238, 238, 255, 192, 127, 144, 0, 2, 239, 103, 249, 0, 0, 8, 249, 127, 144, 0, 0, 143, 151, 249, 0, 0, 79, 244, 127, 255, 255, 255, 248, 7, 254, 204, 205, 255, 192, 127, 144, 0, 0, 207, 135, 249, 0, 0, 4, 252, 127, 144, 0, 0, 95, 199, 249, 0, 0, 28, 249, 127, 254, 238, 239, 254, 23, 255, 255, 255, 234, 16 };
/* C */ static const uint8_t Font_TTHoves_Medium_20_glyph_67[] = { 14, 14, 15, 0, 14, 0, 0, 42, 239, 218, 64, 0, 0, 7, 255, 255, 255, 250, 0, 0, 143, 249, 48, 39, 255, 160, 2, 255, 64, 0, 0, 63, 245, 10, 249, 0, 0, 0, 6, 201, 15, 244, 0, 0, 0, 0, 0, 31, 241, 0, 0, 0, 0, 0, 31, 241, 0, 0, 0, 0, 0, 15, 243, 0, 0, 0, 0, 0, 10, 249, 0, 0, 0, 7, 217, 2, 255, 64, 0, 0, 63, 245, 0, 143, 248, 48, 39, 239, 160, 0, 7, 255, 255, 255, 250, 0, 0, 0, 58, 239, 218, 64, 0 };
/* D */ static const uint8_t Font_TTHoves_Medium_20_glyph_68[] = { 13, 14, 14, 1, 14, 127, 255, 255, 234, 48, 0, 7, 255, 255, 255, 255, 112, 0, 127, 144, 0, 57, 255, 128, 7, 249, 0, 0, 5, 255, 32, 127, 144, 0, 0, 10, 250, 7, 249, 0, 0, 0, 79, 224, 127, 144, 0, 0, 1, 255, 7, 249, 0, 0, 0, 31, 240, 127, 144, 0, 0, 4, 254, 7, 249, 0, 0, 0, 175, 160, 127, 144, 0, 0, 79, 242, 7, 249, 0, 3, 159, 248, 0, 127, 255, 255, 255, 247, 0, 7, 255, 255, 254, 163, 0, 0 };
/* E */ static const uint8_t Font_TTHoves_Medium_20_glyph_69[] = { 10, 14, 12, 1, 14, 127, 255, 255, 255, 250, 127, 255, 255, 255, 250, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 255, 255, 255, 244, 127, 255, 255, 255, 244, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 255, 255, 255, 250, 127, 255, 255, 255, 250 };
/* F */ static const uint8_t Font_TTHoves_Medium_20_glyph_70[] = { 10, 14, 11, 1, 14, 127, 255, 255, 255, 247, 127, 255, 255, 255, 247, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 255, 255, 255, 241, 127, 255, 255, 255, 241, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0 };
/* G */ static const uint8_t Font_TTHoves_Medium_20_glyph_71[] = { 14, 14, 15, 0, 14, 0, 0, 42, 239, 218, 64, 0, 0, 6, 255, 255, 255, 250, 0, 0, 127, 249, 49, 39, 255, 160, 1, 255, 80, 0, 0, 63, 245, 9, 251, 0, 0, 0, 7, 217, 14, 244, 0, 0, 0, 0, 0, 15, 242, 0, 0, 0, 0, 0, 31, 240, 0, 0, 255, 255, 255, 15, 243, 0, 0, 187, 187, 255, 11, 248, 0, 0, 0, 5, 255, 4, 255, 48, 0, 0, 29, 255, 0, 159, 248, 48, 38, 239, 255, 0, 8, 255, 255, 255, 247, 223, 0, 0, 57, 207, 218, 48, 207 };
/* H */ static const uint8_t Font_TTHoves_Medium_20_glyph_72[] = { 12, 14, 14, 1, 14, 127, 144, 0, 0, 4, 252, 127, 144, 0, 0, 4, 252, 127, 144, 0, 0, 4, 252, 127, 144, 0, 0, 4, 252, 127, 144, 0, 0, 4, 252, 127, 144, 0, 0, 4, 252, 127, 255, 255, 255, 255, 252, 127, 255, 255, 255, 255, 252, 127, 144, 0, 0, 4, 252, 127, 144, 0, 0, 4, 252, 127, 144, 0, 0, 4, 252, 127, 144, 0, 0, 4, 252, 127, 144, 0, 0, 4, 252, 127, 144, 0, 0, 4, 252 };
/* I */ static const uint8_t Font_TTHoves_Medium_20_glyph_73[] = { 3, 14, 5, 1, 14, 127, 151, 249, 127, 151, 249, 127, 151, 249, 127, 151, 249, 127, 151, 249, 127, 151, 249, 127, 151, 249 };
/* J */ static const uint8_t Font_TTHoves_Medium_20_glyph_74[] = { 7, 14, 8, 0, 14, 0, 0, 159, 112, 0, 9, 247, 0, 0, 159, 112, 0, 9, 247, 0, 0, 159, 112, 0, 9, 247, 0, 0, 159, 112, 0, 9, 247, 0, 0, 159, 112, 0, 9, 247, 0, 0, 159, 112, 0, 12, 247, 207, 255, 255, 76, 255, 254, 128 };
/* K */ static const uint8_t Font_TTHoves_Medium_20_glyph_75[] = { 11, 14, 12, 1, 14, 127, 144, 0, 7, 255, 55, 249, 0, 4, 255, 80, 127, 144, 2, 255, 112, 7, 249, 1, 239, 160, 0, 127, 144, 207, 192, 0, 7, 249, 175, 225, 0, 0, 127, 239, 242, 0, 0, 7, 253, 255, 80, 0, 0, 127, 151, 255, 48, 0, 7, 249, 9, 254, 32, 0, 127, 144, 11, 253, 16, 7, 249, 0, 12, 252, 0, 127, 144, 0, 29, 250, 7, 249, 0, 0, 46, 248 };
/* L */ static const uint8_t Font_TTHoves_Medium_20_glyph_76[] = { 10, 14, 11, 1, 14, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 144, 0, 0, 0, 127, 255, 255, 255, 246, 127, 255, 255, 255, 246 };
/* M */ static const uint8_t Font_TTHoves_Medium_20_glyph_77[] = { 16, 14, 18, 1, 14, 127, 255, 64, 0, 0, 4, 255, 247, 127, 255, 144, 0, 0, 9, 255, 247, 127, 255, 224, 0, 0, 14, 255, 247, 127, 190, 244, 0, 0, 79, 235, 247, 127, 153, 249, 0, 0, 159, 153, 247, 127, 148, 254, 0, 0, 239, 73, 247, 127, 144, 239, 64, 4, 254, 9, 247, 127, 144, 159, 144, 10, 249, 9, 247, 127, 144, 79, 224, 15, 243, 9, 247, 127, 144, 14, 244, 79, 224, 9, 247, 127, 144, 9, 250, 175, 144, 9, 247, 127, 144, 3, 255, 255, 48, 9, 247, 127, 144, 0, 239, 254, 0, 9, 247, 127, 144, 0, 159, 248, 0, 9, 247 };
/* N */ static const uint8_t Font_TTHoves_Medium_20_glyph_78[] = { 12, 14, 14, 1, 14, 127, 253, 0, 0, 4, 252, 127, 255, 80, 0, 4, 252, 127, 255, 208, 0, 4, 252, 127, 172, 246, 0, 4, 252, 127, 148, 254, 0, 4, 252, 127, 144, 207, 112, 4, 252, 127, 144, 63, 224, 4, 252, 127, 144, 11, 248, 4, 252, 127, 144, 3, 255, 20, 252, 127, 144, 0, 175, 132, 252, 127, 144, 0, 47, 247, 252, 127, 144, 0, 9, 255, 252, 127, 144, 0, 1, 255, 252, 127, 144, 0, 0, 159, 252 };
/* O */ static const uint8_t Font_TTHoves_Medium_20_glyph_79[] = { 15, 14, 15, 0, 14, 0, 0, 42, 239, 235, 64, 0, 0, 0, 127, 255, 255, 255, 144, 0, 0, 143, 249, 49, 55, 255, 160, 0, 47, 244, 0, 0, 2, 255, 80, 10, 249, 0, 0, 0, 7, 253, 0, 255, 64, 0, 0, 0, 31, 242, 31, 241, 0, 0, 0, 0, 239, 49, 255, 16, 0, 0, 0, 14, 244, 15, 243, 0, 0, 0, 1, 255, 32, 175, 144, 0, 0, 0, 111, 208, 2, 255, 64, 0, 0, 47, 245, 0, 8, 255, 131, 2, 127, 251, 0, 0, 7, 255, 255, 255, 249, 0, 0, 0, 3, 174, 254, 180, 0, 0 };
/* P */ static const uint8_t Font_TTHoves_Medium_20_glyph_80[] = { 11, 14, 13, 1, 14, 127, 255, 255, 253, 128, 7, 255, 255, 255, 255, 192, 127, 144, 0, 4, 239, 119, 249, 0, 0, 6, 251, 127, 144, 0, 0, 63, 215, 249, 0, 0, 6, 251, 127, 144, 0, 3, 239, 119, 255, 255, 255, 255, 208, 127, 255, 255, 253, 144, 7, 249, 0, 0, 0, 0, 127, 144, 0, 0, 0, 7, 249, 0, 0, 0, 0, 127, 144, 0, 0, 0, 7, 249, 0, 0, 0, 0 };
/* Q */ static const uint8_t Font_TTHoves_Medium_20_glyph_81[] = { 15, 14, 15, 0, 14, 0, 0, 58, 239, 235, 64, 0, 0, 0, 143, 255, 255, 255, 161, 0, 0, 143, 249, 49, 55, 255, 176, 0, 63, 244, 0, 0, 2, 255, 80, 11, 249, 0, 0, 0, 7, 254, 0, 255, 64, 0, 0, 0, 31, 242, 31, 241, 0, 0, 0, 0, 239, 64, 255, 16, 0, 0, 0, 14, 243, 14, 243, 0, 0, 0, 1, 255, 16, 175, 144, 0, 207, 160, 111, 192, 2, 255, 64, 0, 207, 174, 243, 0, 7, 255, 131, 3, 239, 248, 0, 0, 7, 255, 255, 255, 255, 209, 0, 0, 2, 174, 254, 181, 175, 209 };
/* R */ static const uint8_t Font_TTHoves_Medium_20_glyph_82[] = { 12, 14, 13, 1, 14, 127, 255, 255, 253, 128, 0, 127, 255, 255, 255, 252, 0, 127, 144, 0, 4, 239, 112, 127, 144, 0, 0, 111, 176, 127, 144, 0, 0, 63, 208, 127, 144, 0, 0, 111, 176, 127, 144, 0, 3, 239, 112, 127, 255, 255, 255, 253, 0, 127, 255, 255, 253, 144, 0, 127, 145, 223, 192, 0, 0, 127, 144, 29, 252, 0, 0, 127, 144, 1, 223, 192, 0, 127, 144, 0, 29, 252, 0, 127, 144, 0, 1, 223, 192 };
/* S */ static const uint8_t Font_TTHoves_Medium_20_glyph_83[] = { 12, 14, 13, 0, 14, 0, 6, 206, 236, 129, 0, 0, 207, 255, 255, 254, 48, 8, 254, 81, 20, 207, 208, 12, 245, 0, 0, 30, 243, 13, 244, 0, 0, 4, 98, 9, 254, 97, 0, 0, 0, 1, 207, 255, 236, 114, 0, 0, 4, 156, 255, 255, 112, 0, 0, 0, 2, 159, 243, 22, 80, 0, 0, 10, 248, 15, 243, 0, 0, 10, 247, 10, 254, 97, 2, 127, 243, 0, 223, 255, 255, 255, 112, 0, 6, 190, 253, 163, 0 };
/* T */ static const uint8_t Font_TTHoves_Medium_20_glyph_84[] = { 12, 14, 12, 0, 14, 159, 255, 255, 255, 255, 244, 159, 255, 255, 255, 255, 244, 0, 0, 63, 224, 0, 0, 0, 0, 63, 224, 0, 0, 0, 0, 63, 224, 0, 0, 0, 0, 63, 224, 0, 0, 0, 0, 63, 224, 0, 0, 0, 0, 63, 224, 0, 0, 0, 0, 63, 224, 0, 0, 0, 0, 63, 224, 0, 0, 0, 0, 63, 224, 0, 0, 0, 0, 63, 224, 0, 0, 0, 0, 63, 224, 0, 0, 0, 0, 63, 224, 0, 0 };
/* U */ static const uint8_t Font_TTHoves_Medium_20_glyph_85[] = { 12, 14, 14, 1, 14, 159, 112, 0, 0, 7, 249, 159, 112, 0, 0, 7, 249, 159, 112, 0, 0, 7, 249, 159, 112, 0, 0, 7, 249, 159, 112, 0, 0, 7, 249, 159, 112, 0, 0, 7, 249, 159, 112, 0, 0, 7, 249, 159, 112, 0, 0, 7, 249, 159, 128, 0, 0, 8, 248, 111, 176, 0, 0, 11, 245, 63, 243, 0, 0, 63, 242, 10, 254, 81, 21, 239, 144, 1, 207, 255, 255, 252, 16, 0, 6, 190, 235, 96, 0 };
/* V */ static const uint8_t Font_TTHoves_Medium_20_glyph_86[] = { 14, 14, 13, 0, 14, 191, 128, 0, 0, 0, 111, 224, 111, 224, 0, 0, 0, 191, 144, 15, 243, 0, 0, 1, 255, 48, 10, 249, 0, 0, 6, 253, 0, 5, 254, 0, 0, 12, 248, 0, 0, 255, 64, 0, 31, 242, 0, 0, 175, 160, 0, 127, 192, 0, 0, 79, 240, 0, 207, 112, 0, 0, 14, 245, 2, 255, 16, 0, 0, 9, 250, 7, 252, 0, 0, 0, 3, 255, 13, 246, 0, 0, 0, 0, 223, 159, 241, 0, 0, 0, 0, 143, 255, 176, 0, 0, 0, 0, 47, 255, 80, 0, 0 };
/* W */ static const uint8_t Font_TTHoves_Medium_20_glyph_87[] = { 20, 14, 20, 0, 14, 191, 144, 0, 0, 175, 243, 0, 0, 15, 244, 127, 208, 0, 0, 239, 247, 0, 0, 79, 240, 63, 241, 0, 2, 255, 252, 0, 0, 143, 192, 14, 245, 0, 6, 252, 255, 0, 0, 207, 128, 11, 249, 0, 11, 245, 191, 64, 0, 255, 64, 7, 253, 0, 15, 241, 127, 128, 4, 255, 0, 3, 255, 16, 63, 208, 63, 192, 8, 252, 0, 0, 239, 80, 127, 128, 15, 241, 12, 248, 0, 0, 191, 144, 191, 64, 11, 245, 15, 244, 0, 0, 127, 208, 255, 0, 7, 249, 63, 240, 0, 0, 63, 245, 252, 0, 3, 253, 127, 192, 0, 0, 14, 255, 248, 0, 0, 255, 255, 128, 0, 0, 11, 255, 244, 0, 0, 191, 255, 64, 0, 0, 7, 255, 240, 0, 0, 127, 255, 0, 0 };
/* X */ static const uint8_t Font_TTHoves_Medium_20_glyph_88[] = { 13, 14, 13, 0, 14, 95, 225, 0, 0, 7, 254, 16, 175, 176, 0, 2, 255, 64, 1, 239, 96, 0, 223, 144, 0, 4, 255, 32, 143, 208, 0, 0, 9, 252, 79, 243, 0, 0, 0, 13, 255, 247, 0, 0, 0, 0, 63, 253, 0, 0, 0, 0, 7, 255, 242, 0, 0, 0, 3, 255, 223, 192, 0, 0, 0, 223, 129, 239, 112, 0, 0, 159, 192, 4, 255, 32, 0, 79, 242, 0, 8, 253, 0, 30, 246, 0, 0, 13, 248, 10, 251, 0, 0, 0, 63, 244 };
/* Y */ static const uint8_t Font_TTHoves_Medium_20_glyph_89[] = { 14, 14, 13, 0, 14, 12, 248, 0, 0, 0, 111, 208, 3, 255, 32, 0, 1, 239, 64, 0, 175, 176, 0, 9, 251, 0, 0, 31, 245, 0, 63, 242, 0, 0, 7, 254, 16, 207, 128, 0, 0, 0, 223, 150, 254, 0, 0, 0, 0, 79, 255, 245, 0, 0, 0, 0, 11, 255, 192, 0, 0, 0, 0, 2, 255, 48, 0, 0, 0, 0, 0, 255, 16, 0, 0, 0, 0, 0, 255, 16, 0, 0, 0, 0, 0, 255, 16, 0, 0, 0, 0, 0, 255, 16, 0, 0, 0, 0, 0, 255, 16, 0, 0 };
/* Z */ static const uint8_t Font_TTHoves_Medium_20_glyph_90[] = { 12, 14, 12, 0, 14, 63, 255, 255, 255, 255, 240, 63, 255, 255, 255, 255, 240, 0, 0, 0, 3, 255, 112, 0, 0, 0, 13, 251, 0, 0, 0, 0, 175, 225, 0, 0, 0, 6, 255, 64, 0, 0, 0, 47, 248, 0, 0, 0, 0, 223, 192, 0, 0, 0, 9, 255, 32, 0, 0, 0, 95, 245, 0, 0, 0, 1, 239, 144, 0, 0, 0, 12, 253, 0, 0, 0, 0, 79, 255, 255, 255, 255, 241, 79, 255, 255, 255, 255, 241 };
/* [ */ static const uint8_t Font_TTHoves_Medium_20_glyph_91[] = { 6, 19, 7, 1, 15, 92, 204, 193, 111, 255, 241, 111, 144, 0, 111, 144, 0, 111, 144, 0, 111, 144, 0, 111, 144, 0, 111, 144, 0, 111, 144, 0, 111, 144, 0, 111, 144, 0, 111, 144, 0, 111, 144, 0, 111, 144, 0, 111, 144, 0, 111, 144, 0, 111, 144, 0, 111, 236, 193, 111, 255, 241 };
/* \ */ static const uint8_t Font_TTHoves_Medium_20_glyph_92[] = { 8, 19, 8, 0, 15, 223, 32, 0, 0, 159, 96, 0, 0, 79, 176, 0, 0, 15, 240, 0, 0, 11, 244, 0, 0, 6, 249, 0, 0, 1, 254, 0, 0, 0, 223, 32, 0, 0, 143, 112, 0, 0, 79, 176, 0, 0, 15, 240, 0, 0, 10, 245, 0, 0, 6, 249, 0, 0, 1, 254, 0, 0, 0, 207, 48, 0, 0, 143, 112, 0, 0, 63, 192, 0, 0, 14, 241, 0, 0, 10, 245 };
/* ] */ static const uint8_t Font_TTHoves_Medium_20_glyph_93[] = { 6, 19, 7, 0, 15, 60, 204, 194, 79, 255, 242, 0, 12, 242, 0, 12, 242, 0, 12, 242, 0, 12, 242, 0, 12, 242, 0, 12, 242, 0, 12, 242, 0, 12, 242, 0, 12, 242, 0, 12, 242, 0, 12, 242, 0, 12, 242, 0, 12, 242, 0, 12, 242, 0, 12, 242, 60, 207, 242, 79, 255, 242 };
/* ^ */ static const uint8_t Font_TTHoves_Medium_20_glyph_94[] = { 7, 6, 9, 1, 14, 0, 255, 112, 0, 95, 253, 0, 11, 250, 243, 1, 251, 63, 144, 127, 80, 222, 13, 240, 7, 245 };
/* _ */ static const uint8_t Font_TTHoves_Medium_20_glyph_95[] = { 9, 2, 9, 0, 0, 111, 255, 255, 255, 245, 204, 204, 204, 204 };
/* ` */ static const uint8_t Font_TTHoves_Medium_20_glyph_96[] = { 5, 3, 5, 0, 15, 30, 242, 0, 63, 192, 0, 111, 112 };
/* a */ static const uint8_t Font_TTHoves_Medium_20_glyph_97[] = { 10, 10, 11, 0, 10, 0, 41, 223, 216, 0, 1, 239, 219, 239, 176, 8, 250, 0, 30, 244, 1, 16, 0, 8, 247, 0, 108, 239, 255, 247, 8, 254, 169, 156, 247, 15, 241, 0, 9, 247, 15, 242, 0, 63, 247, 10, 255, 204, 254, 247, 0, 141, 253, 116, 247 };
/* b */ static const uint8_t Font_TTHoves_Medium_20_glyph_98[] = { 11, 14, 12, 1, 14, 159, 96, 0, 0, 0, 9, 246, 0, 0, 0, 0, 159, 96, 0, 0, 0, 9, 246, 0, 0, 0, 0, 159, 102, 223, 216, 0, 9, 254, 255, 223, 253, 0, 159, 248, 0, 45, 248, 9, 251, 0, 0, 47, 224, 159, 112, 0, 0, 239, 25, 247, 0, 0, 14, 241, 159, 176, 0, 2, 254, 9, 255, 112, 2, 207, 128, 159, 255, 253, 255, 208, 9, 244, 125, 253, 128, 0 };
/* c */ static const uint8_t Font_TTHoves_Medium_20_glyph_99[] = { 11, 10, 11, 0, 10, 0, 6, 206, 218, 32, 0, 12, 255, 238, 255, 64, 8, 253, 32, 6, 254, 0, 239, 32, 0, 6, 114, 31, 224, 0, 0, 0, 1, 254, 0, 0, 0, 0, 14, 242, 0, 0, 121, 32, 143, 194, 0, 111, 224, 0, 207, 253, 239, 244, 0, 0, 108, 253, 162, 0 };
/* d */ static const uint8_t Font_TTHoves_Medium_20_glyph_100[] = { 11, 14, 12, 0, 14, 0, 0, 0, 0, 111, 144, 0, 0, 0, 6, 249, 0, 0, 0, 0, 111, 144, 0, 0, 0, 6, 249, 0, 8, 223, 214, 111, 144, 13, 255, 223, 254, 249, 8, 252, 32, 8, 255, 144, 239, 32, 0, 12, 249, 31, 224, 0, 0, 127, 146, 254, 0, 0, 7, 249, 15, 242, 0, 0, 207, 144, 159, 193, 0, 143, 249, 1, 223, 253, 255, 239, 144, 0, 141, 253, 100, 249 };
/* e */ static const uint8_t Font_TTHoves_Medium_20_glyph_101[] = { 11, 10, 11, 0, 10, 0, 7, 207, 218, 32, 0, 12, 254, 205, 255, 64, 8, 250, 0, 3, 254, 16, 255, 0, 0, 7, 245, 47, 255, 255, 255, 255, 129, 254, 136, 136, 136, 132, 14, 241, 0, 0, 17, 0, 127, 177, 0, 95, 224, 0, 191, 251, 239, 244, 0, 0, 108, 238, 162, 0 };
/* f */ static const uint8_t Font_TTHoves_Medium_20_glyph_102[] = { 7, 14, 7, 0, 14, 0, 61, 255, 32, 12, 254, 194, 0, 239, 16, 0, 14, 241, 0, 127, 255, 255, 39, 239, 254, 226, 0, 239, 16, 0, 14, 241, 0, 0, 239, 16, 0, 14, 241, 0, 0, 239, 16, 0, 14, 241, 0, 0, 239, 16, 0, 14, 241, 0 };
/* g */ static const uint8_t Font_TTHoves_Medium_20_glyph_103[] = { 11, 14, 12, 0, 10, 0, 25, 223, 198, 143, 96, 46, 255, 223, 255, 246, 11, 251, 16, 8, 255, 96, 255, 0, 0, 13, 246, 47, 208, 0, 0, 175, 96, 255, 0, 0, 13, 246, 11, 250, 16, 8, 255, 96, 46, 255, 223, 255, 246, 0, 26, 223, 214, 159, 96, 0, 0, 0, 10, 245, 9, 178, 0, 0, 223, 48, 143, 177, 0, 143, 224, 0, 223, 253, 255, 245, 0, 0, 140, 253, 179, 0 };
/* h */ static const uint8_t Font_TTHoves_Medium_20_glyph_104[] = { 10, 14, 12, 1, 14, 159, 96, 0, 0, 0, 159, 96, 0, 0, 0, 159, 96, 0, 0, 0, 159, 96, 0, 0, 0, 159, 104, 223, 198, 0, 159, 255, 238, 255, 128, 159, 244, 0, 111, 241, 159, 128, 0, 12, 244, 159, 96, 0, 9, 246, 159, 96, 0, 9, 246, 159, 96, 0, 9, 246, 159, 96, 0, 9, 246, 159, 96, 0, 9, 246, 159, 96, 0, 9, 246 };
/* i */ static const uint8_t Font_TTHoves_Medium_20_glyph_105[] = { 3, 14, 5, 1, 14, 207, 108, 246, 17, 0, 0, 191, 75, 244, 191, 75, 244, 191, 75, 244, 191, 75, 244, 191, 75, 244 };
/* j */ static const uint8_t Font_TTHoves_Medium_20_glyph_106[] = { 5, 18, 6, 0, 14, 0, 207, 96, 12, 246, 0, 17, 0, 0, 0, 0, 191, 64, 11, 244, 0, 191, 64, 11, 244, 0, 191, 64, 11, 244, 0, 191, 64, 11, 244, 0, 191, 64, 11, 244, 0, 191, 64, 11, 244, 189, 255, 46, 255, 128 };
/* k */ static const uint8_t Font_TTHoves_Medium_20_glyph_107[] = { 10, 14, 10, 1, 14, 159, 96, 0, 0, 0, 159, 96, 0, 0, 0, 159, 96, 0, 0, 0, 159, 96, 0, 0, 0, 159, 96, 0, 207, 128, 159, 96, 11, 249, 0, 159, 96, 175, 176, 0, 159, 105, 252, 0, 0, 159, 223, 208, 0, 0, 159, 191, 226, 0, 0, 159, 102, 253, 16, 0, 159, 96, 143, 209, 0, 159, 96, 9, 252, 0, 159, 96, 0, 175, 176 };
/* l */ static const uint8_t Font_TTHoves_Medium_20_glyph_108[] = { 3, 14, 5, 1, 14, 159, 105, 246, 159, 105, 246, 159, 105, 246, 159, 105, 246, 159, 105, 246, 159, 105, 246, 159, 105, 246 };
/* m */ static const uint8_t Font_TTHoves_Medium_20_glyph_109[] = { 15, 10, 17, 1, 10, 191, 57, 238, 145, 59, 238, 161, 11, 255, 253, 255, 223, 253, 255, 224, 191, 209, 2, 239, 243, 0, 207, 123, 246, 0, 9, 249, 0, 6, 250, 191, 64, 0, 127, 112, 0, 79, 187, 244, 0, 7, 247, 0, 4, 251, 191, 64, 0, 127, 112, 0, 79, 187, 244, 0, 7, 247, 0, 4, 251, 191, 64, 0, 127, 112, 0, 79, 187, 244, 0, 7, 247, 0, 4, 251 };
/* n */ static const uint8_t Font_TTHoves_Medium_20_glyph_110[] = { 10, 10, 12, 1, 10, 191, 56, 239, 197, 0, 191, 255, 238, 255, 96, 191, 227, 0, 127, 240, 191, 112, 0, 13, 242, 191, 64, 0, 11, 244, 191, 64, 0, 11, 244, 191, 64, 0, 11, 244, 191, 64, 0, 11, 244, 191, 64, 0, 11, 244, 191, 64, 0, 11, 244 };
/* o */ static const uint8_t Font_TTHoves_Medium_20_glyph_111[] = { 11, 10, 12, 0, 10, 0, 6, 206, 218, 32, 0, 12, 255, 239, 255, 96, 8, 253, 32, 6, 255, 32, 239, 32, 0, 9, 248, 31, 224, 0, 0, 79, 177, 254, 0, 0, 4, 251, 14, 242, 0, 0, 143, 128, 143, 194, 0, 95, 242, 0, 207, 253, 239, 246, 0, 0, 108, 253, 163, 0 };
/* p */ static const uint8_t Font_TTHoves_Medium_20_glyph_112[] = { 11, 14, 12, 1, 10, 191, 39, 223, 199, 0, 11, 254, 255, 239, 252, 0, 191, 246, 0, 61, 247, 11, 250, 0, 0, 79, 208, 191, 80, 0, 0, 255, 11, 246, 0, 0, 15, 240, 191, 160, 0, 4, 253, 11, 255, 96, 2, 223, 112, 191, 239, 237, 255, 192, 11, 245, 141, 252, 112, 0, 191, 64, 0, 0, 0, 11, 244, 0, 0, 0, 0, 191, 64, 0, 0, 0, 11, 244, 0, 0, 0, 0 };
/* q */ static const uint8_t Font_TTHoves_Medium_20_glyph_113[] = { 11, 14, 12, 0, 10, 0, 8, 223, 215, 79, 144, 13, 255, 223, 255, 249, 9, 252, 32, 8, 255, 144, 255, 32, 0, 12, 249, 31, 224, 0, 0, 127, 145, 254, 0, 0, 7, 249, 15, 242, 0, 0, 207, 144, 159, 193, 0, 143, 249, 0, 223, 253, 255, 239, 144, 0, 141, 253, 102, 249, 0, 0, 0, 0, 111, 144, 0, 0, 0, 6, 249, 0, 0, 0, 0, 111, 144, 0, 0, 0, 6, 249 };
/* r */ static const uint8_t Font_TTHoves_Medium_20_glyph_114[] = { 6, 10, 7, 1, 10, 191, 109, 255, 191, 255, 220, 191, 176, 0, 191, 80, 0, 191, 64, 0, 191, 64, 0, 191, 64, 0, 191, 64, 0, 191, 64, 0, 191, 64, 0 };
/* s */ static const uint8_t Font_TTHoves_Medium_20_glyph_115[] = { 9, 10, 10, 0, 10, 0, 141, 253, 162, 0, 191, 235, 207, 243, 31, 241, 0, 95, 177, 255, 80, 0, 0, 8, 255, 253, 164, 0, 3, 139, 239, 247, 1, 16, 0, 95, 228, 253, 16, 3, 254, 11, 255, 188, 255, 112, 6, 206, 236, 80 };
/* t */ static const uint8_t Font_TTHoves_Medium_20_glyph_116[] = { 7, 13, 7, 0, 13, 0, 239, 16, 0, 14, 241, 0, 0, 239, 16, 7, 255, 255, 246, 126, 255, 238, 80, 14, 241, 0, 0, 239, 16, 0, 14, 241, 0, 0, 239, 16, 0, 14, 241, 0, 0, 239, 16, 0, 12, 254, 196, 0, 61, 255, 96 };
/* u */ static const uint8_t Font_TTHoves_Medium_20_glyph_117[] = { 10, 10, 12, 1, 10, 191, 64, 0, 11, 244, 191, 64, 0, 11, 244, 191, 64, 0, 11, 244, 191, 64, 0, 11, 244, 191, 64, 0, 11, 244, 191, 64, 0, 11, 244, 159, 96, 0, 13, 244, 111, 226, 0, 143, 244, 13, 255, 223, 255, 244, 0, 157, 252, 89, 244 };
/* v */ static const uint8_t Font_TTHoves_Medium_20_glyph_118[] = { 11, 10, 10, 0, 10, 191, 80, 0, 2, 254, 6, 251, 0, 0, 143, 144, 15, 241, 0, 13, 243, 0, 175, 96, 3, 253, 0, 5, 251, 0, 143, 128, 0, 15, 241, 14, 242, 0, 0, 175, 100, 253, 0, 0, 4, 252, 175, 112, 0, 0, 14, 255, 241, 0, 0, 0, 159, 252, 0, 0 };
/* w */ static const uint8_t Font_TTHoves_Medium_20_glyph_119[] = { 16, 10, 16, 0, 10, 175, 96, 0, 159, 245, 0, 10, 247, 111, 160, 0, 223, 250, 0, 14, 242, 47, 224, 1, 254, 254, 0, 47, 224, 13, 243, 6, 248, 191, 32, 111, 160, 9, 247, 10, 243, 127, 96, 175, 80, 5, 251, 14, 240, 63, 160, 239, 16, 1, 255, 47, 176, 14, 227, 253, 0, 0, 207, 207, 112, 10, 252, 249, 0, 0, 143, 255, 48, 6, 255, 244, 0, 0, 63, 254, 0, 2, 255, 240, 0 };
/* x */ static const uint8_t Font_TTHoves_Medium_20_glyph_120[] = { 10, 10, 10, 0, 10, 127, 208, 0, 13, 247, 12, 248, 0, 143, 192, 2, 255, 51, 255, 32, 0, 111, 221, 246, 0, 0, 11, 255, 176, 0, 0, 14, 255, 224, 0, 0, 159, 187, 249, 0, 4, 254, 17, 239, 64, 13, 245, 0, 111, 208, 159, 176, 0, 11, 248 };
/* y */ static const uint8_t Font_TTHoves_Medium_20_glyph_121[] = { 11, 14, 10, 0, 10, 191, 80, 0, 1, 255, 5, 252, 0, 0, 111, 160, 14, 242, 0, 12, 244, 0, 159, 128, 1, 254, 0, 2, 254, 0, 127, 144, 0, 12, 244, 12, 243, 0, 0, 111, 162, 253, 0, 0, 1, 255, 175, 128, 0, 0, 10, 255, 242, 0, 0, 0, 79, 252, 0, 0, 0, 0, 239, 112, 0, 0, 0, 31, 241, 0, 0, 10, 206, 250, 0, 0, 0, 207, 252, 16, 0, 0 };
/* z */ static const uint8_t Font_TTHoves_Medium_20_glyph_122[] = { 9, 10, 9, 0, 10, 79, 255, 255, 255, 100, 238, 238, 239, 246, 0, 0, 10, 252, 0, 0, 8, 254, 16, 0, 5, 255, 48, 0, 3, 255, 80, 0, 1, 239, 128, 0, 0, 207, 160, 0, 0, 111, 254, 238, 238, 118, 255, 255, 255, 247 };
/* { */ static const uint8_t Font_TTHoves_Medium_20_glyph_123[] = { 6, 19, 7, 1, 15, 0, 73, 162, 3, 255, 242, 8, 249, 0, 9, 246, 0, 9, 246, 0, 9, 246, 0, 9, 246, 0, 10, 246, 0, 94, 243, 0, 254, 96, 0, 255, 144, 0, 45, 244, 0, 9, 246, 0, 9, 246, 0, 9, 246, 0, 9, 246, 0, 9, 247, 0, 6, 255, 178, 0, 158, 242 };
/* | */ static const uint8_t Font_TTHoves_Medium_20_glyph_124[] = { 3, 19, 7, 2, 15, 159, 105, 246, 159, 105, 246, 159, 105, 246, 159, 105, 246, 159, 105, 246, 159, 105, 246, 159, 105, 246, 159, 105, 246, 159, 105, 246, 159, 96 };
/* } */ static const uint8_t Font_TTHoves_Medium_20_glyph_125[] = { 6, 19, 7, 0, 15, 58, 147, 0, 79, 255, 32, 0, 191, 96, 0, 143, 112, 0, 127, 112, 0, 127, 112, 0, 127, 112, 0, 127, 128, 0, 95, 212, 0, 7, 254, 0, 10, 254, 0, 111, 193, 0, 127, 128, 0, 127, 112, 0, 127, 112, 0, 127, 112, 0, 159, 112, 59, 255, 64, 79, 231, 0 };
/* ~ */ static const uint8_t Font_TTHoves_Medium_20_glyph_126[] = { 11, 5, 12, 0, 8, 0, 0, 0, 0, 58, 128, 26, 237, 128, 10, 250, 10, 255, 239, 239, 255, 64, 255, 64, 59, 253, 96, 27, 144, 0, 0, 0, 0 };
const uint8_t Font_TTHoves_Medium_20_glyph_nonprintable[] = { 10, 14, 10, 0, 14, 255, 180, 17, 58, 255, 247, 0, 0, 0, 111, 208, 8, 238, 128, 12, 144, 79, 255, 245, 8, 255, 255, 255, 245, 7, 255, 255, 255, 160, 11, 255, 255, 228, 0, 127, 255, 255, 80, 26, 255, 255, 255, 16, 191, 255, 255, 254, 0, 255, 255, 255, 255, 136, 255, 255, 255, 255, 204, 255, 255, 255, 252, 0, 239, 255, 255, 252, 0, 239, 255 };
const uint8_t * const Font_TTHoves_Medium_20[126 + 1 - 32] = {
Font_TTHoves_Medium_20_glyph_32,
Font_TTHoves_Medium_20_glyph_33,
Font_TTHoves_Medium_20_glyph_34,
Font_TTHoves_Medium_20_glyph_35,
Font_TTHoves_Medium_20_glyph_36,
Font_TTHoves_Medium_20_glyph_37,
Font_TTHoves_Medium_20_glyph_38,
Font_TTHoves_Medium_20_glyph_39,
Font_TTHoves_Medium_20_glyph_40,
Font_TTHoves_Medium_20_glyph_41,
Font_TTHoves_Medium_20_glyph_42,
Font_TTHoves_Medium_20_glyph_43,
Font_TTHoves_Medium_20_glyph_44,
Font_TTHoves_Medium_20_glyph_45,
Font_TTHoves_Medium_20_glyph_46,
Font_TTHoves_Medium_20_glyph_47,
Font_TTHoves_Medium_20_glyph_48,
Font_TTHoves_Medium_20_glyph_49,
Font_TTHoves_Medium_20_glyph_50,
Font_TTHoves_Medium_20_glyph_51,
Font_TTHoves_Medium_20_glyph_52,
Font_TTHoves_Medium_20_glyph_53,
Font_TTHoves_Medium_20_glyph_54,
Font_TTHoves_Medium_20_glyph_55,
Font_TTHoves_Medium_20_glyph_56,
Font_TTHoves_Medium_20_glyph_57,
Font_TTHoves_Medium_20_glyph_58,
Font_TTHoves_Medium_20_glyph_59,
Font_TTHoves_Medium_20_glyph_60,
Font_TTHoves_Medium_20_glyph_61,
Font_TTHoves_Medium_20_glyph_62,
Font_TTHoves_Medium_20_glyph_63,
Font_TTHoves_Medium_20_glyph_64,
Font_TTHoves_Medium_20_glyph_65,
Font_TTHoves_Medium_20_glyph_66,
Font_TTHoves_Medium_20_glyph_67,
Font_TTHoves_Medium_20_glyph_68,
Font_TTHoves_Medium_20_glyph_69,
Font_TTHoves_Medium_20_glyph_70,
Font_TTHoves_Medium_20_glyph_71,
Font_TTHoves_Medium_20_glyph_72,
Font_TTHoves_Medium_20_glyph_73,
Font_TTHoves_Medium_20_glyph_74,
Font_TTHoves_Medium_20_glyph_75,
Font_TTHoves_Medium_20_glyph_76,
Font_TTHoves_Medium_20_glyph_77,
Font_TTHoves_Medium_20_glyph_78,
Font_TTHoves_Medium_20_glyph_79,
Font_TTHoves_Medium_20_glyph_80,
Font_TTHoves_Medium_20_glyph_81,
Font_TTHoves_Medium_20_glyph_82,
Font_TTHoves_Medium_20_glyph_83,
Font_TTHoves_Medium_20_glyph_84,
Font_TTHoves_Medium_20_glyph_85,
Font_TTHoves_Medium_20_glyph_86,
Font_TTHoves_Medium_20_glyph_87,
Font_TTHoves_Medium_20_glyph_88,
Font_TTHoves_Medium_20_glyph_89,
Font_TTHoves_Medium_20_glyph_90,
Font_TTHoves_Medium_20_glyph_91,
Font_TTHoves_Medium_20_glyph_92,
Font_TTHoves_Medium_20_glyph_93,
Font_TTHoves_Medium_20_glyph_94,
Font_TTHoves_Medium_20_glyph_95,
Font_TTHoves_Medium_20_glyph_96,
Font_TTHoves_Medium_20_glyph_97,
Font_TTHoves_Medium_20_glyph_98,
Font_TTHoves_Medium_20_glyph_99,
Font_TTHoves_Medium_20_glyph_100,
Font_TTHoves_Medium_20_glyph_101,
Font_TTHoves_Medium_20_glyph_102,
Font_TTHoves_Medium_20_glyph_103,
Font_TTHoves_Medium_20_glyph_104,
Font_TTHoves_Medium_20_glyph_105,
Font_TTHoves_Medium_20_glyph_106,
Font_TTHoves_Medium_20_glyph_107,
Font_TTHoves_Medium_20_glyph_108,
Font_TTHoves_Medium_20_glyph_109,
Font_TTHoves_Medium_20_glyph_110,
Font_TTHoves_Medium_20_glyph_111,
Font_TTHoves_Medium_20_glyph_112,
Font_TTHoves_Medium_20_glyph_113,
Font_TTHoves_Medium_20_glyph_114,
Font_TTHoves_Medium_20_glyph_115,
Font_TTHoves_Medium_20_glyph_116,
Font_TTHoves_Medium_20_glyph_117,
Font_TTHoves_Medium_20_glyph_118,
Font_TTHoves_Medium_20_glyph_119,
Font_TTHoves_Medium_20_glyph_120,
Font_TTHoves_Medium_20_glyph_121,
Font_TTHoves_Medium_20_glyph_122,
Font_TTHoves_Medium_20_glyph_123,
Font_TTHoves_Medium_20_glyph_124,
Font_TTHoves_Medium_20_glyph_125,
Font_TTHoves_Medium_20_glyph_126,
};

@ -0,0 +1,7 @@
#include <stdint.h>
#if TREZOR_FONT_BPP != 4
#error Wrong TREZOR_FONT_BPP (expected 4)
#endif
extern const uint8_t* const Font_TTHoves_Medium_20[126 + 1 - 32];
extern const uint8_t Font_TTHoves_Medium_20_glyph_nonprintable[];

@ -0,0 +1,203 @@
#include <stdint.h>
// clang-format off
// - the first two bytes are width and height of the glyph
// - the third, fourth and fifth bytes are advance, bearingX and bearingY of the horizontal metrics of the glyph
// - the rest is packed 4-bit glyph data
/* */ static const uint8_t Font_TTHoves_Regular_18_glyph_32[] = { 0, 0, 4, 0, 0 };
/* ! */ static const uint8_t Font_TTHoves_Regular_18_glyph_33[] = { 3, 13, 5, 1, 13, 127, 7, 240, 127, 7, 240, 127, 7, 240, 126, 6, 224, 93, 5, 192, 0, 5, 144, 143, 0 };
/* " */ static const uint8_t Font_TTHoves_Regular_18_glyph_34[] = { 6, 4, 6, 0, 13, 15, 84, 240, 15, 84, 240, 15, 84, 240, 15, 84, 240 };
/* # */ static const uint8_t Font_TTHoves_Regular_18_glyph_35[] = { 13, 13, 12, 0, 13, 0, 0, 95, 0, 63, 32, 0, 0, 8, 208, 6, 240, 0, 0, 0, 186, 0, 156, 0, 0, 35, 62, 147, 60, 179, 48, 10, 255, 255, 255, 255, 254, 0, 0, 79, 0, 47, 32, 0, 0, 8, 208, 5, 240, 0, 0, 0, 186, 0, 156, 0, 0, 19, 62, 147, 60, 179, 48, 10, 255, 255, 255, 255, 254, 0, 0, 95, 0, 63, 32, 0, 0, 9, 192, 7, 224, 0, 0, 0, 216, 0, 170, 0, 0, 0 };
/* $ */ static const uint8_t Font_TTHoves_Regular_18_glyph_36[] = { 11, 17, 11, 0, 15, 0, 0, 63, 16, 0, 0, 0, 3, 241, 0, 0, 0, 42, 239, 234, 32, 0, 63, 198, 71, 223, 48, 11, 208, 0, 0, 220, 0, 233, 0, 0, 6, 208, 12, 192, 0, 0, 0, 0, 79, 199, 48, 0, 0, 0, 58, 255, 252, 80, 0, 0, 0, 37, 175, 128, 0, 0, 0, 0, 159, 1, 212, 0, 0, 5, 242, 14, 176, 0, 0, 159, 0, 79, 198, 69, 175, 96, 0, 42, 239, 235, 64, 0, 0, 3, 241, 0, 0, 0, 0, 63, 16, 0, 0 };
/* % */ static const uint8_t Font_TTHoves_Regular_18_glyph_37[] = { 14, 13, 14, 0, 13, 2, 207, 194, 0, 3, 243, 0, 13, 180, 189, 0, 13, 144, 0, 63, 32, 47, 48, 110, 16, 0, 63, 32, 47, 49, 246, 0, 0, 13, 180, 189, 10, 192, 0, 0, 2, 207, 194, 63, 48, 0, 0, 0, 0, 0, 217, 0, 0, 0, 0, 0, 7, 225, 93, 234, 16, 0, 0, 31, 98, 248, 93, 160, 0, 0, 172, 7, 224, 6, 240, 0, 3, 243, 7, 224, 6, 240, 0, 13, 144, 2, 248, 77, 160, 0, 126, 16, 0, 93, 250, 16 };
/* & */ static const uint8_t Font_TTHoves_Regular_18_glyph_38[] = { 12, 13, 11, 0, 13, 0, 60, 253, 96, 0, 0, 2, 253, 122, 246, 0, 0, 7, 241, 0, 204, 0, 0, 7, 240, 0, 173, 0, 0, 1, 249, 6, 246, 0, 0, 0, 79, 207, 112, 0, 0, 0, 46, 248, 0, 0, 0, 3, 234, 127, 48, 47, 32, 13, 176, 8, 226, 111, 0, 31, 80, 0, 158, 219, 0, 15, 128, 0, 30, 244, 0, 9, 249, 104, 223, 205, 16, 0, 125, 253, 146, 13, 192 };
/* ' */ static const uint8_t Font_TTHoves_Regular_18_glyph_39[] = { 3, 4, 3, 0, 13, 15, 80, 245, 15, 80, 245 };
/* ( */ static const uint8_t Font_TTHoves_Regular_18_glyph_40[] = { 5, 17, 6, 1, 13, 0, 142, 0, 31, 80, 8, 208, 0, 231, 0, 63, 32, 6, 224, 0, 156, 0, 10, 160, 0, 185, 0, 10, 160, 0, 155, 0, 7, 224, 0, 63, 32, 0, 231, 0, 8, 208, 0, 31, 80, 0, 142, 0 };
/* ) */ static const uint8_t Font_TTHoves_Regular_18_glyph_41[] = { 5, 17, 6, 0, 13, 79, 32, 0, 171, 0, 3, 242, 0, 12, 144, 0, 125, 0, 4, 241, 0, 31, 64, 0, 245, 0, 15, 96, 0, 245, 0, 31, 64, 4, 241, 0, 126, 0, 12, 144, 2, 243, 0, 171, 0, 79, 32, 0 };
/* * */ static const uint8_t Font_TTHoves_Regular_18_glyph_42[] = { 8, 7, 8, 0, 13, 0, 7, 176, 0, 0, 7, 176, 0, 30, 136, 182, 197, 6, 191, 252, 114, 0, 63, 231, 0, 0, 217, 79, 48, 1, 176, 9, 64 };
/* + */ static const uint8_t Font_TTHoves_Regular_18_glyph_43[] = { 9, 8, 10, 0, 9, 0, 0, 215, 0, 0, 0, 13, 112, 0, 0, 0, 215, 0, 1, 255, 255, 255, 251, 4, 68, 233, 68, 48, 0, 13, 112, 0, 0, 0, 215, 0, 0, 0, 13, 112, 0 };
/* , */ static const uint8_t Font_TTHoves_Regular_18_glyph_44[] = { 3, 3, 4, 0, 2, 14, 160, 245, 47, 16 };
/* - */ static const uint8_t Font_TTHoves_Regular_18_glyph_45[] = { 7, 2, 7, 0, 6, 63, 255, 255, 128, 68, 68, 66 };
/* . */ static const uint8_t Font_TTHoves_Regular_18_glyph_46[] = { 2, 2, 4, 1, 2, 134, 234 };
/* / */ static const uint8_t Font_TTHoves_Regular_18_glyph_47[] = { 7, 17, 6, 0, 13, 0, 0, 63, 32, 0, 7, 208, 0, 0, 201, 0, 0, 31, 64, 0, 5, 240, 0, 0, 171, 0, 0, 14, 96, 0, 3, 241, 0, 0, 141, 0, 0, 13, 128, 0, 1, 243, 0, 0, 110, 0, 0, 11, 160, 0, 0, 245, 0, 0, 79, 16, 0, 9, 192, 0, 0, 215, 0, 0, 0 };
/* 0 */ static const uint8_t Font_TTHoves_Regular_18_glyph_48[] = { 11, 13, 12, 0, 13, 0, 3, 190, 217, 16, 0, 5, 252, 120, 237, 32, 1, 234, 0, 1, 218, 0, 143, 16, 0, 6, 243, 11, 160, 0, 0, 15, 96, 232, 0, 0, 0, 216, 15, 112, 0, 0, 12, 160, 232, 0, 0, 0, 216, 11, 160, 0, 0, 15, 96, 143, 16, 0, 5, 243, 1, 250, 0, 1, 219, 0, 5, 252, 104, 237, 32, 0, 3, 190, 217, 16, 0 };
/* 1 */ static const uint8_t Font_TTHoves_Regular_18_glyph_49[] = { 5, 13, 6, 0, 13, 0, 13, 146, 52, 249, 143, 255, 144, 0, 217, 0, 13, 144, 0, 217, 0, 13, 144, 0, 217, 0, 13, 144, 0, 217, 0, 13, 144, 0, 217, 0, 13, 144 };
/* 2 */ static const uint8_t Font_TTHoves_Regular_18_glyph_50[] = { 9, 13, 10, 0, 13, 0, 59, 237, 145, 0, 63, 198, 142, 208, 12, 192, 0, 63, 80, 246, 0, 0, 233, 1, 0, 0, 15, 112, 0, 0, 5, 244, 0, 0, 3, 250, 0, 0, 2, 236, 0, 0, 1, 221, 16, 0, 0, 222, 16, 0, 0, 206, 32, 0, 0, 191, 133, 85, 84, 15, 255, 255, 255, 224 };
/* 3 */ static const uint8_t Font_TTHoves_Regular_18_glyph_51[] = { 9, 13, 10, 0, 13, 0, 92, 253, 145, 0, 127, 182, 126, 225, 15, 144, 0, 31, 129, 98, 0, 0, 202, 0, 0, 0, 31, 112, 0, 5, 125, 192, 0, 0, 255, 243, 0, 0, 0, 41, 243, 0, 0, 0, 12, 178, 128, 0, 0, 157, 47, 96, 0, 13, 160, 159, 150, 125, 242, 0, 108, 254, 162, 0 };
/* 4 */ static const uint8_t Font_TTHoves_Regular_18_glyph_52[] = { 10, 13, 10, 0, 13, 0, 0, 14, 250, 0, 0, 0, 143, 250, 0, 0, 1, 248, 202, 0, 0, 10, 225, 202, 0, 0, 63, 112, 202, 0, 0, 189, 0, 202, 0, 4, 245, 0, 202, 0, 13, 192, 0, 202, 0, 111, 115, 51, 219, 49, 175, 255, 255, 255, 244, 0, 0, 0, 202, 0, 0, 0, 0, 202, 0, 0, 0, 0, 202, 0 };
/* 5 */ static const uint8_t Font_TTHoves_Regular_18_glyph_53[] = { 10, 13, 10, 0, 13, 4, 255, 255, 255, 128, 5, 245, 85, 85, 48, 7, 208, 0, 0, 0, 9, 192, 0, 0, 0, 11, 183, 206, 178, 0, 12, 253, 119, 223, 48, 9, 144, 0, 12, 192, 0, 0, 0, 5, 241, 0, 0, 0, 3, 243, 26, 48, 0, 5, 241, 13, 192, 0, 13, 208, 4, 252, 103, 223, 48, 0, 59, 238, 162, 0 };
/* 6 */ static const uint8_t Font_TTHoves_Regular_18_glyph_54[] = { 10, 13, 10, 0, 13, 0, 0, 14, 176, 0, 0, 0, 143, 32, 0, 0, 2, 248, 0, 0, 0, 12, 224, 0, 0, 0, 95, 97, 0, 0, 1, 239, 255, 231, 0, 9, 247, 17, 127, 128, 15, 128, 0, 7, 241, 63, 48, 0, 2, 244, 47, 64, 0, 3, 243, 13, 176, 0, 10, 224, 3, 252, 118, 207, 64, 0, 42, 238, 179, 0 };
/* 7 */ static const uint8_t Font_TTHoves_Regular_18_glyph_55[] = { 9, 13, 9, 0, 13, 143, 255, 255, 255, 83, 85, 85, 89, 243, 0, 0, 0, 173, 0, 0, 0, 31, 112, 0, 0, 6, 241, 0, 0, 0, 219, 0, 0, 0, 63, 80, 0, 0, 9, 224, 0, 0, 0, 233, 0, 0, 0, 95, 48, 0, 0, 11, 192, 0, 0, 1, 246, 0, 0, 0, 127, 16, 0, 0 };
/* 8 */ static const uint8_t Font_TTHoves_Regular_18_glyph_56[] = { 10, 13, 10, 0, 13, 0, 42, 238, 178, 0, 2, 253, 119, 207, 32, 9, 224, 0, 13, 160, 12, 160, 0, 9, 208, 10, 208, 0, 12, 160, 2, 235, 85, 190, 32, 0, 127, 255, 248, 0, 6, 247, 17, 111, 112, 14, 128, 0, 7, 240, 15, 96, 0, 5, 241, 13, 176, 0, 10, 224, 4, 252, 102, 191, 80, 0, 59, 238, 179, 0 };
/* 9 */ static const uint8_t Font_TTHoves_Regular_18_glyph_57[] = { 10, 13, 10, 0, 13, 0, 42, 238, 178, 0, 3, 253, 119, 207, 64, 13, 192, 0, 11, 224, 47, 64, 0, 3, 243, 63, 48, 0, 2, 244, 15, 128, 0, 7, 241, 7, 247, 17, 111, 160, 0, 110, 255, 255, 16, 0, 0, 21, 247, 0, 0, 0, 13, 208, 0, 0, 0, 127, 48, 0, 0, 1, 249, 0, 0, 0, 10, 225, 0, 0 };
/* : */ static const uint8_t Font_TTHoves_Regular_18_glyph_58[] = { 2, 9, 4, 1, 9, 234, 150, 0, 0, 0, 0, 0, 134, 234 };
/* ; */ static const uint8_t Font_TTHoves_Regular_18_glyph_59[] = { 3, 10, 4, 0, 9, 13, 192, 135, 0, 0, 0, 0, 0, 0, 0, 0, 217, 15, 98, 241 };
/* < */ static const uint8_t Font_TTHoves_Regular_18_glyph_60[] = { 9, 8, 10, 0, 9, 0, 0, 0, 23, 128, 0, 2, 159, 213, 0, 75, 251, 64, 0, 222, 130, 0, 0, 13, 232, 32, 0, 0, 4, 191, 180, 0, 0, 0, 41, 253, 80, 0, 0, 1, 136 };
/* = */ static const uint8_t Font_TTHoves_Regular_18_glyph_61[] = { 8, 5, 9, 1, 8, 35, 51, 51, 48, 191, 255, 255, 242, 0, 0, 0, 0, 35, 51, 51, 48, 191, 255, 255, 242 };
/* > */ static const uint8_t Font_TTHoves_Regular_18_glyph_62[] = { 9, 8, 10, 0, 9, 12, 80, 0, 0, 0, 159, 231, 0, 0, 0, 7, 223, 146, 0, 0, 0, 75, 247, 0, 0, 4, 191, 128, 0, 109, 249, 32, 9, 254, 113, 0, 0, 197, 0, 0, 0 };
/* ? */ static const uint8_t Font_TTHoves_Regular_18_glyph_63[] = { 9, 13, 9, 0, 13, 0, 141, 252, 96, 0, 207, 134, 175, 128, 95, 48, 0, 127, 20, 128, 0, 2, 244, 0, 0, 0, 79, 64, 0, 0, 12, 224, 0, 0, 61, 226, 0, 0, 15, 177, 0, 0, 4, 242, 0, 0, 0, 111, 0, 0, 0, 0, 16, 0, 0, 0, 73, 16, 0, 0, 7, 241, 0, 0 };
/* @ */ static const uint8_t Font_TTHoves_Regular_18_glyph_64[] = { 15, 15, 17, 1, 13, 0, 0, 0, 35, 32, 0, 0, 0, 0, 59, 255, 255, 249, 16, 0, 0, 143, 164, 32, 53, 207, 96, 0, 127, 64, 0, 0, 0, 111, 64, 47, 96, 26, 238, 150, 160, 158, 25, 208, 13, 214, 91, 252, 0, 246, 217, 6, 241, 0, 13, 192, 12, 174, 112, 140, 0, 0, 156, 0, 171, 217, 6, 224, 0, 12, 192, 12, 153, 192, 31, 161, 23, 254, 20, 244, 63, 80, 78, 255, 229, 239, 248, 0, 143, 48, 2, 32, 0, 49, 0, 0, 159, 164, 32, 0, 0, 0, 0, 0, 60, 255, 255, 255, 0, 0, 0, 0, 1, 52, 68, 64, 0, 0 };
/* A */ static const uint8_t Font_TTHoves_Regular_18_glyph_65[] = { 12, 13, 12, 0, 13, 0, 0, 111, 241, 0, 0, 0, 0, 204, 247, 0, 0, 0, 2, 244, 157, 0, 0, 0, 8, 224, 63, 48, 0, 0, 14, 128, 13, 144, 0, 0, 79, 32, 7, 224, 0, 0, 156, 0, 1, 244, 0, 0, 246, 0, 0, 186, 0, 5, 255, 255, 255, 255, 16, 11, 181, 85, 85, 94, 96, 31, 80, 0, 0, 10, 192, 127, 0, 0, 0, 4, 242, 218, 0, 0, 0, 0, 248 };
/* B */ static const uint8_t Font_TTHoves_Regular_18_glyph_66[] = { 10, 13, 12, 1, 13, 143, 255, 255, 215, 0, 142, 85, 85, 143, 128, 141, 0, 0, 8, 240, 141, 0, 0, 3, 243, 141, 0, 0, 5, 241, 141, 0, 0, 61, 192, 143, 255, 255, 255, 32, 142, 68, 68, 110, 192, 141, 0, 0, 4, 244, 141, 0, 0, 0, 246, 141, 0, 0, 4, 243, 142, 85, 85, 126, 176, 143, 255, 255, 233, 0 };
/* C */ static const uint8_t Font_TTHoves_Regular_18_glyph_67[] = { 13, 13, 13, 0, 13, 0, 0, 107, 238, 181, 0, 0, 1, 207, 167, 123, 251, 0, 0, 206, 48, 0, 4, 250, 0, 111, 48, 0, 0, 6, 242, 12, 176, 0, 0, 0, 3, 16, 232, 0, 0, 0, 0, 0, 31, 80, 0, 0, 0, 0, 0, 231, 0, 0, 0, 0, 0, 12, 176, 0, 0, 0, 5, 32, 111, 48, 0, 0, 7, 242, 0, 205, 48, 0, 4, 250, 0, 2, 207, 166, 106, 251, 0, 0, 0, 123, 238, 197, 0, 0 };
/* D */ static const uint8_t Font_TTHoves_Regular_18_glyph_68[] = { 11, 13, 13, 1, 13, 143, 255, 253, 163, 0, 8, 229, 85, 140, 248, 0, 141, 0, 0, 7, 246, 8, 208, 0, 0, 10, 225, 141, 0, 0, 0, 31, 88, 208, 0, 0, 0, 232, 141, 0, 0, 0, 12, 168, 208, 0, 0, 0, 232, 141, 0, 0, 0, 31, 88, 208, 0, 0, 9, 241, 141, 0, 0, 7, 246, 8, 229, 85, 140, 248, 0, 143, 255, 253, 163, 0, 0 };
/* E */ static const uint8_t Font_TTHoves_Regular_18_glyph_69[] = { 9, 13, 11, 1, 13, 143, 255, 255, 255, 136, 229, 85, 85, 83, 141, 0, 0, 0, 8, 208, 0, 0, 0, 141, 0, 0, 0, 8, 229, 85, 85, 80, 143, 255, 255, 255, 40, 208, 0, 0, 0, 141, 0, 0, 0, 8, 208, 0, 0, 0, 141, 0, 0, 0, 8, 229, 85, 85, 82, 143, 255, 255, 255, 128 };
/* F */ static const uint8_t Font_TTHoves_Regular_18_glyph_70[] = { 9, 13, 10, 1, 13, 143, 255, 255, 255, 88, 229, 85, 85, 82, 141, 0, 0, 0, 8, 208, 0, 0, 0, 141, 0, 0, 0, 8, 229, 85, 85, 80, 143, 255, 255, 255, 8, 208, 0, 0, 0, 141, 0, 0, 0, 8, 208, 0, 0, 0, 141, 0, 0, 0, 8, 208, 0, 0, 0, 141, 0, 0, 0, 0 };
/* G */ static const uint8_t Font_TTHoves_Regular_18_glyph_71[] = { 13, 13, 14, 0, 13, 0, 0, 123, 238, 181, 0, 0, 2, 207, 167, 106, 252, 16, 0, 221, 32, 0, 3, 236, 0, 127, 32, 0, 0, 3, 195, 12, 160, 0, 0, 0, 0, 0, 247, 0, 0, 0, 0, 0, 15, 96, 0, 9, 255, 255, 144, 232, 0, 0, 36, 68, 233, 11, 192, 0, 0, 0, 31, 144, 95, 64, 0, 0, 8, 249, 0, 190, 48, 0, 5, 255, 144, 1, 191, 167, 123, 249, 185, 0, 0, 107, 238, 180, 9, 144 };
/* H */ static const uint8_t Font_TTHoves_Regular_18_glyph_72[] = { 11, 13, 13, 1, 13, 141, 0, 0, 0, 31, 88, 208, 0, 0, 1, 245, 141, 0, 0, 0, 31, 88, 208, 0, 0, 1, 245, 141, 0, 0, 0, 31, 88, 229, 85, 85, 86, 245, 143, 255, 255, 255, 255, 88, 208, 0, 0, 1, 245, 141, 0, 0, 0, 31, 88, 208, 0, 0, 1, 245, 141, 0, 0, 0, 31, 88, 208, 0, 0, 1, 245, 141, 0, 0, 0, 31, 80 };
/* I */ static const uint8_t Font_TTHoves_Regular_18_glyph_73[] = { 2, 13, 4, 1, 13, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141 };
/* J */ static const uint8_t Font_TTHoves_Regular_18_glyph_74[] = { 6, 13, 7, 0, 13, 0, 0, 217, 0, 0, 217, 0, 0, 217, 0, 0, 217, 0, 0, 217, 0, 0, 217, 0, 0, 217, 0, 0, 217, 0, 0, 217, 0, 0, 217, 0, 0, 217, 69, 87, 247, 223, 255, 177 };
/* K */ static const uint8_t Font_TTHoves_Regular_18_glyph_75[] = { 10, 13, 10, 1, 13, 141, 0, 0, 79, 128, 141, 0, 2, 250, 0, 141, 0, 30, 192, 0, 141, 0, 205, 16, 0, 141, 11, 226, 0, 0, 141, 159, 48, 0, 0, 143, 250, 0, 0, 0, 141, 111, 96, 0, 0, 141, 7, 244, 0, 0, 141, 0, 159, 48, 0, 141, 0, 11, 226, 0, 141, 0, 0, 206, 16, 141, 0, 0, 29, 209 };
/* L */ static const uint8_t Font_TTHoves_Regular_18_glyph_76[] = { 9, 13, 10, 1, 13, 141, 0, 0, 0, 8, 208, 0, 0, 0, 141, 0, 0, 0, 8, 208, 0, 0, 0, 141, 0, 0, 0, 8, 208, 0, 0, 0, 141, 0, 0, 0, 8, 208, 0, 0, 0, 141, 0, 0, 0, 8, 208, 0, 0, 0, 141, 0, 0, 0, 8, 229, 85, 85, 80, 143, 255, 255, 255, 32 };
/* M */ static const uint8_t Font_TTHoves_Regular_18_glyph_77[] = { 14, 13, 16, 1, 13, 143, 243, 0, 0, 0, 15, 251, 143, 248, 0, 0, 0, 95, 251, 141, 158, 0, 0, 0, 188, 171, 141, 63, 48, 0, 1, 246, 171, 141, 14, 144, 0, 6, 241, 171, 141, 8, 224, 0, 11, 176, 171, 141, 3, 244, 0, 31, 96, 171, 141, 0, 217, 0, 111, 16, 171, 141, 0, 142, 0, 203, 0, 171, 141, 0, 47, 65, 245, 0, 171, 141, 0, 13, 166, 240, 0, 171, 141, 0, 7, 254, 160, 0, 171, 141, 0, 2, 255, 80, 0, 171 };
/* N */ static const uint8_t Font_TTHoves_Regular_18_glyph_78[] = { 11, 13, 13, 1, 13, 143, 242, 0, 0, 31, 88, 254, 144, 0, 1, 245, 141, 111, 32, 0, 31, 88, 208, 217, 0, 1, 245, 141, 6, 242, 0, 31, 88, 208, 13, 160, 1, 245, 141, 0, 111, 32, 31, 88, 208, 0, 218, 1, 245, 141, 0, 5, 242, 31, 88, 208, 0, 13, 161, 245, 141, 0, 0, 95, 79, 88, 208, 0, 0, 222, 245, 141, 0, 0, 5, 255, 80 };
/* O */ static const uint8_t Font_TTHoves_Regular_18_glyph_79[] = { 13, 13, 14, 0, 13, 0, 0, 107, 238, 165, 0, 0, 1, 207, 167, 123, 250, 0, 0, 206, 48, 0, 5, 249, 0, 111, 48, 0, 0, 6, 243, 12, 176, 0, 0, 0, 13, 144, 232, 0, 0, 0, 0, 172, 31, 80, 0, 0, 0, 8, 224, 231, 0, 0, 0, 0, 172, 12, 176, 0, 0, 0, 13, 144, 111, 48, 0, 0, 6, 244, 0, 205, 48, 0, 4, 234, 0, 2, 207, 166, 123, 250, 16, 0, 0, 123, 238, 181, 0, 0 };
/* P */ static const uint8_t Font_TTHoves_Regular_18_glyph_80[] = { 10, 13, 11, 1, 13, 143, 255, 255, 216, 0, 142, 85, 85, 143, 176, 141, 0, 0, 5, 243, 141, 0, 0, 0, 247, 141, 0, 0, 0, 247, 141, 0, 0, 5, 243, 142, 85, 85, 127, 176, 143, 255, 255, 232, 0, 141, 0, 0, 0, 0, 141, 0, 0, 0, 0, 141, 0, 0, 0, 0, 141, 0, 0, 0, 0, 141, 0, 0, 0, 0 };
/* Q */ static const uint8_t Font_TTHoves_Regular_18_glyph_81[] = { 13, 13, 14, 0, 13, 0, 0, 107, 238, 165, 0, 0, 1, 207, 167, 123, 250, 0, 0, 206, 48, 0, 5, 249, 0, 111, 48, 0, 0, 6, 243, 12, 176, 0, 0, 0, 13, 144, 232, 0, 0, 0, 0, 172, 31, 80, 0, 0, 0, 8, 224, 231, 0, 0, 0, 0, 172, 12, 176, 0, 109, 80, 13, 144, 111, 48, 0, 127, 85, 244, 0, 205, 48, 0, 127, 234, 0, 2, 207, 166, 105, 255, 112, 0, 0, 123, 238, 198, 95, 96 };
/* R */ static const uint8_t Font_TTHoves_Regular_18_glyph_82[] = { 10, 13, 12, 1, 13, 143, 255, 255, 216, 0, 142, 85, 85, 143, 176, 141, 0, 0, 5, 243, 141, 0, 0, 0, 247, 141, 0, 0, 0, 247, 141, 0, 0, 5, 243, 142, 85, 85, 127, 176, 143, 255, 255, 232, 0, 141, 8, 244, 0, 0, 141, 0, 143, 64, 0, 141, 0, 8, 244, 0, 141, 0, 0, 143, 64, 141, 0, 0, 8, 245 };
/* S */ static const uint8_t Font_TTHoves_Regular_18_glyph_83[] = { 11, 13, 11, 0, 13, 0, 42, 223, 217, 16, 0, 47, 215, 104, 238, 32, 10, 208, 0, 1, 219, 0, 217, 0, 0, 6, 208, 12, 192, 0, 0, 0, 0, 79, 198, 48, 0, 0, 0, 58, 255, 252, 80, 0, 0, 0, 37, 175, 128, 0, 0, 0, 0, 143, 1, 212, 0, 0, 5, 241, 13, 192, 0, 0, 174, 0, 63, 215, 103, 207, 80, 0, 25, 223, 235, 48, 0 };
/* T */ static const uint8_t Font_TTHoves_Regular_18_glyph_84[] = { 11, 13, 11, 0, 13, 143, 255, 255, 255, 255, 35, 85, 90, 246, 85, 80, 0, 0, 111, 0, 0, 0, 0, 6, 240, 0, 0, 0, 0, 111, 0, 0, 0, 0, 6, 240, 0, 0, 0, 0, 111, 0, 0, 0, 0, 6, 240, 0, 0, 0, 0, 111, 0, 0, 0, 0, 6, 240, 0, 0, 0, 0, 111, 0, 0, 0, 0, 6, 240, 0, 0, 0, 0, 111, 0, 0, 0 };
/* U */ static const uint8_t Font_TTHoves_Regular_18_glyph_85[] = { 11, 13, 12, 1, 13, 186, 0, 0, 0, 79, 43, 160, 0, 0, 4, 242, 186, 0, 0, 0, 79, 43, 160, 0, 0, 4, 242, 186, 0, 0, 0, 79, 43, 160, 0, 0, 4, 242, 186, 0, 0, 0, 79, 43, 176, 0, 0, 4, 242, 172, 0, 0, 0, 111, 7, 241, 0, 0, 10, 208, 30, 160, 0, 4, 246, 0, 95, 215, 106, 251, 0, 0, 42, 222, 198, 0, 0 };
/* V */ static const uint8_t Font_TTHoves_Regular_18_glyph_86[] = { 12, 13, 12, 0, 13, 173, 0, 0, 0, 3, 245, 79, 48, 0, 0, 8, 240, 14, 144, 0, 0, 14, 160, 9, 224, 0, 0, 63, 64, 3, 244, 0, 0, 158, 0, 0, 233, 0, 0, 233, 0, 0, 142, 0, 4, 243, 0, 0, 47, 64, 9, 208, 0, 0, 13, 160, 14, 128, 0, 0, 7, 240, 79, 32, 0, 0, 1, 245, 172, 0, 0, 0, 0, 205, 247, 0, 0, 0, 0, 111, 241, 0, 0 };
/* W */ static const uint8_t Font_TTHoves_Regular_18_glyph_87[] = { 18, 13, 18, 0, 13, 158, 0, 0, 6, 255, 0, 0, 4, 243, 95, 32, 0, 10, 255, 64, 0, 8, 240, 47, 96, 0, 14, 158, 128, 0, 11, 192, 14, 144, 0, 47, 74, 192, 0, 15, 128, 10, 208, 0, 111, 22, 240, 0, 63, 64, 6, 241, 0, 172, 2, 244, 0, 127, 0, 2, 245, 0, 232, 0, 232, 0, 188, 0, 0, 233, 2, 244, 0, 172, 0, 232, 0, 0, 172, 6, 241, 0, 111, 2, 244, 0, 0, 127, 10, 192, 0, 47, 70, 241, 0, 0, 63, 78, 128, 0, 14, 138, 208, 0, 0, 15, 207, 64, 0, 10, 238, 144, 0, 0, 11, 255, 16, 0, 6, 255, 80, 0 };
/* X */ static const uint8_t Font_TTHoves_Regular_18_glyph_88[] = { 11, 13, 11, 0, 13, 63, 96, 0, 0, 79, 80, 159, 16, 0, 13, 176, 0, 219, 0, 9, 225, 0, 3, 246, 4, 245, 0, 0, 9, 242, 219, 0, 0, 0, 13, 255, 16, 0, 0, 0, 175, 192, 0, 0, 0, 79, 159, 96, 0, 0, 13, 176, 158, 16, 0, 8, 241, 0, 219, 0, 3, 246, 0, 4, 245, 0, 220, 0, 0, 9, 225, 143, 32, 0, 0, 30, 160 };
/* Y */ static const uint8_t Font_TTHoves_Regular_18_glyph_89[] = { 11, 13, 11, 0, 13, 188, 0, 0, 0, 63, 82, 245, 0, 0, 12, 192, 9, 224, 0, 5, 243, 0, 31, 112, 0, 218, 0, 0, 127, 16, 127, 16, 0, 0, 217, 30, 112, 0, 0, 5, 252, 224, 0, 0, 0, 12, 245, 0, 0, 0, 0, 111, 0, 0, 0, 0, 6, 240, 0, 0, 0, 0, 111, 0, 0, 0, 0, 6, 240, 0, 0, 0, 0, 111, 0, 0, 0 };
/* Z */ static const uint8_t Font_TTHoves_Regular_18_glyph_90[] = { 10, 13, 10, 0, 13, 79, 255, 255, 255, 249, 21, 85, 85, 89, 246, 0, 0, 0, 30, 176, 0, 0, 0, 174, 16, 0, 0, 5, 245, 0, 0, 0, 30, 160, 0, 0, 0, 190, 16, 0, 0, 6, 244, 0, 0, 0, 47, 144, 0, 0, 0, 205, 0, 0, 0, 7, 243, 0, 0, 0, 47, 197, 85, 85, 83, 95, 255, 255, 255, 251 };
/* [ */ static const uint8_t Font_TTHoves_Regular_18_glyph_91[] = { 5, 18, 6, 1, 14, 35, 51, 8, 255, 240, 140, 0, 8, 192, 0, 140, 0, 8, 192, 0, 140, 0, 8, 192, 0, 140, 0, 8, 192, 0, 140, 0, 8, 192, 0, 140, 0, 8, 192, 0, 140, 0, 8, 192, 0, 141, 51, 8, 255, 240 };
/* \ */ static const uint8_t Font_TTHoves_Regular_18_glyph_92[] = { 7, 17, 6, 0, 13, 215, 0, 0, 9, 192, 0, 0, 79, 16, 0, 0, 245, 0, 0, 11, 160, 0, 0, 110, 0, 0, 1, 243, 0, 0, 13, 128, 0, 0, 141, 0, 0, 3, 241, 0, 0, 14, 96, 0, 0, 171, 0, 0, 5, 240, 0, 0, 31, 64, 0, 0, 201, 0, 0, 7, 208, 0, 0, 63, 32 };
/* ] */ static const uint8_t Font_TTHoves_Regular_18_glyph_93[] = { 5, 18, 6, 0, 14, 19, 51, 5, 255, 243, 0, 31, 48, 1, 243, 0, 31, 48, 1, 243, 0, 31, 48, 1, 243, 0, 31, 48, 1, 243, 0, 31, 48, 1, 243, 0, 31, 48, 1, 243, 0, 31, 48, 1, 243, 19, 95, 53, 255, 243 };
/* ^ */ static const uint8_t Font_TTHoves_Regular_18_glyph_94[] = { 7, 5, 7, 0, 13, 0, 63, 128, 0, 10, 206, 0, 0, 243, 228, 0, 108, 8, 176, 13, 96, 47, 16 };
/* _ */ static const uint8_t Font_TTHoves_Regular_18_glyph_95[] = { 8, 2, 7, 0, 0, 19, 51, 51, 51, 95, 255, 255, 253 };
/* ` */ static const uint8_t Font_TTHoves_Regular_18_glyph_96[] = { 4, 2, 4, 0, 13, 29, 144, 1, 214 };
/* a */ static const uint8_t Font_TTHoves_Regular_18_glyph_97[] = { 9, 9, 10, 0, 9, 0, 92, 254, 145, 0, 95, 165, 110, 176, 9, 128, 0, 79, 16, 0, 19, 53, 244, 3, 223, 255, 255, 64, 219, 32, 1, 244, 15, 80, 0, 111, 64, 205, 100, 142, 244, 1, 174, 235, 47, 64 };
/* b */ static const uint8_t Font_TTHoves_Regular_18_glyph_98[] = { 9, 13, 11, 1, 13, 170, 0, 0, 0, 10, 160, 0, 0, 0, 170, 0, 0, 0, 10, 160, 0, 0, 0, 170, 44, 252, 96, 10, 189, 165, 143, 128, 175, 128, 0, 95, 58, 224, 0, 0, 217, 171, 0, 0, 9, 186, 208, 0, 0, 170, 175, 64, 0, 47, 106, 255, 132, 126, 192, 169, 92, 253, 128, 0 };
/* c */ static const uint8_t Font_TTHoves_Regular_18_glyph_99[] = { 9, 9, 10, 0, 9, 0, 42, 238, 179, 0, 63, 197, 107, 243, 12, 176, 0, 11, 193, 243, 0, 0, 0, 63, 16, 0, 0, 1, 243, 0, 0, 0, 13, 176, 0, 11, 192, 63, 181, 107, 243, 0, 42, 238, 179, 0 };
/* d */ static const uint8_t Font_TTHoves_Regular_18_glyph_100[] = { 10, 13, 11, 0, 13, 0, 0, 0, 2, 242, 0, 0, 0, 2, 242, 0, 0, 0, 2, 242, 0, 0, 0, 2, 242, 0, 26, 238, 114, 242, 1, 237, 102, 233, 242, 10, 208, 0, 30, 242, 15, 80, 0, 7, 242, 63, 16, 0, 3, 242, 47, 48, 0, 4, 242, 14, 160, 0, 11, 242, 4, 251, 85, 205, 242, 0, 59, 237, 129, 242 };
/* e */ static const uint8_t Font_TTHoves_Regular_18_glyph_101[] = { 10, 9, 10, 0, 9, 0, 42, 238, 162, 0, 2, 251, 85, 191, 32, 12, 160, 0, 11, 192, 31, 48, 0, 4, 240, 63, 255, 255, 255, 242, 31, 100, 68, 68, 64, 13, 144, 0, 6, 96, 3, 250, 85, 175, 64, 0, 42, 238, 179, 0 };
/* f */ static const uint8_t Font_TTHoves_Regular_18_glyph_102[] = { 6, 13, 6, 0, 13, 0, 3, 48, 0, 207, 241, 1, 244, 0, 1, 243, 0, 143, 255, 241, 37, 247, 64, 1, 243, 0, 1, 243, 0, 1, 243, 0, 1, 243, 0, 1, 243, 0, 1, 243, 0, 1, 243, 0 };
/* g */ static const uint8_t Font_TTHoves_Regular_18_glyph_103[] = { 10, 14, 10, 0, 10, 0, 1, 67, 0, 0, 0, 127, 255, 228, 242, 6, 246, 0, 127, 242, 14, 128, 0, 10, 242, 47, 48, 0, 4, 242, 63, 16, 0, 3, 242, 31, 64, 0, 6, 242, 12, 176, 0, 13, 242, 3, 251, 85, 206, 242, 0, 43, 237, 147, 242, 0, 0, 0, 3, 242, 12, 144, 0, 8, 240, 4, 250, 84, 159, 96, 0, 59, 239, 197, 0 };
/* h */ static const uint8_t Font_TTHoves_Regular_18_glyph_104[] = { 9, 13, 10, 1, 13, 170, 0, 0, 0, 10, 160, 0, 0, 0, 170, 0, 0, 0, 10, 160, 0, 0, 0, 171, 109, 252, 80, 10, 254, 117, 175, 80, 175, 32, 0, 173, 10, 176, 0, 5, 240, 170, 0, 0, 79, 26, 160, 0, 4, 241, 170, 0, 0, 79, 26, 160, 0, 4, 241, 170, 0, 0, 79, 16 };
/* i */ static const uint8_t Font_TTHoves_Regular_18_glyph_105[] = { 2, 13, 4, 1, 13, 102, 188, 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170 };
/* j */ static const uint8_t Font_TTHoves_Regular_18_glyph_106[] = { 4, 17, 5, 0, 13, 0, 102, 0, 188, 0, 0, 0, 0, 0, 170, 0, 170, 0, 170, 0, 170, 0, 170, 0, 170, 0, 170, 0, 170, 0, 170, 0, 170, 0, 170, 36, 218, 143, 211 };
/* k */ static const uint8_t Font_TTHoves_Regular_18_glyph_107[] = { 8, 13, 9, 1, 13, 170, 0, 0, 0, 170, 0, 0, 0, 170, 0, 0, 0, 170, 0, 0, 0, 170, 0, 11, 209, 170, 0, 189, 16, 170, 10, 226, 0, 171, 174, 32, 0, 175, 246, 0, 0, 171, 143, 48, 0, 170, 8, 243, 0, 170, 0, 143, 48, 170, 0, 9, 243 };
/* l */ static const uint8_t Font_TTHoves_Regular_18_glyph_108[] = { 2, 13, 4, 1, 13, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170 };
/* m */ static const uint8_t Font_TTHoves_Regular_18_glyph_109[] = { 13, 9, 15, 1, 9, 184, 126, 231, 1, 174, 196, 11, 253, 87, 246, 218, 90, 243, 191, 16, 6, 251, 0, 12, 187, 160, 0, 47, 80, 0, 126, 185, 0, 1, 244, 0, 6, 251, 144, 0, 31, 64, 0, 111, 185, 0, 1, 244, 0, 6, 251, 144, 0, 31, 64, 0, 111, 185, 0, 1, 244, 0, 6, 240 };
/* n */ static const uint8_t Font_TTHoves_Regular_18_glyph_110[] = { 8, 9, 10, 1, 9, 184, 125, 252, 64, 191, 214, 91, 244, 190, 16, 0, 188, 186, 0, 0, 111, 185, 0, 0, 95, 185, 0, 0, 95, 185, 0, 0, 95, 185, 0, 0, 95, 185, 0, 0, 95 };
/* o */ static const uint8_t Font_TTHoves_Regular_18_glyph_111[] = { 10, 9, 10, 0, 9, 0, 42, 238, 178, 0, 3, 252, 85, 191, 64, 12, 176, 0, 10, 208, 31, 48, 0, 3, 242, 63, 16, 0, 0, 244, 31, 48, 0, 2, 242, 13, 176, 0, 10, 208, 3, 251, 85, 191, 64, 0, 42, 238, 178, 0 };
/* p */ static const uint8_t Font_TTHoves_Regular_18_glyph_112[] = { 9, 13, 10, 1, 9, 183, 60, 252, 80, 11, 174, 149, 159, 112, 191, 96, 0, 127, 43, 208, 0, 0, 231, 186, 0, 0, 11, 171, 176, 0, 0, 201, 191, 48, 0, 63, 91, 238, 116, 127, 176, 185, 76, 253, 112, 11, 144, 0, 0, 0, 185, 0, 0, 0, 11, 144, 0, 0, 0, 185, 0, 0, 0, 0 };
/* q */ static const uint8_t Font_TTHoves_Regular_18_glyph_113[] = { 10, 14, 10, 0, 10, 0, 2, 84, 0, 0, 0, 143, 239, 229, 242, 7, 245, 0, 111, 242, 15, 128, 0, 9, 242, 47, 32, 0, 4, 242, 63, 16, 0, 3, 242, 31, 64, 0, 6, 242, 12, 192, 0, 13, 242, 3, 252, 85, 221, 242, 0, 43, 237, 131, 242, 0, 0, 0, 2, 242, 0, 0, 0, 2, 242, 0, 0, 0, 2, 242, 0, 0, 0, 2, 242 };
/* r */ static const uint8_t Font_TTHoves_Regular_18_glyph_114[] = { 5, 9, 6, 1, 9, 185, 207, 235, 249, 67, 188, 0, 11, 144, 0, 185, 0, 11, 144, 0, 185, 0, 11, 144, 0, 185, 0, 0 };
/* s */ static const uint8_t Font_TTHoves_Regular_18_glyph_115[] = { 8, 9, 8, 0, 9, 3, 190, 235, 48, 14, 197, 107, 242, 63, 32, 0, 165, 31, 180, 16, 0, 3, 191, 253, 112, 0, 0, 39, 246, 74, 0, 0, 201, 30, 181, 72, 245, 2, 174, 252, 80 };
/* t */ static const uint8_t Font_TTHoves_Regular_18_glyph_116[] = { 6, 12, 6, 0, 12, 1, 243, 0, 1, 243, 0, 1, 243, 0, 143, 255, 244, 37, 247, 65, 1, 243, 0, 1, 243, 0, 1, 243, 0, 1, 243, 0, 1, 243, 0, 1, 247, 49, 0, 143, 244 };
/* u */ static const uint8_t Font_TTHoves_Regular_18_glyph_117[] = { 8, 9, 10, 1, 9, 185, 0, 0, 95, 185, 0, 0, 95, 185, 0, 0, 95, 185, 0, 0, 95, 185, 0, 0, 95, 186, 0, 0, 111, 142, 0, 0, 191, 30, 197, 91, 255, 2, 190, 233, 95 };
/* v */ static const uint8_t Font_TTHoves_Regular_18_glyph_118[] = { 9, 9, 9, 0, 9, 172, 0, 0, 12, 164, 242, 0, 2, 244, 14, 128, 0, 142, 0, 157, 0, 13, 128, 3, 243, 3, 243, 0, 13, 144, 157, 0, 0, 126, 14, 112, 0, 2, 250, 241, 0, 0, 12, 252, 0, 0 };
/* w */ static const uint8_t Font_TTHoves_Regular_18_glyph_119[] = { 14, 9, 14, 0, 9, 157, 0, 1, 255, 80, 0, 173, 95, 16, 5, 255, 144, 0, 232, 31, 80, 9, 201, 208, 2, 244, 12, 144, 14, 133, 241, 6, 240, 8, 208, 47, 48, 245, 10, 176, 4, 242, 111, 0, 201, 14, 112, 0, 246, 171, 0, 142, 47, 48, 0, 188, 230, 0, 63, 174, 0, 0, 127, 242, 0, 15, 250, 0 };
/* x */ static const uint8_t Font_TTHoves_Regular_18_glyph_120[] = { 9, 9, 9, 0, 9, 111, 48, 0, 158, 16, 189, 0, 63, 80, 1, 248, 13, 160, 0, 6, 251, 225, 0, 0, 14, 248, 0, 0, 7, 249, 242, 0, 2, 246, 12, 192, 0, 204, 0, 47, 112, 127, 32, 0, 127, 32 };
/* y */ static const uint8_t Font_TTHoves_Regular_18_glyph_121[] = { 9, 13, 9, 0, 9, 172, 0, 0, 14, 132, 242, 0, 3, 243, 14, 128, 0, 141, 0, 141, 0, 13, 128, 2, 243, 2, 242, 0, 13, 144, 141, 0, 0, 126, 13, 112, 0, 1, 248, 242, 0, 0, 11, 252, 0, 0, 0, 95, 112, 0, 0, 4, 241, 0, 0, 52, 187, 0, 0, 13, 253, 48, 0, 0 };
/* z */ static const uint8_t Font_TTHoves_Regular_18_glyph_122[] = { 8, 9, 8, 0, 9, 127, 255, 255, 242, 20, 68, 77, 208, 0, 0, 127, 48, 0, 3, 246, 0, 0, 30, 160, 0, 0, 205, 0, 0, 8, 242, 0, 0, 79, 147, 51, 49, 143, 255, 255, 244 };
/* { */ static const uint8_t Font_TTHoves_Regular_18_glyph_123[] = { 6, 18, 6, 0, 14, 0, 0, 32, 0, 95, 240, 0, 202, 0, 0, 215, 0, 0, 215, 0, 0, 215, 0, 0, 215, 0, 0, 215, 0, 8, 243, 0, 15, 96, 0, 5, 244, 0, 0, 215, 0, 0, 215, 0, 0, 215, 0, 0, 215, 0, 0, 215, 0, 0, 187, 32, 0, 61, 240 };
/* | */ static const uint8_t Font_TTHoves_Regular_18_glyph_124[] = { 2, 17, 6, 2, 13, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215 };
/* } */ static const uint8_t Font_TTHoves_Regular_18_glyph_125[] = { 5, 18, 6, 0, 14, 2, 0, 5, 253, 16, 1, 246, 0, 13, 112, 0, 215, 0, 13, 112, 0, 215, 0, 13, 128, 0, 142, 64, 0, 186, 0, 173, 32, 13, 128, 0, 215, 0, 13, 112, 0, 215, 0, 13, 112, 3, 246, 5, 251, 0 };
/* ~ */ static const uint8_t Font_TTHoves_Regular_18_glyph_126[] = { 10, 4, 10, 0, 7, 0, 18, 0, 0, 32, 5, 255, 210, 2, 244, 14, 145, 174, 106, 241, 46, 48, 8, 237, 64 };
const uint8_t Font_TTHoves_Regular_18_glyph_nonprintable[] = { 9, 13, 9, 0, 13, 255, 114, 3, 159, 255, 48, 121, 80, 127, 160, 207, 255, 128, 235, 127, 255, 253, 11, 255, 255, 255, 176, 191, 255, 255, 243, 31, 255, 255, 194, 29, 255, 255, 240, 78, 255, 255, 251, 13, 255, 255, 255, 144, 255, 255, 255, 255, 239, 255, 255, 255, 182, 239, 255, 255, 248, 14, 255, 255 };
const uint8_t * const Font_TTHoves_Regular_18[126 + 1 - 32] = {
Font_TTHoves_Regular_18_glyph_32,
Font_TTHoves_Regular_18_glyph_33,
Font_TTHoves_Regular_18_glyph_34,
Font_TTHoves_Regular_18_glyph_35,
Font_TTHoves_Regular_18_glyph_36,
Font_TTHoves_Regular_18_glyph_37,
Font_TTHoves_Regular_18_glyph_38,
Font_TTHoves_Regular_18_glyph_39,
Font_TTHoves_Regular_18_glyph_40,
Font_TTHoves_Regular_18_glyph_41,
Font_TTHoves_Regular_18_glyph_42,
Font_TTHoves_Regular_18_glyph_43,
Font_TTHoves_Regular_18_glyph_44,
Font_TTHoves_Regular_18_glyph_45,
Font_TTHoves_Regular_18_glyph_46,
Font_TTHoves_Regular_18_glyph_47,
Font_TTHoves_Regular_18_glyph_48,
Font_TTHoves_Regular_18_glyph_49,
Font_TTHoves_Regular_18_glyph_50,
Font_TTHoves_Regular_18_glyph_51,
Font_TTHoves_Regular_18_glyph_52,
Font_TTHoves_Regular_18_glyph_53,
Font_TTHoves_Regular_18_glyph_54,
Font_TTHoves_Regular_18_glyph_55,
Font_TTHoves_Regular_18_glyph_56,
Font_TTHoves_Regular_18_glyph_57,
Font_TTHoves_Regular_18_glyph_58,
Font_TTHoves_Regular_18_glyph_59,
Font_TTHoves_Regular_18_glyph_60,
Font_TTHoves_Regular_18_glyph_61,
Font_TTHoves_Regular_18_glyph_62,
Font_TTHoves_Regular_18_glyph_63,
Font_TTHoves_Regular_18_glyph_64,
Font_TTHoves_Regular_18_glyph_65,
Font_TTHoves_Regular_18_glyph_66,
Font_TTHoves_Regular_18_glyph_67,
Font_TTHoves_Regular_18_glyph_68,
Font_TTHoves_Regular_18_glyph_69,
Font_TTHoves_Regular_18_glyph_70,
Font_TTHoves_Regular_18_glyph_71,
Font_TTHoves_Regular_18_glyph_72,
Font_TTHoves_Regular_18_glyph_73,
Font_TTHoves_Regular_18_glyph_74,
Font_TTHoves_Regular_18_glyph_75,
Font_TTHoves_Regular_18_glyph_76,
Font_TTHoves_Regular_18_glyph_77,
Font_TTHoves_Regular_18_glyph_78,
Font_TTHoves_Regular_18_glyph_79,
Font_TTHoves_Regular_18_glyph_80,
Font_TTHoves_Regular_18_glyph_81,
Font_TTHoves_Regular_18_glyph_82,
Font_TTHoves_Regular_18_glyph_83,
Font_TTHoves_Regular_18_glyph_84,
Font_TTHoves_Regular_18_glyph_85,
Font_TTHoves_Regular_18_glyph_86,
Font_TTHoves_Regular_18_glyph_87,
Font_TTHoves_Regular_18_glyph_88,
Font_TTHoves_Regular_18_glyph_89,
Font_TTHoves_Regular_18_glyph_90,
Font_TTHoves_Regular_18_glyph_91,
Font_TTHoves_Regular_18_glyph_92,
Font_TTHoves_Regular_18_glyph_93,
Font_TTHoves_Regular_18_glyph_94,
Font_TTHoves_Regular_18_glyph_95,
Font_TTHoves_Regular_18_glyph_96,
Font_TTHoves_Regular_18_glyph_97,
Font_TTHoves_Regular_18_glyph_98,
Font_TTHoves_Regular_18_glyph_99,
Font_TTHoves_Regular_18_glyph_100,
Font_TTHoves_Regular_18_glyph_101,
Font_TTHoves_Regular_18_glyph_102,
Font_TTHoves_Regular_18_glyph_103,
Font_TTHoves_Regular_18_glyph_104,
Font_TTHoves_Regular_18_glyph_105,
Font_TTHoves_Regular_18_glyph_106,
Font_TTHoves_Regular_18_glyph_107,
Font_TTHoves_Regular_18_glyph_108,
Font_TTHoves_Regular_18_glyph_109,
Font_TTHoves_Regular_18_glyph_110,
Font_TTHoves_Regular_18_glyph_111,
Font_TTHoves_Regular_18_glyph_112,
Font_TTHoves_Regular_18_glyph_113,
Font_TTHoves_Regular_18_glyph_114,
Font_TTHoves_Regular_18_glyph_115,
Font_TTHoves_Regular_18_glyph_116,
Font_TTHoves_Regular_18_glyph_117,
Font_TTHoves_Regular_18_glyph_118,
Font_TTHoves_Regular_18_glyph_119,
Font_TTHoves_Regular_18_glyph_120,
Font_TTHoves_Regular_18_glyph_121,
Font_TTHoves_Regular_18_glyph_122,
Font_TTHoves_Regular_18_glyph_123,
Font_TTHoves_Regular_18_glyph_124,
Font_TTHoves_Regular_18_glyph_125,
Font_TTHoves_Regular_18_glyph_126,
};

@ -0,0 +1,7 @@
#include <stdint.h>
#if TREZOR_FONT_BPP != 4
#error Wrong TREZOR_FONT_BPP (expected 4)
#endif
extern const uint8_t* const Font_TTHoves_Regular_18[126 + 1 - 32];
extern const uint8_t Font_TTHoves_Regular_18_glyph_nonprintable[];

@ -17,6 +17,7 @@ extern "C" {
textlen: cty::c_int,
font: cty::c_int,
) -> cty::c_int;
fn display_text_height(font: cty::c_int) -> cty::c_int;
fn display_bar(x: cty::c_int, y: cty::c_int, w: cty::c_int, h: cty::c_int, c: cty::uint16_t);
fn display_bar_radius(
x: cty::c_int,
@ -97,6 +98,10 @@ pub fn text_width(text: &[u8], font: i32) -> i32 {
unsafe { display_text_width(text.as_ptr() as _, text.len() as _, font) }
}
pub fn text_height(font: i32) -> i32 {
unsafe { display_text_height(font) }
}
pub fn bar(x: i32, y: i32, w: i32, h: i32, fgcolor: u16) {
unsafe { display_bar(x, y, w, h, fgcolor) }
}

@ -24,7 +24,7 @@ where
{
pub fn new(origin: Point, align: Alignment, text: T, style: LabelStyle) -> Self {
let width = display::text_width(&text, style.font);
let height = display::line_height();
let height = style.font.line_height();
let area = match align {
// `origin` is the top-left point.
Alignment::Start => Rect {

@ -94,6 +94,7 @@ where
Token::Argument(b"mono") => Some(Op::Font(self.layout.mono_font)),
Token::Argument(b"bold") => Some(Op::Font(self.layout.bold_font)),
Token::Argument(b"normal") => Some(Op::Font(self.layout.normal_font)),
Token::Argument(b"medium") => Some(Op::Font(self.layout.medium_font)),
Token::Argument(argument) => self
.args
.get(argument)

@ -52,6 +52,8 @@ pub struct TextLayout {
/// Font used to format `{normal}`.
pub normal_font: Font,
/// Font used to format `{medium}`.
pub medium_font: Font,
/// Font used to format `{bold}`.
pub bold_font: Font,
/// Font used to format `{mono}`.
@ -67,6 +69,7 @@ pub trait DefaultTextTheme {
const ELLIPSIS_FONT: Font;
const ELLIPSIS_COLOR: Color;
const NORMAL_FONT: Font;
const MEDIUM_FONT: Font;
const BOLD_FONT: Font;
const MONO_FONT: Font;
}
@ -85,6 +88,7 @@ impl TextLayout {
ellipsis_font: T::ELLIPSIS_FONT,
ellipsis_color: T::ELLIPSIS_COLOR,
normal_font: T::NORMAL_FONT,
medium_font: T::MEDIUM_FONT,
bold_font: T::BOLD_FONT,
mono_font: T::MONO_FONT,
}

@ -159,14 +159,6 @@ pub fn text_width(text: &[u8], font: Font) -> i32 {
display::text_width(text, font.0)
}
pub fn text_height() -> i32 {
constant::TEXT_HEIGHT
}
pub fn line_height() -> i32 {
constant::LINE_HEIGHT
}
#[derive(Copy, Clone, PartialEq, Eq)]
pub struct Font(i32);
@ -179,8 +171,12 @@ impl Font {
text_width(text, self)
}
pub fn text_height(self) -> i32 {
display::text_height(self.0)
}
pub fn line_height(self) -> i32 {
line_height()
constant::LINE_SPACE + self.text_height()
}
}

@ -1,4 +1,3 @@
pub const WIDTH: i32 = 128;
pub const HEIGHT: i32 = 64;
pub const TEXT_HEIGHT: i32 = 8;
pub const LINE_HEIGHT: i32 = 9;
pub const LINE_SPACE: i32 = 1;

@ -7,6 +7,7 @@ use super::component::{ButtonStyle, ButtonStyleSheet};
// Font constants.
pub const FONT_NORMAL: Font = Font::new(-1);
pub const FONT_MEDIUM: Font = Font::new(-5);
pub const FONT_BOLD: Font = Font::new(-2);
pub const FONT_MONO: Font = Font::new(-3);
@ -59,6 +60,7 @@ impl DefaultTextTheme for T1DefaultText {
const ELLIPSIS_COLOR: Color = FG;
const NORMAL_FONT: Font = FONT_NORMAL;
const MEDIUM_FONT: Font = FONT_MEDIUM;
const BOLD_FONT: Font = FONT_BOLD;
const MONO_FONT: Font = FONT_MONO;
}

@ -176,7 +176,7 @@ impl Component for Button {
match &self.content {
ButtonContent::Text(text) => {
let width = display::text_width(text, style.font);
let height = display::text_height();
let height = style.font.text_height();
let start_of_baseline = self.area.center() + Offset::new(-width / 2, height / 2);
display::text(
start_of_baseline,

@ -1,4 +1,3 @@
pub const WIDTH: i32 = 240;
pub const HEIGHT: i32 = 240;
pub const TEXT_HEIGHT: i32 = 16;
pub const LINE_HEIGHT: i32 = 26;
pub const LINE_SPACE: i32 = 4;

@ -1,12 +1,14 @@
use crate::ui::{
component::{label::LabelStyle, text::layout::DefaultTextTheme},
display::{Color, Font},
display::{self, Color, Font},
geometry::Rect,
};
use super::component::{ButtonStyle, ButtonStyleSheet, LoaderStyle, LoaderStyleSheet};
// Font constants.
pub const FONT_NORMAL: Font = Font::new(-1);
pub const FONT_MEDIUM: Font = Font::new(-5);
pub const FONT_BOLD: Font = Font::new(-2);
pub const FONT_MONO: Font = Font::new(-3);
@ -119,6 +121,7 @@ impl DefaultTextTheme for TTDefaultText {
const ELLIPSIS_COLOR: Color = GREY_LIGHT;
const NORMAL_FONT: Font = FONT_NORMAL;
const MEDIUM_FONT: Font = FONT_MEDIUM;
const BOLD_FONT: Font = FONT_BOLD;
const MONO_FONT: Font = FONT_MONO;
}

@ -52,9 +52,9 @@ def process_bitmap_buffer(buf, bpp):
return res
def process_face(name, style, size, bpp=4, shave_bearingX=0):
def process_face(name, style, size, bpp=4, shave_bearingX=0, ext="ttf"):
print("Processing ... %s %s %s" % (name, style, size))
face = freetype.Face("fonts/%s-%s.ttf" % (name, style))
face = freetype.Face("fonts/%s-%s.%s" % (name, style, ext))
face.set_pixel_sizes(0, size)
fontname = "%s_%s_%d" % (name.lower(), style.lower(), size)
with open("font_%s.h" % fontname, "wt") as f:
@ -100,12 +100,18 @@ def process_face(name, style, size, bpp=4, shave_bearingX=0):
bearingX -= min(advance, bearingX, shave_bearingX)
# the following code is here just for some letters (listed below)
# not using negative bearingX makes life so much easier; add it to advance instead
if c in "jy}),/" and bearingX < 0:
advance += -bearingX
bearingX = 0
if bearingX < 0:
if c in "AXYjxy}),/_":
advance += -bearingX
bearingX = 0
else:
raise ValueError("Negative bearingX for character '%s'" % c)
bearingY = metrics.horiBearingY // 64
assert advance >= 0 and advance <= 255
assert bearingX >= 0 and bearingX <= 255
if bearingY < 0: # HACK
print("normalizing bearingY %d for '%s'" % (bearingY, c))
bearingY = 0
assert bearingY >= 0 and bearingY <= 255
print(
'Loaded glyph "%c" ... %d x %d @ %d grays (%d bytes, metrics: %d, %d, %d)'
@ -155,8 +161,12 @@ def process_face(name, style, size, bpp=4, shave_bearingX=0):
process_face("Roboto", "Regular", 20)
process_face("Roboto", "Bold", 20)
process_face("TTHoves", "Regular", 18, ext="otf")
process_face("TTHoves", "Medium", 20, ext="otf")
process_face("TTHoves", "Bold", 16, ext="otf")
process_face("RobotoMono", "Regular", 20)
process_face("PixelOperator", "Regular", 8, 1, 1)
process_face("PixelOperator", "Bold", 8, 1, 1)
process_face("PixelOperatorMono", "Regular", 8, 1, 1)
process_face("PixelOperator", "Regular", 8, bpp=1, shave_bearingX=1)
process_face("PixelOperator", "Bold", 8, bpp=1, shave_bearingX=1)
process_face("PixelOperatorMono", "Regular", 8, bpp=1, shave_bearingX=1)

Loading…
Cancel
Save