From 24819734b748b210ebdfe51b77a71409893e0021 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Mon, 28 Mar 2022 16:54:03 +0100 Subject: [PATCH 1/5] Separate Hershey Fonts into their own library. --- libraries/CMakeLists.txt | 1 + libraries/badger2040/badger2040.cmake | 3 +- libraries/badger2040/badger2040.cpp | 93 +- libraries/badger2040/badger2040.hpp | 6 +- libraries/badger2040/fonts.hpp | 856 ------------------ libraries/hershey_fonts/CMakeLists.txt | 1 + libraries/hershey_fonts/hershey_fonts.cmake | 9 + libraries/hershey_fonts/hershey_fonts.cpp | 107 +++ libraries/hershey_fonts/hershey_fonts.hpp | 50 + .../hershey_fonts_data.cpp} | 38 +- .../modules/badger2040-micropython.cmake | 1 + .../modules/hershey_fonts/micropython.cmake | 15 + 12 files changed, 221 insertions(+), 959 deletions(-) delete mode 100644 libraries/badger2040/fonts.hpp create mode 100644 libraries/hershey_fonts/CMakeLists.txt create mode 100644 libraries/hershey_fonts/hershey_fonts.cmake create mode 100644 libraries/hershey_fonts/hershey_fonts.cpp create mode 100644 libraries/hershey_fonts/hershey_fonts.hpp rename libraries/{badger2040/fonts.cpp => hershey_fonts/hershey_fonts_data.cpp} (99%) create mode 100644 micropython/modules/hershey_fonts/micropython.cmake diff --git a/libraries/CMakeLists.txt b/libraries/CMakeLists.txt index ca810b56..3e58d5ff 100644 --- a/libraries/CMakeLists.txt +++ b/libraries/CMakeLists.txt @@ -1,3 +1,4 @@ +add_subdirectory(hershey_fonts) add_subdirectory(breakout_dotmatrix) add_subdirectory(breakout_encoder) add_subdirectory(breakout_ioexpander) diff --git a/libraries/badger2040/badger2040.cmake b/libraries/badger2040/badger2040.cmake index cd8d649b..e9aad09e 100644 --- a/libraries/badger2040/badger2040.cmake +++ b/libraries/badger2040/badger2040.cmake @@ -8,5 +8,4 @@ target_sources(${LIB_NAME} INTERFACE target_include_directories(${LIB_NAME} INTERFACE ${CMAKE_CURRENT_LIST_DIR}) # Pull in pico libraries that we need -target_link_libraries(${LIB_NAME} INTERFACE pico_stdlib hardware_pwm uc8151) - +target_link_libraries(${LIB_NAME} INTERFACE hershey_fonts pico_stdlib hardware_pwm uc8151) diff --git a/libraries/badger2040/badger2040.cpp b/libraries/badger2040/badger2040.cpp index c257b9d1..495cf517 100644 --- a/libraries/badger2040/badger2040.cpp +++ b/libraries/badger2040/badger2040.cpp @@ -322,103 +322,34 @@ namespace pimoroni { uc8151.update(blocking); } - const hershey_font_glyph_t* Badger2040::glyph_data(unsigned char c) { - if(c < 32 || c > 127) { - return nullptr; - } - - return &_font->chars[c - 32]; - } - - inline float deg2rad(float degrees) { - return (degrees * M_PI) / 180.0f; + const hershey::font_glyph_t* Badger2040::glyph_data(unsigned char c) { + return hershey::glyph_data(_font, c); } int32_t Badger2040::glyph(unsigned char c, int32_t x, int32_t y, float s, float a) { - const hershey_font_glyph_t *gd = glyph_data(c); - - // if glyph data not found (id too great) then skip - if(!gd) { - return 0; - } - - a = deg2rad(a); - float as = sin(a); - float ac = cos(a); - - const int8_t *pv = gd->vertices; - int8_t cx = (*pv++) * s; - int8_t cy = (*pv++) * s; - bool pen_down = true; - - for(uint32_t i = 1; i < gd->vertex_count; i++) { - if(pv[0] == -128 && pv[1] == -128) { - pen_down = false; - pv += 2; - }else{ - int8_t nx = (*pv++) * s; - int8_t ny = (*pv++) * s; - - int rcx = (cx * ac - cy * as) + 0.5f; - int rcy = (cx * as + cy * ac) + 0.5f; - - int rnx = (nx * ac - ny * as) + 0.5f; - int rny = (nx * as + ny * ac) + 0.5f; - - if(pen_down) { - line(rcx + x, rcy + y, rnx + x, rny + y); - } - - cx = nx; - cy = ny; - pen_down = true; - } - } - - return gd->width * s; + return hershey::glyph(_font, [this](int32_t x1, int32_t y1, int32_t x2, int32_t y2) { + line(x1, y1, x2, y2); + }, c, x, y, s, a); } void Badger2040::text(std::string message, int32_t x, int32_t y, float s, float a) { - int32_t cx = x; - int32_t cy = y; - - int32_t ox = 0; - - float as = sin(deg2rad(a)); - float ac = cos(deg2rad(a)); - - for(auto &c : message) { - int rcx = (ox * ac) + 0.5f; - int rcy = (ox * as) + 0.5f; - - ox += glyph(c, cx + rcx, cy + rcy, s, a); - } + hershey::text(_font, [this](int32_t x1, int32_t y1, int32_t x2, int32_t y2) { + line(x1, y1, x2, y2); + }, message, x, y, s, a); } int32_t Badger2040::measure_text(std::string message, float s) { - int32_t width = 0; - for(auto &c : message) { - width += measure_glyph(c, s); - } - return width; + return hershey::measure_text(_font, message, s); } int32_t Badger2040::measure_glyph(unsigned char c, float s) { - const hershey_font_glyph_t *gd = glyph_data(c); - - // if glyph data not found (id too great) then skip - if(!gd) { - return 0; - } - - return gd->width * s; + return hershey::measure_glyph(_font, c, s); } - void Badger2040::font(std::string name) { // check that font exists and assign it - if(fonts.find(name) != fonts.end()) { - _font = fonts[name]; + if(hershey::fonts.find(name) != hershey::fonts.end()) { + _font = hershey::fonts[name]; } } diff --git a/libraries/badger2040/badger2040.hpp b/libraries/badger2040/badger2040.hpp index f9622d6f..3298e21e 100644 --- a/libraries/badger2040/badger2040.hpp +++ b/libraries/badger2040/badger2040.hpp @@ -4,14 +4,14 @@ #include "drivers/uc8151/uc8151.hpp" -#include "fonts.hpp" +#include "libraries/hershey_fonts/hershey_fonts.hpp" namespace pimoroni { class Badger2040 { protected: UC8151 uc8151; - const hershey_font_t *_font = &futural; + const hershey::font_t *_font = &hershey::futural; uint8_t _pen = 0; uint8_t _thickness = 1; uint32_t _button_states = 0; @@ -62,7 +62,7 @@ namespace pimoroni { void image(const uint8_t *data, int stride, int sx, int sy, int dw, int dh, int dx, int dy); // text (fonts: sans, sans_bold, gothic, cursive_bold, cursive, serif_italic, serif, serif_bold) - const hershey_font_glyph_t* glyph_data(unsigned char c); + const hershey::font_glyph_t* glyph_data(unsigned char c); void text(std::string message, int32_t x, int32_t y, float s = 1.0f, float a = 0.0f); int32_t glyph(unsigned char c, int32_t x, int32_t y, float s = 1.0f, float a = 0.0f); diff --git a/libraries/badger2040/fonts.hpp b/libraries/badger2040/fonts.hpp deleted file mode 100644 index 9252d4b2..00000000 --- a/libraries/badger2040/fonts.hpp +++ /dev/null @@ -1,856 +0,0 @@ -#include -#include - -struct hershey_font_glyph_t { - uint32_t width; // character width - uint32_t vertex_count; // number of vertices - const int8_t *vertices; // vertex data (indices: even = x, odd = y) -}; - -struct hershey_font_t { - hershey_font_glyph_t chars[95]; -}; - -static const int8_t futural_vertices[2442] = { - 5, -12, 5, 2, -128, -128, 5, 7, 4, 8, 5, 9, 6, 8, 5, 7, 4, -12, 4, -5, -128, -128, 12, -12, 12, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 8, -16, 8, 13, -128, -128, 12, -16, 12, 13, -128, -128, 17, -9, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 13, -1, 15, 0, 16, 1, 17, 3, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 23, -3, 23, -4, 22, -5, 21, -5, 20, -4, 19, -2, 17, 3, 15, 6, 13, 8, 11, 9, 7, 9, 5, 8, 4, 7, 3, 5, 3, 3, 4, 1, 5, 0, 12, -4, 13, -5, 14, -7, 14, -9, 13, -11, 11, -12, 9, -11, 8, -9, 8, -7, 9, -4, 11, -1, 16, 6, 18, 8, 20, 9, 22, 9, 23, 8, 23, 7, 5, -10, 4, -11, 5, -12, 6, -11, 6, -9, 5, -7, 4, -6, 11, -16, 9, -14, 7, -11, 5, -7, 4, -2, 4, 2, 5, 7, 7, 11, 9, 14, 11, 16, 3, -16, 5, -14, 7, -11, 9, -7, 10, -2, 10, 2, 9, 7, 7, 11, 5, 14, 3, 16, 8, -6, 8, 6, -128, -128, 3, -3, 13, 3, -128, -128, 13, -3, 3, 3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 5, 5, 4, 6, 3, 5, 4, 4, 5, 5, 5, 7, 3, 9, 4, 0, 22, 0, 4, 4, 3, 5, 4, 6, 5, 5, 4, 4, 20, -16, 2, 16, 9, -12, 6, -11, 4, -8, 3, -3, 3, 0, 4, 5, 6, 8, 9, 9, 11, 9, 14, 8, 16, 5, 17, 0, 17, -3, 16, -8, 14, -11, 11, -12, 9, -12, 6, -8, 8, -9, 11, -12, 11, 9, 4, -7, 4, -8, 5, -10, 6, -11, 8, -12, 12, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 13, -1, 3, 9, 17, 9, 5, -12, 16, -12, 10, -4, 13, -4, 15, -3, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 13, -12, 3, 2, 18, 2, -128, -128, 13, -12, 13, 9, 15, -12, 5, -12, 4, -3, 5, -4, 8, -5, 11, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 16, -9, 15, -11, 12, -12, 10, -12, 7, -11, 5, -8, 4, -3, 4, 2, 5, 6, 7, 8, 10, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 2, 16, -1, 14, -3, 11, -4, 10, -4, 7, -3, 5, -1, 4, 2, 17, -12, 7, 9, -128, -128, 3, -12, 17, -12, 8, -12, 5, -11, 4, -9, 4, -7, 5, -5, 7, -4, 11, -3, 14, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 2, 4, 0, 6, -2, 9, -3, 13, -4, 15, -5, 16, -7, 16, -9, 15, -11, 12, -12, 8, -12, 16, -5, 15, -2, 13, 0, 10, 1, 9, 1, 6, 0, 4, -2, 3, -5, 3, -6, 4, -9, 6, -11, 9, -12, 10, -12, 13, -11, 15, -9, 16, -5, 16, 0, 15, 5, 13, 8, 10, 9, 8, 9, 5, 8, 4, 6, 4, -3, 3, -2, 4, -1, 5, -2, 4, -3, -128, -128, 4, 4, 3, 5, 4, 6, 5, 5, 4, 4, 4, -3, 3, -2, 4, -1, 5, -2, 4, -3, -128, -128, 5, 5, 4, 6, 3, 5, 4, 4, 5, 5, 5, 7, 3, 9, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 3, -7, 3, -8, 4, -10, 5, -11, 7, -12, 11, -12, 13, -11, 14, -10, 15, -8, 15, -6, 14, -4, 13, -3, 9, -1, 9, 2, -128, -128, 9, 7, 8, 8, 9, 9, 10, 8, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 9, -12, 1, 9, -128, -128, 9, -12, 17, 9, -128, -128, 4, 2, 14, 2, 4, -12, 4, 9, -128, -128, 4, -12, 13, -12, 16, -11, 17, -10, 18, -8, 18, -6, 17, -4, 16, -3, 13, -2, -128, -128, 4, -2, 13, -2, 16, -1, 17, 0, 18, 2, 18, 5, 17, 7, 16, 8, 13, 9, 4, 9, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 4, -12, 4, 9, -128, -128, 4, -12, 11, -12, 14, -11, 16, -9, 17, -7, 18, -4, 18, 1, 17, 4, 16, 6, 14, 8, 11, 9, 4, 9, 4, -12, 4, 9, -128, -128, 4, -12, 17, -12, -128, -128, 4, -2, 12, -2, -128, -128, 4, 9, 17, 9, 4, -12, 4, 9, -128, -128, 4, -12, 17, -12, -128, -128, 4, -2, 12, -2, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 18, 1, -128, -128, 13, 1, 18, 1, 4, -12, 4, 9, -128, -128, 18, -12, 18, 9, -128, -128, 4, -2, 18, -2, 4, -12, 4, 9, 12, -12, 12, 4, 11, 7, 10, 8, 8, 9, 6, 9, 4, 8, 3, 7, 2, 4, 2, 2, 4, -12, 4, 9, -128, -128, 18, -12, 4, 2, -128, -128, 9, -3, 18, 9, 4, -12, 4, 9, -128, -128, 4, 9, 16, 9, 4, -12, 4, 9, -128, -128, 4, -12, 12, 9, -128, -128, 20, -12, 12, 9, -128, -128, 20, -12, 20, 9, 4, -12, 4, 9, -128, -128, 4, -12, 18, 9, -128, -128, 18, -12, 18, 9, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 19, 1, 19, -4, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 4, -12, 4, 9, -128, -128, 4, -12, 13, -12, 16, -11, 17, -10, 18, -8, 18, -5, 17, -3, 16, -2, 13, -1, 4, -1, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 19, 1, 19, -4, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, -128, -128, 12, 5, 18, 11, 4, -12, 4, 9, -128, -128, 4, -12, 13, -12, 16, -11, 17, -10, 18, -8, 18, -6, 17, -4, 16, -3, 13, -2, 4, -2, -128, -128, 11, -2, 18, 9, 17, -9, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 13, -1, 15, 0, 16, 1, 17, 3, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 8, -12, 8, 9, -128, -128, 1, -12, 15, -12, 4, -12, 4, 3, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 3, 18, -12, 1, -12, 9, 9, -128, -128, 17, -12, 9, 9, 2, -12, 7, 9, -128, -128, 12, -12, 7, 9, -128, -128, 12, -12, 17, 9, -128, -128, 22, -12, 17, 9, 3, -12, 17, 9, -128, -128, 17, -12, 3, 9, 1, -12, 9, -2, 9, 9, -128, -128, 17, -12, 9, -2, 17, -12, 3, 9, -128, -128, 3, -12, 17, -12, -128, -128, 3, 9, 17, 9, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 8, -14, 0, 0, -128, -128, 8, -14, 16, 0, 0, 16, 18, 16, 5, -7, 3, -5, 3, -3, 4, -2, 5, -3, 4, -4, 3, -3, 15, -5, 15, 9, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 4, -12, 4, 9, -128, -128, 4, -2, 6, -4, 8, -5, 11, -5, 13, -4, 15, -2, 16, 1, 16, 3, 15, 6, 13, 8, 11, 9, 8, 9, 6, 8, 4, 6, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 15, -12, 15, 9, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 3, 1, 15, 1, 15, -1, 14, -3, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 10, -12, 8, -12, 6, -11, 5, -8, 5, 9, -128, -128, 2, -5, 9, -5, 15, -5, 15, 11, 14, 14, 13, 15, 11, 16, 8, 16, 6, 15, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 4, -12, 4, 9, -128, -128, 4, -1, 7, -4, 9, -5, 12, -5, 14, -4, 15, -1, 15, 9, 3, -12, 4, -11, 5, -12, 4, -13, 3, -12, -128, -128, 4, -5, 4, 9, 5, -12, 6, -11, 7, -12, 6, -13, 5, -12, -128, -128, 6, -5, 6, 12, 5, 15, 3, 16, 1, 16, 4, -12, 4, 9, -128, -128, 14, -5, 4, 5, -128, -128, 8, 1, 15, 9, 4, -12, 4, 9, 4, -5, 4, 9, -128, -128, 4, -1, 7, -4, 9, -5, 12, -5, 14, -4, 15, -1, 15, 9, -128, -128, 15, -1, 18, -4, 20, -5, 23, -5, 25, -4, 26, -1, 26, 9, 4, -5, 4, 9, -128, -128, 4, -1, 7, -4, 9, -5, 12, -5, 14, -4, 15, -1, 15, 9, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 16, 3, 16, 1, 15, -2, 13, -4, 11, -5, 8, -5, 4, -5, 4, 16, -128, -128, 4, -2, 6, -4, 8, -5, 11, -5, 13, -4, 15, -2, 16, 1, 16, 3, 15, 6, 13, 8, 11, 9, 8, 9, 6, 8, 4, 6, 15, -5, 15, 16, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 4, -5, 4, 9, -128, -128, 4, 1, 5, -2, 7, -4, 9, -5, 12, -5, 14, -2, 13, -4, 10, -5, 7, -5, 4, -4, 3, -2, 4, 0, 6, 1, 11, 2, 13, 3, 14, 5, 14, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 6, 5, -12, 5, 5, 6, 8, 8, 9, 10, 9, -128, -128, 2, -5, 9, -5, 4, -5, 4, 5, 5, 8, 7, 9, 10, 9, 12, 8, 15, 5, -128, -128, 15, -5, 15, 9, 2, -5, 8, 9, -128, -128, 14, -5, 8, 9, 3, -5, 7, 9, -128, -128, 11, -5, 7, 9, -128, -128, 11, -5, 15, 9, -128, -128, 19, -5, 15, 9, 3, -5, 14, 9, -128, -128, 14, -5, 3, 9, 2, -5, 8, 9, -128, -128, 14, -5, 8, 9, 6, 13, 4, 15, 2, 16, 1, 16, 14, -5, 3, 9, -128, -128, 3, -5, 14, -5, -128, -128, 3, 9, 14, 9, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 -}; - -static const hershey_font_t futural { - .chars = { - {.width=16, .vertex_count=0, .vertices=&futural_vertices[0]}, - {.width=10, .vertex_count=8, .vertices=&futural_vertices[0]}, - {.width=16, .vertex_count=5, .vertices=&futural_vertices[16]}, - {.width=21, .vertex_count=11, .vertices=&futural_vertices[26]}, - {.width=20, .vertex_count=26, .vertices=&futural_vertices[48]}, - {.width=24, .vertex_count=31, .vertices=&futural_vertices[100]}, - {.width=26, .vertex_count=34, .vertices=&futural_vertices[162]}, - {.width=10, .vertex_count=7, .vertices=&futural_vertices[230]}, - {.width=14, .vertex_count=10, .vertices=&futural_vertices[244]}, - {.width=14, .vertex_count=10, .vertices=&futural_vertices[264]}, - {.width=16, .vertex_count=8, .vertices=&futural_vertices[284]}, - {.width=26, .vertex_count=5, .vertices=&futural_vertices[300]}, - {.width=8, .vertex_count=7, .vertices=&futural_vertices[310]}, - {.width=26, .vertex_count=2, .vertices=&futural_vertices[324]}, - {.width=8, .vertex_count=5, .vertices=&futural_vertices[328]}, - {.width=22, .vertex_count=2, .vertices=&futural_vertices[338]}, - {.width=20, .vertex_count=17, .vertices=&futural_vertices[342]}, - {.width=20, .vertex_count=4, .vertices=&futural_vertices[376]}, - {.width=20, .vertex_count=14, .vertices=&futural_vertices[384]}, - {.width=20, .vertex_count=15, .vertices=&futural_vertices[412]}, - {.width=20, .vertex_count=6, .vertices=&futural_vertices[442]}, - {.width=20, .vertex_count=17, .vertices=&futural_vertices[454]}, - {.width=20, .vertex_count=23, .vertices=&futural_vertices[488]}, - {.width=20, .vertex_count=5, .vertices=&futural_vertices[534]}, - {.width=20, .vertex_count=29, .vertices=&futural_vertices[544]}, - {.width=20, .vertex_count=23, .vertices=&futural_vertices[602]}, - {.width=8, .vertex_count=11, .vertices=&futural_vertices[648]}, - {.width=8, .vertex_count=13, .vertices=&futural_vertices[670]}, - {.width=24, .vertex_count=3, .vertices=&futural_vertices[696]}, - {.width=26, .vertex_count=5, .vertices=&futural_vertices[702]}, - {.width=24, .vertex_count=3, .vertices=&futural_vertices[712]}, - {.width=18, .vertex_count=20, .vertices=&futural_vertices[718]}, - {.width=27, .vertex_count=55, .vertices=&futural_vertices[758]}, - {.width=18, .vertex_count=8, .vertices=&futural_vertices[868]}, - {.width=21, .vertex_count=23, .vertices=&futural_vertices[884]}, - {.width=21, .vertex_count=18, .vertices=&futural_vertices[930]}, - {.width=21, .vertex_count=15, .vertices=&futural_vertices[966]}, - {.width=19, .vertex_count=11, .vertices=&futural_vertices[996]}, - {.width=18, .vertex_count=8, .vertices=&futural_vertices[1018]}, - {.width=21, .vertex_count=22, .vertices=&futural_vertices[1034]}, - {.width=22, .vertex_count=8, .vertices=&futural_vertices[1078]}, - {.width=8, .vertex_count=2, .vertices=&futural_vertices[1094]}, - {.width=16, .vertex_count=10, .vertices=&futural_vertices[1098]}, - {.width=21, .vertex_count=8, .vertices=&futural_vertices[1118]}, - {.width=17, .vertex_count=5, .vertices=&futural_vertices[1134]}, - {.width=24, .vertex_count=11, .vertices=&futural_vertices[1144]}, - {.width=22, .vertex_count=8, .vertices=&futural_vertices[1166]}, - {.width=22, .vertex_count=21, .vertices=&futural_vertices[1182]}, - {.width=21, .vertex_count=13, .vertices=&futural_vertices[1224]}, - {.width=22, .vertex_count=24, .vertices=&futural_vertices[1250]}, - {.width=21, .vertex_count=16, .vertices=&futural_vertices[1298]}, - {.width=20, .vertex_count=20, .vertices=&futural_vertices[1330]}, - {.width=16, .vertex_count=5, .vertices=&futural_vertices[1370]}, - {.width=22, .vertex_count=10, .vertices=&futural_vertices[1380]}, - {.width=18, .vertex_count=5, .vertices=&futural_vertices[1400]}, - {.width=24, .vertex_count=11, .vertices=&futural_vertices[1410]}, - {.width=20, .vertex_count=5, .vertices=&futural_vertices[1432]}, - {.width=18, .vertex_count=6, .vertices=&futural_vertices[1442]}, - {.width=20, .vertex_count=8, .vertices=&futural_vertices[1454]}, - {.width=14, .vertex_count=11, .vertices=&futural_vertices[1470]}, - {.width=14, .vertex_count=2, .vertices=&futural_vertices[1492]}, - {.width=14, .vertex_count=11, .vertices=&futural_vertices[1496]}, - {.width=16, .vertex_count=5, .vertices=&futural_vertices[1518]}, - {.width=18, .vertex_count=2, .vertices=&futural_vertices[1528]}, - {.width=8, .vertex_count=7, .vertices=&futural_vertices[1532]}, - {.width=19, .vertex_count=17, .vertices=&futural_vertices[1546]}, - {.width=19, .vertex_count=17, .vertices=&futural_vertices[1580]}, - {.width=18, .vertex_count=14, .vertices=&futural_vertices[1614]}, - {.width=19, .vertex_count=17, .vertices=&futural_vertices[1642]}, - {.width=18, .vertex_count=17, .vertices=&futural_vertices[1676]}, - {.width=12, .vertex_count=8, .vertices=&futural_vertices[1710]}, - {.width=19, .vertex_count=22, .vertices=&futural_vertices[1726]}, - {.width=19, .vertex_count=10, .vertices=&futural_vertices[1770]}, - {.width=8, .vertex_count=8, .vertices=&futural_vertices[1790]}, - {.width=10, .vertex_count=11, .vertices=&futural_vertices[1806]}, - {.width=17, .vertex_count=8, .vertices=&futural_vertices[1828]}, - {.width=8, .vertex_count=2, .vertices=&futural_vertices[1844]}, - {.width=30, .vertex_count=18, .vertices=&futural_vertices[1848]}, - {.width=19, .vertex_count=10, .vertices=&futural_vertices[1884]}, - {.width=19, .vertex_count=17, .vertices=&futural_vertices[1904]}, - {.width=19, .vertex_count=17, .vertices=&futural_vertices[1938]}, - {.width=19, .vertex_count=17, .vertices=&futural_vertices[1972]}, - {.width=13, .vertex_count=8, .vertices=&futural_vertices[2006]}, - {.width=17, .vertex_count=17, .vertices=&futural_vertices[2022]}, - {.width=12, .vertex_count=8, .vertices=&futural_vertices[2056]}, - {.width=19, .vertex_count=10, .vertices=&futural_vertices[2072]}, - {.width=16, .vertex_count=5, .vertices=&futural_vertices[2092]}, - {.width=22, .vertex_count=11, .vertices=&futural_vertices[2102]}, - {.width=17, .vertex_count=5, .vertices=&futural_vertices[2124]}, - {.width=16, .vertex_count=9, .vertices=&futural_vertices[2134]}, - {.width=17, .vertex_count=8, .vertices=&futural_vertices[2152]}, - {.width=14, .vertex_count=39, .vertices=&futural_vertices[2168]}, - {.width=8, .vertex_count=2, .vertices=&futural_vertices[2246]}, - {.width=14, .vertex_count=39, .vertices=&futural_vertices[2250]}, - {.width=24, .vertex_count=23, .vertices=&futural_vertices[2328]} - } -}; - -static const int8_t futuram_vertices[4802] = { - 5, -12, 5, 2, 6, 2, -128, -128, 5, -12, 6, -12, 6, 2, -128, -128, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, -128, -128, 14, -12, 13, -11, 13, -5, -128, -128, 14, -11, 13, -5, -128, -128, 14, -12, 15, -11, 13, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 9, -16, 9, 13, 10, 13, -128, -128, 9, -16, 10, -16, 10, 13, -128, -128, 14, -9, 16, -9, 14, -11, 11, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 13, 0, 14, 1, 15, 3, 15, 5, 14, 7, 11, 8, 8, 8, 6, 7, 5, 6, -128, -128, 14, -9, 13, -10, 11, -11, 8, -11, 5, -10, 4, -9, 4, -7, 5, -5, 13, -1, 15, 1, 16, 3, 16, 5, 15, 7, 14, 8, 11, 9, 8, 9, 5, 8, 3, 6, 5, 6, -128, -128, 15, 6, 12, 8, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 21, -4, 20, -3, 21, -2, 22, -3, 22, -4, 21, -5, 20, -5, 19, -4, 18, -2, 16, 3, 14, 6, 12, 8, 10, 9, 7, 9, 4, 8, 3, 6, 3, 3, 4, 1, 10, -3, 12, -5, 13, -7, 13, -9, 12, -11, 10, -12, 8, -11, 7, -9, 7, -7, 8, -4, 10, -1, 15, 6, 17, 8, 20, 9, 21, 9, 22, 8, 22, 7, -128, -128, 7, 9, 5, 8, 4, 6, 4, 3, 5, 1, 7, -1, -128, -128, 7, -7, 8, -5, 16, 6, 18, 8, 20, 9, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, 11, -16, 9, -14, 7, -11, 5, -7, 4, -2, 4, 2, 5, 7, 7, 11, 9, 14, 11, 16, -128, -128, 9, -14, 7, -10, 6, -7, 5, -2, 5, 2, 6, 7, 7, 10, 9, 14, 3, -16, 5, -14, 7, -11, 9, -7, 10, -2, 10, 2, 9, 7, 7, 11, 5, 14, 3, 16, -128, -128, 5, -14, 7, -10, 8, -7, 9, -2, 9, 2, 8, 7, 7, 10, 5, 14, 8, -12, 7, -11, 9, -1, 8, 0, -128, -128, 8, -12, 8, 0, -128, -128, 8, -12, 9, -11, 7, -1, 8, 0, -128, -128, 3, -9, 4, -9, 12, -3, 13, -3, -128, -128, 3, -9, 13, -3, -128, -128, 3, -9, 3, -8, 13, -4, 13, -3, -128, -128, 13, -9, 12, -9, 4, -3, 3, -3, -128, -128, 13, -9, 3, -3, -128, -128, 13, -9, 13, -8, 3, -4, 3, -3, 12, -9, 12, 8, 13, 8, -128, -128, 12, -9, 13, -9, 13, 8, -128, -128, 4, -1, 21, -1, 21, 0, -128, -128, 4, -1, 4, 0, 21, 0, 7, 8, 6, 9, 5, 9, 4, 8, 4, 7, 5, 6, 6, 6, 7, 7, 7, 10, 6, 12, 4, 13, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, -128, -128, 6, 9, 7, 10, -128, -128, 7, 8, 6, 12, 4, 0, 22, 0, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 20, -16, 2, 16, 3, 16, -128, -128, 20, -16, 21, -16, 3, 16, 9, -12, 6, -11, 4, -8, 3, -3, 3, 0, 4, 5, 6, 8, 9, 9, 11, 9, 14, 8, 16, 5, 17, 0, 17, -3, 16, -8, 14, -11, 11, -12, 9, -12, -128, -128, 7, -11, 5, -8, 4, -3, 4, 0, 5, 5, 7, 8, -128, -128, 6, 7, 9, 8, 11, 8, 14, 7, -128, -128, 13, 8, 15, 5, 16, 0, 16, -3, 15, -8, 13, -11, -128, -128, 14, -10, 11, -11, 9, -11, 6, -10, 6, -8, 8, -9, 11, -12, 11, 9, -128, -128, 6, -8, 6, -7, 8, -8, 10, -10, 10, 9, 11, 9, 4, -7, 4, -8, 5, -10, 6, -11, 8, -12, 12, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 13, -1, 4, 9, -128, -128, 4, -7, 5, -7, 5, -8, 6, -10, 8, -11, 12, -11, 14, -10, 15, -8, 15, -6, 14, -4, 12, -1, 3, 9, -128, -128, 4, 8, 17, 8, 17, 9, -128, -128, 3, 9, 17, 9, 5, -12, 16, -12, 9, -3, -128, -128, 5, -12, 5, -11, 15, -11, -128, -128, 15, -12, 8, -3, -128, -128, 9, -4, 11, -4, 14, -3, 16, -1, 17, 2, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 4, 5, -128, -128, 8, -3, 11, -3, 14, -2, 16, 1, -128, -128, 12, -3, 15, -1, 16, 2, 16, 3, 15, 6, 12, 8, -128, -128, 16, 4, 14, 7, 11, 8, 8, 8, 5, 7, 4, 5, -128, -128, 7, 8, 4, 6, 13, -9, 13, 9, 14, 9, -128, -128, 14, -12, 14, 9, -128, -128, 14, -12, 3, 4, 18, 4, -128, -128, 13, -9, 4, 4, -128, -128, 4, 3, 18, 3, 18, 4, 5, -12, 4, -3, -128, -128, 6, -11, 5, -4, -128, -128, 5, -12, 15, -12, 15, -11, -128, -128, 6, -11, 15, -11, -128, -128, 5, -4, 8, -5, 11, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 4, 5, -128, -128, 4, -3, 5, -3, 7, -4, 11, -4, 14, -3, 16, 0, -128, -128, 12, -4, 15, -2, 16, 1, 16, 3, 15, 6, 12, 8, -128, -128, 16, 4, 14, 7, 11, 8, 8, 8, 5, 7, 4, 5, -128, -128, 7, 8, 4, 6, 14, -11, 15, -9, 16, -9, 15, -11, 12, -12, 10, -12, 7, -11, 5, -8, 4, -3, 4, 2, 5, 6, 7, 8, 10, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 2, 16, -1, 14, -3, 11, -4, 10, -4, 7, -3, 5, -1, -128, -128, 15, -10, 12, -11, 10, -11, 7, -10, -128, -128, 8, -11, 6, -8, 5, -3, 5, 2, 6, 6, 9, 8, -128, -128, 5, 4, 7, 7, 10, 8, 11, 8, 14, 7, 16, 4, -128, -128, 12, 8, 15, 6, 16, 3, 16, 2, 15, -1, 12, -3, -128, -128, 16, 1, 14, -2, 11, -3, 10, -3, 7, -2, 5, 1, -128, -128, 9, -3, 6, -1, 5, 2, 3, -12, 17, -12, 7, 9, -128, -128, 3, -12, 3, -11, 16, -11, -128, -128, 16, -12, 6, 9, 7, 9, 8, -12, 5, -11, 4, -9, 4, -7, 5, -5, 6, -4, 8, -3, 12, -2, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 12, 8, 8, 8, 5, 7, 4, 5, 4, 2, 5, 0, 6, -1, 8, -2, 12, -3, 14, -4, 15, -5, 16, -7, 16, -9, 15, -11, 12, -12, 8, -12, -128, -128, 6, -11, 5, -9, 5, -7, 6, -5, 8, -4, 12, -3, 14, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 2, 4, 0, 6, -2, 8, -3, 12, -4, 14, -5, 15, -7, 15, -9, 14, -11, -128, -128, 15, -10, 12, -11, 8, -11, 5, -10, -128, -128, 4, 6, 7, 8, -128, -128, 13, 8, 16, 6, 15, -2, 13, 0, 10, 1, 9, 1, 6, 0, 4, -2, 3, -5, 3, -6, 4, -9, 6, -11, 9, -12, 10, -12, 13, -11, 15, -9, 16, -5, 16, 0, 15, 5, 13, 8, 10, 9, 8, 9, 5, 8, 4, 6, 5, 6, 6, 8, -128, -128, 15, -5, 14, -2, 11, 0, -128, -128, 15, -4, 13, -1, 10, 0, 9, 0, 6, -1, 4, -4, -128, -128, 8, 0, 5, -2, 4, -5, 4, -6, 5, -9, 8, -11, -128, -128, 4, -7, 6, -10, 9, -11, 10, -11, 13, -10, 15, -7, -128, -128, 11, -11, 14, -9, 15, -5, 15, 0, 14, 5, 12, 8, -128, -128, 13, 7, 10, 8, 8, 8, 5, 7, 5, -5, 4, -4, 4, -3, 5, -2, 6, -2, 7, -3, 7, -4, 6, -5, 5, -5, -128, -128, 5, -4, 5, -3, 6, -3, 6, -4, 5, -4, -128, -128, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 5, -5, 4, -4, 4, -3, 5, -2, 6, -2, 7, -3, 7, -4, 6, -5, 5, -5, -128, -128, 5, -4, 5, -3, 6, -3, 6, -4, 5, -4, -128, -128, 7, 8, 6, 9, 5, 9, 4, 8, 4, 7, 5, 6, 6, 6, 7, 7, 7, 10, 6, 12, 4, 13, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, -128, -128, 6, 9, 7, 10, -128, -128, 7, 8, 6, 12, 20, -9, 4, 0, 20, 9, 4, -5, 21, -5, 21, -4, -128, -128, 4, -5, 4, -4, 21, -4, -128, -128, 4, 3, 21, 3, 21, 4, -128, -128, 4, 3, 4, 4, 21, 4, 4, -9, 20, 0, 4, 9, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 11, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 14, -3, 12, -2, 9, -1, -128, -128, 3, -7, 4, -7, 4, -8, 5, -10, 8, -11, 11, -11, 14, -10, 15, -8, 15, -6, 14, -4, 12, -3, 9, -2, -128, -128, 4, -9, 7, -11, -128, -128, 12, -11, 15, -9, -128, -128, 15, -5, 11, -2, -128, -128, 9, -2, 9, 2, 10, 2, 10, -2, -128, -128, 9, 6, 8, 7, 8, 8, 9, 9, 10, 9, 11, 8, 11, 7, 10, 6, 9, 6, -128, -128, 9, 7, 9, 8, 10, 8, 10, 7, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 10, -12, 2, 9, -128, -128, 10, -9, 3, 9, 2, 9, -128, -128, 10, -9, 17, 9, 18, 9, -128, -128, 10, -12, 18, 9, -128, -128, 5, 3, 15, 3, -128, -128, 4, 4, 16, 4, 4, -12, 4, 9, -128, -128, 5, -11, 5, 8, -128, -128, 4, -12, 12, -12, 15, -11, 16, -10, 17, -8, 17, -5, 16, -3, 15, -2, 12, -1, -128, -128, 5, -11, 12, -11, 15, -10, 16, -8, 16, -5, 15, -3, 12, -2, -128, -128, 5, -2, 12, -2, 15, -1, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 4, 9, -128, -128, 5, -1, 12, -1, 15, 0, 16, 2, 16, 5, 15, 7, 12, 8, 5, 8, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, -128, -128, 18, -7, 17, -7, 16, -9, 15, -10, 13, -11, 9, -11, 7, -10, 5, -7, 4, -4, 4, 1, 5, 4, 7, 7, 9, 8, 13, 8, 15, 7, 16, 6, 17, 4, 18, 4, 4, -12, 4, 9, -128, -128, 5, -11, 5, 8, -128, -128, 4, -12, 11, -12, 14, -11, 16, -9, 17, -7, 18, -4, 18, 1, 17, 4, 16, 6, 14, 8, 11, 9, 4, 9, -128, -128, 5, -11, 11, -11, 14, -10, 15, -9, 16, -7, 17, -4, 17, 1, 16, 4, 15, 6, 14, 7, 11, 8, 5, 8, 4, -12, 4, 9, -128, -128, 5, -11, 5, 8, -128, -128, 4, -12, 16, -12, -128, -128, 5, -11, 16, -11, 16, -12, -128, -128, 5, -2, 11, -2, 11, -1, -128, -128, 5, -1, 11, -1, -128, -128, 5, 8, 16, 8, 16, 9, -128, -128, 4, 9, 16, 9, 4, -12, 4, 9, -128, -128, 5, -11, 5, 9, 4, 9, -128, -128, 4, -12, 16, -12, -128, -128, 5, -11, 16, -11, 16, -12, -128, -128, 5, -2, 11, -2, 11, -1, -128, -128, 5, -1, 11, -1, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 18, 0, 13, 0, -128, -128, 18, -7, 17, -7, 16, -9, 15, -10, 13, -11, 9, -11, 7, -10, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, 7, 7, 9, 8, 13, 8, 15, 7, 16, 6, 17, 4, 17, 1, 13, 1, 13, 0, 4, -12, 4, 9, -128, -128, 4, -12, 5, -12, 5, 9, 4, 9, -128, -128, 18, -12, 17, -12, 17, 9, 18, 9, -128, -128, 18, -12, 18, 9, -128, -128, 5, -2, 17, -2, -128, -128, 5, -1, 17, -1, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, 12, -12, 12, 4, 11, 7, 9, 8, 7, 8, 5, 7, 4, 4, 3, 4, -128, -128, 12, -12, 13, -12, 13, 4, 12, 7, 11, 8, 9, 9, 7, 9, 5, 8, 4, 7, 3, 4, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, -128, -128, 18, -12, 17, -12, 5, 0, -128, -128, 18, -12, 5, 1, -128, -128, 8, -3, 17, 9, 18, 9, -128, -128, 9, -3, 18, 9, 4, -12, 4, 9, -128, -128, 4, -12, 5, -12, 5, 8, -128, -128, 5, 8, 16, 8, 16, 9, -128, -128, 4, 9, 16, 9, 4, -12, 4, 9, -128, -128, 5, -7, 5, 9, 4, 9, -128, -128, 5, -7, 12, 9, -128, -128, 4, -12, 12, 6, -128, -128, 20, -12, 12, 6, -128, -128, 19, -7, 12, 9, -128, -128, 19, -7, 19, 9, 20, 9, -128, -128, 20, -12, 20, 9, 4, -12, 4, 9, -128, -128, 5, -9, 5, 9, 4, 9, -128, -128, 5, -9, 18, 9, -128, -128, 4, -12, 17, 6, -128, -128, 17, -12, 17, 6, -128, -128, 17, -12, 18, -12, 18, 9, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 19, 1, 19, -4, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, -128, -128, 10, -11, 7, -10, 5, -7, 4, -4, 4, 1, 5, 4, 7, 7, 10, 8, 12, 8, 15, 7, 17, 4, 18, 1, 18, -4, 17, -7, 15, -10, 12, -11, 10, -11, 4, -12, 4, 9, -128, -128, 5, -11, 5, 9, 4, 9, -128, -128, 4, -12, 13, -12, 15, -11, 16, -10, 17, -8, 17, -5, 16, -3, 15, -2, 13, -1, 5, -1, -128, -128, 5, -11, 13, -11, 15, -10, 16, -8, 16, -5, 15, -3, 13, -2, 5, -2, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 19, 1, 19, -4, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, -128, -128, 10, -11, 7, -10, 5, -7, 4, -4, 4, 1, 5, 4, 7, 7, 10, 8, 12, 8, 15, 7, 17, 4, 18, 1, 18, -4, 17, -7, 15, -10, 12, -11, 10, -11, -128, -128, 12, 6, 17, 11, 18, 11, -128, -128, 12, 6, 13, 6, 18, 11, 4, -12, 4, 9, -128, -128, 5, -11, 5, 9, 4, 9, -128, -128, 4, -12, 12, -12, 15, -11, 16, -10, 17, -8, 17, -5, 16, -3, 15, -2, 12, -1, 5, -1, -128, -128, 5, -11, 12, -11, 15, -10, 16, -8, 16, -5, 15, -3, 12, -2, 5, -2, -128, -128, 10, -1, 16, 9, 17, 9, -128, -128, 11, -1, 17, 9, 17, -9, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 12, -1, 14, 0, 15, 1, 16, 3, 16, 6, 15, 7, 12, 8, 8, 8, 6, 7, 5, 6, 3, 6, -128, -128, 17, -9, 15, -9, 14, -10, 12, -11, 8, -11, 5, -10, 4, -9, 4, -7, 5, -5, 7, -4, 12, -2, 14, -1, 16, 1, 17, 3, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 8, -11, 8, 9, -128, -128, 9, -11, 9, 9, 8, 9, -128, -128, 2, -12, 15, -12, 15, -11, -128, -128, 2, -12, 2, -11, 15, -11, 4, -12, 4, 3, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 3, 18, -12, -128, -128, 4, -12, 5, -12, 5, 3, 6, 6, 7, 7, 10, 8, 12, 8, 15, 7, 16, 6, 17, 3, 17, -12, 18, -12, 2, -12, 10, 9, -128, -128, 2, -12, 3, -12, 10, 6, -128, -128, 18, -12, 17, -12, 10, 6, -128, -128, 18, -12, 10, 9, 2, -12, 8, 9, -128, -128, 2, -12, 3, -12, 8, 6, -128, -128, 13, -12, 8, 6, -128, -128, 13, -9, 8, 9, -128, -128, 13, -9, 18, 9, -128, -128, 13, -12, 18, 6, -128, -128, 24, -12, 23, -12, 18, 6, -128, -128, 24, -12, 18, 9, 3, -12, 16, 9, 17, 9, -128, -128, 3, -12, 4, -12, 17, 9, -128, -128, 17, -12, 16, -12, 3, 9, -128, -128, 17, -12, 4, 9, 3, 9, 2, -12, 9, -2, 9, 9, 10, 9, -128, -128, 2, -12, 3, -12, 10, -2, -128, -128, 17, -12, 16, -12, 9, -2, -128, -128, 17, -12, 10, -2, 10, 9, 16, -12, 3, 9, -128, -128, 17, -12, 4, 9, -128, -128, 3, -12, 17, -12, -128, -128, 3, -12, 3, -11, 16, -11, -128, -128, 4, 8, 17, 8, 17, 9, -128, -128, 3, 9, 17, 9, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 3, 2, 11, -3, 19, 2, -128, -128, 3, 2, 11, -2, 19, 2, 0, 16, 20, 16, 4, -12, 9, -6, -128, -128, 4, -12, 3, -11, 9, -6, 15, -5, 15, 9, 16, 9, -128, -128, 15, -5, 16, -5, 16, 9, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 15, 6, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, -128, -128, 5, -2, 7, -4, 9, -5, 12, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 12, 9, 9, 9, 7, 8, 5, 6, -128, -128, 5, -2, 9, -4, 12, -4, 14, -3, 15, -2, 16, 1, 16, 3, 15, 6, 14, 7, 12, 8, 9, 8, 5, 6, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 14, -1, 13, -3, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 13, 7, 14, 5, 15, 6, 15, -12, 15, 9, 16, 9, -128, -128, 15, -12, 16, -12, 16, 9, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 15, 6, 4, 2, 15, 2, 15, -1, 14, -3, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 4, 1, 14, 1, 14, -1, 13, -3, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 13, 7, 14, 5, 15, 6, 11, -12, 9, -12, 7, -11, 6, -8, 6, 9, 7, 9, -128, -128, 11, -12, 11, -11, 9, -11, 7, -10, -128, -128, 8, -11, 7, -8, 7, 9, -128, -128, 3, -5, 10, -5, 10, -4, -128, -128, 3, -5, 3, -4, 10, -4, 16, -5, 15, -5, 15, 10, 14, 13, 13, 14, 11, 15, 9, 15, 7, 14, 6, 13, 4, 13, -128, -128, 16, -5, 16, 10, 15, 13, 13, 15, 11, 16, 8, 16, 6, 15, 4, 13, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 15, 6, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, -128, -128, 5, -1, 8, -4, 10, -5, 13, -5, 15, -4, 16, -1, 16, 9, -128, -128, 5, -1, 8, -3, 10, -4, 12, -4, 14, -3, 15, -1, 15, 9, 16, 9, 4, -12, 3, -11, 3, -10, 4, -9, 5, -9, 6, -10, 6, -11, 5, -12, 4, -12, -128, -128, 4, -11, 4, -10, 5, -10, 5, -11, 4, -11, -128, -128, 4, -5, 4, 9, 5, 9, -128, -128, 4, -5, 5, -5, 5, 9, 4, -12, 3, -11, 3, -10, 4, -9, 5, -9, 6, -10, 6, -11, 5, -12, 4, -12, -128, -128, 4, -11, 4, -10, 5, -10, 5, -11, 4, -11, -128, -128, 4, -5, 4, 16, 5, 16, -128, -128, 4, -5, 5, -5, 5, 16, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, -128, -128, 16, -5, 15, -5, 5, 5, -128, -128, 16, -5, 5, 6, -128, -128, 8, 2, 14, 9, 16, 9, -128, -128, 9, 1, 16, 9, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, 4, -5, 4, 9, 5, 9, -128, -128, 4, -5, 5, -5, 5, 9, -128, -128, 5, -1, 8, -4, 10, -5, 13, -5, 15, -4, 16, -1, 16, 9, -128, -128, 5, -1, 8, -3, 10, -4, 12, -4, 14, -3, 15, -1, 15, 9, 16, 9, -128, -128, 16, -1, 19, -4, 21, -5, 24, -5, 26, -4, 27, -1, 27, 9, -128, -128, 16, -1, 19, -3, 21, -4, 23, -4, 25, -3, 26, -1, 26, 9, 27, 9, 4, -5, 4, 9, 5, 9, -128, -128, 4, -5, 5, -5, 5, 9, -128, -128, 5, -1, 8, -4, 10, -5, 13, -5, 15, -4, 16, -1, 16, 9, -128, -128, 5, -1, 8, -3, 10, -4, 12, -4, 14, -3, 15, -1, 15, 9, 16, 9, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 16, 3, 16, 1, 15, -2, 13, -4, 11, -5, 8, -5, -128, -128, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 13, 7, 14, 6, 15, 3, 15, 1, 14, -2, 13, -3, 11, -4, 8, -4, 4, -5, 4, 16, 5, 16, -128, -128, 4, -5, 5, -5, 5, 16, -128, -128, 5, -2, 7, -4, 9, -5, 12, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 12, 9, 9, 9, 7, 8, 5, 6, -128, -128, 5, -2, 9, -4, 12, -4, 14, -3, 15, -2, 16, 1, 16, 3, 15, 6, 14, 7, 12, 8, 9, 8, 5, 6, 15, -5, 15, 16, 16, 16, -128, -128, 15, -5, 16, -5, 16, 16, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 15, 6, 4, -5, 4, 9, 5, 9, -128, -128, 4, -5, 5, -5, 5, 9, -128, -128, 5, 1, 6, -2, 8, -4, 10, -5, 13, -5, -128, -128, 5, 1, 6, -1, 8, -3, 10, -4, 13, -4, 13, -5, 14, -2, 13, -4, 10, -5, 7, -5, 4, -4, 3, -2, 4, 0, 6, 1, 11, 3, 13, 4, -128, -128, 12, 3, 13, 5, 13, 6, 12, 8, -128, -128, 13, 7, 10, 8, 7, 8, 4, 7, -128, -128, 5, 8, 4, 6, 3, 6, -128, -128, 14, -2, 13, -2, 12, -4, -128, -128, 13, -3, 10, -4, 7, -4, 4, -3, -128, -128, 5, -4, 4, -2, 5, 0, -128, -128, 4, -1, 6, 0, 11, 2, 13, 3, 14, 5, 14, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 6, 5, -12, 5, 9, 6, 9, -128, -128, 5, -12, 6, -12, 6, 9, -128, -128, 2, -5, 9, -5, 9, -4, -128, -128, 2, -5, 2, -4, 9, -4, 4, -5, 4, 5, 5, 8, 7, 9, 10, 9, 12, 8, 15, 5, -128, -128, 4, -5, 5, -5, 5, 5, 6, 7, 8, 8, 10, 8, 12, 7, 15, 5, -128, -128, 15, -5, 15, 9, 16, 9, -128, -128, 15, -5, 16, -5, 16, 9, 2, -5, 8, 9, -128, -128, 2, -5, 3, -5, 8, 7, -128, -128, 14, -5, 13, -5, 8, 7, -128, -128, 14, -5, 8, 9, 3, -5, 8, 9, -128, -128, 3, -5, 4, -5, 8, 6, -128, -128, 12, -5, 8, 6, -128, -128, 12, -2, 8, 9, -128, -128, 12, -2, 16, 9, -128, -128, 12, -5, 16, 6, -128, -128, 21, -5, 20, -5, 16, 6, -128, -128, 21, -5, 16, 9, 3, -5, 14, 9, 15, 9, -128, -128, 3, -5, 4, -5, 15, 9, -128, -128, 15, -5, 14, -5, 3, 9, -128, -128, 15, -5, 4, 9, 3, 9, 2, -5, 8, 9, -128, -128, 2, -5, 3, -5, 8, 7, -128, -128, 14, -5, 13, -5, 8, 7, 4, 16, -128, -128, 14, -5, 8, 9, 5, 16, 4, 16, 13, -4, 3, 9, -128, -128, 15, -5, 5, 8, -128, -128, 3, -5, 15, -5, -128, -128, 3, -5, 3, -4, 13, -4, -128, -128, 5, 8, 15, 8, 15, 9, -128, -128, 3, 9, 15, 9, 10, -16, 3, 0, 10, 16, 4, -16, 4, 16, 4, -16, 11, 0, 4, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 -}; - -static const hershey_font_t futuram { - .chars = { - {.width=16, .vertex_count=0, .vertices=&futuram_vertices[0]}, - {.width=11, .vertex_count=23, .vertices=&futuram_vertices[0]}, - {.width=18, .vertex_count=21, .vertices=&futuram_vertices[46]}, - {.width=21, .vertex_count=11, .vertices=&futuram_vertices[88]}, - {.width=19, .vertex_count=50, .vertices=&futuram_vertices[110]}, - {.width=24, .vertex_count=31, .vertices=&futuram_vertices[210]}, - {.width=25, .vertex_count=48, .vertices=&futuram_vertices[272]}, - {.width=9, .vertex_count=10, .vertices=&futuram_vertices[368]}, - {.width=14, .vertex_count=19, .vertices=&futuram_vertices[388]}, - {.width=14, .vertex_count=19, .vertices=&futuram_vertices[426]}, - {.width=16, .vertex_count=38, .vertices=&futuram_vertices[464]}, - {.width=25, .vertex_count=15, .vertices=&futuram_vertices[540]}, - {.width=11, .vertex_count=23, .vertices=&futuram_vertices[570]}, - {.width=26, .vertex_count=2, .vertices=&futuram_vertices[616]}, - {.width=11, .vertex_count=15, .vertices=&futuram_vertices[620]}, - {.width=23, .vertex_count=7, .vertices=&futuram_vertices[650]}, - {.width=20, .vertex_count=41, .vertices=&futuram_vertices[664]}, - {.width=20, .vertex_count=11, .vertices=&futuram_vertices[746]}, - {.width=20, .vertex_count=33, .vertices=&futuram_vertices[768]}, - {.width=20, .vertex_count=47, .vertices=&futuram_vertices[834]}, - {.width=20, .vertex_count=17, .vertices=&futuram_vertices[928]}, - {.width=20, .vertex_count=52, .vertices=&futuram_vertices[962]}, - {.width=20, .vertex_count=61, .vertices=&futuram_vertices[1066]}, - {.width=20, .vertex_count=11, .vertices=&futuram_vertices[1188]}, - {.width=20, .vertex_count=67, .vertices=&futuram_vertices[1210]}, - {.width=20, .vertex_count=61, .vertices=&futuram_vertices[1344]}, - {.width=11, .vertex_count=31, .vertices=&futuram_vertices[1466]}, - {.width=11, .vertex_count=39, .vertices=&futuram_vertices[1528]}, - {.width=24, .vertex_count=3, .vertices=&futuram_vertices[1606]}, - {.width=25, .vertex_count=15, .vertices=&futuram_vertices[1612]}, - {.width=24, .vertex_count=3, .vertices=&futuram_vertices[1642]}, - {.width=19, .vertex_count=57, .vertices=&futuram_vertices[1648]}, - {.width=27, .vertex_count=55, .vertices=&futuram_vertices[1762]}, - {.width=20, .vertex_count=19, .vertices=&futuram_vertices[1872]}, - {.width=20, .vertex_count=43, .vertices=&futuram_vertices[1910]}, - {.width=21, .vertex_count=37, .vertices=&futuram_vertices[1996]}, - {.width=21, .vertex_count=31, .vertices=&futuram_vertices[2070]}, - {.width=19, .vertex_count=26, .vertices=&futuram_vertices[2132]}, - {.width=18, .vertex_count=20, .vertices=&futuram_vertices[2184]}, - {.width=21, .vertex_count=43, .vertices=&futuram_vertices[2224]}, - {.width=22, .vertex_count=21, .vertices=&futuram_vertices[2310]}, - {.width=9, .vertex_count=7, .vertices=&futuram_vertices[2352]}, - {.width=17, .vertex_count=19, .vertices=&futuram_vertices[2366]}, - {.width=21, .vertex_count=21, .vertices=&futuram_vertices[2404]}, - {.width=17, .vertex_count=13, .vertices=&futuram_vertices[2446]}, - {.width=24, .vertex_count=25, .vertices=&futuram_vertices[2472]}, - {.width=22, .vertex_count=19, .vertices=&futuram_vertices[2522]}, - {.width=22, .vertex_count=39, .vertices=&futuram_vertices[2560]}, - {.width=20, .vertex_count=26, .vertices=&futuram_vertices[2638]}, - {.width=22, .vertex_count=47, .vertices=&futuram_vertices[2690]}, - {.width=20, .vertex_count=33, .vertices=&futuram_vertices[2784]}, - {.width=20, .vertex_count=42, .vertices=&futuram_vertices[2850]}, - {.width=17, .vertex_count=14, .vertices=&futuram_vertices[2934]}, - {.width=22, .vertex_count=23, .vertices=&futuram_vertices[2962]}, - {.width=20, .vertex_count=13, .vertices=&futuram_vertices[3008]}, - {.width=26, .vertex_count=25, .vertices=&futuram_vertices[3034]}, - {.width=20, .vertex_count=15, .vertices=&futuram_vertices[3084]}, - {.width=19, .vertex_count=16, .vertices=&futuram_vertices[3114]}, - {.width=20, .vertex_count=19, .vertices=&futuram_vertices[3146]}, - {.width=14, .vertex_count=11, .vertices=&futuram_vertices[3184]}, - {.width=14, .vertex_count=2, .vertices=&futuram_vertices[3206]}, - {.width=14, .vertex_count=11, .vertices=&futuram_vertices[3210]}, - {.width=22, .vertex_count=7, .vertices=&futuram_vertices[3232]}, - {.width=20, .vertex_count=2, .vertices=&futuram_vertices[3246]}, - {.width=12, .vertex_count=6, .vertices=&futuram_vertices[3250]}, - {.width=20, .vertex_count=35, .vertices=&futuram_vertices[3262]}, - {.width=20, .vertex_count=35, .vertices=&futuram_vertices[3332]}, - {.width=18, .vertex_count=31, .vertices=&futuram_vertices[3402]}, - {.width=20, .vertex_count=35, .vertices=&futuram_vertices[3464]}, - {.width=18, .vertex_count=35, .vertices=&futuram_vertices[3534]}, - {.width=14, .vertex_count=23, .vertices=&futuram_vertices[3604]}, - {.width=20, .vertex_count=47, .vertices=&futuram_vertices[3650]}, - {.width=20, .vertex_count=24, .vertices=&futuram_vertices[3744]}, - {.width=9, .vertex_count=23, .vertices=&futuram_vertices[3792]}, - {.width=9, .vertex_count=23, .vertices=&futuram_vertices[3838]}, - {.width=19, .vertex_count=21, .vertices=&futuram_vertices[3884]}, - {.width=9, .vertex_count=7, .vertices=&futuram_vertices[3926]}, - {.width=31, .vertex_count=41, .vertices=&futuram_vertices[3940]}, - {.width=20, .vertex_count=24, .vertices=&futuram_vertices[4022]}, - {.width=19, .vertex_count=35, .vertices=&futuram_vertices[4070]}, - {.width=20, .vertex_count=35, .vertices=&futuram_vertices[4140]}, - {.width=20, .vertex_count=35, .vertices=&futuram_vertices[4210]}, - {.width=14, .vertex_count=20, .vertices=&futuram_vertices[4280]}, - {.width=17, .vertex_count=49, .vertices=&futuram_vertices[4320]}, - {.width=11, .vertex_count=15, .vertices=&futuram_vertices[4418]}, - {.width=20, .vertex_count=24, .vertices=&futuram_vertices[4448]}, - {.width=16, .vertex_count=13, .vertices=&futuram_vertices[4496]}, - {.width=24, .vertex_count=25, .vertices=&futuram_vertices[4522]}, - {.width=18, .vertex_count=15, .vertices=&futuram_vertices[4572]}, - {.width=16, .vertex_count=16, .vertices=&futuram_vertices[4602]}, - {.width=18, .vertex_count=19, .vertices=&futuram_vertices[4634]}, - {.width=14, .vertex_count=3, .vertices=&futuram_vertices[4672]}, - {.width=8, .vertex_count=2, .vertices=&futuram_vertices[4678]}, - {.width=14, .vertex_count=3, .vertices=&futuram_vertices[4682]}, - {.width=24, .vertex_count=23, .vertices=&futuram_vertices[4688]} - } -}; - -static const int8_t gothgbt_vertices[9046] = { - 6, -12, 5, -11, 3, -10, 5, -9, 6, 2, -128, -128, 6, -9, 7, -10, 6, -11, 5, -10, 6, -9, 6, 2, -128, -128, 6, -12, 7, -11, 9, -10, 7, -9, 6, 2, -128, -128, 6, 6, 4, 8, 6, 9, 8, 8, 6, 6, -128, -128, 6, 7, 5, 8, 7, 8, 6, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, -128, -128, 14, -12, 13, -11, 13, -5, -128, -128, 14, -11, 13, -5, -128, -128, 14, -12, 15, -11, 13, -5, 11, -12, 4, 16, -128, -128, 17, -12, 10, 16, -128, -128, 4, -1, 18, -1, -128, -128, 3, 5, 17, 5, 8, -16, 8, 13, -128, -128, 12, -16, 12, 13, -128, -128, 12, -12, 14, -11, 15, -9, 15, -7, 17, -8, 16, -10, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -6, 4, -4, 7, -2, 13, 0, 15, 1, 16, 3, 16, 6, 15, 8, -128, -128, 16, -8, 15, -10, -128, -128, 4, -6, 5, -4, 7, -3, 13, -1, 15, 0, 16, 2, -128, -128, 5, 7, 4, 5, -128, -128, 5, -11, 4, -9, 4, -7, 5, -5, 7, -4, 13, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 5, 4, 5, 6, 6, 8, 8, 9, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 20, -4, 21, -3, 22, -3, 23, -4, -128, -128, 19, -3, 20, -2, 22, -2, -128, -128, 19, -2, 20, -1, 21, -1, 22, -2, 23, -4, -128, -128, 20, -4, 14, 2, -128, -128, 13, 3, 7, 9, 3, 4, 9, -2, -128, -128, 10, -3, 14, -7, 10, -12, 5, -6, 11, 0, 15, 6, 17, 8, 19, 9, 21, 9, 22, 8, 23, 6, -128, -128, 7, 8, 4, 4, -128, -128, 13, -7, 10, -11, -128, -128, 6, -6, 11, -1, 15, 5, 17, 7, 19, 8, 22, 8, -128, -128, 8, 8, 4, 3, -128, -128, 13, -6, 9, -11, -128, -128, 6, -7, 12, -1, 16, 5, 17, 6, 19, 7, 22, 7, 23, 6, 6, -6, 6, -8, 4, -10, 6, -12, 7, -10, 7, -8, 6, -6, 4, -5, -128, -128, 6, -11, 5, -10, 6, -9, 6, -11, 10, -16, 8, -14, 6, -11, 4, -7, 3, -2, 3, 2, 4, 7, 6, 11, 8, 14, 10, 16, -128, -128, 6, -10, 5, -7, 4, -3, 4, 3, 5, 7, 6, 10, -128, -128, 8, -14, 7, -12, 6, -9, 5, -3, 5, 3, 6, 9, 7, 12, 8, 14, 4, -16, 6, -14, 8, -11, 10, -7, 11, -2, 11, 2, 10, 7, 8, 11, 6, 14, 4, 16, -128, -128, 8, -10, 9, -7, 10, -3, 10, 3, 9, 7, 8, 10, -128, -128, 6, -14, 7, -12, 8, -9, 9, -3, 9, 3, 8, 9, 7, 12, 6, 14, 8, -12, 7, -11, 9, -1, 8, 0, -128, -128, 8, -12, 8, 0, -128, -128, 8, -12, 9, -11, 7, -1, 8, 0, -128, -128, 3, -9, 4, -9, 12, -3, 13, -3, -128, -128, 3, -9, 13, -3, -128, -128, 3, -9, 3, -8, 13, -4, 13, -3, -128, -128, 13, -9, 12, -9, 4, -3, 3, -3, -128, -128, 13, -9, 3, -3, -128, -128, 13, -9, 13, -8, 3, -4, 3, -3, 12, -9, 12, 8, 13, 8, -128, -128, 12, -9, 13, -9, 13, 8, -128, -128, 4, -1, 21, -1, 21, 0, -128, -128, 4, -1, 4, 0, 21, 0, 6, 12, 6, 10, 4, 8, 6, 6, 7, 8, 7, 10, 6, 12, 4, 13, -128, -128, 6, 7, 5, 8, 6, 9, 6, 7, 4, -1, 21, -1, 21, 0, -128, -128, 4, -1, 4, 0, 21, 0, 6, 6, 4, 8, 6, 9, 8, 8, 6, 6, -128, -128, 6, 7, 5, 8, 7, 8, 6, 7, 20, -16, 2, 16, 3, 16, -128, -128, 20, -16, 21, -16, 3, 16, 4, -10, 4, 6, 2, 7, -128, -128, 5, -9, 5, 6, 8, 8, -128, -128, 6, -10, 6, 6, 8, 7, 9, 8, -128, -128, 4, -10, 6, -10, 11, -11, 13, -12, -128, -128, 11, -11, 12, -10, 14, -9, 14, 7, -128, -128, 12, -11, 15, -9, 15, 6, -128, -128, 13, -12, 14, -11, 16, -10, 18, -10, 16, -9, 16, 7, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 14, 7, 16, 7, 7, -10, 8, -9, 9, -7, 9, 6, 7, 7, -128, -128, 9, -9, 8, -10, 9, -11, 10, -9, 10, 7, 12, 8, -128, -128, 7, -10, 10, -12, 11, -10, 11, 6, 13, 7, 14, 7, -128, -128, 7, 7, 8, 7, 10, 8, 11, 9, 12, 8, 14, 7, 4, -10, 6, -10, 8, -11, 9, -12, 11, -11, 14, -10, 16, -10, -128, -128, 8, -10, 10, -11, -128, -128, 4, -10, 6, -9, 8, -9, 10, -10, 11, -11, -128, -128, 14, -10, 14, -2, -128, -128, 15, -9, 15, -3, -128, -128, 16, -10, 16, -2, 9, -2, 6, -1, 4, 1, 3, 4, 3, 9, -128, -128, 3, 9, 7, 7, 11, 6, 14, 6, 18, 7, -128, -128, 6, 8, 9, 7, 14, 7, 17, 8, -128, -128, 3, 9, 8, 8, 13, 8, 16, 9, 18, 7, 4, -10, 5, -10, 7, -11, 8, -12, 10, -11, 14, -10, 16, -10, -128, -128, 7, -10, 9, -11, -128, -128, 4, -10, 6, -9, 8, -9, 10, -11, -128, -128, 14, -10, 14, -3, -128, -128, 15, -9, 15, -4, -128, -128, 16, -10, 16, -3, 14, -3, 11, -2, 9, -1, -128, -128, 9, -2, 11, -1, 14, 0, 16, 0, 16, 7, -128, -128, 15, 1, 15, 6, -128, -128, 14, 0, 14, 7, -128, -128, 3, 7, 5, 6, 7, 6, 9, 7, 10, 8, -128, -128, 7, 7, 9, 8, -128, -128, 3, 7, 5, 7, 7, 8, 8, 9, 10, 8, 14, 7, 16, 7, 13, -12, 3, -2, 3, 3, 12, 3, -128, -128, 14, 3, 18, 3, 19, 4, 19, 2, 18, 3, -128, -128, 4, -2, 4, 2, -128, -128, 5, -4, 5, 3, -128, -128, 12, -11, 12, 6, 10, 7, -128, -128, 13, -8, 14, -10, 13, -11, 13, 7, 15, 8, -128, -128, 13, -12, 15, -10, 14, -8, 14, 6, 16, 7, 17, 7, -128, -128, 10, 7, 11, 7, 13, 8, 14, 9, 15, 8, 17, 7, 4, -12, 4, -3, -128, -128, 4, -12, 16, -12, -128, -128, 5, -11, 14, -11, -128, -128, 4, -10, 13, -10, 15, -11, 16, -12, -128, -128, 14, -6, 13, -5, 11, -4, 7, -3, 4, -3, -128, -128, 11, -4, 12, -4, 14, -3, 14, 7, -128, -128, 13, -5, 15, -4, 15, 6, -128, -128, 14, -6, 15, -5, 17, -4, 18, -4, 16, -3, 16, 7, -128, -128, 3, 7, 5, 6, 7, 6, 9, 7, 10, 8, -128, -128, 7, 7, 9, 8, -128, -128, 3, 7, 5, 7, 7, 8, 8, 9, 10, 8, 14, 7, 16, 7, 4, -10, 4, 6, 2, 7, -128, -128, 5, -9, 5, 6, 8, 8, -128, -128, 6, -10, 6, 6, 8, 7, 9, 8, -128, -128, 4, -10, 6, -10, 10, -11, 12, -12, 13, -11, 15, -10, 16, -10, -128, -128, 11, -11, 13, -10, -128, -128, 10, -11, 12, -9, 14, -9, 16, -10, -128, -128, 6, -2, 7, -2, 11, -3, 13, -4, 14, -5, -128, -128, 11, -3, 12, -3, 14, -2, 14, 7, -128, -128, 13, -4, 15, -2, 15, 6, -128, -128, 14, -5, 15, -4, 17, -3, 18, -3, 16, -2, 16, 7, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 14, 7, 16, 7, 3, -10, 5, -12, 8, -11, 13, -11, 18, -12, -128, -128, 4, -11, 7, -10, 12, -10, 15, -11, -128, -128, 3, -10, 7, -9, 10, -9, 14, -10, 18, -12, -128, -128, 18, -12, 17, -10, 15, -7, 11, -3, 9, 0, 8, 3, 8, 6, 9, 9, -128, -128, 10, -1, 9, 2, 9, 5, 10, 8, -128, -128, 13, -5, 11, -2, 10, 1, 10, 4, 11, 7, 9, 9, 4, -9, 4, -3, -128, -128, 5, -8, 5, -4, -128, -128, 6, -9, 6, -3, -128, -128, 4, -9, 6, -9, 11, -10, 13, -11, 14, -12, -128, -128, 11, -10, 12, -10, 14, -9, 14, -3, -128, -128, 13, -11, 15, -10, 15, -4, -128, -128, 14, -12, 15, -11, 17, -10, 18, -10, 16, -9, 16, -3, -128, -128, 4, -3, 6, -3, 14, 0, 16, 0, -128, -128, 16, -3, 14, -3, 6, 0, 4, 0, -128, -128, 4, 0, 4, 6, 2, 7, -128, -128, 5, 1, 5, 6, 8, 8, -128, -128, 6, 0, 6, 6, 8, 7, 9, 8, -128, -128, 14, 0, 14, 7, -128, -128, 15, 1, 15, 6, -128, -128, 16, 0, 16, 7, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 14, 7, 16, 7, 4, -10, 4, -1, 2, 0, -128, -128, 5, -9, 5, 0, 7, 1, -128, -128, 6, -10, 6, -1, 8, 0, 9, 0, -128, -128, 4, -10, 6, -10, 11, -11, 13, -12, -128, -128, 11, -11, 12, -10, 14, -9, 14, 7, -128, -128, 12, -11, 15, -9, 15, 6, -128, -128, 13, -12, 14, -11, 16, -10, 18, -10, 16, -9, 16, 7, -128, -128, 2, 0, 3, 0, 5, 1, 6, 2, 7, 1, 9, 0, 13, -1, 14, -1, -128, -128, 3, 7, 5, 6, 7, 6, 9, 7, 10, 8, -128, -128, 7, 7, 9, 8, -128, -128, 3, 7, 5, 7, 7, 8, 8, 9, 10, 8, 14, 7, 16, 7, 6, -5, 4, -3, 6, -2, 8, -3, 6, -5, -128, -128, 6, -4, 5, -3, 7, -3, 6, -4, -128, -128, 6, 6, 4, 8, 6, 9, 8, 8, 6, 6, -128, -128, 6, 7, 5, 8, 7, 8, 6, 7, 6, -5, 4, -3, 6, -2, 8, -3, 6, -5, -128, -128, 6, -4, 5, -3, 7, -3, 6, -4, -128, -128, 6, 12, 6, 10, 4, 8, 6, 6, 7, 8, 7, 10, 6, 12, 4, 13, -128, -128, 6, 7, 5, 8, 6, 9, 6, 7, 20, -9, 4, 0, 20, 9, 4, -5, 21, -5, 21, -4, -128, -128, 4, -5, 4, -4, 21, -4, -128, -128, 4, 3, 21, 3, 21, 4, -128, -128, 4, 3, 4, 4, 21, 4, 4, -9, 20, 0, 4, 9, 3, -8, 4, -10, 5, -11, 8, -12, 10, -12, 13, -11, 14, -10, 15, -8, 15, -6, 14, -4, 12, -2, 10, -1, -128, -128, 4, -8, 5, -10, -128, -128, 13, -10, 14, -9, 14, -5, 13, -4, -128, -128, 3, -8, 5, -7, 5, -9, 6, -11, 8, -12, -128, -128, 10, -12, 12, -11, 13, -9, 13, -5, 12, -3, 10, -1, -128, -128, 9, -1, 9, 2, 10, -1, 8, -1, 9, 2, -128, -128, 9, 6, 7, 8, 9, 9, 11, 8, 9, 6, -128, -128, 9, 7, 8, 8, 10, 8, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 5, -9, 7, -11, 9, -12, 11, -12, 12, -11, 19, 5, 20, 6, 22, 6, -128, -128, 10, -11, 11, -10, 18, 6, 19, 8, 20, 7, 18, 6, -128, -128, 7, -11, 9, -11, 10, -10, 17, 6, 18, 8, 19, 9, 20, 9, 22, 6, -128, -128, 5, -5, 6, -6, 8, -7, 9, -7, 10, -6, -128, -128, 9, -6, 9, -5, -128, -128, 6, -6, 8, -6, 9, -4, -128, -128, 0, 9, 2, 7, 4, 6, 7, 6, 9, 7, -128, -128, 3, 7, 7, 7, 8, 8, -128, -128, 0, 9, 3, 8, 6, 8, 7, 9, 9, 7, -128, -128, 11, -8, 5, 6, -128, -128, 7, 1, 15, 1, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 18, -12, 20, -11, 21, -9, 21, -7, 19, -5, 15, -3, -128, -128, 18, -11, 20, -9, 20, -7, -128, -128, 16, -11, 18, -10, 19, -9, 19, -6, 17, -4, -128, -128, 17, -4, 20, -2, 21, 0, 21, 6, -128, -128, 19, -2, 20, 0, 20, 5, -128, -128, 17, -4, 18, -3, 19, -1, 19, 6, -128, -128, 4, 9, 7, 7, 10, 6, 14, 6, 17, 7, -128, -128, 6, 8, 9, 7, 14, 7, 16, 8, -128, -128, 4, 9, 8, 8, 13, 8, 15, 9, 17, 7, 19, 6, 21, 6, -128, -128, 15, -3, 15, 6, -128, -128, 15, 0, 19, 0, -128, -128, 15, 3, 19, 3, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 1, 4, 4, 5, 6, 8, 8, 11, 9, 14, 9, 17, 8, 19, 7, 21, 5, 22, 3, -128, -128, 5, -7, 4, -4, 4, 1, 6, 5, 9, 7, 12, 8, 15, 8, 18, 7, -128, -128, 9, -11, 7, -9, 6, -7, 5, -4, 5, 0, 6, 3, 9, 6, 12, 7, 15, 7, 18, 6, 20, 5, 22, 3, -128, -128, 11, -8, 11, 4, -128, -128, 12, -8, 12, 2, -128, -128, 13, -9, 13, 1, 12, 3, 11, 4, -128, -128, 11, -8, 13, -9, 16, -12, 18, -11, 20, -11, 21, -12, -128, -128, 15, -11, 17, -10, 19, -10, -128, -128, 14, -10, 16, -9, 18, -9, 20, -10, 21, -12, -128, -128, 18, -9, 18, 6, 2, -12, 16, -12, 18, -11, 19, -9, 19, 6, -128, -128, 4, -11, 16, -11, 18, -9, 18, 5, -128, -128, 2, -12, 3, -11, 5, -10, 16, -10, 17, -9, 17, 6, -128, -128, 8, -7, 7, -6, 6, -4, 6, -3, 4, -3, 3, -2, 3, 0, 4, -1, 6, -1, 6, 4, -128, -128, 7, -5, 7, 2, -128, -128, 4, -2, 7, -2, -128, -128, 8, -7, 8, 1, 7, 3, 6, 4, -128, -128, 2, 9, 5, 7, 8, 6, 12, 6, 15, 7, -128, -128, 4, 8, 7, 7, 12, 7, 14, 8, -128, -128, 2, 9, 6, 8, 11, 8, 13, 9, 15, 7, 17, 6, 19, 6, -128, -128, 11, -10, 11, 6, -128, -128, 11, -5, 13, -4, 15, -4, 17, -5, -128, -128, 11, 1, 13, 0, 15, 0, 17, 1, 2, -10, 4, -12, 6, -12, 8, -11, 10, -12, -128, -128, 5, -11, 7, -11, -128, -128, 2, -10, 4, -11, 6, -10, 8, -10, 10, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 10, -5, 11, -8, 12, -10, 13, -11, 15, -12, 17, -12, 20, -11, -128, -128, 13, -10, 15, -11, 17, -11, 19, -10, -128, -128, 11, -8, 12, -9, 14, -10, 16, -10, 18, -9, 20, -11, -128, -128, 10, 3, 11, 0, 12, -2, 13, -3, 15, -3, 17, -2, -128, -128, 13, -2, 15, -2, 16, -1, -128, -128, 11, 0, 12, -1, 14, -1, 15, 0, 17, -2, -128, -128, 4, 9, 7, 7, 11, 6, 16, 6, 20, 7, -128, -128, 6, 8, 9, 7, 16, 7, 19, 8, -128, -128, 4, 9, 8, 8, 15, 8, 18, 9, 20, 7, -128, -128, 10, -5, 10, 6, 4, -10, 6, -12, 9, -12, 11, -11, 13, -12, -128, -128, 7, -11, 10, -11, -128, -128, 4, -10, 6, -11, 8, -10, 11, -10, 13, -12, -128, -128, 10, -7, 9, -6, 8, -4, 8, -3, 6, -3, 5, -2, 5, 0, 6, -1, 8, -1, 8, 4, -128, -128, 9, -5, 9, 2, -128, -128, 6, -2, 9, -2, -128, -128, 10, -7, 10, 1, 9, 3, 8, 4, -128, -128, 13, -8, 13, 7, 12, 8, 11, 8, 7, 6, 5, 6, 3, 7, 1, 9, -128, -128, 14, -8, 14, 6, -128, -128, 14, -2, 18, -2, -128, -128, 10, 8, 9, 8, 7, 7, 4, 7, -128, -128, 15, -9, 15, -3, 18, -3, -128, -128, 18, -1, 15, -1, 15, 5, 14, 7, 10, 9, 8, 9, 6, 8, 4, 8, 1, 9, -128, -128, 13, -8, 15, -9, 18, -12, 20, -11, 22, -11, 23, -12, -128, -128, 17, -11, 19, -10, 21, -10, -128, -128, 16, -10, 18, -9, 20, -9, 22, -10, 23, -12, -128, -128, 18, -9, 18, 5, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 16, 9, 19, 8, 21, 6, 22, 4, 22, 1, 21, -1, 20, -2, 18, -3, 16, -3, -128, -128, 5, -7, 4, -4, 4, 1, 5, 4, -128, -128, 9, -11, 7, -9, 6, -7, 5, -4, 5, 1, 6, 4, 7, 6, 9, 8, -128, -128, 20, 6, 21, 5, 21, 1, 20, -1, -128, -128, 16, 9, 18, 8, 19, 7, 20, 5, 20, 1, 19, -1, 18, -2, 16, -3, -128, -128, 11, -8, 11, 5, -128, -128, 12, -8, 12, 3, -128, -128, 13, -9, 13, 2, 12, 4, 11, 5, -128, -128, 11, -8, 13, -9, 16, -12, 18, -11, 20, -11, 21, -12, -128, -128, 15, -11, 17, -10, 19, -10, -128, -128, 14, -10, 16, -9, 18, -9, 20, -10, 21, -12, -128, -128, 20, -10, 16, -3, 16, 9, -128, -128, 16, 1, 20, 1, -128, -128, 16, 4, 20, 4, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 4, 9, 7, 7, 10, 6, 13, 6, 15, 7, -128, -128, 6, 8, 9, 7, 12, 7, 14, 8, -128, -128, 4, 9, 8, 8, 11, 8, 13, 9, 15, 7, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 14, -11, 16, -12, 18, -12, 20, -11, -128, -128, 17, -11, 18, -11, 19, -10, -128, -128, 14, -11, 16, -11, 18, -9, 20, -11, -128, -128, 15, -3, 17, -4, 19, -6, 20, -5, 21, -2, 21, 2, 20, 6, 18, 9, -128, -128, 18, -5, 19, -4, 20, -2, 20, 3, 19, 6, -128, -128, 17, -4, 18, -4, 19, -2, 19, 3, 18, 9, -128, -128, 15, -3, 15, 7, -128, -128, 15, 0, 19, 0, -128, -128, 15, 3, 19, 3, 3, -10, 5, -12, 8, -12, 11, -11, 13, -12, -128, -128, 6, -11, 10, -11, -128, -128, 3, -10, 5, -11, 8, -10, 11, -10, 13, -12, -128, -128, 10, -7, 9, -6, 8, -4, 8, -3, 6, -3, 5, -2, 5, 0, 6, -1, 8, -1, 8, 4, -128, -128, 9, -5, 9, 2, -128, -128, 6, -2, 9, -2, -128, -128, 10, -7, 10, 1, 9, 3, 8, 4, -128, -128, 16, -10, 14, -8, 13, -5, 13, 6, 12, 8, 10, 8, 6, 6, 4, 6, 2, 7, 0, 9, -128, -128, 14, -7, 14, 5, -128, -128, 9, 8, 8, 8, 6, 7, 3, 7, -128, -128, 16, -10, 15, -8, 15, 4, 14, 6, 12, 8, 10, 9, 7, 9, 5, 8, 2, 8, 0, 9, 4, -10, 6, -12, 9, -12, 12, -11, 14, -12, -128, -128, 7, -11, 11, -11, -128, -128, 4, -10, 6, -11, 9, -10, 12, -10, 14, -12, -128, -128, 11, -7, 10, -6, 9, -4, 9, -3, 7, -3, 6, -2, 6, 0, 7, -1, 9, -1, 9, 4, -128, -128, 10, -5, 10, 2, -128, -128, 7, -2, 10, -2, -128, -128, 11, -7, 11, 1, 10, 3, 9, 4, -128, -128, 17, -10, 15, -8, 14, -5, 14, 6, 13, 8, -128, -128, 15, -7, 15, 5, -128, -128, 17, -10, 16, -8, 16, 4, 15, 6, 13, 8, 10, 9, 7, 9, 4, 8, 2, 6, 2, 4, 3, 3, 4, 3, 5, 4, 4, 5, 3, 5, -128, -128, 2, 4, 5, 4, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 4, 9, 7, 7, 10, 6, 13, 6, 15, 7, -128, -128, 6, 8, 8, 7, 12, 7, 14, 8, -128, -128, 4, 9, 8, 8, 11, 8, 13, 9, 15, 7, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 14, -11, 16, -12, 18, -12, 20, -11, -128, -128, 17, -11, 18, -11, 19, -10, -128, -128, 14, -11, 16, -11, 18, -9, 20, -11, -128, -128, 15, -3, 18, -6, 19, -5, 21, -4, -128, -128, 17, -5, 19, -4, 21, -4, -128, -128, 21, -4, 19, -1, 17, 1, 15, 3, -128, -128, 17, 1, 19, 2, 20, 6, 21, 8, 22, 8, -128, -128, 19, 4, 20, 8, -128, -128, 17, 1, 18, 2, 19, 8, 20, 9, 21, 9, 22, 8, -128, -128, 15, -3, 15, 7, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 4, 9, 7, 7, 11, 6, 16, 6, 20, 7, -128, -128, 6, 8, 9, 7, 16, 7, 19, 8, -128, -128, 4, 9, 8, 8, 15, 8, 18, 9, 20, 7, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 14, -11, 16, -12, 18, -12, 20, -11, -128, -128, 17, -11, 18, -11, 19, -10, -128, -128, 14, -11, 16, -11, 18, -9, 20, -11, -128, -128, 16, -11, 16, 6, 8, -8, 7, -7, 6, -5, 6, -3, 4, -3, 3, -2, 3, 0, 4, -1, 6, -1, 6, 3, -128, -128, 7, -6, 7, 1, -128, -128, 4, -2, 7, -2, -128, -128, 8, -8, 8, 0, 7, 2, 6, 3, -128, -128, 1, 9, 3, 7, 5, 6, 7, 6, 9, 7, 10, 7, 11, 6, -128, -128, 4, 7, 7, 7, 9, 8, -128, -128, 1, 9, 3, 8, 6, 8, 8, 9, 9, 9, 10, 8, 11, 6, -128, -128, 8, -8, 12, -12, 16, -8, 16, 5, 17, 7, 18, 7, -128, -128, 12, -11, 15, -8, 15, 6, 14, 7, 15, 8, 16, 7, 15, 6, -128, -128, 12, -2, 15, -2, -128, -128, 10, -10, 11, -10, 14, -7, 14, -3, 11, -3, -128, -128, 11, -1, 14, -1, 14, 6, 13, 7, 15, 9, 18, 7, 19, 6, -128, -128, 16, -8, 20, -12, 24, -8, 24, 5, 25, 7, 26, 7, -128, -128, 20, -11, 23, -8, 23, 6, 25, 8, -128, -128, 20, -2, 23, -2, -128, -128, 18, -10, 19, -10, 22, -7, 22, -3, 19, -3, -128, -128, 19, -1, 22, -1, 22, 7, 24, 9, 26, 7, -128, -128, 11, -10, 11, 6, -128, -128, 19, -10, 19, 6, 2, -9, 4, -11, 6, -12, 8, -12, 10, -11, 12, -8, 17, 3, 19, 6, 20, 7, -128, -128, 8, -11, 10, -9, 11, -7, 17, 5, 20, 8, -128, -128, 4, -11, 6, -11, 8, -10, 10, -7, 15, 4, 17, 7, 18, 8, 20, 9, -128, -128, 17, -10, 19, -9, 21, -9, 23, -10, 24, -12, -128, -128, 18, -11, 20, -10, 22, -10, -128, -128, 17, -10, 19, -12, 21, -11, 23, -11, 24, -12, -128, -128, 6, -3, 4, -3, 3, -2, 3, 0, 4, -1, 6, -1, -128, -128, 4, -2, 6, -2, -128, -128, 2, 9, 4, 7, 6, 6, 9, 6, 11, 7, -128, -128, 5, 7, 8, 7, 10, 8, -128, -128, 2, 9, 5, 8, 8, 8, 9, 9, 11, 7, -128, -128, 6, -11, 6, 6, -128, -128, 20, -9, 20, 9, -128, -128, 13, -6, 14, -5, 16, -4, 18, -4, 20, -5, -128, -128, 6, 2, 8, 1, 12, 1, 14, 2, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 14, 9, 17, 8, 19, 7, 21, 5, 22, 3, 23, 0, 23, -4, 22, -7, 21, -9, 19, -11, 17, -12, 16, -11, 13, -9, 10, -8, -128, -128, 5, -8, 4, -5, 4, 1, 5, 4, -128, -128, 9, -12, 7, -10, 6, -8, 5, -5, 5, 1, 6, 4, 7, 6, 9, 8, -128, -128, 21, 4, 22, 1, 22, -5, 20, -9, 19, -10, -128, -128, 17, 8, 19, 6, 20, 4, 21, 1, 21, -5, 20, -7, 18, -10, 16, -11, -128, -128, 10, -8, 10, 5, -128, -128, 11, -8, 11, 3, -128, -128, 12, -8, 12, 2, 11, 4, 10, 5, -128, -128, 16, -11, 16, 8, -128, -128, 16, -5, 18, -4, 19, -4, 21, -5, -128, -128, 16, 1, 18, 0, 19, 0, 21, 1, 3, -12, 4, -11, 5, -9, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 7, 2, 9, 5, 8, 5, 16, 7, 14, -128, -128, 5, -10, 6, -8, 6, 14, -128, -128, 3, -2, 6, -2, -128, -128, 3, -12, 5, -11, 6, -10, 7, -8, 7, 14, -128, -128, 7, -7, 10, -9, 14, -12, 18, -8, 18, 6, -128, -128, 14, -11, 17, -8, 17, 6, -128, -128, 12, -10, 13, -10, 16, -7, 16, 7, -128, -128, 10, 6, 13, 6, 16, 7, -128, -128, 11, 7, 13, 7, 15, 8, -128, -128, 10, 8, 12, 8, 14, 9, 16, 7, 18, 6, -128, -128, 10, -9, 10, 13, -128, -128, 10, -5, 12, -4, 14, -4, 16, -5, -128, -128, 10, 1, 12, 0, 14, 0, 16, 1, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 11, 9, 15, 9, 17, 8, 19, 7, 21, 5, 22, 3, 23, 0, 23, -4, 22, -7, 21, -9, 19, -11, 17, -12, 16, -11, 13, -9, 10, -8, -128, -128, 5, -8, 4, -5, 4, 1, 5, 4, -128, -128, 9, -12, 7, -10, 6, -8, 5, -5, 5, 1, 6, 4, 7, 6, 9, 8, -128, -128, 21, 4, 22, 1, 22, -5, 20, -9, 19, -10, -128, -128, 17, 8, 19, 6, 20, 4, 21, 1, 21, -5, 20, -7, 18, -10, 16, -11, -128, -128, 10, -8, 10, 5, -128, -128, 11, -8, 11, 3, -128, -128, 12, -8, 12, 2, 11, 4, 10, 5, -128, -128, 16, -11, 16, 8, -128, -128, 16, -5, 18, -4, 19, -4, 21, -5, -128, -128, 16, 1, 18, 0, 19, 0, 21, 1, -128, -128, 11, 9, 12, 8, 13, 8, 15, 9, 19, 14, 21, 15, 22, 15, -128, -128, 15, 10, 17, 13, 19, 15, 20, 15, -128, -128, 13, 8, 14, 9, 17, 15, 19, 16, 21, 16, 22, 15, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 4, 9, 7, 7, 10, 6, 12, 6, 15, 7, -128, -128, 6, 8, 8, 7, 12, 7, 14, 8, -128, -128, 4, 9, 8, 8, 11, 8, 13, 9, 15, 7, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 15, -11, 17, -12, 19, -11, 20, -9, 20, -6, 19, -4, 18, -3, 14, -1, 12, 0, -128, -128, 17, -11, 18, -11, 19, -9, 19, -5, 18, -4, -128, -128, 15, -11, 17, -10, 18, -8, 18, -5, 17, -3, 14, -1, -128, -128, 14, -1, 16, 0, 17, 1, 20, 6, 21, 7, 22, 7, -128, -128, 17, 2, 19, 6, 21, 8, -128, -128, 14, -1, 16, 1, 18, 7, 20, 9, 22, 7, 14, -9, 13, -10, 11, -11, 8, -12, -128, -128, 15, -10, 13, -11, -128, -128, 16, -11, 12, -12, 8, -12, 5, -11, 4, -10, 3, -8, 4, -6, 5, -5, 8, -4, 16, -4, 18, -3, 19, -2, 19, 0, 18, 3, -128, -128, 4, -7, 5, -6, 8, -5, 17, -5, 19, -4, 20, -3, 20, -1, 19, 1, -128, -128, 4, -10, 4, -8, 5, -7, 8, -6, 18, -6, 20, -5, 21, -3, 21, -1, 18, 3, 14, 9, -128, -128, 2, -3, 3, -2, 5, -1, 14, -1, 15, 0, 15, 1, 14, 3, -128, -128, 3, -1, 5, 0, 13, 0, 14, 1, -128, -128, 2, -3, 2, -2, 3, 0, 5, 1, 12, 1, 14, 2, 14, 3, -128, -128, 2, 9, 5, 7, 9, 6, 12, 6, 15, 7, -128, -128, 4, 8, 7, 7, 11, 7, 14, 8, -128, -128, 2, 9, 6, 8, 11, 8, 14, 9, -128, -128, 16, -11, 14, -9, 12, -6, -128, -128, 11, -4, 9, -1, -128, -128, 8, 1, 6, 3, 4, 4, 3, 4, 3, 3, 4, 4, 5, -8, 4, -6, 3, -3, 3, 1, 4, 4, 6, 7, 8, 8, 11, 9, 14, 9, 17, 8, 19, 7, 21, 5, 22, 3, -128, -128, 4, 1, 5, 4, 7, 6, 9, 7, 12, 8, 15, 8, 18, 7, -128, -128, 5, -8, 4, -5, 4, -1, 5, 2, 7, 5, 9, 6, 12, 7, 15, 7, 18, 6, 20, 5, 22, 3, -128, -128, 3, -9, 4, -11, 6, -12, 10, -12, 16, -11, 20, -11, 22, -12, -128, -128, 11, -11, 15, -10, 19, -10, -128, -128, 3, -9, 4, -10, 6, -11, 9, -11, 15, -9, 18, -9, 20, -10, 22, -12, -128, -128, 14, -9, 13, -8, 11, -7, 11, 4, -128, -128, 12, -7, 12, 2, -128, -128, 13, -8, 13, 1, 12, 3, 11, 4, -128, -128, 18, -9, 18, 6, 2, -10, 4, -12, 6, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 7, -10, 9, -10, 11, -12, -128, -128, 5, -8, 4, -6, 3, -3, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 13, 9, 16, 8, 18, 7, 20, 9, 22, 7, -128, -128, 4, 1, 5, 4, 8, 7, 11, 8, 14, 8, -128, -128, 5, -8, 4, -4, 4, -1, 5, 2, 6, 4, 8, 6, 11, 7, 15, 7, 18, 6, -128, -128, 15, -9, 11, -8, 10, -6, 10, 4, -128, -128, 11, -7, 11, 2, -128, -128, 12, -8, 12, 1, 11, 3, 10, 4, -128, -128, 15, -9, 17, -10, 19, -12, 20, -11, 22, -10, 20, -9, 20, 5, 21, 7, 22, 7, -128, -128, 19, -9, 20, -10, 19, -11, 18, -10, 19, -9, 19, 6, 21, 8, -128, -128, 17, -10, 18, -9, 18, 6, -128, -128, 15, -9, 15, 7, -128, -128, 15, -4, 18, -4, -128, -128, 15, 0, 18, 0, 3, -12, 4, -11, 5, -9, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 6, 3, 7, -128, -128, 5, -10, 6, -8, 6, 6, -128, -128, 3, -2, 6, -2, -128, -128, 7, 7, 10, 7, 12, 8, -128, -128, 3, -12, 5, -11, 6, -10, 7, -8, 7, 6, 11, 6, 14, 7, -128, -128, 3, 7, 6, 7, 9, 8, 11, 9, 14, 7, 17, 6, 19, 6, -128, -128, 11, -8, 14, -9, 16, -10, 18, -12, 19, -11, 21, -10, 19, -9, 19, 6, -128, -128, 18, -9, 19, -10, 18, -11, 17, -10, 18, -9, 18, 5, -128, -128, 16, -10, 17, -9, 17, 6, -128, -128, 11, -8, 11, 6, -128, -128, 11, -5, 13, -4, 15, -4, 17, -5, -128, -128, 11, 1, 13, 0, 15, 0, 17, 1, 3, -12, 4, -11, 5, -9, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 6, 3, 7, -128, -128, 5, -10, 6, -8, 6, 6, -128, -128, 3, -2, 6, -2, -128, -128, 7, 7, 9, 7, 11, 8, -128, -128, 3, -12, 5, -11, 6, -10, 7, -8, 7, 6, 10, 6, 12, 7, -128, -128, 3, 7, 6, 7, 9, 8, 10, 9, 12, 7, 15, 6, 17, 7, 18, 9, 20, 7, 23, 6, -128, -128, 10, -10, 13, -12, 15, -10, 15, 6, 18, 6, 20, 7, -128, -128, 13, -11, 14, -10, 14, 6, -128, -128, 10, -10, 12, -10, 13, -9, 13, 6, 12, 7, -128, -128, 18, 7, 19, 8, -128, -128, 18, -10, 21, -12, 23, -10, 23, 6, -128, -128, 21, -11, 22, -10, 22, 6, -128, -128, 18, -10, 20, -10, 21, -9, 21, 6, 20, 7, -128, -128, 10, -10, 10, 6, -128, -128, 18, -10, 18, 6, -128, -128, 10, -4, 13, -4, -128, -128, 10, 0, 13, 0, -128, -128, 18, -4, 21, -4, -128, -128, 18, 0, 21, 0, 1, -9, 3, -11, 5, -12, 7, -12, 8, -11, 16, 7, 17, 8, 19, 8, -128, -128, 6, -11, 7, -10, 15, 7, 16, 8, -128, -128, 3, -11, 5, -11, 6, -10, 14, 8, 15, 9, 17, 9, 19, 8, 21, 6, -128, -128, 16, -12, 18, -11, 20, -11, 21, -12, -128, -128, 16, -11, 17, -10, 19, -10, -128, -128, 15, -10, 16, -9, 18, -9, 20, -10, 21, -12, -128, -128, 1, 9, 2, 7, 4, 6, 6, 6, 7, 7, -128, -128, 3, 7, 5, 7, 6, 8, -128, -128, 1, 9, 2, 8, 4, 8, 6, 9, -128, -128, 16, -12, 12, -3, -128, -128, 10, 0, 6, 9, -128, -128, 5, -2, 9, -2, -128, -128, 12, -2, 17, -2, 3, -12, 4, -11, 5, -9, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 6, 3, 7, -128, -128, 5, -10, 6, -8, 6, 6, -128, -128, 3, -2, 6, -2, -128, -128, 7, 7, 10, 7, 12, 8, -128, -128, 3, -12, 5, -11, 6, -10, 7, -8, 7, 6, 11, 6, 14, 7, -128, -128, 3, 7, 6, 7, 9, 8, 11, 9, 14, 7, 17, 6, -128, -128, 11, -8, 14, -9, 16, -10, 18, -12, 19, -11, 21, -10, 19, -9, 19, 12, 18, 14, 16, 16, 14, 15, 10, 14, 5, 14, -128, -128, 18, -9, 19, -10, 18, -11, 17, -10, 18, -9, 18, 7, -128, -128, 16, -10, 17, -9, 17, 6, 19, 9, -128, -128, 17, 15, 15, 14, 12, 14, -128, -128, 18, 14, 15, 13, 9, 13, 5, 14, -128, -128, 11, -8, 11, 6, -128, -128, 11, -5, 13, -4, 15, -4, 17, -5, -128, -128, 11, 1, 13, 0, 15, 0, 17, 1, 16, -11, 15, -9, 10, -3, 7, 1, 5, 5, 2, 9, -128, -128, 14, -7, 6, 4, -128, -128, 18, -12, 15, -8, 13, -4, 10, 0, 5, 6, 4, 8, -128, -128, 2, -10, 4, -12, 7, -11, 13, -11, 18, -12, -128, -128, 3, -11, 7, -10, 11, -10, 15, -11, -128, -128, 2, -10, 6, -9, 10, -9, 14, -10, 16, -11, -128, -128, 4, 8, 6, 7, 10, 6, 14, 6, 18, 7, -128, -128, 5, 8, 9, 7, 13, 7, 17, 8, -128, -128, 2, 9, 7, 8, 13, 8, 16, 9, 18, 7, -128, -128, 5, -2, 9, -2, -128, -128, 12, -2, 16, -2, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 6, -6, 8, -9, 10, -6, -128, -128, 3, -3, 8, -8, 13, -3, -128, -128, 8, -8, 8, 9, 0, 11, 16, 11, 8, -12, 6, -11, 5, -9, 5, -7, 6, -5, 8, -7, 6, -9, 6, -11, -128, -128, 6, -8, 6, -6, 7, -7, 6, -8, 6, 0, 4, 2, 3, 4, 3, 6, 4, 8, 6, 9, 8, 7, 11, 6, -128, -128, 3, 4, 4, 6, 5, 7, 7, 8, -128, -128, 4, 2, 4, 4, 5, 6, 7, 7, 8, 7, -128, -128, 4, -2, 6, -2, 9, -3, 11, -4, 12, -5, 14, -3, 13, -2, 13, 6, 14, 7, 15, 7, -128, -128, 5, -4, 4, -3, 7, -3, -128, -128, 10, -3, 13, -3, 12, -4, 12, 7, 13, 8, -128, -128, 3, -3, 5, -5, 6, -4, 8, -3, 11, -2, 11, 7, 13, 9, 15, 7, -128, -128, 3, -3, 8, 2, 3, -10, 4, -8, 4, 6, 2, 7, -128, -128, 5, -8, 4, -10, 5, -11, 5, 6, 8, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 9, 8, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 12, 7, 14, 7, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 7, -128, -128, 11, -4, 13, -3, 13, 6, -128, -128, 9, -3, 10, -3, 12, -2, 12, 7, 4, -3, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -3, 5, 7, 7, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 4, -3, 8, -4, 10, -5, 11, -4, 13, -3, 14, -3, -128, -128, 9, -4, 10, -3, 12, -3, -128, -128, 6, -3, 8, -4, 10, -2, 12, -2, 14, -3, 9, -5, 7, -4, 4, -3, 4, 6, 2, 7, -128, -128, 5, -3, 5, 6, 8, 8, -128, -128, 9, -5, 6, -3, 6, 6, 8, 7, 9, 8, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 12, 7, 14, 7, -128, -128, 4, -10, 7, -12, 8, -9, 14, -3, 14, 7, -128, -128, 7, -9, 5, -10, 6, -11, 7, -9, 13, -3, 13, 6, -128, -128, 4, -10, 12, -2, 12, 7, 4, -3, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -3, 5, 7, 7, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 4, -3, 8, -4, 10, -5, 13, -1, 11, 0, 6, 3, -128, -128, 9, -4, 12, -1, -128, -128, 6, -3, 8, -4, 11, 0, 4, -10, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -10, 5, 7, 7, 8, -128, -128, 6, -10, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 4, -10, 7, -11, 9, -12, 10, -11, 12, -10, 13, -10, -128, -128, 8, -11, 9, -10, 11, -10, -128, -128, 6, -10, 7, -11, 9, -9, 11, -9, 13, -10, -128, -128, 1, -5, 4, -5, -128, -128, 6, -5, 10, -5, 4, -3, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, 7, 8, 9, 7, 12, 6, -128, -128, 5, -2, 5, 7, 7, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 7, -128, -128, 4, -3, 6, -3, 9, -4, 11, -5, 12, -4, 14, -3, 16, -3, 14, -2, 14, 10, 13, 13, 11, 15, 9, 16, 8, 15, 6, 14, 4, 14, -128, -128, 10, -4, 13, -2, 13, 10, -128, -128, 10, 15, 8, 14, 7, 14, -128, -128, 9, -4, 10, -3, 12, -2, 12, 8, 13, 11, 13, 13, -128, -128, 11, 15, 10, 14, 8, 13, 6, 13, 4, 14, 3, -10, 4, -8, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -8, 4, -10, 5, -11, 5, 7, 7, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 6, 9, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 7, 12, 9, 11, 11, -128, -128, 11, -4, 13, -3, 13, 7, 12, 9, -128, -128, 9, -3, 10, -3, 12, -2, 12, 7, 11, 11, 11, 14, 12, 16, 13, 16, 11, 14, 5, -12, 3, -10, 5, -9, 7, -10, 5, -12, -128, -128, 5, -11, 4, -10, 6, -10, 5, -11, -128, -128, 5, -5, 4, -4, 2, -3, 4, -2, 4, 7, 6, 9, 8, 7, -128, -128, 5, -2, 6, -3, 5, -4, 4, -3, 5, -2, 5, 7, 6, 8, -128, -128, 5, -5, 6, -4, 8, -3, 6, -2, 6, 6, 7, 7, 8, 7, 5, -12, 3, -10, 5, -9, 7, -10, 5, -12, -128, -128, 5, -11, 4, -10, 6, -10, 5, -11, -128, -128, 5, -5, 4, -4, 2, -3, 4, -2, 4, 7, 6, 9, 7, 11, -128, -128, 5, -2, 6, -3, 5, -4, 4, -3, 5, -2, 5, 7, 6, 9, -128, -128, 5, -5, 6, -4, 8, -3, 6, -2, 6, 7, 7, 11, 7, 14, 5, 16, 3, 16, 3, 15, 5, 16, 3, -10, 4, -8, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -8, 4, -10, 5, -11, 5, 7, 7, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 6, 9, -128, -128, 6, -2, 9, -4, 11, -5, 13, -2, 10, 0, 6, 3, -128, -128, 10, -4, 12, -2, -128, -128, 9, -4, 11, -1, -128, -128, 10, 0, 11, 1, 13, 6, 14, 7, 15, 7, -128, -128, 10, 1, 11, 2, 12, 7, 13, 8, -128, -128, 9, 1, 10, 2, 11, 7, 13, 9, 15, 7, 3, -10, 4, -8, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -8, 4, -10, 5, -11, 5, 7, 7, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 4, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 6, 9, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 14, -3, 14, 6, 16, 7, 14, 9, -128, -128, 11, -4, 13, -3, 13, 7, 15, 8, -128, -128, 9, -3, 10, -3, 12, -2, 12, 6, 11, 7, 13, 8, 14, 9, -128, -128, 14, -2, 17, -3, 19, -4, 20, -5, 21, -4, 23, -3, 24, -3, 22, -2, 22, 6, 23, 7, 24, 7, -128, -128, 19, -4, 21, -3, 21, 7, 22, 8, -128, -128, 17, -3, 18, -3, 20, -2, 20, 7, 22, 9, 24, 7, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 4, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 6, 9, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 6, 15, 7, 16, 7, -128, -128, 11, -4, 13, -3, 13, 7, 14, 8, -128, -128, 9, -3, 10, -3, 12, -2, 12, 7, 14, 9, 16, 7, 4, -3, 4, 6, 2, 7, -128, -128, 5, -2, 5, 6, 8, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 8, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 12, 7, 14, 7, -128, -128, 4, -3, 6, -3, 9, -4, 11, -5, 12, -4, 14, -3, 16, -3, 14, -2, 14, 7, -128, -128, 10, -4, 13, -2, 13, 6, -128, -128, 9, -4, 10, -3, 12, -2, 12, 7, 3, -5, 4, -3, 4, 6, 2, 7, 4, 7, 4, 16, -128, -128, 4, -4, 5, -3, 5, 15, 6, 14, 5, 12, -128, -128, 5, 7, 6, 7, 8, 8, -128, -128, 3, -5, 5, -4, 6, -3, 6, 6, 8, 7, 9, 8, -128, -128, 6, 8, 7, 9, 9, 8, 12, 7, 14, 7, -128, -128, 6, 8, 6, 12, 7, 14, 4, 16, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 7, -128, -128, 11, -4, 13, -3, 13, 6, -128, -128, 9, -3, 10, -3, 12, -2, 12, 7, 4, -3, 4, 6, 2, 7, -128, -128, 5, -2, 5, 7, 7, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 7, -128, -128, 2, 7, 3, 7, 5, 8, 6, 9, 7, 8, 9, 7, 12, 6, -128, -128, 4, -3, 6, -3, 9, -4, 11, -5, 12, -4, 14, -3, 16, -3, 14, -2, 14, 16, -128, -128, 10, -4, 13, -2, 13, 15, 12, 14, 13, 12, -128, -128, 9, -4, 10, -3, 12, -2, 12, 12, 11, 14, 14, 16, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 3, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 6, -3, 10, -5, 11, -4, 13, -3, 14, -3, -128, -128, 9, -4, 10, -3, 12, -3, -128, -128, 8, -4, 10, -2, 12, -2, 14, -3, 3, -3, 3, 1, 5, 2, 11, 2, 13, 3, 13, 7, -128, -128, 4, -3, 4, 1, -128, -128, 12, 3, 12, 7, -128, -128, 6, -4, 5, -3, 5, 1, 7, 2, -128, -128, 9, 2, 11, 3, 11, 7, 10, 8, -128, -128, 3, -3, 6, -4, 8, -5, 10, -4, 12, -4, 13, -5, -128, -128, 7, -4, 9, -4, -128, -128, 6, -4, 8, -3, 10, -3, 12, -4, -128, -128, 13, 7, 10, 8, 8, 9, 6, 8, 4, 8, 2, 9, -128, -128, 9, 8, 7, 8, -128, -128, 10, 8, 8, 7, 5, 7, 2, 9, -128, -128, 13, -5, 12, -3, 10, 0, 5, 5, 2, 9, 3, -10, 4, -8, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -8, 4, -10, 5, -11, 5, 7, 7, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 1, -5, 4, -5, -128, -128, 6, -5, 9, -5, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, -128, -128, 3, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 9, 7, -128, -128, 2, 7, 3, 7, 5, 8, 6, 9, 7, 8, 9, 7, 12, 6, -128, -128, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 6, 15, 7, 16, 7, -128, -128, 11, -4, 13, -3, 13, 7, 14, 8, -128, -128, 12, -5, 10, -3, 12, -2, 12, 7, 14, 9, 16, 7, 3, -5, 4, -3, 4, 6, 7, 9, 9, 7, 12, 6, 14, 6, -128, -128, 4, -4, 5, -3, 5, 6, 8, 8, -128, -128, 3, -5, 5, -4, 6, -3, 6, 5, 7, 6, 9, 7, -128, -128, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 6, -128, -128, 11, -4, 13, -3, 13, 5, -128, -128, 12, -5, 10, -3, 12, -2, 12, 6, 3, -5, 4, -3, 4, 6, 7, 9, 9, 7, 12, 6, -128, -128, 4, -4, 5, -3, 5, 6, 8, 8, -128, -128, 3, -5, 5, -4, 6, -3, 6, 5, 7, 6, 9, 7, -128, -128, 12, -5, 10, -3, 12, -2, 12, 6, 15, 9, 17, 7, 20, 6, 22, 6, -128, -128, 11, -4, 13, -3, 13, 6, 16, 8, -128, -128, 12, -5, 13, -4, 15, -3, 14, -2, 14, 5, 15, 6, 17, 7, -128, -128, 20, -5, 21, -4, 23, -3, 24, -3, 22, -2, 22, 6, -128, -128, 19, -4, 21, -3, 21, 5, -128, -128, 20, -5, 18, -3, 20, -2, 20, 6, 3, -3, 4, -3, 6, -2, 7, -1, 11, 7, 12, 8, 14, 9, 16, 7, -128, -128, 5, -4, 7, -3, 12, 7, 14, 8, -128, -128, 3, -3, 5, -5, 7, -4, 8, -3, 12, 5, 13, 6, 15, 7, 16, 7, -128, -128, 10, 1, 13, -5, 14, -4, 16, -4, 17, -5, -128, -128, 13, -4, 14, -3, 15, -3, -128, -128, 12, -3, 14, -2, 16, -3, 17, -5, -128, -128, 9, 3, 6, 9, 5, 8, 3, 8, 2, 9, -128, -128, 6, 8, 5, 7, 4, 7, -128, -128, 7, 7, 5, 6, 3, 7, 2, 9, -128, -128, 5, 2, 8, 2, -128, -128, 11, 2, 14, 2, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, -128, -128, 3, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 9, 7, -128, -128, 2, 7, 3, 7, 5, 8, 6, 9, 7, 8, 9, 7, 12, 6, -128, -128, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 10, 13, 13, 11, 15, 9, 16, 8, 15, 6, 14, 4, 14, -128, -128, 11, -4, 13, -3, 13, 10, -128, -128, 10, 15, 8, 14, 7, 14, -128, -128, 12, -5, 10, -3, 12, -2, 12, 8, 13, 11, 13, 13, -128, -128, 11, 15, 10, 14, 8, 13, 6, 13, 4, 14, 15, -5, 3, 9, -128, -128, 3, -3, 5, -2, 8, -2, 11, -3, 15, -5, -128, -128, 4, -4, 6, -3, 10, -3, -128, -128, 3, -3, 5, -5, 7, -4, 11, -4, 15, -5, -128, -128, 3, 9, 7, 7, 10, 6, 13, 6, 15, 7, -128, -128, 8, 7, 12, 7, 14, 8, -128, -128, 3, 9, 7, 8, 11, 8, 13, 9, 15, 7, -128, -128, 5, 2, 13, 2, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 6, -12, 4, -11, 3, -9, 3, -7, 4, -5, 6, -4, 8, -4, 10, -5, 11, -7, 11, -9, 10, -11, 8, -12, 6, -12, -128, -128, 6, -12, 3, -9, 4, -5, 8, -4, 11, -7, 10, -11, 6, -12, -128, -128, 8, -12, 4, -11, 3, -7, 6, -4, 10, -5, 11, -9, 8, -12 -}; - -static const hershey_font_t gothgbt { - .chars = { - {.width=16, .vertex_count=0, .vertices=&gothgbt_vertices[0]}, - {.width=12, .vertex_count=29, .vertices=&gothgbt_vertices[0]}, - {.width=18, .vertex_count=21, .vertices=&gothgbt_vertices[58]}, - {.width=21, .vertex_count=11, .vertices=&gothgbt_vertices[100]}, - {.width=20, .vertex_count=59, .vertices=&gothgbt_vertices[122]}, - {.width=24, .vertex_count=31, .vertices=&gothgbt_vertices[240]}, - {.width=26, .vertex_count=61, .vertices=&gothgbt_vertices[302]}, - {.width=12, .vertex_count=13, .vertices=&gothgbt_vertices[424]}, - {.width=14, .vertex_count=26, .vertices=&gothgbt_vertices[450]}, - {.width=14, .vertex_count=26, .vertices=&gothgbt_vertices[502]}, - {.width=16, .vertex_count=38, .vertices=&gothgbt_vertices[554]}, - {.width=25, .vertex_count=15, .vertices=&gothgbt_vertices[630]}, - {.width=12, .vertex_count=13, .vertices=&gothgbt_vertices[660]}, - {.width=25, .vertex_count=7, .vertices=&gothgbt_vertices[686]}, - {.width=12, .vertex_count=10, .vertices=&gothgbt_vertices[700]}, - {.width=23, .vertex_count=7, .vertices=&gothgbt_vertices[720]}, - {.width=20, .vertex_count=41, .vertices=&gothgbt_vertices[734]}, - {.width=20, .vertex_count=26, .vertices=&gothgbt_vertices[816]}, - {.width=20, .vertex_count=47, .vertices=&gothgbt_vertices[868]}, - {.width=20, .vertex_count=56, .vertices=&gothgbt_vertices[962]}, - {.width=20, .vertex_count=40, .vertices=&gothgbt_vertices[1074]}, - {.width=20, .vertex_count=52, .vertices=&gothgbt_vertices[1154]}, - {.width=20, .vertex_count=58, .vertices=&gothgbt_vertices[1258]}, - {.width=20, .vertex_count=37, .vertices=&gothgbt_vertices[1374]}, - {.width=20, .vertex_count=70, .vertices=&gothgbt_vertices[1448]}, - {.width=20, .vertex_count=59, .vertices=&gothgbt_vertices[1588]}, - {.width=12, .vertex_count=21, .vertices=&gothgbt_vertices[1706]}, - {.width=12, .vertex_count=24, .vertices=&gothgbt_vertices[1748]}, - {.width=24, .vertex_count=3, .vertices=&gothgbt_vertices[1796]}, - {.width=25, .vertex_count=15, .vertices=&gothgbt_vertices[1802]}, - {.width=24, .vertex_count=3, .vertices=&gothgbt_vertices[1832]}, - {.width=18, .vertex_count=50, .vertices=&gothgbt_vertices[1838]}, - {.width=27, .vertex_count=55, .vertices=&gothgbt_vertices[1938]}, - {.width=22, .vertex_count=59, .vertices=&gothgbt_vertices[2048]}, - {.width=24, .vertex_count=109, .vertices=&gothgbt_vertices[2166]}, - {.width=24, .vertex_count=68, .vertices=&gothgbt_vertices[2384]}, - {.width=23, .vertex_count=71, .vertices=&gothgbt_vertices[2520]}, - {.width=22, .vertex_count=93, .vertices=&gothgbt_vertices[2662]}, - {.width=23, .vertex_count=90, .vertices=&gothgbt_vertices[2848]}, - {.width=25, .vertex_count=86, .vertices=&gothgbt_vertices[3028]}, - {.width=24, .vertex_count=111, .vertices=&gothgbt_vertices[3200]}, - {.width=19, .vertex_count=66, .vertices=&gothgbt_vertices[3422]}, - {.width=20, .vertex_count=64, .vertices=&gothgbt_vertices[3554]}, - {.width=24, .vertex_count=114, .vertices=&gothgbt_vertices[3682]}, - {.width=22, .vertex_count=84, .vertices=&gothgbt_vertices[3910]}, - {.width=28, .vertex_count=106, .vertices=&gothgbt_vertices[4078]}, - {.width=25, .vertex_count=83, .vertices=&gothgbt_vertices[4290]}, - {.width=26, .vertex_count=78, .vertices=&gothgbt_vertices[4456]}, - {.width=22, .vertex_count=69, .vertices=&gothgbt_vertices[4612]}, - {.width=26, .vertex_count=98, .vertices=&gothgbt_vertices[4750]}, - {.width=24, .vertex_count=107, .vertices=&gothgbt_vertices[4946]}, - {.width=23, .vertex_count=93, .vertices=&gothgbt_vertices[5160]}, - {.width=24, .vertex_count=70, .vertices=&gothgbt_vertices[5346]}, - {.width=24, .vertex_count=88, .vertices=&gothgbt_vertices[5486]}, - {.width=23, .vertex_count=71, .vertices=&gothgbt_vertices[5662]}, - {.width=27, .vertex_count=94, .vertices=&gothgbt_vertices[5804]}, - {.width=22, .vertex_count=64, .vertices=&gothgbt_vertices[5992]}, - {.width=23, .vertex_count=85, .vertices=&gothgbt_vertices[6120]}, - {.width=20, .vertex_count=56, .vertices=&gothgbt_vertices[6290]}, - {.width=14, .vertex_count=11, .vertices=&gothgbt_vertices[6402]}, - {.width=14, .vertex_count=2, .vertices=&gothgbt_vertices[6424]}, - {.width=14, .vertex_count=11, .vertices=&gothgbt_vertices[6428]}, - {.width=16, .vertex_count=10, .vertices=&gothgbt_vertices[6450]}, - {.width=16, .vertex_count=2, .vertices=&gothgbt_vertices[6470]}, - {.width=12, .vertex_count=13, .vertices=&gothgbt_vertices[6474]}, - {.width=17, .vertex_count=52, .vertices=&gothgbt_vertices[6500]}, - {.width=18, .vertex_count=43, .vertices=&gothgbt_vertices[6604]}, - {.width=14, .vertex_count=34, .vertices=&gothgbt_vertices[6690]}, - {.width=17, .vertex_count=40, .vertices=&gothgbt_vertices[6758]}, - {.width=14, .vertex_count=31, .vertices=&gothgbt_vertices[6838]}, - {.width=13, .vertex_count=40, .vertices=&gothgbt_vertices[6900]}, - {.width=18, .vertex_count=55, .vertices=&gothgbt_vertices[6980]}, - {.width=18, .vertex_count=46, .vertices=&gothgbt_vertices[7090]}, - {.width=10, .vertex_count=34, .vertices=&gothgbt_vertices[7182]}, - {.width=10, .vertex_count=38, .vertices=&gothgbt_vertices[7250]}, - {.width=17, .vertex_count=49, .vertices=&gothgbt_vertices[7326]}, - {.width=10, .vertex_count=21, .vertices=&gothgbt_vertices[7424]}, - {.width=26, .vertex_count=66, .vertices=&gothgbt_vertices[7466]}, - {.width=18, .vertex_count=44, .vertices=&gothgbt_vertices[7598]}, - {.width=18, .vertex_count=39, .vertices=&gothgbt_vertices[7686]}, - {.width=18, .vertex_count=53, .vertices=&gothgbt_vertices[7764]}, - {.width=18, .vertex_count=43, .vertices=&gothgbt_vertices[7870]}, - {.width=14, .vertex_count=37, .vertices=&gothgbt_vertices[7956]}, - {.width=16, .vertex_count=58, .vertices=&gothgbt_vertices[8030]}, - {.width=10, .vertex_count=27, .vertices=&gothgbt_vertices[8146]}, - {.width=18, .vertex_count=46, .vertices=&gothgbt_vertices[8200]}, - {.width=18, .vertex_count=35, .vertices=&gothgbt_vertices[8292]}, - {.width=26, .vertex_count=56, .vertices=&gothgbt_vertices[8362]}, - {.width=19, .vertex_count=58, .vertices=&gothgbt_vertices[8474]}, - {.width=18, .vertex_count=59, .vertices=&gothgbt_vertices[8590]}, - {.width=18, .vertex_count=37, .vertices=&gothgbt_vertices[8708]}, - {.width=14, .vertex_count=39, .vertices=&gothgbt_vertices[8782]}, - {.width=8, .vertex_count=2, .vertices=&gothgbt_vertices[8860]}, - {.width=14, .vertex_count=39, .vertices=&gothgbt_vertices[8864]}, - {.width=24, .vertex_count=23, .vertices=&gothgbt_vertices[8942]} - } -}; - -static const int8_t scriptc_vertices[5530] = { - 8, -12, 7, -11, 5, 1, -128, -128, 8, -11, 5, 1, -128, -128, 8, -12, 9, -11, 5, 1, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 7, -12, 5, -5, -128, -128, 8, -12, 5, -5, -128, -128, 16, -12, 14, -5, -128, -128, 17, -12, 14, -5, 11, -12, 4, 16, -128, -128, 17, -12, 10, 16, -128, -128, 4, -1, 18, -1, -128, -128, 3, 5, 17, 5, 12, -16, 4, 13, -128, -128, 17, -16, 9, 13, -128, -128, 18, -8, 17, -7, 18, -6, 19, -7, 19, -8, 18, -10, 17, -11, 14, -12, 10, -12, 7, -11, 5, -9, 5, -7, 6, -5, 7, -4, 14, 0, 16, 2, -128, -128, 5, -7, 7, -5, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 23, -4, 22, -3, 23, -2, 24, -3, 24, -4, 23, -5, 22, -5, 20, -4, 18, -2, 13, 6, 11, 8, 9, 9, 6, 9, 3, 8, 2, 6, 2, 4, 3, 2, 4, 1, 6, 0, 11, -2, 13, -3, 15, -5, 16, -7, 16, -9, 15, -11, 13, -12, 11, -11, 10, -9, 10, -6, 11, 0, 12, 3, 14, 6, 16, 8, 18, 9, 20, 9, 21, 7, 21, 6, -128, -128, 6, 9, 4, 8, 3, 6, 3, 4, 4, 2, 5, 1, 11, -2, -128, -128, 10, -6, 11, -1, 12, 2, 14, 5, 16, 7, 18, 8, 20, 8, 21, 7, 8, -10, 7, -11, 8, -12, 9, -11, 9, -10, 8, -8, 6, -6, 15, -16, 11, -13, 8, -10, 6, -7, 4, -3, 3, 2, 3, 6, 4, 11, 5, 14, 6, 16, -128, -128, 11, -13, 8, -9, 6, -5, 5, -2, 4, 3, 4, 8, 5, 13, 6, 16, 9, -16, 10, -14, 11, -11, 12, -6, 12, -2, 11, 3, 9, 7, 7, 10, 4, 13, 0, 16, -128, -128, 9, -16, 10, -13, 11, -8, 11, -3, 10, 2, 9, 5, 7, 9, 4, 13, 10, -12, 10, 0, -128, -128, 5, -9, 15, -3, -128, -128, 15, -9, 5, -3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 4, 0, 22, 0, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 24, -16, -2, 16, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 16, -11, 14, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 9, 9, 11, 8, 13, 6, 15, 3, 16, 0, 17, -4, 17, -7, 16, -10, 14, -12, 12, -8, 7, 9, -128, -128, 14, -12, 8, 9, -128, -128, 14, -12, 11, -9, 8, -7, 6, -6, -128, -128, 13, -9, 9, -7, 6, -6, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 15, -3, 12, -1, 8, 1, 5, 3, 3, 5, 1, 9, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, 8, 1, -128, -128, 2, 7, 3, 6, 5, 6, 10, 8, 13, 8, 15, 7, 16, 5, -128, -128, 5, 6, 10, 9, 13, 9, 15, 8, 16, 5, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 14, -3, 11, -2, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, -128, -128, 9, -2, 11, -2, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -2, 13, -1, 14, 0, 15, 2, 15, 5, 14, 7, 13, 8, 11, 9, 16, -11, 10, 9, -128, -128, 17, -12, 11, 9, -128, -128, 17, -12, 2, 3, 18, 3, 9, -12, 4, -2, -128, -128, 9, -12, 19, -12, -128, -128, 9, -11, 14, -11, 19, -12, -128, -128, 4, -2, 5, -3, 8, -4, 11, -4, 14, -3, 15, -2, 16, 0, 16, 3, 15, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -4, 13, -3, 14, -2, 15, 0, 15, 3, 14, 6, 12, 8, 10, 9, 17, -9, 16, -8, 17, -7, 18, -8, 18, -9, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 5, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 16, 4, 16, 1, 15, -1, 14, -2, 12, -3, 9, -3, 7, -2, 5, 0, 4, 2, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 6, 5, 8, -128, -128, 10, 9, 12, 8, 14, 6, 15, 4, 15, 0, 14, -2, 6, -12, 4, -6, -128, -128, 19, -12, 18, -9, 16, -6, 11, 0, 9, 3, 8, 5, 7, 9, -128, -128, 16, -6, 10, 0, 8, 3, 7, 5, 6, 9, -128, -128, 5, -9, 8, -12, 10, -12, 15, -9, -128, -128, 6, -10, 8, -11, 10, -11, 15, -9, 17, -9, 18, -10, 19, -12, 11, -12, 8, -11, 7, -10, 6, -8, 6, -5, 7, -3, 9, -2, 12, -2, 16, -3, 17, -4, 18, -6, 18, -9, 17, -11, 14, -12, 11, -12, -128, -128, 11, -12, 9, -11, 8, -10, 7, -8, 7, -5, 8, -3, 9, -2, -128, -128, 12, -2, 15, -3, 16, -4, 17, -6, 17, -9, 16, -11, 14, -12, -128, -128, 9, -2, 5, -1, 3, 1, 2, 3, 2, 6, 3, 8, 6, 9, 10, 9, 14, 8, 15, 7, 16, 5, 16, 2, 15, 0, 14, -1, 12, -2, -128, -128, 9, -2, 6, -1, 4, 1, 3, 3, 3, 6, 4, 8, 6, 9, -128, -128, 10, 9, 13, 8, 14, 7, 15, 5, 15, 1, 14, -1, 17, -5, 16, -3, 14, -1, 12, 0, 9, 0, 7, -1, 6, -2, 5, -4, 5, -7, 6, -9, 8, -11, 11, -12, 14, -12, 16, -11, 17, -10, 18, -8, 18, -4, 17, 0, 16, 3, 14, 6, 12, 8, 9, 9, 6, 9, 4, 8, 3, 6, 3, 5, 4, 4, 5, 5, 4, 6, -128, -128, 7, -1, 6, -3, 6, -7, 7, -9, 9, -11, 11, -12, -128, -128, 16, -11, 17, -9, 17, -4, 16, 0, 15, 3, 13, 6, 11, 8, 9, 9, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 15, -12, 18, -11, 19, -9, 19, -7, 18, -5, 17, -4, 11, -2, 9, -1, 9, 1, 10, 2, 12, 2, -128, -128, 15, -12, 17, -11, 18, -9, 18, -7, 17, -5, 16, -4, 14, -3, -128, -128, 8, 7, 7, 8, 8, 9, 9, 8, 8, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 19, -12, 17, -10, 15, -7, 12, -2, 10, 1, 7, 5, 4, 8, 2, 9, 0, 9, -1, 8, -1, 6, 0, 5, 1, 6, 0, 7, -128, -128, 19, -12, 18, -8, 16, 2, 15, 9, -128, -128, 19, -12, 16, 9, -128, -128, 15, 9, 15, 7, 14, 4, 13, 2, 11, 0, 9, -1, 7, -1, 6, 0, 6, 2, 7, 5, 10, 8, 13, 9, 17, 9, 19, 8, 15, -11, 14, -10, 13, -8, 11, -3, 9, 3, 8, 5, 6, 8, 4, 9, -128, -128, 14, -10, 13, -7, 11, 1, 10, 4, 9, 6, 7, 8, 4, 9, 2, 9, 1, 8, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 9, -6, 8, -4, 7, -3, 5, -3, 4, -4, 4, -6, 5, -8, 7, -10, 9, -11, 12, -12, 18, -12, 20, -11, 21, -9, 21, -7, 20, -5, 18, -4, 14, -3, 12, -3, -128, -128, 18, -12, 19, -11, 20, -9, 20, -7, 19, -5, 18, -4, -128, -128, 14, -3, 17, -2, 18, -1, 19, 1, 19, 4, 18, 7, 17, 8, 15, 9, 13, 9, 12, 8, 12, 6, 13, 3, -128, -128, 14, -3, 16, -2, 17, -1, 18, 1, 18, 4, 17, 7, 15, 9, 3, -10, 2, -8, 2, -6, 3, -4, 6, -3, 9, -3, 13, -4, 15, -5, 17, -7, 18, -9, 18, -11, 17, -12, 15, -12, 12, -11, 9, -8, 7, -5, 5, -1, 4, 3, 4, 6, 5, 8, 8, 9, 10, 9, 13, 8, 15, 6, 16, 4, 16, 2, 15, 0, 13, 0, 11, 1, 10, 3, -128, -128, 15, -12, 13, -11, 10, -8, 8, -5, 6, -1, 5, 3, 5, 6, 6, 8, 8, 9, 15, -11, 14, -10, 13, -8, 11, -3, 9, 3, 8, 5, 6, 8, 4, 9, -128, -128, 14, -10, 13, -7, 11, 1, 10, 4, 9, 6, 7, 8, 4, 9, 2, 9, 1, 8, 1, 6, 2, 5, 4, 5, 6, 6, 8, 8, 10, 9, 13, 9, 15, 8, 17, 6, 19, 2, 20, -3, 20, -6, 19, -9, 17, -11, 15, -12, 10, -12, 7, -11, 5, -9, 4, -7, 4, -5, 5, -4, 7, -4, 8, -5, 9, -7, 14, -9, 13, -8, 13, -6, 14, -5, 16, -5, 17, -7, 17, -9, 16, -11, 14, -12, 11, -12, 9, -11, 8, -10, 7, -8, 7, -6, 8, -4, 10, -3, -128, -128, 11, -12, 9, -10, 8, -8, 8, -5, 10, -3, -128, -128, 10, -3, 8, -3, 5, -2, 3, 0, 2, 2, 2, 5, 3, 7, 4, 8, 6, 9, 9, 9, 12, 8, 14, 6, 15, 4, 15, 2, 14, 0, 12, 0, 10, 1, 9, 3, -128, -128, 8, -3, 6, -2, 4, 0, 3, 2, 3, 6, 4, 8, 16, -10, 15, -8, 13, -3, 11, 3, 10, 5, 8, 8, 6, 9, -128, -128, 10, -6, 9, -4, 7, -3, 5, -3, 4, -5, 4, -7, 5, -9, 7, -11, 10, -12, 20, -12, 17, -11, 16, -10, 15, -7, 13, 1, 12, 4, 11, 6, 9, 8, 6, 9, 4, 9, 2, 8, 1, 7, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 12, -12, 16, -11, 17, -11, -128, -128, 8, 1, 9, 0, 11, -1, 15, -1, 17, -2, 19, -5, 17, 2, 3, -9, 2, -7, 2, -5, 3, -3, 5, -2, 8, -2, 11, -3, 13, -4, 16, -7, 17, -10, 17, -11, 16, -12, 15, -12, 13, -11, 11, -9, 10, -7, 9, -4, 9, -1, 10, 1, 12, 2, 14, 2, 16, 1, 18, -1, 19, -3, -128, -128, 16, -12, 14, -11, 12, -9, 11, -7, 10, -4, 10, 0, 12, 2, -128, -128, 19, -3, 18, 1, 16, 5, 14, 7, 12, 8, 8, 9, 5, 9, 3, 8, 2, 6, 2, 5, 3, 4, 4, 5, 3, 6, -128, -128, 18, 1, 16, 4, 14, 6, 11, 8, 8, 9, 6, -6, 5, -7, 5, -9, 6, -11, 9, -12, 12, -12, 9, -1, 7, 5, 6, 7, 5, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 2, 6, 1, 7, -128, -128, 12, -12, 9, -3, 8, 0, 6, 5, 5, 7, 3, 9, -128, -128, 4, 2, 5, 1, 7, 0, 16, -3, 18, -4, 21, -6, 23, -8, 24, -10, 24, -11, 23, -12, 22, -12, 20, -11, 18, -8, 17, -6, 15, 0, 14, 4, 14, 7, 16, 9, 17, 9, 19, 8, 21, 6, -128, -128, 22, -12, 20, -10, 18, -6, 16, 0, 15, 4, 15, 7, 16, 9, 14, -10, 12, -7, 10, -2, 8, 3, 7, 5, 5, 8, 3, 9, -128, -128, 16, -6, 14, -4, 11, -3, 8, -3, 6, -4, 5, -6, 5, -8, 6, -10, 8, -11, 12, -12, 16, -12, 14, -10, 13, -8, 11, -2, 9, 4, 8, 6, 6, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 2, 6, 1, 7, 16, -12, 14, -10, 12, -7, 10, -2, 7, 7, 5, 11, -128, -128, 16, -5, 14, -3, 11, -2, 8, -2, 6, -3, 5, -5, 5, -7, 6, -9, 8, -11, 12, -12, 16, -12, 14, -9, 13, -7, 10, 2, 8, 6, 7, 8, 5, 11, 4, 12, 2, 13, 1, 12, 1, 10, 2, 8, 4, 6, 6, 5, 9, 4, 13, 3, 6, -6, 5, -7, 5, -9, 7, -11, 10, -12, 12, -12, 9, -1, 7, 5, 6, 7, 5, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 2, 6, 1, 7, -128, -128, 12, -12, 9, -3, 8, 0, 6, 5, 5, 7, 3, 9, -128, -128, 20, -11, 17, -7, 15, -5, 13, -4, 10, -3, -128, -128, 23, -11, 22, -10, 23, -9, 24, -10, 24, -11, 23, -12, 22, -12, 20, -11, 17, -6, 16, -5, 14, -4, 10, -3, -128, -128, 10, -3, 13, -2, 14, 0, 15, 7, 16, 9, -128, -128, 10, -3, 12, -2, 13, 0, 14, 7, 16, 9, 17, 9, 19, 8, 21, 6, 4, -9, 3, -7, 3, -5, 4, -3, 6, -2, 9, -2, 12, -3, 14, -4, 17, -7, 18, -10, 18, -11, 17, -12, 16, -12, 14, -11, 13, -10, 11, -7, 7, 3, 6, 5, 4, 8, 2, 9, -128, -128, 13, -10, 11, -6, 9, 1, 8, 4, 7, 6, 5, 8, 2, 9, 0, 9, -1, 8, -1, 6, 0, 5, 2, 5, 4, 6, 7, 8, 9, 9, 12, 9, 14, 8, 16, 6, 14, -12, 10, -3, 7, 3, 5, 6, 3, 8, 1, 9, -1, 9, -2, 8, -2, 6, -1, 5, 0, 6, -1, 7, -128, -128, 14, -12, 12, -5, 11, -1, 10, 4, 10, 8, 12, 9, -128, -128, 14, -12, 13, -8, 12, -3, 11, 4, 11, 8, 12, 9, -128, -128, 23, -12, 19, -3, 14, 6, 12, 9, -128, -128, 23, -12, 21, -5, 20, -1, 19, 4, 19, 8, 21, 9, 22, 9, 24, 8, 26, 6, -128, -128, 23, -12, 22, -8, 21, -3, 20, 4, 20, 8, 21, 9, 11, -12, 10, -8, 8, -2, 6, 3, 5, 5, 3, 8, 1, 9, -1, 9, -2, 8, -2, 6, -1, 5, 0, 6, -1, 7, -128, -128, 11, -12, 11, -7, 12, 4, 13, 9, -128, -128, 11, -12, 12, -7, 13, 4, 13, 9, -128, -128, 25, -11, 24, -10, 25, -9, 26, -10, 26, -11, 25, -12, 23, -12, 21, -11, 19, -8, 18, -6, 16, -1, 14, 5, 13, 9, 11, -12, 9, -11, 7, -9, 5, -6, 4, -4, 3, 0, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 1, 18, -3, 18, -7, 17, -10, 16, -11, 15, -11, 13, -10, 11, -8, 9, -4, 8, 1, 8, 4, -128, -128, 9, -11, 7, -8, 5, -4, 4, 0, 4, 4, 5, 7, 7, 9, 15, -11, 14, -10, 13, -8, 11, -3, 9, 3, 8, 5, 6, 8, 4, 9, -128, -128, 14, -10, 13, -7, 11, 1, 10, 4, 9, 6, 7, 8, 4, 9, 2, 9, 1, 8, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 9, -6, 8, -4, 7, -3, 5, -3, 4, -4, 4, -6, 5, -8, 7, -10, 9, -11, 12, -12, 16, -12, 19, -11, 20, -10, 21, -8, 21, -5, 20, -3, 19, -2, 16, -1, 14, -1, 12, -2, -128, -128, 16, -12, 18, -11, 19, -10, 20, -8, 20, -5, 19, -3, 18, -2, 16, -1, 13, -8, 13, -6, 12, -4, 11, -3, 9, -2, 7, -2, 6, -4, 6, -6, 7, -9, 9, -11, 12, -12, 15, -12, 17, -11, 18, -9, 18, -5, 17, -2, 15, 1, 11, 5, 8, 7, 6, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 3, 5, 5, 6, 8, 8, 11, 9, 14, 9, 16, 8, 18, 6, -128, -128, 15, -12, 16, -11, 17, -9, 17, -5, 16, -2, 14, 1, 11, 4, 7, 7, 3, 9, 15, -11, 14, -10, 13, -8, 11, -3, 9, 3, 8, 5, 6, 8, 4, 9, -128, -128, 14, -10, 13, -7, 11, 1, 10, 4, 9, 6, 7, 8, 4, 9, 2, 9, 1, 8, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 9, -6, 8, -4, 7, -3, 5, -3, 4, -4, 4, -6, 5, -8, 7, -10, 9, -11, 12, -12, 17, -12, 20, -11, 21, -9, 21, -7, 20, -5, 19, -4, 16, -3, 12, -3, -128, -128, 17, -12, 19, -11, 20, -9, 20, -7, 19, -5, 18, -4, 16, -3, -128, -128, 12, -3, 15, -2, 16, 0, 17, 7, 18, 9, -128, -128, 12, -3, 14, -2, 15, 0, 16, 7, 18, 9, 19, 9, 21, 8, 23, 6, 6, -9, 5, -7, 5, -5, 6, -3, 8, -2, 11, -2, 14, -3, 16, -4, 19, -7, 20, -10, 20, -11, 19, -12, 18, -12, 16, -11, 15, -10, 14, -8, 13, -5, 11, 2, 10, 5, 8, 8, 6, 9, -128, -128, 14, -8, 13, -4, 12, 3, 11, 6, 9, 8, 6, 9, 3, 9, 1, 8, 0, 6, 0, 5, 1, 4, 2, 5, 1, 6, 16, -10, 15, -8, 13, -3, 11, 3, 10, 5, 8, 8, 6, 9, -128, -128, 10, -6, 9, -4, 7, -3, 5, -3, 4, -5, 4, -7, 5, -9, 7, -11, 10, -12, 19, -12, 17, -11, 16, -10, 15, -7, 13, 1, 12, 4, 11, 6, 9, 8, 6, 9, 4, 9, 2, 8, 1, 7, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 12, -12, 16, -11, 17, -11, 1, -8, 3, -11, 5, -12, 6, -12, 8, -10, 8, -7, 7, -4, 4, 4, 4, 7, 5, 9, -128, -128, 6, -12, 7, -10, 7, -7, 4, 1, 3, 4, 3, 7, 5, 9, 7, 9, 9, 8, 12, 5, 14, 2, 15, 0, -128, -128, 19, -12, 15, 0, 14, 4, 14, 7, 16, 9, 17, 9, 19, 8, 21, 6, -128, -128, 20, -12, 16, 0, 15, 4, 15, 7, 16, 9, 1, -8, 3, -11, 5, -12, 6, -12, 8, -10, 8, -7, 7, -3, 5, 4, 5, 7, 6, 9, -128, -128, 6, -12, 7, -10, 7, -7, 5, 0, 4, 4, 4, 7, 6, 9, 7, 9, 10, 8, 13, 5, 15, 2, 17, -2, 18, -5, 19, -9, 19, -11, 18, -12, 17, -12, 16, -11, 15, -9, 15, -6, 16, -4, 18, -2, 20, -1, 22, -1, 3, -6, 2, -6, 1, -7, 1, -9, 2, -11, 4, -12, 8, -12, 7, -10, 6, -6, 5, 3, 4, 9, -128, -128, 6, -6, 6, 3, 5, 9, -128, -128, 16, -12, 14, -10, 12, -6, 9, 3, 7, 7, 5, 9, -128, -128, 16, -12, 15, -10, 14, -6, 13, 3, 12, 9, -128, -128, 14, -6, 14, 3, 13, 9, -128, -128, 26, -12, 24, -11, 22, -9, 20, -6, 17, 3, 15, 7, 13, 9, 8, -7, 7, -6, 5, -6, 4, -7, 4, -9, 5, -11, 7, -12, 9, -12, 11, -11, 12, -9, 12, -6, 11, -2, 9, 3, 7, 6, 5, 8, 2, 9, 0, 9, -1, 8, -1, 6, 0, 5, 1, 6, 0, 7, -128, -128, 9, -12, 10, -11, 11, -9, 11, -6, 10, -2, 8, 3, 6, 6, 4, 8, 2, 9, -128, -128, 21, -11, 20, -10, 21, -9, 22, -10, 22, -11, 21, -12, 19, -12, 17, -11, 15, -9, 13, -6, 11, -2, 10, 3, 10, 6, 11, 8, 12, 9, 13, 9, 15, 8, 17, 6, 3, -8, 5, -11, 7, -12, 8, -12, 10, -11, 10, -9, 8, -3, 8, 0, 9, 2, -128, -128, 8, -12, 9, -11, 9, -9, 7, -3, 7, 0, 9, 2, 11, 2, 14, 1, 16, -1, 18, -4, 19, -6, -128, -128, 21, -12, 19, -6, 16, 2, 14, 6, -128, -128, 22, -12, 20, -6, 18, -1, 16, 3, 14, 6, 12, 8, 9, 9, 5, 9, 3, 8, 2, 6, 2, 5, 3, 4, 4, 5, 3, 6, 19, -10, 18, -8, 16, -3, 15, 0, 14, 2, 12, 5, 10, 7, 8, 8, 5, 9, -128, -128, 12, -6, 11, -4, 9, -3, 7, -3, 6, -5, 6, -7, 7, -9, 9, -11, 12, -12, 22, -12, 20, -11, 19, -10, 18, -7, 17, -3, 15, 3, 13, 6, 10, 8, 5, 9, 1, 9, 0, 8, 0, 6, 1, 5, 3, 5, 5, 6, 8, 8, 10, 9, 13, 9, 16, 8, 18, 6, -128, -128, 15, -12, 19, -11, 20, -11, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 6, -6, 8, -9, 10, -6, -128, -128, 3, -3, 8, -8, 13, -3, -128, -128, 8, -8, 8, 9, 0, 11, 16, 11, 9, -12, 7, -10, 6, -8, 6, -7, 7, -6, 8, -7, 7, -8, 10, 3, 9, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, 9, 6, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, -128, -128, 11, 0, 9, 6, 9, 8, 11, 9, 13, 8, 14, 7, 16, 4, -128, -128, 12, 0, 10, 6, 10, 8, 11, 9, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 1, 6, 1, 8, 3, 9, 4, 9, 6, 8, 8, 6, 9, 3, 9, 0, 10, 4, 11, 5, 12, 5, 14, 4, -128, -128, 8, -12, 2, 6, 2, 8, 3, 9, 8, 1, 7, 2, 8, 2, 8, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 7, 9, 10, 7, 12, 4, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, 10, 3, 9, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, 9, 6, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, -128, -128, 15, -12, 9, 6, 9, 8, 11, 9, 13, 8, 14, 7, 16, 4, -128, -128, 16, -12, 10, 6, 10, 8, 11, 9, 3, 7, 5, 6, 6, 5, 7, 3, 7, 1, 6, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 7, 9, 10, 7, 12, 4, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, 3, 0, 6, -3, 8, -6, 9, -9, 9, -11, 8, -12, 6, -11, 5, -9, -4, 18, -4, 20, -3, 21, -1, 20, 0, 17, 1, 8, 2, 9, 4, 9, 6, 8, 7, 7, 9, 4, -128, -128, 5, -9, 4, -4, 3, 0, 0, 9, -2, 14, -4, 18, 10, 3, 9, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, 9, 6, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, -128, -128, 11, 0, 5, 18, -128, -128, 12, 0, 9, 9, 7, 14, 5, 18, 4, 20, 2, 21, 1, 20, 1, 18, 2, 15, 4, 13, 7, 11, 11, 9, 14, 7, 16, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 0, 9, -128, -128, 8, -12, 1, 9, -128, -128, 3, 3, 5, 1, 7, 0, 8, 0, 10, 1, 10, 3, 9, 6, 9, 8, 10, 9, -128, -128, 8, 0, 9, 1, 9, 3, 8, 6, 8, 8, 10, 9, 12, 8, 13, 7, 15, 4, 5, -6, 4, -5, 5, -4, 6, -5, 5, -6, -128, -128, 3, 0, 1, 6, 1, 8, 3, 9, 5, 8, 6, 7, 8, 4, -128, -128, 4, 0, 2, 6, 2, 8, 3, 9, 5, -6, 4, -5, 5, -4, 6, -5, 5, -6, -128, -128, 3, 0, -3, 18, -128, -128, 4, 0, 1, 9, -1, 14, -3, 18, -4, 20, -6, 21, -7, 20, -7, 18, -6, 15, -4, 13, -1, 11, 3, 9, 6, 7, 8, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 0, 9, -128, -128, 8, -12, 1, 9, -128, -128, 9, 0, 9, 1, 10, 1, 9, 0, 8, 0, 6, 2, 3, 3, -128, -128, 3, 3, 6, 4, 7, 8, 8, 9, -128, -128, 3, 3, 5, 4, 6, 8, 8, 9, 9, 9, 12, 7, 14, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 1, 6, 1, 8, 3, 9, 5, 8, 6, 7, 8, 4, -128, -128, 8, -12, 2, 6, 2, 8, 3, 9, 0, 4, 2, 1, 4, 0, 6, 1, 6, 3, 4, 9, -128, -128, 4, 0, 5, 1, 5, 3, 3, 9, -128, -128, 6, 3, 8, 1, 10, 0, 11, 0, 13, 1, 13, 3, 11, 9, -128, -128, 11, 0, 12, 1, 12, 3, 10, 9, -128, -128, 13, 3, 15, 1, 17, 0, 18, 0, 20, 1, 20, 3, 19, 6, 19, 8, 20, 9, -128, -128, 18, 0, 19, 1, 19, 3, 18, 6, 18, 8, 20, 9, 22, 8, 23, 7, 25, 4, 0, 4, 2, 1, 4, 0, 6, 1, 6, 3, 4, 9, -128, -128, 4, 0, 5, 1, 5, 3, 3, 9, -128, -128, 6, 3, 8, 1, 10, 0, 11, 0, 13, 1, 13, 3, 12, 6, 12, 8, 13, 9, -128, -128, 11, 0, 12, 1, 12, 3, 11, 6, 11, 8, 13, 9, 15, 8, 16, 7, 18, 4, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, 9, 7, 10, 5, 10, 3, 9, 1, 7, 0, 6, 1, 6, 3, 7, 5, 9, 6, 11, 6, 13, 5, 14, 4, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, 0, 4, 2, 1, 4, -3, -128, -128, 5, -6, -4, 21, -128, -128, 6, -6, -3, 21, -128, -128, 3, 3, 5, 1, 7, 0, 8, 0, 10, 1, 10, 3, 9, 6, 9, 8, 10, 9, -128, -128, 8, 0, 9, 1, 9, 3, 8, 6, 8, 8, 10, 9, 12, 8, 13, 7, 15, 4, 10, 3, 9, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, -128, -128, 11, 0, 5, 18, 5, 20, 6, 21, 8, 20, 9, 17, 9, 9, 11, 9, 14, 7, 16, 4, -128, -128, 12, 0, 9, 9, 7, 14, 5, 18, 0, 4, 2, 1, 4, 0, 6, 1, 6, 3, 4, 9, -128, -128, 4, 0, 5, 1, 5, 3, 3, 9, -128, -128, 6, 3, 8, 1, 10, 0, 11, 0, 10, 3, -128, -128, 10, 0, 10, 3, 11, 5, 12, 5, 14, 4, 0, 4, 2, 1, 3, -1, 3, 1, 6, 3, 7, 5, 7, 7, 6, 8, 4, 9, -128, -128, 3, 1, 5, 3, 6, 5, 6, 7, 4, 9, -128, -128, 0, 8, 2, 9, 7, 9, 10, 7, 12, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 1, 6, 1, 8, 3, 9, 5, 8, 6, 7, 8, 4, -128, -128, 8, -12, 2, 6, 2, 8, 3, 9, -128, -128, 2, -4, 8, -4, 3, 0, 1, 6, 1, 8, 3, 9, 4, 9, 6, 8, 8, 6, 10, 3, -128, -128, 4, 0, 2, 6, 2, 8, 3, 9, -128, -128, 11, 0, 9, 6, 9, 8, 11, 9, 13, 8, 14, 7, 16, 4, -128, -128, 12, 0, 10, 6, 10, 8, 11, 9, 3, 0, 2, 2, 1, 5, 1, 8, 3, 9, 4, 9, 7, 8, 9, 6, 10, 3, 10, 0, -128, -128, 4, 0, 3, 2, 2, 5, 2, 8, 3, 9, -128, -128, 10, 0, 11, 4, 12, 5, 13, 5, 15, 4, 4, 0, 2, 2, 1, 5, 1, 8, 3, 9, 4, 9, 6, 8, 8, 6, -128, -128, 5, 0, 3, 2, 2, 5, 2, 8, 3, 9, -128, -128, 10, 0, 8, 6, 8, 8, 10, 9, 11, 9, 13, 8, 15, 6, 16, 3, 16, 0, -128, -128, 11, 0, 9, 6, 9, 8, 10, 9, -128, -128, 16, 0, 17, 4, 18, 5, 19, 5, 21, 4, 0, 4, 2, 1, 4, 0, 6, 0, 7, 1, 7, 3, 6, 6, 5, 8, 3, 9, 2, 9, 1, 8, 1, 7, 2, 7, 1, 8, -128, -128, 13, 1, 12, 2, 13, 2, 13, 1, 12, 0, 11, 0, 9, 1, 8, 3, 7, 6, 7, 8, 8, 9, 11, 9, 14, 7, 16, 4, -128, -128, 7, 1, 8, 3, -128, -128, 9, 1, 7, 3, -128, -128, 6, 6, 7, 8, -128, -128, 7, 6, 5, 8, 3, 0, 1, 6, 1, 8, 3, 9, 4, 9, 6, 8, 8, 6, 10, 3, -128, -128, 4, 0, 2, 6, 2, 8, 3, 9, -128, -128, 11, 0, 5, 18, -128, -128, 12, 0, 9, 9, 7, 14, 5, 18, 4, 20, 2, 21, 1, 20, 1, 18, 2, 15, 4, 13, 7, 11, 11, 9, 14, 7, 16, 4, 0, 4, 2, 1, 4, 0, 6, 0, 8, 1, 8, 4, 7, 6, 4, 8, 2, 9, -128, -128, 6, 0, 7, 1, 7, 4, 6, 6, 4, 8, -128, -128, 2, 9, 4, 10, 5, 12, 5, 15, 4, 18, 2, 20, 0, 21, -1, 20, -1, 18, 0, 15, 3, 12, 6, 10, 10, 7, 13, 4, -128, -128, 2, 9, 3, 10, 4, 12, 4, 15, 3, 18, 2, 20, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 8, -12, 6, -11, 5, -9, 5, -7, 6, -5, 8, -4, 10, -4, 12, -5, 13, -7, 13, -9, 12, -11, 10, -12, 8, -12 -}; - -static const hershey_font_t scriptc { - .chars = { - {.width=16, .vertex_count=0, .vertices=&scriptc_vertices[0]}, - {.width=11, .vertex_count=16, .vertices=&scriptc_vertices[0]}, - {.width=18, .vertex_count=11, .vertices=&scriptc_vertices[32]}, - {.width=21, .vertex_count=11, .vertices=&scriptc_vertices[54]}, - {.width=21, .vertex_count=40, .vertices=&scriptc_vertices[76]}, - {.width=24, .vertex_count=31, .vertices=&scriptc_vertices[156]}, - {.width=26, .vertex_count=54, .vertices=&scriptc_vertices[218]}, - {.width=11, .vertex_count=7, .vertices=&scriptc_vertices[326]}, - {.width=15, .vertex_count=19, .vertices=&scriptc_vertices[340]}, - {.width=15, .vertex_count=19, .vertices=&scriptc_vertices[378]}, - {.width=17, .vertex_count=8, .vertices=&scriptc_vertices[416]}, - {.width=26, .vertex_count=5, .vertices=&scriptc_vertices[432]}, - {.width=11, .vertex_count=7, .vertices=&scriptc_vertices[442]}, - {.width=26, .vertex_count=2, .vertices=&scriptc_vertices[456]}, - {.width=11, .vertex_count=5, .vertices=&scriptc_vertices[460]}, - {.width=22, .vertex_count=2, .vertices=&scriptc_vertices[470]}, - {.width=21, .vertex_count=41, .vertices=&scriptc_vertices[474]}, - {.width=21, .vertex_count=14, .vertices=&scriptc_vertices[556]}, - {.width=21, .vertex_count=41, .vertices=&scriptc_vertices[584]}, - {.width=21, .vertex_count=49, .vertices=&scriptc_vertices[666]}, - {.width=21, .vertex_count=9, .vertices=&scriptc_vertices[764]}, - {.width=21, .vertex_count=38, .vertices=&scriptc_vertices[782]}, - {.width=21, .vertex_count=45, .vertices=&scriptc_vertices[858]}, - {.width=21, .vertex_count=29, .vertices=&scriptc_vertices[948]}, - {.width=21, .vertex_count=62, .vertices=&scriptc_vertices[1006]}, - {.width=21, .vertex_count=45, .vertices=&scriptc_vertices[1130]}, - {.width=11, .vertex_count=10, .vertices=&scriptc_vertices[1220]}, - {.width=11, .vertex_count=13, .vertices=&scriptc_vertices[1240]}, - {.width=24, .vertex_count=3, .vertices=&scriptc_vertices[1266]}, - {.width=26, .vertex_count=5, .vertices=&scriptc_vertices[1272]}, - {.width=24, .vertex_count=3, .vertices=&scriptc_vertices[1282]}, - {.width=21, .vertex_count=33, .vertices=&scriptc_vertices[1288]}, - {.width=27, .vertex_count=55, .vertices=&scriptc_vertices[1354]}, - {.width=23, .vertex_count=37, .vertices=&scriptc_vertices[1464]}, - {.width=24, .vertex_count=69, .vertices=&scriptc_vertices[1538]}, - {.width=21, .vertex_count=40, .vertices=&scriptc_vertices[1676]}, - {.width=23, .vertex_count=42, .vertices=&scriptc_vertices[1756]}, - {.width=19, .vertex_count=48, .vertices=&scriptc_vertices[1840]}, - {.width=21, .vertex_count=45, .vertices=&scriptc_vertices[1936]}, - {.width=22, .vertex_count=52, .vertices=&scriptc_vertices[2026]}, - {.width=24, .vertex_count=54, .vertices=&scriptc_vertices[2130]}, - {.width=16, .vertex_count=32, .vertices=&scriptc_vertices[2238]}, - {.width=17, .vertex_count=33, .vertices=&scriptc_vertices[2302]}, - {.width=24, .vertex_count=58, .vertices=&scriptc_vertices[2368]}, - {.width=18, .vertex_count=39, .vertices=&scriptc_vertices[2484]}, - {.width=28, .vertex_count=48, .vertices=&scriptc_vertices[2562]}, - {.width=23, .vertex_count=37, .vertices=&scriptc_vertices[2658]}, - {.width=21, .vertex_count=33, .vertices=&scriptc_vertices[2732]}, - {.width=23, .vertex_count=52, .vertices=&scriptc_vertices[2798]}, - {.width=21, .vertex_count=42, .vertices=&scriptc_vertices[2902]}, - {.width=24, .vertex_count=64, .vertices=&scriptc_vertices[2986]}, - {.width=20, .vertex_count=35, .vertices=&scriptc_vertices[3114]}, - {.width=18, .vertex_count=37, .vertices=&scriptc_vertices[3184]}, - {.width=22, .vertex_count=38, .vertices=&scriptc_vertices[3258]}, - {.width=21, .vertex_count=35, .vertices=&scriptc_vertices[3334]}, - {.width=23, .vertex_count=40, .vertices=&scriptc_vertices[3404]}, - {.width=20, .vertex_count=51, .vertices=&scriptc_vertices[3484]}, - {.width=22, .vertex_count=41, .vertices=&scriptc_vertices[3586]}, - {.width=21, .vertex_count=43, .vertices=&scriptc_vertices[3668]}, - {.width=14, .vertex_count=11, .vertices=&scriptc_vertices[3754]}, - {.width=14, .vertex_count=2, .vertices=&scriptc_vertices[3776]}, - {.width=14, .vertex_count=11, .vertices=&scriptc_vertices[3780]}, - {.width=16, .vertex_count=10, .vertices=&scriptc_vertices[3802]}, - {.width=16, .vertex_count=2, .vertices=&scriptc_vertices[3822]}, - {.width=11, .vertex_count=7, .vertices=&scriptc_vertices[3826]}, - {.width=16, .vertex_count=32, .vertices=&scriptc_vertices[3840]}, - {.width=14, .vertex_count=22, .vertices=&scriptc_vertices[3904]}, - {.width=12, .vertex_count=21, .vertices=&scriptc_vertices[3948]}, - {.width=16, .vertex_count=32, .vertices=&scriptc_vertices[3990]}, - {.width=12, .vertex_count=22, .vertices=&scriptc_vertices[4054]}, - {.width=9, .vertex_count=26, .vertices=&scriptc_vertices[4098]}, - {.width=16, .vertex_count=37, .vertices=&scriptc_vertices[4150]}, - {.width=15, .vertex_count=29, .vertices=&scriptc_vertices[4224]}, - {.width=8, .vertex_count=18, .vertices=&scriptc_vertices[4282]}, - {.width=8, .vertex_count=23, .vertices=&scriptc_vertices[4318]}, - {.width=14, .vertex_count=30, .vertices=&scriptc_vertices[4364]}, - {.width=8, .vertex_count=16, .vertices=&scriptc_vertices[4424]}, - {.width=25, .vertex_count=44, .vertices=&scriptc_vertices[4456]}, - {.width=18, .vertex_count=31, .vertices=&scriptc_vertices[4544]}, - {.width=14, .vertex_count=28, .vertices=&scriptc_vertices[4606]}, - {.width=15, .vertex_count=29, .vertices=&scriptc_vertices[4662]}, - {.width=16, .vertex_count=34, .vertices=&scriptc_vertices[4720]}, - {.width=14, .vertex_count=23, .vertices=&scriptc_vertices[4788]}, - {.width=12, .vertex_count=21, .vertices=&scriptc_vertices[4834]}, - {.width=8, .vertex_count=19, .vertices=&scriptc_vertices[4876]}, - {.width=16, .vertex_count=26, .vertices=&scriptc_vertices[4914]}, - {.width=15, .vertex_count=22, .vertices=&scriptc_vertices[4966]}, - {.width=21, .vertex_count=35, .vertices=&scriptc_vertices[5010]}, - {.width=16, .vertex_count=41, .vertices=&scriptc_vertices[5080]}, - {.width=16, .vertex_count=31, .vertices=&scriptc_vertices[5162]}, - {.width=13, .vertex_count=37, .vertices=&scriptc_vertices[5224]}, - {.width=14, .vertex_count=39, .vertices=&scriptc_vertices[5298]}, - {.width=8, .vertex_count=2, .vertices=&scriptc_vertices[5376]}, - {.width=14, .vertex_count=39, .vertices=&scriptc_vertices[5380]}, - {.width=24, .vertex_count=23, .vertices=&scriptc_vertices[5458]} - } -}; - -static const int8_t scripts_vertices[4472] = { - 8, -12, 7, -11, 5, 1, -128, -128, 8, -11, 5, 1, -128, -128, 8, -12, 9, -11, 5, 1, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 7, -12, 5, -5, -128, -128, 8, -12, 5, -5, -128, -128, 16, -12, 14, -5, -128, -128, 17, -12, 14, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 12, -16, 4, 13, -128, -128, 17, -16, 9, 13, -128, -128, 18, -8, 17, -7, 18, -6, 19, -7, 19, -8, 18, -10, 17, -11, 14, -12, 10, -12, 7, -11, 5, -9, 5, -7, 6, -5, 7, -4, 14, 0, 16, 2, -128, -128, 5, -7, 7, -5, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 23, -4, 22, -3, 23, -2, 24, -3, 24, -4, 23, -5, 22, -5, 20, -4, 18, -2, 13, 6, 11, 8, 9, 9, 6, 9, 3, 8, 2, 6, 2, 4, 3, 2, 4, 1, 6, 0, 11, -2, 13, -3, 15, -5, 16, -7, 16, -9, 15, -11, 13, -12, 11, -11, 10, -9, 10, -6, 11, 0, 12, 3, 14, 6, 16, 8, 18, 9, 20, 9, 21, 7, 21, 6, -128, -128, 6, 9, 4, 8, 3, 6, 3, 4, 4, 2, 5, 1, 11, -2, -128, -128, 10, -6, 11, -1, 12, 2, 14, 5, 16, 7, 18, 8, 20, 8, 21, 7, 8, -10, 7, -11, 8, -12, 9, -11, 9, -10, 8, -8, 6, -6, 15, -16, 11, -13, 8, -10, 6, -7, 4, -3, 3, 2, 3, 6, 4, 11, 5, 14, 6, 16, -128, -128, 11, -13, 8, -9, 6, -5, 5, -2, 4, 3, 4, 8, 5, 13, 6, 16, 9, -16, 10, -14, 11, -11, 12, -6, 12, -2, 11, 3, 9, 7, 7, 10, 4, 13, 0, 16, -128, -128, 9, -16, 10, -13, 11, -8, 11, -3, 10, 2, 9, 5, 7, 9, 4, 13, 10, -12, 10, 0, -128, -128, 5, -9, 15, -3, -128, -128, 15, -9, 5, -3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 4, 0, 22, 0, 5, 7, 4, 8, 5, 9, 6, 8, 5, 7, 24, -16, -2, 16, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 16, -11, 14, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 9, 9, 11, 8, 13, 6, 15, 3, 16, 0, 17, -4, 17, -7, 16, -10, 14, -12, 12, -8, 7, 9, -128, -128, 14, -12, 8, 9, -128, -128, 14, -12, 11, -9, 8, -7, 6, -6, -128, -128, 13, -9, 9, -7, 6, -6, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 15, -3, 12, -1, 8, 1, 5, 3, 3, 5, 1, 9, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, 8, 1, -128, -128, 2, 7, 3, 6, 5, 6, 10, 8, 13, 8, 15, 7, 16, 5, -128, -128, 5, 6, 10, 9, 13, 9, 15, 8, 16, 5, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 14, -3, 11, -2, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, -128, -128, 9, -2, 11, -2, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -2, 13, -1, 14, 0, 15, 2, 15, 5, 14, 7, 13, 8, 11, 9, 16, -11, 10, 9, -128, -128, 17, -12, 11, 9, -128, -128, 17, -12, 2, 3, 18, 3, 9, -12, 4, -2, -128, -128, 9, -12, 19, -12, -128, -128, 9, -11, 14, -11, 19, -12, -128, -128, 4, -2, 5, -3, 8, -4, 11, -4, 14, -3, 15, -2, 16, 0, 16, 3, 15, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -4, 13, -3, 14, -2, 15, 0, 15, 3, 14, 6, 12, 8, 10, 9, 17, -9, 16, -8, 17, -7, 18, -8, 18, -9, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 5, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 16, 4, 16, 1, 15, -1, 14, -2, 12, -3, 9, -3, 7, -2, 5, 0, 4, 2, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 6, 5, 8, -128, -128, 10, 9, 12, 8, 14, 6, 15, 4, 15, 0, 14, -2, 6, -12, 4, -6, -128, -128, 19, -12, 18, -9, 16, -6, 11, 0, 9, 3, 8, 5, 7, 9, -128, -128, 16, -6, 10, 0, 8, 3, 7, 5, 6, 9, -128, -128, 5, -9, 8, -12, 10, -12, 15, -9, -128, -128, 6, -10, 8, -11, 10, -11, 15, -9, 17, -9, 18, -10, 19, -12, 11, -12, 8, -11, 7, -10, 6, -8, 6, -5, 7, -3, 9, -2, 12, -2, 16, -3, 17, -4, 18, -6, 18, -9, 17, -11, 14, -12, 11, -12, -128, -128, 11, -12, 9, -11, 8, -10, 7, -8, 7, -5, 8, -3, 9, -2, -128, -128, 12, -2, 15, -3, 16, -4, 17, -6, 17, -9, 16, -11, 14, -12, -128, -128, 9, -2, 5, -1, 3, 1, 2, 3, 2, 6, 3, 8, 6, 9, 10, 9, 14, 8, 15, 7, 16, 5, 16, 2, 15, 0, 14, -1, 12, -2, -128, -128, 9, -2, 6, -1, 4, 1, 3, 3, 3, 6, 4, 8, 6, 9, -128, -128, 10, 9, 13, 8, 14, 7, 15, 5, 15, 1, 14, -1, 17, -5, 16, -3, 14, -1, 12, 0, 9, 0, 7, -1, 6, -2, 5, -4, 5, -7, 6, -9, 8, -11, 11, -12, 14, -12, 16, -11, 17, -10, 18, -8, 18, -4, 17, 0, 16, 3, 14, 6, 12, 8, 9, 9, 6, 9, 4, 8, 3, 6, 3, 5, 4, 4, 5, 5, 4, 6, -128, -128, 7, -1, 6, -3, 6, -7, 7, -9, 9, -11, 11, -12, -128, -128, 16, -11, 17, -9, 17, -4, 16, 0, 15, 3, 13, 6, 11, 8, 9, 9, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 15, -12, 18, -11, 19, -9, 19, -7, 18, -5, 17, -4, 11, -2, 9, -1, 9, 1, 10, 2, 12, 2, -128, -128, 15, -12, 17, -11, 18, -9, 18, -7, 17, -5, 16, -4, 14, -3, -128, -128, 8, 7, 7, 8, 8, 9, 9, 8, 8, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 0, 9, 2, 8, 5, 5, 8, 1, 12, -6, 15, -12, 15, 9, 14, 6, 12, 3, 10, 1, 7, -1, 5, -1, 4, 0, 4, 2, 5, 4, 7, 6, 10, 8, 13, 9, 18, 9, 13, -10, 14, -9, 14, -6, 13, -2, 12, 1, 11, 3, 9, 6, 7, 8, 5, 9, 4, 9, 3, 8, 3, 5, 4, 0, 5, -3, 6, -5, 8, -8, 10, -10, 12, -11, 15, -12, 18, -12, 20, -11, 21, -9, 21, -7, 20, -5, 19, -4, 17, -3, 14, -2, -128, -128, 13, -2, 14, -2, 17, -1, 18, 0, 19, 2, 19, 5, 18, 7, 17, 8, 15, 9, 12, 9, 10, 8, 9, 6, 12, -6, 12, -5, 13, -4, 15, -4, 17, -5, 18, -7, 18, -9, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -4, 3, 0, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 15, 4, 13, -12, 11, -11, 10, -9, 9, -5, 8, 1, 7, 4, 6, 6, 4, 8, 2, 9, 0, 9, -1, 8, -1, 6, 0, 5, 2, 5, 4, 6, 6, 8, 9, 9, 12, 9, 15, 8, 17, 6, 19, 2, 20, -3, 20, -7, 19, -10, 18, -11, 16, -12, 13, -12, 11, -10, 11, -8, 12, -5, 14, -2, 16, 0, 19, 2, 21, 3, 14, -8, 14, -7, 15, -6, 17, -6, 18, -7, 18, -9, 17, -11, 14, -12, 10, -12, 7, -11, 6, -9, 6, -6, 7, -4, 8, -3, 11, -2, 8, -2, 5, -1, 4, 0, 3, 2, 3, 5, 4, 7, 5, 8, 8, 9, 11, 9, 14, 8, 16, 6, 17, 4, 10, -6, 8, -6, 6, -7, 5, -9, 6, -11, 9, -12, 12, -12, 16, -11, 19, -11, 21, -12, -128, -128, 16, -11, 14, -4, 12, 2, 10, 6, 8, 8, 6, 9, 4, 9, 2, 8, 1, 6, 1, 4, 2, 3, 4, 3, 6, 4, -128, -128, 9, -2, 18, -2, 0, 9, 2, 8, 6, 4, 9, -1, 10, -4, 11, -8, 11, -11, 10, -12, 9, -12, 8, -11, 7, -9, 7, -6, 8, -4, 10, -3, 14, -3, 17, -4, 18, -5, 19, -7, 19, -1, 18, 4, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 2, 4, 2, 2, 7, -5, 5, -6, 4, -8, 4, -9, 5, -11, 7, -12, 8, -12, 10, -11, 11, -9, 11, -7, 10, -3, 8, 3, 6, 7, 4, 9, 2, 9, 1, 8, 1, 6, -128, -128, 7, 0, 16, -3, 18, -4, 21, -6, 23, -8, 24, -10, 24, -11, 23, -12, 22, -12, 20, -10, 18, -6, 16, 0, 15, 5, 15, 8, 16, 9, 17, 9, 19, 8, 20, 7, 22, 4, 14, 4, 12, 2, 10, -1, 9, -3, 8, -6, 8, -9, 9, -11, 10, -12, 12, -12, 13, -11, 14, -9, 14, -6, 13, -1, 11, 4, 10, 6, 8, 8, 6, 9, 4, 9, 2, 8, 1, 6, 1, 4, 2, 3, 4, 3, 6, 4, 10, 12, 8, 9, 6, 4, 5, -2, 5, -8, 6, -11, 8, -12, 10, -12, 11, -11, 12, -8, 12, -5, 11, 0, 8, 9, 6, 15, 5, 18, 4, 20, 2, 21, 1, 20, 1, 18, 2, 15, 4, 12, 6, 10, 9, 8, 13, 6, 7, -5, 5, -6, 4, -8, 4, -9, 5, -11, 7, -12, 8, -12, 10, -11, 11, -9, 11, -7, 10, -3, 8, 3, 6, 7, 4, 9, 2, 9, 1, 8, 1, 6, -128, -128, 24, -9, 24, -11, 23, -12, 22, -12, 20, -11, 18, -9, 16, -6, 14, -4, 12, -3, 10, -3, -128, -128, 12, -3, 13, -1, 13, 6, 14, 8, 15, 9, 16, 9, 18, 8, 19, 7, 21, 4, 4, 0, 6, 0, 10, -1, 13, -3, 15, -5, 16, -7, 16, -10, 15, -12, 13, -12, 12, -11, 11, -9, 10, -4, 9, 1, 8, 4, 7, 6, 5, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 3, 5, 5, 6, 8, 8, 11, 9, 13, 9, 16, 8, 18, 6, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -2, 7, 2, 5, 9, -128, -128, 7, 2, 10, -6, 12, -10, 13, -11, 15, -12, 16, -12, 18, -11, 19, -9, 19, -7, 18, -2, 17, 2, 15, 9, -128, -128, 17, 2, 20, -6, 22, -10, 23, -11, 25, -12, 26, -12, 28, -11, 29, -9, 29, -7, 28, -2, 26, 5, 26, 8, 27, 9, 28, 9, 30, 8, 31, 7, 33, 4, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -2, 7, 2, 5, 9, -128, -128, 7, 2, 10, -6, 12, -10, 13, -11, 15, -12, 17, -12, 19, -11, 20, -9, 20, -7, 19, -2, 17, 5, 17, 8, 18, 9, 19, 9, 21, 8, 22, 7, 24, 4, 12, -12, 9, -11, 7, -9, 5, -6, 4, -4, 3, 0, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 1, 18, -3, 18, -7, 17, -10, 16, -11, 14, -12, 12, -12, 10, -10, 10, -7, 11, -4, 13, -1, 15, 1, 18, 3, 20, 4, 13, -10, 14, -9, 14, -6, 13, -2, 12, 1, 11, 3, 9, 6, 7, 8, 5, 9, 4, 9, 3, 8, 3, 5, 4, 0, 5, -3, 6, -5, 8, -8, 10, -10, 12, -11, 15, -12, 20, -12, 22, -11, 23, -10, 24, -8, 24, -5, 23, -3, 22, -2, 20, -1, 17, -1, 15, -2, 14, -3, 13, -6, 12, -4, 11, -3, 9, -2, 7, -2, 6, -4, 6, -6, 7, -9, 9, -11, 12, -12, 15, -12, 17, -11, 18, -9, 18, -5, 17, -2, 15, 1, 11, 5, 8, 7, 6, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 3, 5, 5, 6, 8, 8, 11, 9, 14, 9, 17, 8, 19, 6, 13, -10, 14, -9, 14, -6, 13, -2, 12, 1, 11, 3, 9, 6, 7, 8, 5, 9, 4, 9, 3, 8, 3, 5, 4, 0, 5, -3, 6, -5, 8, -8, 10, -10, 12, -11, 15, -12, 19, -12, 21, -11, 22, -10, 23, -8, 23, -5, 22, -3, 21, -2, 19, -1, 16, -1, 13, -2, 14, -1, 15, 1, 15, 6, 16, 8, 18, 9, 20, 8, 21, 7, 23, 4, 0, 9, 2, 8, 4, 6, 7, 2, 9, -1, 11, -5, 12, -8, 12, -11, 11, -12, 10, -12, 9, -11, 8, -9, 8, -7, 9, -5, 11, -3, 14, -1, 16, 1, 17, 3, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 2, 4, 2, 2, 10, -6, 8, -6, 6, -7, 5, -9, 6, -11, 9, -12, 12, -12, 16, -11, 19, -11, 21, -12, -128, -128, 16, -11, 14, -4, 12, 2, 10, 6, 8, 8, 6, 9, 4, 9, 2, 8, 1, 6, 1, 4, 2, 3, 4, 3, 6, 4, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -3, 7, 0, 6, 4, 6, 6, 7, 8, 9, 9, 11, 9, 13, 8, 14, 7, 16, 3, 19, -5, 21, -12, -128, -128, 19, -5, 18, -1, 17, 5, 17, 8, 18, 9, 19, 9, 21, 8, 22, 7, 24, 4, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -3, 7, 0, 6, 4, 6, 7, 7, 9, 9, 9, 11, 8, 14, 5, 16, 2, 18, -2, 19, -5, 20, -9, 20, -11, 19, -12, 18, -12, 17, -11, 16, -9, 16, -7, 17, -4, 19, -2, 21, -1, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -6, 8, 9, -128, -128, 18, -12, 8, 9, -128, -128, 18, -12, 16, 9, -128, -128, 30, -12, 28, -11, 25, -8, 22, -4, 19, 2, 16, 9, 8, -6, 6, -6, 5, -7, 5, -9, 6, -11, 8, -12, 10, -12, 12, -11, 13, -9, 13, -6, 11, 3, 11, 6, 12, 8, 14, 9, 16, 9, 18, 8, 19, 6, 19, 4, 18, 3, 16, 3, -128, -128, 23, -9, 23, -11, 22, -12, 20, -12, 18, -11, 16, -9, 14, -6, 10, 3, 8, 6, 6, 8, 4, 9, 2, 9, 1, 8, 1, 6, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -3, 7, 0, 6, 4, 6, 6, 7, 8, 8, 9, 10, 9, 12, 8, 14, 6, 16, 3, 17, 1, 19, -5, -128, -128, 21, -12, 19, -5, 16, 5, 14, 11, 12, 16, 10, 20, 8, 21, 7, 20, 7, 18, 8, 15, 10, 12, 13, 9, 16, 7, 21, 4, 13, -6, 12, -4, 11, -3, 9, -2, 7, -2, 6, -4, 6, -6, 7, -9, 9, -11, 12, -12, 15, -12, 17, -11, 18, -9, 18, -5, 17, -2, 15, 2, 12, 5, 8, 8, 6, 9, 3, 9, 2, 8, 2, 6, 3, 5, 6, 5, 8, 6, 9, 7, 10, 9, 10, 12, 9, 15, 8, 17, 6, 20, 4, 21, 3, 20, 3, 18, 4, 15, 6, 12, 9, 9, 12, 7, 18, 4, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 6, -6, 8, -9, 10, -6, -128, -128, 3, -3, 8, -8, 13, -3, -128, -128, 8, -8, 8, 9, 0, 11, 16, 11, 9, -12, 7, -10, 6, -8, 6, -7, 7, -6, 8, -7, 7, -8, 9, 3, 8, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 6, 10, 0, 9, 5, 9, 8, 10, 9, 11, 9, 13, 8, 14, 7, 16, 4, 0, 4, 2, 1, 5, -4, 6, -6, 7, -9, 7, -11, 6, -12, 4, -11, 3, -9, 2, -5, 1, 2, 1, 8, 2, 9, 3, 9, 5, 8, 7, 6, 8, 3, 8, 0, 9, 4, 10, 5, 12, 5, 14, 4, 7, 2, 7, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 6, 9, 9, 7, 11, 4, 9, 3, 8, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 6, 14, -12, -128, -128, 10, 0, 9, 5, 9, 8, 10, 9, 11, 9, 13, 8, 14, 7, 16, 4, 1, 7, 3, 6, 4, 5, 5, 3, 5, 1, 4, 0, 3, 0, 1, 1, 0, 3, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 7, 10, 4, 0, 4, 4, -1, 6, -4, 7, -6, 8, -9, 8, -11, 7, -12, 5, -11, 4, -9, 2, -1, -1, 8, -4, 15, -5, 18, -5, 20, -4, 21, -2, 20, -1, 17, 0, 8, 1, 9, 3, 9, 5, 8, 6, 7, 8, 4, 9, 3, 8, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 7, -128, -128, 10, 0, 8, 7, 4, 18, 3, 20, 1, 21, 0, 20, 0, 18, 1, 15, 4, 12, 7, 10, 9, 9, 12, 7, 15, 4, 0, 4, 2, 1, 5, -4, 6, -6, 7, -9, 7, -11, 6, -12, 4, -11, 3, -9, 2, -5, 1, 1, 0, 9, -128, -128, 0, 9, 1, 6, 2, 4, 4, 1, 6, 0, 8, 0, 9, 1, 9, 3, 8, 6, 8, 8, 9, 9, 10, 9, 12, 8, 13, 7, 15, 4, 3, -5, 3, -4, 4, -4, 4, -5, 3, -5, -128, -128, 0, 4, 2, 0, 0, 6, 0, 8, 1, 9, 2, 9, 4, 8, 5, 7, 7, 4, 3, -5, 3, -4, 4, -4, 4, -5, 3, -5, -128, -128, 0, 4, 2, 0, -4, 18, -5, 20, -7, 21, -8, 20, -8, 18, -7, 15, -4, 12, -1, 10, 1, 9, 4, 7, 7, 4, 0, 4, 2, 1, 5, -4, 6, -6, 7, -9, 7, -11, 6, -12, 4, -11, 3, -9, 2, -5, 1, 1, 0, 9, -128, -128, 0, 9, 1, 6, 2, 4, 4, 1, 6, 0, 8, 0, 9, 1, 9, 3, 7, 4, 4, 4, -128, -128, 4, 4, 6, 5, 7, 8, 8, 9, 9, 9, 11, 8, 12, 7, 14, 4, 0, 4, 2, 1, 5, -4, 6, -6, 7, -9, 7, -11, 6, -12, 4, -11, 3, -9, 2, -5, 1, 2, 1, 8, 2, 9, 3, 9, 5, 8, 6, 7, 8, 4, 0, 4, 2, 1, 4, 0, 5, 1, 5, 2, 4, 6, 3, 9, -128, -128, 4, 6, 5, 4, 7, 1, 9, 0, 11, 0, 12, 1, 12, 2, 11, 6, 10, 9, -128, -128, 11, 6, 12, 4, 14, 1, 16, 0, 18, 0, 19, 1, 19, 3, 18, 6, 18, 8, 19, 9, 20, 9, 22, 8, 23, 7, 25, 4, 0, 4, 2, 1, 4, 0, 5, 1, 5, 2, 4, 6, 3, 9, -128, -128, 4, 6, 5, 4, 7, 1, 9, 0, 11, 0, 12, 1, 12, 3, 11, 6, 11, 8, 12, 9, 13, 9, 15, 8, 16, 7, 18, 4, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 7, 9, 5, 9, 3, 8, 1, 6, 0, 5, 1, 5, 3, 6, 5, 8, 6, 11, 6, 13, 5, 14, 4, 0, 4, 2, 1, 3, -1, 2, 3, -4, 21, -128, -128, 2, 3, 3, 1, 5, 0, 7, 0, 9, 1, 10, 3, 10, 5, 9, 7, 8, 8, 6, 9, -128, -128, 2, 8, 4, 9, 7, 9, 10, 8, 12, 7, 15, 4, 9, 3, 8, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, -128, -128, 10, 0, 9, 3, 7, 8, 4, 15, 3, 18, 3, 20, 4, 21, 6, 20, 7, 17, 7, 10, 9, 9, 12, 7, 15, 4, 0, 4, 2, 1, 3, -1, 3, 1, 6, 1, 7, 2, 7, 4, 6, 7, 6, 8, 7, 9, 8, 9, 10, 8, 11, 7, 13, 4, 0, 4, 2, 1, 3, -1, 3, 1, 5, 4, 6, 6, 6, 8, 4, 9, -128, -128, 0, 8, 2, 9, 6, 9, 8, 8, 9, 7, 11, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 1, 6, 1, 8, 2, 9, 4, 9, 6, 8, 7, 7, 9, 4, -128, -128, 1, -4, 8, -4, 0, 4, 2, 0, 0, 6, 0, 8, 1, 9, 3, 9, 5, 8, 7, 6, 9, 3, -128, -128, 10, 0, 8, 6, 8, 8, 9, 9, 10, 9, 12, 8, 13, 7, 15, 4, 0, 4, 2, 0, 1, 5, 1, 8, 2, 9, 3, 9, 6, 8, 8, 6, 9, 3, 9, 0, -128, -128, 9, 0, 10, 4, 11, 5, 13, 5, 15, 4, 3, 0, 1, 2, 0, 5, 0, 7, 1, 9, 3, 9, 5, 8, 7, 6, -128, -128, 9, 0, 7, 6, 7, 8, 8, 9, 10, 9, 12, 8, 14, 6, 15, 3, 15, 0, -128, -128, 15, 0, 16, 4, 17, 5, 19, 5, 21, 4, 0, 4, 2, 1, 4, 0, 6, 0, 7, 1, 7, 8, 8, 9, 11, 9, 14, 7, 16, 4, -128, -128, 13, 1, 12, 0, 10, 0, 9, 1, 5, 8, 4, 9, 2, 9, 1, 8, 0, 4, 2, 0, 0, 6, 0, 8, 1, 9, 3, 9, 5, 8, 7, 6, 9, 3, -128, -128, 10, 0, 4, 18, 3, 20, 1, 21, 0, 20, 0, 18, 1, 15, 4, 12, 7, 10, 9, 9, 12, 7, 15, 4, 0, 4, 2, 1, 4, 0, 6, 0, 8, 2, 8, 4, 7, 6, 5, 8, 2, 9, 4, 10, 5, 12, 5, 15, 4, 18, 3, 20, 1, 21, 0, 20, 0, 18, 1, 15, 4, 12, 7, 10, 11, 7, 14, 4, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 6, -12, 4, -11, 3, -9, 3, -7, 4, -5, 6, -4, 8, -4, 10, -5, 11, -7, 11, -9, 10, -11, 8, -12, 6, -12 -}; - -static const hershey_font_t scripts { - .chars = { - {.width=16, .vertex_count=0, .vertices=&scripts_vertices[0]}, - {.width=11, .vertex_count=16, .vertices=&scripts_vertices[0]}, - {.width=18, .vertex_count=11, .vertices=&scripts_vertices[32]}, - {.width=21, .vertex_count=11, .vertices=&scripts_vertices[54]}, - {.width=21, .vertex_count=40, .vertices=&scripts_vertices[76]}, - {.width=24, .vertex_count=31, .vertices=&scripts_vertices[156]}, - {.width=26, .vertex_count=54, .vertices=&scripts_vertices[218]}, - {.width=11, .vertex_count=7, .vertices=&scripts_vertices[326]}, - {.width=15, .vertex_count=19, .vertices=&scripts_vertices[340]}, - {.width=15, .vertex_count=19, .vertices=&scripts_vertices[378]}, - {.width=17, .vertex_count=8, .vertices=&scripts_vertices[416]}, - {.width=26, .vertex_count=5, .vertices=&scripts_vertices[432]}, - {.width=11, .vertex_count=7, .vertices=&scripts_vertices[442]}, - {.width=26, .vertex_count=2, .vertices=&scripts_vertices[456]}, - {.width=10, .vertex_count=5, .vertices=&scripts_vertices[460]}, - {.width=22, .vertex_count=2, .vertices=&scripts_vertices[470]}, - {.width=21, .vertex_count=41, .vertices=&scripts_vertices[474]}, - {.width=21, .vertex_count=14, .vertices=&scripts_vertices[556]}, - {.width=21, .vertex_count=41, .vertices=&scripts_vertices[584]}, - {.width=21, .vertex_count=49, .vertices=&scripts_vertices[666]}, - {.width=21, .vertex_count=9, .vertices=&scripts_vertices[764]}, - {.width=21, .vertex_count=38, .vertices=&scripts_vertices[782]}, - {.width=21, .vertex_count=45, .vertices=&scripts_vertices[858]}, - {.width=21, .vertex_count=29, .vertices=&scripts_vertices[948]}, - {.width=21, .vertex_count=62, .vertices=&scripts_vertices[1006]}, - {.width=21, .vertex_count=45, .vertices=&scripts_vertices[1130]}, - {.width=11, .vertex_count=10, .vertices=&scripts_vertices[1220]}, - {.width=11, .vertex_count=13, .vertices=&scripts_vertices[1240]}, - {.width=24, .vertex_count=3, .vertices=&scripts_vertices[1266]}, - {.width=26, .vertex_count=5, .vertices=&scripts_vertices[1272]}, - {.width=24, .vertex_count=3, .vertices=&scripts_vertices[1282]}, - {.width=21, .vertex_count=33, .vertices=&scripts_vertices[1288]}, - {.width=27, .vertex_count=55, .vertices=&scripts_vertices[1354]}, - {.width=20, .vertex_count=19, .vertices=&scripts_vertices[1464]}, - {.width=23, .vertex_count=40, .vertices=&scripts_vertices[1502]}, - {.width=20, .vertex_count=23, .vertices=&scripts_vertices[1582]}, - {.width=23, .vertex_count=34, .vertices=&scripts_vertices[1628]}, - {.width=20, .vertex_count=27, .vertices=&scripts_vertices[1696]}, - {.width=20, .vertex_count=27, .vertices=&scripts_vertices[1750]}, - {.width=23, .vertex_count=28, .vertices=&scripts_vertices[1804]}, - {.width=24, .vertex_count=37, .vertices=&scripts_vertices[1860]}, - {.width=17, .vertex_count=24, .vertices=&scripts_vertices[1934]}, - {.width=15, .vertex_count=24, .vertices=&scripts_vertices[1982]}, - {.width=24, .vertex_count=38, .vertices=&scripts_vertices[2030]}, - {.width=19, .vertex_count=28, .vertices=&scripts_vertices[2106]}, - {.width=33, .vertex_count=44, .vertices=&scripts_vertices[2162]}, - {.width=24, .vertex_count=31, .vertices=&scripts_vertices[2250]}, - {.width=21, .vertex_count=28, .vertices=&scripts_vertices[2312]}, - {.width=25, .vertex_count=30, .vertices=&scripts_vertices[2368]}, - {.width=22, .vertex_count=31, .vertices=&scripts_vertices[2428]}, - {.width=25, .vertex_count=37, .vertices=&scripts_vertices[2490]}, - {.width=20, .vertex_count=27, .vertices=&scripts_vertices[2564]}, - {.width=19, .vertex_count=24, .vertices=&scripts_vertices[2618]}, - {.width=24, .vertex_count=32, .vertices=&scripts_vertices[2666]}, - {.width=23, .vertex_count=31, .vertices=&scripts_vertices[2730]}, - {.width=28, .vertex_count=24, .vertices=&scripts_vertices[2792]}, - {.width=24, .vertex_count=35, .vertices=&scripts_vertices[2840]}, - {.width=23, .vertex_count=37, .vertices=&scripts_vertices[2910]}, - {.width=21, .vertex_count=39, .vertices=&scripts_vertices[2984]}, - {.width=14, .vertex_count=11, .vertices=&scripts_vertices[3062]}, - {.width=14, .vertex_count=2, .vertices=&scripts_vertices[3084]}, - {.width=14, .vertex_count=11, .vertices=&scripts_vertices[3088]}, - {.width=16, .vertex_count=10, .vertices=&scripts_vertices[3110]}, - {.width=16, .vertex_count=2, .vertices=&scripts_vertices[3130]}, - {.width=11, .vertex_count=7, .vertices=&scripts_vertices[3134]}, - {.width=16, .vertex_count=21, .vertices=&scripts_vertices[3148]}, - {.width=14, .vertex_count=22, .vertices=&scripts_vertices[3190]}, - {.width=11, .vertex_count=13, .vertices=&scripts_vertices[3234]}, - {.width=16, .vertex_count=23, .vertices=&scripts_vertices[3260]}, - {.width=10, .vertex_count=16, .vertices=&scripts_vertices[3306]}, - {.width=8, .vertex_count=23, .vertices=&scripts_vertices[3338]}, - {.width=15, .vertex_count=27, .vertices=&scripts_vertices[3384]}, - {.width=15, .vertex_count=28, .vertices=&scripts_vertices[3438]}, - {.width=7, .vertex_count=15, .vertices=&scripts_vertices[3494]}, - {.width=7, .vertex_count=19, .vertices=&scripts_vertices[3524]}, - {.width=14, .vertex_count=32, .vertices=&scripts_vertices[3562]}, - {.width=8, .vertex_count=17, .vertices=&scripts_vertices[3626]}, - {.width=25, .vertex_count=32, .vertices=&scripts_vertices[3660]}, - {.width=18, .vertex_count=22, .vertices=&scripts_vertices[3724]}, - {.width=14, .vertex_count=22, .vertices=&scripts_vertices[3768]}, - {.width=15, .vertex_count=23, .vertices=&scripts_vertices[3812]}, - {.width=15, .vertex_count=26, .vertices=&scripts_vertices[3858]}, - {.width=13, .vertex_count=14, .vertices=&scripts_vertices[3910]}, - {.width=11, .vertex_count=15, .vertices=&scripts_vertices[3938]}, - {.width=9, .vertex_count=15, .vertices=&scripts_vertices[3968]}, - {.width=15, .vertex_count=18, .vertices=&scripts_vertices[3998]}, - {.width=15, .vertex_count=16, .vertices=&scripts_vertices[4034]}, - {.width=21, .vertex_count=24, .vertices=&scripts_vertices[4066]}, - {.width=16, .vertex_count=19, .vertices=&scripts_vertices[4114]}, - {.width=15, .vertex_count=22, .vertices=&scripts_vertices[4152]}, - {.width=14, .vertex_count=22, .vertices=&scripts_vertices[4196]}, - {.width=14, .vertex_count=39, .vertices=&scripts_vertices[4240]}, - {.width=8, .vertex_count=2, .vertices=&scripts_vertices[4318]}, - {.width=14, .vertex_count=39, .vertices=&scripts_vertices[4322]}, - {.width=24, .vertex_count=23, .vertices=&scripts_vertices[4400]} - } -}; - -static const int8_t timesi_vertices[4848] = { - 8, -12, 7, -11, 5, 1, -128, -128, 8, -11, 5, 1, -128, -128, 8, -12, 9, -11, 5, 1, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 7, -12, 5, -5, -128, -128, 8, -12, 5, -5, -128, -128, 16, -12, 14, -5, -128, -128, 17, -12, 14, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 12, -16, 4, 13, -128, -128, 17, -16, 9, 13, -128, -128, 18, -8, 17, -7, 18, -6, 19, -7, 19, -8, 18, -10, 17, -11, 14, -12, 10, -12, 7, -11, 5, -9, 5, -7, 6, -5, 7, -4, 14, 0, 16, 2, -128, -128, 5, -7, 7, -5, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 21, -4, 20, -3, 21, -2, 22, -3, 22, -4, 21, -5, 20, -5, 19, -4, 18, -2, 16, 3, 14, 6, 12, 8, 10, 9, 7, 9, 4, 8, 3, 6, 3, 3, 4, 1, 10, -3, 12, -5, 13, -7, 13, -9, 12, -11, 10, -12, 8, -11, 7, -9, 7, -7, 8, -4, 10, -1, 15, 6, 17, 8, 20, 9, 21, 9, 22, 8, 22, 7, -128, -128, 7, 9, 5, 8, 4, 6, 4, 3, 5, 1, 7, -1, -128, -128, 7, -7, 8, -5, 16, 6, 18, 8, 20, 9, 7, -12, 5, -5, -128, -128, 8, -12, 5, -5, 15, -16, 11, -13, 8, -10, 6, -7, 4, -3, 3, 2, 3, 6, 4, 11, 5, 14, 6, 16, -128, -128, 11, -13, 8, -9, 6, -5, 5, -2, 4, 3, 4, 8, 5, 13, 6, 16, 9, -16, 10, -14, 11, -11, 12, -6, 12, -2, 11, 3, 9, 7, 7, 10, 4, 13, 0, 16, -128, -128, 9, -16, 10, -13, 11, -8, 11, -3, 10, 2, 9, 5, 7, 9, 4, 13, 8, -6, 8, 6, -128, -128, 3, -3, 13, 3, -128, -128, 13, -3, 3, 3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 4, 0, 22, 0, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 20, -16, 2, 16, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 16, -11, 14, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 9, 9, 11, 8, 13, 6, 15, 3, 16, 0, 17, -4, 17, -7, 16, -10, 14, -12, 12, -8, 7, 9, -128, -128, 14, -12, 8, 9, -128, -128, 14, -12, 11, -9, 8, -7, 6, -6, -128, -128, 13, -9, 9, -7, 6, -6, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 15, -3, 12, -1, 8, 1, 5, 3, 3, 5, 1, 9, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, 8, 1, -128, -128, 2, 7, 3, 6, 5, 6, 10, 8, 13, 8, 15, 7, 16, 5, -128, -128, 5, 6, 10, 9, 13, 9, 15, 8, 16, 5, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 14, -3, 11, -2, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, -128, -128, 9, -2, 11, -2, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -2, 13, -1, 14, 0, 15, 2, 15, 5, 14, 7, 13, 8, 11, 9, 16, -11, 10, 9, -128, -128, 17, -12, 11, 9, -128, -128, 17, -12, 2, 3, 18, 3, 9, -12, 4, -2, -128, -128, 9, -12, 19, -12, -128, -128, 9, -11, 14, -11, 19, -12, -128, -128, 4, -2, 5, -3, 8, -4, 11, -4, 14, -3, 15, -2, 16, 0, 16, 3, 15, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -4, 13, -3, 14, -2, 15, 0, 15, 3, 14, 6, 12, 8, 10, 9, 17, -9, 16, -8, 17, -7, 18, -8, 18, -9, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 5, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 16, 4, 16, 1, 15, -1, 14, -2, 12, -3, 9, -3, 7, -2, 5, 0, 4, 2, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 6, 5, 8, -128, -128, 10, 9, 12, 8, 14, 6, 15, 4, 15, 0, 14, -2, 6, -12, 4, -6, -128, -128, 19, -12, 18, -9, 16, -6, 11, 0, 9, 3, 8, 5, 7, 9, -128, -128, 16, -6, 10, 0, 8, 3, 7, 5, 6, 9, -128, -128, 5, -9, 8, -12, 10, -12, 15, -9, -128, -128, 6, -10, 8, -11, 10, -11, 15, -9, 17, -9, 18, -10, 19, -12, 11, -12, 8, -11, 7, -10, 6, -8, 6, -5, 7, -3, 9, -2, 12, -2, 16, -3, 17, -4, 18, -6, 18, -9, 17, -11, 14, -12, 11, -12, -128, -128, 11, -12, 9, -11, 8, -10, 7, -8, 7, -5, 8, -3, 9, -2, -128, -128, 12, -2, 15, -3, 16, -4, 17, -6, 17, -9, 16, -11, 14, -12, -128, -128, 9, -2, 5, -1, 3, 1, 2, 3, 2, 6, 3, 8, 6, 9, 10, 9, 14, 8, 15, 7, 16, 5, 16, 2, 15, 0, 14, -1, 12, -2, -128, -128, 9, -2, 6, -1, 4, 1, 3, 3, 3, 6, 4, 8, 6, 9, -128, -128, 10, 9, 13, 8, 14, 7, 15, 5, 15, 1, 14, -1, 17, -5, 16, -3, 14, -1, 12, 0, 9, 0, 7, -1, 6, -2, 5, -4, 5, -7, 6, -9, 8, -11, 11, -12, 14, -12, 16, -11, 17, -10, 18, -8, 18, -4, 17, 0, 16, 3, 14, 6, 12, 8, 9, 9, 6, 9, 4, 8, 3, 6, 3, 5, 4, 4, 5, 5, 4, 6, -128, -128, 7, -1, 6, -3, 6, -7, 7, -9, 9, -11, 11, -12, -128, -128, 16, -11, 17, -9, 17, -4, 16, 0, 15, 3, 13, 6, 11, 8, 9, 9, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 15, -12, 18, -11, 19, -9, 19, -7, 18, -5, 17, -4, 11, -2, 9, -1, 9, 1, 10, 2, 12, 2, -128, -128, 15, -12, 17, -11, 18, -9, 18, -7, 17, -5, 16, -4, 14, -3, -128, -128, 8, 7, 7, 8, 8, 9, 9, 8, 8, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 13, -12, 0, 9, -128, -128, 13, -12, 14, 9, -128, -128, 12, -10, 13, 9, -128, -128, 4, 3, 13, 3, -128, -128, -2, 9, 4, 9, -128, -128, 10, 9, 16, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 17, -12, 20, -11, 21, -9, 21, -7, 20, -4, 19, -3, 16, -2, -128, -128, 17, -12, 19, -11, 20, -9, 20, -7, 19, -4, 18, -3, 16, -2, -128, -128, 7, -2, 16, -2, 18, -1, 19, 1, 19, 3, 18, 6, 16, 8, 12, 9, 0, 9, -128, -128, 16, -2, 17, -1, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 18, -10, 19, -10, 20, -12, 19, -6, 19, -8, 18, -10, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 8, 9, 11, 9, 13, 8, 15, 6, 16, 4, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 6, 8, 8, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 15, -12, 18, -11, 19, -10, 20, -7, 20, -3, 19, 1, 17, 5, 15, 7, 13, 8, 9, 9, 0, 9, -128, -128, 15, -12, 17, -11, 18, -10, 19, -7, 19, -3, 18, 1, 16, 5, 14, 7, 12, 8, 9, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 14, -6, 12, 2, -128, -128, 6, -12, 21, -12, 20, -6, 20, -12, -128, -128, 7, -2, 13, -2, -128, -128, 0, 9, 15, 9, 17, 4, 14, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 14, -6, 12, 2, -128, -128, 6, -12, 21, -12, 20, -6, 20, -12, -128, -128, 7, -2, 13, -2, -128, -128, 0, 9, 7, 9, 18, -10, 19, -10, 20, -12, 19, -6, 19, -8, 18, -10, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 8, 9, 10, 9, 13, 8, 15, 6, 17, 2, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 6, 8, 8, 9, -128, -128, 10, 9, 12, 8, 14, 6, 16, 2, -128, -128, 13, 2, 20, 2, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 22, -12, 16, 9, -128, -128, 23, -12, 17, 9, -128, -128, 6, -12, 13, -12, -128, -128, 19, -12, 26, -12, -128, -128, 7, -2, 19, -2, -128, -128, 0, 9, 7, 9, -128, -128, 13, 9, 20, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 13, -12, -128, -128, 0, 9, 7, 9, 15, -12, 10, 5, 9, 7, 8, 8, 6, 9, 4, 9, 2, 8, 1, 6, 1, 4, 2, 3, 3, 4, 2, 5, -128, -128, 14, -12, 9, 5, 8, 7, 6, 9, -128, -128, 11, -12, 18, -12, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 23, -12, 6, 1, -128, -128, 13, -3, 17, 9, -128, -128, 12, -3, 16, 9, -128, -128, 6, -12, 13, -12, -128, -128, 19, -12, 25, -12, -128, -128, 0, 9, 7, 9, -128, -128, 13, 9, 19, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 13, -12, -128, -128, 0, 9, 15, 9, 17, 3, 14, 9, 9, -12, 3, 9, -128, -128, 9, -12, 10, 9, -128, -128, 10, -12, 11, 7, -128, -128, 23, -12, 10, 9, -128, -128, 23, -12, 17, 9, -128, -128, 24, -12, 18, 9, -128, -128, 6, -12, 10, -12, -128, -128, 23, -12, 27, -12, -128, -128, 0, 9, 6, 9, -128, -128, 14, 9, 21, 9, 9, -12, 3, 9, -128, -128, 9, -12, 16, 6, -128, -128, 9, -9, 16, 9, -128, -128, 22, -12, 16, 9, -128, -128, 6, -12, 9, -12, -128, -128, 19, -12, 25, -12, -128, -128, 0, 9, 6, 9, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 17, 3, 18, 0, 19, -4, 19, -7, 18, -10, 17, -11, 15, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 10, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 15, -12, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 18, -12, 21, -11, 22, -9, 22, -7, 21, -4, 19, -2, 15, -1, 7, -1, -128, -128, 18, -12, 20, -11, 21, -9, 21, -7, 20, -4, 18, -2, 15, -1, -128, -128, 0, 9, 7, 9, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 17, 3, 18, 0, 19, -4, 19, -7, 18, -10, 17, -11, 15, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 10, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 15, -12, -128, -128, 5, 7, 5, 6, 6, 4, 8, 3, 9, 3, 11, 4, 12, 6, 12, 13, 13, 14, 15, 14, 16, 12, 16, 11, -128, -128, 12, 6, 13, 12, 14, 13, 15, 13, 16, 12, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 17, -12, 20, -11, 21, -9, 21, -7, 20, -4, 19, -3, 16, -2, 7, -2, -128, -128, 17, -12, 19, -11, 20, -9, 20, -7, 19, -4, 18, -3, 16, -2, -128, -128, 12, -2, 14, -1, 15, 0, 16, 8, 17, 9, 19, 9, 20, 7, 20, 6, -128, -128, 15, 0, 17, 7, 18, 8, 19, 8, 20, 7, -128, -128, 0, 9, 7, 9, 19, -10, 20, -10, 21, -12, 20, -6, 20, -8, 19, -10, 18, -11, 15, -12, 11, -12, 8, -11, 6, -9, 6, -7, 7, -5, 8, -4, 15, 0, 17, 2, -128, -128, 6, -7, 8, -5, 15, -1, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 3, 2, 9, 3, 7, 4, 7, 13, -12, 7, 9, -128, -128, 14, -12, 8, 9, -128, -128, 7, -12, 4, -6, 6, -12, 21, -12, 20, -6, 20, -12, -128, -128, 4, 9, 11, 9, 8, -12, 5, -1, 4, 3, 4, 6, 5, 8, 8, 9, 12, 9, 15, 8, 17, 6, 18, 3, 22, -12, -128, -128, 9, -12, 6, -1, 5, 3, 5, 6, 6, 8, 8, 9, -128, -128, 5, -12, 12, -12, -128, -128, 19, -12, 25, -12, 6, -12, 7, 9, -128, -128, 7, -12, 8, 7, -128, -128, 20, -12, 7, 9, -128, -128, 4, -12, 10, -12, -128, -128, 16, -12, 22, -12, 8, -12, 6, 9, -128, -128, 9, -12, 7, 7, -128, -128, 16, -12, 6, 9, -128, -128, 16, -12, 14, 9, -128, -128, 17, -12, 15, 7, -128, -128, 24, -12, 14, 9, -128, -128, 5, -12, 12, -12, -128, -128, 21, -12, 27, -12, 7, -12, 14, 9, -128, -128, 8, -12, 15, 9, -128, -128, 21, -12, 1, 9, -128, -128, 5, -12, 11, -12, -128, -128, 17, -12, 23, -12, -128, -128, -1, 9, 5, 9, -128, -128, 11, 9, 17, 9, 6, -12, 10, -2, 7, 9, -128, -128, 7, -12, 11, -2, 8, 9, -128, -128, 21, -12, 11, -2, -128, -128, 4, -12, 10, -12, -128, -128, 17, -12, 23, -12, -128, -128, 4, 9, 11, 9, 20, -12, 1, 9, -128, -128, 21, -12, 2, 9, -128, -128, 8, -12, 5, -6, 7, -12, 21, -12, -128, -128, 1, 9, 15, 9, 17, 3, 14, 9, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 3, 2, 11, -3, 19, 2, -128, -128, 3, 2, 11, -2, 19, 2, 0, 16, 20, 16, 4, -12, 9, -6, -128, -128, 4, -12, 3, -11, 9, -6, 16, -5, 14, 2, 13, 6, 13, 8, 14, 9, 17, 9, 19, 7, 20, 5, -128, -128, 17, -5, 15, 2, 14, 6, 14, 8, 15, 9, -128, -128, 14, 2, 14, -1, 13, -4, 11, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 11, 8, 13, 5, 14, 2, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, 8, -12, 4, 1, 4, 4, 5, 7, 6, 8, -128, -128, 9, -12, 5, 1, -128, -128, 5, 1, 6, -2, 8, -4, 10, -5, 12, -5, 14, -4, 15, -3, 16, -1, 16, 2, 15, 5, 13, 8, 10, 9, 8, 9, 6, 8, 5, 5, 5, 1, -128, -128, 14, -4, 15, -2, 15, 2, 14, 5, 12, 8, 10, 9, -128, -128, 5, -12, 9, -12, 14, -2, 14, -1, 15, -1, 15, -2, 14, -4, 12, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 5, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, 18, -12, 14, 2, 13, 6, 13, 8, 14, 9, 17, 9, 19, 7, 20, 5, -128, -128, 19, -12, 15, 2, 14, 6, 14, 8, 15, 9, -128, -128, 14, 2, 14, -1, 13, -4, 11, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 11, 8, 13, 5, 14, 2, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, -128, -128, 15, -12, 19, -12, 4, 4, 8, 3, 11, 2, 14, 0, 15, -2, 14, -4, 12, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, 15, -11, 14, -10, 15, -9, 16, -10, 16, -11, 15, -12, 13, -12, 11, -11, 10, -10, 9, -8, 8, -5, 5, 9, 4, 13, 3, 15, -128, -128, 13, -12, 11, -10, 10, -8, 9, -4, 7, 5, 6, 9, 5, 12, 4, 14, 3, 15, 1, 16, -1, 16, -2, 15, -2, 14, -1, 13, 0, 14, -1, 15, -128, -128, 4, -5, 14, -5, 17, -5, 13, 9, 12, 12, 10, 15, 7, 16, 4, 16, 2, 15, 1, 14, 1, 13, 2, 12, 3, 13, 2, 14, -128, -128, 16, -5, 12, 9, 11, 12, 9, 15, 7, 16, -128, -128, 14, 2, 14, -1, 13, -4, 11, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 11, 8, 13, 5, 14, 2, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, 8, -12, 2, 9, -128, -128, 9, -12, 3, 9, -128, -128, 5, 2, 7, -2, 9, -4, 11, -5, 13, -5, 15, -4, 16, -3, 16, -1, 14, 5, 14, 8, 15, 9, -128, -128, 13, -5, 15, -3, 15, -1, 13, 5, 13, 8, 14, 9, 17, 9, 19, 7, 20, 5, -128, -128, 5, -12, 9, -12, 9, -12, 8, -11, 9, -10, 10, -11, 9, -12, -128, -128, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 8, 7, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 8, 6, 9, 9, 9, 11, 7, 12, 5, 10, -12, 9, -11, 10, -10, 11, -11, 10, -12, -128, -128, 2, -1, 3, -3, 5, -5, 8, -5, 9, -4, 9, -1, 6, 9, 5, 12, 4, 14, 3, 15, 1, 16, -1, 16, -2, 15, -2, 14, -1, 13, 0, 14, -1, 15, -128, -128, 7, -5, 8, -4, 8, -1, 5, 9, 4, 12, 3, 14, 1, 16, 8, -12, 2, 9, -128, -128, 9, -12, 3, 9, -128, -128, 16, -4, 15, -3, 16, -2, 17, -3, 17, -4, 16, -5, 15, -5, 13, -4, 9, 0, 7, 1, 5, 1, -128, -128, 7, 1, 9, 2, 11, 8, 12, 9, -128, -128, 7, 1, 8, 2, 10, 8, 11, 9, 13, 9, 15, 8, 17, 5, -128, -128, 5, -12, 9, -12, 8, -12, 4, 2, 3, 6, 3, 8, 4, 9, 7, 9, 9, 7, 10, 5, -128, -128, 9, -12, 5, 2, 4, 6, 4, 8, 5, 9, -128, -128, 5, -12, 9, -12, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -2, 7, 2, 5, 9, -128, -128, 6, -5, 7, -4, 7, -2, 6, 2, 4, 9, -128, -128, 7, 2, 9, -2, 11, -4, 13, -5, 15, -5, 17, -4, 18, -3, 18, -1, 15, 9, -128, -128, 15, -5, 17, -3, 17, -1, 14, 9, -128, -128, 17, 2, 19, -2, 21, -4, 23, -5, 25, -5, 27, -4, 28, -3, 28, -1, 26, 5, 26, 8, 27, 9, -128, -128, 25, -5, 27, -3, 27, -1, 25, 5, 25, 8, 26, 9, 29, 9, 31, 7, 32, 5, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -2, 7, 2, 5, 9, -128, -128, 6, -5, 7, -4, 7, -2, 6, 2, 4, 9, -128, -128, 7, 2, 9, -2, 11, -4, 13, -5, 15, -5, 17, -4, 18, -3, 18, -1, 16, 5, 16, 8, 17, 9, -128, -128, 15, -5, 17, -3, 17, -1, 15, 5, 15, 8, 16, 9, 19, 9, 21, 7, 22, 5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 5, 15, 2, 15, -1, 14, -3, 13, -4, 11, -5, 9, -5, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, -128, -128, 9, 9, 11, 8, 13, 5, 14, 2, 14, -2, 13, -4, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -2, 7, 2, 3, 16, -128, -128, 6, -5, 7, -4, 7, -2, 6, 2, 2, 16, -128, -128, 7, 2, 8, -1, 10, -4, 12, -5, 14, -5, 16, -4, 17, -3, 18, -1, 18, 2, 17, 5, 15, 8, 12, 9, 10, 9, 8, 8, 7, 5, 7, 2, -128, -128, 16, -4, 17, -2, 17, 2, 16, 5, 14, 8, 12, 9, -128, -128, -1, 16, 6, 16, 16, -5, 10, 16, -128, -128, 17, -5, 11, 16, -128, -128, 14, 2, 14, -1, 13, -4, 11, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 11, 8, 13, 5, 14, 2, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, -128, -128, 7, 16, 14, 16, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -2, 7, 2, 5, 9, -128, -128, 6, -5, 7, -4, 7, -2, 6, 2, 4, 9, -128, -128, 7, 2, 9, -2, 11, -4, 13, -5, 15, -5, 16, -4, 16, -3, 15, -2, 14, -3, 15, -4, 14, -3, 14, -2, 15, -2, 15, -3, 14, -4, 11, -5, 8, -5, 5, -4, 4, -3, 4, -1, 5, 0, 12, 4, 13, 5, -128, -128, 4, -2, 5, -1, 12, 3, 13, 4, 13, 7, 12, 8, 9, 9, 6, 9, 3, 8, 2, 7, 2, 6, 3, 6, 3, 7, 9, -12, 5, 2, 4, 6, 4, 8, 5, 9, 8, 9, 10, 7, 11, 5, -128, -128, 10, -12, 6, 2, 5, 6, 5, 8, 6, 9, -128, -128, 3, -5, 12, -5, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 7, 8, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 7, 6, 8, 8, 9, 10, 9, 12, 8, 14, 6, 16, 2, -128, -128, 18, -5, 16, 2, 15, 6, 15, 8, 16, 9, 19, 9, 21, 7, 22, 5, -128, -128, 19, -5, 17, 2, 16, 6, 16, 8, 17, 9, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 7, 8, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 7, 6, 8, 8, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, -1, 17, -5, 16, -5, 17, -3, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 7, 8, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 7, 6, 8, 8, 9, 10, 9, 12, 8, 14, 6, 15, 4, -128, -128, 17, -5, 15, 4, 15, 7, 16, 8, 18, 9, 20, 9, 22, 8, 24, 6, 25, 4, 26, 0, 26, -5, 25, -5, 26, -3, -128, -128, 18, -5, 16, 4, 16, 7, 18, 9, 3, -1, 5, -4, 7, -5, 10, -5, 11, -3, 11, 0, -128, -128, 9, -5, 10, -3, 10, 0, 9, 4, 8, 6, 6, 8, 4, 9, 3, 9, 2, 8, 2, 7, 3, 6, 4, 7, 3, 8, -128, -128, 9, 4, 9, 7, 10, 9, 13, 9, 15, 8, 17, 5, -128, -128, 17, -4, 16, -3, 17, -2, 18, -3, 18, -4, 17, -5, 16, -5, 14, -4, 12, -2, 11, 0, 10, 4, 10, 7, 11, 9, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 7, 8, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 7, 6, 8, 8, 9, 10, 9, 12, 8, 14, 6, 16, 2, -128, -128, 19, -5, 15, 9, 14, 12, 12, 15, 9, 16, 6, 16, 4, 15, 3, 14, 3, 13, 4, 12, 5, 13, 4, 14, -128, -128, 18, -5, 14, 9, 13, 12, 11, 15, 9, 16, 17, -5, 16, -3, 14, -1, 6, 5, 4, 7, 3, 9, -128, -128, 4, -1, 5, -3, 7, -5, 10, -5, 14, -3, -128, -128, 5, -3, 7, -4, 10, -4, 14, -3, 16, -3, -128, -128, 4, 7, 6, 7, 10, 8, 13, 8, 15, 7, -128, -128, 6, 7, 10, 9, 13, 9, 15, 7, 16, 5, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 -}; - -static const hershey_font_t timesi { - .chars = { - {.width=16, .vertex_count=0, .vertices=×i_vertices[0]}, - {.width=11, .vertex_count=16, .vertices=×i_vertices[0]}, - {.width=18, .vertex_count=11, .vertices=×i_vertices[32]}, - {.width=21, .vertex_count=11, .vertices=×i_vertices[54]}, - {.width=21, .vertex_count=40, .vertices=×i_vertices[76]}, - {.width=24, .vertex_count=31, .vertices=×i_vertices[156]}, - {.width=25, .vertex_count=48, .vertices=×i_vertices[218]}, - {.width=9, .vertex_count=5, .vertices=×i_vertices[314]}, - {.width=15, .vertex_count=19, .vertices=×i_vertices[324]}, - {.width=15, .vertex_count=19, .vertices=×i_vertices[362]}, - {.width=16, .vertex_count=8, .vertices=×i_vertices[400]}, - {.width=26, .vertex_count=5, .vertices=×i_vertices[416]}, - {.width=11, .vertex_count=7, .vertices=×i_vertices[426]}, - {.width=26, .vertex_count=2, .vertices=×i_vertices[440]}, - {.width=11, .vertex_count=5, .vertices=×i_vertices[444]}, - {.width=22, .vertex_count=2, .vertices=×i_vertices[454]}, - {.width=21, .vertex_count=41, .vertices=×i_vertices[458]}, - {.width=21, .vertex_count=14, .vertices=×i_vertices[540]}, - {.width=21, .vertex_count=41, .vertices=×i_vertices[568]}, - {.width=21, .vertex_count=49, .vertices=×i_vertices[650]}, - {.width=21, .vertex_count=9, .vertices=×i_vertices[748]}, - {.width=21, .vertex_count=38, .vertices=×i_vertices[766]}, - {.width=21, .vertex_count=45, .vertices=×i_vertices[842]}, - {.width=21, .vertex_count=29, .vertices=×i_vertices[932]}, - {.width=21, .vertex_count=62, .vertices=×i_vertices[990]}, - {.width=21, .vertex_count=45, .vertices=×i_vertices[1114]}, - {.width=11, .vertex_count=10, .vertices=×i_vertices[1204]}, - {.width=11, .vertex_count=13, .vertices=×i_vertices[1224]}, - {.width=24, .vertex_count=3, .vertices=×i_vertices[1250]}, - {.width=26, .vertex_count=5, .vertices=×i_vertices[1256]}, - {.width=24, .vertex_count=3, .vertices=×i_vertices[1266]}, - {.width=21, .vertex_count=33, .vertices=×i_vertices[1272]}, - {.width=27, .vertex_count=55, .vertices=×i_vertices[1338]}, - {.width=20, .vertex_count=17, .vertices=×i_vertices[1448]}, - {.width=24, .vertex_count=40, .vertices=×i_vertices[1482]}, - {.width=21, .vertex_count=33, .vertices=×i_vertices[1562]}, - {.width=23, .vertex_count=29, .vertices=×i_vertices[1628]}, - {.width=23, .vertex_count=21, .vertices=×i_vertices[1686]}, - {.width=22, .vertex_count=19, .vertices=×i_vertices[1728]}, - {.width=22, .vertex_count=41, .vertices=×i_vertices[1766]}, - {.width=26, .vertex_count=26, .vertices=×i_vertices[1848]}, - {.width=13, .vertex_count=11, .vertices=×i_vertices[1900]}, - {.width=18, .vertex_count=20, .vertices=×i_vertices[1922]}, - {.width=23, .vertex_count=26, .vertices=×i_vertices[1962]}, - {.width=20, .vertex_count=13, .vertices=×i_vertices[2014]}, - {.width=27, .vertex_count=29, .vertices=×i_vertices[2040]}, - {.width=25, .vertex_count=20, .vertices=×i_vertices[2098]}, - {.width=22, .vertex_count=41, .vertices=×i_vertices[2138]}, - {.width=23, .vertex_count=26, .vertices=×i_vertices[2220]}, - {.width=22, .vertex_count=60, .vertices=×i_vertices[2272]}, - {.width=24, .vertex_count=41, .vertices=×i_vertices[2392]}, - {.width=23, .vertex_count=34, .vertices=×i_vertices[2474]}, - {.width=21, .vertex_count=15, .vertices=×i_vertices[2542]}, - {.width=25, .vertex_count=24, .vertices=×i_vertices[2572]}, - {.width=20, .vertex_count=14, .vertices=×i_vertices[2620]}, - {.width=26, .vertex_count=23, .vertices=×i_vertices[2648]}, - {.width=22, .vertex_count=20, .vertices=×i_vertices[2694]}, - {.width=21, .vertex_count=19, .vertices=×i_vertices[2734]}, - {.width=22, .vertex_count=15, .vertices=×i_vertices[2772]}, - {.width=14, .vertex_count=11, .vertices=×i_vertices[2802]}, - {.width=14, .vertex_count=2, .vertices=×i_vertices[2824]}, - {.width=14, .vertex_count=11, .vertices=×i_vertices[2828]}, - {.width=22, .vertex_count=7, .vertices=×i_vertices[2850]}, - {.width=20, .vertex_count=2, .vertices=×i_vertices[2864]}, - {.width=12, .vertex_count=6, .vertices=×i_vertices[2868]}, - {.width=21, .vertex_count=38, .vertices=×i_vertices[2880]}, - {.width=19, .vertex_count=35, .vertices=×i_vertices[2956]}, - {.width=18, .vertex_count=24, .vertices=×i_vertices[3026]}, - {.width=21, .vertex_count=41, .vertices=×i_vertices[3074]}, - {.width=18, .vertex_count=25, .vertices=×i_vertices[3156]}, - {.width=15, .vertex_count=34, .vertices=×i_vertices[3206]}, - {.width=20, .vertex_count=42, .vertices=×i_vertices[3274]}, - {.width=21, .vertex_count=30, .vertices=×i_vertices[3358]}, - {.width=13, .vertex_count=25, .vertices=×i_vertices[3418]}, - {.width=13, .vertex_count=31, .vertices=×i_vertices[3468]}, - {.width=20, .vertex_count=33, .vertices=×i_vertices[3530]}, - {.width=12, .vertex_count=17, .vertices=×i_vertices[3596]}, - {.width=33, .vertex_count=51, .vertices=×i_vertices[3630]}, - {.width=23, .vertex_count=36, .vertices=×i_vertices[3732]}, - {.width=18, .vertex_count=31, .vertices=×i_vertices[3804]}, - {.width=21, .vertex_count=41, .vertices=×i_vertices[3866]}, - {.width=20, .vertex_count=32, .vertices=×i_vertices[3948]}, - {.width=17, .vertex_count=25, .vertices=×i_vertices[4012]}, - {.width=17, .vertex_count=27, .vertices=×i_vertices[4062]}, - {.width=14, .vertex_count=17, .vertices=×i_vertices[4116]}, - {.width=23, .vertex_count=36, .vertices=×i_vertices[4150]}, - {.width=20, .vertex_count=25, .vertices=×i_vertices[4222]}, - {.width=29, .vertex_count=40, .vertices=×i_vertices[4272]}, - {.width=20, .vertex_count=41, .vertices=×i_vertices[4352]}, - {.width=21, .vertex_count=40, .vertices=×i_vertices[4434]}, - {.width=20, .vertex_count=30, .vertices=×i_vertices[4514]}, - {.width=14, .vertex_count=39, .vertices=×i_vertices[4574]}, - {.width=8, .vertex_count=2, .vertices=×i_vertices[4652]}, - {.width=14, .vertex_count=39, .vertices=×i_vertices[4656]}, - {.width=24, .vertex_count=23, .vertices=×i_vertices[4734]} - } -}; - -static const int8_t timesr_vertices[4600] = { - 5, -12, 4, -10, 5, 2, 6, -10, 5, -12, -128, -128, 5, -10, 5, -4, -128, -128, 5, 7, 4, 8, 5, 9, 6, 8, 5, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, -128, -128, 14, -12, 13, -11, 13, -5, -128, -128, 14, -11, 13, -5, -128, -128, 14, -12, 15, -11, 13, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 8, -16, 8, 13, -128, -128, 12, -16, 12, 13, -128, -128, 16, -9, 15, -8, 16, -7, 17, -8, 17, -9, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 13, -1, 15, 0, 17, 2, -128, -128, 3, -7, 5, -5, 7, -4, 13, -2, 15, -1, 16, 0, 17, 2, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 3, 5, 4, 4, 5, 5, 4, 6, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 21, -4, 20, -3, 21, -2, 22, -3, 22, -4, 21, -5, 20, -5, 19, -4, 18, -2, 16, 3, 14, 6, 12, 8, 10, 9, 7, 9, 4, 8, 3, 6, 3, 3, 4, 1, 10, -3, 12, -5, 13, -7, 13, -9, 12, -11, 10, -12, 8, -11, 7, -9, 7, -7, 8, -4, 10, -1, 15, 6, 17, 8, 20, 9, 21, 9, 22, 8, 22, 7, -128, -128, 7, 9, 5, 8, 4, 6, 4, 3, 5, 1, 7, -1, -128, -128, 7, -7, 8, -5, 16, 6, 18, 8, 20, 9, 4, -12, 3, -5, -128, -128, 5, -12, 3, -5, 11, -16, 9, -14, 7, -11, 5, -7, 4, -2, 4, 2, 5, 7, 7, 11, 9, 14, 11, 16, -128, -128, 9, -14, 7, -10, 6, -7, 5, -2, 5, 2, 6, 7, 7, 10, 9, 14, 3, -16, 5, -14, 7, -11, 9, -7, 10, -2, 10, 2, 9, 7, 7, 11, 5, 14, 3, 16, -128, -128, 5, -14, 7, -10, 8, -7, 9, -2, 9, 2, 8, 7, 7, 10, 5, 14, 8, -6, 8, 6, -128, -128, 3, -3, 13, 3, -128, -128, 13, -3, 3, 3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 5, 5, 4, 6, 3, 5, 4, 4, 5, 5, 5, 7, 3, 9, 4, 0, 22, 0, 4, 4, 3, 5, 4, 6, 5, 5, 4, 4, 20, -16, 2, 16, 9, -12, 6, -11, 4, -8, 3, -3, 3, 0, 4, 5, 6, 8, 9, 9, 11, 9, 14, 8, 16, 5, 17, 0, 17, -3, 16, -8, 14, -11, 11, -12, 9, -12, -128, -128, 9, -12, 7, -11, 6, -10, 5, -8, 4, -3, 4, 0, 5, 5, 6, 7, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 14, 7, 15, 5, 16, 0, 16, -3, 15, -8, 14, -10, 13, -11, 11, -12, 6, -8, 8, -9, 11, -12, 11, 9, -128, -128, 10, -11, 10, 9, -128, -128, 6, 9, 15, 9, 4, -8, 5, -7, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 12, -12, 15, -11, 16, -10, 17, -8, 17, -6, 16, -4, 13, -2, 8, 0, 6, 1, 4, 3, 3, 6, 3, 9, -128, -128, 12, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 12, -2, 8, 0, -128, -128, 3, 7, 4, 6, 6, 6, 11, 8, 14, 8, 16, 7, 17, 6, -128, -128, 6, 6, 11, 9, 15, 9, 16, 8, 17, 6, 17, 4, 4, -8, 5, -7, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 12, -12, 15, -11, 16, -9, 16, -6, 15, -4, 12, -3, 9, -3, -128, -128, 12, -12, 14, -11, 15, -9, 15, -6, 14, -4, 12, -3, -128, -128, 12, -3, 14, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 4, 4, 3, 5, 4, 4, 5, -128, -128, 15, -1, 16, 2, 16, 5, 15, 7, 14, 8, 12, 9, 12, -10, 12, 9, -128, -128, 13, -12, 13, 9, -128, -128, 13, -12, 2, 3, 18, 3, -128, -128, 9, 9, 16, 9, 5, -12, 3, -2, -128, -128, 3, -2, 5, -4, 8, -5, 11, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 4, 4, 3, 5, 4, 4, 5, -128, -128, 11, -5, 13, -4, 15, -2, 16, 1, 16, 3, 15, 6, 13, 8, 11, 9, -128, -128, 5, -12, 15, -12, -128, -128, 5, -11, 10, -11, 15, -12, 15, -9, 14, -8, 15, -7, 16, -8, 16, -9, 15, -11, 13, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 2, 16, -1, 14, -3, 11, -4, 10, -4, 7, -3, 5, -1, 4, 2, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -3, 4, 3, 5, 6, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 15, 6, 16, 3, 16, 2, 15, -1, 13, -3, 11, -4, 3, -12, 3, -6, -128, -128, 3, -8, 4, -10, 6, -12, 8, -12, 13, -9, 15, -9, 16, -10, 17, -12, -128, -128, 4, -10, 6, -11, 8, -11, 13, -9, -128, -128, 17, -12, 17, -9, 16, -6, 12, -1, 11, 1, 10, 4, 10, 9, -128, -128, 16, -6, 11, -1, 10, 1, 9, 4, 9, 9, 8, -12, 5, -11, 4, -9, 4, -6, 5, -4, 8, -3, 12, -3, 15, -4, 16, -6, 16, -9, 15, -11, 12, -12, 8, -12, -128, -128, 8, -12, 6, -11, 5, -9, 5, -6, 6, -4, 8, -3, -128, -128, 12, -3, 14, -4, 15, -6, 15, -9, 14, -11, 12, -12, -128, -128, 8, -3, 5, -2, 4, -1, 3, 1, 3, 5, 4, 7, 5, 8, 8, 9, 12, 9, 15, 8, 16, 7, 17, 5, 17, 1, 16, -1, 15, -2, 12, -3, -128, -128, 8, -3, 6, -2, 5, -1, 4, 1, 4, 5, 5, 7, 6, 8, 8, 9, -128, -128, 12, 9, 14, 8, 15, 7, 16, 5, 16, 1, 15, -1, 14, -2, 12, -3, 16, -5, 15, -2, 13, 0, 10, 1, 9, 1, 6, 0, 4, -2, 3, -5, 3, -6, 4, -9, 6, -11, 9, -12, 11, -12, 14, -11, 16, -9, 17, -6, 17, 0, 16, 4, 15, 6, 13, 8, 10, 9, 7, 9, 5, 8, 4, 6, 4, 5, 5, 4, 6, 5, 5, 6, -128, -128, 9, 1, 7, 0, 5, -2, 4, -5, 4, -6, 5, -9, 7, -11, 9, -12, -128, -128, 11, -12, 13, -11, 15, -9, 16, -6, 16, 0, 15, 4, 14, 6, 12, 8, 10, 9, 4, -3, 3, -2, 4, -1, 5, -2, 4, -3, -128, -128, 4, 4, 3, 5, 4, 6, 5, 5, 4, 4, 4, -3, 3, -2, 4, -1, 5, -2, 4, -3, -128, -128, 5, 5, 4, 6, 3, 5, 4, 4, 5, 5, 5, 7, 3, 9, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 4, -8, 5, -7, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 7, -12, 10, -12, 13, -11, 14, -10, 15, -8, 15, -6, 14, -4, 13, -3, 9, -1, 9, 2, -128, -128, 10, -12, 12, -11, 13, -10, 14, -8, 14, -6, 13, -4, 11, -2, -128, -128, 9, 7, 8, 8, 9, 9, 10, 8, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 10, -12, 3, 9, -128, -128, 10, -12, 17, 9, -128, -128, 10, -9, 16, 9, -128, -128, 5, 3, 14, 3, -128, -128, 1, 9, 7, 9, -128, -128, 13, 9, 19, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -6, 18, -4, 17, -3, 14, -2, -128, -128, 14, -12, 16, -11, 17, -10, 18, -8, 18, -6, 17, -4, 16, -3, 14, -2, -128, -128, 6, -2, 14, -2, 17, -1, 18, 0, 19, 2, 19, 5, 18, 7, 17, 8, 14, 9, 2, 9, -128, -128, 14, -2, 16, -1, 17, 0, 18, 2, 18, 5, 17, 7, 16, 8, 14, 9, 17, -9, 18, -6, 18, -12, 17, -9, 15, -11, 12, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, 8, 8, 10, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 12, -12, 15, -11, 17, -9, 18, -7, 19, -4, 19, 1, 18, 4, 17, 6, 15, 8, 12, 9, 2, 9, -128, -128, 12, -12, 14, -11, 16, -9, 17, -7, 18, -4, 18, 1, 17, 4, 16, 6, 14, 8, 12, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 12, -6, 12, 2, -128, -128, 2, -12, 18, -12, 18, -6, 17, -12, -128, -128, 6, -2, 12, -2, -128, -128, 2, 9, 18, 9, 18, 3, 17, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 12, -6, 12, 2, -128, -128, 2, -12, 18, -12, 18, -6, 17, -12, -128, -128, 6, -2, 12, -2, -128, -128, 2, 9, 9, 9, 17, -9, 18, -6, 18, -12, 17, -9, 15, -11, 12, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, 8, 8, 10, 9, -128, -128, 17, 1, 17, 9, -128, -128, 18, 1, 18, 9, -128, -128, 14, 1, 21, 1, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 18, -12, 18, 9, -128, -128, 19, -12, 19, 9, -128, -128, 2, -12, 9, -12, -128, -128, 15, -12, 22, -12, -128, -128, 6, -2, 18, -2, -128, -128, 2, 9, 9, 9, -128, -128, 15, 9, 22, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 9, -12, -128, -128, 2, 9, 9, 9, 10, -12, 10, 5, 9, 8, 7, 9, 5, 9, 3, 8, 2, 6, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 9, -12, 9, 5, 8, 8, 7, 9, -128, -128, 6, -12, 13, -12, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 19, -12, 6, 1, -128, -128, 11, -3, 19, 9, -128, -128, 10, -3, 18, 9, -128, -128, 2, -12, 9, -12, -128, -128, 15, -12, 21, -12, -128, -128, 2, 9, 9, 9, -128, -128, 15, 9, 21, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 9, -12, -128, -128, 2, 9, 17, 9, 17, 3, 16, 9, 5, -12, 5, 9, -128, -128, 6, -12, 12, 6, -128, -128, 5, -12, 12, 9, -128, -128, 19, -12, 12, 9, -128, -128, 19, -12, 19, 9, -128, -128, 20, -12, 20, 9, -128, -128, 2, -12, 6, -12, -128, -128, 19, -12, 23, -12, -128, -128, 2, 9, 8, 9, -128, -128, 16, 9, 23, 9, 5, -12, 5, 9, -128, -128, 6, -12, 18, 7, -128, -128, 6, -10, 18, 9, -128, -128, 18, -12, 18, 9, -128, -128, 2, -12, 6, -12, -128, -128, 15, -12, 21, -12, -128, -128, 2, 9, 8, 9, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 0, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, 19, 0, 19, -3, 18, -7, 17, -9, 15, -11, 12, -12, 10, -12, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -3, 4, 0, 5, 4, 6, 6, 8, 8, 10, 9, -128, -128, 12, 9, 14, 8, 16, 6, 17, 4, 18, 0, 18, -3, 17, -7, 16, -9, 14, -11, 12, -12, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -5, 18, -3, 17, -2, 14, -1, 6, -1, -128, -128, 14, -12, 16, -11, 17, -10, 18, -8, 18, -5, 17, -3, 16, -2, 14, -1, -128, -128, 2, 9, 9, 9, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 0, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, 19, 0, 19, -3, 18, -7, 17, -9, 15, -11, 12, -12, 10, -12, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -3, 4, 0, 5, 4, 6, 6, 8, 8, 10, 9, -128, -128, 12, 9, 14, 8, 16, 6, 17, 4, 18, 0, 18, -3, 17, -7, 16, -9, 14, -11, 12, -12, -128, -128, 7, 7, 7, 6, 8, 4, 10, 3, 11, 3, 13, 4, 14, 6, 15, 13, 16, 14, 18, 14, 19, 12, 19, 11, -128, -128, 14, 6, 15, 10, 16, 12, 17, 13, 18, 13, 19, 12, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -6, 18, -4, 17, -3, 14, -2, 6, -2, -128, -128, 14, -12, 16, -11, 17, -10, 18, -8, 18, -6, 17, -4, 16, -3, 14, -2, -128, -128, 2, 9, 9, 9, -128, -128, 11, -2, 13, -1, 14, 0, 17, 7, 18, 8, 19, 8, 20, 7, -128, -128, 13, -1, 14, 1, 16, 8, 17, 9, 19, 9, 20, 7, 20, 6, 16, -9, 17, -12, 17, -6, 16, -9, 14, -11, 11, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 13, -1, 15, 0, 17, 2, -128, -128, 3, -7, 5, -5, 7, -4, 13, -2, 15, -1, 16, 0, 17, 2, 17, 6, 15, 8, 12, 9, 9, 9, 6, 8, 4, 6, 3, 3, 3, 9, 4, 6, 9, -12, 9, 9, -128, -128, 10, -12, 10, 9, -128, -128, 3, -12, 2, -6, 2, -12, 17, -12, 17, -6, 16, -12, -128, -128, 6, 9, 13, 9, 5, -12, 5, 3, 6, 6, 8, 8, 11, 9, 13, 9, 16, 8, 18, 6, 19, 3, 19, -12, -128, -128, 6, -12, 6, 3, 7, 6, 9, 8, 11, 9, -128, -128, 2, -12, 9, -12, -128, -128, 16, -12, 22, -12, 3, -12, 10, 9, -128, -128, 4, -12, 10, 6, -128, -128, 17, -12, 10, 9, -128, -128, 1, -12, 7, -12, -128, -128, 13, -12, 19, -12, 4, -12, 8, 9, -128, -128, 5, -12, 8, 4, -128, -128, 12, -12, 8, 9, -128, -128, 12, -12, 16, 9, -128, -128, 13, -12, 16, 4, -128, -128, 20, -12, 16, 9, -128, -128, 1, -12, 8, -12, -128, -128, 17, -12, 23, -12, 3, -12, 16, 9, -128, -128, 4, -12, 17, 9, -128, -128, 17, -12, 3, 9, -128, -128, 1, -12, 7, -12, -128, -128, 13, -12, 19, -12, -128, -128, 1, 9, 7, 9, -128, -128, 13, 9, 19, 9, 3, -12, 10, -1, 10, 9, -128, -128, 4, -12, 11, -1, 11, 9, -128, -128, 18, -12, 11, -1, -128, -128, 1, -12, 7, -12, -128, -128, 14, -12, 20, -12, -128, -128, 7, 9, 14, 9, 16, -12, 3, 9, -128, -128, 17, -12, 4, 9, -128, -128, 4, -12, 3, -6, 3, -12, 17, -12, -128, -128, 3, 9, 17, 9, 17, 3, 16, 9, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 3, 2, 11, -3, 19, 2, -128, -128, 3, 2, 11, -2, 19, 2, 0, 16, 20, 16, 4, -12, 9, -6, -128, -128, 4, -12, 3, -11, 9, -6, 5, -3, 5, -2, 4, -2, 4, -3, 5, -4, 7, -5, 11, -5, 13, -4, 14, -3, 15, -1, 15, 6, 16, 8, 17, 9, -128, -128, 14, -3, 14, 6, 15, 8, 17, 9, 18, 9, -128, -128, 14, -1, 13, 0, 7, 1, 4, 2, 3, 4, 3, 6, 4, 8, 7, 9, 10, 9, 12, 8, 14, 6, -128, -128, 7, 1, 5, 2, 4, 4, 4, 6, 5, 8, 7, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 6, -2, 8, -4, 10, -5, 12, -5, 15, -4, 17, -2, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 10, 9, 8, 8, 6, 6, -128, -128, 12, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 12, 9, -128, -128, 2, -12, 6, -12, 15, -2, 14, -1, 15, 0, 16, -1, 16, -2, 14, -4, 12, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, 15, -12, 15, 9, -128, -128, 16, -12, 16, 9, -128, -128, 15, -2, 13, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 13, 8, 15, 6, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, -128, -128, 12, -12, 16, -12, -128, -128, 15, 9, 19, 9, 4, 1, 16, 1, 16, -1, 15, -3, 14, -4, 12, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 15, 1, 15, -2, 14, -4, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, 10, -11, 9, -10, 10, -9, 11, -10, 11, -11, 10, -12, 8, -12, 6, -11, 5, -9, 5, 9, -128, -128, 8, -12, 7, -11, 6, -9, 6, 9, -128, -128, 2, -5, 10, -5, -128, -128, 2, 9, 9, 9, 8, -5, 6, -4, 5, -3, 4, -1, 4, 1, 5, 3, 6, 4, 8, 5, 10, 5, 12, 4, 13, 3, 14, 1, 14, -1, 13, -3, 12, -4, 10, -5, 8, -5, -128, -128, 6, -4, 5, -2, 5, 2, 6, 4, -128, -128, 12, 4, 13, 2, 13, -2, 12, -4, -128, -128, 13, -3, 14, -4, 16, -5, 16, -4, 14, -4, -128, -128, 5, 3, 4, 4, 3, 6, 3, 7, 4, 9, 7, 10, 12, 10, 15, 11, 16, 12, -128, -128, 3, 7, 4, 8, 7, 9, 12, 9, 15, 10, 16, 12, 16, 13, 15, 15, 12, 16, 6, 16, 3, 15, 2, 13, 2, 12, 3, 10, 6, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 6, -2, 8, -4, 11, -5, 13, -5, 16, -4, 17, -2, 17, 9, -128, -128, 13, -5, 15, -4, 16, -2, 16, 9, -128, -128, 2, -12, 6, -12, -128, -128, 2, 9, 9, 9, -128, -128, 13, 9, 20, 9, 5, -12, 4, -11, 5, -10, 6, -11, 5, -12, -128, -128, 5, -5, 5, 9, -128, -128, 6, -5, 6, 9, -128, -128, 2, -5, 6, -5, -128, -128, 2, 9, 9, 9, 6, -12, 5, -11, 6, -10, 7, -11, 6, -12, -128, -128, 7, -5, 7, 13, 6, 15, 4, 16, 2, 16, 1, 15, 1, 14, 2, 13, 3, 14, 2, 15, -128, -128, 6, -5, 6, 13, 5, 15, 4, 16, -128, -128, 3, -5, 7, -5, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 16, -5, 6, 5, -128, -128, 11, 1, 17, 9, -128, -128, 10, 1, 16, 9, -128, -128, 2, -12, 6, -12, -128, -128, 13, -5, 19, -5, -128, -128, 2, 9, 9, 9, -128, -128, 13, 9, 19, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 6, -12, -128, -128, 2, 9, 9, 9, 5, -5, 5, 9, -128, -128, 6, -5, 6, 9, -128, -128, 6, -2, 8, -4, 11, -5, 13, -5, 16, -4, 17, -2, 17, 9, -128, -128, 13, -5, 15, -4, 16, -2, 16, 9, -128, -128, 17, -2, 19, -4, 22, -5, 24, -5, 27, -4, 28, -2, 28, 9, -128, -128, 24, -5, 26, -4, 27, -2, 27, 9, -128, -128, 2, -5, 6, -5, -128, -128, 2, 9, 9, 9, -128, -128, 13, 9, 20, 9, -128, -128, 24, 9, 31, 9, 5, -5, 5, 9, -128, -128, 6, -5, 6, 9, -128, -128, 6, -2, 8, -4, 11, -5, 13, -5, 16, -4, 17, -2, 17, 9, -128, -128, 13, -5, 15, -4, 16, -2, 16, 9, -128, -128, 2, -5, 6, -5, -128, -128, 2, 9, 9, 9, -128, -128, 13, 9, 20, 9, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 1, 16, -2, 14, -4, 11, -5, 9, -5, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 15, 6, 16, 3, 16, 1, 15, -2, 13, -4, 11, -5, 5, -5, 5, 16, -128, -128, 6, -5, 6, 16, -128, -128, 6, -2, 8, -4, 10, -5, 12, -5, 15, -4, 17, -2, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 10, 9, 8, 8, 6, 6, -128, -128, 12, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 12, 9, -128, -128, 2, -5, 6, -5, -128, -128, 2, 16, 9, 16, 15, -5, 15, 16, -128, -128, 16, -5, 16, 16, -128, -128, 15, -2, 13, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 13, 8, 15, 6, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, -128, -128, 12, 16, 19, 16, 5, -5, 5, 9, -128, -128, 6, -5, 6, 9, -128, -128, 6, 1, 7, -2, 9, -4, 11, -5, 14, -5, 15, -4, 15, -3, 14, -2, 13, -3, 14, -4, -128, -128, 2, -5, 6, -5, -128, -128, 2, 9, 9, 9, 13, -3, 14, -5, 14, -1, 13, -3, 12, -4, 10, -5, 6, -5, 4, -4, 3, -3, 3, -1, 4, 0, 6, 1, 11, 3, 13, 4, 14, 5, -128, -128, 3, -2, 4, -1, 6, 0, 11, 2, 13, 3, 14, 4, 14, 7, 13, 8, 11, 9, 7, 9, 5, 8, 4, 7, 3, 5, 3, 9, 4, 7, 5, -12, 5, 5, 6, 8, 8, 9, 10, 9, 12, 8, 13, 6, -128, -128, 6, -12, 6, 5, 7, 8, 8, 9, -128, -128, 2, -5, 10, -5, 5, -5, 5, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 6, -5, 6, 6, 7, 8, 9, 9, -128, -128, 16, -5, 16, 9, -128, -128, 17, -5, 17, 9, -128, -128, 2, -5, 6, -5, -128, -128, 13, -5, 17, -5, -128, -128, 16, 9, 20, 9, 3, -5, 9, 9, -128, -128, 4, -5, 9, 7, -128, -128, 15, -5, 9, 9, -128, -128, 1, -5, 7, -5, -128, -128, 11, -5, 17, -5, 4, -5, 8, 9, -128, -128, 5, -5, 8, 6, -128, -128, 12, -5, 8, 9, -128, -128, 12, -5, 16, 9, -128, -128, 13, -5, 16, 6, -128, -128, 20, -5, 16, 9, -128, -128, 1, -5, 8, -5, -128, -128, 17, -5, 23, -5, 4, -5, 15, 9, -128, -128, 5, -5, 16, 9, -128, -128, 16, -5, 4, 9, -128, -128, 2, -5, 8, -5, -128, -128, 12, -5, 18, -5, -128, -128, 2, 9, 8, 9, -128, -128, 12, 9, 18, 9, 4, -5, 10, 9, -128, -128, 5, -5, 10, 7, -128, -128, 16, -5, 10, 9, 8, 13, 6, 15, 4, 16, 3, 16, 2, 15, 3, 14, 4, 15, -128, -128, 2, -5, 8, -5, -128, -128, 12, -5, 18, -5, 14, -5, 3, 9, -128, -128, 15, -5, 4, 9, -128, -128, 4, -5, 3, -1, 3, -5, 15, -5, -128, -128, 3, 9, 15, 9, 15, 5, 14, 9, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 -}; - -static const hershey_font_t timesr { - .chars = { - {.width=16, .vertex_count=0, .vertices=×r_vertices[0]}, - {.width=10, .vertex_count=14, .vertices=×r_vertices[0]}, - {.width=18, .vertex_count=21, .vertices=×r_vertices[28]}, - {.width=21, .vertex_count=11, .vertices=×r_vertices[70]}, - {.width=20, .vertex_count=41, .vertices=×r_vertices[92]}, - {.width=24, .vertex_count=31, .vertices=×r_vertices[174]}, - {.width=25, .vertex_count=48, .vertices=×r_vertices[236]}, - {.width=8, .vertex_count=5, .vertices=×r_vertices[332]}, - {.width=14, .vertex_count=19, .vertices=×r_vertices[342]}, - {.width=14, .vertex_count=19, .vertices=×r_vertices[380]}, - {.width=16, .vertex_count=8, .vertices=×r_vertices[418]}, - {.width=26, .vertex_count=5, .vertices=×r_vertices[434]}, - {.width=8, .vertex_count=7, .vertices=×r_vertices[444]}, - {.width=26, .vertex_count=2, .vertices=×r_vertices[458]}, - {.width=8, .vertex_count=5, .vertices=×r_vertices[462]}, - {.width=22, .vertex_count=2, .vertices=×r_vertices[472]}, - {.width=20, .vertex_count=39, .vertices=×r_vertices[476]}, - {.width=20, .vertex_count=10, .vertices=×r_vertices[554]}, - {.width=20, .vertex_count=44, .vertices=×r_vertices[574]}, - {.width=20, .vertex_count=46, .vertices=×r_vertices[662]}, - {.width=20, .vertex_count=12, .vertices=×r_vertices[754]}, - {.width=20, .vertex_count=38, .vertices=×r_vertices[778]}, - {.width=20, .vertex_count=47, .vertices=×r_vertices[854]}, - {.width=20, .vertex_count=30, .vertices=×r_vertices[948]}, - {.width=20, .vertex_count=62, .vertices=×r_vertices[1008]}, - {.width=20, .vertex_count=47, .vertices=×r_vertices[1132]}, - {.width=8, .vertex_count=11, .vertices=×r_vertices[1226]}, - {.width=8, .vertex_count=13, .vertices=×r_vertices[1248]}, - {.width=24, .vertex_count=3, .vertices=×r_vertices[1274]}, - {.width=26, .vertex_count=5, .vertices=×r_vertices[1280]}, - {.width=24, .vertex_count=3, .vertices=×r_vertices[1290]}, - {.width=18, .vertex_count=31, .vertices=×r_vertices[1296]}, - {.width=27, .vertex_count=55, .vertices=×r_vertices[1358]}, - {.width=20, .vertex_count=17, .vertices=×r_vertices[1468]}, - {.width=22, .vertex_count=44, .vertices=×r_vertices[1502]}, - {.width=21, .vertex_count=31, .vertices=×r_vertices[1590]}, - {.width=22, .vertex_count=29, .vertices=×r_vertices[1652]}, - {.width=21, .vertex_count=21, .vertices=×r_vertices[1710]}, - {.width=20, .vertex_count=19, .vertices=×r_vertices[1752]}, - {.width=23, .vertex_count=39, .vertices=×r_vertices[1790]}, - {.width=24, .vertex_count=26, .vertices=×r_vertices[1868]}, - {.width=11, .vertex_count=11, .vertices=×r_vertices[1920]}, - {.width=15, .vertex_count=19, .vertices=×r_vertices[1942]}, - {.width=22, .vertex_count=26, .vertices=×r_vertices[1980]}, - {.width=18, .vertex_count=13, .vertices=×r_vertices[2032]}, - {.width=25, .vertex_count=29, .vertices=×r_vertices[2058]}, - {.width=23, .vertex_count=20, .vertices=×r_vertices[2116]}, - {.width=22, .vertex_count=43, .vertices=×r_vertices[2156]}, - {.width=22, .vertex_count=28, .vertices=×r_vertices[2242]}, - {.width=22, .vertex_count=63, .vertices=×r_vertices[2298]}, - {.width=22, .vertex_count=44, .vertices=×r_vertices[2424]}, - {.width=20, .vertex_count=33, .vertices=×r_vertices[2512]}, - {.width=19, .vertex_count=15, .vertices=×r_vertices[2578]}, - {.width=24, .vertex_count=22, .vertices=×r_vertices[2608]}, - {.width=20, .vertex_count=14, .vertices=×r_vertices[2652]}, - {.width=24, .vertex_count=23, .vertices=×r_vertices[2680]}, - {.width=20, .vertex_count=20, .vertices=×r_vertices[2726]}, - {.width=21, .vertex_count=19, .vertices=×r_vertices[2766]}, - {.width=20, .vertex_count=15, .vertices=×r_vertices[2804]}, - {.width=14, .vertex_count=11, .vertices=×r_vertices[2834]}, - {.width=14, .vertex_count=2, .vertices=×r_vertices[2856]}, - {.width=14, .vertex_count=11, .vertices=×r_vertices[2860]}, - {.width=22, .vertex_count=7, .vertices=×r_vertices[2882]}, - {.width=20, .vertex_count=2, .vertices=×r_vertices[2896]}, - {.width=12, .vertex_count=6, .vertices=×r_vertices[2900]}, - {.width=20, .vertex_count=38, .vertices=×r_vertices[2912]}, - {.width=21, .vertex_count=32, .vertices=×r_vertices[2988]}, - {.width=19, .vertex_count=27, .vertices=×r_vertices[3052]}, - {.width=21, .vertex_count=35, .vertices=×r_vertices[3106]}, - {.width=19, .vertex_count=30, .vertices=×r_vertices[3176]}, - {.width=13, .vertex_count=21, .vertices=×r_vertices[3236]}, - {.width=19, .vertex_count=59, .vertices=×r_vertices[3278]}, - {.width=22, .vertex_count=27, .vertices=×r_vertices[3396]}, - {.width=11, .vertex_count=17, .vertices=×r_vertices[3450]}, - {.width=11, .vertex_count=24, .vertices=×r_vertices[3484]}, - {.width=21, .vertex_count=26, .vertices=×r_vertices[3532]}, - {.width=11, .vertex_count=11, .vertices=×r_vertices[3584]}, - {.width=33, .vertex_count=43, .vertices=×r_vertices[3606]}, - {.width=22, .vertex_count=27, .vertices=×r_vertices[3692]}, - {.width=20, .vertex_count=35, .vertices=×r_vertices[3746]}, - {.width=21, .vertex_count=35, .vertices=×r_vertices[3816]}, - {.width=20, .vertex_count=32, .vertices=×r_vertices[3886]}, - {.width=17, .vertex_count=22, .vertices=×r_vertices[3950]}, - {.width=17, .vertex_count=31, .vertices=×r_vertices[3994]}, - {.width=15, .vertex_count=15, .vertices=×r_vertices[4056]}, - {.width=22, .vertex_count=27, .vertices=×r_vertices[4086]}, - {.width=18, .vertex_count=14, .vertices=×r_vertices[4140]}, - {.width=24, .vertex_count=23, .vertices=×r_vertices[4168]}, - {.width=20, .vertex_count=20, .vertices=×r_vertices[4214]}, - {.width=19, .vertex_count=21, .vertices=×r_vertices[4254]}, - {.width=18, .vertex_count=15, .vertices=×r_vertices[4296]}, - {.width=14, .vertex_count=39, .vertices=×r_vertices[4326]}, - {.width=8, .vertex_count=2, .vertices=×r_vertices[4404]}, - {.width=14, .vertex_count=39, .vertices=×r_vertices[4408]}, - {.width=24, .vertex_count=23, .vertices=×r_vertices[4486]} - } -}; - -static const int8_t timesrb_vertices[7994] = { - 5, -12, 4, -11, 4, -9, 5, -1, -128, -128, 5, -12, 5, 2, 6, 2, -128, -128, 5, -12, 6, -12, 6, 2, -128, -128, 6, -12, 7, -11, 7, -9, 6, -1, -128, -128, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, -128, -128, 14, -12, 13, -11, 13, -5, -128, -128, 14, -11, 13, -5, -128, -128, 14, -12, 15, -11, 13, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 8, -16, 8, 13, -128, -128, 12, -16, 12, 13, -128, -128, 16, -7, 16, -8, 15, -8, 15, -6, 17, -6, 17, -8, 16, -10, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -6, 4, -4, 7, -2, 13, 0, 15, 1, 16, 3, 16, 6, 15, 8, -128, -128, 4, -6, 5, -4, 7, -3, 13, -1, 15, 0, 16, 2, -128, -128, 5, -11, 4, -9, 4, -7, 5, -5, 7, -4, 13, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 3, 5, 3, 5, 5, 4, 5, 4, 4, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 22, -3, 22, -4, 21, -4, 21, -2, 23, -2, 23, -4, 22, -5, 21, -5, 20, -4, 19, -2, 17, 3, 15, 6, 13, 8, 11, 9, 7, 9, 5, 8, 4, 6, 4, 3, 5, 1, 11, -3, 13, -5, 14, -7, 14, -9, 13, -11, 11, -12, 9, -11, 8, -9, 8, -6, 9, -3, 11, 0, 15, 5, 18, 8, 20, 9, 22, 9, 23, 7, 23, 6, -128, -128, 6, 8, 5, 6, 5, 3, 6, 1, 7, 0, -128, -128, 13, -5, 14, -9, -128, -128, 14, -7, 13, -11, -128, -128, 9, -11, 8, -7, -128, -128, 9, -4, 11, -1, 15, 4, 18, 7, 20, 8, -128, -128, 9, 9, 7, 8, 6, 6, 6, 3, 7, 1, 11, -3, -128, -128, 8, -9, 9, -5, 12, -1, 16, 4, 19, 7, 21, 8, 22, 8, 23, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, 10, -16, 8, -14, 6, -11, 4, -7, 3, -2, 3, 2, 4, 7, 6, 11, 8, 14, 10, 16, -128, -128, 6, -10, 5, -7, 4, -3, 4, 3, 5, 7, 6, 10, -128, -128, 8, -14, 7, -12, 6, -9, 5, -3, 5, 3, 6, 9, 7, 12, 8, 14, 4, -16, 6, -14, 8, -11, 10, -7, 11, -2, 11, 2, 10, 7, 8, 11, 6, 14, 4, 16, -128, -128, 8, -10, 9, -7, 10, -3, 10, 3, 9, 7, 8, 10, -128, -128, 6, -14, 7, -12, 8, -9, 9, -3, 9, 3, 8, 9, 7, 12, 6, 14, 8, -12, 7, -11, 9, -1, 8, 0, -128, -128, 8, -12, 8, 0, -128, -128, 8, -12, 9, -11, 7, -1, 8, 0, -128, -128, 3, -9, 4, -9, 12, -3, 13, -3, -128, -128, 3, -9, 13, -3, -128, -128, 3, -9, 3, -8, 13, -4, 13, -3, -128, -128, 13, -9, 12, -9, 4, -3, 3, -3, -128, -128, 13, -9, 3, -3, -128, -128, 13, -9, 13, -8, 3, -4, 3, -3, 12, -9, 12, 8, 13, 8, -128, -128, 12, -9, 13, -9, 13, 8, -128, -128, 4, -1, 21, -1, 21, 0, -128, -128, 4, -1, 4, 0, 21, 0, 7, 8, 6, 9, 5, 9, 4, 8, 4, 7, 5, 6, 6, 6, 7, 7, 7, 10, 6, 12, 4, 13, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, -128, -128, 6, 9, 7, 10, -128, -128, 7, 8, 6, 12, 4, 0, 22, 0, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 20, -16, 2, 16, 3, 16, -128, -128, 20, -16, 21, -16, 3, 16, 9, -12, 6, -11, 4, -8, 3, -3, 3, 0, 4, 5, 6, 8, 9, 9, 11, 9, 14, 8, 16, 5, 17, 0, 17, -3, 16, -8, 14, -11, 11, -12, 9, -12, -128, -128, 6, -10, 5, -8, 4, -4, 4, 1, 5, 5, 6, 7, -128, -128, 14, 7, 15, 5, 16, 1, 16, -4, 15, -8, 14, -10, -128, -128, 9, -12, 7, -11, 6, -9, 5, -4, 5, 1, 6, 6, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 14, 6, 15, 1, 15, -4, 14, -9, 13, -11, 11, -12, 9, -10, 9, 9, -128, -128, 10, -10, 10, 8, -128, -128, 11, -12, 11, 9, -128, -128, 11, -12, 8, -9, 6, -8, -128, -128, 5, 9, 15, 9, -128, -128, 9, 8, 7, 9, -128, -128, 9, 7, 8, 9, -128, -128, 11, 7, 12, 9, -128, -128, 11, 8, 13, 9, 4, -8, 4, -7, 5, -7, 5, -8, 4, -8, -128, -128, 4, -9, 5, -9, 6, -8, 6, -7, 5, -6, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 12, -12, 15, -11, 16, -10, 17, -8, 17, -6, 16, -4, 13, -2, 8, 0, 6, 1, 4, 3, 3, 6, 3, 9, -128, -128, 15, -10, 16, -8, 16, -6, 15, -4, -128, -128, 12, -12, 14, -11, 15, -8, 15, -6, 14, -4, 12, -2, 8, 0, -128, -128, 3, 7, 4, 6, 6, 6, 11, 7, 15, 7, 17, 6, -128, -128, 6, 6, 11, 8, 15, 8, 16, 7, -128, -128, 6, 6, 11, 9, 15, 9, 16, 8, 17, 6, 17, 4, 4, -8, 4, -7, 5, -7, 5, -8, 4, -8, -128, -128, 4, -9, 5, -9, 6, -8, 6, -7, 5, -6, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 12, -12, 15, -11, 16, -9, 16, -6, 15, -4, 12, -3, -128, -128, 14, -11, 15, -9, 15, -6, 14, -4, -128, -128, 11, -12, 13, -11, 14, -9, 14, -6, 13, -4, 11, -3, -128, -128, 9, -3, 12, -3, 14, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 4, 4, 3, 5, 3, 6, 4, 6, 5, 5, 6, 4, 6, -128, -128, 15, 0, 16, 2, 16, 5, 15, 7, -128, -128, 11, -3, 13, -2, 14, -1, 15, 2, 15, 5, 14, 8, 12, 9, -128, -128, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, 11, -9, 11, 9, -128, -128, 12, -10, 12, 8, -128, -128, 13, -12, 13, 9, -128, -128, 13, -12, 2, 3, 18, 3, -128, -128, 8, 9, 16, 9, -128, -128, 11, 8, 9, 9, -128, -128, 11, 7, 10, 9, -128, -128, 13, 7, 14, 9, -128, -128, 13, 8, 15, 9, 5, -12, 3, -2, 5, -4, 8, -5, 11, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 4, 4, 3, 5, 3, 6, 4, 6, 5, 5, 6, 4, 6, -128, -128, 15, -2, 16, 0, 16, 4, 15, 6, -128, -128, 11, -5, 13, -4, 14, -3, 15, 0, 15, 4, 14, 7, 13, 8, 11, 9, -128, -128, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, -128, -128, 5, -12, 15, -12, -128, -128, 5, -11, 13, -11, -128, -128, 5, -10, 9, -10, 13, -11, 15, -12, 14, -9, 14, -8, 15, -8, 15, -9, 14, -9, -128, -128, 15, -10, 14, -10, 13, -9, 13, -8, 14, -7, 15, -7, 16, -8, 16, -9, 15, -11, 13, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 2, 16, -1, 14, -3, 11, -4, 9, -4, 7, -3, 6, -2, 5, 0, -128, -128, 6, -9, 5, -7, 4, -3, 4, 3, 5, 6, 6, 7, -128, -128, 15, 6, 16, 4, 16, 1, 15, -1, -128, -128, 10, -12, 8, -11, 7, -10, 6, -8, 5, -4, 5, 3, 6, 6, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 14, 7, 15, 4, 15, 1, 14, -2, 13, -3, 11, -4, 3, -12, 3, -6, -128, -128, 17, -12, 17, -9, 16, -6, 12, -1, 11, 1, 10, 5, 10, 9, -128, -128, 11, 0, 10, 2, 9, 5, 9, 9, -128, -128, 16, -6, 11, -1, 9, 2, 8, 5, 8, 9, 10, 9, -128, -128, 3, -8, 4, -10, 6, -12, 8, -12, 13, -9, 15, -9, 16, -10, 17, -12, -128, -128, 5, -10, 6, -11, 8, -11, 10, -10, -128, -128, 3, -8, 4, -9, 6, -10, 8, -10, 13, -9, 8, -12, 5, -11, 4, -9, 4, -6, 5, -4, 8, -3, 12, -3, 15, -4, 16, -6, 16, -9, 15, -11, 12, -12, 8, -12, -128, -128, 6, -11, 5, -9, 5, -6, 6, -4, -128, -128, 14, -4, 15, -6, 15, -9, 14, -11, -128, -128, 8, -12, 7, -11, 6, -9, 6, -6, 7, -4, 8, -3, -128, -128, 12, -3, 13, -4, 14, -6, 14, -9, 13, -11, 12, -12, -128, -128, 8, -3, 5, -2, 4, -1, 3, 1, 3, 5, 4, 7, 5, 8, 8, 9, 12, 9, 15, 8, 16, 7, 17, 5, 17, 1, 16, -1, 15, -2, 12, -3, -128, -128, 5, -1, 4, 1, 4, 5, 5, 7, -128, -128, 15, 7, 16, 5, 16, 1, 15, -1, -128, -128, 8, -3, 6, -2, 5, 1, 5, 5, 6, 8, 8, 9, -128, -128, 12, 9, 14, 8, 15, 5, 15, 1, 14, -2, 12, -3, 5, 5, 5, 6, 6, 6, 6, 5, 5, 5, -128, -128, 15, -3, 14, -1, 13, 0, 11, 1, 9, 1, 6, 0, 4, -2, 3, -5, 3, -6, 4, -9, 6, -11, 9, -12, 11, -12, 14, -11, 16, -9, 17, -6, 17, 0, 16, 4, 15, 6, 13, 8, 10, 9, 7, 9, 5, 8, 4, 6, 4, 5, 5, 4, 6, 4, 7, 5, 7, 6, 6, 7, 5, 7, -128, -128, 5, -2, 4, -4, 4, -7, 5, -9, -128, -128, 14, -10, 15, -9, 16, -6, 16, 0, 15, 4, 14, 6, -128, -128, 9, 1, 7, 0, 6, -1, 5, -4, 5, -7, 6, -10, 7, -11, 9, -12, -128, -128, 11, -12, 13, -11, 14, -9, 15, -6, 15, 1, 14, 5, 13, 7, 12, 8, 10, 9, 5, -5, 4, -4, 4, -3, 5, -2, 6, -2, 7, -3, 7, -4, 6, -5, 5, -5, -128, -128, 5, -4, 5, -3, 6, -3, 6, -4, 5, -4, -128, -128, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 5, -5, 4, -4, 4, -3, 5, -2, 6, -2, 7, -3, 7, -4, 6, -5, 5, -5, -128, -128, 5, -4, 5, -3, 6, -3, 6, -4, 5, -4, -128, -128, 7, 8, 6, 9, 5, 9, 4, 8, 4, 7, 5, 6, 6, 6, 7, 7, 7, 10, 6, 12, 4, 13, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, -128, -128, 6, 9, 7, 10, -128, -128, 7, 8, 6, 12, 20, -9, 4, 0, 20, 9, 4, -5, 21, -5, 21, -4, -128, -128, 4, -5, 4, -4, 21, -4, -128, -128, 4, 3, 21, 3, 21, 4, -128, -128, 4, 3, 4, 4, 21, 4, 4, -9, 20, 0, 4, 9, 4, -7, 4, -8, 5, -8, 5, -6, 3, -6, 3, -8, 4, -10, 5, -11, 7, -12, 11, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 14, -3, 10, -1, -128, -128, 14, -10, 15, -9, 15, -5, 14, -4, -128, -128, 11, -12, 13, -11, 14, -9, 14, -5, 13, -3, 12, -2, -128, -128, 9, -1, 9, 2, 10, 2, 10, -1, 9, -1, -128, -128, 9, 6, 8, 7, 8, 8, 9, 9, 10, 9, 11, 8, 11, 7, 10, 6, 9, 6, -128, -128, 9, 7, 9, 8, 10, 8, 10, 7, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 10, -12, 3, 8, -128, -128, 9, -9, 15, 9, -128, -128, 10, -9, 16, 9, -128, -128, 10, -12, 17, 9, -128, -128, 5, 3, 14, 3, -128, -128, 1, 9, 7, 9, -128, -128, 12, 9, 19, 9, -128, -128, 3, 8, 2, 9, -128, -128, 3, 8, 5, 9, -128, -128, 15, 8, 13, 9, -128, -128, 15, 7, 14, 9, -128, -128, 16, 7, 18, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -6, 18, -4, 17, -3, 14, -2, -128, -128, 17, -10, 18, -8, 18, -6, 17, -4, -128, -128, 14, -12, 16, -11, 17, -9, 17, -5, 16, -3, 14, -2, -128, -128, 7, -2, 14, -2, 17, -1, 18, 0, 19, 2, 19, 5, 18, 7, 17, 8, 14, 9, 2, 9, -128, -128, 17, 0, 18, 2, 18, 5, 17, 7, -128, -128, 14, -2, 16, -1, 17, 1, 17, 6, 16, 8, 14, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 17, -9, 18, -12, 18, -6, 17, -9, 15, -11, 13, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 13, 9, 15, 8, 17, 6, 18, 4, -128, -128, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, -128, -128, 10, -12, 8, -11, 6, -8, 5, -4, 5, 1, 6, 5, 8, 8, 10, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 12, -12, 15, -11, 17, -9, 18, -7, 19, -4, 19, 1, 18, 4, 17, 6, 15, 8, 12, 9, 2, 9, -128, -128, 16, -9, 17, -7, 18, -4, 18, 1, 17, 4, 16, 6, -128, -128, 12, -12, 14, -11, 16, -8, 17, -4, 17, 1, 16, 5, 14, 8, 12, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 18, -12, 18, -6, -128, -128, 7, -2, 13, -2, -128, -128, 13, -6, 13, 2, -128, -128, 2, 9, 18, 9, 18, 3, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 13, -12, 18, -11, -128, -128, 15, -12, 18, -10, -128, -128, 16, -12, 18, -9, -128, -128, 17, -12, 18, -6, -128, -128, 13, -6, 12, -2, 13, 2, -128, -128, 13, -4, 11, -2, 13, 0, -128, -128, 13, -3, 9, -2, 13, -1, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 13, 9, 18, 8, -128, -128, 15, 9, 18, 7, -128, -128, 16, 9, 18, 6, -128, -128, 17, 9, 18, 3, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 18, -12, 18, -6, -128, -128, 7, -2, 13, -2, -128, -128, 13, -6, 13, 2, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 13, -12, 18, -11, -128, -128, 15, -12, 18, -10, -128, -128, 16, -12, 18, -9, -128, -128, 17, -12, 18, -6, -128, -128, 13, -6, 12, -2, 13, 2, -128, -128, 13, -4, 11, -2, 13, 0, -128, -128, 13, -3, 9, -2, 13, -1, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 17, -9, 18, -12, 18, -6, 17, -9, 15, -11, 13, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 13, 9, 15, 8, 17, 8, 18, 9, 18, 1, -128, -128, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, -128, -128, 10, -12, 8, -11, 6, -8, 5, -4, 5, 1, 6, 5, 8, 8, 10, 9, -128, -128, 17, 2, 17, 7, -128, -128, 16, 1, 16, 7, 15, 8, -128, -128, 13, 1, 21, 1, -128, -128, 14, 1, 16, 2, -128, -128, 15, 1, 16, 3, -128, -128, 19, 1, 18, 3, -128, -128, 20, 1, 18, 2, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 17, -12, 17, 9, -128, -128, 18, -11, 18, 8, -128, -128, 19, -12, 19, 9, -128, -128, 2, -12, 10, -12, -128, -128, 14, -12, 22, -12, -128, -128, 7, -2, 17, -2, -128, -128, 2, 9, 10, 9, -128, -128, 14, 9, 22, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 15, -12, 17, -11, -128, -128, 16, -12, 17, -10, -128, -128, 20, -12, 19, -10, -128, -128, 21, -12, 19, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 17, 8, 15, 9, -128, -128, 17, 7, 16, 9, -128, -128, 19, 7, 20, 9, -128, -128, 19, 8, 21, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 10, -12, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 9, -12, 9, 5, 8, 8, 7, 9, -128, -128, 10, -11, 10, 5, 9, 8, -128, -128, 11, -12, 11, 5, 10, 8, 7, 9, 5, 9, 3, 8, 2, 6, 2, 4, 3, 3, 4, 3, 5, 4, 5, 5, 4, 6, 3, 6, -128, -128, 3, 4, 3, 5, 4, 5, 4, 4, 3, 4, -128, -128, 6, -12, 14, -12, -128, -128, 7, -12, 9, -11, -128, -128, 8, -12, 9, -10, -128, -128, 12, -12, 11, -10, -128, -128, 13, -12, 11, -11, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 18, -11, 7, 0, -128, -128, 10, -2, 17, 9, -128, -128, 11, -2, 18, 9, -128, -128, 11, -4, 19, 9, -128, -128, 2, -12, 10, -12, -128, -128, 15, -12, 21, -12, -128, -128, 2, 9, 10, 9, -128, -128, 14, 9, 21, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 17, -12, 18, -11, -128, -128, 20, -12, 18, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 17, 7, 15, 9, -128, -128, 17, 7, 20, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 10, -12, -128, -128, 2, 9, 17, 9, 17, 3, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 12, 9, 17, 8, -128, -128, 14, 9, 17, 7, -128, -128, 15, 9, 17, 6, -128, -128, 16, 9, 17, 3, 5, -12, 5, 8, -128, -128, 5, -12, 12, 9, -128, -128, 6, -12, 12, 6, -128, -128, 7, -12, 13, 6, -128, -128, 19, -12, 12, 9, -128, -128, 19, -12, 19, 9, -128, -128, 20, -11, 20, 8, -128, -128, 21, -12, 21, 9, -128, -128, 2, -12, 7, -12, -128, -128, 19, -12, 24, -12, -128, -128, 2, 9, 8, 9, -128, -128, 16, 9, 24, 9, -128, -128, 3, -12, 5, -11, -128, -128, 22, -12, 21, -10, -128, -128, 23, -12, 21, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 8, 7, 9, -128, -128, 19, 8, 17, 9, -128, -128, 19, 7, 18, 9, -128, -128, 21, 7, 22, 9, -128, -128, 21, 8, 23, 9, 5, -12, 5, 8, -128, -128, 5, -12, 19, 9, -128, -128, 6, -12, 18, 6, -128, -128, 7, -12, 19, 6, -128, -128, 19, -11, 19, 9, -128, -128, 2, -12, 7, -12, -128, -128, 16, -12, 22, -12, -128, -128, 2, 9, 8, 9, -128, -128, 3, -12, 5, -11, -128, -128, 17, -12, 19, -11, -128, -128, 21, -12, 19, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 8, 7, 9, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 0, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, 19, 0, 19, -3, 18, -7, 17, -9, 15, -11, 12, -12, 10, -12, -128, -128, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, -128, -128, 16, 6, 17, 4, 18, 1, 18, -4, 17, -7, 16, -9, -128, -128, 10, -12, 8, -11, 6, -8, 5, -4, 5, 1, 6, 5, 8, 8, 10, 9, -128, -128, 12, 9, 14, 8, 16, 5, 17, 1, 17, -4, 16, -8, 14, -11, 12, -12, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -5, 18, -3, 17, -2, 14, -1, 7, -1, -128, -128, 17, -10, 18, -8, 18, -5, 17, -3, -128, -128, 14, -12, 16, -11, 17, -9, 17, -4, 16, -2, 14, -1, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 0, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, 19, 0, 19, -3, 18, -7, 17, -9, 15, -11, 12, -12, 10, -12, -128, -128, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, -128, -128, 16, 6, 17, 4, 18, 1, 18, -4, 17, -7, 16, -9, -128, -128, 10, -12, 8, -11, 6, -8, 5, -4, 5, 1, 6, 5, 8, 8, 10, 9, -128, -128, 12, 9, 14, 8, 16, 5, 17, 1, 17, -4, 16, -8, 14, -11, 12, -12, -128, -128, 7, 6, 8, 4, 10, 3, 11, 3, 13, 4, 14, 6, 15, 12, 16, 14, 18, 14, 19, 12, 19, 10, -128, -128, 15, 10, 16, 12, 17, 13, 18, 13, -128, -128, 14, 6, 16, 11, 17, 12, 18, 12, 19, 11, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -6, 18, -4, 17, -3, 14, -2, 7, -2, -128, -128, 17, -10, 18, -8, 18, -6, 17, -4, -128, -128, 14, -12, 16, -11, 17, -9, 17, -5, 16, -3, 14, -2, -128, -128, 11, -2, 13, -1, 14, 1, 16, 7, 17, 9, 19, 9, 20, 7, 20, 5, -128, -128, 16, 5, 17, 7, 18, 8, 19, 8, -128, -128, 13, -1, 14, 0, 17, 6, 18, 7, 19, 7, 20, 6, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 16, -9, 17, -12, 17, -6, 16, -9, 14, -11, 11, -12, 8, -12, 5, -11, 3, -9, 3, -6, 4, -4, 7, -2, 13, 0, 15, 1, 16, 3, 16, 6, 15, 8, -128, -128, 4, -6, 5, -4, 7, -3, 13, -1, 15, 0, 16, 2, -128, -128, 5, -11, 4, -9, 4, -7, 5, -5, 7, -4, 13, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 9, 9, 6, 8, 4, 6, 3, 3, 3, 9, 4, 6, 2, -12, 2, -6, -128, -128, 9, -12, 9, 9, -128, -128, 10, -11, 10, 8, -128, -128, 11, -12, 11, 9, -128, -128, 18, -12, 18, -6, -128, -128, 2, -12, 18, -12, -128, -128, 6, 9, 14, 9, -128, -128, 3, -12, 2, -6, -128, -128, 4, -12, 2, -9, -128, -128, 5, -12, 2, -10, -128, -128, 7, -12, 2, -11, -128, -128, 13, -12, 18, -11, -128, -128, 15, -12, 18, -10, -128, -128, 16, -12, 18, -9, -128, -128, 17, -12, 18, -6, -128, -128, 9, 8, 7, 9, -128, -128, 9, 7, 8, 9, -128, -128, 11, 7, 12, 9, -128, -128, 11, 8, 13, 9, 5, -12, 5, 3, 6, 6, 8, 8, 11, 9, 13, 9, 16, 8, 18, 6, 19, 3, 19, -11, -128, -128, 6, -11, 6, 4, 7, 6, -128, -128, 7, -12, 7, 4, 8, 7, 9, 8, 11, 9, -128, -128, 2, -12, 10, -12, -128, -128, 16, -12, 22, -12, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 17, -12, 19, -11, -128, -128, 21, -12, 19, -11, 3, -12, 10, 9, -128, -128, 4, -12, 10, 6, 10, 9, -128, -128, 5, -12, 11, 6, -128, -128, 17, -11, 10, 9, -128, -128, 1, -12, 8, -12, -128, -128, 13, -12, 19, -12, -128, -128, 2, -12, 4, -10, -128, -128, 6, -12, 5, -10, -128, -128, 7, -12, 5, -11, -128, -128, 15, -12, 17, -11, -128, -128, 18, -12, 17, -11, 4, -12, 8, 9, -128, -128, 5, -12, 8, 4, 8, 9, -128, -128, 6, -12, 9, 4, -128, -128, 12, -12, 9, 4, 8, 9, -128, -128, 12, -12, 16, 9, -128, -128, 13, -12, 16, 4, 16, 9, -128, -128, 14, -12, 17, 4, -128, -128, 20, -11, 17, 4, 16, 9, -128, -128, 1, -12, 9, -12, -128, -128, 12, -12, 14, -12, -128, -128, 17, -12, 23, -12, -128, -128, 2, -12, 5, -11, -128, -128, 3, -12, 5, -10, -128, -128, 7, -12, 6, -10, -128, -128, 8, -12, 6, -11, -128, -128, 18, -12, 20, -11, -128, -128, 22, -12, 20, -11, 3, -12, 15, 9, -128, -128, 4, -12, 16, 9, -128, -128, 5, -12, 17, 9, -128, -128, 16, -11, 4, 8, -128, -128, 1, -12, 8, -12, -128, -128, 13, -12, 19, -12, -128, -128, 1, 9, 7, 9, -128, -128, 12, 9, 19, 9, -128, -128, 2, -12, 5, -10, -128, -128, 6, -12, 5, -10, -128, -128, 7, -12, 5, -11, -128, -128, 14, -12, 16, -11, -128, -128, 18, -12, 16, -11, -128, -128, 4, 8, 2, 9, -128, -128, 4, 8, 6, 9, -128, -128, 15, 8, 13, 9, -128, -128, 15, 7, 14, 9, -128, -128, 15, 7, 18, 9, 3, -12, 10, -1, 10, 9, -128, -128, 4, -12, 11, -1, 11, 8, -128, -128, 5, -12, 12, -1, 12, 9, -128, -128, 18, -11, 12, -1, -128, -128, 1, -12, 8, -12, -128, -128, 15, -12, 21, -12, -128, -128, 7, 9, 15, 9, -128, -128, 2, -12, 4, -11, -128, -128, 7, -12, 5, -11, -128, -128, 16, -12, 18, -11, -128, -128, 20, -12, 18, -11, -128, -128, 10, 8, 8, 9, -128, -128, 10, 7, 9, 9, -128, -128, 12, 7, 13, 9, -128, -128, 12, 8, 14, 9, 17, -12, 3, -12, 3, -6, -128, -128, 15, -12, 3, 9, -128, -128, 16, -12, 4, 9, -128, -128, 17, -12, 5, 9, -128, -128, 3, 9, 17, 9, 17, 3, -128, -128, 4, -12, 3, -6, -128, -128, 5, -12, 3, -9, -128, -128, 6, -12, 3, -10, -128, -128, 8, -12, 3, -11, -128, -128, 12, 9, 17, 8, -128, -128, 14, 9, 17, 7, -128, -128, 15, 9, 17, 6, -128, -128, 16, 9, 17, 3, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 3, 2, 11, -3, 19, 2, -128, -128, 3, 2, 11, -2, 19, 2, 0, 16, 20, 16, 4, -12, 9, -6, -128, -128, 4, -12, 3, -11, 9, -6, 5, -2, 5, -3, 6, -3, 6, -1, 4, -1, 4, -3, 5, -4, 7, -5, 11, -5, 13, -4, 14, -3, 15, -1, 15, 6, 16, 8, 17, 9, -128, -128, 13, -3, 14, -1, 14, 6, 15, 8, -128, -128, 11, -5, 12, -4, 13, -2, 13, 6, 14, 8, 17, 9, 18, 9, -128, -128, 13, 0, 12, 1, 7, 2, 4, 3, 3, 5, 3, 6, 4, 8, 7, 9, 10, 9, 12, 8, 13, 6, -128, -128, 5, 3, 4, 5, 4, 6, 5, 8, -128, -128, 12, 1, 8, 2, 6, 3, 5, 5, 5, 6, 6, 8, 7, 9, 5, -12, 5, 9, 6, 8, 8, 8, -128, -128, 6, -11, 6, 7, -128, -128, 2, -12, 7, -12, 7, 8, -128, -128, 7, -2, 8, -4, 10, -5, 12, -5, 15, -4, 17, -2, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 10, 9, 8, 8, 7, 6, -128, -128, 16, -2, 17, 0, 17, 4, 16, 6, -128, -128, 12, -5, 14, -4, 15, -3, 16, 0, 16, 4, 15, 7, 14, 8, 12, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, 15, -1, 15, -2, 14, -2, 14, 0, 16, 0, 16, -2, 14, -4, 12, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, 14, -12, 14, 9, 19, 9, -128, -128, 15, -11, 15, 8, -128, -128, 11, -12, 16, -12, 16, 9, -128, -128, 14, -2, 13, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 13, 8, 14, 6, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, -128, -128, 12, -12, 14, -11, -128, -128, 13, -12, 14, -10, -128, -128, 16, 7, 17, 9, -128, -128, 16, 8, 18, 9, 5, 1, 16, 1, 16, -1, 15, -3, 14, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 15, 0, 15, -1, 14, -3, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 14, 1, 14, -2, 13, -4, 11, -5, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, 12, -10, 12, -11, 11, -11, 11, -9, 13, -9, 13, -11, 12, -12, 9, -12, 7, -11, 6, -10, 5, -7, 5, 9, -128, -128, 7, -10, 6, -7, 6, 8, -128, -128, 9, -12, 8, -11, 7, -9, 7, 9, -128, -128, 2, -5, 11, -5, -128, -128, 2, 9, 10, 9, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 15, -4, 16, -3, 17, -4, 16, -5, 15, -5, 13, -4, 12, -3, -128, -128, 8, -5, 6, -4, 5, -3, 4, -1, 4, 1, 5, 3, 6, 4, 8, 5, 10, 5, 12, 4, 13, 3, 14, 1, 14, -1, 13, -3, 12, -4, 10, -5, 8, -5, -128, -128, 6, -3, 5, -1, 5, 1, 6, 3, -128, -128, 12, 3, 13, 1, 13, -1, 12, -3, -128, -128, 8, -5, 7, -4, 6, -2, 6, 2, 7, 4, 8, 5, -128, -128, 10, 5, 11, 4, 12, 2, 12, -2, 11, -4, 10, -5, -128, -128, 5, 3, 4, 4, 3, 6, 3, 7, 4, 9, 5, 10, 8, 11, 12, 11, 15, 12, 16, 13, -128, -128, 5, 9, 8, 10, 12, 10, 15, 11, -128, -128, 3, 7, 4, 8, 7, 9, 12, 9, 15, 10, 16, 12, 16, 13, 15, 15, 12, 16, 6, 16, 3, 15, 2, 13, 2, 12, 3, 10, 6, 9, -128, -128, 6, 16, 4, 15, 3, 13, 3, 12, 4, 10, 6, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 2, -12, 7, -12, 7, 9, -128, -128, 7, -1, 8, -3, 9, -4, 11, -5, 14, -5, 16, -4, 17, -3, 18, 0, 18, 9, -128, -128, 16, -3, 17, 0, 17, 8, -128, -128, 14, -5, 15, -4, 16, -1, 16, 9, -128, -128, 2, 9, 10, 9, -128, -128, 13, 9, 21, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 16, 8, 14, 9, -128, -128, 16, 7, 15, 9, -128, -128, 18, 7, 19, 9, -128, -128, 18, 8, 20, 9, 5, -12, 5, -10, 7, -10, 7, -12, 5, -12, -128, -128, 6, -12, 6, -10, -128, -128, 5, -11, 7, -11, -128, -128, 5, -5, 5, 9, -128, -128, 6, -4, 6, 8, -128, -128, 2, -5, 7, -5, 7, 9, -128, -128, 2, 9, 10, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 7, -12, 7, -10, 9, -10, 9, -12, 7, -12, -128, -128, 8, -12, 8, -10, -128, -128, 7, -11, 9, -11, -128, -128, 7, -5, 7, 12, 6, 15, 5, 16, -128, -128, 8, -4, 8, 11, 7, 14, -128, -128, 4, -5, 9, -5, 9, 11, 8, 14, 7, 15, 5, 16, 2, 16, 1, 15, 1, 13, 3, 13, 3, 15, 2, 15, 2, 14, -128, -128, 5, -5, 7, -4, -128, -128, 6, -5, 7, -3, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 2, -12, 7, -12, 7, 9, -128, -128, 16, -4, 7, 5, -128, -128, 11, 1, 18, 9, -128, -128, 11, 2, 17, 9, -128, -128, 10, 2, 16, 9, -128, -128, 13, -5, 20, -5, -128, -128, 2, 9, 10, 9, -128, -128, 13, 9, 20, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 14, -5, 16, -4, -128, -128, 19, -5, 16, -4, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 16, 7, 14, 9, -128, -128, 15, 7, 19, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 2, -12, 7, -12, 7, 9, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 5, -5, 5, 9, -128, -128, 6, -4, 6, 8, -128, -128, 2, -5, 7, -5, 7, 9, -128, -128, 7, -1, 8, -3, 9, -4, 11, -5, 14, -5, 16, -4, 17, -3, 18, 0, 18, 9, -128, -128, 16, -3, 17, 0, 17, 8, -128, -128, 14, -5, 15, -4, 16, -1, 16, 9, -128, -128, 18, -1, 19, -3, 20, -4, 22, -5, 25, -5, 27, -4, 28, -3, 29, 0, 29, 9, -128, -128, 27, -3, 28, 0, 28, 8, -128, -128, 25, -5, 26, -4, 27, -1, 27, 9, -128, -128, 2, 9, 10, 9, -128, -128, 13, 9, 21, 9, -128, -128, 24, 9, 32, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 16, 8, 14, 9, -128, -128, 16, 7, 15, 9, -128, -128, 18, 7, 19, 9, -128, -128, 18, 8, 20, 9, -128, -128, 27, 8, 25, 9, -128, -128, 27, 7, 26, 9, -128, -128, 29, 7, 30, 9, -128, -128, 29, 8, 31, 9, 5, -5, 5, 9, -128, -128, 6, -4, 6, 8, -128, -128, 2, -5, 7, -5, 7, 9, -128, -128, 7, -1, 8, -3, 9, -4, 11, -5, 14, -5, 16, -4, 17, -3, 18, 0, 18, 9, -128, -128, 16, -3, 17, 0, 17, 8, -128, -128, 14, -5, 15, -4, 16, -1, 16, 9, -128, -128, 2, 9, 10, 9, -128, -128, 13, 9, 21, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 16, 8, 14, 9, -128, -128, 16, 7, 15, 9, -128, -128, 18, 7, 19, 9, -128, -128, 18, 8, 20, 9, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 1, 16, -2, 14, -4, 11, -5, 9, -5, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 15, 6, 16, 4, 16, 0, 15, -2, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 14, 7, 15, 4, 15, 0, 14, -3, 13, -4, 11, -5, 5, -5, 5, 16, -128, -128, 6, -4, 6, 15, -128, -128, 2, -5, 7, -5, 7, 16, -128, -128, 7, -2, 8, -4, 10, -5, 12, -5, 15, -4, 17, -2, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 10, 9, 8, 8, 7, 6, -128, -128, 16, -2, 17, 0, 17, 4, 16, 6, -128, -128, 12, -5, 14, -4, 15, -3, 16, 0, 16, 4, 15, 7, 14, 8, 12, 9, -128, -128, 2, 16, 10, 16, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 15, 3, 16, -128, -128, 5, 14, 4, 16, -128, -128, 7, 14, 8, 16, -128, -128, 7, 15, 9, 16, 14, -4, 14, 16, -128, -128, 15, -3, 15, 15, -128, -128, 13, -4, 15, -4, 16, -5, 16, 16, -128, -128, 14, -2, 13, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 13, 8, 14, 6, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, -128, -128, 11, 16, 19, 16, -128, -128, 14, 15, 12, 16, -128, -128, 14, 14, 13, 16, -128, -128, 16, 14, 17, 16, -128, -128, 16, 15, 18, 16, 5, -5, 5, 9, -128, -128, 6, -4, 6, 8, -128, -128, 2, -5, 7, -5, 7, 9, -128, -128, 14, -3, 14, -4, 13, -4, 13, -2, 15, -2, 15, -4, 14, -5, 12, -5, 10, -4, 8, -2, 7, 1, -128, -128, 2, 9, 10, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 13, -3, 14, -5, 14, -1, 13, -3, 12, -4, 10, -5, 6, -5, 4, -4, 3, -3, 3, -1, 4, 1, 6, 2, 11, 3, 13, 4, 14, 7, -128, -128, 4, -4, 3, -1, -128, -128, 4, 0, 6, 1, 11, 2, 13, 3, -128, -128, 14, 4, 13, 8, -128, -128, 3, -3, 4, -1, 6, 0, 11, 1, 13, 2, 14, 4, 14, 7, 13, 8, 11, 9, 7, 9, 5, 8, 4, 7, 3, 5, 3, 9, 4, 7, 5, -10, 5, 4, 6, 7, 7, 8, 9, 9, 11, 9, 13, 8, 14, 6, -128, -128, 6, -10, 6, 5, 7, 7, -128, -128, 5, -10, 7, -12, 7, 5, 8, 8, 9, 9, -128, -128, 2, -5, 11, -5, 5, -5, 5, 4, 6, 7, 7, 8, 9, 9, 12, 9, 14, 8, 15, 7, 16, 5, -128, -128, 6, -4, 6, 5, 7, 7, -128, -128, 2, -5, 7, -5, 7, 5, 8, 8, 9, 9, -128, -128, 16, -5, 16, 9, 21, 9, -128, -128, 17, -4, 17, 8, -128, -128, 13, -5, 18, -5, 18, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 18, 7, 19, 9, -128, -128, 18, 8, 20, 9, 3, -5, 9, 9, -128, -128, 4, -5, 9, 7, -128, -128, 5, -5, 10, 7, -128, -128, 15, -4, 10, 7, 9, 9, -128, -128, 1, -5, 8, -5, -128, -128, 11, -5, 17, -5, -128, -128, 2, -5, 5, -3, -128, -128, 7, -5, 5, -4, -128, -128, 13, -5, 15, -4, -128, -128, 16, -5, 15, -4, 4, -5, 8, 9, -128, -128, 5, -5, 8, 6, -128, -128, 6, -5, 9, 6, -128, -128, 12, -5, 9, 6, 8, 9, -128, -128, 12, -5, 16, 9, -128, -128, 13, -5, 16, 6, -128, -128, 12, -5, 14, -5, 17, 6, -128, -128, 20, -4, 17, 6, 16, 9, -128, -128, 1, -5, 9, -5, -128, -128, 17, -5, 23, -5, -128, -128, 2, -5, 5, -4, -128, -128, 8, -5, 6, -4, -128, -128, 18, -5, 20, -4, -128, -128, 22, -5, 20, -4, 4, -5, 14, 9, -128, -128, 5, -5, 15, 9, -128, -128, 6, -5, 16, 9, -128, -128, 15, -4, 5, 8, -128, -128, 2, -5, 9, -5, -128, -128, 12, -5, 18, -5, -128, -128, 2, 9, 8, 9, -128, -128, 11, 9, 18, 9, -128, -128, 3, -5, 5, -4, -128, -128, 8, -5, 6, -4, -128, -128, 13, -5, 15, -4, -128, -128, 17, -5, 15, -4, -128, -128, 5, 8, 3, 9, -128, -128, 5, 8, 7, 9, -128, -128, 14, 8, 12, 9, -128, -128, 15, 8, 17, 9, 4, -5, 10, 9, -128, -128, 5, -5, 10, 7, -128, -128, 6, -5, 11, 7, -128, -128, 16, -4, 11, 7, 8, 13, 6, 15, 4, 16, 2, 16, 1, 15, 1, 13, 3, 13, 3, 15, 2, 15, 2, 14, -128, -128, 2, -5, 9, -5, -128, -128, 12, -5, 18, -5, -128, -128, 3, -5, 6, -3, -128, -128, 8, -5, 6, -4, -128, -128, 14, -5, 16, -4, -128, -128, 17, -5, 16, -4, 13, -5, 3, 9, -128, -128, 14, -5, 4, 9, -128, -128, 15, -5, 5, 9, -128, -128, 15, -5, 3, -5, 3, -1, -128, -128, 3, 9, 15, 9, 15, 5, -128, -128, 4, -5, 3, -1, -128, -128, 5, -5, 3, -2, -128, -128, 6, -5, 3, -3, -128, -128, 8, -5, 3, -4, -128, -128, 10, 9, 15, 8, -128, -128, 12, 9, 15, 7, -128, -128, 13, 9, 15, 6, -128, -128, 14, 9, 15, 5, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 -}; - -static const hershey_font_t timesrb { - .chars = { - {.width=16, .vertex_count=0, .vertices=×rb_vertices[0]}, - {.width=11, .vertex_count=33, .vertices=×rb_vertices[0]}, - {.width=18, .vertex_count=21, .vertices=×rb_vertices[66]}, - {.width=21, .vertex_count=11, .vertices=×rb_vertices[108]}, - {.width=20, .vertex_count=55, .vertices=×rb_vertices[130]}, - {.width=24, .vertex_count=31, .vertices=×rb_vertices[240]}, - {.width=26, .vertex_count=73, .vertices=×rb_vertices[302]}, - {.width=9, .vertex_count=10, .vertices=×rb_vertices[448]}, - {.width=14, .vertex_count=26, .vertices=×rb_vertices[468]}, - {.width=14, .vertex_count=26, .vertices=×rb_vertices[520]}, - {.width=16, .vertex_count=38, .vertices=×rb_vertices[572]}, - {.width=25, .vertex_count=15, .vertices=×rb_vertices[648]}, - {.width=11, .vertex_count=23, .vertices=×rb_vertices[678]}, - {.width=26, .vertex_count=2, .vertices=×rb_vertices[724]}, - {.width=11, .vertex_count=15, .vertices=×rb_vertices[728]}, - {.width=23, .vertex_count=7, .vertices=×rb_vertices[758]}, - {.width=20, .vertex_count=49, .vertices=×rb_vertices[772]}, - {.width=20, .vertex_count=27, .vertices=×rb_vertices[870]}, - {.width=20, .vertex_count=61, .vertices=×rb_vertices[924]}, - {.width=20, .vertex_count=75, .vertices=×rb_vertices[1046]}, - {.width=20, .vertex_count=27, .vertices=×rb_vertices[1196]}, - {.width=20, .vertex_count=54, .vertices=×rb_vertices[1250]}, - {.width=20, .vertex_count=68, .vertices=×rb_vertices[1358]}, - {.width=20, .vertex_count=42, .vertices=×rb_vertices[1494]}, - {.width=20, .vertex_count=78, .vertices=×rb_vertices[1578]}, - {.width=20, .vertex_count=68, .vertices=×rb_vertices[1734]}, - {.width=11, .vertex_count=31, .vertices=×rb_vertices[1870]}, - {.width=11, .vertex_count=39, .vertices=×rb_vertices[1932]}, - {.width=24, .vertex_count=3, .vertices=×rb_vertices[2010]}, - {.width=25, .vertex_count=15, .vertices=×rb_vertices[2016]}, - {.width=24, .vertex_count=3, .vertices=×rb_vertices[2046]}, - {.width=19, .vertex_count=51, .vertices=×rb_vertices[2052]}, - {.width=27, .vertex_count=55, .vertices=×rb_vertices[2154]}, - {.width=20, .vertex_count=35, .vertices=×rb_vertices[2264]}, - {.width=22, .vertex_count=77, .vertices=×rb_vertices[2334]}, - {.width=21, .vertex_count=36, .vertices=×rb_vertices[2488]}, - {.width=22, .vertex_count=61, .vertices=×rb_vertices[2560]}, - {.width=21, .vertex_count=82, .vertices=×rb_vertices[2682]}, - {.width=20, .vertex_count=69, .vertices=×rb_vertices[2846]}, - {.width=23, .vertex_count=59, .vertices=×rb_vertices[2984]}, - {.width=24, .vertex_count=80, .vertices=×rb_vertices[3102]}, - {.width=12, .vertex_count=38, .vertices=×rb_vertices[3262]}, - {.width=16, .vertex_count=44, .vertices=×rb_vertices[3338]}, - {.width=22, .vertex_count=68, .vertices=×rb_vertices[3426]}, - {.width=18, .vertex_count=51, .vertices=×rb_vertices[3562]}, - {.width=26, .vertex_count=62, .vertices=×rb_vertices[3664]}, - {.width=24, .vertex_count=38, .vertices=×rb_vertices[3788]}, - {.width=22, .vertex_count=53, .vertices=×rb_vertices[3864]}, - {.width=22, .vertex_count=58, .vertices=×rb_vertices[3970]}, - {.width=22, .vertex_count=76, .vertices=×rb_vertices[4086]}, - {.width=22, .vertex_count=79, .vertices=×rb_vertices[4238]}, - {.width=20, .vertex_count=43, .vertices=×rb_vertices[4396]}, - {.width=20, .vertex_count=56, .vertices=×rb_vertices[4482]}, - {.width=24, .vertex_count=44, .vertices=×rb_vertices[4594]}, - {.width=20, .vertex_count=33, .vertices=×rb_vertices[4682]}, - {.width=24, .vertex_count=54, .vertices=×rb_vertices[4748]}, - {.width=20, .vertex_count=53, .vertices=×rb_vertices[4856]}, - {.width=22, .vertex_count=47, .vertices=×rb_vertices[4962]}, - {.width=20, .vertex_count=40, .vertices=×rb_vertices[5056]}, - {.width=14, .vertex_count=11, .vertices=×rb_vertices[5136]}, - {.width=14, .vertex_count=2, .vertices=×rb_vertices[5158]}, - {.width=14, .vertex_count=11, .vertices=×rb_vertices[5162]}, - {.width=22, .vertex_count=7, .vertices=×rb_vertices[5184]}, - {.width=20, .vertex_count=2, .vertices=×rb_vertices[5198]}, - {.width=12, .vertex_count=6, .vertices=×rb_vertices[5202]}, - {.width=20, .vertex_count=53, .vertices=×rb_vertices[5214]}, - {.width=21, .vertex_count=46, .vertices=×rb_vertices[5320]}, - {.width=19, .vertex_count=33, .vertices=×rb_vertices[5412]}, - {.width=21, .vertex_count=51, .vertices=×rb_vertices[5478]}, - {.width=19, .vertex_count=40, .vertices=×rb_vertices[5580]}, - {.width=14, .vertex_count=39, .vertices=×rb_vertices[5660]}, - {.width=19, .vertex_count=88, .vertices=×rb_vertices[5738]}, - {.width=23, .vertex_count=64, .vertices=×rb_vertices[5914]}, - {.width=12, .vertex_count=42, .vertices=×rb_vertices[6042]}, - {.width=13, .vertex_count=40, .vertices=×rb_vertices[6126]}, - {.width=22, .vertex_count=60, .vertices=×rb_vertices[6206]}, - {.width=12, .vertex_count=30, .vertices=×rb_vertices[6326]}, - {.width=34, .vertex_count=98, .vertices=×rb_vertices[6386]}, - {.width=23, .vertex_count=64, .vertices=×rb_vertices[6582]}, - {.width=20, .vertex_count=45, .vertices=×rb_vertices[6710]}, - {.width=21, .vertex_count=59, .vertices=×rb_vertices[6800]}, - {.width=20, .vertex_count=54, .vertices=×rb_vertices[6918]}, - {.width=17, .vertex_count=42, .vertices=×rb_vertices[7026]}, - {.width=17, .vertex_count=42, .vertices=×rb_vertices[7110]}, - {.width=15, .vertex_count=21, .vertices=×rb_vertices[7194]}, - {.width=23, .vertex_count=42, .vertices=×rb_vertices[7236]}, - {.width=18, .vertex_count=30, .vertices=×rb_vertices[7320]}, - {.width=24, .vertex_count=44, .vertices=×rb_vertices[7380]}, - {.width=20, .vertex_count=47, .vertices=×rb_vertices[7468]}, - {.width=19, .vertex_count=39, .vertices=×rb_vertices[7562]}, - {.width=18, .vertex_count=40, .vertices=×rb_vertices[7640]}, - {.width=14, .vertex_count=39, .vertices=×rb_vertices[7720]}, - {.width=8, .vertex_count=2, .vertices=×rb_vertices[7798]}, - {.width=14, .vertex_count=39, .vertices=×rb_vertices[7802]}, - {.width=24, .vertex_count=23, .vertices=×rb_vertices[7880]} - } -}; - -static std::map fonts = { - { "sans", &futural }, - //{ "sans_bold", &futuram }, - { "gothic", &gothgbt }, - //{ "cursive_bold", &scriptc }, - { "cursive", &scripts }, - { "serif_italic", ×i }, - { "serif", ×r }, - //{ "serif_bold", ×rb } -}; - diff --git a/libraries/hershey_fonts/CMakeLists.txt b/libraries/hershey_fonts/CMakeLists.txt new file mode 100644 index 00000000..df343995 --- /dev/null +++ b/libraries/hershey_fonts/CMakeLists.txt @@ -0,0 +1 @@ +include(hershey_fonts.cmake) \ No newline at end of file diff --git a/libraries/hershey_fonts/hershey_fonts.cmake b/libraries/hershey_fonts/hershey_fonts.cmake new file mode 100644 index 00000000..2c390203 --- /dev/null +++ b/libraries/hershey_fonts/hershey_fonts.cmake @@ -0,0 +1,9 @@ +set(LIB_NAME hershey_fonts) +add_library(${LIB_NAME} INTERFACE) + +target_sources(${LIB_NAME} INTERFACE + ${CMAKE_CURRENT_LIST_DIR}/${LIB_NAME}.cpp + ${CMAKE_CURRENT_LIST_DIR}/${LIB_NAME}_data.cpp +) + +target_include_directories(${LIB_NAME} INTERFACE ${CMAKE_CURRENT_LIST_DIR}) diff --git a/libraries/hershey_fonts/hershey_fonts.cpp b/libraries/hershey_fonts/hershey_fonts.cpp new file mode 100644 index 00000000..cd9df968 --- /dev/null +++ b/libraries/hershey_fonts/hershey_fonts.cpp @@ -0,0 +1,107 @@ +#include "hershey_fonts.hpp" +#include + +namespace hershey { + std::map fonts = { + { "sans", &futural }, + //{ "sans_bold", &futuram }, + { "gothic", &gothgbt }, + //{ "cursive_bold", &scriptc }, + { "cursive", &scripts }, + { "serif_italic", ×i }, + { "serif", ×r }, + //{ "serif_bold", ×rb } + }; + + inline float deg2rad(float degrees) { + return (degrees * M_PI) / 180.0f; + } + + const font_glyph_t* glyph_data(const font_t* font, unsigned char c) { + if(c < 32 || c > 127) { + return nullptr; + } + + return &font->chars[c - 32]; + } + + int32_t measure_glyph(const font_t* font, unsigned char c, float s) { + const font_glyph_t *gd = glyph_data(font, c); + + // if glyph data not found (id too great) then skip + if(!gd) { + return 0; + } + + return gd->width * s; + } + + int32_t measure_text(const font_t* font, std::string message, float s) { + int32_t width = 0; + for(auto &c : message) { + width += measure_glyph(font, c, s); + } + return width; + } + + int32_t glyph(const font_t* font, line_func line, unsigned char c, int32_t x, int32_t y, float s, float a) { + const font_glyph_t *gd = glyph_data(font, c); + + // if glyph data not found (id too great) then skip + if(!gd) { + return 0; + } + + a = deg2rad(a); + float as = sin(a); + float ac = cos(a); + + const int8_t *pv = gd->vertices; + int8_t cx = (*pv++) * s; + int8_t cy = (*pv++) * s; + bool pen_down = true; + + for(uint32_t i = 1; i < gd->vertex_count; i++) { + if(pv[0] == -128 && pv[1] == -128) { + pen_down = false; + pv += 2; + }else{ + int8_t nx = (*pv++) * s; + int8_t ny = (*pv++) * s; + + int rcx = (cx * ac - cy * as) + 0.5f; + int rcy = (cx * as + cy * ac) + 0.5f; + + int rnx = (nx * ac - ny * as) + 0.5f; + int rny = (nx * as + ny * ac) + 0.5f; + + if(pen_down) { + line(rcx + x, rcy + y, rnx + x, rny + y); + } + + cx = nx; + cy = ny; + pen_down = true; + } + } + + return gd->width * s; + } + + void text(const font_t* font, line_func line, std::string message, int32_t x, int32_t y, float s, float a) { + int32_t cx = x; + int32_t cy = y; + + int32_t ox = 0; + + float as = sin(deg2rad(a)); + float ac = cos(deg2rad(a)); + + for(auto &c : message) { + int rcx = (ox * ac) + 0.5f; + int rcy = (ox * as) + 0.5f; + + ox += glyph(font, line, c, cx + rcx, cy + rcy, s, a); + } + } +} \ No newline at end of file diff --git a/libraries/hershey_fonts/hershey_fonts.hpp b/libraries/hershey_fonts/hershey_fonts.hpp new file mode 100644 index 00000000..eeea917f --- /dev/null +++ b/libraries/hershey_fonts/hershey_fonts.hpp @@ -0,0 +1,50 @@ +#include +#include +#include + +namespace hershey { + struct font_glyph_t { + uint32_t width; // character width + uint32_t vertex_count; // number of vertices + const int8_t *vertices; // vertex data (indices: even = x, odd = y) + }; + + struct font_t { + font_glyph_t chars[95]; + }; + + extern const int8_t futural_vertices[2442]; + extern const font_t futural; + + extern const int8_t futuram_vertices[4802]; + extern const font_t futuram; + + extern const int8_t gothgbt_vertices[9046]; + extern const font_t gothgbt; + + extern const int8_t scriptc_vertices[5530]; + extern const font_t scriptc; + + extern const int8_t scripts_vertices[4472]; + extern const font_t scripts; + + extern const int8_t timesi_vertices[4848]; + extern const font_t timesi; + + extern const int8_t timesr_vertices[4600]; + extern const font_t timesr; + + extern const int8_t timesrb_vertices[7994]; + extern const font_t timesrb; + + typedef std::function line_func; + + extern std::map fonts; + + inline float deg2rad(float degrees); + const font_glyph_t* glyph_data(const font_t* font, unsigned char c); + int32_t measure_glyph(const font_t* font, unsigned char c, float s); + int32_t measure_text(const font_t* font, std::string message, float s); + int32_t glyph(const font_t* font, line_func line, unsigned char c, int32_t x, int32_t y, float s, float a); + void text(const font_t* font, line_func line, std::string message, int32_t x, int32_t y, float s, float a); +} \ No newline at end of file diff --git a/libraries/badger2040/fonts.cpp b/libraries/hershey_fonts/hershey_fonts_data.cpp similarity index 99% rename from libraries/badger2040/fonts.cpp rename to libraries/hershey_fonts/hershey_fonts_data.cpp index da034488..7122ea02 100644 --- a/libraries/badger2040/fonts.cpp +++ b/libraries/hershey_fonts/hershey_fonts_data.cpp @@ -1,10 +1,12 @@ -#include "fonts.hpp" +#include "hershey_fonts.hpp" -static const int8_t futural_vertices[2442] = { +namespace hershey { + +const int8_t futural_vertices[2442] = { 5, -12, 5, 2, -128, -128, 5, 7, 4, 8, 5, 9, 6, 8, 5, 7, 4, -12, 4, -5, -128, -128, 12, -12, 12, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 8, -16, 8, 13, -128, -128, 12, -16, 12, 13, -128, -128, 17, -9, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 13, -1, 15, 0, 16, 1, 17, 3, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 23, -3, 23, -4, 22, -5, 21, -5, 20, -4, 19, -2, 17, 3, 15, 6, 13, 8, 11, 9, 7, 9, 5, 8, 4, 7, 3, 5, 3, 3, 4, 1, 5, 0, 12, -4, 13, -5, 14, -7, 14, -9, 13, -11, 11, -12, 9, -11, 8, -9, 8, -7, 9, -4, 11, -1, 16, 6, 18, 8, 20, 9, 22, 9, 23, 8, 23, 7, 5, -10, 4, -11, 5, -12, 6, -11, 6, -9, 5, -7, 4, -6, 11, -16, 9, -14, 7, -11, 5, -7, 4, -2, 4, 2, 5, 7, 7, 11, 9, 14, 11, 16, 3, -16, 5, -14, 7, -11, 9, -7, 10, -2, 10, 2, 9, 7, 7, 11, 5, 14, 3, 16, 8, -6, 8, 6, -128, -128, 3, -3, 13, 3, -128, -128, 13, -3, 3, 3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 5, 5, 4, 6, 3, 5, 4, 4, 5, 5, 5, 7, 3, 9, 4, 0, 22, 0, 4, 4, 3, 5, 4, 6, 5, 5, 4, 4, 20, -16, 2, 16, 9, -12, 6, -11, 4, -8, 3, -3, 3, 0, 4, 5, 6, 8, 9, 9, 11, 9, 14, 8, 16, 5, 17, 0, 17, -3, 16, -8, 14, -11, 11, -12, 9, -12, 6, -8, 8, -9, 11, -12, 11, 9, 4, -7, 4, -8, 5, -10, 6, -11, 8, -12, 12, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 13, -1, 3, 9, 17, 9, 5, -12, 16, -12, 10, -4, 13, -4, 15, -3, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 13, -12, 3, 2, 18, 2, -128, -128, 13, -12, 13, 9, 15, -12, 5, -12, 4, -3, 5, -4, 8, -5, 11, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 16, -9, 15, -11, 12, -12, 10, -12, 7, -11, 5, -8, 4, -3, 4, 2, 5, 6, 7, 8, 10, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 2, 16, -1, 14, -3, 11, -4, 10, -4, 7, -3, 5, -1, 4, 2, 17, -12, 7, 9, -128, -128, 3, -12, 17, -12, 8, -12, 5, -11, 4, -9, 4, -7, 5, -5, 7, -4, 11, -3, 14, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 2, 4, 0, 6, -2, 9, -3, 13, -4, 15, -5, 16, -7, 16, -9, 15, -11, 12, -12, 8, -12, 16, -5, 15, -2, 13, 0, 10, 1, 9, 1, 6, 0, 4, -2, 3, -5, 3, -6, 4, -9, 6, -11, 9, -12, 10, -12, 13, -11, 15, -9, 16, -5, 16, 0, 15, 5, 13, 8, 10, 9, 8, 9, 5, 8, 4, 6, 4, -3, 3, -2, 4, -1, 5, -2, 4, -3, -128, -128, 4, 4, 3, 5, 4, 6, 5, 5, 4, 4, 4, -3, 3, -2, 4, -1, 5, -2, 4, -3, -128, -128, 5, 5, 4, 6, 3, 5, 4, 4, 5, 5, 5, 7, 3, 9, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 3, -7, 3, -8, 4, -10, 5, -11, 7, -12, 11, -12, 13, -11, 14, -10, 15, -8, 15, -6, 14, -4, 13, -3, 9, -1, 9, 2, -128, -128, 9, 7, 8, 8, 9, 9, 10, 8, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 9, -12, 1, 9, -128, -128, 9, -12, 17, 9, -128, -128, 4, 2, 14, 2, 4, -12, 4, 9, -128, -128, 4, -12, 13, -12, 16, -11, 17, -10, 18, -8, 18, -6, 17, -4, 16, -3, 13, -2, -128, -128, 4, -2, 13, -2, 16, -1, 17, 0, 18, 2, 18, 5, 17, 7, 16, 8, 13, 9, 4, 9, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 4, -12, 4, 9, -128, -128, 4, -12, 11, -12, 14, -11, 16, -9, 17, -7, 18, -4, 18, 1, 17, 4, 16, 6, 14, 8, 11, 9, 4, 9, 4, -12, 4, 9, -128, -128, 4, -12, 17, -12, -128, -128, 4, -2, 12, -2, -128, -128, 4, 9, 17, 9, 4, -12, 4, 9, -128, -128, 4, -12, 17, -12, -128, -128, 4, -2, 12, -2, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 18, 1, -128, -128, 13, 1, 18, 1, 4, -12, 4, 9, -128, -128, 18, -12, 18, 9, -128, -128, 4, -2, 18, -2, 4, -12, 4, 9, 12, -12, 12, 4, 11, 7, 10, 8, 8, 9, 6, 9, 4, 8, 3, 7, 2, 4, 2, 2, 4, -12, 4, 9, -128, -128, 18, -12, 4, 2, -128, -128, 9, -3, 18, 9, 4, -12, 4, 9, -128, -128, 4, 9, 16, 9, 4, -12, 4, 9, -128, -128, 4, -12, 12, 9, -128, -128, 20, -12, 12, 9, -128, -128, 20, -12, 20, 9, 4, -12, 4, 9, -128, -128, 4, -12, 18, 9, -128, -128, 18, -12, 18, 9, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 19, 1, 19, -4, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 4, -12, 4, 9, -128, -128, 4, -12, 13, -12, 16, -11, 17, -10, 18, -8, 18, -5, 17, -3, 16, -2, 13, -1, 4, -1, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 19, 1, 19, -4, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, -128, -128, 12, 5, 18, 11, 4, -12, 4, 9, -128, -128, 4, -12, 13, -12, 16, -11, 17, -10, 18, -8, 18, -6, 17, -4, 16, -3, 13, -2, 4, -2, -128, -128, 11, -2, 18, 9, 17, -9, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 13, -1, 15, 0, 16, 1, 17, 3, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 8, -12, 8, 9, -128, -128, 1, -12, 15, -12, 4, -12, 4, 3, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 3, 18, -12, 1, -12, 9, 9, -128, -128, 17, -12, 9, 9, 2, -12, 7, 9, -128, -128, 12, -12, 7, 9, -128, -128, 12, -12, 17, 9, -128, -128, 22, -12, 17, 9, 3, -12, 17, 9, -128, -128, 17, -12, 3, 9, 1, -12, 9, -2, 9, 9, -128, -128, 17, -12, 9, -2, 17, -12, 3, 9, -128, -128, 3, -12, 17, -12, -128, -128, 3, 9, 17, 9, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 8, -14, 0, 0, -128, -128, 8, -14, 16, 0, 0, 16, 18, 16, 5, -7, 3, -5, 3, -3, 4, -2, 5, -3, 4, -4, 3, -3, 15, -5, 15, 9, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 4, -12, 4, 9, -128, -128, 4, -2, 6, -4, 8, -5, 11, -5, 13, -4, 15, -2, 16, 1, 16, 3, 15, 6, 13, 8, 11, 9, 8, 9, 6, 8, 4, 6, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 15, -12, 15, 9, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 3, 1, 15, 1, 15, -1, 14, -3, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 10, -12, 8, -12, 6, -11, 5, -8, 5, 9, -128, -128, 2, -5, 9, -5, 15, -5, 15, 11, 14, 14, 13, 15, 11, 16, 8, 16, 6, 15, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 4, -12, 4, 9, -128, -128, 4, -1, 7, -4, 9, -5, 12, -5, 14, -4, 15, -1, 15, 9, 3, -12, 4, -11, 5, -12, 4, -13, 3, -12, -128, -128, 4, -5, 4, 9, 5, -12, 6, -11, 7, -12, 6, -13, 5, -12, -128, -128, 6, -5, 6, 12, 5, 15, 3, 16, 1, 16, 4, -12, 4, 9, -128, -128, 14, -5, 4, 5, -128, -128, 8, 1, 15, 9, 4, -12, 4, 9, 4, -5, 4, 9, -128, -128, 4, -1, 7, -4, 9, -5, 12, -5, 14, -4, 15, -1, 15, 9, -128, -128, 15, -1, 18, -4, 20, -5, 23, -5, 25, -4, 26, -1, 26, 9, 4, -5, 4, 9, -128, -128, 4, -1, 7, -4, 9, -5, 12, -5, 14, -4, 15, -1, 15, 9, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 16, 3, 16, 1, 15, -2, 13, -4, 11, -5, 8, -5, 4, -5, 4, 16, -128, -128, 4, -2, 6, -4, 8, -5, 11, -5, 13, -4, 15, -2, 16, 1, 16, 3, 15, 6, 13, 8, 11, 9, 8, 9, 6, 8, 4, 6, 15, -5, 15, 16, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 4, -5, 4, 9, -128, -128, 4, 1, 5, -2, 7, -4, 9, -5, 12, -5, 14, -2, 13, -4, 10, -5, 7, -5, 4, -4, 3, -2, 4, 0, 6, 1, 11, 2, 13, 3, 14, 5, 14, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 6, 5, -12, 5, 5, 6, 8, 8, 9, 10, 9, -128, -128, 2, -5, 9, -5, 4, -5, 4, 5, 5, 8, 7, 9, 10, 9, 12, 8, 15, 5, -128, -128, 15, -5, 15, 9, 2, -5, 8, 9, -128, -128, 14, -5, 8, 9, 3, -5, 7, 9, -128, -128, 11, -5, 7, 9, -128, -128, 11, -5, 15, 9, -128, -128, 19, -5, 15, 9, 3, -5, 14, 9, -128, -128, 14, -5, 3, 9, 2, -5, 8, 9, -128, -128, 14, -5, 8, 9, 6, 13, 4, 15, 2, 16, 1, 16, 14, -5, 3, 9, -128, -128, 3, -5, 14, -5, -128, -128, 3, 9, 14, 9, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 }; -const hershey_font_t futural { +const font_t futural { .chars = { {.width=16, .vertex_count=0, .vertices=&futural_vertices[0]}, {.width=10, .vertex_count=8, .vertices=&futural_vertices[0]}, @@ -104,11 +106,11 @@ const hershey_font_t futural { } }; -static const int8_t futuram_vertices[4802] = { +const int8_t futuram_vertices[4802] = { 5, -12, 5, 2, 6, 2, -128, -128, 5, -12, 6, -12, 6, 2, -128, -128, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, -128, -128, 14, -12, 13, -11, 13, -5, -128, -128, 14, -11, 13, -5, -128, -128, 14, -12, 15, -11, 13, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 9, -16, 9, 13, 10, 13, -128, -128, 9, -16, 10, -16, 10, 13, -128, -128, 14, -9, 16, -9, 14, -11, 11, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 13, 0, 14, 1, 15, 3, 15, 5, 14, 7, 11, 8, 8, 8, 6, 7, 5, 6, -128, -128, 14, -9, 13, -10, 11, -11, 8, -11, 5, -10, 4, -9, 4, -7, 5, -5, 13, -1, 15, 1, 16, 3, 16, 5, 15, 7, 14, 8, 11, 9, 8, 9, 5, 8, 3, 6, 5, 6, -128, -128, 15, 6, 12, 8, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 21, -4, 20, -3, 21, -2, 22, -3, 22, -4, 21, -5, 20, -5, 19, -4, 18, -2, 16, 3, 14, 6, 12, 8, 10, 9, 7, 9, 4, 8, 3, 6, 3, 3, 4, 1, 10, -3, 12, -5, 13, -7, 13, -9, 12, -11, 10, -12, 8, -11, 7, -9, 7, -7, 8, -4, 10, -1, 15, 6, 17, 8, 20, 9, 21, 9, 22, 8, 22, 7, -128, -128, 7, 9, 5, 8, 4, 6, 4, 3, 5, 1, 7, -1, -128, -128, 7, -7, 8, -5, 16, 6, 18, 8, 20, 9, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, 11, -16, 9, -14, 7, -11, 5, -7, 4, -2, 4, 2, 5, 7, 7, 11, 9, 14, 11, 16, -128, -128, 9, -14, 7, -10, 6, -7, 5, -2, 5, 2, 6, 7, 7, 10, 9, 14, 3, -16, 5, -14, 7, -11, 9, -7, 10, -2, 10, 2, 9, 7, 7, 11, 5, 14, 3, 16, -128, -128, 5, -14, 7, -10, 8, -7, 9, -2, 9, 2, 8, 7, 7, 10, 5, 14, 8, -12, 7, -11, 9, -1, 8, 0, -128, -128, 8, -12, 8, 0, -128, -128, 8, -12, 9, -11, 7, -1, 8, 0, -128, -128, 3, -9, 4, -9, 12, -3, 13, -3, -128, -128, 3, -9, 13, -3, -128, -128, 3, -9, 3, -8, 13, -4, 13, -3, -128, -128, 13, -9, 12, -9, 4, -3, 3, -3, -128, -128, 13, -9, 3, -3, -128, -128, 13, -9, 13, -8, 3, -4, 3, -3, 12, -9, 12, 8, 13, 8, -128, -128, 12, -9, 13, -9, 13, 8, -128, -128, 4, -1, 21, -1, 21, 0, -128, -128, 4, -1, 4, 0, 21, 0, 7, 8, 6, 9, 5, 9, 4, 8, 4, 7, 5, 6, 6, 6, 7, 7, 7, 10, 6, 12, 4, 13, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, -128, -128, 6, 9, 7, 10, -128, -128, 7, 8, 6, 12, 4, 0, 22, 0, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 20, -16, 2, 16, 3, 16, -128, -128, 20, -16, 21, -16, 3, 16, 9, -12, 6, -11, 4, -8, 3, -3, 3, 0, 4, 5, 6, 8, 9, 9, 11, 9, 14, 8, 16, 5, 17, 0, 17, -3, 16, -8, 14, -11, 11, -12, 9, -12, -128, -128, 7, -11, 5, -8, 4, -3, 4, 0, 5, 5, 7, 8, -128, -128, 6, 7, 9, 8, 11, 8, 14, 7, -128, -128, 13, 8, 15, 5, 16, 0, 16, -3, 15, -8, 13, -11, -128, -128, 14, -10, 11, -11, 9, -11, 6, -10, 6, -8, 8, -9, 11, -12, 11, 9, -128, -128, 6, -8, 6, -7, 8, -8, 10, -10, 10, 9, 11, 9, 4, -7, 4, -8, 5, -10, 6, -11, 8, -12, 12, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 13, -1, 4, 9, -128, -128, 4, -7, 5, -7, 5, -8, 6, -10, 8, -11, 12, -11, 14, -10, 15, -8, 15, -6, 14, -4, 12, -1, 3, 9, -128, -128, 4, 8, 17, 8, 17, 9, -128, -128, 3, 9, 17, 9, 5, -12, 16, -12, 9, -3, -128, -128, 5, -12, 5, -11, 15, -11, -128, -128, 15, -12, 8, -3, -128, -128, 9, -4, 11, -4, 14, -3, 16, -1, 17, 2, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 4, 5, -128, -128, 8, -3, 11, -3, 14, -2, 16, 1, -128, -128, 12, -3, 15, -1, 16, 2, 16, 3, 15, 6, 12, 8, -128, -128, 16, 4, 14, 7, 11, 8, 8, 8, 5, 7, 4, 5, -128, -128, 7, 8, 4, 6, 13, -9, 13, 9, 14, 9, -128, -128, 14, -12, 14, 9, -128, -128, 14, -12, 3, 4, 18, 4, -128, -128, 13, -9, 4, 4, -128, -128, 4, 3, 18, 3, 18, 4, 5, -12, 4, -3, -128, -128, 6, -11, 5, -4, -128, -128, 5, -12, 15, -12, 15, -11, -128, -128, 6, -11, 15, -11, -128, -128, 5, -4, 8, -5, 11, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 4, 5, -128, -128, 4, -3, 5, -3, 7, -4, 11, -4, 14, -3, 16, 0, -128, -128, 12, -4, 15, -2, 16, 1, 16, 3, 15, 6, 12, 8, -128, -128, 16, 4, 14, 7, 11, 8, 8, 8, 5, 7, 4, 5, -128, -128, 7, 8, 4, 6, 14, -11, 15, -9, 16, -9, 15, -11, 12, -12, 10, -12, 7, -11, 5, -8, 4, -3, 4, 2, 5, 6, 7, 8, 10, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 2, 16, -1, 14, -3, 11, -4, 10, -4, 7, -3, 5, -1, -128, -128, 15, -10, 12, -11, 10, -11, 7, -10, -128, -128, 8, -11, 6, -8, 5, -3, 5, 2, 6, 6, 9, 8, -128, -128, 5, 4, 7, 7, 10, 8, 11, 8, 14, 7, 16, 4, -128, -128, 12, 8, 15, 6, 16, 3, 16, 2, 15, -1, 12, -3, -128, -128, 16, 1, 14, -2, 11, -3, 10, -3, 7, -2, 5, 1, -128, -128, 9, -3, 6, -1, 5, 2, 3, -12, 17, -12, 7, 9, -128, -128, 3, -12, 3, -11, 16, -11, -128, -128, 16, -12, 6, 9, 7, 9, 8, -12, 5, -11, 4, -9, 4, -7, 5, -5, 6, -4, 8, -3, 12, -2, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 12, 8, 8, 8, 5, 7, 4, 5, 4, 2, 5, 0, 6, -1, 8, -2, 12, -3, 14, -4, 15, -5, 16, -7, 16, -9, 15, -11, 12, -12, 8, -12, -128, -128, 6, -11, 5, -9, 5, -7, 6, -5, 8, -4, 12, -3, 14, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 2, 4, 0, 6, -2, 8, -3, 12, -4, 14, -5, 15, -7, 15, -9, 14, -11, -128, -128, 15, -10, 12, -11, 8, -11, 5, -10, -128, -128, 4, 6, 7, 8, -128, -128, 13, 8, 16, 6, 15, -2, 13, 0, 10, 1, 9, 1, 6, 0, 4, -2, 3, -5, 3, -6, 4, -9, 6, -11, 9, -12, 10, -12, 13, -11, 15, -9, 16, -5, 16, 0, 15, 5, 13, 8, 10, 9, 8, 9, 5, 8, 4, 6, 5, 6, 6, 8, -128, -128, 15, -5, 14, -2, 11, 0, -128, -128, 15, -4, 13, -1, 10, 0, 9, 0, 6, -1, 4, -4, -128, -128, 8, 0, 5, -2, 4, -5, 4, -6, 5, -9, 8, -11, -128, -128, 4, -7, 6, -10, 9, -11, 10, -11, 13, -10, 15, -7, -128, -128, 11, -11, 14, -9, 15, -5, 15, 0, 14, 5, 12, 8, -128, -128, 13, 7, 10, 8, 8, 8, 5, 7, 5, -5, 4, -4, 4, -3, 5, -2, 6, -2, 7, -3, 7, -4, 6, -5, 5, -5, -128, -128, 5, -4, 5, -3, 6, -3, 6, -4, 5, -4, -128, -128, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 5, -5, 4, -4, 4, -3, 5, -2, 6, -2, 7, -3, 7, -4, 6, -5, 5, -5, -128, -128, 5, -4, 5, -3, 6, -3, 6, -4, 5, -4, -128, -128, 7, 8, 6, 9, 5, 9, 4, 8, 4, 7, 5, 6, 6, 6, 7, 7, 7, 10, 6, 12, 4, 13, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, -128, -128, 6, 9, 7, 10, -128, -128, 7, 8, 6, 12, 20, -9, 4, 0, 20, 9, 4, -5, 21, -5, 21, -4, -128, -128, 4, -5, 4, -4, 21, -4, -128, -128, 4, 3, 21, 3, 21, 4, -128, -128, 4, 3, 4, 4, 21, 4, 4, -9, 20, 0, 4, 9, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 11, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 14, -3, 12, -2, 9, -1, -128, -128, 3, -7, 4, -7, 4, -8, 5, -10, 8, -11, 11, -11, 14, -10, 15, -8, 15, -6, 14, -4, 12, -3, 9, -2, -128, -128, 4, -9, 7, -11, -128, -128, 12, -11, 15, -9, -128, -128, 15, -5, 11, -2, -128, -128, 9, -2, 9, 2, 10, 2, 10, -2, -128, -128, 9, 6, 8, 7, 8, 8, 9, 9, 10, 9, 11, 8, 11, 7, 10, 6, 9, 6, -128, -128, 9, 7, 9, 8, 10, 8, 10, 7, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 10, -12, 2, 9, -128, -128, 10, -9, 3, 9, 2, 9, -128, -128, 10, -9, 17, 9, 18, 9, -128, -128, 10, -12, 18, 9, -128, -128, 5, 3, 15, 3, -128, -128, 4, 4, 16, 4, 4, -12, 4, 9, -128, -128, 5, -11, 5, 8, -128, -128, 4, -12, 12, -12, 15, -11, 16, -10, 17, -8, 17, -5, 16, -3, 15, -2, 12, -1, -128, -128, 5, -11, 12, -11, 15, -10, 16, -8, 16, -5, 15, -3, 12, -2, -128, -128, 5, -2, 12, -2, 15, -1, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 4, 9, -128, -128, 5, -1, 12, -1, 15, 0, 16, 2, 16, 5, 15, 7, 12, 8, 5, 8, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, -128, -128, 18, -7, 17, -7, 16, -9, 15, -10, 13, -11, 9, -11, 7, -10, 5, -7, 4, -4, 4, 1, 5, 4, 7, 7, 9, 8, 13, 8, 15, 7, 16, 6, 17, 4, 18, 4, 4, -12, 4, 9, -128, -128, 5, -11, 5, 8, -128, -128, 4, -12, 11, -12, 14, -11, 16, -9, 17, -7, 18, -4, 18, 1, 17, 4, 16, 6, 14, 8, 11, 9, 4, 9, -128, -128, 5, -11, 11, -11, 14, -10, 15, -9, 16, -7, 17, -4, 17, 1, 16, 4, 15, 6, 14, 7, 11, 8, 5, 8, 4, -12, 4, 9, -128, -128, 5, -11, 5, 8, -128, -128, 4, -12, 16, -12, -128, -128, 5, -11, 16, -11, 16, -12, -128, -128, 5, -2, 11, -2, 11, -1, -128, -128, 5, -1, 11, -1, -128, -128, 5, 8, 16, 8, 16, 9, -128, -128, 4, 9, 16, 9, 4, -12, 4, 9, -128, -128, 5, -11, 5, 9, 4, 9, -128, -128, 4, -12, 16, -12, -128, -128, 5, -11, 16, -11, 16, -12, -128, -128, 5, -2, 11, -2, 11, -1, -128, -128, 5, -1, 11, -1, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 18, 0, 13, 0, -128, -128, 18, -7, 17, -7, 16, -9, 15, -10, 13, -11, 9, -11, 7, -10, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, 7, 7, 9, 8, 13, 8, 15, 7, 16, 6, 17, 4, 17, 1, 13, 1, 13, 0, 4, -12, 4, 9, -128, -128, 4, -12, 5, -12, 5, 9, 4, 9, -128, -128, 18, -12, 17, -12, 17, 9, 18, 9, -128, -128, 18, -12, 18, 9, -128, -128, 5, -2, 17, -2, -128, -128, 5, -1, 17, -1, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, 12, -12, 12, 4, 11, 7, 9, 8, 7, 8, 5, 7, 4, 4, 3, 4, -128, -128, 12, -12, 13, -12, 13, 4, 12, 7, 11, 8, 9, 9, 7, 9, 5, 8, 4, 7, 3, 4, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, -128, -128, 18, -12, 17, -12, 5, 0, -128, -128, 18, -12, 5, 1, -128, -128, 8, -3, 17, 9, 18, 9, -128, -128, 9, -3, 18, 9, 4, -12, 4, 9, -128, -128, 4, -12, 5, -12, 5, 8, -128, -128, 5, 8, 16, 8, 16, 9, -128, -128, 4, 9, 16, 9, 4, -12, 4, 9, -128, -128, 5, -7, 5, 9, 4, 9, -128, -128, 5, -7, 12, 9, -128, -128, 4, -12, 12, 6, -128, -128, 20, -12, 12, 6, -128, -128, 19, -7, 12, 9, -128, -128, 19, -7, 19, 9, 20, 9, -128, -128, 20, -12, 20, 9, 4, -12, 4, 9, -128, -128, 5, -9, 5, 9, 4, 9, -128, -128, 5, -9, 18, 9, -128, -128, 4, -12, 17, 6, -128, -128, 17, -12, 17, 6, -128, -128, 17, -12, 18, -12, 18, 9, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 19, 1, 19, -4, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, -128, -128, 10, -11, 7, -10, 5, -7, 4, -4, 4, 1, 5, 4, 7, 7, 10, 8, 12, 8, 15, 7, 17, 4, 18, 1, 18, -4, 17, -7, 15, -10, 12, -11, 10, -11, 4, -12, 4, 9, -128, -128, 5, -11, 5, 9, 4, 9, -128, -128, 4, -12, 13, -12, 15, -11, 16, -10, 17, -8, 17, -5, 16, -3, 15, -2, 13, -1, 5, -1, -128, -128, 5, -11, 13, -11, 15, -10, 16, -8, 16, -5, 15, -3, 13, -2, 5, -2, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 19, 1, 19, -4, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, -128, -128, 10, -11, 7, -10, 5, -7, 4, -4, 4, 1, 5, 4, 7, 7, 10, 8, 12, 8, 15, 7, 17, 4, 18, 1, 18, -4, 17, -7, 15, -10, 12, -11, 10, -11, -128, -128, 12, 6, 17, 11, 18, 11, -128, -128, 12, 6, 13, 6, 18, 11, 4, -12, 4, 9, -128, -128, 5, -11, 5, 9, 4, 9, -128, -128, 4, -12, 12, -12, 15, -11, 16, -10, 17, -8, 17, -5, 16, -3, 15, -2, 12, -1, 5, -1, -128, -128, 5, -11, 12, -11, 15, -10, 16, -8, 16, -5, 15, -3, 12, -2, 5, -2, -128, -128, 10, -1, 16, 9, 17, 9, -128, -128, 11, -1, 17, 9, 17, -9, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 12, -1, 14, 0, 15, 1, 16, 3, 16, 6, 15, 7, 12, 8, 8, 8, 6, 7, 5, 6, 3, 6, -128, -128, 17, -9, 15, -9, 14, -10, 12, -11, 8, -11, 5, -10, 4, -9, 4, -7, 5, -5, 7, -4, 12, -2, 14, -1, 16, 1, 17, 3, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 8, -11, 8, 9, -128, -128, 9, -11, 9, 9, 8, 9, -128, -128, 2, -12, 15, -12, 15, -11, -128, -128, 2, -12, 2, -11, 15, -11, 4, -12, 4, 3, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 3, 18, -12, -128, -128, 4, -12, 5, -12, 5, 3, 6, 6, 7, 7, 10, 8, 12, 8, 15, 7, 16, 6, 17, 3, 17, -12, 18, -12, 2, -12, 10, 9, -128, -128, 2, -12, 3, -12, 10, 6, -128, -128, 18, -12, 17, -12, 10, 6, -128, -128, 18, -12, 10, 9, 2, -12, 8, 9, -128, -128, 2, -12, 3, -12, 8, 6, -128, -128, 13, -12, 8, 6, -128, -128, 13, -9, 8, 9, -128, -128, 13, -9, 18, 9, -128, -128, 13, -12, 18, 6, -128, -128, 24, -12, 23, -12, 18, 6, -128, -128, 24, -12, 18, 9, 3, -12, 16, 9, 17, 9, -128, -128, 3, -12, 4, -12, 17, 9, -128, -128, 17, -12, 16, -12, 3, 9, -128, -128, 17, -12, 4, 9, 3, 9, 2, -12, 9, -2, 9, 9, 10, 9, -128, -128, 2, -12, 3, -12, 10, -2, -128, -128, 17, -12, 16, -12, 9, -2, -128, -128, 17, -12, 10, -2, 10, 9, 16, -12, 3, 9, -128, -128, 17, -12, 4, 9, -128, -128, 3, -12, 17, -12, -128, -128, 3, -12, 3, -11, 16, -11, -128, -128, 4, 8, 17, 8, 17, 9, -128, -128, 3, 9, 17, 9, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 3, 2, 11, -3, 19, 2, -128, -128, 3, 2, 11, -2, 19, 2, 0, 16, 20, 16, 4, -12, 9, -6, -128, -128, 4, -12, 3, -11, 9, -6, 15, -5, 15, 9, 16, 9, -128, -128, 15, -5, 16, -5, 16, 9, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 15, 6, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, -128, -128, 5, -2, 7, -4, 9, -5, 12, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 12, 9, 9, 9, 7, 8, 5, 6, -128, -128, 5, -2, 9, -4, 12, -4, 14, -3, 15, -2, 16, 1, 16, 3, 15, 6, 14, 7, 12, 8, 9, 8, 5, 6, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 14, -1, 13, -3, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 13, 7, 14, 5, 15, 6, 15, -12, 15, 9, 16, 9, -128, -128, 15, -12, 16, -12, 16, 9, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 15, 6, 4, 2, 15, 2, 15, -1, 14, -3, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 4, 1, 14, 1, 14, -1, 13, -3, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 13, 7, 14, 5, 15, 6, 11, -12, 9, -12, 7, -11, 6, -8, 6, 9, 7, 9, -128, -128, 11, -12, 11, -11, 9, -11, 7, -10, -128, -128, 8, -11, 7, -8, 7, 9, -128, -128, 3, -5, 10, -5, 10, -4, -128, -128, 3, -5, 3, -4, 10, -4, 16, -5, 15, -5, 15, 10, 14, 13, 13, 14, 11, 15, 9, 15, 7, 14, 6, 13, 4, 13, -128, -128, 16, -5, 16, 10, 15, 13, 13, 15, 11, 16, 8, 16, 6, 15, 4, 13, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 15, 6, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, -128, -128, 5, -1, 8, -4, 10, -5, 13, -5, 15, -4, 16, -1, 16, 9, -128, -128, 5, -1, 8, -3, 10, -4, 12, -4, 14, -3, 15, -1, 15, 9, 16, 9, 4, -12, 3, -11, 3, -10, 4, -9, 5, -9, 6, -10, 6, -11, 5, -12, 4, -12, -128, -128, 4, -11, 4, -10, 5, -10, 5, -11, 4, -11, -128, -128, 4, -5, 4, 9, 5, 9, -128, -128, 4, -5, 5, -5, 5, 9, 4, -12, 3, -11, 3, -10, 4, -9, 5, -9, 6, -10, 6, -11, 5, -12, 4, -12, -128, -128, 4, -11, 4, -10, 5, -10, 5, -11, 4, -11, -128, -128, 4, -5, 4, 16, 5, 16, -128, -128, 4, -5, 5, -5, 5, 16, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, -128, -128, 16, -5, 15, -5, 5, 5, -128, -128, 16, -5, 5, 6, -128, -128, 8, 2, 14, 9, 16, 9, -128, -128, 9, 1, 16, 9, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, 4, -5, 4, 9, 5, 9, -128, -128, 4, -5, 5, -5, 5, 9, -128, -128, 5, -1, 8, -4, 10, -5, 13, -5, 15, -4, 16, -1, 16, 9, -128, -128, 5, -1, 8, -3, 10, -4, 12, -4, 14, -3, 15, -1, 15, 9, 16, 9, -128, -128, 16, -1, 19, -4, 21, -5, 24, -5, 26, -4, 27, -1, 27, 9, -128, -128, 16, -1, 19, -3, 21, -4, 23, -4, 25, -3, 26, -1, 26, 9, 27, 9, 4, -5, 4, 9, 5, 9, -128, -128, 4, -5, 5, -5, 5, 9, -128, -128, 5, -1, 8, -4, 10, -5, 13, -5, 15, -4, 16, -1, 16, 9, -128, -128, 5, -1, 8, -3, 10, -4, 12, -4, 14, -3, 15, -1, 15, 9, 16, 9, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 16, 3, 16, 1, 15, -2, 13, -4, 11, -5, 8, -5, -128, -128, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 13, 7, 14, 6, 15, 3, 15, 1, 14, -2, 13, -3, 11, -4, 8, -4, 4, -5, 4, 16, 5, 16, -128, -128, 4, -5, 5, -5, 5, 16, -128, -128, 5, -2, 7, -4, 9, -5, 12, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 12, 9, 9, 9, 7, 8, 5, 6, -128, -128, 5, -2, 9, -4, 12, -4, 14, -3, 15, -2, 16, 1, 16, 3, 15, 6, 14, 7, 12, 8, 9, 8, 5, 6, 15, -5, 15, 16, 16, 16, -128, -128, 15, -5, 16, -5, 16, 16, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 15, 6, 4, -5, 4, 9, 5, 9, -128, -128, 4, -5, 5, -5, 5, 9, -128, -128, 5, 1, 6, -2, 8, -4, 10, -5, 13, -5, -128, -128, 5, 1, 6, -1, 8, -3, 10, -4, 13, -4, 13, -5, 14, -2, 13, -4, 10, -5, 7, -5, 4, -4, 3, -2, 4, 0, 6, 1, 11, 3, 13, 4, -128, -128, 12, 3, 13, 5, 13, 6, 12, 8, -128, -128, 13, 7, 10, 8, 7, 8, 4, 7, -128, -128, 5, 8, 4, 6, 3, 6, -128, -128, 14, -2, 13, -2, 12, -4, -128, -128, 13, -3, 10, -4, 7, -4, 4, -3, -128, -128, 5, -4, 4, -2, 5, 0, -128, -128, 4, -1, 6, 0, 11, 2, 13, 3, 14, 5, 14, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 6, 5, -12, 5, 9, 6, 9, -128, -128, 5, -12, 6, -12, 6, 9, -128, -128, 2, -5, 9, -5, 9, -4, -128, -128, 2, -5, 2, -4, 9, -4, 4, -5, 4, 5, 5, 8, 7, 9, 10, 9, 12, 8, 15, 5, -128, -128, 4, -5, 5, -5, 5, 5, 6, 7, 8, 8, 10, 8, 12, 7, 15, 5, -128, -128, 15, -5, 15, 9, 16, 9, -128, -128, 15, -5, 16, -5, 16, 9, 2, -5, 8, 9, -128, -128, 2, -5, 3, -5, 8, 7, -128, -128, 14, -5, 13, -5, 8, 7, -128, -128, 14, -5, 8, 9, 3, -5, 8, 9, -128, -128, 3, -5, 4, -5, 8, 6, -128, -128, 12, -5, 8, 6, -128, -128, 12, -2, 8, 9, -128, -128, 12, -2, 16, 9, -128, -128, 12, -5, 16, 6, -128, -128, 21, -5, 20, -5, 16, 6, -128, -128, 21, -5, 16, 9, 3, -5, 14, 9, 15, 9, -128, -128, 3, -5, 4, -5, 15, 9, -128, -128, 15, -5, 14, -5, 3, 9, -128, -128, 15, -5, 4, 9, 3, 9, 2, -5, 8, 9, -128, -128, 2, -5, 3, -5, 8, 7, -128, -128, 14, -5, 13, -5, 8, 7, 4, 16, -128, -128, 14, -5, 8, 9, 5, 16, 4, 16, 13, -4, 3, 9, -128, -128, 15, -5, 5, 8, -128, -128, 3, -5, 15, -5, -128, -128, 3, -5, 3, -4, 13, -4, -128, -128, 5, 8, 15, 8, 15, 9, -128, -128, 3, 9, 15, 9, 10, -16, 3, 0, 10, 16, 4, -16, 4, 16, 4, -16, 11, 0, 4, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 }; -const hershey_font_t futuram { +const font_t futuram { .chars = { {.width=16, .vertex_count=0, .vertices=&futuram_vertices[0]}, {.width=11, .vertex_count=23, .vertices=&futuram_vertices[0]}, @@ -208,11 +210,11 @@ const hershey_font_t futuram { } }; -static const int8_t gothgbt_vertices[9046] = { +const int8_t gothgbt_vertices[9046] = { 6, -12, 5, -11, 3, -10, 5, -9, 6, 2, -128, -128, 6, -9, 7, -10, 6, -11, 5, -10, 6, -9, 6, 2, -128, -128, 6, -12, 7, -11, 9, -10, 7, -9, 6, 2, -128, -128, 6, 6, 4, 8, 6, 9, 8, 8, 6, 6, -128, -128, 6, 7, 5, 8, 7, 8, 6, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, -128, -128, 14, -12, 13, -11, 13, -5, -128, -128, 14, -11, 13, -5, -128, -128, 14, -12, 15, -11, 13, -5, 11, -12, 4, 16, -128, -128, 17, -12, 10, 16, -128, -128, 4, -1, 18, -1, -128, -128, 3, 5, 17, 5, 8, -16, 8, 13, -128, -128, 12, -16, 12, 13, -128, -128, 12, -12, 14, -11, 15, -9, 15, -7, 17, -8, 16, -10, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -6, 4, -4, 7, -2, 13, 0, 15, 1, 16, 3, 16, 6, 15, 8, -128, -128, 16, -8, 15, -10, -128, -128, 4, -6, 5, -4, 7, -3, 13, -1, 15, 0, 16, 2, -128, -128, 5, 7, 4, 5, -128, -128, 5, -11, 4, -9, 4, -7, 5, -5, 7, -4, 13, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 5, 4, 5, 6, 6, 8, 8, 9, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 20, -4, 21, -3, 22, -3, 23, -4, -128, -128, 19, -3, 20, -2, 22, -2, -128, -128, 19, -2, 20, -1, 21, -1, 22, -2, 23, -4, -128, -128, 20, -4, 14, 2, -128, -128, 13, 3, 7, 9, 3, 4, 9, -2, -128, -128, 10, -3, 14, -7, 10, -12, 5, -6, 11, 0, 15, 6, 17, 8, 19, 9, 21, 9, 22, 8, 23, 6, -128, -128, 7, 8, 4, 4, -128, -128, 13, -7, 10, -11, -128, -128, 6, -6, 11, -1, 15, 5, 17, 7, 19, 8, 22, 8, -128, -128, 8, 8, 4, 3, -128, -128, 13, -6, 9, -11, -128, -128, 6, -7, 12, -1, 16, 5, 17, 6, 19, 7, 22, 7, 23, 6, 6, -6, 6, -8, 4, -10, 6, -12, 7, -10, 7, -8, 6, -6, 4, -5, -128, -128, 6, -11, 5, -10, 6, -9, 6, -11, 10, -16, 8, -14, 6, -11, 4, -7, 3, -2, 3, 2, 4, 7, 6, 11, 8, 14, 10, 16, -128, -128, 6, -10, 5, -7, 4, -3, 4, 3, 5, 7, 6, 10, -128, -128, 8, -14, 7, -12, 6, -9, 5, -3, 5, 3, 6, 9, 7, 12, 8, 14, 4, -16, 6, -14, 8, -11, 10, -7, 11, -2, 11, 2, 10, 7, 8, 11, 6, 14, 4, 16, -128, -128, 8, -10, 9, -7, 10, -3, 10, 3, 9, 7, 8, 10, -128, -128, 6, -14, 7, -12, 8, -9, 9, -3, 9, 3, 8, 9, 7, 12, 6, 14, 8, -12, 7, -11, 9, -1, 8, 0, -128, -128, 8, -12, 8, 0, -128, -128, 8, -12, 9, -11, 7, -1, 8, 0, -128, -128, 3, -9, 4, -9, 12, -3, 13, -3, -128, -128, 3, -9, 13, -3, -128, -128, 3, -9, 3, -8, 13, -4, 13, -3, -128, -128, 13, -9, 12, -9, 4, -3, 3, -3, -128, -128, 13, -9, 3, -3, -128, -128, 13, -9, 13, -8, 3, -4, 3, -3, 12, -9, 12, 8, 13, 8, -128, -128, 12, -9, 13, -9, 13, 8, -128, -128, 4, -1, 21, -1, 21, 0, -128, -128, 4, -1, 4, 0, 21, 0, 6, 12, 6, 10, 4, 8, 6, 6, 7, 8, 7, 10, 6, 12, 4, 13, -128, -128, 6, 7, 5, 8, 6, 9, 6, 7, 4, -1, 21, -1, 21, 0, -128, -128, 4, -1, 4, 0, 21, 0, 6, 6, 4, 8, 6, 9, 8, 8, 6, 6, -128, -128, 6, 7, 5, 8, 7, 8, 6, 7, 20, -16, 2, 16, 3, 16, -128, -128, 20, -16, 21, -16, 3, 16, 4, -10, 4, 6, 2, 7, -128, -128, 5, -9, 5, 6, 8, 8, -128, -128, 6, -10, 6, 6, 8, 7, 9, 8, -128, -128, 4, -10, 6, -10, 11, -11, 13, -12, -128, -128, 11, -11, 12, -10, 14, -9, 14, 7, -128, -128, 12, -11, 15, -9, 15, 6, -128, -128, 13, -12, 14, -11, 16, -10, 18, -10, 16, -9, 16, 7, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 14, 7, 16, 7, 7, -10, 8, -9, 9, -7, 9, 6, 7, 7, -128, -128, 9, -9, 8, -10, 9, -11, 10, -9, 10, 7, 12, 8, -128, -128, 7, -10, 10, -12, 11, -10, 11, 6, 13, 7, 14, 7, -128, -128, 7, 7, 8, 7, 10, 8, 11, 9, 12, 8, 14, 7, 4, -10, 6, -10, 8, -11, 9, -12, 11, -11, 14, -10, 16, -10, -128, -128, 8, -10, 10, -11, -128, -128, 4, -10, 6, -9, 8, -9, 10, -10, 11, -11, -128, -128, 14, -10, 14, -2, -128, -128, 15, -9, 15, -3, -128, -128, 16, -10, 16, -2, 9, -2, 6, -1, 4, 1, 3, 4, 3, 9, -128, -128, 3, 9, 7, 7, 11, 6, 14, 6, 18, 7, -128, -128, 6, 8, 9, 7, 14, 7, 17, 8, -128, -128, 3, 9, 8, 8, 13, 8, 16, 9, 18, 7, 4, -10, 5, -10, 7, -11, 8, -12, 10, -11, 14, -10, 16, -10, -128, -128, 7, -10, 9, -11, -128, -128, 4, -10, 6, -9, 8, -9, 10, -11, -128, -128, 14, -10, 14, -3, -128, -128, 15, -9, 15, -4, -128, -128, 16, -10, 16, -3, 14, -3, 11, -2, 9, -1, -128, -128, 9, -2, 11, -1, 14, 0, 16, 0, 16, 7, -128, -128, 15, 1, 15, 6, -128, -128, 14, 0, 14, 7, -128, -128, 3, 7, 5, 6, 7, 6, 9, 7, 10, 8, -128, -128, 7, 7, 9, 8, -128, -128, 3, 7, 5, 7, 7, 8, 8, 9, 10, 8, 14, 7, 16, 7, 13, -12, 3, -2, 3, 3, 12, 3, -128, -128, 14, 3, 18, 3, 19, 4, 19, 2, 18, 3, -128, -128, 4, -2, 4, 2, -128, -128, 5, -4, 5, 3, -128, -128, 12, -11, 12, 6, 10, 7, -128, -128, 13, -8, 14, -10, 13, -11, 13, 7, 15, 8, -128, -128, 13, -12, 15, -10, 14, -8, 14, 6, 16, 7, 17, 7, -128, -128, 10, 7, 11, 7, 13, 8, 14, 9, 15, 8, 17, 7, 4, -12, 4, -3, -128, -128, 4, -12, 16, -12, -128, -128, 5, -11, 14, -11, -128, -128, 4, -10, 13, -10, 15, -11, 16, -12, -128, -128, 14, -6, 13, -5, 11, -4, 7, -3, 4, -3, -128, -128, 11, -4, 12, -4, 14, -3, 14, 7, -128, -128, 13, -5, 15, -4, 15, 6, -128, -128, 14, -6, 15, -5, 17, -4, 18, -4, 16, -3, 16, 7, -128, -128, 3, 7, 5, 6, 7, 6, 9, 7, 10, 8, -128, -128, 7, 7, 9, 8, -128, -128, 3, 7, 5, 7, 7, 8, 8, 9, 10, 8, 14, 7, 16, 7, 4, -10, 4, 6, 2, 7, -128, -128, 5, -9, 5, 6, 8, 8, -128, -128, 6, -10, 6, 6, 8, 7, 9, 8, -128, -128, 4, -10, 6, -10, 10, -11, 12, -12, 13, -11, 15, -10, 16, -10, -128, -128, 11, -11, 13, -10, -128, -128, 10, -11, 12, -9, 14, -9, 16, -10, -128, -128, 6, -2, 7, -2, 11, -3, 13, -4, 14, -5, -128, -128, 11, -3, 12, -3, 14, -2, 14, 7, -128, -128, 13, -4, 15, -2, 15, 6, -128, -128, 14, -5, 15, -4, 17, -3, 18, -3, 16, -2, 16, 7, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 14, 7, 16, 7, 3, -10, 5, -12, 8, -11, 13, -11, 18, -12, -128, -128, 4, -11, 7, -10, 12, -10, 15, -11, -128, -128, 3, -10, 7, -9, 10, -9, 14, -10, 18, -12, -128, -128, 18, -12, 17, -10, 15, -7, 11, -3, 9, 0, 8, 3, 8, 6, 9, 9, -128, -128, 10, -1, 9, 2, 9, 5, 10, 8, -128, -128, 13, -5, 11, -2, 10, 1, 10, 4, 11, 7, 9, 9, 4, -9, 4, -3, -128, -128, 5, -8, 5, -4, -128, -128, 6, -9, 6, -3, -128, -128, 4, -9, 6, -9, 11, -10, 13, -11, 14, -12, -128, -128, 11, -10, 12, -10, 14, -9, 14, -3, -128, -128, 13, -11, 15, -10, 15, -4, -128, -128, 14, -12, 15, -11, 17, -10, 18, -10, 16, -9, 16, -3, -128, -128, 4, -3, 6, -3, 14, 0, 16, 0, -128, -128, 16, -3, 14, -3, 6, 0, 4, 0, -128, -128, 4, 0, 4, 6, 2, 7, -128, -128, 5, 1, 5, 6, 8, 8, -128, -128, 6, 0, 6, 6, 8, 7, 9, 8, -128, -128, 14, 0, 14, 7, -128, -128, 15, 1, 15, 6, -128, -128, 16, 0, 16, 7, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 14, 7, 16, 7, 4, -10, 4, -1, 2, 0, -128, -128, 5, -9, 5, 0, 7, 1, -128, -128, 6, -10, 6, -1, 8, 0, 9, 0, -128, -128, 4, -10, 6, -10, 11, -11, 13, -12, -128, -128, 11, -11, 12, -10, 14, -9, 14, 7, -128, -128, 12, -11, 15, -9, 15, 6, -128, -128, 13, -12, 14, -11, 16, -10, 18, -10, 16, -9, 16, 7, -128, -128, 2, 0, 3, 0, 5, 1, 6, 2, 7, 1, 9, 0, 13, -1, 14, -1, -128, -128, 3, 7, 5, 6, 7, 6, 9, 7, 10, 8, -128, -128, 7, 7, 9, 8, -128, -128, 3, 7, 5, 7, 7, 8, 8, 9, 10, 8, 14, 7, 16, 7, 6, -5, 4, -3, 6, -2, 8, -3, 6, -5, -128, -128, 6, -4, 5, -3, 7, -3, 6, -4, -128, -128, 6, 6, 4, 8, 6, 9, 8, 8, 6, 6, -128, -128, 6, 7, 5, 8, 7, 8, 6, 7, 6, -5, 4, -3, 6, -2, 8, -3, 6, -5, -128, -128, 6, -4, 5, -3, 7, -3, 6, -4, -128, -128, 6, 12, 6, 10, 4, 8, 6, 6, 7, 8, 7, 10, 6, 12, 4, 13, -128, -128, 6, 7, 5, 8, 6, 9, 6, 7, 20, -9, 4, 0, 20, 9, 4, -5, 21, -5, 21, -4, -128, -128, 4, -5, 4, -4, 21, -4, -128, -128, 4, 3, 21, 3, 21, 4, -128, -128, 4, 3, 4, 4, 21, 4, 4, -9, 20, 0, 4, 9, 3, -8, 4, -10, 5, -11, 8, -12, 10, -12, 13, -11, 14, -10, 15, -8, 15, -6, 14, -4, 12, -2, 10, -1, -128, -128, 4, -8, 5, -10, -128, -128, 13, -10, 14, -9, 14, -5, 13, -4, -128, -128, 3, -8, 5, -7, 5, -9, 6, -11, 8, -12, -128, -128, 10, -12, 12, -11, 13, -9, 13, -5, 12, -3, 10, -1, -128, -128, 9, -1, 9, 2, 10, -1, 8, -1, 9, 2, -128, -128, 9, 6, 7, 8, 9, 9, 11, 8, 9, 6, -128, -128, 9, 7, 8, 8, 10, 8, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 5, -9, 7, -11, 9, -12, 11, -12, 12, -11, 19, 5, 20, 6, 22, 6, -128, -128, 10, -11, 11, -10, 18, 6, 19, 8, 20, 7, 18, 6, -128, -128, 7, -11, 9, -11, 10, -10, 17, 6, 18, 8, 19, 9, 20, 9, 22, 6, -128, -128, 5, -5, 6, -6, 8, -7, 9, -7, 10, -6, -128, -128, 9, -6, 9, -5, -128, -128, 6, -6, 8, -6, 9, -4, -128, -128, 0, 9, 2, 7, 4, 6, 7, 6, 9, 7, -128, -128, 3, 7, 7, 7, 8, 8, -128, -128, 0, 9, 3, 8, 6, 8, 7, 9, 9, 7, -128, -128, 11, -8, 5, 6, -128, -128, 7, 1, 15, 1, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 18, -12, 20, -11, 21, -9, 21, -7, 19, -5, 15, -3, -128, -128, 18, -11, 20, -9, 20, -7, -128, -128, 16, -11, 18, -10, 19, -9, 19, -6, 17, -4, -128, -128, 17, -4, 20, -2, 21, 0, 21, 6, -128, -128, 19, -2, 20, 0, 20, 5, -128, -128, 17, -4, 18, -3, 19, -1, 19, 6, -128, -128, 4, 9, 7, 7, 10, 6, 14, 6, 17, 7, -128, -128, 6, 8, 9, 7, 14, 7, 16, 8, -128, -128, 4, 9, 8, 8, 13, 8, 15, 9, 17, 7, 19, 6, 21, 6, -128, -128, 15, -3, 15, 6, -128, -128, 15, 0, 19, 0, -128, -128, 15, 3, 19, 3, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 1, 4, 4, 5, 6, 8, 8, 11, 9, 14, 9, 17, 8, 19, 7, 21, 5, 22, 3, -128, -128, 5, -7, 4, -4, 4, 1, 6, 5, 9, 7, 12, 8, 15, 8, 18, 7, -128, -128, 9, -11, 7, -9, 6, -7, 5, -4, 5, 0, 6, 3, 9, 6, 12, 7, 15, 7, 18, 6, 20, 5, 22, 3, -128, -128, 11, -8, 11, 4, -128, -128, 12, -8, 12, 2, -128, -128, 13, -9, 13, 1, 12, 3, 11, 4, -128, -128, 11, -8, 13, -9, 16, -12, 18, -11, 20, -11, 21, -12, -128, -128, 15, -11, 17, -10, 19, -10, -128, -128, 14, -10, 16, -9, 18, -9, 20, -10, 21, -12, -128, -128, 18, -9, 18, 6, 2, -12, 16, -12, 18, -11, 19, -9, 19, 6, -128, -128, 4, -11, 16, -11, 18, -9, 18, 5, -128, -128, 2, -12, 3, -11, 5, -10, 16, -10, 17, -9, 17, 6, -128, -128, 8, -7, 7, -6, 6, -4, 6, -3, 4, -3, 3, -2, 3, 0, 4, -1, 6, -1, 6, 4, -128, -128, 7, -5, 7, 2, -128, -128, 4, -2, 7, -2, -128, -128, 8, -7, 8, 1, 7, 3, 6, 4, -128, -128, 2, 9, 5, 7, 8, 6, 12, 6, 15, 7, -128, -128, 4, 8, 7, 7, 12, 7, 14, 8, -128, -128, 2, 9, 6, 8, 11, 8, 13, 9, 15, 7, 17, 6, 19, 6, -128, -128, 11, -10, 11, 6, -128, -128, 11, -5, 13, -4, 15, -4, 17, -5, -128, -128, 11, 1, 13, 0, 15, 0, 17, 1, 2, -10, 4, -12, 6, -12, 8, -11, 10, -12, -128, -128, 5, -11, 7, -11, -128, -128, 2, -10, 4, -11, 6, -10, 8, -10, 10, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 10, -5, 11, -8, 12, -10, 13, -11, 15, -12, 17, -12, 20, -11, -128, -128, 13, -10, 15, -11, 17, -11, 19, -10, -128, -128, 11, -8, 12, -9, 14, -10, 16, -10, 18, -9, 20, -11, -128, -128, 10, 3, 11, 0, 12, -2, 13, -3, 15, -3, 17, -2, -128, -128, 13, -2, 15, -2, 16, -1, -128, -128, 11, 0, 12, -1, 14, -1, 15, 0, 17, -2, -128, -128, 4, 9, 7, 7, 11, 6, 16, 6, 20, 7, -128, -128, 6, 8, 9, 7, 16, 7, 19, 8, -128, -128, 4, 9, 8, 8, 15, 8, 18, 9, 20, 7, -128, -128, 10, -5, 10, 6, 4, -10, 6, -12, 9, -12, 11, -11, 13, -12, -128, -128, 7, -11, 10, -11, -128, -128, 4, -10, 6, -11, 8, -10, 11, -10, 13, -12, -128, -128, 10, -7, 9, -6, 8, -4, 8, -3, 6, -3, 5, -2, 5, 0, 6, -1, 8, -1, 8, 4, -128, -128, 9, -5, 9, 2, -128, -128, 6, -2, 9, -2, -128, -128, 10, -7, 10, 1, 9, 3, 8, 4, -128, -128, 13, -8, 13, 7, 12, 8, 11, 8, 7, 6, 5, 6, 3, 7, 1, 9, -128, -128, 14, -8, 14, 6, -128, -128, 14, -2, 18, -2, -128, -128, 10, 8, 9, 8, 7, 7, 4, 7, -128, -128, 15, -9, 15, -3, 18, -3, -128, -128, 18, -1, 15, -1, 15, 5, 14, 7, 10, 9, 8, 9, 6, 8, 4, 8, 1, 9, -128, -128, 13, -8, 15, -9, 18, -12, 20, -11, 22, -11, 23, -12, -128, -128, 17, -11, 19, -10, 21, -10, -128, -128, 16, -10, 18, -9, 20, -9, 22, -10, 23, -12, -128, -128, 18, -9, 18, 5, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 16, 9, 19, 8, 21, 6, 22, 4, 22, 1, 21, -1, 20, -2, 18, -3, 16, -3, -128, -128, 5, -7, 4, -4, 4, 1, 5, 4, -128, -128, 9, -11, 7, -9, 6, -7, 5, -4, 5, 1, 6, 4, 7, 6, 9, 8, -128, -128, 20, 6, 21, 5, 21, 1, 20, -1, -128, -128, 16, 9, 18, 8, 19, 7, 20, 5, 20, 1, 19, -1, 18, -2, 16, -3, -128, -128, 11, -8, 11, 5, -128, -128, 12, -8, 12, 3, -128, -128, 13, -9, 13, 2, 12, 4, 11, 5, -128, -128, 11, -8, 13, -9, 16, -12, 18, -11, 20, -11, 21, -12, -128, -128, 15, -11, 17, -10, 19, -10, -128, -128, 14, -10, 16, -9, 18, -9, 20, -10, 21, -12, -128, -128, 20, -10, 16, -3, 16, 9, -128, -128, 16, 1, 20, 1, -128, -128, 16, 4, 20, 4, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 4, 9, 7, 7, 10, 6, 13, 6, 15, 7, -128, -128, 6, 8, 9, 7, 12, 7, 14, 8, -128, -128, 4, 9, 8, 8, 11, 8, 13, 9, 15, 7, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 14, -11, 16, -12, 18, -12, 20, -11, -128, -128, 17, -11, 18, -11, 19, -10, -128, -128, 14, -11, 16, -11, 18, -9, 20, -11, -128, -128, 15, -3, 17, -4, 19, -6, 20, -5, 21, -2, 21, 2, 20, 6, 18, 9, -128, -128, 18, -5, 19, -4, 20, -2, 20, 3, 19, 6, -128, -128, 17, -4, 18, -4, 19, -2, 19, 3, 18, 9, -128, -128, 15, -3, 15, 7, -128, -128, 15, 0, 19, 0, -128, -128, 15, 3, 19, 3, 3, -10, 5, -12, 8, -12, 11, -11, 13, -12, -128, -128, 6, -11, 10, -11, -128, -128, 3, -10, 5, -11, 8, -10, 11, -10, 13, -12, -128, -128, 10, -7, 9, -6, 8, -4, 8, -3, 6, -3, 5, -2, 5, 0, 6, -1, 8, -1, 8, 4, -128, -128, 9, -5, 9, 2, -128, -128, 6, -2, 9, -2, -128, -128, 10, -7, 10, 1, 9, 3, 8, 4, -128, -128, 16, -10, 14, -8, 13, -5, 13, 6, 12, 8, 10, 8, 6, 6, 4, 6, 2, 7, 0, 9, -128, -128, 14, -7, 14, 5, -128, -128, 9, 8, 8, 8, 6, 7, 3, 7, -128, -128, 16, -10, 15, -8, 15, 4, 14, 6, 12, 8, 10, 9, 7, 9, 5, 8, 2, 8, 0, 9, 4, -10, 6, -12, 9, -12, 12, -11, 14, -12, -128, -128, 7, -11, 11, -11, -128, -128, 4, -10, 6, -11, 9, -10, 12, -10, 14, -12, -128, -128, 11, -7, 10, -6, 9, -4, 9, -3, 7, -3, 6, -2, 6, 0, 7, -1, 9, -1, 9, 4, -128, -128, 10, -5, 10, 2, -128, -128, 7, -2, 10, -2, -128, -128, 11, -7, 11, 1, 10, 3, 9, 4, -128, -128, 17, -10, 15, -8, 14, -5, 14, 6, 13, 8, -128, -128, 15, -7, 15, 5, -128, -128, 17, -10, 16, -8, 16, 4, 15, 6, 13, 8, 10, 9, 7, 9, 4, 8, 2, 6, 2, 4, 3, 3, 4, 3, 5, 4, 4, 5, 3, 5, -128, -128, 2, 4, 5, 4, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 4, 9, 7, 7, 10, 6, 13, 6, 15, 7, -128, -128, 6, 8, 8, 7, 12, 7, 14, 8, -128, -128, 4, 9, 8, 8, 11, 8, 13, 9, 15, 7, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 14, -11, 16, -12, 18, -12, 20, -11, -128, -128, 17, -11, 18, -11, 19, -10, -128, -128, 14, -11, 16, -11, 18, -9, 20, -11, -128, -128, 15, -3, 18, -6, 19, -5, 21, -4, -128, -128, 17, -5, 19, -4, 21, -4, -128, -128, 21, -4, 19, -1, 17, 1, 15, 3, -128, -128, 17, 1, 19, 2, 20, 6, 21, 8, 22, 8, -128, -128, 19, 4, 20, 8, -128, -128, 17, 1, 18, 2, 19, 8, 20, 9, 21, 9, 22, 8, -128, -128, 15, -3, 15, 7, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 4, 9, 7, 7, 11, 6, 16, 6, 20, 7, -128, -128, 6, 8, 9, 7, 16, 7, 19, 8, -128, -128, 4, 9, 8, 8, 15, 8, 18, 9, 20, 7, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 14, -11, 16, -12, 18, -12, 20, -11, -128, -128, 17, -11, 18, -11, 19, -10, -128, -128, 14, -11, 16, -11, 18, -9, 20, -11, -128, -128, 16, -11, 16, 6, 8, -8, 7, -7, 6, -5, 6, -3, 4, -3, 3, -2, 3, 0, 4, -1, 6, -1, 6, 3, -128, -128, 7, -6, 7, 1, -128, -128, 4, -2, 7, -2, -128, -128, 8, -8, 8, 0, 7, 2, 6, 3, -128, -128, 1, 9, 3, 7, 5, 6, 7, 6, 9, 7, 10, 7, 11, 6, -128, -128, 4, 7, 7, 7, 9, 8, -128, -128, 1, 9, 3, 8, 6, 8, 8, 9, 9, 9, 10, 8, 11, 6, -128, -128, 8, -8, 12, -12, 16, -8, 16, 5, 17, 7, 18, 7, -128, -128, 12, -11, 15, -8, 15, 6, 14, 7, 15, 8, 16, 7, 15, 6, -128, -128, 12, -2, 15, -2, -128, -128, 10, -10, 11, -10, 14, -7, 14, -3, 11, -3, -128, -128, 11, -1, 14, -1, 14, 6, 13, 7, 15, 9, 18, 7, 19, 6, -128, -128, 16, -8, 20, -12, 24, -8, 24, 5, 25, 7, 26, 7, -128, -128, 20, -11, 23, -8, 23, 6, 25, 8, -128, -128, 20, -2, 23, -2, -128, -128, 18, -10, 19, -10, 22, -7, 22, -3, 19, -3, -128, -128, 19, -1, 22, -1, 22, 7, 24, 9, 26, 7, -128, -128, 11, -10, 11, 6, -128, -128, 19, -10, 19, 6, 2, -9, 4, -11, 6, -12, 8, -12, 10, -11, 12, -8, 17, 3, 19, 6, 20, 7, -128, -128, 8, -11, 10, -9, 11, -7, 17, 5, 20, 8, -128, -128, 4, -11, 6, -11, 8, -10, 10, -7, 15, 4, 17, 7, 18, 8, 20, 9, -128, -128, 17, -10, 19, -9, 21, -9, 23, -10, 24, -12, -128, -128, 18, -11, 20, -10, 22, -10, -128, -128, 17, -10, 19, -12, 21, -11, 23, -11, 24, -12, -128, -128, 6, -3, 4, -3, 3, -2, 3, 0, 4, -1, 6, -1, -128, -128, 4, -2, 6, -2, -128, -128, 2, 9, 4, 7, 6, 6, 9, 6, 11, 7, -128, -128, 5, 7, 8, 7, 10, 8, -128, -128, 2, 9, 5, 8, 8, 8, 9, 9, 11, 7, -128, -128, 6, -11, 6, 6, -128, -128, 20, -9, 20, 9, -128, -128, 13, -6, 14, -5, 16, -4, 18, -4, 20, -5, -128, -128, 6, 2, 8, 1, 12, 1, 14, 2, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 14, 9, 17, 8, 19, 7, 21, 5, 22, 3, 23, 0, 23, -4, 22, -7, 21, -9, 19, -11, 17, -12, 16, -11, 13, -9, 10, -8, -128, -128, 5, -8, 4, -5, 4, 1, 5, 4, -128, -128, 9, -12, 7, -10, 6, -8, 5, -5, 5, 1, 6, 4, 7, 6, 9, 8, -128, -128, 21, 4, 22, 1, 22, -5, 20, -9, 19, -10, -128, -128, 17, 8, 19, 6, 20, 4, 21, 1, 21, -5, 20, -7, 18, -10, 16, -11, -128, -128, 10, -8, 10, 5, -128, -128, 11, -8, 11, 3, -128, -128, 12, -8, 12, 2, 11, 4, 10, 5, -128, -128, 16, -11, 16, 8, -128, -128, 16, -5, 18, -4, 19, -4, 21, -5, -128, -128, 16, 1, 18, 0, 19, 0, 21, 1, 3, -12, 4, -11, 5, -9, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 7, 2, 9, 5, 8, 5, 16, 7, 14, -128, -128, 5, -10, 6, -8, 6, 14, -128, -128, 3, -2, 6, -2, -128, -128, 3, -12, 5, -11, 6, -10, 7, -8, 7, 14, -128, -128, 7, -7, 10, -9, 14, -12, 18, -8, 18, 6, -128, -128, 14, -11, 17, -8, 17, 6, -128, -128, 12, -10, 13, -10, 16, -7, 16, 7, -128, -128, 10, 6, 13, 6, 16, 7, -128, -128, 11, 7, 13, 7, 15, 8, -128, -128, 10, 8, 12, 8, 14, 9, 16, 7, 18, 6, -128, -128, 10, -9, 10, 13, -128, -128, 10, -5, 12, -4, 14, -4, 16, -5, -128, -128, 10, 1, 12, 0, 14, 0, 16, 1, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 11, 9, 15, 9, 17, 8, 19, 7, 21, 5, 22, 3, 23, 0, 23, -4, 22, -7, 21, -9, 19, -11, 17, -12, 16, -11, 13, -9, 10, -8, -128, -128, 5, -8, 4, -5, 4, 1, 5, 4, -128, -128, 9, -12, 7, -10, 6, -8, 5, -5, 5, 1, 6, 4, 7, 6, 9, 8, -128, -128, 21, 4, 22, 1, 22, -5, 20, -9, 19, -10, -128, -128, 17, 8, 19, 6, 20, 4, 21, 1, 21, -5, 20, -7, 18, -10, 16, -11, -128, -128, 10, -8, 10, 5, -128, -128, 11, -8, 11, 3, -128, -128, 12, -8, 12, 2, 11, 4, 10, 5, -128, -128, 16, -11, 16, 8, -128, -128, 16, -5, 18, -4, 19, -4, 21, -5, -128, -128, 16, 1, 18, 0, 19, 0, 21, 1, -128, -128, 11, 9, 12, 8, 13, 8, 15, 9, 19, 14, 21, 15, 22, 15, -128, -128, 15, 10, 17, 13, 19, 15, 20, 15, -128, -128, 13, 8, 14, 9, 17, 15, 19, 16, 21, 16, 22, 15, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 4, 9, 7, 7, 10, 6, 12, 6, 15, 7, -128, -128, 6, 8, 8, 7, 12, 7, 14, 8, -128, -128, 4, 9, 8, 8, 11, 8, 13, 9, 15, 7, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 15, -11, 17, -12, 19, -11, 20, -9, 20, -6, 19, -4, 18, -3, 14, -1, 12, 0, -128, -128, 17, -11, 18, -11, 19, -9, 19, -5, 18, -4, -128, -128, 15, -11, 17, -10, 18, -8, 18, -5, 17, -3, 14, -1, -128, -128, 14, -1, 16, 0, 17, 1, 20, 6, 21, 7, 22, 7, -128, -128, 17, 2, 19, 6, 21, 8, -128, -128, 14, -1, 16, 1, 18, 7, 20, 9, 22, 7, 14, -9, 13, -10, 11, -11, 8, -12, -128, -128, 15, -10, 13, -11, -128, -128, 16, -11, 12, -12, 8, -12, 5, -11, 4, -10, 3, -8, 4, -6, 5, -5, 8, -4, 16, -4, 18, -3, 19, -2, 19, 0, 18, 3, -128, -128, 4, -7, 5, -6, 8, -5, 17, -5, 19, -4, 20, -3, 20, -1, 19, 1, -128, -128, 4, -10, 4, -8, 5, -7, 8, -6, 18, -6, 20, -5, 21, -3, 21, -1, 18, 3, 14, 9, -128, -128, 2, -3, 3, -2, 5, -1, 14, -1, 15, 0, 15, 1, 14, 3, -128, -128, 3, -1, 5, 0, 13, 0, 14, 1, -128, -128, 2, -3, 2, -2, 3, 0, 5, 1, 12, 1, 14, 2, 14, 3, -128, -128, 2, 9, 5, 7, 9, 6, 12, 6, 15, 7, -128, -128, 4, 8, 7, 7, 11, 7, 14, 8, -128, -128, 2, 9, 6, 8, 11, 8, 14, 9, -128, -128, 16, -11, 14, -9, 12, -6, -128, -128, 11, -4, 9, -1, -128, -128, 8, 1, 6, 3, 4, 4, 3, 4, 3, 3, 4, 4, 5, -8, 4, -6, 3, -3, 3, 1, 4, 4, 6, 7, 8, 8, 11, 9, 14, 9, 17, 8, 19, 7, 21, 5, 22, 3, -128, -128, 4, 1, 5, 4, 7, 6, 9, 7, 12, 8, 15, 8, 18, 7, -128, -128, 5, -8, 4, -5, 4, -1, 5, 2, 7, 5, 9, 6, 12, 7, 15, 7, 18, 6, 20, 5, 22, 3, -128, -128, 3, -9, 4, -11, 6, -12, 10, -12, 16, -11, 20, -11, 22, -12, -128, -128, 11, -11, 15, -10, 19, -10, -128, -128, 3, -9, 4, -10, 6, -11, 9, -11, 15, -9, 18, -9, 20, -10, 22, -12, -128, -128, 14, -9, 13, -8, 11, -7, 11, 4, -128, -128, 12, -7, 12, 2, -128, -128, 13, -8, 13, 1, 12, 3, 11, 4, -128, -128, 18, -9, 18, 6, 2, -10, 4, -12, 6, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 7, -10, 9, -10, 11, -12, -128, -128, 5, -8, 4, -6, 3, -3, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 13, 9, 16, 8, 18, 7, 20, 9, 22, 7, -128, -128, 4, 1, 5, 4, 8, 7, 11, 8, 14, 8, -128, -128, 5, -8, 4, -4, 4, -1, 5, 2, 6, 4, 8, 6, 11, 7, 15, 7, 18, 6, -128, -128, 15, -9, 11, -8, 10, -6, 10, 4, -128, -128, 11, -7, 11, 2, -128, -128, 12, -8, 12, 1, 11, 3, 10, 4, -128, -128, 15, -9, 17, -10, 19, -12, 20, -11, 22, -10, 20, -9, 20, 5, 21, 7, 22, 7, -128, -128, 19, -9, 20, -10, 19, -11, 18, -10, 19, -9, 19, 6, 21, 8, -128, -128, 17, -10, 18, -9, 18, 6, -128, -128, 15, -9, 15, 7, -128, -128, 15, -4, 18, -4, -128, -128, 15, 0, 18, 0, 3, -12, 4, -11, 5, -9, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 6, 3, 7, -128, -128, 5, -10, 6, -8, 6, 6, -128, -128, 3, -2, 6, -2, -128, -128, 7, 7, 10, 7, 12, 8, -128, -128, 3, -12, 5, -11, 6, -10, 7, -8, 7, 6, 11, 6, 14, 7, -128, -128, 3, 7, 6, 7, 9, 8, 11, 9, 14, 7, 17, 6, 19, 6, -128, -128, 11, -8, 14, -9, 16, -10, 18, -12, 19, -11, 21, -10, 19, -9, 19, 6, -128, -128, 18, -9, 19, -10, 18, -11, 17, -10, 18, -9, 18, 5, -128, -128, 16, -10, 17, -9, 17, 6, -128, -128, 11, -8, 11, 6, -128, -128, 11, -5, 13, -4, 15, -4, 17, -5, -128, -128, 11, 1, 13, 0, 15, 0, 17, 1, 3, -12, 4, -11, 5, -9, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 6, 3, 7, -128, -128, 5, -10, 6, -8, 6, 6, -128, -128, 3, -2, 6, -2, -128, -128, 7, 7, 9, 7, 11, 8, -128, -128, 3, -12, 5, -11, 6, -10, 7, -8, 7, 6, 10, 6, 12, 7, -128, -128, 3, 7, 6, 7, 9, 8, 10, 9, 12, 7, 15, 6, 17, 7, 18, 9, 20, 7, 23, 6, -128, -128, 10, -10, 13, -12, 15, -10, 15, 6, 18, 6, 20, 7, -128, -128, 13, -11, 14, -10, 14, 6, -128, -128, 10, -10, 12, -10, 13, -9, 13, 6, 12, 7, -128, -128, 18, 7, 19, 8, -128, -128, 18, -10, 21, -12, 23, -10, 23, 6, -128, -128, 21, -11, 22, -10, 22, 6, -128, -128, 18, -10, 20, -10, 21, -9, 21, 6, 20, 7, -128, -128, 10, -10, 10, 6, -128, -128, 18, -10, 18, 6, -128, -128, 10, -4, 13, -4, -128, -128, 10, 0, 13, 0, -128, -128, 18, -4, 21, -4, -128, -128, 18, 0, 21, 0, 1, -9, 3, -11, 5, -12, 7, -12, 8, -11, 16, 7, 17, 8, 19, 8, -128, -128, 6, -11, 7, -10, 15, 7, 16, 8, -128, -128, 3, -11, 5, -11, 6, -10, 14, 8, 15, 9, 17, 9, 19, 8, 21, 6, -128, -128, 16, -12, 18, -11, 20, -11, 21, -12, -128, -128, 16, -11, 17, -10, 19, -10, -128, -128, 15, -10, 16, -9, 18, -9, 20, -10, 21, -12, -128, -128, 1, 9, 2, 7, 4, 6, 6, 6, 7, 7, -128, -128, 3, 7, 5, 7, 6, 8, -128, -128, 1, 9, 2, 8, 4, 8, 6, 9, -128, -128, 16, -12, 12, -3, -128, -128, 10, 0, 6, 9, -128, -128, 5, -2, 9, -2, -128, -128, 12, -2, 17, -2, 3, -12, 4, -11, 5, -9, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 6, 3, 7, -128, -128, 5, -10, 6, -8, 6, 6, -128, -128, 3, -2, 6, -2, -128, -128, 7, 7, 10, 7, 12, 8, -128, -128, 3, -12, 5, -11, 6, -10, 7, -8, 7, 6, 11, 6, 14, 7, -128, -128, 3, 7, 6, 7, 9, 8, 11, 9, 14, 7, 17, 6, -128, -128, 11, -8, 14, -9, 16, -10, 18, -12, 19, -11, 21, -10, 19, -9, 19, 12, 18, 14, 16, 16, 14, 15, 10, 14, 5, 14, -128, -128, 18, -9, 19, -10, 18, -11, 17, -10, 18, -9, 18, 7, -128, -128, 16, -10, 17, -9, 17, 6, 19, 9, -128, -128, 17, 15, 15, 14, 12, 14, -128, -128, 18, 14, 15, 13, 9, 13, 5, 14, -128, -128, 11, -8, 11, 6, -128, -128, 11, -5, 13, -4, 15, -4, 17, -5, -128, -128, 11, 1, 13, 0, 15, 0, 17, 1, 16, -11, 15, -9, 10, -3, 7, 1, 5, 5, 2, 9, -128, -128, 14, -7, 6, 4, -128, -128, 18, -12, 15, -8, 13, -4, 10, 0, 5, 6, 4, 8, -128, -128, 2, -10, 4, -12, 7, -11, 13, -11, 18, -12, -128, -128, 3, -11, 7, -10, 11, -10, 15, -11, -128, -128, 2, -10, 6, -9, 10, -9, 14, -10, 16, -11, -128, -128, 4, 8, 6, 7, 10, 6, 14, 6, 18, 7, -128, -128, 5, 8, 9, 7, 13, 7, 17, 8, -128, -128, 2, 9, 7, 8, 13, 8, 16, 9, 18, 7, -128, -128, 5, -2, 9, -2, -128, -128, 12, -2, 16, -2, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 6, -6, 8, -9, 10, -6, -128, -128, 3, -3, 8, -8, 13, -3, -128, -128, 8, -8, 8, 9, 0, 11, 16, 11, 8, -12, 6, -11, 5, -9, 5, -7, 6, -5, 8, -7, 6, -9, 6, -11, -128, -128, 6, -8, 6, -6, 7, -7, 6, -8, 6, 0, 4, 2, 3, 4, 3, 6, 4, 8, 6, 9, 8, 7, 11, 6, -128, -128, 3, 4, 4, 6, 5, 7, 7, 8, -128, -128, 4, 2, 4, 4, 5, 6, 7, 7, 8, 7, -128, -128, 4, -2, 6, -2, 9, -3, 11, -4, 12, -5, 14, -3, 13, -2, 13, 6, 14, 7, 15, 7, -128, -128, 5, -4, 4, -3, 7, -3, -128, -128, 10, -3, 13, -3, 12, -4, 12, 7, 13, 8, -128, -128, 3, -3, 5, -5, 6, -4, 8, -3, 11, -2, 11, 7, 13, 9, 15, 7, -128, -128, 3, -3, 8, 2, 3, -10, 4, -8, 4, 6, 2, 7, -128, -128, 5, -8, 4, -10, 5, -11, 5, 6, 8, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 9, 8, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 12, 7, 14, 7, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 7, -128, -128, 11, -4, 13, -3, 13, 6, -128, -128, 9, -3, 10, -3, 12, -2, 12, 7, 4, -3, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -3, 5, 7, 7, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 4, -3, 8, -4, 10, -5, 11, -4, 13, -3, 14, -3, -128, -128, 9, -4, 10, -3, 12, -3, -128, -128, 6, -3, 8, -4, 10, -2, 12, -2, 14, -3, 9, -5, 7, -4, 4, -3, 4, 6, 2, 7, -128, -128, 5, -3, 5, 6, 8, 8, -128, -128, 9, -5, 6, -3, 6, 6, 8, 7, 9, 8, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 12, 7, 14, 7, -128, -128, 4, -10, 7, -12, 8, -9, 14, -3, 14, 7, -128, -128, 7, -9, 5, -10, 6, -11, 7, -9, 13, -3, 13, 6, -128, -128, 4, -10, 12, -2, 12, 7, 4, -3, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -3, 5, 7, 7, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 4, -3, 8, -4, 10, -5, 13, -1, 11, 0, 6, 3, -128, -128, 9, -4, 12, -1, -128, -128, 6, -3, 8, -4, 11, 0, 4, -10, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -10, 5, 7, 7, 8, -128, -128, 6, -10, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 4, -10, 7, -11, 9, -12, 10, -11, 12, -10, 13, -10, -128, -128, 8, -11, 9, -10, 11, -10, -128, -128, 6, -10, 7, -11, 9, -9, 11, -9, 13, -10, -128, -128, 1, -5, 4, -5, -128, -128, 6, -5, 10, -5, 4, -3, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, 7, 8, 9, 7, 12, 6, -128, -128, 5, -2, 5, 7, 7, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 7, -128, -128, 4, -3, 6, -3, 9, -4, 11, -5, 12, -4, 14, -3, 16, -3, 14, -2, 14, 10, 13, 13, 11, 15, 9, 16, 8, 15, 6, 14, 4, 14, -128, -128, 10, -4, 13, -2, 13, 10, -128, -128, 10, 15, 8, 14, 7, 14, -128, -128, 9, -4, 10, -3, 12, -2, 12, 8, 13, 11, 13, 13, -128, -128, 11, 15, 10, 14, 8, 13, 6, 13, 4, 14, 3, -10, 4, -8, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -8, 4, -10, 5, -11, 5, 7, 7, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 6, 9, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 7, 12, 9, 11, 11, -128, -128, 11, -4, 13, -3, 13, 7, 12, 9, -128, -128, 9, -3, 10, -3, 12, -2, 12, 7, 11, 11, 11, 14, 12, 16, 13, 16, 11, 14, 5, -12, 3, -10, 5, -9, 7, -10, 5, -12, -128, -128, 5, -11, 4, -10, 6, -10, 5, -11, -128, -128, 5, -5, 4, -4, 2, -3, 4, -2, 4, 7, 6, 9, 8, 7, -128, -128, 5, -2, 6, -3, 5, -4, 4, -3, 5, -2, 5, 7, 6, 8, -128, -128, 5, -5, 6, -4, 8, -3, 6, -2, 6, 6, 7, 7, 8, 7, 5, -12, 3, -10, 5, -9, 7, -10, 5, -12, -128, -128, 5, -11, 4, -10, 6, -10, 5, -11, -128, -128, 5, -5, 4, -4, 2, -3, 4, -2, 4, 7, 6, 9, 7, 11, -128, -128, 5, -2, 6, -3, 5, -4, 4, -3, 5, -2, 5, 7, 6, 9, -128, -128, 5, -5, 6, -4, 8, -3, 6, -2, 6, 7, 7, 11, 7, 14, 5, 16, 3, 16, 3, 15, 5, 16, 3, -10, 4, -8, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -8, 4, -10, 5, -11, 5, 7, 7, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 6, 9, -128, -128, 6, -2, 9, -4, 11, -5, 13, -2, 10, 0, 6, 3, -128, -128, 10, -4, 12, -2, -128, -128, 9, -4, 11, -1, -128, -128, 10, 0, 11, 1, 13, 6, 14, 7, 15, 7, -128, -128, 10, 1, 11, 2, 12, 7, 13, 8, -128, -128, 9, 1, 10, 2, 11, 7, 13, 9, 15, 7, 3, -10, 4, -8, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -8, 4, -10, 5, -11, 5, 7, 7, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 4, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 6, 9, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 14, -3, 14, 6, 16, 7, 14, 9, -128, -128, 11, -4, 13, -3, 13, 7, 15, 8, -128, -128, 9, -3, 10, -3, 12, -2, 12, 6, 11, 7, 13, 8, 14, 9, -128, -128, 14, -2, 17, -3, 19, -4, 20, -5, 21, -4, 23, -3, 24, -3, 22, -2, 22, 6, 23, 7, 24, 7, -128, -128, 19, -4, 21, -3, 21, 7, 22, 8, -128, -128, 17, -3, 18, -3, 20, -2, 20, 7, 22, 9, 24, 7, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 4, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 6, 9, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 6, 15, 7, 16, 7, -128, -128, 11, -4, 13, -3, 13, 7, 14, 8, -128, -128, 9, -3, 10, -3, 12, -2, 12, 7, 14, 9, 16, 7, 4, -3, 4, 6, 2, 7, -128, -128, 5, -2, 5, 6, 8, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 8, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 12, 7, 14, 7, -128, -128, 4, -3, 6, -3, 9, -4, 11, -5, 12, -4, 14, -3, 16, -3, 14, -2, 14, 7, -128, -128, 10, -4, 13, -2, 13, 6, -128, -128, 9, -4, 10, -3, 12, -2, 12, 7, 3, -5, 4, -3, 4, 6, 2, 7, 4, 7, 4, 16, -128, -128, 4, -4, 5, -3, 5, 15, 6, 14, 5, 12, -128, -128, 5, 7, 6, 7, 8, 8, -128, -128, 3, -5, 5, -4, 6, -3, 6, 6, 8, 7, 9, 8, -128, -128, 6, 8, 7, 9, 9, 8, 12, 7, 14, 7, -128, -128, 6, 8, 6, 12, 7, 14, 4, 16, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 7, -128, -128, 11, -4, 13, -3, 13, 6, -128, -128, 9, -3, 10, -3, 12, -2, 12, 7, 4, -3, 4, 6, 2, 7, -128, -128, 5, -2, 5, 7, 7, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 7, -128, -128, 2, 7, 3, 7, 5, 8, 6, 9, 7, 8, 9, 7, 12, 6, -128, -128, 4, -3, 6, -3, 9, -4, 11, -5, 12, -4, 14, -3, 16, -3, 14, -2, 14, 16, -128, -128, 10, -4, 13, -2, 13, 15, 12, 14, 13, 12, -128, -128, 9, -4, 10, -3, 12, -2, 12, 12, 11, 14, 14, 16, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 3, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 6, -3, 10, -5, 11, -4, 13, -3, 14, -3, -128, -128, 9, -4, 10, -3, 12, -3, -128, -128, 8, -4, 10, -2, 12, -2, 14, -3, 3, -3, 3, 1, 5, 2, 11, 2, 13, 3, 13, 7, -128, -128, 4, -3, 4, 1, -128, -128, 12, 3, 12, 7, -128, -128, 6, -4, 5, -3, 5, 1, 7, 2, -128, -128, 9, 2, 11, 3, 11, 7, 10, 8, -128, -128, 3, -3, 6, -4, 8, -5, 10, -4, 12, -4, 13, -5, -128, -128, 7, -4, 9, -4, -128, -128, 6, -4, 8, -3, 10, -3, 12, -4, -128, -128, 13, 7, 10, 8, 8, 9, 6, 8, 4, 8, 2, 9, -128, -128, 9, 8, 7, 8, -128, -128, 10, 8, 8, 7, 5, 7, 2, 9, -128, -128, 13, -5, 12, -3, 10, 0, 5, 5, 2, 9, 3, -10, 4, -8, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -8, 4, -10, 5, -11, 5, 7, 7, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 1, -5, 4, -5, -128, -128, 6, -5, 9, -5, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, -128, -128, 3, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 9, 7, -128, -128, 2, 7, 3, 7, 5, 8, 6, 9, 7, 8, 9, 7, 12, 6, -128, -128, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 6, 15, 7, 16, 7, -128, -128, 11, -4, 13, -3, 13, 7, 14, 8, -128, -128, 12, -5, 10, -3, 12, -2, 12, 7, 14, 9, 16, 7, 3, -5, 4, -3, 4, 6, 7, 9, 9, 7, 12, 6, 14, 6, -128, -128, 4, -4, 5, -3, 5, 6, 8, 8, -128, -128, 3, -5, 5, -4, 6, -3, 6, 5, 7, 6, 9, 7, -128, -128, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 6, -128, -128, 11, -4, 13, -3, 13, 5, -128, -128, 12, -5, 10, -3, 12, -2, 12, 6, 3, -5, 4, -3, 4, 6, 7, 9, 9, 7, 12, 6, -128, -128, 4, -4, 5, -3, 5, 6, 8, 8, -128, -128, 3, -5, 5, -4, 6, -3, 6, 5, 7, 6, 9, 7, -128, -128, 12, -5, 10, -3, 12, -2, 12, 6, 15, 9, 17, 7, 20, 6, 22, 6, -128, -128, 11, -4, 13, -3, 13, 6, 16, 8, -128, -128, 12, -5, 13, -4, 15, -3, 14, -2, 14, 5, 15, 6, 17, 7, -128, -128, 20, -5, 21, -4, 23, -3, 24, -3, 22, -2, 22, 6, -128, -128, 19, -4, 21, -3, 21, 5, -128, -128, 20, -5, 18, -3, 20, -2, 20, 6, 3, -3, 4, -3, 6, -2, 7, -1, 11, 7, 12, 8, 14, 9, 16, 7, -128, -128, 5, -4, 7, -3, 12, 7, 14, 8, -128, -128, 3, -3, 5, -5, 7, -4, 8, -3, 12, 5, 13, 6, 15, 7, 16, 7, -128, -128, 10, 1, 13, -5, 14, -4, 16, -4, 17, -5, -128, -128, 13, -4, 14, -3, 15, -3, -128, -128, 12, -3, 14, -2, 16, -3, 17, -5, -128, -128, 9, 3, 6, 9, 5, 8, 3, 8, 2, 9, -128, -128, 6, 8, 5, 7, 4, 7, -128, -128, 7, 7, 5, 6, 3, 7, 2, 9, -128, -128, 5, 2, 8, 2, -128, -128, 11, 2, 14, 2, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, -128, -128, 3, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 9, 7, -128, -128, 2, 7, 3, 7, 5, 8, 6, 9, 7, 8, 9, 7, 12, 6, -128, -128, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 10, 13, 13, 11, 15, 9, 16, 8, 15, 6, 14, 4, 14, -128, -128, 11, -4, 13, -3, 13, 10, -128, -128, 10, 15, 8, 14, 7, 14, -128, -128, 12, -5, 10, -3, 12, -2, 12, 8, 13, 11, 13, 13, -128, -128, 11, 15, 10, 14, 8, 13, 6, 13, 4, 14, 15, -5, 3, 9, -128, -128, 3, -3, 5, -2, 8, -2, 11, -3, 15, -5, -128, -128, 4, -4, 6, -3, 10, -3, -128, -128, 3, -3, 5, -5, 7, -4, 11, -4, 15, -5, -128, -128, 3, 9, 7, 7, 10, 6, 13, 6, 15, 7, -128, -128, 8, 7, 12, 7, 14, 8, -128, -128, 3, 9, 7, 8, 11, 8, 13, 9, 15, 7, -128, -128, 5, 2, 13, 2, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 6, -12, 4, -11, 3, -9, 3, -7, 4, -5, 6, -4, 8, -4, 10, -5, 11, -7, 11, -9, 10, -11, 8, -12, 6, -12, -128, -128, 6, -12, 3, -9, 4, -5, 8, -4, 11, -7, 10, -11, 6, -12, -128, -128, 8, -12, 4, -11, 3, -7, 6, -4, 10, -5, 11, -9, 8, -12 }; -const hershey_font_t gothgbt { +const font_t gothgbt { .chars = { {.width=16, .vertex_count=0, .vertices=&gothgbt_vertices[0]}, {.width=12, .vertex_count=29, .vertices=&gothgbt_vertices[0]}, @@ -312,11 +314,11 @@ const hershey_font_t gothgbt { } }; -static const int8_t scriptc_vertices[5530] = { +const int8_t scriptc_vertices[5530] = { 8, -12, 7, -11, 5, 1, -128, -128, 8, -11, 5, 1, -128, -128, 8, -12, 9, -11, 5, 1, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 7, -12, 5, -5, -128, -128, 8, -12, 5, -5, -128, -128, 16, -12, 14, -5, -128, -128, 17, -12, 14, -5, 11, -12, 4, 16, -128, -128, 17, -12, 10, 16, -128, -128, 4, -1, 18, -1, -128, -128, 3, 5, 17, 5, 12, -16, 4, 13, -128, -128, 17, -16, 9, 13, -128, -128, 18, -8, 17, -7, 18, -6, 19, -7, 19, -8, 18, -10, 17, -11, 14, -12, 10, -12, 7, -11, 5, -9, 5, -7, 6, -5, 7, -4, 14, 0, 16, 2, -128, -128, 5, -7, 7, -5, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 23, -4, 22, -3, 23, -2, 24, -3, 24, -4, 23, -5, 22, -5, 20, -4, 18, -2, 13, 6, 11, 8, 9, 9, 6, 9, 3, 8, 2, 6, 2, 4, 3, 2, 4, 1, 6, 0, 11, -2, 13, -3, 15, -5, 16, -7, 16, -9, 15, -11, 13, -12, 11, -11, 10, -9, 10, -6, 11, 0, 12, 3, 14, 6, 16, 8, 18, 9, 20, 9, 21, 7, 21, 6, -128, -128, 6, 9, 4, 8, 3, 6, 3, 4, 4, 2, 5, 1, 11, -2, -128, -128, 10, -6, 11, -1, 12, 2, 14, 5, 16, 7, 18, 8, 20, 8, 21, 7, 8, -10, 7, -11, 8, -12, 9, -11, 9, -10, 8, -8, 6, -6, 15, -16, 11, -13, 8, -10, 6, -7, 4, -3, 3, 2, 3, 6, 4, 11, 5, 14, 6, 16, -128, -128, 11, -13, 8, -9, 6, -5, 5, -2, 4, 3, 4, 8, 5, 13, 6, 16, 9, -16, 10, -14, 11, -11, 12, -6, 12, -2, 11, 3, 9, 7, 7, 10, 4, 13, 0, 16, -128, -128, 9, -16, 10, -13, 11, -8, 11, -3, 10, 2, 9, 5, 7, 9, 4, 13, 10, -12, 10, 0, -128, -128, 5, -9, 15, -3, -128, -128, 15, -9, 5, -3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 4, 0, 22, 0, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 24, -16, -2, 16, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 16, -11, 14, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 9, 9, 11, 8, 13, 6, 15, 3, 16, 0, 17, -4, 17, -7, 16, -10, 14, -12, 12, -8, 7, 9, -128, -128, 14, -12, 8, 9, -128, -128, 14, -12, 11, -9, 8, -7, 6, -6, -128, -128, 13, -9, 9, -7, 6, -6, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 15, -3, 12, -1, 8, 1, 5, 3, 3, 5, 1, 9, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, 8, 1, -128, -128, 2, 7, 3, 6, 5, 6, 10, 8, 13, 8, 15, 7, 16, 5, -128, -128, 5, 6, 10, 9, 13, 9, 15, 8, 16, 5, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 14, -3, 11, -2, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, -128, -128, 9, -2, 11, -2, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -2, 13, -1, 14, 0, 15, 2, 15, 5, 14, 7, 13, 8, 11, 9, 16, -11, 10, 9, -128, -128, 17, -12, 11, 9, -128, -128, 17, -12, 2, 3, 18, 3, 9, -12, 4, -2, -128, -128, 9, -12, 19, -12, -128, -128, 9, -11, 14, -11, 19, -12, -128, -128, 4, -2, 5, -3, 8, -4, 11, -4, 14, -3, 15, -2, 16, 0, 16, 3, 15, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -4, 13, -3, 14, -2, 15, 0, 15, 3, 14, 6, 12, 8, 10, 9, 17, -9, 16, -8, 17, -7, 18, -8, 18, -9, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 5, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 16, 4, 16, 1, 15, -1, 14, -2, 12, -3, 9, -3, 7, -2, 5, 0, 4, 2, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 6, 5, 8, -128, -128, 10, 9, 12, 8, 14, 6, 15, 4, 15, 0, 14, -2, 6, -12, 4, -6, -128, -128, 19, -12, 18, -9, 16, -6, 11, 0, 9, 3, 8, 5, 7, 9, -128, -128, 16, -6, 10, 0, 8, 3, 7, 5, 6, 9, -128, -128, 5, -9, 8, -12, 10, -12, 15, -9, -128, -128, 6, -10, 8, -11, 10, -11, 15, -9, 17, -9, 18, -10, 19, -12, 11, -12, 8, -11, 7, -10, 6, -8, 6, -5, 7, -3, 9, -2, 12, -2, 16, -3, 17, -4, 18, -6, 18, -9, 17, -11, 14, -12, 11, -12, -128, -128, 11, -12, 9, -11, 8, -10, 7, -8, 7, -5, 8, -3, 9, -2, -128, -128, 12, -2, 15, -3, 16, -4, 17, -6, 17, -9, 16, -11, 14, -12, -128, -128, 9, -2, 5, -1, 3, 1, 2, 3, 2, 6, 3, 8, 6, 9, 10, 9, 14, 8, 15, 7, 16, 5, 16, 2, 15, 0, 14, -1, 12, -2, -128, -128, 9, -2, 6, -1, 4, 1, 3, 3, 3, 6, 4, 8, 6, 9, -128, -128, 10, 9, 13, 8, 14, 7, 15, 5, 15, 1, 14, -1, 17, -5, 16, -3, 14, -1, 12, 0, 9, 0, 7, -1, 6, -2, 5, -4, 5, -7, 6, -9, 8, -11, 11, -12, 14, -12, 16, -11, 17, -10, 18, -8, 18, -4, 17, 0, 16, 3, 14, 6, 12, 8, 9, 9, 6, 9, 4, 8, 3, 6, 3, 5, 4, 4, 5, 5, 4, 6, -128, -128, 7, -1, 6, -3, 6, -7, 7, -9, 9, -11, 11, -12, -128, -128, 16, -11, 17, -9, 17, -4, 16, 0, 15, 3, 13, 6, 11, 8, 9, 9, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 15, -12, 18, -11, 19, -9, 19, -7, 18, -5, 17, -4, 11, -2, 9, -1, 9, 1, 10, 2, 12, 2, -128, -128, 15, -12, 17, -11, 18, -9, 18, -7, 17, -5, 16, -4, 14, -3, -128, -128, 8, 7, 7, 8, 8, 9, 9, 8, 8, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 19, -12, 17, -10, 15, -7, 12, -2, 10, 1, 7, 5, 4, 8, 2, 9, 0, 9, -1, 8, -1, 6, 0, 5, 1, 6, 0, 7, -128, -128, 19, -12, 18, -8, 16, 2, 15, 9, -128, -128, 19, -12, 16, 9, -128, -128, 15, 9, 15, 7, 14, 4, 13, 2, 11, 0, 9, -1, 7, -1, 6, 0, 6, 2, 7, 5, 10, 8, 13, 9, 17, 9, 19, 8, 15, -11, 14, -10, 13, -8, 11, -3, 9, 3, 8, 5, 6, 8, 4, 9, -128, -128, 14, -10, 13, -7, 11, 1, 10, 4, 9, 6, 7, 8, 4, 9, 2, 9, 1, 8, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 9, -6, 8, -4, 7, -3, 5, -3, 4, -4, 4, -6, 5, -8, 7, -10, 9, -11, 12, -12, 18, -12, 20, -11, 21, -9, 21, -7, 20, -5, 18, -4, 14, -3, 12, -3, -128, -128, 18, -12, 19, -11, 20, -9, 20, -7, 19, -5, 18, -4, -128, -128, 14, -3, 17, -2, 18, -1, 19, 1, 19, 4, 18, 7, 17, 8, 15, 9, 13, 9, 12, 8, 12, 6, 13, 3, -128, -128, 14, -3, 16, -2, 17, -1, 18, 1, 18, 4, 17, 7, 15, 9, 3, -10, 2, -8, 2, -6, 3, -4, 6, -3, 9, -3, 13, -4, 15, -5, 17, -7, 18, -9, 18, -11, 17, -12, 15, -12, 12, -11, 9, -8, 7, -5, 5, -1, 4, 3, 4, 6, 5, 8, 8, 9, 10, 9, 13, 8, 15, 6, 16, 4, 16, 2, 15, 0, 13, 0, 11, 1, 10, 3, -128, -128, 15, -12, 13, -11, 10, -8, 8, -5, 6, -1, 5, 3, 5, 6, 6, 8, 8, 9, 15, -11, 14, -10, 13, -8, 11, -3, 9, 3, 8, 5, 6, 8, 4, 9, -128, -128, 14, -10, 13, -7, 11, 1, 10, 4, 9, 6, 7, 8, 4, 9, 2, 9, 1, 8, 1, 6, 2, 5, 4, 5, 6, 6, 8, 8, 10, 9, 13, 9, 15, 8, 17, 6, 19, 2, 20, -3, 20, -6, 19, -9, 17, -11, 15, -12, 10, -12, 7, -11, 5, -9, 4, -7, 4, -5, 5, -4, 7, -4, 8, -5, 9, -7, 14, -9, 13, -8, 13, -6, 14, -5, 16, -5, 17, -7, 17, -9, 16, -11, 14, -12, 11, -12, 9, -11, 8, -10, 7, -8, 7, -6, 8, -4, 10, -3, -128, -128, 11, -12, 9, -10, 8, -8, 8, -5, 10, -3, -128, -128, 10, -3, 8, -3, 5, -2, 3, 0, 2, 2, 2, 5, 3, 7, 4, 8, 6, 9, 9, 9, 12, 8, 14, 6, 15, 4, 15, 2, 14, 0, 12, 0, 10, 1, 9, 3, -128, -128, 8, -3, 6, -2, 4, 0, 3, 2, 3, 6, 4, 8, 16, -10, 15, -8, 13, -3, 11, 3, 10, 5, 8, 8, 6, 9, -128, -128, 10, -6, 9, -4, 7, -3, 5, -3, 4, -5, 4, -7, 5, -9, 7, -11, 10, -12, 20, -12, 17, -11, 16, -10, 15, -7, 13, 1, 12, 4, 11, 6, 9, 8, 6, 9, 4, 9, 2, 8, 1, 7, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 12, -12, 16, -11, 17, -11, -128, -128, 8, 1, 9, 0, 11, -1, 15, -1, 17, -2, 19, -5, 17, 2, 3, -9, 2, -7, 2, -5, 3, -3, 5, -2, 8, -2, 11, -3, 13, -4, 16, -7, 17, -10, 17, -11, 16, -12, 15, -12, 13, -11, 11, -9, 10, -7, 9, -4, 9, -1, 10, 1, 12, 2, 14, 2, 16, 1, 18, -1, 19, -3, -128, -128, 16, -12, 14, -11, 12, -9, 11, -7, 10, -4, 10, 0, 12, 2, -128, -128, 19, -3, 18, 1, 16, 5, 14, 7, 12, 8, 8, 9, 5, 9, 3, 8, 2, 6, 2, 5, 3, 4, 4, 5, 3, 6, -128, -128, 18, 1, 16, 4, 14, 6, 11, 8, 8, 9, 6, -6, 5, -7, 5, -9, 6, -11, 9, -12, 12, -12, 9, -1, 7, 5, 6, 7, 5, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 2, 6, 1, 7, -128, -128, 12, -12, 9, -3, 8, 0, 6, 5, 5, 7, 3, 9, -128, -128, 4, 2, 5, 1, 7, 0, 16, -3, 18, -4, 21, -6, 23, -8, 24, -10, 24, -11, 23, -12, 22, -12, 20, -11, 18, -8, 17, -6, 15, 0, 14, 4, 14, 7, 16, 9, 17, 9, 19, 8, 21, 6, -128, -128, 22, -12, 20, -10, 18, -6, 16, 0, 15, 4, 15, 7, 16, 9, 14, -10, 12, -7, 10, -2, 8, 3, 7, 5, 5, 8, 3, 9, -128, -128, 16, -6, 14, -4, 11, -3, 8, -3, 6, -4, 5, -6, 5, -8, 6, -10, 8, -11, 12, -12, 16, -12, 14, -10, 13, -8, 11, -2, 9, 4, 8, 6, 6, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 2, 6, 1, 7, 16, -12, 14, -10, 12, -7, 10, -2, 7, 7, 5, 11, -128, -128, 16, -5, 14, -3, 11, -2, 8, -2, 6, -3, 5, -5, 5, -7, 6, -9, 8, -11, 12, -12, 16, -12, 14, -9, 13, -7, 10, 2, 8, 6, 7, 8, 5, 11, 4, 12, 2, 13, 1, 12, 1, 10, 2, 8, 4, 6, 6, 5, 9, 4, 13, 3, 6, -6, 5, -7, 5, -9, 7, -11, 10, -12, 12, -12, 9, -1, 7, 5, 6, 7, 5, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 2, 6, 1, 7, -128, -128, 12, -12, 9, -3, 8, 0, 6, 5, 5, 7, 3, 9, -128, -128, 20, -11, 17, -7, 15, -5, 13, -4, 10, -3, -128, -128, 23, -11, 22, -10, 23, -9, 24, -10, 24, -11, 23, -12, 22, -12, 20, -11, 17, -6, 16, -5, 14, -4, 10, -3, -128, -128, 10, -3, 13, -2, 14, 0, 15, 7, 16, 9, -128, -128, 10, -3, 12, -2, 13, 0, 14, 7, 16, 9, 17, 9, 19, 8, 21, 6, 4, -9, 3, -7, 3, -5, 4, -3, 6, -2, 9, -2, 12, -3, 14, -4, 17, -7, 18, -10, 18, -11, 17, -12, 16, -12, 14, -11, 13, -10, 11, -7, 7, 3, 6, 5, 4, 8, 2, 9, -128, -128, 13, -10, 11, -6, 9, 1, 8, 4, 7, 6, 5, 8, 2, 9, 0, 9, -1, 8, -1, 6, 0, 5, 2, 5, 4, 6, 7, 8, 9, 9, 12, 9, 14, 8, 16, 6, 14, -12, 10, -3, 7, 3, 5, 6, 3, 8, 1, 9, -1, 9, -2, 8, -2, 6, -1, 5, 0, 6, -1, 7, -128, -128, 14, -12, 12, -5, 11, -1, 10, 4, 10, 8, 12, 9, -128, -128, 14, -12, 13, -8, 12, -3, 11, 4, 11, 8, 12, 9, -128, -128, 23, -12, 19, -3, 14, 6, 12, 9, -128, -128, 23, -12, 21, -5, 20, -1, 19, 4, 19, 8, 21, 9, 22, 9, 24, 8, 26, 6, -128, -128, 23, -12, 22, -8, 21, -3, 20, 4, 20, 8, 21, 9, 11, -12, 10, -8, 8, -2, 6, 3, 5, 5, 3, 8, 1, 9, -1, 9, -2, 8, -2, 6, -1, 5, 0, 6, -1, 7, -128, -128, 11, -12, 11, -7, 12, 4, 13, 9, -128, -128, 11, -12, 12, -7, 13, 4, 13, 9, -128, -128, 25, -11, 24, -10, 25, -9, 26, -10, 26, -11, 25, -12, 23, -12, 21, -11, 19, -8, 18, -6, 16, -1, 14, 5, 13, 9, 11, -12, 9, -11, 7, -9, 5, -6, 4, -4, 3, 0, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 1, 18, -3, 18, -7, 17, -10, 16, -11, 15, -11, 13, -10, 11, -8, 9, -4, 8, 1, 8, 4, -128, -128, 9, -11, 7, -8, 5, -4, 4, 0, 4, 4, 5, 7, 7, 9, 15, -11, 14, -10, 13, -8, 11, -3, 9, 3, 8, 5, 6, 8, 4, 9, -128, -128, 14, -10, 13, -7, 11, 1, 10, 4, 9, 6, 7, 8, 4, 9, 2, 9, 1, 8, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 9, -6, 8, -4, 7, -3, 5, -3, 4, -4, 4, -6, 5, -8, 7, -10, 9, -11, 12, -12, 16, -12, 19, -11, 20, -10, 21, -8, 21, -5, 20, -3, 19, -2, 16, -1, 14, -1, 12, -2, -128, -128, 16, -12, 18, -11, 19, -10, 20, -8, 20, -5, 19, -3, 18, -2, 16, -1, 13, -8, 13, -6, 12, -4, 11, -3, 9, -2, 7, -2, 6, -4, 6, -6, 7, -9, 9, -11, 12, -12, 15, -12, 17, -11, 18, -9, 18, -5, 17, -2, 15, 1, 11, 5, 8, 7, 6, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 3, 5, 5, 6, 8, 8, 11, 9, 14, 9, 16, 8, 18, 6, -128, -128, 15, -12, 16, -11, 17, -9, 17, -5, 16, -2, 14, 1, 11, 4, 7, 7, 3, 9, 15, -11, 14, -10, 13, -8, 11, -3, 9, 3, 8, 5, 6, 8, 4, 9, -128, -128, 14, -10, 13, -7, 11, 1, 10, 4, 9, 6, 7, 8, 4, 9, 2, 9, 1, 8, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 9, -6, 8, -4, 7, -3, 5, -3, 4, -4, 4, -6, 5, -8, 7, -10, 9, -11, 12, -12, 17, -12, 20, -11, 21, -9, 21, -7, 20, -5, 19, -4, 16, -3, 12, -3, -128, -128, 17, -12, 19, -11, 20, -9, 20, -7, 19, -5, 18, -4, 16, -3, -128, -128, 12, -3, 15, -2, 16, 0, 17, 7, 18, 9, -128, -128, 12, -3, 14, -2, 15, 0, 16, 7, 18, 9, 19, 9, 21, 8, 23, 6, 6, -9, 5, -7, 5, -5, 6, -3, 8, -2, 11, -2, 14, -3, 16, -4, 19, -7, 20, -10, 20, -11, 19, -12, 18, -12, 16, -11, 15, -10, 14, -8, 13, -5, 11, 2, 10, 5, 8, 8, 6, 9, -128, -128, 14, -8, 13, -4, 12, 3, 11, 6, 9, 8, 6, 9, 3, 9, 1, 8, 0, 6, 0, 5, 1, 4, 2, 5, 1, 6, 16, -10, 15, -8, 13, -3, 11, 3, 10, 5, 8, 8, 6, 9, -128, -128, 10, -6, 9, -4, 7, -3, 5, -3, 4, -5, 4, -7, 5, -9, 7, -11, 10, -12, 19, -12, 17, -11, 16, -10, 15, -7, 13, 1, 12, 4, 11, 6, 9, 8, 6, 9, 4, 9, 2, 8, 1, 7, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 12, -12, 16, -11, 17, -11, 1, -8, 3, -11, 5, -12, 6, -12, 8, -10, 8, -7, 7, -4, 4, 4, 4, 7, 5, 9, -128, -128, 6, -12, 7, -10, 7, -7, 4, 1, 3, 4, 3, 7, 5, 9, 7, 9, 9, 8, 12, 5, 14, 2, 15, 0, -128, -128, 19, -12, 15, 0, 14, 4, 14, 7, 16, 9, 17, 9, 19, 8, 21, 6, -128, -128, 20, -12, 16, 0, 15, 4, 15, 7, 16, 9, 1, -8, 3, -11, 5, -12, 6, -12, 8, -10, 8, -7, 7, -3, 5, 4, 5, 7, 6, 9, -128, -128, 6, -12, 7, -10, 7, -7, 5, 0, 4, 4, 4, 7, 6, 9, 7, 9, 10, 8, 13, 5, 15, 2, 17, -2, 18, -5, 19, -9, 19, -11, 18, -12, 17, -12, 16, -11, 15, -9, 15, -6, 16, -4, 18, -2, 20, -1, 22, -1, 3, -6, 2, -6, 1, -7, 1, -9, 2, -11, 4, -12, 8, -12, 7, -10, 6, -6, 5, 3, 4, 9, -128, -128, 6, -6, 6, 3, 5, 9, -128, -128, 16, -12, 14, -10, 12, -6, 9, 3, 7, 7, 5, 9, -128, -128, 16, -12, 15, -10, 14, -6, 13, 3, 12, 9, -128, -128, 14, -6, 14, 3, 13, 9, -128, -128, 26, -12, 24, -11, 22, -9, 20, -6, 17, 3, 15, 7, 13, 9, 8, -7, 7, -6, 5, -6, 4, -7, 4, -9, 5, -11, 7, -12, 9, -12, 11, -11, 12, -9, 12, -6, 11, -2, 9, 3, 7, 6, 5, 8, 2, 9, 0, 9, -1, 8, -1, 6, 0, 5, 1, 6, 0, 7, -128, -128, 9, -12, 10, -11, 11, -9, 11, -6, 10, -2, 8, 3, 6, 6, 4, 8, 2, 9, -128, -128, 21, -11, 20, -10, 21, -9, 22, -10, 22, -11, 21, -12, 19, -12, 17, -11, 15, -9, 13, -6, 11, -2, 10, 3, 10, 6, 11, 8, 12, 9, 13, 9, 15, 8, 17, 6, 3, -8, 5, -11, 7, -12, 8, -12, 10, -11, 10, -9, 8, -3, 8, 0, 9, 2, -128, -128, 8, -12, 9, -11, 9, -9, 7, -3, 7, 0, 9, 2, 11, 2, 14, 1, 16, -1, 18, -4, 19, -6, -128, -128, 21, -12, 19, -6, 16, 2, 14, 6, -128, -128, 22, -12, 20, -6, 18, -1, 16, 3, 14, 6, 12, 8, 9, 9, 5, 9, 3, 8, 2, 6, 2, 5, 3, 4, 4, 5, 3, 6, 19, -10, 18, -8, 16, -3, 15, 0, 14, 2, 12, 5, 10, 7, 8, 8, 5, 9, -128, -128, 12, -6, 11, -4, 9, -3, 7, -3, 6, -5, 6, -7, 7, -9, 9, -11, 12, -12, 22, -12, 20, -11, 19, -10, 18, -7, 17, -3, 15, 3, 13, 6, 10, 8, 5, 9, 1, 9, 0, 8, 0, 6, 1, 5, 3, 5, 5, 6, 8, 8, 10, 9, 13, 9, 16, 8, 18, 6, -128, -128, 15, -12, 19, -11, 20, -11, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 6, -6, 8, -9, 10, -6, -128, -128, 3, -3, 8, -8, 13, -3, -128, -128, 8, -8, 8, 9, 0, 11, 16, 11, 9, -12, 7, -10, 6, -8, 6, -7, 7, -6, 8, -7, 7, -8, 10, 3, 9, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, 9, 6, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, -128, -128, 11, 0, 9, 6, 9, 8, 11, 9, 13, 8, 14, 7, 16, 4, -128, -128, 12, 0, 10, 6, 10, 8, 11, 9, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 1, 6, 1, 8, 3, 9, 4, 9, 6, 8, 8, 6, 9, 3, 9, 0, 10, 4, 11, 5, 12, 5, 14, 4, -128, -128, 8, -12, 2, 6, 2, 8, 3, 9, 8, 1, 7, 2, 8, 2, 8, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 7, 9, 10, 7, 12, 4, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, 10, 3, 9, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, 9, 6, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, -128, -128, 15, -12, 9, 6, 9, 8, 11, 9, 13, 8, 14, 7, 16, 4, -128, -128, 16, -12, 10, 6, 10, 8, 11, 9, 3, 7, 5, 6, 6, 5, 7, 3, 7, 1, 6, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 7, 9, 10, 7, 12, 4, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, 3, 0, 6, -3, 8, -6, 9, -9, 9, -11, 8, -12, 6, -11, 5, -9, -4, 18, -4, 20, -3, 21, -1, 20, 0, 17, 1, 8, 2, 9, 4, 9, 6, 8, 7, 7, 9, 4, -128, -128, 5, -9, 4, -4, 3, 0, 0, 9, -2, 14, -4, 18, 10, 3, 9, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, 9, 6, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, -128, -128, 11, 0, 5, 18, -128, -128, 12, 0, 9, 9, 7, 14, 5, 18, 4, 20, 2, 21, 1, 20, 1, 18, 2, 15, 4, 13, 7, 11, 11, 9, 14, 7, 16, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 0, 9, -128, -128, 8, -12, 1, 9, -128, -128, 3, 3, 5, 1, 7, 0, 8, 0, 10, 1, 10, 3, 9, 6, 9, 8, 10, 9, -128, -128, 8, 0, 9, 1, 9, 3, 8, 6, 8, 8, 10, 9, 12, 8, 13, 7, 15, 4, 5, -6, 4, -5, 5, -4, 6, -5, 5, -6, -128, -128, 3, 0, 1, 6, 1, 8, 3, 9, 5, 8, 6, 7, 8, 4, -128, -128, 4, 0, 2, 6, 2, 8, 3, 9, 5, -6, 4, -5, 5, -4, 6, -5, 5, -6, -128, -128, 3, 0, -3, 18, -128, -128, 4, 0, 1, 9, -1, 14, -3, 18, -4, 20, -6, 21, -7, 20, -7, 18, -6, 15, -4, 13, -1, 11, 3, 9, 6, 7, 8, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 0, 9, -128, -128, 8, -12, 1, 9, -128, -128, 9, 0, 9, 1, 10, 1, 9, 0, 8, 0, 6, 2, 3, 3, -128, -128, 3, 3, 6, 4, 7, 8, 8, 9, -128, -128, 3, 3, 5, 4, 6, 8, 8, 9, 9, 9, 12, 7, 14, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 1, 6, 1, 8, 3, 9, 5, 8, 6, 7, 8, 4, -128, -128, 8, -12, 2, 6, 2, 8, 3, 9, 0, 4, 2, 1, 4, 0, 6, 1, 6, 3, 4, 9, -128, -128, 4, 0, 5, 1, 5, 3, 3, 9, -128, -128, 6, 3, 8, 1, 10, 0, 11, 0, 13, 1, 13, 3, 11, 9, -128, -128, 11, 0, 12, 1, 12, 3, 10, 9, -128, -128, 13, 3, 15, 1, 17, 0, 18, 0, 20, 1, 20, 3, 19, 6, 19, 8, 20, 9, -128, -128, 18, 0, 19, 1, 19, 3, 18, 6, 18, 8, 20, 9, 22, 8, 23, 7, 25, 4, 0, 4, 2, 1, 4, 0, 6, 1, 6, 3, 4, 9, -128, -128, 4, 0, 5, 1, 5, 3, 3, 9, -128, -128, 6, 3, 8, 1, 10, 0, 11, 0, 13, 1, 13, 3, 12, 6, 12, 8, 13, 9, -128, -128, 11, 0, 12, 1, 12, 3, 11, 6, 11, 8, 13, 9, 15, 8, 16, 7, 18, 4, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, 9, 7, 10, 5, 10, 3, 9, 1, 7, 0, 6, 1, 6, 3, 7, 5, 9, 6, 11, 6, 13, 5, 14, 4, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, 0, 4, 2, 1, 4, -3, -128, -128, 5, -6, -4, 21, -128, -128, 6, -6, -3, 21, -128, -128, 3, 3, 5, 1, 7, 0, 8, 0, 10, 1, 10, 3, 9, 6, 9, 8, 10, 9, -128, -128, 8, 0, 9, 1, 9, 3, 8, 6, 8, 8, 10, 9, 12, 8, 13, 7, 15, 4, 10, 3, 9, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, -128, -128, 11, 0, 5, 18, 5, 20, 6, 21, 8, 20, 9, 17, 9, 9, 11, 9, 14, 7, 16, 4, -128, -128, 12, 0, 9, 9, 7, 14, 5, 18, 0, 4, 2, 1, 4, 0, 6, 1, 6, 3, 4, 9, -128, -128, 4, 0, 5, 1, 5, 3, 3, 9, -128, -128, 6, 3, 8, 1, 10, 0, 11, 0, 10, 3, -128, -128, 10, 0, 10, 3, 11, 5, 12, 5, 14, 4, 0, 4, 2, 1, 3, -1, 3, 1, 6, 3, 7, 5, 7, 7, 6, 8, 4, 9, -128, -128, 3, 1, 5, 3, 6, 5, 6, 7, 4, 9, -128, -128, 0, 8, 2, 9, 7, 9, 10, 7, 12, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 1, 6, 1, 8, 3, 9, 5, 8, 6, 7, 8, 4, -128, -128, 8, -12, 2, 6, 2, 8, 3, 9, -128, -128, 2, -4, 8, -4, 3, 0, 1, 6, 1, 8, 3, 9, 4, 9, 6, 8, 8, 6, 10, 3, -128, -128, 4, 0, 2, 6, 2, 8, 3, 9, -128, -128, 11, 0, 9, 6, 9, 8, 11, 9, 13, 8, 14, 7, 16, 4, -128, -128, 12, 0, 10, 6, 10, 8, 11, 9, 3, 0, 2, 2, 1, 5, 1, 8, 3, 9, 4, 9, 7, 8, 9, 6, 10, 3, 10, 0, -128, -128, 4, 0, 3, 2, 2, 5, 2, 8, 3, 9, -128, -128, 10, 0, 11, 4, 12, 5, 13, 5, 15, 4, 4, 0, 2, 2, 1, 5, 1, 8, 3, 9, 4, 9, 6, 8, 8, 6, -128, -128, 5, 0, 3, 2, 2, 5, 2, 8, 3, 9, -128, -128, 10, 0, 8, 6, 8, 8, 10, 9, 11, 9, 13, 8, 15, 6, 16, 3, 16, 0, -128, -128, 11, 0, 9, 6, 9, 8, 10, 9, -128, -128, 16, 0, 17, 4, 18, 5, 19, 5, 21, 4, 0, 4, 2, 1, 4, 0, 6, 0, 7, 1, 7, 3, 6, 6, 5, 8, 3, 9, 2, 9, 1, 8, 1, 7, 2, 7, 1, 8, -128, -128, 13, 1, 12, 2, 13, 2, 13, 1, 12, 0, 11, 0, 9, 1, 8, 3, 7, 6, 7, 8, 8, 9, 11, 9, 14, 7, 16, 4, -128, -128, 7, 1, 8, 3, -128, -128, 9, 1, 7, 3, -128, -128, 6, 6, 7, 8, -128, -128, 7, 6, 5, 8, 3, 0, 1, 6, 1, 8, 3, 9, 4, 9, 6, 8, 8, 6, 10, 3, -128, -128, 4, 0, 2, 6, 2, 8, 3, 9, -128, -128, 11, 0, 5, 18, -128, -128, 12, 0, 9, 9, 7, 14, 5, 18, 4, 20, 2, 21, 1, 20, 1, 18, 2, 15, 4, 13, 7, 11, 11, 9, 14, 7, 16, 4, 0, 4, 2, 1, 4, 0, 6, 0, 8, 1, 8, 4, 7, 6, 4, 8, 2, 9, -128, -128, 6, 0, 7, 1, 7, 4, 6, 6, 4, 8, -128, -128, 2, 9, 4, 10, 5, 12, 5, 15, 4, 18, 2, 20, 0, 21, -1, 20, -1, 18, 0, 15, 3, 12, 6, 10, 10, 7, 13, 4, -128, -128, 2, 9, 3, 10, 4, 12, 4, 15, 3, 18, 2, 20, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 8, -12, 6, -11, 5, -9, 5, -7, 6, -5, 8, -4, 10, -4, 12, -5, 13, -7, 13, -9, 12, -11, 10, -12, 8, -12 }; -const hershey_font_t scriptc { +const font_t scriptc { .chars = { {.width=16, .vertex_count=0, .vertices=&scriptc_vertices[0]}, {.width=11, .vertex_count=16, .vertices=&scriptc_vertices[0]}, @@ -416,11 +418,11 @@ const hershey_font_t scriptc { } }; -static const int8_t scripts_vertices[4472] = { +const int8_t scripts_vertices[4472] = { 8, -12, 7, -11, 5, 1, -128, -128, 8, -11, 5, 1, -128, -128, 8, -12, 9, -11, 5, 1, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 7, -12, 5, -5, -128, -128, 8, -12, 5, -5, -128, -128, 16, -12, 14, -5, -128, -128, 17, -12, 14, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 12, -16, 4, 13, -128, -128, 17, -16, 9, 13, -128, -128, 18, -8, 17, -7, 18, -6, 19, -7, 19, -8, 18, -10, 17, -11, 14, -12, 10, -12, 7, -11, 5, -9, 5, -7, 6, -5, 7, -4, 14, 0, 16, 2, -128, -128, 5, -7, 7, -5, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 23, -4, 22, -3, 23, -2, 24, -3, 24, -4, 23, -5, 22, -5, 20, -4, 18, -2, 13, 6, 11, 8, 9, 9, 6, 9, 3, 8, 2, 6, 2, 4, 3, 2, 4, 1, 6, 0, 11, -2, 13, -3, 15, -5, 16, -7, 16, -9, 15, -11, 13, -12, 11, -11, 10, -9, 10, -6, 11, 0, 12, 3, 14, 6, 16, 8, 18, 9, 20, 9, 21, 7, 21, 6, -128, -128, 6, 9, 4, 8, 3, 6, 3, 4, 4, 2, 5, 1, 11, -2, -128, -128, 10, -6, 11, -1, 12, 2, 14, 5, 16, 7, 18, 8, 20, 8, 21, 7, 8, -10, 7, -11, 8, -12, 9, -11, 9, -10, 8, -8, 6, -6, 15, -16, 11, -13, 8, -10, 6, -7, 4, -3, 3, 2, 3, 6, 4, 11, 5, 14, 6, 16, -128, -128, 11, -13, 8, -9, 6, -5, 5, -2, 4, 3, 4, 8, 5, 13, 6, 16, 9, -16, 10, -14, 11, -11, 12, -6, 12, -2, 11, 3, 9, 7, 7, 10, 4, 13, 0, 16, -128, -128, 9, -16, 10, -13, 11, -8, 11, -3, 10, 2, 9, 5, 7, 9, 4, 13, 10, -12, 10, 0, -128, -128, 5, -9, 15, -3, -128, -128, 15, -9, 5, -3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 4, 0, 22, 0, 5, 7, 4, 8, 5, 9, 6, 8, 5, 7, 24, -16, -2, 16, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 16, -11, 14, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 9, 9, 11, 8, 13, 6, 15, 3, 16, 0, 17, -4, 17, -7, 16, -10, 14, -12, 12, -8, 7, 9, -128, -128, 14, -12, 8, 9, -128, -128, 14, -12, 11, -9, 8, -7, 6, -6, -128, -128, 13, -9, 9, -7, 6, -6, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 15, -3, 12, -1, 8, 1, 5, 3, 3, 5, 1, 9, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, 8, 1, -128, -128, 2, 7, 3, 6, 5, 6, 10, 8, 13, 8, 15, 7, 16, 5, -128, -128, 5, 6, 10, 9, 13, 9, 15, 8, 16, 5, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 14, -3, 11, -2, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, -128, -128, 9, -2, 11, -2, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -2, 13, -1, 14, 0, 15, 2, 15, 5, 14, 7, 13, 8, 11, 9, 16, -11, 10, 9, -128, -128, 17, -12, 11, 9, -128, -128, 17, -12, 2, 3, 18, 3, 9, -12, 4, -2, -128, -128, 9, -12, 19, -12, -128, -128, 9, -11, 14, -11, 19, -12, -128, -128, 4, -2, 5, -3, 8, -4, 11, -4, 14, -3, 15, -2, 16, 0, 16, 3, 15, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -4, 13, -3, 14, -2, 15, 0, 15, 3, 14, 6, 12, 8, 10, 9, 17, -9, 16, -8, 17, -7, 18, -8, 18, -9, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 5, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 16, 4, 16, 1, 15, -1, 14, -2, 12, -3, 9, -3, 7, -2, 5, 0, 4, 2, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 6, 5, 8, -128, -128, 10, 9, 12, 8, 14, 6, 15, 4, 15, 0, 14, -2, 6, -12, 4, -6, -128, -128, 19, -12, 18, -9, 16, -6, 11, 0, 9, 3, 8, 5, 7, 9, -128, -128, 16, -6, 10, 0, 8, 3, 7, 5, 6, 9, -128, -128, 5, -9, 8, -12, 10, -12, 15, -9, -128, -128, 6, -10, 8, -11, 10, -11, 15, -9, 17, -9, 18, -10, 19, -12, 11, -12, 8, -11, 7, -10, 6, -8, 6, -5, 7, -3, 9, -2, 12, -2, 16, -3, 17, -4, 18, -6, 18, -9, 17, -11, 14, -12, 11, -12, -128, -128, 11, -12, 9, -11, 8, -10, 7, -8, 7, -5, 8, -3, 9, -2, -128, -128, 12, -2, 15, -3, 16, -4, 17, -6, 17, -9, 16, -11, 14, -12, -128, -128, 9, -2, 5, -1, 3, 1, 2, 3, 2, 6, 3, 8, 6, 9, 10, 9, 14, 8, 15, 7, 16, 5, 16, 2, 15, 0, 14, -1, 12, -2, -128, -128, 9, -2, 6, -1, 4, 1, 3, 3, 3, 6, 4, 8, 6, 9, -128, -128, 10, 9, 13, 8, 14, 7, 15, 5, 15, 1, 14, -1, 17, -5, 16, -3, 14, -1, 12, 0, 9, 0, 7, -1, 6, -2, 5, -4, 5, -7, 6, -9, 8, -11, 11, -12, 14, -12, 16, -11, 17, -10, 18, -8, 18, -4, 17, 0, 16, 3, 14, 6, 12, 8, 9, 9, 6, 9, 4, 8, 3, 6, 3, 5, 4, 4, 5, 5, 4, 6, -128, -128, 7, -1, 6, -3, 6, -7, 7, -9, 9, -11, 11, -12, -128, -128, 16, -11, 17, -9, 17, -4, 16, 0, 15, 3, 13, 6, 11, 8, 9, 9, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 15, -12, 18, -11, 19, -9, 19, -7, 18, -5, 17, -4, 11, -2, 9, -1, 9, 1, 10, 2, 12, 2, -128, -128, 15, -12, 17, -11, 18, -9, 18, -7, 17, -5, 16, -4, 14, -3, -128, -128, 8, 7, 7, 8, 8, 9, 9, 8, 8, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 0, 9, 2, 8, 5, 5, 8, 1, 12, -6, 15, -12, 15, 9, 14, 6, 12, 3, 10, 1, 7, -1, 5, -1, 4, 0, 4, 2, 5, 4, 7, 6, 10, 8, 13, 9, 18, 9, 13, -10, 14, -9, 14, -6, 13, -2, 12, 1, 11, 3, 9, 6, 7, 8, 5, 9, 4, 9, 3, 8, 3, 5, 4, 0, 5, -3, 6, -5, 8, -8, 10, -10, 12, -11, 15, -12, 18, -12, 20, -11, 21, -9, 21, -7, 20, -5, 19, -4, 17, -3, 14, -2, -128, -128, 13, -2, 14, -2, 17, -1, 18, 0, 19, 2, 19, 5, 18, 7, 17, 8, 15, 9, 12, 9, 10, 8, 9, 6, 12, -6, 12, -5, 13, -4, 15, -4, 17, -5, 18, -7, 18, -9, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -4, 3, 0, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 15, 4, 13, -12, 11, -11, 10, -9, 9, -5, 8, 1, 7, 4, 6, 6, 4, 8, 2, 9, 0, 9, -1, 8, -1, 6, 0, 5, 2, 5, 4, 6, 6, 8, 9, 9, 12, 9, 15, 8, 17, 6, 19, 2, 20, -3, 20, -7, 19, -10, 18, -11, 16, -12, 13, -12, 11, -10, 11, -8, 12, -5, 14, -2, 16, 0, 19, 2, 21, 3, 14, -8, 14, -7, 15, -6, 17, -6, 18, -7, 18, -9, 17, -11, 14, -12, 10, -12, 7, -11, 6, -9, 6, -6, 7, -4, 8, -3, 11, -2, 8, -2, 5, -1, 4, 0, 3, 2, 3, 5, 4, 7, 5, 8, 8, 9, 11, 9, 14, 8, 16, 6, 17, 4, 10, -6, 8, -6, 6, -7, 5, -9, 6, -11, 9, -12, 12, -12, 16, -11, 19, -11, 21, -12, -128, -128, 16, -11, 14, -4, 12, 2, 10, 6, 8, 8, 6, 9, 4, 9, 2, 8, 1, 6, 1, 4, 2, 3, 4, 3, 6, 4, -128, -128, 9, -2, 18, -2, 0, 9, 2, 8, 6, 4, 9, -1, 10, -4, 11, -8, 11, -11, 10, -12, 9, -12, 8, -11, 7, -9, 7, -6, 8, -4, 10, -3, 14, -3, 17, -4, 18, -5, 19, -7, 19, -1, 18, 4, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 2, 4, 2, 2, 7, -5, 5, -6, 4, -8, 4, -9, 5, -11, 7, -12, 8, -12, 10, -11, 11, -9, 11, -7, 10, -3, 8, 3, 6, 7, 4, 9, 2, 9, 1, 8, 1, 6, -128, -128, 7, 0, 16, -3, 18, -4, 21, -6, 23, -8, 24, -10, 24, -11, 23, -12, 22, -12, 20, -10, 18, -6, 16, 0, 15, 5, 15, 8, 16, 9, 17, 9, 19, 8, 20, 7, 22, 4, 14, 4, 12, 2, 10, -1, 9, -3, 8, -6, 8, -9, 9, -11, 10, -12, 12, -12, 13, -11, 14, -9, 14, -6, 13, -1, 11, 4, 10, 6, 8, 8, 6, 9, 4, 9, 2, 8, 1, 6, 1, 4, 2, 3, 4, 3, 6, 4, 10, 12, 8, 9, 6, 4, 5, -2, 5, -8, 6, -11, 8, -12, 10, -12, 11, -11, 12, -8, 12, -5, 11, 0, 8, 9, 6, 15, 5, 18, 4, 20, 2, 21, 1, 20, 1, 18, 2, 15, 4, 12, 6, 10, 9, 8, 13, 6, 7, -5, 5, -6, 4, -8, 4, -9, 5, -11, 7, -12, 8, -12, 10, -11, 11, -9, 11, -7, 10, -3, 8, 3, 6, 7, 4, 9, 2, 9, 1, 8, 1, 6, -128, -128, 24, -9, 24, -11, 23, -12, 22, -12, 20, -11, 18, -9, 16, -6, 14, -4, 12, -3, 10, -3, -128, -128, 12, -3, 13, -1, 13, 6, 14, 8, 15, 9, 16, 9, 18, 8, 19, 7, 21, 4, 4, 0, 6, 0, 10, -1, 13, -3, 15, -5, 16, -7, 16, -10, 15, -12, 13, -12, 12, -11, 11, -9, 10, -4, 9, 1, 8, 4, 7, 6, 5, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 3, 5, 5, 6, 8, 8, 11, 9, 13, 9, 16, 8, 18, 6, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -2, 7, 2, 5, 9, -128, -128, 7, 2, 10, -6, 12, -10, 13, -11, 15, -12, 16, -12, 18, -11, 19, -9, 19, -7, 18, -2, 17, 2, 15, 9, -128, -128, 17, 2, 20, -6, 22, -10, 23, -11, 25, -12, 26, -12, 28, -11, 29, -9, 29, -7, 28, -2, 26, 5, 26, 8, 27, 9, 28, 9, 30, 8, 31, 7, 33, 4, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -2, 7, 2, 5, 9, -128, -128, 7, 2, 10, -6, 12, -10, 13, -11, 15, -12, 17, -12, 19, -11, 20, -9, 20, -7, 19, -2, 17, 5, 17, 8, 18, 9, 19, 9, 21, 8, 22, 7, 24, 4, 12, -12, 9, -11, 7, -9, 5, -6, 4, -4, 3, 0, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 1, 18, -3, 18, -7, 17, -10, 16, -11, 14, -12, 12, -12, 10, -10, 10, -7, 11, -4, 13, -1, 15, 1, 18, 3, 20, 4, 13, -10, 14, -9, 14, -6, 13, -2, 12, 1, 11, 3, 9, 6, 7, 8, 5, 9, 4, 9, 3, 8, 3, 5, 4, 0, 5, -3, 6, -5, 8, -8, 10, -10, 12, -11, 15, -12, 20, -12, 22, -11, 23, -10, 24, -8, 24, -5, 23, -3, 22, -2, 20, -1, 17, -1, 15, -2, 14, -3, 13, -6, 12, -4, 11, -3, 9, -2, 7, -2, 6, -4, 6, -6, 7, -9, 9, -11, 12, -12, 15, -12, 17, -11, 18, -9, 18, -5, 17, -2, 15, 1, 11, 5, 8, 7, 6, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 3, 5, 5, 6, 8, 8, 11, 9, 14, 9, 17, 8, 19, 6, 13, -10, 14, -9, 14, -6, 13, -2, 12, 1, 11, 3, 9, 6, 7, 8, 5, 9, 4, 9, 3, 8, 3, 5, 4, 0, 5, -3, 6, -5, 8, -8, 10, -10, 12, -11, 15, -12, 19, -12, 21, -11, 22, -10, 23, -8, 23, -5, 22, -3, 21, -2, 19, -1, 16, -1, 13, -2, 14, -1, 15, 1, 15, 6, 16, 8, 18, 9, 20, 8, 21, 7, 23, 4, 0, 9, 2, 8, 4, 6, 7, 2, 9, -1, 11, -5, 12, -8, 12, -11, 11, -12, 10, -12, 9, -11, 8, -9, 8, -7, 9, -5, 11, -3, 14, -1, 16, 1, 17, 3, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 2, 4, 2, 2, 10, -6, 8, -6, 6, -7, 5, -9, 6, -11, 9, -12, 12, -12, 16, -11, 19, -11, 21, -12, -128, -128, 16, -11, 14, -4, 12, 2, 10, 6, 8, 8, 6, 9, 4, 9, 2, 8, 1, 6, 1, 4, 2, 3, 4, 3, 6, 4, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -3, 7, 0, 6, 4, 6, 6, 7, 8, 9, 9, 11, 9, 13, 8, 14, 7, 16, 3, 19, -5, 21, -12, -128, -128, 19, -5, 18, -1, 17, 5, 17, 8, 18, 9, 19, 9, 21, 8, 22, 7, 24, 4, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -3, 7, 0, 6, 4, 6, 7, 7, 9, 9, 9, 11, 8, 14, 5, 16, 2, 18, -2, 19, -5, 20, -9, 20, -11, 19, -12, 18, -12, 17, -11, 16, -9, 16, -7, 17, -4, 19, -2, 21, -1, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -6, 8, 9, -128, -128, 18, -12, 8, 9, -128, -128, 18, -12, 16, 9, -128, -128, 30, -12, 28, -11, 25, -8, 22, -4, 19, 2, 16, 9, 8, -6, 6, -6, 5, -7, 5, -9, 6, -11, 8, -12, 10, -12, 12, -11, 13, -9, 13, -6, 11, 3, 11, 6, 12, 8, 14, 9, 16, 9, 18, 8, 19, 6, 19, 4, 18, 3, 16, 3, -128, -128, 23, -9, 23, -11, 22, -12, 20, -12, 18, -11, 16, -9, 14, -6, 10, 3, 8, 6, 6, 8, 4, 9, 2, 9, 1, 8, 1, 6, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -3, 7, 0, 6, 4, 6, 6, 7, 8, 8, 9, 10, 9, 12, 8, 14, 6, 16, 3, 17, 1, 19, -5, -128, -128, 21, -12, 19, -5, 16, 5, 14, 11, 12, 16, 10, 20, 8, 21, 7, 20, 7, 18, 8, 15, 10, 12, 13, 9, 16, 7, 21, 4, 13, -6, 12, -4, 11, -3, 9, -2, 7, -2, 6, -4, 6, -6, 7, -9, 9, -11, 12, -12, 15, -12, 17, -11, 18, -9, 18, -5, 17, -2, 15, 2, 12, 5, 8, 8, 6, 9, 3, 9, 2, 8, 2, 6, 3, 5, 6, 5, 8, 6, 9, 7, 10, 9, 10, 12, 9, 15, 8, 17, 6, 20, 4, 21, 3, 20, 3, 18, 4, 15, 6, 12, 9, 9, 12, 7, 18, 4, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 6, -6, 8, -9, 10, -6, -128, -128, 3, -3, 8, -8, 13, -3, -128, -128, 8, -8, 8, 9, 0, 11, 16, 11, 9, -12, 7, -10, 6, -8, 6, -7, 7, -6, 8, -7, 7, -8, 9, 3, 8, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 6, 10, 0, 9, 5, 9, 8, 10, 9, 11, 9, 13, 8, 14, 7, 16, 4, 0, 4, 2, 1, 5, -4, 6, -6, 7, -9, 7, -11, 6, -12, 4, -11, 3, -9, 2, -5, 1, 2, 1, 8, 2, 9, 3, 9, 5, 8, 7, 6, 8, 3, 8, 0, 9, 4, 10, 5, 12, 5, 14, 4, 7, 2, 7, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 6, 9, 9, 7, 11, 4, 9, 3, 8, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 6, 14, -12, -128, -128, 10, 0, 9, 5, 9, 8, 10, 9, 11, 9, 13, 8, 14, 7, 16, 4, 1, 7, 3, 6, 4, 5, 5, 3, 5, 1, 4, 0, 3, 0, 1, 1, 0, 3, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 7, 10, 4, 0, 4, 4, -1, 6, -4, 7, -6, 8, -9, 8, -11, 7, -12, 5, -11, 4, -9, 2, -1, -1, 8, -4, 15, -5, 18, -5, 20, -4, 21, -2, 20, -1, 17, 0, 8, 1, 9, 3, 9, 5, 8, 6, 7, 8, 4, 9, 3, 8, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 7, -128, -128, 10, 0, 8, 7, 4, 18, 3, 20, 1, 21, 0, 20, 0, 18, 1, 15, 4, 12, 7, 10, 9, 9, 12, 7, 15, 4, 0, 4, 2, 1, 5, -4, 6, -6, 7, -9, 7, -11, 6, -12, 4, -11, 3, -9, 2, -5, 1, 1, 0, 9, -128, -128, 0, 9, 1, 6, 2, 4, 4, 1, 6, 0, 8, 0, 9, 1, 9, 3, 8, 6, 8, 8, 9, 9, 10, 9, 12, 8, 13, 7, 15, 4, 3, -5, 3, -4, 4, -4, 4, -5, 3, -5, -128, -128, 0, 4, 2, 0, 0, 6, 0, 8, 1, 9, 2, 9, 4, 8, 5, 7, 7, 4, 3, -5, 3, -4, 4, -4, 4, -5, 3, -5, -128, -128, 0, 4, 2, 0, -4, 18, -5, 20, -7, 21, -8, 20, -8, 18, -7, 15, -4, 12, -1, 10, 1, 9, 4, 7, 7, 4, 0, 4, 2, 1, 5, -4, 6, -6, 7, -9, 7, -11, 6, -12, 4, -11, 3, -9, 2, -5, 1, 1, 0, 9, -128, -128, 0, 9, 1, 6, 2, 4, 4, 1, 6, 0, 8, 0, 9, 1, 9, 3, 7, 4, 4, 4, -128, -128, 4, 4, 6, 5, 7, 8, 8, 9, 9, 9, 11, 8, 12, 7, 14, 4, 0, 4, 2, 1, 5, -4, 6, -6, 7, -9, 7, -11, 6, -12, 4, -11, 3, -9, 2, -5, 1, 2, 1, 8, 2, 9, 3, 9, 5, 8, 6, 7, 8, 4, 0, 4, 2, 1, 4, 0, 5, 1, 5, 2, 4, 6, 3, 9, -128, -128, 4, 6, 5, 4, 7, 1, 9, 0, 11, 0, 12, 1, 12, 2, 11, 6, 10, 9, -128, -128, 11, 6, 12, 4, 14, 1, 16, 0, 18, 0, 19, 1, 19, 3, 18, 6, 18, 8, 19, 9, 20, 9, 22, 8, 23, 7, 25, 4, 0, 4, 2, 1, 4, 0, 5, 1, 5, 2, 4, 6, 3, 9, -128, -128, 4, 6, 5, 4, 7, 1, 9, 0, 11, 0, 12, 1, 12, 3, 11, 6, 11, 8, 12, 9, 13, 9, 15, 8, 16, 7, 18, 4, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 7, 9, 5, 9, 3, 8, 1, 6, 0, 5, 1, 5, 3, 6, 5, 8, 6, 11, 6, 13, 5, 14, 4, 0, 4, 2, 1, 3, -1, 2, 3, -4, 21, -128, -128, 2, 3, 3, 1, 5, 0, 7, 0, 9, 1, 10, 3, 10, 5, 9, 7, 8, 8, 6, 9, -128, -128, 2, 8, 4, 9, 7, 9, 10, 8, 12, 7, 15, 4, 9, 3, 8, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, -128, -128, 10, 0, 9, 3, 7, 8, 4, 15, 3, 18, 3, 20, 4, 21, 6, 20, 7, 17, 7, 10, 9, 9, 12, 7, 15, 4, 0, 4, 2, 1, 3, -1, 3, 1, 6, 1, 7, 2, 7, 4, 6, 7, 6, 8, 7, 9, 8, 9, 10, 8, 11, 7, 13, 4, 0, 4, 2, 1, 3, -1, 3, 1, 5, 4, 6, 6, 6, 8, 4, 9, -128, -128, 0, 8, 2, 9, 6, 9, 8, 8, 9, 7, 11, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 1, 6, 1, 8, 2, 9, 4, 9, 6, 8, 7, 7, 9, 4, -128, -128, 1, -4, 8, -4, 0, 4, 2, 0, 0, 6, 0, 8, 1, 9, 3, 9, 5, 8, 7, 6, 9, 3, -128, -128, 10, 0, 8, 6, 8, 8, 9, 9, 10, 9, 12, 8, 13, 7, 15, 4, 0, 4, 2, 0, 1, 5, 1, 8, 2, 9, 3, 9, 6, 8, 8, 6, 9, 3, 9, 0, -128, -128, 9, 0, 10, 4, 11, 5, 13, 5, 15, 4, 3, 0, 1, 2, 0, 5, 0, 7, 1, 9, 3, 9, 5, 8, 7, 6, -128, -128, 9, 0, 7, 6, 7, 8, 8, 9, 10, 9, 12, 8, 14, 6, 15, 3, 15, 0, -128, -128, 15, 0, 16, 4, 17, 5, 19, 5, 21, 4, 0, 4, 2, 1, 4, 0, 6, 0, 7, 1, 7, 8, 8, 9, 11, 9, 14, 7, 16, 4, -128, -128, 13, 1, 12, 0, 10, 0, 9, 1, 5, 8, 4, 9, 2, 9, 1, 8, 0, 4, 2, 0, 0, 6, 0, 8, 1, 9, 3, 9, 5, 8, 7, 6, 9, 3, -128, -128, 10, 0, 4, 18, 3, 20, 1, 21, 0, 20, 0, 18, 1, 15, 4, 12, 7, 10, 9, 9, 12, 7, 15, 4, 0, 4, 2, 1, 4, 0, 6, 0, 8, 2, 8, 4, 7, 6, 5, 8, 2, 9, 4, 10, 5, 12, 5, 15, 4, 18, 3, 20, 1, 21, 0, 20, 0, 18, 1, 15, 4, 12, 7, 10, 11, 7, 14, 4, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 6, -12, 4, -11, 3, -9, 3, -7, 4, -5, 6, -4, 8, -4, 10, -5, 11, -7, 11, -9, 10, -11, 8, -12, 6, -12 }; -const hershey_font_t scripts { +const font_t scripts { .chars = { {.width=16, .vertex_count=0, .vertices=&scripts_vertices[0]}, {.width=11, .vertex_count=16, .vertices=&scripts_vertices[0]}, @@ -520,11 +522,11 @@ const hershey_font_t scripts { } }; -static const int8_t timesi_vertices[4848] = { +const int8_t timesi_vertices[4848] = { 8, -12, 7, -11, 5, 1, -128, -128, 8, -11, 5, 1, -128, -128, 8, -12, 9, -11, 5, 1, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 7, -12, 5, -5, -128, -128, 8, -12, 5, -5, -128, -128, 16, -12, 14, -5, -128, -128, 17, -12, 14, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 12, -16, 4, 13, -128, -128, 17, -16, 9, 13, -128, -128, 18, -8, 17, -7, 18, -6, 19, -7, 19, -8, 18, -10, 17, -11, 14, -12, 10, -12, 7, -11, 5, -9, 5, -7, 6, -5, 7, -4, 14, 0, 16, 2, -128, -128, 5, -7, 7, -5, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 21, -4, 20, -3, 21, -2, 22, -3, 22, -4, 21, -5, 20, -5, 19, -4, 18, -2, 16, 3, 14, 6, 12, 8, 10, 9, 7, 9, 4, 8, 3, 6, 3, 3, 4, 1, 10, -3, 12, -5, 13, -7, 13, -9, 12, -11, 10, -12, 8, -11, 7, -9, 7, -7, 8, -4, 10, -1, 15, 6, 17, 8, 20, 9, 21, 9, 22, 8, 22, 7, -128, -128, 7, 9, 5, 8, 4, 6, 4, 3, 5, 1, 7, -1, -128, -128, 7, -7, 8, -5, 16, 6, 18, 8, 20, 9, 7, -12, 5, -5, -128, -128, 8, -12, 5, -5, 15, -16, 11, -13, 8, -10, 6, -7, 4, -3, 3, 2, 3, 6, 4, 11, 5, 14, 6, 16, -128, -128, 11, -13, 8, -9, 6, -5, 5, -2, 4, 3, 4, 8, 5, 13, 6, 16, 9, -16, 10, -14, 11, -11, 12, -6, 12, -2, 11, 3, 9, 7, 7, 10, 4, 13, 0, 16, -128, -128, 9, -16, 10, -13, 11, -8, 11, -3, 10, 2, 9, 5, 7, 9, 4, 13, 8, -6, 8, 6, -128, -128, 3, -3, 13, 3, -128, -128, 13, -3, 3, 3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 4, 0, 22, 0, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 20, -16, 2, 16, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 16, -11, 14, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 9, 9, 11, 8, 13, 6, 15, 3, 16, 0, 17, -4, 17, -7, 16, -10, 14, -12, 12, -8, 7, 9, -128, -128, 14, -12, 8, 9, -128, -128, 14, -12, 11, -9, 8, -7, 6, -6, -128, -128, 13, -9, 9, -7, 6, -6, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 15, -3, 12, -1, 8, 1, 5, 3, 3, 5, 1, 9, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, 8, 1, -128, -128, 2, 7, 3, 6, 5, 6, 10, 8, 13, 8, 15, 7, 16, 5, -128, -128, 5, 6, 10, 9, 13, 9, 15, 8, 16, 5, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 14, -3, 11, -2, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, -128, -128, 9, -2, 11, -2, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -2, 13, -1, 14, 0, 15, 2, 15, 5, 14, 7, 13, 8, 11, 9, 16, -11, 10, 9, -128, -128, 17, -12, 11, 9, -128, -128, 17, -12, 2, 3, 18, 3, 9, -12, 4, -2, -128, -128, 9, -12, 19, -12, -128, -128, 9, -11, 14, -11, 19, -12, -128, -128, 4, -2, 5, -3, 8, -4, 11, -4, 14, -3, 15, -2, 16, 0, 16, 3, 15, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -4, 13, -3, 14, -2, 15, 0, 15, 3, 14, 6, 12, 8, 10, 9, 17, -9, 16, -8, 17, -7, 18, -8, 18, -9, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 5, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 16, 4, 16, 1, 15, -1, 14, -2, 12, -3, 9, -3, 7, -2, 5, 0, 4, 2, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 6, 5, 8, -128, -128, 10, 9, 12, 8, 14, 6, 15, 4, 15, 0, 14, -2, 6, -12, 4, -6, -128, -128, 19, -12, 18, -9, 16, -6, 11, 0, 9, 3, 8, 5, 7, 9, -128, -128, 16, -6, 10, 0, 8, 3, 7, 5, 6, 9, -128, -128, 5, -9, 8, -12, 10, -12, 15, -9, -128, -128, 6, -10, 8, -11, 10, -11, 15, -9, 17, -9, 18, -10, 19, -12, 11, -12, 8, -11, 7, -10, 6, -8, 6, -5, 7, -3, 9, -2, 12, -2, 16, -3, 17, -4, 18, -6, 18, -9, 17, -11, 14, -12, 11, -12, -128, -128, 11, -12, 9, -11, 8, -10, 7, -8, 7, -5, 8, -3, 9, -2, -128, -128, 12, -2, 15, -3, 16, -4, 17, -6, 17, -9, 16, -11, 14, -12, -128, -128, 9, -2, 5, -1, 3, 1, 2, 3, 2, 6, 3, 8, 6, 9, 10, 9, 14, 8, 15, 7, 16, 5, 16, 2, 15, 0, 14, -1, 12, -2, -128, -128, 9, -2, 6, -1, 4, 1, 3, 3, 3, 6, 4, 8, 6, 9, -128, -128, 10, 9, 13, 8, 14, 7, 15, 5, 15, 1, 14, -1, 17, -5, 16, -3, 14, -1, 12, 0, 9, 0, 7, -1, 6, -2, 5, -4, 5, -7, 6, -9, 8, -11, 11, -12, 14, -12, 16, -11, 17, -10, 18, -8, 18, -4, 17, 0, 16, 3, 14, 6, 12, 8, 9, 9, 6, 9, 4, 8, 3, 6, 3, 5, 4, 4, 5, 5, 4, 6, -128, -128, 7, -1, 6, -3, 6, -7, 7, -9, 9, -11, 11, -12, -128, -128, 16, -11, 17, -9, 17, -4, 16, 0, 15, 3, 13, 6, 11, 8, 9, 9, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 15, -12, 18, -11, 19, -9, 19, -7, 18, -5, 17, -4, 11, -2, 9, -1, 9, 1, 10, 2, 12, 2, -128, -128, 15, -12, 17, -11, 18, -9, 18, -7, 17, -5, 16, -4, 14, -3, -128, -128, 8, 7, 7, 8, 8, 9, 9, 8, 8, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 13, -12, 0, 9, -128, -128, 13, -12, 14, 9, -128, -128, 12, -10, 13, 9, -128, -128, 4, 3, 13, 3, -128, -128, -2, 9, 4, 9, -128, -128, 10, 9, 16, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 17, -12, 20, -11, 21, -9, 21, -7, 20, -4, 19, -3, 16, -2, -128, -128, 17, -12, 19, -11, 20, -9, 20, -7, 19, -4, 18, -3, 16, -2, -128, -128, 7, -2, 16, -2, 18, -1, 19, 1, 19, 3, 18, 6, 16, 8, 12, 9, 0, 9, -128, -128, 16, -2, 17, -1, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 18, -10, 19, -10, 20, -12, 19, -6, 19, -8, 18, -10, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 8, 9, 11, 9, 13, 8, 15, 6, 16, 4, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 6, 8, 8, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 15, -12, 18, -11, 19, -10, 20, -7, 20, -3, 19, 1, 17, 5, 15, 7, 13, 8, 9, 9, 0, 9, -128, -128, 15, -12, 17, -11, 18, -10, 19, -7, 19, -3, 18, 1, 16, 5, 14, 7, 12, 8, 9, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 14, -6, 12, 2, -128, -128, 6, -12, 21, -12, 20, -6, 20, -12, -128, -128, 7, -2, 13, -2, -128, -128, 0, 9, 15, 9, 17, 4, 14, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 14, -6, 12, 2, -128, -128, 6, -12, 21, -12, 20, -6, 20, -12, -128, -128, 7, -2, 13, -2, -128, -128, 0, 9, 7, 9, 18, -10, 19, -10, 20, -12, 19, -6, 19, -8, 18, -10, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 8, 9, 10, 9, 13, 8, 15, 6, 17, 2, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 6, 8, 8, 9, -128, -128, 10, 9, 12, 8, 14, 6, 16, 2, -128, -128, 13, 2, 20, 2, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 22, -12, 16, 9, -128, -128, 23, -12, 17, 9, -128, -128, 6, -12, 13, -12, -128, -128, 19, -12, 26, -12, -128, -128, 7, -2, 19, -2, -128, -128, 0, 9, 7, 9, -128, -128, 13, 9, 20, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 13, -12, -128, -128, 0, 9, 7, 9, 15, -12, 10, 5, 9, 7, 8, 8, 6, 9, 4, 9, 2, 8, 1, 6, 1, 4, 2, 3, 3, 4, 2, 5, -128, -128, 14, -12, 9, 5, 8, 7, 6, 9, -128, -128, 11, -12, 18, -12, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 23, -12, 6, 1, -128, -128, 13, -3, 17, 9, -128, -128, 12, -3, 16, 9, -128, -128, 6, -12, 13, -12, -128, -128, 19, -12, 25, -12, -128, -128, 0, 9, 7, 9, -128, -128, 13, 9, 19, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 13, -12, -128, -128, 0, 9, 15, 9, 17, 3, 14, 9, 9, -12, 3, 9, -128, -128, 9, -12, 10, 9, -128, -128, 10, -12, 11, 7, -128, -128, 23, -12, 10, 9, -128, -128, 23, -12, 17, 9, -128, -128, 24, -12, 18, 9, -128, -128, 6, -12, 10, -12, -128, -128, 23, -12, 27, -12, -128, -128, 0, 9, 6, 9, -128, -128, 14, 9, 21, 9, 9, -12, 3, 9, -128, -128, 9, -12, 16, 6, -128, -128, 9, -9, 16, 9, -128, -128, 22, -12, 16, 9, -128, -128, 6, -12, 9, -12, -128, -128, 19, -12, 25, -12, -128, -128, 0, 9, 6, 9, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 17, 3, 18, 0, 19, -4, 19, -7, 18, -10, 17, -11, 15, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 10, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 15, -12, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 18, -12, 21, -11, 22, -9, 22, -7, 21, -4, 19, -2, 15, -1, 7, -1, -128, -128, 18, -12, 20, -11, 21, -9, 21, -7, 20, -4, 18, -2, 15, -1, -128, -128, 0, 9, 7, 9, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 17, 3, 18, 0, 19, -4, 19, -7, 18, -10, 17, -11, 15, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 10, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 15, -12, -128, -128, 5, 7, 5, 6, 6, 4, 8, 3, 9, 3, 11, 4, 12, 6, 12, 13, 13, 14, 15, 14, 16, 12, 16, 11, -128, -128, 12, 6, 13, 12, 14, 13, 15, 13, 16, 12, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 17, -12, 20, -11, 21, -9, 21, -7, 20, -4, 19, -3, 16, -2, 7, -2, -128, -128, 17, -12, 19, -11, 20, -9, 20, -7, 19, -4, 18, -3, 16, -2, -128, -128, 12, -2, 14, -1, 15, 0, 16, 8, 17, 9, 19, 9, 20, 7, 20, 6, -128, -128, 15, 0, 17, 7, 18, 8, 19, 8, 20, 7, -128, -128, 0, 9, 7, 9, 19, -10, 20, -10, 21, -12, 20, -6, 20, -8, 19, -10, 18, -11, 15, -12, 11, -12, 8, -11, 6, -9, 6, -7, 7, -5, 8, -4, 15, 0, 17, 2, -128, -128, 6, -7, 8, -5, 15, -1, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 3, 2, 9, 3, 7, 4, 7, 13, -12, 7, 9, -128, -128, 14, -12, 8, 9, -128, -128, 7, -12, 4, -6, 6, -12, 21, -12, 20, -6, 20, -12, -128, -128, 4, 9, 11, 9, 8, -12, 5, -1, 4, 3, 4, 6, 5, 8, 8, 9, 12, 9, 15, 8, 17, 6, 18, 3, 22, -12, -128, -128, 9, -12, 6, -1, 5, 3, 5, 6, 6, 8, 8, 9, -128, -128, 5, -12, 12, -12, -128, -128, 19, -12, 25, -12, 6, -12, 7, 9, -128, -128, 7, -12, 8, 7, -128, -128, 20, -12, 7, 9, -128, -128, 4, -12, 10, -12, -128, -128, 16, -12, 22, -12, 8, -12, 6, 9, -128, -128, 9, -12, 7, 7, -128, -128, 16, -12, 6, 9, -128, -128, 16, -12, 14, 9, -128, -128, 17, -12, 15, 7, -128, -128, 24, -12, 14, 9, -128, -128, 5, -12, 12, -12, -128, -128, 21, -12, 27, -12, 7, -12, 14, 9, -128, -128, 8, -12, 15, 9, -128, -128, 21, -12, 1, 9, -128, -128, 5, -12, 11, -12, -128, -128, 17, -12, 23, -12, -128, -128, -1, 9, 5, 9, -128, -128, 11, 9, 17, 9, 6, -12, 10, -2, 7, 9, -128, -128, 7, -12, 11, -2, 8, 9, -128, -128, 21, -12, 11, -2, -128, -128, 4, -12, 10, -12, -128, -128, 17, -12, 23, -12, -128, -128, 4, 9, 11, 9, 20, -12, 1, 9, -128, -128, 21, -12, 2, 9, -128, -128, 8, -12, 5, -6, 7, -12, 21, -12, -128, -128, 1, 9, 15, 9, 17, 3, 14, 9, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 3, 2, 11, -3, 19, 2, -128, -128, 3, 2, 11, -2, 19, 2, 0, 16, 20, 16, 4, -12, 9, -6, -128, -128, 4, -12, 3, -11, 9, -6, 16, -5, 14, 2, 13, 6, 13, 8, 14, 9, 17, 9, 19, 7, 20, 5, -128, -128, 17, -5, 15, 2, 14, 6, 14, 8, 15, 9, -128, -128, 14, 2, 14, -1, 13, -4, 11, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 11, 8, 13, 5, 14, 2, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, 8, -12, 4, 1, 4, 4, 5, 7, 6, 8, -128, -128, 9, -12, 5, 1, -128, -128, 5, 1, 6, -2, 8, -4, 10, -5, 12, -5, 14, -4, 15, -3, 16, -1, 16, 2, 15, 5, 13, 8, 10, 9, 8, 9, 6, 8, 5, 5, 5, 1, -128, -128, 14, -4, 15, -2, 15, 2, 14, 5, 12, 8, 10, 9, -128, -128, 5, -12, 9, -12, 14, -2, 14, -1, 15, -1, 15, -2, 14, -4, 12, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 5, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, 18, -12, 14, 2, 13, 6, 13, 8, 14, 9, 17, 9, 19, 7, 20, 5, -128, -128, 19, -12, 15, 2, 14, 6, 14, 8, 15, 9, -128, -128, 14, 2, 14, -1, 13, -4, 11, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 11, 8, 13, 5, 14, 2, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, -128, -128, 15, -12, 19, -12, 4, 4, 8, 3, 11, 2, 14, 0, 15, -2, 14, -4, 12, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, 15, -11, 14, -10, 15, -9, 16, -10, 16, -11, 15, -12, 13, -12, 11, -11, 10, -10, 9, -8, 8, -5, 5, 9, 4, 13, 3, 15, -128, -128, 13, -12, 11, -10, 10, -8, 9, -4, 7, 5, 6, 9, 5, 12, 4, 14, 3, 15, 1, 16, -1, 16, -2, 15, -2, 14, -1, 13, 0, 14, -1, 15, -128, -128, 4, -5, 14, -5, 17, -5, 13, 9, 12, 12, 10, 15, 7, 16, 4, 16, 2, 15, 1, 14, 1, 13, 2, 12, 3, 13, 2, 14, -128, -128, 16, -5, 12, 9, 11, 12, 9, 15, 7, 16, -128, -128, 14, 2, 14, -1, 13, -4, 11, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 11, 8, 13, 5, 14, 2, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, 8, -12, 2, 9, -128, -128, 9, -12, 3, 9, -128, -128, 5, 2, 7, -2, 9, -4, 11, -5, 13, -5, 15, -4, 16, -3, 16, -1, 14, 5, 14, 8, 15, 9, -128, -128, 13, -5, 15, -3, 15, -1, 13, 5, 13, 8, 14, 9, 17, 9, 19, 7, 20, 5, -128, -128, 5, -12, 9, -12, 9, -12, 8, -11, 9, -10, 10, -11, 9, -12, -128, -128, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 8, 7, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 8, 6, 9, 9, 9, 11, 7, 12, 5, 10, -12, 9, -11, 10, -10, 11, -11, 10, -12, -128, -128, 2, -1, 3, -3, 5, -5, 8, -5, 9, -4, 9, -1, 6, 9, 5, 12, 4, 14, 3, 15, 1, 16, -1, 16, -2, 15, -2, 14, -1, 13, 0, 14, -1, 15, -128, -128, 7, -5, 8, -4, 8, -1, 5, 9, 4, 12, 3, 14, 1, 16, 8, -12, 2, 9, -128, -128, 9, -12, 3, 9, -128, -128, 16, -4, 15, -3, 16, -2, 17, -3, 17, -4, 16, -5, 15, -5, 13, -4, 9, 0, 7, 1, 5, 1, -128, -128, 7, 1, 9, 2, 11, 8, 12, 9, -128, -128, 7, 1, 8, 2, 10, 8, 11, 9, 13, 9, 15, 8, 17, 5, -128, -128, 5, -12, 9, -12, 8, -12, 4, 2, 3, 6, 3, 8, 4, 9, 7, 9, 9, 7, 10, 5, -128, -128, 9, -12, 5, 2, 4, 6, 4, 8, 5, 9, -128, -128, 5, -12, 9, -12, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -2, 7, 2, 5, 9, -128, -128, 6, -5, 7, -4, 7, -2, 6, 2, 4, 9, -128, -128, 7, 2, 9, -2, 11, -4, 13, -5, 15, -5, 17, -4, 18, -3, 18, -1, 15, 9, -128, -128, 15, -5, 17, -3, 17, -1, 14, 9, -128, -128, 17, 2, 19, -2, 21, -4, 23, -5, 25, -5, 27, -4, 28, -3, 28, -1, 26, 5, 26, 8, 27, 9, -128, -128, 25, -5, 27, -3, 27, -1, 25, 5, 25, 8, 26, 9, 29, 9, 31, 7, 32, 5, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -2, 7, 2, 5, 9, -128, -128, 6, -5, 7, -4, 7, -2, 6, 2, 4, 9, -128, -128, 7, 2, 9, -2, 11, -4, 13, -5, 15, -5, 17, -4, 18, -3, 18, -1, 16, 5, 16, 8, 17, 9, -128, -128, 15, -5, 17, -3, 17, -1, 15, 5, 15, 8, 16, 9, 19, 9, 21, 7, 22, 5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 5, 15, 2, 15, -1, 14, -3, 13, -4, 11, -5, 9, -5, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, -128, -128, 9, 9, 11, 8, 13, 5, 14, 2, 14, -2, 13, -4, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -2, 7, 2, 3, 16, -128, -128, 6, -5, 7, -4, 7, -2, 6, 2, 2, 16, -128, -128, 7, 2, 8, -1, 10, -4, 12, -5, 14, -5, 16, -4, 17, -3, 18, -1, 18, 2, 17, 5, 15, 8, 12, 9, 10, 9, 8, 8, 7, 5, 7, 2, -128, -128, 16, -4, 17, -2, 17, 2, 16, 5, 14, 8, 12, 9, -128, -128, -1, 16, 6, 16, 16, -5, 10, 16, -128, -128, 17, -5, 11, 16, -128, -128, 14, 2, 14, -1, 13, -4, 11, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 11, 8, 13, 5, 14, 2, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, -128, -128, 7, 16, 14, 16, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -2, 7, 2, 5, 9, -128, -128, 6, -5, 7, -4, 7, -2, 6, 2, 4, 9, -128, -128, 7, 2, 9, -2, 11, -4, 13, -5, 15, -5, 16, -4, 16, -3, 15, -2, 14, -3, 15, -4, 14, -3, 14, -2, 15, -2, 15, -3, 14, -4, 11, -5, 8, -5, 5, -4, 4, -3, 4, -1, 5, 0, 12, 4, 13, 5, -128, -128, 4, -2, 5, -1, 12, 3, 13, 4, 13, 7, 12, 8, 9, 9, 6, 9, 3, 8, 2, 7, 2, 6, 3, 6, 3, 7, 9, -12, 5, 2, 4, 6, 4, 8, 5, 9, 8, 9, 10, 7, 11, 5, -128, -128, 10, -12, 6, 2, 5, 6, 5, 8, 6, 9, -128, -128, 3, -5, 12, -5, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 7, 8, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 7, 6, 8, 8, 9, 10, 9, 12, 8, 14, 6, 16, 2, -128, -128, 18, -5, 16, 2, 15, 6, 15, 8, 16, 9, 19, 9, 21, 7, 22, 5, -128, -128, 19, -5, 17, 2, 16, 6, 16, 8, 17, 9, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 7, 8, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 7, 6, 8, 8, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, -1, 17, -5, 16, -5, 17, -3, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 7, 8, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 7, 6, 8, 8, 9, 10, 9, 12, 8, 14, 6, 15, 4, -128, -128, 17, -5, 15, 4, 15, 7, 16, 8, 18, 9, 20, 9, 22, 8, 24, 6, 25, 4, 26, 0, 26, -5, 25, -5, 26, -3, -128, -128, 18, -5, 16, 4, 16, 7, 18, 9, 3, -1, 5, -4, 7, -5, 10, -5, 11, -3, 11, 0, -128, -128, 9, -5, 10, -3, 10, 0, 9, 4, 8, 6, 6, 8, 4, 9, 3, 9, 2, 8, 2, 7, 3, 6, 4, 7, 3, 8, -128, -128, 9, 4, 9, 7, 10, 9, 13, 9, 15, 8, 17, 5, -128, -128, 17, -4, 16, -3, 17, -2, 18, -3, 18, -4, 17, -5, 16, -5, 14, -4, 12, -2, 11, 0, 10, 4, 10, 7, 11, 9, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 7, 8, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 7, 6, 8, 8, 9, 10, 9, 12, 8, 14, 6, 16, 2, -128, -128, 19, -5, 15, 9, 14, 12, 12, 15, 9, 16, 6, 16, 4, 15, 3, 14, 3, 13, 4, 12, 5, 13, 4, 14, -128, -128, 18, -5, 14, 9, 13, 12, 11, 15, 9, 16, 17, -5, 16, -3, 14, -1, 6, 5, 4, 7, 3, 9, -128, -128, 4, -1, 5, -3, 7, -5, 10, -5, 14, -3, -128, -128, 5, -3, 7, -4, 10, -4, 14, -3, 16, -3, -128, -128, 4, 7, 6, 7, 10, 8, 13, 8, 15, 7, -128, -128, 6, 7, 10, 9, 13, 9, 15, 7, 16, 5, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 }; -const hershey_font_t timesi { +const font_t timesi { .chars = { {.width=16, .vertex_count=0, .vertices=×i_vertices[0]}, {.width=11, .vertex_count=16, .vertices=×i_vertices[0]}, @@ -624,11 +626,11 @@ const hershey_font_t timesi { } }; -static const int8_t timesr_vertices[4600] = { +const int8_t timesr_vertices[4600] = { 5, -12, 4, -10, 5, 2, 6, -10, 5, -12, -128, -128, 5, -10, 5, -4, -128, -128, 5, 7, 4, 8, 5, 9, 6, 8, 5, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, -128, -128, 14, -12, 13, -11, 13, -5, -128, -128, 14, -11, 13, -5, -128, -128, 14, -12, 15, -11, 13, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 8, -16, 8, 13, -128, -128, 12, -16, 12, 13, -128, -128, 16, -9, 15, -8, 16, -7, 17, -8, 17, -9, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 13, -1, 15, 0, 17, 2, -128, -128, 3, -7, 5, -5, 7, -4, 13, -2, 15, -1, 16, 0, 17, 2, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 3, 5, 4, 4, 5, 5, 4, 6, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 21, -4, 20, -3, 21, -2, 22, -3, 22, -4, 21, -5, 20, -5, 19, -4, 18, -2, 16, 3, 14, 6, 12, 8, 10, 9, 7, 9, 4, 8, 3, 6, 3, 3, 4, 1, 10, -3, 12, -5, 13, -7, 13, -9, 12, -11, 10, -12, 8, -11, 7, -9, 7, -7, 8, -4, 10, -1, 15, 6, 17, 8, 20, 9, 21, 9, 22, 8, 22, 7, -128, -128, 7, 9, 5, 8, 4, 6, 4, 3, 5, 1, 7, -1, -128, -128, 7, -7, 8, -5, 16, 6, 18, 8, 20, 9, 4, -12, 3, -5, -128, -128, 5, -12, 3, -5, 11, -16, 9, -14, 7, -11, 5, -7, 4, -2, 4, 2, 5, 7, 7, 11, 9, 14, 11, 16, -128, -128, 9, -14, 7, -10, 6, -7, 5, -2, 5, 2, 6, 7, 7, 10, 9, 14, 3, -16, 5, -14, 7, -11, 9, -7, 10, -2, 10, 2, 9, 7, 7, 11, 5, 14, 3, 16, -128, -128, 5, -14, 7, -10, 8, -7, 9, -2, 9, 2, 8, 7, 7, 10, 5, 14, 8, -6, 8, 6, -128, -128, 3, -3, 13, 3, -128, -128, 13, -3, 3, 3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 5, 5, 4, 6, 3, 5, 4, 4, 5, 5, 5, 7, 3, 9, 4, 0, 22, 0, 4, 4, 3, 5, 4, 6, 5, 5, 4, 4, 20, -16, 2, 16, 9, -12, 6, -11, 4, -8, 3, -3, 3, 0, 4, 5, 6, 8, 9, 9, 11, 9, 14, 8, 16, 5, 17, 0, 17, -3, 16, -8, 14, -11, 11, -12, 9, -12, -128, -128, 9, -12, 7, -11, 6, -10, 5, -8, 4, -3, 4, 0, 5, 5, 6, 7, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 14, 7, 15, 5, 16, 0, 16, -3, 15, -8, 14, -10, 13, -11, 11, -12, 6, -8, 8, -9, 11, -12, 11, 9, -128, -128, 10, -11, 10, 9, -128, -128, 6, 9, 15, 9, 4, -8, 5, -7, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 12, -12, 15, -11, 16, -10, 17, -8, 17, -6, 16, -4, 13, -2, 8, 0, 6, 1, 4, 3, 3, 6, 3, 9, -128, -128, 12, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 12, -2, 8, 0, -128, -128, 3, 7, 4, 6, 6, 6, 11, 8, 14, 8, 16, 7, 17, 6, -128, -128, 6, 6, 11, 9, 15, 9, 16, 8, 17, 6, 17, 4, 4, -8, 5, -7, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 12, -12, 15, -11, 16, -9, 16, -6, 15, -4, 12, -3, 9, -3, -128, -128, 12, -12, 14, -11, 15, -9, 15, -6, 14, -4, 12, -3, -128, -128, 12, -3, 14, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 4, 4, 3, 5, 4, 4, 5, -128, -128, 15, -1, 16, 2, 16, 5, 15, 7, 14, 8, 12, 9, 12, -10, 12, 9, -128, -128, 13, -12, 13, 9, -128, -128, 13, -12, 2, 3, 18, 3, -128, -128, 9, 9, 16, 9, 5, -12, 3, -2, -128, -128, 3, -2, 5, -4, 8, -5, 11, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 4, 4, 3, 5, 4, 4, 5, -128, -128, 11, -5, 13, -4, 15, -2, 16, 1, 16, 3, 15, 6, 13, 8, 11, 9, -128, -128, 5, -12, 15, -12, -128, -128, 5, -11, 10, -11, 15, -12, 15, -9, 14, -8, 15, -7, 16, -8, 16, -9, 15, -11, 13, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 2, 16, -1, 14, -3, 11, -4, 10, -4, 7, -3, 5, -1, 4, 2, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -3, 4, 3, 5, 6, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 15, 6, 16, 3, 16, 2, 15, -1, 13, -3, 11, -4, 3, -12, 3, -6, -128, -128, 3, -8, 4, -10, 6, -12, 8, -12, 13, -9, 15, -9, 16, -10, 17, -12, -128, -128, 4, -10, 6, -11, 8, -11, 13, -9, -128, -128, 17, -12, 17, -9, 16, -6, 12, -1, 11, 1, 10, 4, 10, 9, -128, -128, 16, -6, 11, -1, 10, 1, 9, 4, 9, 9, 8, -12, 5, -11, 4, -9, 4, -6, 5, -4, 8, -3, 12, -3, 15, -4, 16, -6, 16, -9, 15, -11, 12, -12, 8, -12, -128, -128, 8, -12, 6, -11, 5, -9, 5, -6, 6, -4, 8, -3, -128, -128, 12, -3, 14, -4, 15, -6, 15, -9, 14, -11, 12, -12, -128, -128, 8, -3, 5, -2, 4, -1, 3, 1, 3, 5, 4, 7, 5, 8, 8, 9, 12, 9, 15, 8, 16, 7, 17, 5, 17, 1, 16, -1, 15, -2, 12, -3, -128, -128, 8, -3, 6, -2, 5, -1, 4, 1, 4, 5, 5, 7, 6, 8, 8, 9, -128, -128, 12, 9, 14, 8, 15, 7, 16, 5, 16, 1, 15, -1, 14, -2, 12, -3, 16, -5, 15, -2, 13, 0, 10, 1, 9, 1, 6, 0, 4, -2, 3, -5, 3, -6, 4, -9, 6, -11, 9, -12, 11, -12, 14, -11, 16, -9, 17, -6, 17, 0, 16, 4, 15, 6, 13, 8, 10, 9, 7, 9, 5, 8, 4, 6, 4, 5, 5, 4, 6, 5, 5, 6, -128, -128, 9, 1, 7, 0, 5, -2, 4, -5, 4, -6, 5, -9, 7, -11, 9, -12, -128, -128, 11, -12, 13, -11, 15, -9, 16, -6, 16, 0, 15, 4, 14, 6, 12, 8, 10, 9, 4, -3, 3, -2, 4, -1, 5, -2, 4, -3, -128, -128, 4, 4, 3, 5, 4, 6, 5, 5, 4, 4, 4, -3, 3, -2, 4, -1, 5, -2, 4, -3, -128, -128, 5, 5, 4, 6, 3, 5, 4, 4, 5, 5, 5, 7, 3, 9, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 4, -8, 5, -7, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 7, -12, 10, -12, 13, -11, 14, -10, 15, -8, 15, -6, 14, -4, 13, -3, 9, -1, 9, 2, -128, -128, 10, -12, 12, -11, 13, -10, 14, -8, 14, -6, 13, -4, 11, -2, -128, -128, 9, 7, 8, 8, 9, 9, 10, 8, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 10, -12, 3, 9, -128, -128, 10, -12, 17, 9, -128, -128, 10, -9, 16, 9, -128, -128, 5, 3, 14, 3, -128, -128, 1, 9, 7, 9, -128, -128, 13, 9, 19, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -6, 18, -4, 17, -3, 14, -2, -128, -128, 14, -12, 16, -11, 17, -10, 18, -8, 18, -6, 17, -4, 16, -3, 14, -2, -128, -128, 6, -2, 14, -2, 17, -1, 18, 0, 19, 2, 19, 5, 18, 7, 17, 8, 14, 9, 2, 9, -128, -128, 14, -2, 16, -1, 17, 0, 18, 2, 18, 5, 17, 7, 16, 8, 14, 9, 17, -9, 18, -6, 18, -12, 17, -9, 15, -11, 12, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, 8, 8, 10, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 12, -12, 15, -11, 17, -9, 18, -7, 19, -4, 19, 1, 18, 4, 17, 6, 15, 8, 12, 9, 2, 9, -128, -128, 12, -12, 14, -11, 16, -9, 17, -7, 18, -4, 18, 1, 17, 4, 16, 6, 14, 8, 12, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 12, -6, 12, 2, -128, -128, 2, -12, 18, -12, 18, -6, 17, -12, -128, -128, 6, -2, 12, -2, -128, -128, 2, 9, 18, 9, 18, 3, 17, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 12, -6, 12, 2, -128, -128, 2, -12, 18, -12, 18, -6, 17, -12, -128, -128, 6, -2, 12, -2, -128, -128, 2, 9, 9, 9, 17, -9, 18, -6, 18, -12, 17, -9, 15, -11, 12, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, 8, 8, 10, 9, -128, -128, 17, 1, 17, 9, -128, -128, 18, 1, 18, 9, -128, -128, 14, 1, 21, 1, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 18, -12, 18, 9, -128, -128, 19, -12, 19, 9, -128, -128, 2, -12, 9, -12, -128, -128, 15, -12, 22, -12, -128, -128, 6, -2, 18, -2, -128, -128, 2, 9, 9, 9, -128, -128, 15, 9, 22, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 9, -12, -128, -128, 2, 9, 9, 9, 10, -12, 10, 5, 9, 8, 7, 9, 5, 9, 3, 8, 2, 6, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 9, -12, 9, 5, 8, 8, 7, 9, -128, -128, 6, -12, 13, -12, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 19, -12, 6, 1, -128, -128, 11, -3, 19, 9, -128, -128, 10, -3, 18, 9, -128, -128, 2, -12, 9, -12, -128, -128, 15, -12, 21, -12, -128, -128, 2, 9, 9, 9, -128, -128, 15, 9, 21, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 9, -12, -128, -128, 2, 9, 17, 9, 17, 3, 16, 9, 5, -12, 5, 9, -128, -128, 6, -12, 12, 6, -128, -128, 5, -12, 12, 9, -128, -128, 19, -12, 12, 9, -128, -128, 19, -12, 19, 9, -128, -128, 20, -12, 20, 9, -128, -128, 2, -12, 6, -12, -128, -128, 19, -12, 23, -12, -128, -128, 2, 9, 8, 9, -128, -128, 16, 9, 23, 9, 5, -12, 5, 9, -128, -128, 6, -12, 18, 7, -128, -128, 6, -10, 18, 9, -128, -128, 18, -12, 18, 9, -128, -128, 2, -12, 6, -12, -128, -128, 15, -12, 21, -12, -128, -128, 2, 9, 8, 9, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 0, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, 19, 0, 19, -3, 18, -7, 17, -9, 15, -11, 12, -12, 10, -12, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -3, 4, 0, 5, 4, 6, 6, 8, 8, 10, 9, -128, -128, 12, 9, 14, 8, 16, 6, 17, 4, 18, 0, 18, -3, 17, -7, 16, -9, 14, -11, 12, -12, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -5, 18, -3, 17, -2, 14, -1, 6, -1, -128, -128, 14, -12, 16, -11, 17, -10, 18, -8, 18, -5, 17, -3, 16, -2, 14, -1, -128, -128, 2, 9, 9, 9, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 0, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, 19, 0, 19, -3, 18, -7, 17, -9, 15, -11, 12, -12, 10, -12, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -3, 4, 0, 5, 4, 6, 6, 8, 8, 10, 9, -128, -128, 12, 9, 14, 8, 16, 6, 17, 4, 18, 0, 18, -3, 17, -7, 16, -9, 14, -11, 12, -12, -128, -128, 7, 7, 7, 6, 8, 4, 10, 3, 11, 3, 13, 4, 14, 6, 15, 13, 16, 14, 18, 14, 19, 12, 19, 11, -128, -128, 14, 6, 15, 10, 16, 12, 17, 13, 18, 13, 19, 12, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -6, 18, -4, 17, -3, 14, -2, 6, -2, -128, -128, 14, -12, 16, -11, 17, -10, 18, -8, 18, -6, 17, -4, 16, -3, 14, -2, -128, -128, 2, 9, 9, 9, -128, -128, 11, -2, 13, -1, 14, 0, 17, 7, 18, 8, 19, 8, 20, 7, -128, -128, 13, -1, 14, 1, 16, 8, 17, 9, 19, 9, 20, 7, 20, 6, 16, -9, 17, -12, 17, -6, 16, -9, 14, -11, 11, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 13, -1, 15, 0, 17, 2, -128, -128, 3, -7, 5, -5, 7, -4, 13, -2, 15, -1, 16, 0, 17, 2, 17, 6, 15, 8, 12, 9, 9, 9, 6, 8, 4, 6, 3, 3, 3, 9, 4, 6, 9, -12, 9, 9, -128, -128, 10, -12, 10, 9, -128, -128, 3, -12, 2, -6, 2, -12, 17, -12, 17, -6, 16, -12, -128, -128, 6, 9, 13, 9, 5, -12, 5, 3, 6, 6, 8, 8, 11, 9, 13, 9, 16, 8, 18, 6, 19, 3, 19, -12, -128, -128, 6, -12, 6, 3, 7, 6, 9, 8, 11, 9, -128, -128, 2, -12, 9, -12, -128, -128, 16, -12, 22, -12, 3, -12, 10, 9, -128, -128, 4, -12, 10, 6, -128, -128, 17, -12, 10, 9, -128, -128, 1, -12, 7, -12, -128, -128, 13, -12, 19, -12, 4, -12, 8, 9, -128, -128, 5, -12, 8, 4, -128, -128, 12, -12, 8, 9, -128, -128, 12, -12, 16, 9, -128, -128, 13, -12, 16, 4, -128, -128, 20, -12, 16, 9, -128, -128, 1, -12, 8, -12, -128, -128, 17, -12, 23, -12, 3, -12, 16, 9, -128, -128, 4, -12, 17, 9, -128, -128, 17, -12, 3, 9, -128, -128, 1, -12, 7, -12, -128, -128, 13, -12, 19, -12, -128, -128, 1, 9, 7, 9, -128, -128, 13, 9, 19, 9, 3, -12, 10, -1, 10, 9, -128, -128, 4, -12, 11, -1, 11, 9, -128, -128, 18, -12, 11, -1, -128, -128, 1, -12, 7, -12, -128, -128, 14, -12, 20, -12, -128, -128, 7, 9, 14, 9, 16, -12, 3, 9, -128, -128, 17, -12, 4, 9, -128, -128, 4, -12, 3, -6, 3, -12, 17, -12, -128, -128, 3, 9, 17, 9, 17, 3, 16, 9, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 3, 2, 11, -3, 19, 2, -128, -128, 3, 2, 11, -2, 19, 2, 0, 16, 20, 16, 4, -12, 9, -6, -128, -128, 4, -12, 3, -11, 9, -6, 5, -3, 5, -2, 4, -2, 4, -3, 5, -4, 7, -5, 11, -5, 13, -4, 14, -3, 15, -1, 15, 6, 16, 8, 17, 9, -128, -128, 14, -3, 14, 6, 15, 8, 17, 9, 18, 9, -128, -128, 14, -1, 13, 0, 7, 1, 4, 2, 3, 4, 3, 6, 4, 8, 7, 9, 10, 9, 12, 8, 14, 6, -128, -128, 7, 1, 5, 2, 4, 4, 4, 6, 5, 8, 7, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 6, -2, 8, -4, 10, -5, 12, -5, 15, -4, 17, -2, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 10, 9, 8, 8, 6, 6, -128, -128, 12, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 12, 9, -128, -128, 2, -12, 6, -12, 15, -2, 14, -1, 15, 0, 16, -1, 16, -2, 14, -4, 12, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, 15, -12, 15, 9, -128, -128, 16, -12, 16, 9, -128, -128, 15, -2, 13, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 13, 8, 15, 6, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, -128, -128, 12, -12, 16, -12, -128, -128, 15, 9, 19, 9, 4, 1, 16, 1, 16, -1, 15, -3, 14, -4, 12, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 15, 1, 15, -2, 14, -4, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, 10, -11, 9, -10, 10, -9, 11, -10, 11, -11, 10, -12, 8, -12, 6, -11, 5, -9, 5, 9, -128, -128, 8, -12, 7, -11, 6, -9, 6, 9, -128, -128, 2, -5, 10, -5, -128, -128, 2, 9, 9, 9, 8, -5, 6, -4, 5, -3, 4, -1, 4, 1, 5, 3, 6, 4, 8, 5, 10, 5, 12, 4, 13, 3, 14, 1, 14, -1, 13, -3, 12, -4, 10, -5, 8, -5, -128, -128, 6, -4, 5, -2, 5, 2, 6, 4, -128, -128, 12, 4, 13, 2, 13, -2, 12, -4, -128, -128, 13, -3, 14, -4, 16, -5, 16, -4, 14, -4, -128, -128, 5, 3, 4, 4, 3, 6, 3, 7, 4, 9, 7, 10, 12, 10, 15, 11, 16, 12, -128, -128, 3, 7, 4, 8, 7, 9, 12, 9, 15, 10, 16, 12, 16, 13, 15, 15, 12, 16, 6, 16, 3, 15, 2, 13, 2, 12, 3, 10, 6, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 6, -2, 8, -4, 11, -5, 13, -5, 16, -4, 17, -2, 17, 9, -128, -128, 13, -5, 15, -4, 16, -2, 16, 9, -128, -128, 2, -12, 6, -12, -128, -128, 2, 9, 9, 9, -128, -128, 13, 9, 20, 9, 5, -12, 4, -11, 5, -10, 6, -11, 5, -12, -128, -128, 5, -5, 5, 9, -128, -128, 6, -5, 6, 9, -128, -128, 2, -5, 6, -5, -128, -128, 2, 9, 9, 9, 6, -12, 5, -11, 6, -10, 7, -11, 6, -12, -128, -128, 7, -5, 7, 13, 6, 15, 4, 16, 2, 16, 1, 15, 1, 14, 2, 13, 3, 14, 2, 15, -128, -128, 6, -5, 6, 13, 5, 15, 4, 16, -128, -128, 3, -5, 7, -5, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 16, -5, 6, 5, -128, -128, 11, 1, 17, 9, -128, -128, 10, 1, 16, 9, -128, -128, 2, -12, 6, -12, -128, -128, 13, -5, 19, -5, -128, -128, 2, 9, 9, 9, -128, -128, 13, 9, 19, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 6, -12, -128, -128, 2, 9, 9, 9, 5, -5, 5, 9, -128, -128, 6, -5, 6, 9, -128, -128, 6, -2, 8, -4, 11, -5, 13, -5, 16, -4, 17, -2, 17, 9, -128, -128, 13, -5, 15, -4, 16, -2, 16, 9, -128, -128, 17, -2, 19, -4, 22, -5, 24, -5, 27, -4, 28, -2, 28, 9, -128, -128, 24, -5, 26, -4, 27, -2, 27, 9, -128, -128, 2, -5, 6, -5, -128, -128, 2, 9, 9, 9, -128, -128, 13, 9, 20, 9, -128, -128, 24, 9, 31, 9, 5, -5, 5, 9, -128, -128, 6, -5, 6, 9, -128, -128, 6, -2, 8, -4, 11, -5, 13, -5, 16, -4, 17, -2, 17, 9, -128, -128, 13, -5, 15, -4, 16, -2, 16, 9, -128, -128, 2, -5, 6, -5, -128, -128, 2, 9, 9, 9, -128, -128, 13, 9, 20, 9, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 1, 16, -2, 14, -4, 11, -5, 9, -5, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 15, 6, 16, 3, 16, 1, 15, -2, 13, -4, 11, -5, 5, -5, 5, 16, -128, -128, 6, -5, 6, 16, -128, -128, 6, -2, 8, -4, 10, -5, 12, -5, 15, -4, 17, -2, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 10, 9, 8, 8, 6, 6, -128, -128, 12, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 12, 9, -128, -128, 2, -5, 6, -5, -128, -128, 2, 16, 9, 16, 15, -5, 15, 16, -128, -128, 16, -5, 16, 16, -128, -128, 15, -2, 13, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 13, 8, 15, 6, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, -128, -128, 12, 16, 19, 16, 5, -5, 5, 9, -128, -128, 6, -5, 6, 9, -128, -128, 6, 1, 7, -2, 9, -4, 11, -5, 14, -5, 15, -4, 15, -3, 14, -2, 13, -3, 14, -4, -128, -128, 2, -5, 6, -5, -128, -128, 2, 9, 9, 9, 13, -3, 14, -5, 14, -1, 13, -3, 12, -4, 10, -5, 6, -5, 4, -4, 3, -3, 3, -1, 4, 0, 6, 1, 11, 3, 13, 4, 14, 5, -128, -128, 3, -2, 4, -1, 6, 0, 11, 2, 13, 3, 14, 4, 14, 7, 13, 8, 11, 9, 7, 9, 5, 8, 4, 7, 3, 5, 3, 9, 4, 7, 5, -12, 5, 5, 6, 8, 8, 9, 10, 9, 12, 8, 13, 6, -128, -128, 6, -12, 6, 5, 7, 8, 8, 9, -128, -128, 2, -5, 10, -5, 5, -5, 5, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 6, -5, 6, 6, 7, 8, 9, 9, -128, -128, 16, -5, 16, 9, -128, -128, 17, -5, 17, 9, -128, -128, 2, -5, 6, -5, -128, -128, 13, -5, 17, -5, -128, -128, 16, 9, 20, 9, 3, -5, 9, 9, -128, -128, 4, -5, 9, 7, -128, -128, 15, -5, 9, 9, -128, -128, 1, -5, 7, -5, -128, -128, 11, -5, 17, -5, 4, -5, 8, 9, -128, -128, 5, -5, 8, 6, -128, -128, 12, -5, 8, 9, -128, -128, 12, -5, 16, 9, -128, -128, 13, -5, 16, 6, -128, -128, 20, -5, 16, 9, -128, -128, 1, -5, 8, -5, -128, -128, 17, -5, 23, -5, 4, -5, 15, 9, -128, -128, 5, -5, 16, 9, -128, -128, 16, -5, 4, 9, -128, -128, 2, -5, 8, -5, -128, -128, 12, -5, 18, -5, -128, -128, 2, 9, 8, 9, -128, -128, 12, 9, 18, 9, 4, -5, 10, 9, -128, -128, 5, -5, 10, 7, -128, -128, 16, -5, 10, 9, 8, 13, 6, 15, 4, 16, 3, 16, 2, 15, 3, 14, 4, 15, -128, -128, 2, -5, 8, -5, -128, -128, 12, -5, 18, -5, 14, -5, 3, 9, -128, -128, 15, -5, 4, 9, -128, -128, 4, -5, 3, -1, 3, -5, 15, -5, -128, -128, 3, 9, 15, 9, 15, 5, 14, 9, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 }; -const hershey_font_t timesr { +const font_t timesr { .chars = { {.width=16, .vertex_count=0, .vertices=×r_vertices[0]}, {.width=10, .vertex_count=14, .vertices=×r_vertices[0]}, @@ -728,11 +730,11 @@ const hershey_font_t timesr { } }; -static const int8_t timesrb_vertices[7994] = { +const int8_t timesrb_vertices[7994] = { 5, -12, 4, -11, 4, -9, 5, -1, -128, -128, 5, -12, 5, 2, 6, 2, -128, -128, 5, -12, 6, -12, 6, 2, -128, -128, 6, -12, 7, -11, 7, -9, 6, -1, -128, -128, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, -128, -128, 14, -12, 13, -11, 13, -5, -128, -128, 14, -11, 13, -5, -128, -128, 14, -12, 15, -11, 13, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 8, -16, 8, 13, -128, -128, 12, -16, 12, 13, -128, -128, 16, -7, 16, -8, 15, -8, 15, -6, 17, -6, 17, -8, 16, -10, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -6, 4, -4, 7, -2, 13, 0, 15, 1, 16, 3, 16, 6, 15, 8, -128, -128, 4, -6, 5, -4, 7, -3, 13, -1, 15, 0, 16, 2, -128, -128, 5, -11, 4, -9, 4, -7, 5, -5, 7, -4, 13, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 3, 5, 3, 5, 5, 4, 5, 4, 4, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 22, -3, 22, -4, 21, -4, 21, -2, 23, -2, 23, -4, 22, -5, 21, -5, 20, -4, 19, -2, 17, 3, 15, 6, 13, 8, 11, 9, 7, 9, 5, 8, 4, 6, 4, 3, 5, 1, 11, -3, 13, -5, 14, -7, 14, -9, 13, -11, 11, -12, 9, -11, 8, -9, 8, -6, 9, -3, 11, 0, 15, 5, 18, 8, 20, 9, 22, 9, 23, 7, 23, 6, -128, -128, 6, 8, 5, 6, 5, 3, 6, 1, 7, 0, -128, -128, 13, -5, 14, -9, -128, -128, 14, -7, 13, -11, -128, -128, 9, -11, 8, -7, -128, -128, 9, -4, 11, -1, 15, 4, 18, 7, 20, 8, -128, -128, 9, 9, 7, 8, 6, 6, 6, 3, 7, 1, 11, -3, -128, -128, 8, -9, 9, -5, 12, -1, 16, 4, 19, 7, 21, 8, 22, 8, 23, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, 10, -16, 8, -14, 6, -11, 4, -7, 3, -2, 3, 2, 4, 7, 6, 11, 8, 14, 10, 16, -128, -128, 6, -10, 5, -7, 4, -3, 4, 3, 5, 7, 6, 10, -128, -128, 8, -14, 7, -12, 6, -9, 5, -3, 5, 3, 6, 9, 7, 12, 8, 14, 4, -16, 6, -14, 8, -11, 10, -7, 11, -2, 11, 2, 10, 7, 8, 11, 6, 14, 4, 16, -128, -128, 8, -10, 9, -7, 10, -3, 10, 3, 9, 7, 8, 10, -128, -128, 6, -14, 7, -12, 8, -9, 9, -3, 9, 3, 8, 9, 7, 12, 6, 14, 8, -12, 7, -11, 9, -1, 8, 0, -128, -128, 8, -12, 8, 0, -128, -128, 8, -12, 9, -11, 7, -1, 8, 0, -128, -128, 3, -9, 4, -9, 12, -3, 13, -3, -128, -128, 3, -9, 13, -3, -128, -128, 3, -9, 3, -8, 13, -4, 13, -3, -128, -128, 13, -9, 12, -9, 4, -3, 3, -3, -128, -128, 13, -9, 3, -3, -128, -128, 13, -9, 13, -8, 3, -4, 3, -3, 12, -9, 12, 8, 13, 8, -128, -128, 12, -9, 13, -9, 13, 8, -128, -128, 4, -1, 21, -1, 21, 0, -128, -128, 4, -1, 4, 0, 21, 0, 7, 8, 6, 9, 5, 9, 4, 8, 4, 7, 5, 6, 6, 6, 7, 7, 7, 10, 6, 12, 4, 13, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, -128, -128, 6, 9, 7, 10, -128, -128, 7, 8, 6, 12, 4, 0, 22, 0, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 20, -16, 2, 16, 3, 16, -128, -128, 20, -16, 21, -16, 3, 16, 9, -12, 6, -11, 4, -8, 3, -3, 3, 0, 4, 5, 6, 8, 9, 9, 11, 9, 14, 8, 16, 5, 17, 0, 17, -3, 16, -8, 14, -11, 11, -12, 9, -12, -128, -128, 6, -10, 5, -8, 4, -4, 4, 1, 5, 5, 6, 7, -128, -128, 14, 7, 15, 5, 16, 1, 16, -4, 15, -8, 14, -10, -128, -128, 9, -12, 7, -11, 6, -9, 5, -4, 5, 1, 6, 6, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 14, 6, 15, 1, 15, -4, 14, -9, 13, -11, 11, -12, 9, -10, 9, 9, -128, -128, 10, -10, 10, 8, -128, -128, 11, -12, 11, 9, -128, -128, 11, -12, 8, -9, 6, -8, -128, -128, 5, 9, 15, 9, -128, -128, 9, 8, 7, 9, -128, -128, 9, 7, 8, 9, -128, -128, 11, 7, 12, 9, -128, -128, 11, 8, 13, 9, 4, -8, 4, -7, 5, -7, 5, -8, 4, -8, -128, -128, 4, -9, 5, -9, 6, -8, 6, -7, 5, -6, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 12, -12, 15, -11, 16, -10, 17, -8, 17, -6, 16, -4, 13, -2, 8, 0, 6, 1, 4, 3, 3, 6, 3, 9, -128, -128, 15, -10, 16, -8, 16, -6, 15, -4, -128, -128, 12, -12, 14, -11, 15, -8, 15, -6, 14, -4, 12, -2, 8, 0, -128, -128, 3, 7, 4, 6, 6, 6, 11, 7, 15, 7, 17, 6, -128, -128, 6, 6, 11, 8, 15, 8, 16, 7, -128, -128, 6, 6, 11, 9, 15, 9, 16, 8, 17, 6, 17, 4, 4, -8, 4, -7, 5, -7, 5, -8, 4, -8, -128, -128, 4, -9, 5, -9, 6, -8, 6, -7, 5, -6, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 12, -12, 15, -11, 16, -9, 16, -6, 15, -4, 12, -3, -128, -128, 14, -11, 15, -9, 15, -6, 14, -4, -128, -128, 11, -12, 13, -11, 14, -9, 14, -6, 13, -4, 11, -3, -128, -128, 9, -3, 12, -3, 14, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 4, 4, 3, 5, 3, 6, 4, 6, 5, 5, 6, 4, 6, -128, -128, 15, 0, 16, 2, 16, 5, 15, 7, -128, -128, 11, -3, 13, -2, 14, -1, 15, 2, 15, 5, 14, 8, 12, 9, -128, -128, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, 11, -9, 11, 9, -128, -128, 12, -10, 12, 8, -128, -128, 13, -12, 13, 9, -128, -128, 13, -12, 2, 3, 18, 3, -128, -128, 8, 9, 16, 9, -128, -128, 11, 8, 9, 9, -128, -128, 11, 7, 10, 9, -128, -128, 13, 7, 14, 9, -128, -128, 13, 8, 15, 9, 5, -12, 3, -2, 5, -4, 8, -5, 11, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 4, 4, 3, 5, 3, 6, 4, 6, 5, 5, 6, 4, 6, -128, -128, 15, -2, 16, 0, 16, 4, 15, 6, -128, -128, 11, -5, 13, -4, 14, -3, 15, 0, 15, 4, 14, 7, 13, 8, 11, 9, -128, -128, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, -128, -128, 5, -12, 15, -12, -128, -128, 5, -11, 13, -11, -128, -128, 5, -10, 9, -10, 13, -11, 15, -12, 14, -9, 14, -8, 15, -8, 15, -9, 14, -9, -128, -128, 15, -10, 14, -10, 13, -9, 13, -8, 14, -7, 15, -7, 16, -8, 16, -9, 15, -11, 13, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 2, 16, -1, 14, -3, 11, -4, 9, -4, 7, -3, 6, -2, 5, 0, -128, -128, 6, -9, 5, -7, 4, -3, 4, 3, 5, 6, 6, 7, -128, -128, 15, 6, 16, 4, 16, 1, 15, -1, -128, -128, 10, -12, 8, -11, 7, -10, 6, -8, 5, -4, 5, 3, 6, 6, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 14, 7, 15, 4, 15, 1, 14, -2, 13, -3, 11, -4, 3, -12, 3, -6, -128, -128, 17, -12, 17, -9, 16, -6, 12, -1, 11, 1, 10, 5, 10, 9, -128, -128, 11, 0, 10, 2, 9, 5, 9, 9, -128, -128, 16, -6, 11, -1, 9, 2, 8, 5, 8, 9, 10, 9, -128, -128, 3, -8, 4, -10, 6, -12, 8, -12, 13, -9, 15, -9, 16, -10, 17, -12, -128, -128, 5, -10, 6, -11, 8, -11, 10, -10, -128, -128, 3, -8, 4, -9, 6, -10, 8, -10, 13, -9, 8, -12, 5, -11, 4, -9, 4, -6, 5, -4, 8, -3, 12, -3, 15, -4, 16, -6, 16, -9, 15, -11, 12, -12, 8, -12, -128, -128, 6, -11, 5, -9, 5, -6, 6, -4, -128, -128, 14, -4, 15, -6, 15, -9, 14, -11, -128, -128, 8, -12, 7, -11, 6, -9, 6, -6, 7, -4, 8, -3, -128, -128, 12, -3, 13, -4, 14, -6, 14, -9, 13, -11, 12, -12, -128, -128, 8, -3, 5, -2, 4, -1, 3, 1, 3, 5, 4, 7, 5, 8, 8, 9, 12, 9, 15, 8, 16, 7, 17, 5, 17, 1, 16, -1, 15, -2, 12, -3, -128, -128, 5, -1, 4, 1, 4, 5, 5, 7, -128, -128, 15, 7, 16, 5, 16, 1, 15, -1, -128, -128, 8, -3, 6, -2, 5, 1, 5, 5, 6, 8, 8, 9, -128, -128, 12, 9, 14, 8, 15, 5, 15, 1, 14, -2, 12, -3, 5, 5, 5, 6, 6, 6, 6, 5, 5, 5, -128, -128, 15, -3, 14, -1, 13, 0, 11, 1, 9, 1, 6, 0, 4, -2, 3, -5, 3, -6, 4, -9, 6, -11, 9, -12, 11, -12, 14, -11, 16, -9, 17, -6, 17, 0, 16, 4, 15, 6, 13, 8, 10, 9, 7, 9, 5, 8, 4, 6, 4, 5, 5, 4, 6, 4, 7, 5, 7, 6, 6, 7, 5, 7, -128, -128, 5, -2, 4, -4, 4, -7, 5, -9, -128, -128, 14, -10, 15, -9, 16, -6, 16, 0, 15, 4, 14, 6, -128, -128, 9, 1, 7, 0, 6, -1, 5, -4, 5, -7, 6, -10, 7, -11, 9, -12, -128, -128, 11, -12, 13, -11, 14, -9, 15, -6, 15, 1, 14, 5, 13, 7, 12, 8, 10, 9, 5, -5, 4, -4, 4, -3, 5, -2, 6, -2, 7, -3, 7, -4, 6, -5, 5, -5, -128, -128, 5, -4, 5, -3, 6, -3, 6, -4, 5, -4, -128, -128, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 5, -5, 4, -4, 4, -3, 5, -2, 6, -2, 7, -3, 7, -4, 6, -5, 5, -5, -128, -128, 5, -4, 5, -3, 6, -3, 6, -4, 5, -4, -128, -128, 7, 8, 6, 9, 5, 9, 4, 8, 4, 7, 5, 6, 6, 6, 7, 7, 7, 10, 6, 12, 4, 13, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, -128, -128, 6, 9, 7, 10, -128, -128, 7, 8, 6, 12, 20, -9, 4, 0, 20, 9, 4, -5, 21, -5, 21, -4, -128, -128, 4, -5, 4, -4, 21, -4, -128, -128, 4, 3, 21, 3, 21, 4, -128, -128, 4, 3, 4, 4, 21, 4, 4, -9, 20, 0, 4, 9, 4, -7, 4, -8, 5, -8, 5, -6, 3, -6, 3, -8, 4, -10, 5, -11, 7, -12, 11, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 14, -3, 10, -1, -128, -128, 14, -10, 15, -9, 15, -5, 14, -4, -128, -128, 11, -12, 13, -11, 14, -9, 14, -5, 13, -3, 12, -2, -128, -128, 9, -1, 9, 2, 10, 2, 10, -1, 9, -1, -128, -128, 9, 6, 8, 7, 8, 8, 9, 9, 10, 9, 11, 8, 11, 7, 10, 6, 9, 6, -128, -128, 9, 7, 9, 8, 10, 8, 10, 7, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 10, -12, 3, 8, -128, -128, 9, -9, 15, 9, -128, -128, 10, -9, 16, 9, -128, -128, 10, -12, 17, 9, -128, -128, 5, 3, 14, 3, -128, -128, 1, 9, 7, 9, -128, -128, 12, 9, 19, 9, -128, -128, 3, 8, 2, 9, -128, -128, 3, 8, 5, 9, -128, -128, 15, 8, 13, 9, -128, -128, 15, 7, 14, 9, -128, -128, 16, 7, 18, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -6, 18, -4, 17, -3, 14, -2, -128, -128, 17, -10, 18, -8, 18, -6, 17, -4, -128, -128, 14, -12, 16, -11, 17, -9, 17, -5, 16, -3, 14, -2, -128, -128, 7, -2, 14, -2, 17, -1, 18, 0, 19, 2, 19, 5, 18, 7, 17, 8, 14, 9, 2, 9, -128, -128, 17, 0, 18, 2, 18, 5, 17, 7, -128, -128, 14, -2, 16, -1, 17, 1, 17, 6, 16, 8, 14, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 17, -9, 18, -12, 18, -6, 17, -9, 15, -11, 13, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 13, 9, 15, 8, 17, 6, 18, 4, -128, -128, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, -128, -128, 10, -12, 8, -11, 6, -8, 5, -4, 5, 1, 6, 5, 8, 8, 10, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 12, -12, 15, -11, 17, -9, 18, -7, 19, -4, 19, 1, 18, 4, 17, 6, 15, 8, 12, 9, 2, 9, -128, -128, 16, -9, 17, -7, 18, -4, 18, 1, 17, 4, 16, 6, -128, -128, 12, -12, 14, -11, 16, -8, 17, -4, 17, 1, 16, 5, 14, 8, 12, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 18, -12, 18, -6, -128, -128, 7, -2, 13, -2, -128, -128, 13, -6, 13, 2, -128, -128, 2, 9, 18, 9, 18, 3, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 13, -12, 18, -11, -128, -128, 15, -12, 18, -10, -128, -128, 16, -12, 18, -9, -128, -128, 17, -12, 18, -6, -128, -128, 13, -6, 12, -2, 13, 2, -128, -128, 13, -4, 11, -2, 13, 0, -128, -128, 13, -3, 9, -2, 13, -1, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 13, 9, 18, 8, -128, -128, 15, 9, 18, 7, -128, -128, 16, 9, 18, 6, -128, -128, 17, 9, 18, 3, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 18, -12, 18, -6, -128, -128, 7, -2, 13, -2, -128, -128, 13, -6, 13, 2, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 13, -12, 18, -11, -128, -128, 15, -12, 18, -10, -128, -128, 16, -12, 18, -9, -128, -128, 17, -12, 18, -6, -128, -128, 13, -6, 12, -2, 13, 2, -128, -128, 13, -4, 11, -2, 13, 0, -128, -128, 13, -3, 9, -2, 13, -1, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 17, -9, 18, -12, 18, -6, 17, -9, 15, -11, 13, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 13, 9, 15, 8, 17, 8, 18, 9, 18, 1, -128, -128, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, -128, -128, 10, -12, 8, -11, 6, -8, 5, -4, 5, 1, 6, 5, 8, 8, 10, 9, -128, -128, 17, 2, 17, 7, -128, -128, 16, 1, 16, 7, 15, 8, -128, -128, 13, 1, 21, 1, -128, -128, 14, 1, 16, 2, -128, -128, 15, 1, 16, 3, -128, -128, 19, 1, 18, 3, -128, -128, 20, 1, 18, 2, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 17, -12, 17, 9, -128, -128, 18, -11, 18, 8, -128, -128, 19, -12, 19, 9, -128, -128, 2, -12, 10, -12, -128, -128, 14, -12, 22, -12, -128, -128, 7, -2, 17, -2, -128, -128, 2, 9, 10, 9, -128, -128, 14, 9, 22, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 15, -12, 17, -11, -128, -128, 16, -12, 17, -10, -128, -128, 20, -12, 19, -10, -128, -128, 21, -12, 19, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 17, 8, 15, 9, -128, -128, 17, 7, 16, 9, -128, -128, 19, 7, 20, 9, -128, -128, 19, 8, 21, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 10, -12, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 9, -12, 9, 5, 8, 8, 7, 9, -128, -128, 10, -11, 10, 5, 9, 8, -128, -128, 11, -12, 11, 5, 10, 8, 7, 9, 5, 9, 3, 8, 2, 6, 2, 4, 3, 3, 4, 3, 5, 4, 5, 5, 4, 6, 3, 6, -128, -128, 3, 4, 3, 5, 4, 5, 4, 4, 3, 4, -128, -128, 6, -12, 14, -12, -128, -128, 7, -12, 9, -11, -128, -128, 8, -12, 9, -10, -128, -128, 12, -12, 11, -10, -128, -128, 13, -12, 11, -11, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 18, -11, 7, 0, -128, -128, 10, -2, 17, 9, -128, -128, 11, -2, 18, 9, -128, -128, 11, -4, 19, 9, -128, -128, 2, -12, 10, -12, -128, -128, 15, -12, 21, -12, -128, -128, 2, 9, 10, 9, -128, -128, 14, 9, 21, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 17, -12, 18, -11, -128, -128, 20, -12, 18, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 17, 7, 15, 9, -128, -128, 17, 7, 20, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 10, -12, -128, -128, 2, 9, 17, 9, 17, 3, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 12, 9, 17, 8, -128, -128, 14, 9, 17, 7, -128, -128, 15, 9, 17, 6, -128, -128, 16, 9, 17, 3, 5, -12, 5, 8, -128, -128, 5, -12, 12, 9, -128, -128, 6, -12, 12, 6, -128, -128, 7, -12, 13, 6, -128, -128, 19, -12, 12, 9, -128, -128, 19, -12, 19, 9, -128, -128, 20, -11, 20, 8, -128, -128, 21, -12, 21, 9, -128, -128, 2, -12, 7, -12, -128, -128, 19, -12, 24, -12, -128, -128, 2, 9, 8, 9, -128, -128, 16, 9, 24, 9, -128, -128, 3, -12, 5, -11, -128, -128, 22, -12, 21, -10, -128, -128, 23, -12, 21, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 8, 7, 9, -128, -128, 19, 8, 17, 9, -128, -128, 19, 7, 18, 9, -128, -128, 21, 7, 22, 9, -128, -128, 21, 8, 23, 9, 5, -12, 5, 8, -128, -128, 5, -12, 19, 9, -128, -128, 6, -12, 18, 6, -128, -128, 7, -12, 19, 6, -128, -128, 19, -11, 19, 9, -128, -128, 2, -12, 7, -12, -128, -128, 16, -12, 22, -12, -128, -128, 2, 9, 8, 9, -128, -128, 3, -12, 5, -11, -128, -128, 17, -12, 19, -11, -128, -128, 21, -12, 19, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 8, 7, 9, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 0, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, 19, 0, 19, -3, 18, -7, 17, -9, 15, -11, 12, -12, 10, -12, -128, -128, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, -128, -128, 16, 6, 17, 4, 18, 1, 18, -4, 17, -7, 16, -9, -128, -128, 10, -12, 8, -11, 6, -8, 5, -4, 5, 1, 6, 5, 8, 8, 10, 9, -128, -128, 12, 9, 14, 8, 16, 5, 17, 1, 17, -4, 16, -8, 14, -11, 12, -12, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -5, 18, -3, 17, -2, 14, -1, 7, -1, -128, -128, 17, -10, 18, -8, 18, -5, 17, -3, -128, -128, 14, -12, 16, -11, 17, -9, 17, -4, 16, -2, 14, -1, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 0, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, 19, 0, 19, -3, 18, -7, 17, -9, 15, -11, 12, -12, 10, -12, -128, -128, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, -128, -128, 16, 6, 17, 4, 18, 1, 18, -4, 17, -7, 16, -9, -128, -128, 10, -12, 8, -11, 6, -8, 5, -4, 5, 1, 6, 5, 8, 8, 10, 9, -128, -128, 12, 9, 14, 8, 16, 5, 17, 1, 17, -4, 16, -8, 14, -11, 12, -12, -128, -128, 7, 6, 8, 4, 10, 3, 11, 3, 13, 4, 14, 6, 15, 12, 16, 14, 18, 14, 19, 12, 19, 10, -128, -128, 15, 10, 16, 12, 17, 13, 18, 13, -128, -128, 14, 6, 16, 11, 17, 12, 18, 12, 19, 11, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -6, 18, -4, 17, -3, 14, -2, 7, -2, -128, -128, 17, -10, 18, -8, 18, -6, 17, -4, -128, -128, 14, -12, 16, -11, 17, -9, 17, -5, 16, -3, 14, -2, -128, -128, 11, -2, 13, -1, 14, 1, 16, 7, 17, 9, 19, 9, 20, 7, 20, 5, -128, -128, 16, 5, 17, 7, 18, 8, 19, 8, -128, -128, 13, -1, 14, 0, 17, 6, 18, 7, 19, 7, 20, 6, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 16, -9, 17, -12, 17, -6, 16, -9, 14, -11, 11, -12, 8, -12, 5, -11, 3, -9, 3, -6, 4, -4, 7, -2, 13, 0, 15, 1, 16, 3, 16, 6, 15, 8, -128, -128, 4, -6, 5, -4, 7, -3, 13, -1, 15, 0, 16, 2, -128, -128, 5, -11, 4, -9, 4, -7, 5, -5, 7, -4, 13, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 9, 9, 6, 8, 4, 6, 3, 3, 3, 9, 4, 6, 2, -12, 2, -6, -128, -128, 9, -12, 9, 9, -128, -128, 10, -11, 10, 8, -128, -128, 11, -12, 11, 9, -128, -128, 18, -12, 18, -6, -128, -128, 2, -12, 18, -12, -128, -128, 6, 9, 14, 9, -128, -128, 3, -12, 2, -6, -128, -128, 4, -12, 2, -9, -128, -128, 5, -12, 2, -10, -128, -128, 7, -12, 2, -11, -128, -128, 13, -12, 18, -11, -128, -128, 15, -12, 18, -10, -128, -128, 16, -12, 18, -9, -128, -128, 17, -12, 18, -6, -128, -128, 9, 8, 7, 9, -128, -128, 9, 7, 8, 9, -128, -128, 11, 7, 12, 9, -128, -128, 11, 8, 13, 9, 5, -12, 5, 3, 6, 6, 8, 8, 11, 9, 13, 9, 16, 8, 18, 6, 19, 3, 19, -11, -128, -128, 6, -11, 6, 4, 7, 6, -128, -128, 7, -12, 7, 4, 8, 7, 9, 8, 11, 9, -128, -128, 2, -12, 10, -12, -128, -128, 16, -12, 22, -12, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 17, -12, 19, -11, -128, -128, 21, -12, 19, -11, 3, -12, 10, 9, -128, -128, 4, -12, 10, 6, 10, 9, -128, -128, 5, -12, 11, 6, -128, -128, 17, -11, 10, 9, -128, -128, 1, -12, 8, -12, -128, -128, 13, -12, 19, -12, -128, -128, 2, -12, 4, -10, -128, -128, 6, -12, 5, -10, -128, -128, 7, -12, 5, -11, -128, -128, 15, -12, 17, -11, -128, -128, 18, -12, 17, -11, 4, -12, 8, 9, -128, -128, 5, -12, 8, 4, 8, 9, -128, -128, 6, -12, 9, 4, -128, -128, 12, -12, 9, 4, 8, 9, -128, -128, 12, -12, 16, 9, -128, -128, 13, -12, 16, 4, 16, 9, -128, -128, 14, -12, 17, 4, -128, -128, 20, -11, 17, 4, 16, 9, -128, -128, 1, -12, 9, -12, -128, -128, 12, -12, 14, -12, -128, -128, 17, -12, 23, -12, -128, -128, 2, -12, 5, -11, -128, -128, 3, -12, 5, -10, -128, -128, 7, -12, 6, -10, -128, -128, 8, -12, 6, -11, -128, -128, 18, -12, 20, -11, -128, -128, 22, -12, 20, -11, 3, -12, 15, 9, -128, -128, 4, -12, 16, 9, -128, -128, 5, -12, 17, 9, -128, -128, 16, -11, 4, 8, -128, -128, 1, -12, 8, -12, -128, -128, 13, -12, 19, -12, -128, -128, 1, 9, 7, 9, -128, -128, 12, 9, 19, 9, -128, -128, 2, -12, 5, -10, -128, -128, 6, -12, 5, -10, -128, -128, 7, -12, 5, -11, -128, -128, 14, -12, 16, -11, -128, -128, 18, -12, 16, -11, -128, -128, 4, 8, 2, 9, -128, -128, 4, 8, 6, 9, -128, -128, 15, 8, 13, 9, -128, -128, 15, 7, 14, 9, -128, -128, 15, 7, 18, 9, 3, -12, 10, -1, 10, 9, -128, -128, 4, -12, 11, -1, 11, 8, -128, -128, 5, -12, 12, -1, 12, 9, -128, -128, 18, -11, 12, -1, -128, -128, 1, -12, 8, -12, -128, -128, 15, -12, 21, -12, -128, -128, 7, 9, 15, 9, -128, -128, 2, -12, 4, -11, -128, -128, 7, -12, 5, -11, -128, -128, 16, -12, 18, -11, -128, -128, 20, -12, 18, -11, -128, -128, 10, 8, 8, 9, -128, -128, 10, 7, 9, 9, -128, -128, 12, 7, 13, 9, -128, -128, 12, 8, 14, 9, 17, -12, 3, -12, 3, -6, -128, -128, 15, -12, 3, 9, -128, -128, 16, -12, 4, 9, -128, -128, 17, -12, 5, 9, -128, -128, 3, 9, 17, 9, 17, 3, -128, -128, 4, -12, 3, -6, -128, -128, 5, -12, 3, -9, -128, -128, 6, -12, 3, -10, -128, -128, 8, -12, 3, -11, -128, -128, 12, 9, 17, 8, -128, -128, 14, 9, 17, 7, -128, -128, 15, 9, 17, 6, -128, -128, 16, 9, 17, 3, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 3, 2, 11, -3, 19, 2, -128, -128, 3, 2, 11, -2, 19, 2, 0, 16, 20, 16, 4, -12, 9, -6, -128, -128, 4, -12, 3, -11, 9, -6, 5, -2, 5, -3, 6, -3, 6, -1, 4, -1, 4, -3, 5, -4, 7, -5, 11, -5, 13, -4, 14, -3, 15, -1, 15, 6, 16, 8, 17, 9, -128, -128, 13, -3, 14, -1, 14, 6, 15, 8, -128, -128, 11, -5, 12, -4, 13, -2, 13, 6, 14, 8, 17, 9, 18, 9, -128, -128, 13, 0, 12, 1, 7, 2, 4, 3, 3, 5, 3, 6, 4, 8, 7, 9, 10, 9, 12, 8, 13, 6, -128, -128, 5, 3, 4, 5, 4, 6, 5, 8, -128, -128, 12, 1, 8, 2, 6, 3, 5, 5, 5, 6, 6, 8, 7, 9, 5, -12, 5, 9, 6, 8, 8, 8, -128, -128, 6, -11, 6, 7, -128, -128, 2, -12, 7, -12, 7, 8, -128, -128, 7, -2, 8, -4, 10, -5, 12, -5, 15, -4, 17, -2, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 10, 9, 8, 8, 7, 6, -128, -128, 16, -2, 17, 0, 17, 4, 16, 6, -128, -128, 12, -5, 14, -4, 15, -3, 16, 0, 16, 4, 15, 7, 14, 8, 12, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, 15, -1, 15, -2, 14, -2, 14, 0, 16, 0, 16, -2, 14, -4, 12, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, 14, -12, 14, 9, 19, 9, -128, -128, 15, -11, 15, 8, -128, -128, 11, -12, 16, -12, 16, 9, -128, -128, 14, -2, 13, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 13, 8, 14, 6, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, -128, -128, 12, -12, 14, -11, -128, -128, 13, -12, 14, -10, -128, -128, 16, 7, 17, 9, -128, -128, 16, 8, 18, 9, 5, 1, 16, 1, 16, -1, 15, -3, 14, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 15, 0, 15, -1, 14, -3, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 14, 1, 14, -2, 13, -4, 11, -5, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, 12, -10, 12, -11, 11, -11, 11, -9, 13, -9, 13, -11, 12, -12, 9, -12, 7, -11, 6, -10, 5, -7, 5, 9, -128, -128, 7, -10, 6, -7, 6, 8, -128, -128, 9, -12, 8, -11, 7, -9, 7, 9, -128, -128, 2, -5, 11, -5, -128, -128, 2, 9, 10, 9, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 15, -4, 16, -3, 17, -4, 16, -5, 15, -5, 13, -4, 12, -3, -128, -128, 8, -5, 6, -4, 5, -3, 4, -1, 4, 1, 5, 3, 6, 4, 8, 5, 10, 5, 12, 4, 13, 3, 14, 1, 14, -1, 13, -3, 12, -4, 10, -5, 8, -5, -128, -128, 6, -3, 5, -1, 5, 1, 6, 3, -128, -128, 12, 3, 13, 1, 13, -1, 12, -3, -128, -128, 8, -5, 7, -4, 6, -2, 6, 2, 7, 4, 8, 5, -128, -128, 10, 5, 11, 4, 12, 2, 12, -2, 11, -4, 10, -5, -128, -128, 5, 3, 4, 4, 3, 6, 3, 7, 4, 9, 5, 10, 8, 11, 12, 11, 15, 12, 16, 13, -128, -128, 5, 9, 8, 10, 12, 10, 15, 11, -128, -128, 3, 7, 4, 8, 7, 9, 12, 9, 15, 10, 16, 12, 16, 13, 15, 15, 12, 16, 6, 16, 3, 15, 2, 13, 2, 12, 3, 10, 6, 9, -128, -128, 6, 16, 4, 15, 3, 13, 3, 12, 4, 10, 6, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 2, -12, 7, -12, 7, 9, -128, -128, 7, -1, 8, -3, 9, -4, 11, -5, 14, -5, 16, -4, 17, -3, 18, 0, 18, 9, -128, -128, 16, -3, 17, 0, 17, 8, -128, -128, 14, -5, 15, -4, 16, -1, 16, 9, -128, -128, 2, 9, 10, 9, -128, -128, 13, 9, 21, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 16, 8, 14, 9, -128, -128, 16, 7, 15, 9, -128, -128, 18, 7, 19, 9, -128, -128, 18, 8, 20, 9, 5, -12, 5, -10, 7, -10, 7, -12, 5, -12, -128, -128, 6, -12, 6, -10, -128, -128, 5, -11, 7, -11, -128, -128, 5, -5, 5, 9, -128, -128, 6, -4, 6, 8, -128, -128, 2, -5, 7, -5, 7, 9, -128, -128, 2, 9, 10, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 7, -12, 7, -10, 9, -10, 9, -12, 7, -12, -128, -128, 8, -12, 8, -10, -128, -128, 7, -11, 9, -11, -128, -128, 7, -5, 7, 12, 6, 15, 5, 16, -128, -128, 8, -4, 8, 11, 7, 14, -128, -128, 4, -5, 9, -5, 9, 11, 8, 14, 7, 15, 5, 16, 2, 16, 1, 15, 1, 13, 3, 13, 3, 15, 2, 15, 2, 14, -128, -128, 5, -5, 7, -4, -128, -128, 6, -5, 7, -3, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 2, -12, 7, -12, 7, 9, -128, -128, 16, -4, 7, 5, -128, -128, 11, 1, 18, 9, -128, -128, 11, 2, 17, 9, -128, -128, 10, 2, 16, 9, -128, -128, 13, -5, 20, -5, -128, -128, 2, 9, 10, 9, -128, -128, 13, 9, 20, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 14, -5, 16, -4, -128, -128, 19, -5, 16, -4, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 16, 7, 14, 9, -128, -128, 15, 7, 19, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 2, -12, 7, -12, 7, 9, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 5, -5, 5, 9, -128, -128, 6, -4, 6, 8, -128, -128, 2, -5, 7, -5, 7, 9, -128, -128, 7, -1, 8, -3, 9, -4, 11, -5, 14, -5, 16, -4, 17, -3, 18, 0, 18, 9, -128, -128, 16, -3, 17, 0, 17, 8, -128, -128, 14, -5, 15, -4, 16, -1, 16, 9, -128, -128, 18, -1, 19, -3, 20, -4, 22, -5, 25, -5, 27, -4, 28, -3, 29, 0, 29, 9, -128, -128, 27, -3, 28, 0, 28, 8, -128, -128, 25, -5, 26, -4, 27, -1, 27, 9, -128, -128, 2, 9, 10, 9, -128, -128, 13, 9, 21, 9, -128, -128, 24, 9, 32, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 16, 8, 14, 9, -128, -128, 16, 7, 15, 9, -128, -128, 18, 7, 19, 9, -128, -128, 18, 8, 20, 9, -128, -128, 27, 8, 25, 9, -128, -128, 27, 7, 26, 9, -128, -128, 29, 7, 30, 9, -128, -128, 29, 8, 31, 9, 5, -5, 5, 9, -128, -128, 6, -4, 6, 8, -128, -128, 2, -5, 7, -5, 7, 9, -128, -128, 7, -1, 8, -3, 9, -4, 11, -5, 14, -5, 16, -4, 17, -3, 18, 0, 18, 9, -128, -128, 16, -3, 17, 0, 17, 8, -128, -128, 14, -5, 15, -4, 16, -1, 16, 9, -128, -128, 2, 9, 10, 9, -128, -128, 13, 9, 21, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 16, 8, 14, 9, -128, -128, 16, 7, 15, 9, -128, -128, 18, 7, 19, 9, -128, -128, 18, 8, 20, 9, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 1, 16, -2, 14, -4, 11, -5, 9, -5, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 15, 6, 16, 4, 16, 0, 15, -2, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 14, 7, 15, 4, 15, 0, 14, -3, 13, -4, 11, -5, 5, -5, 5, 16, -128, -128, 6, -4, 6, 15, -128, -128, 2, -5, 7, -5, 7, 16, -128, -128, 7, -2, 8, -4, 10, -5, 12, -5, 15, -4, 17, -2, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 10, 9, 8, 8, 7, 6, -128, -128, 16, -2, 17, 0, 17, 4, 16, 6, -128, -128, 12, -5, 14, -4, 15, -3, 16, 0, 16, 4, 15, 7, 14, 8, 12, 9, -128, -128, 2, 16, 10, 16, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 15, 3, 16, -128, -128, 5, 14, 4, 16, -128, -128, 7, 14, 8, 16, -128, -128, 7, 15, 9, 16, 14, -4, 14, 16, -128, -128, 15, -3, 15, 15, -128, -128, 13, -4, 15, -4, 16, -5, 16, 16, -128, -128, 14, -2, 13, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 13, 8, 14, 6, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, -128, -128, 11, 16, 19, 16, -128, -128, 14, 15, 12, 16, -128, -128, 14, 14, 13, 16, -128, -128, 16, 14, 17, 16, -128, -128, 16, 15, 18, 16, 5, -5, 5, 9, -128, -128, 6, -4, 6, 8, -128, -128, 2, -5, 7, -5, 7, 9, -128, -128, 14, -3, 14, -4, 13, -4, 13, -2, 15, -2, 15, -4, 14, -5, 12, -5, 10, -4, 8, -2, 7, 1, -128, -128, 2, 9, 10, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 13, -3, 14, -5, 14, -1, 13, -3, 12, -4, 10, -5, 6, -5, 4, -4, 3, -3, 3, -1, 4, 1, 6, 2, 11, 3, 13, 4, 14, 7, -128, -128, 4, -4, 3, -1, -128, -128, 4, 0, 6, 1, 11, 2, 13, 3, -128, -128, 14, 4, 13, 8, -128, -128, 3, -3, 4, -1, 6, 0, 11, 1, 13, 2, 14, 4, 14, 7, 13, 8, 11, 9, 7, 9, 5, 8, 4, 7, 3, 5, 3, 9, 4, 7, 5, -10, 5, 4, 6, 7, 7, 8, 9, 9, 11, 9, 13, 8, 14, 6, -128, -128, 6, -10, 6, 5, 7, 7, -128, -128, 5, -10, 7, -12, 7, 5, 8, 8, 9, 9, -128, -128, 2, -5, 11, -5, 5, -5, 5, 4, 6, 7, 7, 8, 9, 9, 12, 9, 14, 8, 15, 7, 16, 5, -128, -128, 6, -4, 6, 5, 7, 7, -128, -128, 2, -5, 7, -5, 7, 5, 8, 8, 9, 9, -128, -128, 16, -5, 16, 9, 21, 9, -128, -128, 17, -4, 17, 8, -128, -128, 13, -5, 18, -5, 18, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 18, 7, 19, 9, -128, -128, 18, 8, 20, 9, 3, -5, 9, 9, -128, -128, 4, -5, 9, 7, -128, -128, 5, -5, 10, 7, -128, -128, 15, -4, 10, 7, 9, 9, -128, -128, 1, -5, 8, -5, -128, -128, 11, -5, 17, -5, -128, -128, 2, -5, 5, -3, -128, -128, 7, -5, 5, -4, -128, -128, 13, -5, 15, -4, -128, -128, 16, -5, 15, -4, 4, -5, 8, 9, -128, -128, 5, -5, 8, 6, -128, -128, 6, -5, 9, 6, -128, -128, 12, -5, 9, 6, 8, 9, -128, -128, 12, -5, 16, 9, -128, -128, 13, -5, 16, 6, -128, -128, 12, -5, 14, -5, 17, 6, -128, -128, 20, -4, 17, 6, 16, 9, -128, -128, 1, -5, 9, -5, -128, -128, 17, -5, 23, -5, -128, -128, 2, -5, 5, -4, -128, -128, 8, -5, 6, -4, -128, -128, 18, -5, 20, -4, -128, -128, 22, -5, 20, -4, 4, -5, 14, 9, -128, -128, 5, -5, 15, 9, -128, -128, 6, -5, 16, 9, -128, -128, 15, -4, 5, 8, -128, -128, 2, -5, 9, -5, -128, -128, 12, -5, 18, -5, -128, -128, 2, 9, 8, 9, -128, -128, 11, 9, 18, 9, -128, -128, 3, -5, 5, -4, -128, -128, 8, -5, 6, -4, -128, -128, 13, -5, 15, -4, -128, -128, 17, -5, 15, -4, -128, -128, 5, 8, 3, 9, -128, -128, 5, 8, 7, 9, -128, -128, 14, 8, 12, 9, -128, -128, 15, 8, 17, 9, 4, -5, 10, 9, -128, -128, 5, -5, 10, 7, -128, -128, 6, -5, 11, 7, -128, -128, 16, -4, 11, 7, 8, 13, 6, 15, 4, 16, 2, 16, 1, 15, 1, 13, 3, 13, 3, 15, 2, 15, 2, 14, -128, -128, 2, -5, 9, -5, -128, -128, 12, -5, 18, -5, -128, -128, 3, -5, 6, -3, -128, -128, 8, -5, 6, -4, -128, -128, 14, -5, 16, -4, -128, -128, 17, -5, 16, -4, 13, -5, 3, 9, -128, -128, 14, -5, 4, 9, -128, -128, 15, -5, 5, 9, -128, -128, 15, -5, 3, -5, 3, -1, -128, -128, 3, 9, 15, 9, 15, 5, -128, -128, 4, -5, 3, -1, -128, -128, 5, -5, 3, -2, -128, -128, 6, -5, 3, -3, -128, -128, 8, -5, 3, -4, -128, -128, 10, 9, 15, 8, -128, -128, 12, 9, 15, 7, -128, -128, 13, 9, 15, 6, -128, -128, 14, 9, 15, 5, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 }; -const hershey_font_t timesrb { +const font_t timesrb { .chars = { {.width=16, .vertex_count=0, .vertices=×rb_vertices[0]}, {.width=11, .vertex_count=33, .vertices=×rb_vertices[0]}, @@ -831,3 +833,5 @@ const hershey_font_t timesrb { {.width=24, .vertex_count=23, .vertices=×rb_vertices[7880]} } }; + +} \ No newline at end of file diff --git a/micropython/modules/badger2040-micropython.cmake b/micropython/modules/badger2040-micropython.cmake index 25d61df8..fddd7e01 100644 --- a/micropython/modules/badger2040-micropython.cmake +++ b/micropython/modules/badger2040-micropython.cmake @@ -29,6 +29,7 @@ include(breakout_bmp280/micropython) include(breakout_icp10125/micropython) include(breakout_scd41/micropython) +include(hershey_fonts/micropython) include(badger2040/micropython) include(micropython/examples/badger2040/micropython-builtins) include(plasma/micropython) diff --git a/micropython/modules/hershey_fonts/micropython.cmake b/micropython/modules/hershey_fonts/micropython.cmake new file mode 100644 index 00000000..14ae6c61 --- /dev/null +++ b/micropython/modules/hershey_fonts/micropython.cmake @@ -0,0 +1,15 @@ +set(MOD_NAME hershey_fonts) +string(TOUPPER ${MOD_NAME} MOD_NAME_UPPER) +add_library(usermod_${MOD_NAME} INTERFACE) + +target_sources(usermod_${MOD_NAME} INTERFACE + ${CMAKE_CURRENT_LIST_DIR}/../../../libraries/hershey_fonts/hershey_fonts.cpp + ${CMAKE_CURRENT_LIST_DIR}/../../../libraries/hershey_fonts/hershey_fonts_data.cpp +) + +target_include_directories(usermod_${MOD_NAME} INTERFACE + ${CMAKE_CURRENT_LIST_DIR} + ${CMAKE_CURRENT_LIST_DIR}/../../../libraries/hershey_fonts +) + +target_link_libraries(usermod INTERFACE usermod_${MOD_NAME}) \ No newline at end of file From 3b8dcecd8e6fa00caef8c5f7b3481374a3cf09c3 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Tue, 29 Mar 2022 15:13:14 +0100 Subject: [PATCH 2/5] Pico Graphics: Move bitmap fonts into generic library. * Add bitmap font support into Badger 2040 --- libraries/CMakeLists.txt | 1 + libraries/badger2040/badger2040.cmake | 2 +- libraries/badger2040/badger2040.cpp | 50 ++++++++++++++--- libraries/badger2040/badger2040.hpp | 4 ++ libraries/bitmap_fonts/CMakeLists.txt | 1 + libraries/bitmap_fonts/bitmap_fonts.cmake | 6 ++ libraries/bitmap_fonts/bitmap_fonts.cpp | 54 ++++++++++++++++++ libraries/bitmap_fonts/bitmap_fonts.hpp | 19 +++++++ .../font6_data.hpp | 4 +- .../font8_data.hpp | 4 +- libraries/pico_graphics/font.hpp | 12 ---- libraries/pico_graphics/pico_graphics.cmake | 1 + libraries/pico_graphics/pico_graphics.cpp | 56 +++---------------- libraries/pico_graphics/pico_graphics.hpp | 6 +- .../modules/badger2040-micropython.cmake | 2 + .../modules/bitmap_fonts/micropython.cmake | 14 +++++ micropython/modules/micropython.cmake | 2 + 17 files changed, 160 insertions(+), 78 deletions(-) create mode 100644 libraries/bitmap_fonts/CMakeLists.txt create mode 100644 libraries/bitmap_fonts/bitmap_fonts.cmake create mode 100644 libraries/bitmap_fonts/bitmap_fonts.cpp create mode 100644 libraries/bitmap_fonts/bitmap_fonts.hpp rename libraries/{pico_graphics => bitmap_fonts}/font6_data.hpp (98%) rename libraries/{pico_graphics => bitmap_fonts}/font8_data.hpp (98%) delete mode 100644 libraries/pico_graphics/font.hpp create mode 100644 micropython/modules/bitmap_fonts/micropython.cmake diff --git a/libraries/CMakeLists.txt b/libraries/CMakeLists.txt index 3e58d5ff..ad9be7ab 100644 --- a/libraries/CMakeLists.txt +++ b/libraries/CMakeLists.txt @@ -1,4 +1,5 @@ add_subdirectory(hershey_fonts) +add_subdirectory(bitmap_fonts) add_subdirectory(breakout_dotmatrix) add_subdirectory(breakout_encoder) add_subdirectory(breakout_ioexpander) diff --git a/libraries/badger2040/badger2040.cmake b/libraries/badger2040/badger2040.cmake index e9aad09e..fe789b94 100644 --- a/libraries/badger2040/badger2040.cmake +++ b/libraries/badger2040/badger2040.cmake @@ -8,4 +8,4 @@ target_sources(${LIB_NAME} INTERFACE target_include_directories(${LIB_NAME} INTERFACE ${CMAKE_CURRENT_LIST_DIR}) # Pull in pico libraries that we need -target_link_libraries(${LIB_NAME} INTERFACE hershey_fonts pico_stdlib hardware_pwm uc8151) +target_link_libraries(${LIB_NAME} INTERFACE bitmap_fonts hershey_fonts pico_stdlib hardware_pwm uc8151) diff --git a/libraries/badger2040/badger2040.cpp b/libraries/badger2040/badger2040.cpp index 495cf517..128c6d02 100644 --- a/libraries/badger2040/badger2040.cpp +++ b/libraries/badger2040/badger2040.cpp @@ -327,29 +327,61 @@ namespace pimoroni { } int32_t Badger2040::glyph(unsigned char c, int32_t x, int32_t y, float s, float a) { - return hershey::glyph(_font, [this](int32_t x1, int32_t y1, int32_t x2, int32_t y2) { - line(x1, y1, x2, y2); - }, c, x, y, s, a); + if (_bitmap_font) { + bitmap::character(_bitmap_font, [this](int32_t x, int32_t y, int32_t w, int32_t h) { + for(auto px = 0; px < w; px++) { + for(auto py = 0; py < h; py++) { + pixel(x + px, y + py); + } + } + }, c, x, y, int(s)); + return 0; + } else { + return hershey::glyph(_font, [this](int32_t x1, int32_t y1, int32_t x2, int32_t y2) { + line(x1, y1, x2, y2); + }, c, x, y, s, a); + } } void Badger2040::text(std::string message, int32_t x, int32_t y, float s, float a) { - hershey::text(_font, [this](int32_t x1, int32_t y1, int32_t x2, int32_t y2) { - line(x1, y1, x2, y2); - }, message, x, y, s, a); + if (_bitmap_font) { + bitmap::text(_bitmap_font, [this](int32_t x, int32_t y, int32_t w, int32_t h) { + for(auto px = 0; px < w; px++) { + for(auto py = 0; py < h; py++) { + pixel(x + px, y + py); + } + } + }, message, x, y, 296 - x, int(s)); + } else { + hershey::text(_font, [this](int32_t x1, int32_t y1, int32_t x2, int32_t y2) { + line(x1, y1, x2, y2); + }, message, x, y, s, a); + } } int32_t Badger2040::measure_text(std::string message, float s) { + if (_bitmap_font) return 0; return hershey::measure_text(_font, message, s); } int32_t Badger2040::measure_glyph(unsigned char c, float s) { + if (_bitmap_font) return 0; return hershey::measure_glyph(_font, c, s); } void Badger2040::font(std::string name) { - // check that font exists and assign it - if(hershey::fonts.find(name) != hershey::fonts.end()) { - _font = hershey::fonts[name]; + if (name == "bitmap6") { + _bitmap_font = &font6; + _font = nullptr; + } else if (name == "bitmap8") { + _bitmap_font = &font8; + _font = nullptr; + } else { + // check that font exists and assign it + if(hershey::fonts.find(name) != hershey::fonts.end()) { + _bitmap_font = nullptr; + _font = hershey::fonts[name]; + } } } diff --git a/libraries/badger2040/badger2040.hpp b/libraries/badger2040/badger2040.hpp index 3298e21e..0ee75d19 100644 --- a/libraries/badger2040/badger2040.hpp +++ b/libraries/badger2040/badger2040.hpp @@ -5,6 +5,9 @@ #include "drivers/uc8151/uc8151.hpp" #include "libraries/hershey_fonts/hershey_fonts.hpp" +#include "libraries/bitmap_fonts/bitmap_fonts.hpp" +#include "libraries/bitmap_fonts/font6_data.hpp" +#include "libraries/bitmap_fonts/font8_data.hpp" namespace pimoroni { @@ -12,6 +15,7 @@ namespace pimoroni { protected: UC8151 uc8151; const hershey::font_t *_font = &hershey::futural; + const bitmap::font_t *_bitmap_font = nullptr; uint8_t _pen = 0; uint8_t _thickness = 1; uint32_t _button_states = 0; diff --git a/libraries/bitmap_fonts/CMakeLists.txt b/libraries/bitmap_fonts/CMakeLists.txt new file mode 100644 index 00000000..858c25e7 --- /dev/null +++ b/libraries/bitmap_fonts/CMakeLists.txt @@ -0,0 +1 @@ +include(bitmap_fonts.cmake) diff --git a/libraries/bitmap_fonts/bitmap_fonts.cmake b/libraries/bitmap_fonts/bitmap_fonts.cmake new file mode 100644 index 00000000..438bd99f --- /dev/null +++ b/libraries/bitmap_fonts/bitmap_fonts.cmake @@ -0,0 +1,6 @@ +add_library(bitmap_fonts + ${CMAKE_CURRENT_LIST_DIR}/bitmap_fonts.cpp +) + +target_include_directories(bitmap_fonts INTERFACE ${CMAKE_CURRENT_LIST_DIR}) + diff --git a/libraries/bitmap_fonts/bitmap_fonts.cpp b/libraries/bitmap_fonts/bitmap_fonts.cpp new file mode 100644 index 00000000..5037bb89 --- /dev/null +++ b/libraries/bitmap_fonts/bitmap_fonts.cpp @@ -0,0 +1,54 @@ +#include "bitmap_fonts.hpp" + +namespace bitmap { + void character(const font_t *font, rect_func rectangle, const char c, const int32_t x, const int32_t y, const uint8_t scale) { + uint8_t char_index = c - 32; + + const uint8_t *d = &font->data[char_index * font->max_width]; + for(uint8_t cx = 0; cx < font->widths[char_index]; cx++) { + for(uint8_t cy = 0; cy < font->height; cy++) { + if((1U << cy) & *d) { + rectangle(x + (cx * scale), y + (cy * scale), scale, scale); + } + } + + d++; + } + } + + void text(const font_t *font, rect_func rectangle, const std::string &t, const int32_t x, const int32_t y, const int32_t wrap, const uint8_t scale) { + uint32_t co = 0, lo = 0; // character and line (if wrapping) offset + + size_t i = 0; + while(i < t.length()) { + // find length of current word + size_t next_space = t.find(' ', i + 1); + + if(next_space == std::string::npos) { + next_space = t.length(); + } + + uint16_t word_width = 0; + for(size_t j = i; j < next_space; j++) { + word_width += font->widths[t[j] - 32] * scale; + } + + // if this word would exceed the wrap limit then + // move to the next line + if(co != 0 && co + word_width > (uint32_t)wrap) { + co = 0; + lo += (font->height + 1) * scale; + } + + // draw word + for(size_t j = i; j < next_space; j++) { + character(font, rectangle, t[j], x + co, y + lo, scale); + co += font->widths[t[j] - 32] * scale; + } + + // move character offset to end of word and add a space + co += font->widths[0] * scale; + i = next_space + 1; + } + } +} \ No newline at end of file diff --git a/libraries/bitmap_fonts/bitmap_fonts.hpp b/libraries/bitmap_fonts/bitmap_fonts.hpp new file mode 100644 index 00000000..2dbecc8f --- /dev/null +++ b/libraries/bitmap_fonts/bitmap_fonts.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include +#include +#include + +namespace bitmap { + struct font_t { + const uint8_t height; + const uint8_t max_width; + const uint8_t widths[96]; + const uint8_t data[]; + }; + + typedef std::function rect_func; + + void character(const font_t *font, rect_func rectangle, const char c, const int32_t x, const int32_t y, const uint8_t scale = 2); + void text(const font_t *font, rect_func rectangle, const std::string &t, const int32_t x, const int32_t y, const int32_t wrap, const uint8_t scale = 2); +} \ No newline at end of file diff --git a/libraries/pico_graphics/font6_data.hpp b/libraries/bitmap_fonts/font6_data.hpp similarity index 98% rename from libraries/pico_graphics/font6_data.hpp rename to libraries/bitmap_fonts/font6_data.hpp index 574d729d..7b199476 100644 --- a/libraries/pico_graphics/font6_data.hpp +++ b/libraries/bitmap_fonts/font6_data.hpp @@ -1,8 +1,8 @@ #pragma once -#include "font.hpp" +#include "bitmap_fonts.hpp" -const pimoroni::Font font6 { +const bitmap::font_t font6 { .height = 6, .max_width = 6, .widths = { diff --git a/libraries/pico_graphics/font8_data.hpp b/libraries/bitmap_fonts/font8_data.hpp similarity index 98% rename from libraries/pico_graphics/font8_data.hpp rename to libraries/bitmap_fonts/font8_data.hpp index 59cbd5a9..ad9601dc 100644 --- a/libraries/pico_graphics/font8_data.hpp +++ b/libraries/bitmap_fonts/font8_data.hpp @@ -1,8 +1,8 @@ #pragma once -#include "font.hpp" +#include "bitmap_fonts.hpp" -const pimoroni::Font font8 { +const bitmap::font_t font8 { .height = 8, .max_width = 6, .widths = { diff --git a/libraries/pico_graphics/font.hpp b/libraries/pico_graphics/font.hpp deleted file mode 100644 index 876f9eff..00000000 --- a/libraries/pico_graphics/font.hpp +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -#include - -namespace pimoroni { - struct Font { - const uint8_t height; - const uint8_t max_width; - const uint8_t widths[96]; - const uint8_t data[]; - }; -} \ No newline at end of file diff --git a/libraries/pico_graphics/pico_graphics.cmake b/libraries/pico_graphics/pico_graphics.cmake index 164185c1..a77cd83f 100644 --- a/libraries/pico_graphics/pico_graphics.cmake +++ b/libraries/pico_graphics/pico_graphics.cmake @@ -5,3 +5,4 @@ add_library(pico_graphics target_include_directories(pico_graphics INTERFACE ${CMAKE_CURRENT_LIST_DIR}) +target_link_libraries(pico_graphics bitmap_fonts) \ No newline at end of file diff --git a/libraries/pico_graphics/pico_graphics.cpp b/libraries/pico_graphics/pico_graphics.cpp index 325bad0e..17e09937 100644 --- a/libraries/pico_graphics/pico_graphics.cpp +++ b/libraries/pico_graphics/pico_graphics.cpp @@ -6,7 +6,7 @@ namespace pimoroni { set_font(&font6); }; - void PicoGraphics::set_font(const Font *font){ + void PicoGraphics::set_font(const bitmap::font_t *font){ this->font = font; } @@ -110,57 +110,15 @@ namespace pimoroni { } void PicoGraphics::character(const char c, const Point &p, uint8_t scale) { - uint8_t char_index = c - 32; - Rect char_bounds(p.x, p.y, font->widths[char_index] * scale, font->height * scale); - - if(!clip.intersects(char_bounds)) return; - - const uint8_t *d = &font->data[char_index * font->max_width]; - for(uint8_t cx = 0; cx < font->widths[char_index]; cx++) { - for(uint8_t cy = 0; cy < font->height; cy++) { - if((1U << cy) & *d) { - rectangle(Rect(p.x + (cx * scale), p.y + (cy * scale), scale, scale)); - } - } - - d++; - } + bitmap::character(font, [this](int32_t x, int32_t y, int32_t w, int32_t h){ + rectangle(Rect(x, y, w, h)); + }, c, p.x, p.y, scale); } void PicoGraphics::text(const std::string &t, const Point &p, int32_t wrap, uint8_t scale) { - uint32_t co = 0, lo = 0; // character and line (if wrapping) offset - - size_t i = 0; - while(i < t.length()) { - // find length of current word - size_t next_space = t.find(' ', i + 1); - - if(next_space == std::string::npos) { - next_space = t.length(); - } - - uint16_t word_width = 0; - for(size_t j = i; j < next_space; j++) { - word_width += font->widths[t[j] - 32] * scale; - } - - // if this word would exceed the wrap limit then - // move to the next line - if(co != 0 && co + word_width > (uint32_t)wrap) { - co = 0; - lo += (font->height + 1) * scale; - } - - // draw word - for(size_t j = i; j < next_space; j++) { - character(t[j], Point(p.x + co, p.y + lo), scale); - co += font->widths[t[j] - 32] * scale; - } - - // move character offset to end of word and add a space - co += font->widths[0] * scale; - i = next_space + 1; - } + bitmap::text(font, [this](int32_t x, int32_t y, int32_t w, int32_t h){ + rectangle(Rect(x, y, w, h)); + }, t, p.x, p.y, wrap, scale); } int32_t orient2d(Point p1, Point p2, Point p3) { diff --git a/libraries/pico_graphics/pico_graphics.hpp b/libraries/pico_graphics/pico_graphics.hpp index b56c15c8..4992e8dc 100644 --- a/libraries/pico_graphics/pico_graphics.hpp +++ b/libraries/pico_graphics/pico_graphics.hpp @@ -4,7 +4,7 @@ #include #include #include -#include "font6_data.hpp" +#include "libraries/bitmap_fonts/font6_data.hpp" // a tiny little graphics library for our Pico products // supports only 16-bit (565) RGB framebuffers @@ -52,11 +52,11 @@ namespace pimoroni { Pen pen; - const Font *font; + const bitmap::font_t *font; public: PicoGraphics(uint16_t width, uint16_t height, uint16_t *frame_buffer); - void set_font(const Font *font); + void set_font(const bitmap::font_t *font); void set_pen(uint8_t r, uint8_t g, uint8_t b); void set_pen(Pen p); diff --git a/micropython/modules/badger2040-micropython.cmake b/micropython/modules/badger2040-micropython.cmake index fddd7e01..3849e2ea 100644 --- a/micropython/modules/badger2040-micropython.cmake +++ b/micropython/modules/badger2040-micropython.cmake @@ -30,6 +30,8 @@ include(breakout_icp10125/micropython) include(breakout_scd41/micropython) include(hershey_fonts/micropython) +include(bitmap_fonts/micropython) + include(badger2040/micropython) include(micropython/examples/badger2040/micropython-builtins) include(plasma/micropython) diff --git a/micropython/modules/bitmap_fonts/micropython.cmake b/micropython/modules/bitmap_fonts/micropython.cmake new file mode 100644 index 00000000..dc1bbb27 --- /dev/null +++ b/micropython/modules/bitmap_fonts/micropython.cmake @@ -0,0 +1,14 @@ +set(MOD_NAME bitmap_fonts) +string(TOUPPER ${MOD_NAME} MOD_NAME_UPPER) +add_library(usermod_${MOD_NAME} INTERFACE) + +target_sources(usermod_${MOD_NAME} INTERFACE + ${CMAKE_CURRENT_LIST_DIR}/../../../libraries/bitmap_fonts/bitmap_fonts.cpp +) + +target_include_directories(usermod_${MOD_NAME} INTERFACE + ${CMAKE_CURRENT_LIST_DIR} + ${CMAKE_CURRENT_LIST_DIR}/../../../libraries/bitmap_fonts +) + +target_link_libraries(usermod INTERFACE usermod_${MOD_NAME}) \ No newline at end of file diff --git a/micropython/modules/micropython.cmake b/micropython/modules/micropython.cmake index 930d15fe..8aa983c2 100644 --- a/micropython/modules/micropython.cmake +++ b/micropython/modules/micropython.cmake @@ -38,6 +38,8 @@ include(pico_display_2/micropython) include(pico_explorer/micropython) include(pico_wireless/micropython) +include(bitmap_fonts/micropython) + include(plasma/micropython) include(hub75/micropython) include(servo/micropython) From 90ea26249679f94a22d95fe413ed3a4d7b0120d8 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Tue, 29 Mar 2022 17:34:42 +0100 Subject: [PATCH 3/5] Bitmap Fonts: Add measure functions. --- libraries/bitmap_fonts/bitmap_fonts.cpp | 13 +++++++++++++ libraries/bitmap_fonts/bitmap_fonts.hpp | 3 +++ 2 files changed, 16 insertions(+) diff --git a/libraries/bitmap_fonts/bitmap_fonts.cpp b/libraries/bitmap_fonts/bitmap_fonts.cpp index 5037bb89..72c71fd6 100644 --- a/libraries/bitmap_fonts/bitmap_fonts.cpp +++ b/libraries/bitmap_fonts/bitmap_fonts.cpp @@ -1,6 +1,19 @@ #include "bitmap_fonts.hpp" namespace bitmap { + int32_t measure_character(const font_t *font, const char c, const uint8_t scale) { + uint8_t char_index = c - 32; + return font->widths[char_index] * scale; + } + + int32_t measure_text(const font_t *font, const std::string &t, const uint8_t scale) { + int32_t text_width = 0; + for(auto c : t) { + text_width += measure_character(font, c, scale); + } + return text_width; + } + void character(const font_t *font, rect_func rectangle, const char c, const int32_t x, const int32_t y, const uint8_t scale) { uint8_t char_index = c - 32; diff --git a/libraries/bitmap_fonts/bitmap_fonts.hpp b/libraries/bitmap_fonts/bitmap_fonts.hpp index 2dbecc8f..432cafd7 100644 --- a/libraries/bitmap_fonts/bitmap_fonts.hpp +++ b/libraries/bitmap_fonts/bitmap_fonts.hpp @@ -14,6 +14,9 @@ namespace bitmap { typedef std::function rect_func; + int32_t measure_character(const font_t *font, const char c, const uint8_t scale); + int32_t measure_text(const font_t *font, const std::string &t, const uint8_t scale); + void character(const font_t *font, rect_func rectangle, const char c, const int32_t x, const int32_t y, const uint8_t scale = 2); void text(const font_t *font, rect_func rectangle, const std::string &t, const int32_t x, const int32_t y, const int32_t wrap, const uint8_t scale = 2); } \ No newline at end of file From 40d3c9e0be26314e78f0ad1e16eaa016951f407d Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Tue, 29 Mar 2022 17:35:40 +0100 Subject: [PATCH 4/5] Badger2040: Use bitmap measure functions. --- libraries/badger2040/badger2040.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/badger2040/badger2040.cpp b/libraries/badger2040/badger2040.cpp index 128c6d02..31f99d8a 100644 --- a/libraries/badger2040/badger2040.cpp +++ b/libraries/badger2040/badger2040.cpp @@ -360,12 +360,12 @@ namespace pimoroni { } int32_t Badger2040::measure_text(std::string message, float s) { - if (_bitmap_font) return 0; + if (_bitmap_font) return bitmap::measure_text(_bitmap_font, message, s); return hershey::measure_text(_font, message, s); } int32_t Badger2040::measure_glyph(unsigned char c, float s) { - if (_bitmap_font) return 0; + if (_bitmap_font) return bitmap::measure_character(_bitmap_font, c, s); return hershey::measure_glyph(_font, c, s); } From 348b90225f7f41b414f66ba99ed7bfbbf0bf38b2 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Wed, 30 Mar 2022 14:32:50 +0100 Subject: [PATCH 5/5] Badger 2040: Avoid sub 1 scale vanishing pixel font text. --- libraries/badger2040/badger2040.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/badger2040/badger2040.cpp b/libraries/badger2040/badger2040.cpp index 31f99d8a..ba51a2d9 100644 --- a/libraries/badger2040/badger2040.cpp +++ b/libraries/badger2040/badger2040.cpp @@ -334,7 +334,7 @@ namespace pimoroni { pixel(x + px, y + py); } } - }, c, x, y, int(s)); + }, c, x, y, std::max(1.0f, s)); return 0; } else { return hershey::glyph(_font, [this](int32_t x1, int32_t y1, int32_t x2, int32_t y2) { @@ -351,7 +351,7 @@ namespace pimoroni { pixel(x + px, y + py); } } - }, message, x, y, 296 - x, int(s)); + }, message, x, y, 296 - x, std::max(1.0f, s)); } else { hershey::text(_font, [this](int32_t x1, int32_t y1, int32_t x2, int32_t y2) { line(x1, y1, x2, y2); @@ -360,12 +360,12 @@ namespace pimoroni { } int32_t Badger2040::measure_text(std::string message, float s) { - if (_bitmap_font) return bitmap::measure_text(_bitmap_font, message, s); + if (_bitmap_font) return bitmap::measure_text(_bitmap_font, message, std::max(1.0f, s)); return hershey::measure_text(_font, message, s); } int32_t Badger2040::measure_glyph(unsigned char c, float s) { - if (_bitmap_font) return bitmap::measure_character(_bitmap_font, c, s); + if (_bitmap_font) return bitmap::measure_character(_bitmap_font, c, std::max(1.0f, s)); return hershey::measure_glyph(_font, c, s); }