oled displey
Revision 0:cd4a2add97a0, committed 2019-07-23
- Comitter:
- docent
- Date:
- Tue Jul 23 12:32:26 2019 +0000
- Commit message:
- for my students
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/TroykaOLED.cpp Tue Jul 23 12:32:26 2019 +0000
@@ -0,0 +1,836 @@
+/****************************************************************************/
+// Function: Cpp file for TroykaOLED
+// Hardware: SSD1306
+// Arduino IDE: Arduino-1.8.5
+// Author: Igor Dementiev
+// Date: NOV 10,2018
+// Version: v1.0.0
+// by www.amperka.ru
+/****************************************************************************/
+
+#include "TroykaOLED.h"
+#define pgm_read_byte * //my
+TroykaOLED::TroykaOLED (I2C *i2c,uint8_t i2cAddress, uint8_t width, uint8_t height):
+ _wire(i2c)
+{
+ _i2cAddress = i2cAddress;
+ _width = width;
+ _height = height;
+ _bufferDisplay = new uint8_t[_width * _height / 8];
+ _stateInvert = false;
+ _stateAutoUpdate = true;
+ _stateImageBG = true;
+ _codingName = TXT_UTF8;
+}
+
+void TroykaOLED::begin() {
+ _font.width=0;
+ _font.height=0;
+ _font.firstSymbol=0;
+ _font.sumSymbol=0;
+ _font.invert=false;
+ _font.background= true;
+ _font.setFont= false;
+// _wire = wire;
+ // инициируем I²C
+// _wire->begin();
+
+ // выключаем дисплей
+ _sendCommand(SSD1306_DISPLAY_OFF);
+ // устанавливаем частоту обновления дисплея в значение 0x80 (по умолчанию)
+ _sendCommand(SSD1306_SET_DISPLAY_CLOCK);
+ _sendCommand(0x80);
+ // устанавливаем multiplex ratio (коэффициент мультиплексирования COM выводов) в значение 0x3F (по умолчанию)
+ _sendCommand(SSD1306_SET_MULTIPLEX_RATIO);
+ _sendCommand(0x3F);
+ // устанавливаем смещение дисплея в 0 (без смещения)
+ _sendCommand(SSD1306_SET_DISPLAY_OFFSET);
+ _sendCommand(0x00);
+ // устанавливаем смещение ОЗУ в значение 0 (без смещения)
+ _sendCommand(SSD1306_SET_START_LINE | 0);
+ // настраиваем схему питания (0x14 - включить внутренний DC-DC преобразователь, 0x10 - отключить внутренний DC/DC)
+ _sendCommand(SSD1306_CHARGE_DCDC_PUMP);
+ _sendCommand(0x14);
+ // устанавливаем режим автоматической адресации (0x00-горизонтальная, 0x01-вертикальная, 0x10-страничная)
+ _sendCommand(SSD1306_ADDR_MODE);
+ _sendCommand(0x00);
+ // устанавливаем режим строчной развертки (слева/направо)
+ _sendCommand(SSD1306_SET_REMAP_L_TO_R);
+ // устанавливаем режим кадровой развертки (сверху/вниз)
+ _sendCommand(SSD1306_SET_REMAP_T_TO_D);
+ // устанавливаем аппаратную конфигурация COM выводов в значение 0x12 (по умолчанию)
+ _sendCommand(SSD1306_SET_COM_PINS);
+ _sendCommand(0x12);
+ // устанавливаем контрастность в значение 0xCF (допустимы значения от 0x00 до 0xFF)
+ _sendCommand(SSD1306_SET_CONTRAST);
+ _sendCommand(0xFF);
+ // настраиваем схему DC/DC преобразователя (0xF1 - Vcc снимается с DC/DC преобразователя, 0x22 - Vcc подается извне)
+ _sendCommand(SSD1306_SET_PRECHARGE_PERIOD);
+ _sendCommand(0xF1);
+ // устанавливаем питание светодиодов VcomH в значение выше чем по умолчанию: 0x30
+ // это увеличит яркость дисплея
+ // допустимые значения: 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70
+ _sendCommand(SSD1306_SET_VCOM_DESELECT);
+ _sendCommand(0x40);
+ // разрешаем отображать содержимое RAM памяти
+ _sendCommand(SSD1306_RAM_ON);
+ // отключаем инверсию
+ _sendCommand(SSD1306_INVERT_OFF);
+ // включаем дисплей
+ _sendCommand(SSD1306_DISPLAY_ON);
+ // чистим экран
+ clearDisplay();
+}
+
+void TroykaOLED::update() {
+ _sendBuffer();
+}
+
+void TroykaOLED::autoUpdate(bool stateAutoUpdate) {
+ _stateAutoUpdate = stateAutoUpdate;
+}
+
+void TroykaOLED::setBrigtness(uint8_t brigtness) {
+ _sendCommand(SSD1306_SET_CONTRAST);
+ _sendCommand(brigtness);
+}
+
+void TroykaOLED::clearDisplay() {
+ memset(_bufferDisplay, 0, _width * _height / 8);
+
+ if(_stateAutoUpdate) {
+ _sendBuffer();
+ }
+}
+
+void TroykaOLED::invertDisplay(bool stateInvert) {
+ if(stateInvert) {
+ _stateInvert = true;
+ _sendCommand(SSD1306_INVERT_ON);
+ } else {
+ _stateInvert = false;
+ _sendCommand(SSD1306_INVERT_OFF);
+ }
+}
+
+void TroykaOLED::invertText (bool stateInvertText) {
+ _font.invert = stateInvertText;
+}
+
+void TroykaOLED::bgText (bool stateTextBG) {
+ _font.background = stateTextBG;
+}
+
+void TroykaOLED::bgImage (bool stateImageBG) {
+ _stateImageBG = stateImageBG;
+}
+
+void TroykaOLED::setFont(const uint8_t* fontData) {
+ // сохраняем указатель на первый байт массива в области памяти программ
+ _font.fontData = fontData;
+ // сохраняем ширину символов выбранного шрифта читая её из 0 байта массива по указателю fontData
+ _font.width = pgm_read_byte(&fontData[0]);
+ // сохраняем высоту символов выбранного шрифта читая её из 1 байта массива по указателю fontData
+ _font.height = pgm_read_byte(&fontData[1]);
+ // сохраняем код первого симола выбран. шрифта читая его из 2 байта массива по указателю fontData
+ _font.firstSymbol = pgm_read_byte(&fontData[2]);
+ // сохраняем количество символов в выбр шрифте читая их из 3 байта массива по указателю fontData
+ _font.sumSymbol = pgm_read_byte(&fontData[3]);
+ // устанавливаем флаг выбора шрифта
+ _font.setFont = true;
+ // определяем позицию бита указывающего количество пустых интервалов в массиве шрифта.
+ uint16_t i = (uint16_t) _font.sumSymbol * _font.width * _font.height / 8 + 0x04;
+ // определяем количество пустых интервалов в массиве шрифта.
+ uint16_t j = pgm_read_byte(&fontData[i]);
+ // указываем что первый пустой интервал в массиве шрифта находится после символа с кодом (0xFF) и состоит из 0 символов
+ _font.startSpace[0] = 0xFF;
+ _font.sumSpace[0] = 0;
+ // указываем что второй пустой интервал в массиве шрифта находится после символа с кодом (0xFF) и состоит из 0 символов
+ _font.startSpace[1] = 0xFF;
+ _font.sumSpace[1] = 0;
+ // указываем что третий пустой интервал в массиве шрифта находится после символа с кодом (0xFF) и состоит из 0 символов
+ _font.startSpace[2] = 0xFF;
+ _font.sumSpace[2] = 0;
+ // если количество пустых интервалов больше 0
+ // сохраняем начало первого пустого интервала символов и размер первого пустого интервала символов
+ if (j > 0) {
+ _font.startSpace[0] = pgm_read_byte(&fontData[i + 1]);
+ _font.sumSpace[0] = pgm_read_byte(&fontData[i + 2]);
+ }
+ // если количество пустых интервалов больше 1
+ // сохраняем начало второго пустого интервала символов и размер второго пустого интервала символов
+ if (j > 1) {
+ _font.startSpace[1] = pgm_read_byte(&fontData[i + 3]);
+ _font.sumSpace[1] = pgm_read_byte(&fontData[i + 4]);
+ }
+ // если количество пустых интервалов больше 2
+ // сохраняем начало третьего пустого интервала символов и размер третьего пустого интервала символов
+ if (j > 2) {
+ _font.startSpace[2] = pgm_read_byte(&fontData[i + 5]);
+ _font.sumSpace[2] = pgm_read_byte(&fontData[i + 6]);
+ }
+}
+
+void TroykaOLED::setCoding(uint8_t codingName) {
+ _codingName = codingName;
+}
+
+void TroykaOLED::setCursor(int numX, int numY) {
+ if(numX < _width) {
+ _numX = numX;
+ }
+ if(numY < _height) {
+ _numY = numY;
+ }
+}
+
+void TroykaOLED::print(char* data, int x, int y) {
+ _print(_codingCP866(data), x, y);
+}
+/*
+void TroykaOLED::print(String str, int x, int y) {
+ char data[str.length() + 1];
+ str.toCharArray(data, str.length() + 1);
+ _print(_codingCP866(data), x, y);
+}
+*/
+void TroykaOLED::print(const char* str, int x, int y) {
+ char data[strlen(str) + 1];
+ for (uint8_t i = 0; i <= strlen(str); i++) {
+ data[i] = str[i];
+ }
+ _print(_codingCP866(data), x, y);
+}
+
+void TroykaOLED::print(int8_t num, int x, int y, uint8_t base) {
+ print(int32_t(num), x, y, base);
+}
+
+void TroykaOLED::print(uint8_t num, int x, int y, uint8_t base) {
+ print(uint32_t(num), x, y, base);
+}
+
+void TroykaOLED::print(int16_t num, int x, int y, uint8_t base) {
+ print(int32_t(num), x, y, base);
+}
+
+void TroykaOLED::print(uint16_t num, int x, int y, uint8_t base) {
+ print(uint32_t(num), x, y, base);
+}
+
+void TroykaOLED::print(int32_t num, int x, int y, uint8_t base) {
+ // определяем количество разрядов числа
+ // i = количество разрядов + 2, j = множитель кратный основанию системы счисления
+ int8_t i = 2;
+ int32_t j = 1;
+ while (num / j) {
+ j *= base;
+ i++;
+ }
+ // создаём строку k из i символов и добавляем символ(ы) конца строки
+ char k[i];
+ i--;
+ k[i] = 0;
+ i--;
+ if(num > 0) {
+ k[i] = 0;
+ i--;
+ }
+ // создаём строку k из i символов и добавляем символ(ы) конца строки
+ uint32_t n = num < 0 ? num*-1 : num;
+ while (i) {
+ k[i]=_itoa(n % base);
+ n /= base; i--;
+ }
+ // заполняем строку k
+ if (num >= 0) {
+ k[i]=_itoa(n % base);
+ } else {
+ k[i]='-';
+ }
+ // добавляем первый символ (либо первая цифра, либо знак минус)
+ // выводим строку k
+ print(k, x, y);
+}
+
+void TroykaOLED::print(uint32_t num, int x, int y, uint8_t base) {
+ // определяем количество разрядов числа
+ // i = количество разрядов + 1, j = множитель кратный основанию системы счисления
+ int8_t i = 1;
+ uint32_t j = 1;
+ while (num / j) {
+ j *= base;
+ i++;
+ }
+ if (num == 0) {
+ i++;
+ }
+ // определяем строку k из i символов и заполняем её
+ char k[i];
+ i--;
+ k[i] = 0;
+
+ while(i) {
+ k[i - 1] = _itoa(num % base);
+ num /= base;
+ i--;
+ }
+ // выводим строку k
+ print(k, x, y);
+}
+
+void TroykaOLED::print(double num, int x, int y, uint8_t sum) {
+ uint32_t i = 1, j = 0, k = 0;
+ j = sum;
+ while (j) {
+ i *= 10;
+ j--;
+ }
+ // выводим целую часть числа
+ print(int32_t(num), x, y);
+ // если требуется вывести хоть один знак после запятой, то ...
+ if (sum) {
+ // выводим символ разделителя
+ print(".");
+ // получаем целое число, которое требуется вывести после запятой
+ j = num * i * (num < 0 ? -1 : 1);
+ j %= i;
+ k = j;
+ // если полученное целое число равно нулю, то выводим sum раз символ «0»
+ if (j == 0) {
+ while(sum) {
+ print("0");
+ sum--;
+ }
+ } else {
+ // иначе, если в полученном целом числе меньше разрядов чем требуется
+ // заполняем эти разряды выводя символ «0», после чего выводим само число
+ while (j * 10 < i) {
+ print("0");
+ j *= 10;
+ }
+ print(k);
+ }
+ }
+}
+
+void TroykaOLED::drawPixel(int x, int y, uint8_t color) {
+ _drawPixel(x, y, color);
+ if(_stateAutoUpdate) {
+ _sendBuffer();
+ }
+ _numX = x;
+ _numY = y;
+}
+
+void TroykaOLED::drawLine(int x1, int y1, int x2, int y2, uint8_t color) {
+ _drawLine(x1, y1, x2, y2, color);
+ if(_stateAutoUpdate) {
+ _sendBuffer();
+ }
+ _numX = x2;
+ _numY = y2;
+}
+
+void TroykaOLED::drawLine(int x2, int y2, uint8_t color) {
+ drawLine(_numX, _numY, x2, y2, color);
+}
+
+void TroykaOLED::drawRect(int x1, int y1, int x2, int y2, bool fill, uint8_t color) {
+ if (fill) {
+ if (x1 < x2) {
+ for (int x = x1; x <= x2; x++) {
+ _drawLine(x,y1,x,y2,color);
+ }
+ } else {
+ for (int x = x1; x >= x2; x--) {
+ _drawLine(x,y1,x,y2,color);
+ }
+ }
+ } else {
+ _drawLine(x1, y1, x2, y1, color);
+ _drawLine(x2, y2, x2, y1, color);
+ _drawLine(x2, y2, x1, y2, color);
+ _drawLine(x1, y1, x1, y2, color);
+ }
+ if(_stateAutoUpdate) {
+ _sendBuffer();
+ }
+ _numX = x2;
+ _numY = y2;
+}
+
+void TroykaOLED::drawCircle(int x, int y, uint8_t r, bool fill, uint8_t color) {
+ // x1,y1 - положительные координаты точек круга с центром 00
+ // p - отрицательная парабола
+ int x1 = 0, y1 = r, p = 1 - r;
+ // цикл будет выполняться пока координата x не станет чуть меньше y
+ // прочертит дугу от 0 до 45° - это 1/8 часть круга
+ while (x1 < y1 + 1) {
+ if (fill) {
+ // прорисовываем горизонтальные линии вверху круга (между точками 3 и 1 дуг)
+ _drawLine(x - x1, y - y1, x + x1, y - y1, color);
+ // прорисовываем горизонтальные линии внизу круга (между точками 4 и 2 дуг)
+ _drawLine(x - x1, y + y1, x + x1, y + y1, color);
+ // прорисовываем горизонтальные линии выше середины круга (между точками 7 и 5 дуг)
+ _drawLine(x - y1, y - x1, x + y1, y - x1, color);
+ // прорисовываем горизонтальные линии выше середины круга (между точками 8 и 6 дуг)
+ _drawLine(x - y1, y + x1, x + y1, y + x1, color);
+ } else {
+ // 1 дуга 0° - 45° (построенная в соответствии с уравнением)
+ _drawPixel(x + x1, y - y1, color);
+ // 2 дуга 180° - 135° (1 дуга отражённая по вертикали)
+ _drawPixel(x + x1, y + y1, color);
+ // 3 дуга 360° - 315° (1 дуга отражённая по горизонтали)
+ _drawPixel(x - x1, y - y1, color);
+ // 4 дуга 180° - 225° (2 дуга отражённая по горизонтали)
+ _drawPixel(x - x1, y + y1, color);
+ // 5 дуга 90° - 45° (2 дуга повёрнутая на -90°)
+ _drawPixel(x + y1, y - x1, color);
+ // 6 дуга 90° - 135° (1 дуга повёрнутая на +90°)
+ _drawPixel(x + y1, y + x1, color);
+ // 7 дуга 270° - 315° (1 дуга повёрнутая на -90°)
+ _drawPixel(x - y1, y - x1, color);
+ // 8 дуга 270° - 225° (2 дуга повёрнутая на +90°)
+ _drawPixel(x - y1, y + x1, color);
+ }
+ // если парабола p вышла в положительный диапазон
+ if(p >= 0) {
+ // сдвигаем её вниз на y1 * 2 (каждый такой сдвиг провоцирет смещение точки y1 первой дуги вниз)
+ y1--;
+ p -= y1 * 2;
+ }
+ // с каждым проходом цикла, смещаем точку x1 первой дуги влево и находим новую координату параболы p
+ p++;
+ x1++;
+ p += x1 * 2;
+ }
+ if(_stateAutoUpdate) {
+ _sendBuffer();
+ }
+ _numX = x;
+ _numY = y;
+}
+
+bool TroykaOLED::bitRead(uint8_t data, uint8_t bit)
+{
+ uint8_t b;
+ b=(data>>bit)&1;
+ if(b)
+ return true;
+ else
+ return false;
+}
+
+void TroykaOLED::drawImage(const uint8_t* image, int x, int y, uint8_t mem) {
+ uint8_t w = getImageWidth(image, mem);
+ uint8_t h = getImageHeight(image, mem);
+ bool color;
+ // колонка с которой требуется начать вывод изображения ...
+ switch(x) {
+ // определяем начальную колонку для выравнивания по левому краю
+ case OLED_LEFT:
+ _numX = 0;
+ break;
+ // определяем начальную колонку для выравнивания по центру
+ case OLED_CENTER:
+ _numX = (_width - w) / 2;
+ break;
+ // определяем начальную колонку для выравнивания по правому краю
+ case OLED_RIGHT:
+ _numX = _width - w;
+ break;
+ // начальной колонкой останется та, на которой был закончен вывод предыдущего текста или изображения
+ case OLED_THIS:
+ _numX = _numX;
+ break;
+ // начальная колонка определена пользователем
+ default:
+ _numX = x;
+ break;
+ }
+ // строка с которой требуется начать вывод изображения ...
+ switch(y) {
+ // определяем начальную строку для выравнивания по верхнему краю
+ case OLED_TOP:
+ _numY = h - 1;
+ break;
+ // определяем начальную строку для выравнивания по центру
+ case OLED_CENTER:
+ _numY = (_height - h) / 2;
+ break;
+ // определяем начальную строку для выравнивания по нижнему краю
+ case OLED_BOTTOM:
+ _numY = _height - 1;
+ break;
+ // начальной строкой останется та, на которой выведен предыдущий текст или изображение
+ case OLED_THIS:
+ _numY = _numY;
+ break;
+ // начальная строка определена пользователем
+ default:
+ _numY = y;
+ break;
+ }
+ // проходим по страницам изображения...
+ for (uint8_t p = 0; p < h; p++) {
+ // проходим по колонкам изображения...
+ for (uint8_t k = 0; k < w; k++) {
+ // если массив изображения находится в памяти ОЗУ
+ if (mem == IMG_RAM) {
+ // получаем цвет очередного пикселя из p % 8 бита
+ // 2 + (p / 8 * w) + k байта, массива image
+ color = bitRead(image[2 + (p / 8 * w) + k], p % 8);
+ } else if (mem == IMG_ROM) {
+ // если массив изображения находится в памяти ПЗУ
+ // получаем цвет очередного пикселя из p % 8 бита
+ // 2 + (p / 8 * w) + k байта, массива image
+ color = bitRead(pgm_read_byte(&image[2 + (p / 8 * w) + k]), p % 8);
+ }
+ // если у изображения есть фон или цвет пикселя белый
+ if (_stateImageBG || color) {
+ // прорисовываем пиксель в координате (_numX + k, _numY + p)
+ _drawPixel( _numX + k, _numY + p, color);
+ }
+ }
+ }
+ // добавляем ширину изображения к координате _numX
+ _numX += w;
+ if(_stateAutoUpdate) {
+ _sendBuffer();
+ }
+}
+
+bool TroykaOLED::getPixel(int x, int y) {
+ if(x < 0 || x > _height - 1 || y < 0 || y > _width - 1) {
+ return 0;
+ }
+ // определяем номер байта массива _bufferDisplay в котором находится пиксель
+ uint16_t numByte = (y / 8 * 128) + x;
+ // определяем номер бита в найденном байте, который соответсвует искомому пикселю
+ uint8_t numBit = y % 8;
+ // возвращаем цвет пикселя из бита numBit элемента numByte массива _bufferDisplay
+ return bitRead(_bufferDisplay[numByte], numBit);
+}
+
+uint8_t TroykaOLED::getImageWidth(const uint8_t* image, uint8_t mem) {
+ // возвращаем ширину изображения
+ return (mem == IMG_RAM) ? image[0] : pgm_read_byte(&image[0]);
+}
+
+uint8_t TroykaOLED::getImageHeight(const uint8_t* image, uint8_t mem) {
+ // возвращаем высоту изображения
+ return (mem == IMG_RAM) ? image[1] : pgm_read_byte(&image[1]);
+}
+
+void TroykaOLED::_print(char* data, int x, int y) {
+ // если шрифт не выбран или его высота не кратна 8 пикселям, то выходим из функции
+ if (_font.setFont == false || _font.height % 8 > 0) {
+ return;
+ }
+ // определяем количество колонок которое занимают выводимые символы
+ uint16_t len = strlen(data) * _font.width;
+ if (len > _width) {
+ len = _width / _font.width * _font.width;
+ }
+ // объявляем переменную для хранения номера байта в массиве шрифта
+ uint16_t num;
+ // объявляем переменные для хранения координат точек
+ int x1, y1;
+ // объявляем переменную для хранения цвета точек
+ bool c;
+ // колонка с которой требуется начать вывод текста ...
+ switch (x) {
+ // определяем начальную колонку для выравнивания по левому краю.
+ case OLED_LEFT:
+ _numX = 0;
+ break;
+ // определяем начальную колонку для выравнивания по центру
+ case OLED_CENTER:
+ _numX = (_width - len) / 2;
+ break;
+ // определяем начальную колонку для выравнивания по правому краю
+ case OLED_RIGHT:
+ _numX = _width - len;
+ break;
+ // начальной колонкой останется та, на которой был закончен вывод предыдущего текста или изображения
+ case OLED_THIS:
+ _numX = _numX;
+ break;
+ // начальная колонка определена пользователем
+ default:
+ _numX = x;
+ break;
+ }
+ // строка с которой требуется начать вывод текста ...
+ switch (y) {
+ // определяем начальную строку для выравнивания по верхнему краю
+ case OLED_TOP:
+ _numY = _font.height - 1;
+ break;
+ // определяем начальную строку для выравнивания по центру
+ case OLED_CENTER:
+ _numY = (_height - _font.height) / 2 + _font.height;
+ break;
+ // определяем начальную строку для выравнивания по нижнему краю
+ case OLED_BOTTOM:
+ _numY = _height;
+ break;
+ // начальной строкой останется та, на которой выведен предыдущий текст или изображение
+ case OLED_THIS:
+ _numY = _numY;
+ break;
+ // начальная строка определена пользователем
+ default:
+ _numY = y;
+ break;
+ }
+ // пересчитываем количество колонок которое занимают выводимые символы, с учётом начальной позиции
+ if (_numX + len > _width) {
+ len = (_width - _numX) / _font.width * _font.width;
+ }
+ // проходим по страницам символов...
+ for (int8_t p = 0; p < _font.height / 8; p++) {
+ // проходим по выводимым символам...
+ for (uint8_t n = 0; n < (len / _font.width); n++) {
+ // присваиваем переменной num код выводимого символа
+ num = uint8_t(data[n]);
+ // если в массиве символов, до кода текущего символа, имеется пустой интервал
+ // уменьшаем код текущего символа на количество символов в пустом интервале
+ if(_font.startSpace[0] < num) {
+ num -= _font.sumSpace[0];
+ }
+ // если в массиве символов, до кода текущего символа, имеется пустой интервал
+ // уменьшаем код текущего символа на количество символов в пустом интервале
+ if (_font.startSpace[1] < num) {
+ num -= _font.sumSpace[1];
+ }
+ // если в массиве символов, до кода текущего символа, имеется пустой интервал
+ // то уменьшаем код текущего символа на количество символов в пустом интервале
+ if (_font.startSpace[2] < num) {
+ num -= _font.sumSpace[2];
+ }
+ // вычитаем код первого символа (с которого начинается массив шрифта)
+ num -= _font.firstSymbol;
+ // умножаем полученное значение на ширину символа (количество колонок)
+ num *= _font.width;
+ // умножаем полученное значение на высоту символа (количество страниц)
+ num *= _font.height / 8;
+ // добавляем количество колонок данного символа, которые уже были выведены на предыдущих страницах
+ num += p * _font.width;
+ // добавляем количество байт в начале массива шрифта, которые не являются байтами символов
+ num += 0x04;
+ // проходим по байтам очередного символа
+ for (uint8_t k = 0; k < _font.width; k++) {
+ // проходим по байтам очередного символа
+ for (uint8_t b = 0; b < 8; b++) {
+ // начальная колонка всего текста + (количество выведенных символов * ширина символов) + номер байта текущего символа
+ x1 = _numX + n * _font.width + k;
+ // нижняя строка текста - высота симолов + количество уже выведенных страниц + номер бита байта текущего символа + 1
+ y1 = _numY + p * 8 + b;
+ // цвет точки символа: 1-белый, 0-чёрный
+ c = bitRead( pgm_read_byte(&_font.fontData[num + k]), b);
+ // если цвет текста требуется инвертировать
+ if (_font.invert) {
+ // если установлен фон текста или точка стоит на букве (а не на фоне)
+ if (_font.background || c) {
+ // выводим инвертированную точку
+ _drawPixel(x1, y1, !c);
+ }
+ } else {
+ // если цвет текста не требуется инвертировать
+ // если установлен фон текста или точка стоит на букве (а не на фоне)
+ if (_font.background || c) {
+ // выводим не инвертированную точку
+ _drawPixel(x1, y1, c);
+ }
+ }
+ }
+ }
+ }
+ }
+ if(_stateAutoUpdate) {
+ _sendBuffer();
+ }
+ // сохраняем координату окончания текста.
+ _numX += len;
+}
+
+// параметр: одна цифра от 0 до 15
+// преобразуем цифры 0-9 в символ с кодом 48-57, а цифры 10-15 в символ с кодом 65-71
+char TroykaOLED::_itoa(uint8_t num) {
+ return char(num + (num < 10 ? 48 : 55));
+}
+
+char* TroykaOLED::_codingCP866(char* StrIn) {
+ // определяем строку для вывода результата
+ char* StrOut = StrIn;
+ // переменненые для хранения номера сивола в строках StrIn и StrOut
+ uint8_t numIn = 0, numOut = 0;
+ // переменненые для хранения текущего кода символа в строках StrIn и StrOut
+ uint8_t charThis = StrIn[0], charNext = StrIn[1];
+ switch (_codingName) {
+ // преобразуем текст из кодировки UTF-8:
+ case TXT_UTF8:
+ while (charThis > 0 && numIn < 0xFF ) {
+ // если код текущего символа равен 208, а за ним следует символ с кодом 144...191
+ // значит это буква «А»...«п» требующая преобразования к коду 128...175
+ if (charThis == 0xD0 && charNext >= 0x90 && charNext <= 0xBF) {
+ StrOut[numOut] = charNext - 0x10;
+ numIn++;
+ } else if (charThis == 0xD0 && charNext == 0x81) {
+ // если код текущего символа равен 208, а за ним следует символ с кодом 129
+ // значит это буква «Ё» требующая преобразования к коду 240
+ StrOut[numOut] = 0xF0; numIn++;
+ } else if (charThis == 0xD1 && charNext >= 0x80 && charNext <= 0x8F) {
+ // если код текущего символа равен 209, а за ним следует символ с кодом 128...143
+ // значит это буква «р»...«я» требующая преобразования к коду 224...239
+ StrOut[numOut] = charNext + 0x60; numIn++;
+ } else if (charThis == 0xD1 && charNext == 0x91) {
+ // если код текущего символа равен 209, а за ним следует символ с кодом 145
+ // значит это буква «ё» требующая преобразования к коду 241
+ StrOut[numOut] = 0xF1;
+ numIn++;
+ } else {
+ // иначе не меняем символ
+ StrOut[numOut] = charThis;
+ }
+ // переходим к следующему символу
+ numIn++;
+ numOut++;
+ charThis = StrIn[numIn];
+ charNext = StrIn[numIn + 1];
+ // добавляем символ конца строки и возвращаем строку StrOut
+ }
+ StrOut[numOut] = '\0';
+ break;
+ //преобразуем текст из кодировки WINDOWS-1251:
+ case TXT_WIN1251:
+ // если код текущего символа строки StrIn больше 0 и номер текушего символа строки StrIn меньше 255
+ while (charThis > 0 && numIn < 0xFF) {
+ // если код текущего символа равен 192...239
+ // значит это буква «А»...«п» требующая преобразования к коду 128...175
+ if (charThis >= 0xC0 && charThis <= 0xEF) {
+ StrOut[numOut] = charThis - 0x40;
+ } else if (charThis >= 0xF0 && charThis <= 0xFF) {
+ // если код текущего символа равен 240...255
+ // значит это буква «р»...«я» требующая преобразования к коду 224...239
+ StrOut[numOut] = charThis - 0x10;
+ } else if (charThis == 0xA8) {
+ // если код текущего символа равен 168, значит это буква «Ё» требующая преобразования к коду 240
+ StrOut[numOut] = 0xF0;
+ }else if (charThis == 0xB8) {
+ // если код текущего символа равен 184, значит это буква «ё» требующая преобразования к коду 241
+ StrOut[numOut] = 0xF1;
+ } else {
+ // иначе не меняем символ
+ StrOut[numOut] = charThis;
+ }
+ // переходим к следующему символу
+ numIn++;
+ numOut++;
+ charThis = StrIn[numIn];
+ // добавляем символ конца строки
+ }
+ StrOut[numOut] = '\0';
+ break;
+ }
+ // возвращаем строку StrOut
+ return StrOut;
+}
+
+void TroykaOLED::_drawPixel(int x, int y, uint8_t color) {
+ if(x < 0 || x > _width - 1 || y < 0 || y > _height - 1) {
+ return;
+ }
+ // определяем номер страницы в которой должен находиться пиксель
+ uint8_t p = y / 8;
+ // определяем номер байта массива _bufferDisplay в котором требуется прорисовать пиксель
+ uint16_t numByte = (p * 128 ) + x;
+ // определяем номер бита в найденном байте, который соответсвует рисуемому пикселю
+ uint8_t numBit = y % 8;
+ switch (color) {
+ case WHITE:
+ _bufferDisplay[numByte] |= 1 << numBit;
+ break;
+ case BLACK:
+ _bufferDisplay[numByte] &= ~(1 << numBit);
+ break;
+ case INVERSE:
+ _bufferDisplay[numByte] ^= 1 << numBit;
+ break;
+ }
+}
+
+void TroykaOLED::_drawLine(int x1, int y1, int x2, int y2, uint8_t color) {
+ int x3 = x2 - x1;
+ int y3 = y2 - y1;
+ // рисуем линию по линейному уровнению (y-y1)/(y2-y1) = (x-x1)/(x2-x1)
+ // определяем где больше расстояние (по оси x или y)
+ // по той оси проходим в цикле, для поиска точек на другой оси
+ if (abs(x3) > abs(y3)) {
+ if (x1 < x2) {
+ for (int x = x1; x <= x2; x++) {
+ _drawPixel(x,((x - x1) * y3 / x3 + y1), color);
+ }
+ } else {
+ for (int x = x1; x >= x2; x--) {
+ _drawPixel(x,((x - x1) * y3 / x3 + y1), color);
+ }
+ }
+ } else {
+ if (y1 < y2) {
+ for (int y = y1; y <= y2; y++) {
+ _drawPixel(((y - y1) * x3 / y3 + x1), y, color);
+ }
+ } else {
+ for (int y = y1; y >= y2; y--) {
+ _drawPixel(((y - y1) * x3 / y3 + x1), y, color);
+ }
+ }
+ }
+}
+
+// отправка байта команды
+/*
+void TroykaOLED::_sendCommand(uint8_t command){
+ _wire->beginTransmission(_i2cAddress);
+ _wire->write(0x80);
+ _wire->write(command);
+ _wire->endTransmission();
+}
+*/
+void TroykaOLED::_sendCommand(uint8_t command)
+{
+ char data_write[2];
+ data_write[0]=0x80;
+ data_write[1]=command;
+ _wire->write(_i2cAddress,data_write, 2,0);
+}
+// отправка буфера (массива _bufferDisplay) в дисплей
+void TroykaOLED::_sendBuffer() {
+ _sendCommand(SSD1306_ADDR_PAGE);
+ _sendCommand(0);
+ _sendCommand(_height / 8 - 1);
+ _sendCommand(SSD1306_ADDR_COLUMN);
+ _sendCommand(0);
+ _sendCommand(_width - 1);
+ char data_write[17]; //my
+ data_write[0]=0x40;
+ for (int i = 0; i < _width * _height / 8; i++){
+ for (uint8_t x = 0; x < 16; x++) {
+ data_write[x+1]=_bufferDisplay[i++];
+ }
+/*
+ _wire->beginTransmission(_i2cAddress);
+ _wire->write(0x40);
+ for (uint8_t x = 0; x < 16; x++) {
+ _wire->write(_bufferDisplay[i++]);
+ }
+ i--;
+ _wire->endTransmission();
+*/
+ i--;
+ _wire->write(_i2cAddress,data_write, 17,0);
+ }
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/TroykaOLED.h Tue Jul 23 12:32:26 2019 +0000
@@ -0,0 +1,214 @@
+#ifndef TROYKA_OLED_H
+#define TROYKA_OLED_H
+
+#include "mbed.h"
+//#include <Wire.h>
+#include "defaultFonts.h"
+#include "defaultImages.h"
+
+#define DEC 10 //my
+// адрес дисплея
+#define SSD1306_ADDRESS 0x78 //0x3C
+// установка контрастности, за данной командой должен быть отправлен байт контрастности от 00 до FF (по умолчанию 0x7F)
+#define SSD1306_SET_CONTRAST 0x81
+// включить изображение
+#define SSD1306_RAM_ON 0xA4
+// выключить изображение
+#define SSD1306_RAM_OFF 0xA5
+// пиксель установленный в 1 будет светиться
+#define SSD1306_INVERT_OFF 0xA6
+// пиксель установленный в 1 будет выключен
+#define SSD1306_INVERT_ON 0xA7
+// выключить дисплей
+#define SSD1306_DISPLAY_OFF 0xAE
+// включить дисплей
+#define SSD1306_DISPLAY_ON 0xAF
+// пустая команда
+#define SSD1306_NOP 0xE3
+
+// включить прокрутку
+#define SSD1306_SCROLL_ON 0x2F
+// выключить прокрутку
+#define SSD1306_SCROLL_OFF 0x2E
+// настройка непрерывной горизонтальной прокрутки вправо. За данной командой должны быть отправлены 6 байт настроек
+#define SSD1306_SCROLL_HORIZONTAL_RIGHT 0x26
+// настройка непрерывной горизонтальной прокрутки влево. За данной командой должны быть отправлены 6 байт настроек
+#define SSD1306_SCROLL_HORIZONTAL_LEFT 0x27
+// настройка непрерывной диагональной прокрутки вправо. За данной командой должны быть отправлены 5 байт настроек
+#define SSD1306_SCROLL_DIAGONAL_RIGHT 0x29
+// настройка непрерывной диагональной прокрутки влево. За данной командой должны быть отправлены 5 байт настроек
+#define SSD1306_SCROLL_DIAGONAL_LEFT 0x2A
+// настройка непрерывной вертикальной прокрутки. За данной командой должны быть отправлены 2 байта настроек
+#define SSD1306_SCROLL_VERTICAL 0xA3
+
+// установка младшей части адреса колонки на странице
+// у данной команды младщие четыре бита должны быть изменены на младшие биты адреса
+// комадна предназначена только для режима страничной адресации
+#define SSD1306_ADDR_COLUMN_LBS 0x00
+// установка старшей части адреса колонки на странице
+// у данной команды младщие четыре бита должны быть изменены на старшие биты адреса
+// комадна предназначена только для режима страничной адресации
+#define SSD1306_ADDR_COLUMN_MBS 0x10
+// выбор режима адресации
+// за данной командой должен быть отправлен байт младшие биты которого определяют режим:
+// 00-горизонтальная (с переходом на новую страницу (строку))
+// 01-вертикальная (с переходом на новую колонку)
+// 10-страничная (только по выбранной странице)
+#define SSD1306_ADDR_MODE 0x20
+// установка адреса колонки
+// за данной командой должны быть отправлены два байта: начальный адрес и конечный адрес
+// так можно определить размер экрана в колонках по ширине
+#define SSD1306_ADDR_COLUMN 0x21
+// установка адреса страницы
+// за данной командой должны быть отправлены два байта: начальный адрес и конечный адрес
+// так можно определить размер экрана в строках по высоте
+#define SSD1306_ADDR_PAGE 0x22
+// установка номера страницы которая будет выбрана для режима страничной адресации
+// у данной команды младщие три бита должны быть изменены на номер страницы
+// комадна предназначена только для режима страничной адресации
+#define SSD1306_ADDR_ONE_PAGE 0xB0
+
+// установить начальный адрес ОЗУ (смещение памяти)
+// у данной команды младщие шесть битов должны быть изменены на начальный адрес ОЗУ
+#define SSD1306_SET_START_LINE 0x40
+// установить режим строчной развёртки справа-налево
+#define SSD1306_SET_REMAP_R_TO_L 0xA0
+// установить режим строчной развёртки слева-направо
+#define SSD1306_SET_REMAP_L_TO_R 0xA1
+// установить multiplex ratio (количество используемых выводов COM для вывода данных на дисплей)
+// за данной командой должен быть отправлен один байт с указанием количества COM выводов (от 15 до 63)
+#define SSD1306_SET_MULTIPLEX_RATIO 0xA8
+// установить режим кадровой развёртки снизу-верх
+#define SSD1306_SET_REMAP_D_TO_T 0xC0
+// установить режим кадровой развёртки сверху-вниз
+#define SSD1306_SET_REMAP_T_TO_D 0xC8
+// установить смещение дисплея
+// за данной командой должен быть отправлен один байт с указанием вертикального сдвига чтения выходов COM (от 0 до 63).
+#define SSD1306_SET_DISPLAY_OFFSET 0xD3
+// установить тип аппаратной конфигурации COM выводов
+// за данной командой должен быть отправлен один байт, у которого:
+// четвёртый бит: 0-последовательная / 1-альтернативная
+// пятый бит: 0-отключить COM Left/Right remap / 1-включить COM Left/Right remap
+#define SSD1306_SET_COM_PINS 0xDA
+
+// установить частоту обновления дисплея
+// за данной командой должен быть отправлен один байт, старшие четыре бита которого определяют частоту, а младшие делитель
+#define SSD1306_SET_DISPLAY_CLOCK 0xD5
+// установить фазы DC/DC преобразователя
+// за данной командой должен быть отправлен один байт, старшие четыре бита которого определяют период, а младшие период
+#define SSD1306_SET_PRECHARGE_PERIOD 0xD9
+// установить VcomH (влияет на яркость)
+// за данной командой должен быть отправлен один байт, старшие четыре бита которого определяют напряжение
+// пример: 0000 - VcomH=0.65Vcc, 0010 - VcomH=0.77Vcc, 0011 - VcomH=0.83Vcc и т.д.
+#define SSD1306_SET_VCOM_DESELECT 0xDB
+// управление DC/DC преобразователем
+// за данной командой должен быть отправлен один байт:
+// 0x10 - отключить (VCC подается извне), 0x14 - запустить внутренний DC/DC
+#define SSD1306_CHARGE_DCDC_PUMP 0x8D
+
+// положение бита DC в командном байте
+// этот бит указывает что следующим байтом будет: 0-команда или 1-данные
+#define SSD1306_SHIFT_DC 0x06
+// положение бита CO в командном байте
+// этот бит указывает что после следующего байта (команды или данных) будет следовать (если будет): 0-байт данных или 1-новый командный байт
+#define SSD1306_SHIFT_CO 0x07
+// (CO=0, DC=0) => 0x00 контрольный байт после которого следует байт команды
+#define SSD1306_COMMAND (0 << SSD1306_SHIFT_CO) | (0 << SSD1306_SHIFT_DC)
+// (CO=0, DC=1) => 0x40 контрольный байт после которого следует байт данных
+#define SSD1306_DATA (0 << SSD1306_SHIFT_CO) | (1 << SSD1306_SHIFT_DC)
+
+#define OLED_TOP 250
+#define OLED_BOTTOM 251
+#define OLED_LEFT 252
+#define OLED_RIGHT 253
+#define OLED_CENTER 254
+#define OLED_THIS 255
+
+#define IMG_RAM 0
+#define IMG_ROM 1
+
+#define TXT_CP866 0
+#define TXT_UTF8 1
+#define TXT_WIN1251 2
+
+#define BLACK 0
+#define WHITE 1
+#define INVERSE 2
+
+class TroykaOLED {
+public:
+ TroykaOLED (I2C *i2c,uint8_t address = SSD1306_ADDRESS, uint8_t width = 128, uint8_t heigth = 64);
+ void begin();// = &Wire);
+ void update();
+ void autoUpdate(bool stateAutoUpdate = true);
+ void setBrigtness(uint8_t brigtness);
+ void clearDisplay();
+ void invertDisplay(bool stateInvert = true);
+ void invertText(bool stateInvertText = true);
+ void bgText(bool stateTextBG = true);
+ void bgImage(bool stateImageBG = true);
+ void setFont(const uint8_t* fontData);
+ void setCoding(uint8_t codingName = false);
+ void setCursor(int numX, int numY);
+ void print(char* s, int x = OLED_THIS, int y = OLED_THIS);
+ void print(const char* s, int x = OLED_THIS, int y = OLED_THIS);
+ //void print(String s , int x = OLED_THIS, int y = OLED_THIS);
+ void print(int8_t n, int x = OLED_THIS, int y = OLED_THIS, uint8_t base = DEC);
+ void print(uint8_t n, int x = OLED_THIS, int y = OLED_THIS, uint8_t base = DEC);
+ void print(int16_t n, int x = OLED_THIS, int y = OLED_THIS, uint8_t base = DEC);
+ void print(uint16_t n, int x = OLED_THIS, int y = OLED_THIS, uint8_t base = DEC);
+ void print(int32_t n, int x = OLED_THIS, int y = OLED_THIS, uint8_t base = DEC);
+ void print(uint32_t n, int x = OLED_THIS, int y = OLED_THIS, uint8_t base = DEC);
+ void print(double n, int x = OLED_THIS, int y = OLED_THIS, uint8_t digits = 2);
+ void drawPixel(int x, int y, uint8_t color = WHITE);
+ void drawLine(int x1, int y1, int x2, int y2, uint8_t color = WHITE);
+ void drawLine(int x2, int y2, uint8_t color = WHITE);
+ void drawRect(int x1, int y1, int x2, int y2, bool fill = false, uint8_t color = WHITE);
+ void drawCircle(int x, int y, uint8_t r, bool fill = false, uint8_t color = WHITE);
+ void drawImage(const uint8_t* image, int x = OLED_THIS, int y = OLED_THIS, uint8_t mem = IMG_ROM);
+ bool getPixel(int x, int y);
+ uint8_t getWidth() { return _width; }
+ uint8_t getHeigth() { return _height; }
+ uint8_t getFontWidth() { return _font.width; }
+ uint8_t getFontHeight() { return _font.height; }
+ uint8_t getImageWidth(const uint8_t* image, uint8_t mem = IMG_ROM);
+ uint8_t getImageHeight(const uint8_t* image, uint8_t mem = IMG_ROM);
+
+private:
+ //TwoWire* _wire;
+ I2C *_wire;
+ uint8_t _i2cAddress;
+ uint8_t _width;
+ uint8_t _height;
+ uint8_t _numX;
+ uint8_t _numY;
+ uint8_t _codingName;
+ bool _stateInvert;
+ bool _stateAutoUpdate;
+ bool _stateImageBG;
+ uint8_t *_bufferDisplay;
+ struct {
+ const uint8_t* fontData;
+ uint8_t width;// = 0;
+ uint8_t height;// = 0;
+ uint8_t firstSymbol;// = 0;
+ uint8_t sumSymbol;// = 0;
+ uint8_t startSpace[3];
+ uint8_t sumSpace[3];
+ bool invert;// = false;
+ bool background;// = true;
+ bool setFont;// = false;
+ } _font;
+
+ bool bitRead(uint8_t data, uint8_t bit);//my
+ void _drawPixel(int x, int y, uint8_t color = WHITE);
+ void _drawLine(int x1, int y1, int x2, int y2, uint8_t color = WHITE);
+ void _print(char*, int x, int y);
+ char _itoa(uint8_t num);
+ char* _codingCP866(char* data);
+ void _sendCommand(uint8_t command);
+ void _sendData(uint8_t* data, uint8_t sum);
+ void _sendBuffer();
+};
+
+#endif // TROYKA_OLED_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultFonts.h Tue Jul 23 12:32:26 2019 +0000
@@ -0,0 +1,658 @@
+// ширина символов, высота символов, код первого символа и количество символов
+const uint8_t font6x8[] = {
+ 0x06, 0x08, 0x20, 0x5F,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // пробел
+ 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, // !
+ 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, // "
+ 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, // #
+ 0x00, 0x24, 0x2A, 0x7F, 0x2A, 0x12, // $
+ 0x00, 0x23, 0x13, 0x08, 0x64, 0x62, // %
+ 0x00, 0x36, 0x49, 0x55, 0x22, 0x50, // &
+ 0x00, 0x00, 0x05, 0x03, 0x00, 0x00, // '
+ 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, // (
+ 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, // )
+ 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14, // *
+ 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, // +
+ 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00, // ,
+ 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, // -
+ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, // .
+ 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, // /
+
+ 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E, // 0
+ 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, // 1
+ 0x00, 0x42, 0x61, 0x51, 0x49, 0x46, // 2
+ 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31, // 3
+ 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, // 4
+ 0x00, 0x27, 0x45, 0x45, 0x45, 0x39, // 5
+ 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30, // 6
+ 0x00, 0x01, 0x71, 0x09, 0x05, 0x03, // 7
+ 0x00, 0x36, 0x49, 0x49, 0x49, 0x36, // 8
+ 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E, // 9
+ 0x00, 0x00, 0x36, 0x36, 0x00, 0x00, // :
+ 0x00, 0x00, 0x56, 0x36, 0x00, 0x00, // ;
+ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, // <
+ 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, // =
+ 0x00, 0x00, 0x41, 0x22, 0x14, 0x08, // >
+ 0x00, 0x02, 0x01, 0x51, 0x09, 0x06, // ?
+
+ 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E, // @
+ 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C, // A
+ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, // B
+ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, // C
+ 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C, // D
+ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, // E
+ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01, // F
+ 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A, // G
+ 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, // H
+ 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00, // I
+ 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, // J
+ 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41, // K
+ 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, // L
+ 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F, // M
+ 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F, // N
+ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, // O
+
+ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, // P
+ 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E, // Q
+ 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46, // R
+ 0x00, 0x46, 0x49, 0x49, 0x49, 0x31, // S
+ 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01, // T
+ 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F, // U
+ 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, // V
+ 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F, // W
+ 0x00, 0x63, 0x14, 0x08, 0x14, 0x63, // X
+ 0x00, 0x07, 0x08, 0x70, 0x08, 0x07, // Y
+ 0x00, 0x61, 0x51, 0x49, 0x45, 0x43, // Z
+ 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00, // [
+ 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, // обратный слеш
+ 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00, // ]
+ 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, // ^
+ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, // _
+
+ 0x00, 0x00, 0x03, 0x05, 0x00, 0x00, // `
+ 0x00, 0x20, 0x54, 0x54, 0x54, 0x78, // a
+ 0x00, 0x7F, 0x28, 0x44, 0x44, 0x38, // b
+ 0x00, 0x38, 0x44, 0x44, 0x44, 0x20, // c
+ 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F, // d
+ 0x00, 0x38, 0x54, 0x54, 0x54, 0x18, // e
+ 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02, // f
+ 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C, // g
+ 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78, // h
+ 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00, // i
+ 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00, // j
+ 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, // k
+ 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, // l
+ 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78, // m
+ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78, // n
+ 0x00, 0x38, 0x44, 0x44, 0x44, 0x38, // o
+
+ 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18, // p
+ 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC, // q
+ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08, // r
+ 0x00, 0x48, 0x54, 0x54, 0x54, 0x20, // s
+ 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20, // t
+ 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C, // u
+ 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C, // v
+ 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C, // w
+ 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, // x
+ 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C, // y
+ 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44, // z
+ 0x00, 0x00, 0x10, 0x7C, 0x82, 0x00, // {
+ 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, // |
+ 0x00, 0x00, 0x82, 0x7C, 0x10, 0x00, // }
+ 0x00, 0x00, 0x06, 0x09, 0x09, 0x06, // ~
+ 0
+};
+
+// ширина символов, высота символов, код первого символа и количество символов
+const uint8_t fontRus6x8[] = {
+ 0x06, 0x08, 0x20, 0xB0,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // пробел
+ 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, // !
+ 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, // "
+ 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, // #
+ 0x00, 0x24, 0x2A, 0x7F, 0x2A, 0x12, // $
+ 0x00, 0x23, 0x13, 0x08, 0x64, 0x62, // %
+ 0x00, 0x36, 0x49, 0x55, 0x22, 0x50, // &
+ 0x00, 0x00, 0x05, 0x03, 0x00, 0x00, // '
+ 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, // (
+ 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, // )
+ 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14, // *
+ 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, // +
+ 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00, // ,
+ 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, // -
+ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, // .
+ 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, // /
+
+ 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E, // 0
+ 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, // 1
+ 0x00, 0x42, 0x61, 0x51, 0x49, 0x46, // 2
+ 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31, // 3
+ 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, // 4
+ 0x00, 0x27, 0x45, 0x45, 0x45, 0x39, // 5
+ 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30, // 6
+ 0x00, 0x01, 0x71, 0x09, 0x05, 0x03, // 7
+ 0x00, 0x36, 0x49, 0x49, 0x49, 0x36, // 8
+ 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E, // 9
+ 0x00, 0x00, 0x36, 0x36, 0x00, 0x00, // :
+ 0x00, 0x00, 0x56, 0x36, 0x00, 0x00, // ;
+ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, // <
+ 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, // =
+ 0x00, 0x00, 0x41, 0x22, 0x14, 0x08, // >
+ 0x00, 0x02, 0x01, 0x51, 0x09, 0x06, // ?
+
+ 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E, // @
+ 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C, // A
+ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, // B
+ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, // C
+ 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C, // D
+ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, // E
+ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01, // F
+ 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A, // G
+ 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, // H
+ 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00, // I
+ 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, // J
+ 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41, // K
+ 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, // L
+ 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F, // M
+ 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F, // N
+ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, // O
+
+ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, // P
+ 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E, // Q
+ 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46, // R
+ 0x00, 0x46, 0x49, 0x49, 0x49, 0x31, // S
+ 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01, // T
+ 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F, // U
+ 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, // V
+ 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F, // W
+ 0x00, 0x63, 0x14, 0x08, 0x14, 0x63, // X
+ 0x00, 0x07, 0x08, 0x70, 0x08, 0x07, // Y
+ 0x00, 0x61, 0x51, 0x49, 0x45, 0x43, // Z
+ 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00, // [
+ 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, // обратный слеш
+ 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00, // ]
+ 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, // ^
+ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, // _
+
+ 0x00, 0x00, 0x03, 0x05, 0x00, 0x00, // `
+ 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, // a
+ 0x00, 0x7F, 0x28, 0x44, 0x44, 0x38, // b
+ 0x00, 0x38, 0x44, 0x44, 0x44, 0x20, // c
+ 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F, // d
+ 0x00, 0x38, 0x54, 0x54, 0x54, 0x18, // e
+ 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02, // f
+ 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C, // g
+ 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78, // h
+ 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00, // i
+ 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00, // j
+ 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, // k
+ 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, // l
+ 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78, // m
+ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78, // n
+ 0x00, 0x38, 0x44, 0x44, 0x44, 0x38, // o
+
+ 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18, // p
+ 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC, // q
+ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08, // r
+ 0x00, 0x48, 0x54, 0x54, 0x54, 0x20, // s
+ 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20, // t
+ 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C, // u
+ 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C, // v
+ 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C, // w
+ 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, // x
+ 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C, // y
+ 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44, // z
+ 0x00, 0x00, 0x10, 0x7C, 0x82, 0x00, // {
+ 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, // |
+ 0x00, 0x00, 0x82, 0x7C, 0x10, 0x00, // }
+ 0x00, 0x10, 0x08, 0x10, 0x20, 0x10, // ~
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ⌂
+
+ 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C, // А
+ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x31, // Б
+ 0x00, 0x7F, 0x45, 0x45, 0x45, 0x3A, // В
+ 0x00, 0x7F, 0x01, 0x01, 0x01, 0x03, // Г
+ 0x00, 0x60, 0x3F, 0x21, 0x3F, 0x60, // Д
+ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, // Е
+ 0x00, 0x73, 0x0C, 0x7F, 0x0C, 0x73, // Ж
+ 0x00, 0x22, 0x41, 0x49, 0x49, 0x36, // З
+ 0x00, 0x7F, 0x10, 0x08, 0x04, 0x7F, // И
+ 0x00, 0x7E, 0x20, 0x11, 0x08, 0x7E, // Й
+ 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41, // К
+ 0x00, 0x40, 0x3F, 0x01, 0x01, 0x7F, // Л
+ 0x00, 0x7F, 0x06, 0x08, 0x06, 0x7F, // М
+ 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, // Н
+ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, // О
+ 0x00, 0x7F, 0x01, 0x01, 0x01, 0x7F, // П
+
+ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, // Р
+ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, // С
+ 0x00, 0x03, 0x01, 0x7F, 0x01, 0x03, // Т
+ 0x00, 0x61, 0x26, 0x18, 0x06, 0x01, // У
+ 0x00, 0x1C, 0x22, 0x7F, 0x22, 0x1C, // Ф
+ 0x00, 0x63, 0x14, 0x08, 0x14, 0x63, // Х
+ 0x00, 0x3F, 0x20, 0x20, 0x3F, 0x60, // Ц
+ 0x00, 0x07, 0x08, 0x08, 0x08, 0x7F, // Ч
+ 0x00, 0x7F, 0x40, 0x7F, 0x40, 0x7F, // Ш
+ 0x00, 0x3F, 0x20, 0x3F, 0x20, 0x7F, // Щ
+ 0x00, 0x01, 0x7F, 0x48, 0x48, 0x30, // Ъ
+ 0x00, 0x7F, 0x48, 0x78, 0x00, 0x7F, // Ы
+ 0x00, 0x7F, 0x48, 0x48, 0x30, 0x00, // Ь
+ 0x00, 0x41, 0x49, 0x49, 0x2A, 0x1C, // Э
+ 0x00, 0x7F, 0x10, 0x3E, 0x41, 0x3E, // Ю
+ 0x00, 0x66, 0x19, 0x09, 0x09, 0x7F, // Я
+
+ 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, // а
+ 0x00, 0x3E, 0x49, 0x45, 0x45, 0x38, // б
+ 0x00, 0x7C, 0x54, 0x54, 0x58, 0x20, // в
+ 0x00, 0x7C, 0x04, 0x04, 0x0C, 0x00, // г
+ 0x00, 0x38, 0x45, 0x45, 0x49, 0x3E, // д
+ 0x00, 0x38, 0x54, 0x54, 0x54, 0x18, // е
+ 0x00, 0x4C, 0x30, 0x7C, 0x30, 0x4C, // ж
+ 0x00, 0x28, 0x44, 0x54, 0x28, 0x00, // з
+ 0x00, 0x7C, 0x20, 0x10, 0x7C, 0x00, // и
+ 0x00, 0x7C, 0x21, 0x11, 0x7C, 0x00, // й
+ 0x00, 0x7C, 0x10, 0x28, 0x44, 0x00, // к
+ 0x00, 0x40, 0x3C, 0x04, 0x04, 0x7C, // л
+ 0x00, 0x7C, 0x08, 0x10, 0x08, 0x7C, // м
+ 0x00, 0x7C, 0x10, 0x10, 0x7C, 0x00, // н
+ 0x00, 0x38, 0x44, 0x44, 0x44, 0x38, // о
+ 0x00, 0x7C, 0x04, 0x04, 0x7C, 0x00, // п
+
+ 0x00, 0xFC, 0x28, 0x44, 0x44, 0x38, // р
+ 0x00, 0x38, 0x44, 0x44, 0x44, 0x28, // с
+ 0x00, 0x04, 0x04, 0x7C, 0x04, 0x04, // т
+ 0x00, 0x4C, 0x50, 0x50, 0x50, 0x3C, // у
+ 0x00, 0x38, 0x44, 0xFE, 0x44, 0x38, // ф
+ 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, // х
+ 0x00, 0x7C, 0x40, 0x40, 0x7C, 0xC0, // ц
+ 0x00, 0x1C, 0x10, 0x10, 0x7C, 0x00, // ч
+ 0x00, 0x7C, 0x40, 0x7C, 0x40, 0x7C, // ш
+ 0x00, 0x7C, 0x40, 0x7C, 0x40, 0xFC, // щ
+ 0x00, 0x04, 0x7C, 0x50, 0x70, 0x00, // ъ
+ 0x00, 0x7C, 0x50, 0x70, 0x00, 0x7C, // ы
+ 0x00, 0x00, 0x7C, 0x50, 0x70, 0x00, // ь
+ 0x00, 0x28, 0x44, 0x54, 0x38, 0x00, // э
+ 0x00, 0x7C, 0x10, 0x38, 0x44, 0x38, // ю
+ 0x00, 0x08, 0x54, 0x34, 0x14, 0x7C, // я
+
+ 0x00, 0x7E, 0x4B, 0x4A, 0x4B, 0x42, // Ё
+ 0x00, 0x38, 0x55, 0x54, 0x55, 0x18, // ё
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Є
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // є
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Ї
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ї
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Ў
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ў
+ 0x00, 0x00, 0x06, 0x09, 0x09, 0x06, // °
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ∙
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ·
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // √
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // №
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ¤
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ■
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //
+ 0x01, 0xAF, 0x30
+};
+
+// ширина символов, высота символов, код первого символа и количество символов
+const uint8_t font12x10[] = {
+ 0x0C,0x10,0x20,0x5F,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // пробел
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, // !
+ 0x00, 0x00, 0x00, 0x16, 0x0E, 0x00, 0x00, 0x16, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // "
+ 0x00, 0x00, 0x60, 0xE0, 0xF8, 0x7E, 0x6E, 0xE0, 0xF8, 0x7E, 0x6E, 0x00, 0x00, 0x76, 0x7E, 0x1F, 0x07, 0x76, 0x7E, 0x1F, 0x07, 0x06, 0x00, 0x00, // #
+ 0x00, 0x78, 0xFC, 0xCE, 0x86, 0xFF, 0xFF, 0x86, 0x9E, 0x1C, 0x18, 0x00, 0x00, 0x18, 0x38, 0x79, 0x61, 0xFF, 0xFF, 0x61, 0x73, 0x3F, 0x1E, 0x00, // $
+ 0x00, 0x3C, 0x7E, 0x66, 0x7E, 0xBC, 0xE0, 0x78, 0x1E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x78, 0x1E, 0x07, 0x3D, 0x7E, 0x66, 0x7E, 0x3C, 0x00, // %
+ 0x00, 0x00, 0x00, 0x80, 0x80, 0xFC, 0xFE, 0xE6, 0xE6, 0x7E, 0x3C, 0x00, 0x00, 0x1E, 0x3F, 0x73, 0x61, 0x61, 0x71, 0x7F, 0x3F, 0x7C, 0x6C, 0x00, // &
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // '
+ 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFC, 0x0E, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x3F, 0x70, 0xC0, 0x00, 0x00, 0x00, 0x00, // (
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x0E, 0xFC, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x70, 0x3F, 0x0F, 0x00, 0x00, 0x00, 0x00, // )
+ 0x00, 0x00, 0x00, 0x08, 0x78, 0x3C, 0x3C, 0x78, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // *
+ 0x00, 0x00, 0x80, 0x80, 0x80, 0xF0, 0xF0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x0F, 0x0F, 0x01, 0x01, 0x01, 0x00, 0x00, // +
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, // ,
+ 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, // -
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, // .
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0x78, 0x1E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x78, 0x1E, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // /
+
+ 0x00, 0xF8, 0xFC, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x0E, 0xFC, 0xF8, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, // 0
+ 0x00, 0x00, 0x00, 0x30, 0x38, 0x1C, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x00, // 1
+ 0x00, 0x18, 0x1C, 0x1E, 0x06, 0x06, 0x06, 0x86, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x78, 0x7C, 0x7E, 0x66, 0x67, 0x63, 0x63, 0x61, 0x70, 0x70, 0x00, // 2
+ 0x00, 0x0E, 0x0E, 0x06, 0x06, 0xC6, 0xE6, 0xF6, 0xFE, 0x9E, 0x0E, 0x00, 0x00, 0x18, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x71, 0x3F, 0x1F, 0x00, // 3
+ 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x66, 0x7F, 0x7F, 0x66, 0x00, // 4
+ 0x00, 0xFE, 0xFE, 0xE6, 0x66, 0x66, 0x66, 0x66, 0xE6, 0xCE, 0x8E, 0x00, 0x00, 0x18, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, // 5
+ 0x00, 0xF8, 0xFC, 0xCE, 0xC6, 0xC6, 0xC6, 0xC6, 0xDE, 0x9C, 0x18, 0x00, 0x00, 0x1F, 0x3F, 0x71, 0x60, 0x60, 0x60, 0x60, 0x71, 0x3F, 0x1F, 0x00, // 6
+ 0x00, 0x1E, 0x1E, 0x06, 0x06, 0x06, 0x06, 0x86, 0xE6, 0x7E, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x78, 0x1E, 0x07, 0x01, 0x00, 0x00, 0x00, // 7
+ 0x00, 0x78, 0xFC, 0xCE, 0x86, 0x86, 0x86, 0x86, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x1E, 0x3F, 0x73, 0x61, 0x61, 0x61, 0x61, 0x73, 0x3F, 0x1E, 0x00, // 8
+ 0x00, 0xF8, 0xFC, 0x8E, 0x06, 0x06, 0x06, 0x06, 0x8E, 0xFC, 0xF8, 0x00, 0x00, 0x18, 0x39, 0x7B, 0x63, 0x63, 0x63, 0x63, 0x73, 0x3F, 0x1F, 0x00, // 9
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, // :
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, // ;
+ 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xE0, 0x60, 0x70, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x07, 0x06, 0x0E, 0x0C, 0x0C, 0x00, 0x00, // <
+ 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, // =
+ 0x00, 0x00, 0x30, 0x30, 0x70, 0x60, 0xE0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x0E, 0x06, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, // >
+ 0x00, 0x18, 0x1C, 0x1E, 0x06, 0x06, 0x86, 0x86, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x6F, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, // ?
+
+ 0x00, 0xF8, 0xFC, 0x0E, 0xE6, 0xF6, 0x36, 0xF6, 0xF6, 0x0E, 0xFC, 0xF8, 0x00, 0x1F, 0x3F, 0x70, 0x67, 0x6F, 0x6C, 0x6F, 0x67, 0x6C, 0x2F, 0x07, //@
+ 0x00, 0x00, 0xF0, 0xFC, 0x1E, 0x06, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x63, 0x03, 0x03, 0x63, 0x7F, 0x7F, 0x60, 0x00, //A
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x86, 0x86, 0x86, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x61, 0x61, 0x61, 0x73, 0x3F, 0x1E, 0x00, //B
+ 0x00, 0xF8, 0xFC, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x1E, 0x1C, 0x18, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x60, 0x60, 0x78, 0x38, 0x18, 0x00, //C
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x06, 0x06, 0x0E, 0xFC, 0xF8, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x60, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, //D
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x86, 0x86, 0xC6, 0xC6, 0x0E, 0x0E, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x61, 0x61, 0x63, 0x63, 0x70, 0x70, 0x00, //E
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x86, 0xC6, 0xC6, 0x06, 0x0E, 0x0E, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, //F
+ 0x00, 0xF8, 0xFC, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x1E, 0x1C, 0x18, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x63, 0x63, 0x73, 0x3F, 0x1F, 0x00, //G
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x80, 0x80, 0x86, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x01, 0x01, 0x61, 0x7F, 0x7F, 0x60, 0x00, //H
+ 0x00, 0x00, 0x00, 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, //I
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x18, 0x38, 0x78, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, 0x00, //J
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x80, 0xC0, 0xF6, 0x7E, 0x1E, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x01, 0x03, 0x6F, 0x7E, 0x78, 0x60, 0x00, //K
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x70, 0x00, //L
+ 0x00, 0x06, 0xFE, 0xFE, 0x78, 0xE0, 0xE0, 0x78, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x01, 0x01, 0x60, 0x7F, 0x7F, 0x60, 0x00, //M
+ 0x00, 0x06, 0xFE, 0xFE, 0x78, 0xE0, 0x80, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x01, 0x07, 0x1E, 0x7F, 0x7F, 0x60, 0x00, //N
+ 0x00, 0xF8, 0xFC, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x0E, 0xFC, 0xF8, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, //O
+
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x06, 0x06, 0x8E, 0xFC, 0xF8, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x63, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, // P
+ 0x00, 0xF8, 0xFC, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x0E, 0xFC, 0xF8, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x6C, 0x7C, 0x38, 0x7F, 0x6F, 0x00, // Q
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x06, 0x06, 0x8E, 0xFC, 0xF8, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x63, 0x03, 0x03, 0x6F, 0x7F, 0x79, 0x60, 0x00, // R
+ 0x00, 0x78, 0xFC, 0xCE, 0x86, 0x86, 0x86, 0x86, 0x9E, 0x1C, 0x18, 0x00, 0x00, 0x18, 0x38, 0x79, 0x61, 0x61, 0x61, 0x61, 0x73, 0x3F, 0x1E, 0x00, // S
+ 0x00, 0x0E, 0x0E, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, // T
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, 0x00, // U
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x3E, 0x78, 0x78, 0x3E, 0x0F, 0x03, 0x00, 0x00, // V
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x80, 0x80, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x1F, 0x7F, 0x78, 0x1F, 0x1F, 0x78, 0x7F, 0x1F, 0x00, 0x00, // W
+ 0x00, 0x06, 0x1E, 0x7E, 0xF6, 0xC0, 0xC0, 0xF6, 0x7E, 0x1E, 0x06, 0x00, 0x00, 0x60, 0x78, 0x7E, 0x6F, 0x03, 0x03, 0x6F, 0x7E, 0x78, 0x60, 0x00, // X
+ 0x00, 0x06, 0x7E, 0xFE, 0xC6, 0x00, 0x00, 0xC6, 0xFE, 0x7E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x63, 0x7F, 0x7F, 0x63, 0x01, 0x00, 0x00, 0x00, // Y
+ 0x00, 0x0E, 0x0E, 0x06, 0x06, 0x86, 0xC6, 0xE6, 0x76, 0x3E, 0x1E, 0x00, 0x00, 0x78, 0x7C, 0x6E, 0x67, 0x63, 0x61, 0x60, 0x60, 0x70, 0x70, 0x00, // Z
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, // [
+ 0x00, 0x00, 0x06, 0x1E, 0x78, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1E, 0x78, 0x60, 0x00, 0x00, // обратный слеш
+ 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, // ]
+ 0x00, 0x00, 0x00, 0x30, 0x3C, 0x1E, 0x1E, 0x3C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ^
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, // _
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // `
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x1C, 0x3E, 0x77, 0x63, 0x63, 0x63, 0x33, 0x7F, 0x7F, 0x60, 0x00, // a
+ 0x00, 0x06, 0xFE, 0xFE, 0x66, 0x30, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x30, 0x60, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, // b
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x30, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x60, 0x60, 0x78, 0x38, 0x18, 0x00, // c
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x66, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x60, 0x30, 0x7F, 0x7F, 0x60, 0x00, // d
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x1F, 0x3F, 0x76, 0x66, 0x66, 0x66, 0x66, 0x76, 0x37, 0x17, 0x00, // e
+ 0x00, 0x00, 0x00, 0x60, 0xFC, 0xFE, 0x66, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // f
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x60, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x33, 0x77, 0xEE, 0xCC, 0xCC, 0xCC, 0xEE, 0x7F, 0x3F, 0x00, 0x00, // g
+ 0x00, 0x06, 0xFE, 0xFE, 0x66, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, // h
+ 0x00, 0x00, 0x00, 0x00, 0x30, 0xF6, 0xF6, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, // i
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xF6, 0xF6, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, // j
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x80, 0xF0, 0xF0, 0x70, 0x30, 0x30, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x63, 0x07, 0x0F, 0x7C, 0x78, 0x70, 0x60, 0x00, // k
+ 0x00, 0x00, 0x00, 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, // l
+ 0x30, 0xF0, 0xE0, 0x30, 0x30, 0xF0, 0xE0, 0x30, 0x30, 0xF0, 0xE0, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x7F, 0x7F, 0x00, 0x60, 0x7F, 0x7F, 0x60, // m
+ 0x00, 0x30, 0xF0, 0xF0, 0x60, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, // n
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, // o
+
+ 0x00, 0x30, 0xF0, 0xF0, 0x60, 0x30, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xD8, 0x30, 0x30, 0x30, 0x38, 0x1F, 0x0F, 0x00, // p
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x60, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x0F, 0x1F, 0x38, 0x30, 0x30, 0x30, 0xD8, 0xFF, 0xFF, 0xC0, 0x00, // q
+ 0x00, 0x00, 0x30, 0xF0, 0xF0, 0x60, 0x30, 0x30, 0x70, 0x60, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // r
+ 0x00, 0xE0, 0xF0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x70, 0x70, 0x60, 0x00, 0x00, 0x19, 0x3B, 0x7B, 0x63, 0x63, 0x63, 0x63, 0x77, 0x3E, 0x1C, 0x00, // s
+ 0x00, 0x00, 0x00, 0x30, 0xFE, 0xFE, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, // t
+ 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x30, 0x7F, 0x7F, 0x60, 0x00, // u
+ 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1F, 0x78, 0x78, 0x1F, 0x07, 0x00, 0x00, 0x00, // v
+ 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x03, 0x1F, 0x7C, 0x70, 0x1E, 0x1E, 0x70, 0x7C, 0x1F, 0x03, 0x00, // w
+ 0x00, 0x00, 0x30, 0x70, 0xF0, 0x80, 0x80, 0xF0, 0x70, 0x30, 0x00, 0x00, 0x00, 0x00, 0x60, 0x70, 0x7D, 0x0F, 0x0F, 0x7D, 0x70, 0x60, 0x00, 0x00, // x
+ 0x00, 0x00, 0x30, 0xF0, 0xC0, 0x00, 0x00, 0xC0, 0xF0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x73, 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, // y
+ 0x00, 0x00, 0x70, 0x70, 0x30, 0x30, 0xB0, 0xF0, 0xF0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7C, 0x6E, 0x67, 0x63, 0x61, 0x70, 0x70, 0x00, 0x00, // z
+ 0x00, 0x00, 0x80, 0xC0, 0xFC, 0x7E, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x3F, 0x7E, 0xE0, 0xC0, 0xC0, 0x00, 0x00, 0x00, // {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, // |
+ 0x00, 0x00, 0x00, 0x03, 0x03, 0x07, 0x7E, 0xFC, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xE0, 0x7E, 0x3F, 0x03, 0x01, 0x00, 0x00, // }
+ 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, // ~
+ 0
+};
+
+// ширина символов, высота символов, код первого символа и количество символов
+const uint8_t fontRus12x10[] = {
+ 0x0C, 0x10, 0x20,0xB0,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // пробел
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, // !
+ 0x00, 0x00, 0x00, 0x16, 0x0E, 0x00, 0x00, 0x16, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // "
+ 0x00, 0x00, 0x60, 0xE0, 0xF8, 0x7E, 0x6E, 0xE0, 0xF8, 0x7E, 0x6E, 0x00, 0x00, 0x76, 0x7E, 0x1F, 0x07, 0x76, 0x7E, 0x1F, 0x07, 0x06, 0x00, 0x00, // #
+ 0x00, 0x78, 0xFC, 0xCE, 0x86, 0xFF, 0xFF, 0x86, 0x9E, 0x1C, 0x18, 0x00, 0x00, 0x18, 0x38, 0x79, 0x61, 0xFF, 0xFF, 0x61, 0x73, 0x3F, 0x1E, 0x00, // $
+ 0x00, 0x3C, 0x7E, 0x66, 0x7E, 0xBC, 0xE0, 0x78, 0x1E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x78, 0x1E, 0x07, 0x3D, 0x7E, 0x66, 0x7E, 0x3C, 0x00, // %
+ 0x00, 0x00, 0x00, 0x80, 0x80, 0xFC, 0xFE, 0xE6, 0xE6, 0x7E, 0x3C, 0x00, 0x00, 0x1E, 0x3F, 0x73, 0x61, 0x61, 0x71, 0x7F, 0x3F, 0x7C, 0x6C, 0x00, // &
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // '
+ 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFC, 0x0E, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x3F, 0x70, 0xC0, 0x00, 0x00, 0x00, 0x00, // (
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x0E, 0xFC, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x70, 0x3F, 0x0F, 0x00, 0x00, 0x00, 0x00, // )
+ 0x00, 0x00, 0x00, 0x08, 0x78, 0x3C, 0x3C, 0x78, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // *
+ 0x00, 0x00, 0x80, 0x80, 0x80, 0xF0, 0xF0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x0F, 0x0F, 0x01, 0x01, 0x01, 0x00, 0x00, // +
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, // ,
+ 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, // -
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, // .
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0x78, 0x1E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x78, 0x1E, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // /
+
+ 0x00, 0xF8, 0xFC, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x0E, 0xFC, 0xF8, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, // 0
+ 0x00, 0x00, 0x00, 0x30, 0x38, 0x1C, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x00, // 1
+ 0x00, 0x18, 0x1C, 0x1E, 0x06, 0x06, 0x06, 0x86, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x78, 0x7C, 0x7E, 0x66, 0x67, 0x63, 0x63, 0x61, 0x70, 0x70, 0x00, // 2
+ 0x00, 0x0E, 0x0E, 0x06, 0x06, 0xC6, 0xE6, 0xF6, 0xFE, 0x9E, 0x0E, 0x00, 0x00, 0x18, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x71, 0x3F, 0x1F, 0x00, // 3
+ 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x66, 0x7F, 0x7F, 0x66, 0x00, // 4
+ 0x00, 0xFE, 0xFE, 0xE6, 0x66, 0x66, 0x66, 0x66, 0xE6, 0xCE, 0x8E, 0x00, 0x00, 0x18, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, // 5
+ 0x00, 0xF8, 0xFC, 0xCE, 0xC6, 0xC6, 0xC6, 0xC6, 0xDE, 0x9C, 0x18, 0x00, 0x00, 0x1F, 0x3F, 0x71, 0x60, 0x60, 0x60, 0x60, 0x71, 0x3F, 0x1F, 0x00, // 6
+ 0x00, 0x1E, 0x1E, 0x06, 0x06, 0x06, 0x06, 0x86, 0xE6, 0x7E, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x78, 0x1E, 0x07, 0x01, 0x00, 0x00, 0x00, // 7
+ 0x00, 0x78, 0xFC, 0xCE, 0x86, 0x86, 0x86, 0x86, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x1E, 0x3F, 0x73, 0x61, 0x61, 0x61, 0x61, 0x73, 0x3F, 0x1E, 0x00, // 8
+ 0x00, 0xF8, 0xFC, 0x8E, 0x06, 0x06, 0x06, 0x06, 0x8E, 0xFC, 0xF8, 0x00, 0x00, 0x18, 0x39, 0x7B, 0x63, 0x63, 0x63, 0x63, 0x73, 0x3F, 0x1F, 0x00, // 9
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, // :
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, // ;
+ 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xE0, 0x60, 0x70, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x07, 0x06, 0x0E, 0x0C, 0x0C, 0x00, 0x00, // <
+ 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, // =
+ 0x00, 0x00, 0x30, 0x30, 0x70, 0x60, 0xE0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x0E, 0x06, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, // >
+ 0x00, 0x18, 0x1C, 0x1E, 0x06, 0x06, 0x86, 0x86, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x6F, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, // ?
+
+ 0x00, 0xF8, 0xFC, 0x0E, 0xE6, 0xF6, 0x36, 0xF6, 0xF6, 0x0E, 0xFC, 0xF8, 0x00, 0x1F, 0x3F, 0x70, 0x67, 0x6F, 0x6C, 0x6F, 0x67, 0x6C, 0x2F, 0x07, // @
+ 0x00, 0x00, 0xF0, 0xFC, 0x1E, 0x06, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x63, 0x03, 0x03, 0x63, 0x7F, 0x7F, 0x60, 0x00, // A
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x86, 0x86, 0x86, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x61, 0x61, 0x61, 0x73, 0x3F, 0x1E, 0x00, // B
+ 0x00, 0xF8, 0xFC, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x1E, 0x1C, 0x18, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x60, 0x60, 0x78, 0x38, 0x18, 0x00, // C
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x06, 0x06, 0x0E, 0xFC, 0xF8, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x60, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, // D
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x86, 0x86, 0xC6, 0xC6, 0x0E, 0x0E, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x61, 0x61, 0x63, 0x63, 0x70, 0x70, 0x00, // E
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x86, 0xC6, 0xC6, 0x06, 0x0E, 0x0E, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, // F
+ 0x00, 0xF8, 0xFC, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x1E, 0x1C, 0x18, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x63, 0x63, 0x73, 0x3F, 0x1F, 0x00, // G
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x80, 0x80, 0x86, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x01, 0x01, 0x61, 0x7F, 0x7F, 0x60, 0x00, // H
+ 0x00, 0x00, 0x00, 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, // I
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x18, 0x38, 0x78, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, 0x00, // J
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x80, 0xC0, 0xF6, 0x7E, 0x1E, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x01, 0x03, 0x6F, 0x7E, 0x78, 0x60, 0x00, // K
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x70, 0x00, // L
+ 0x00, 0x06, 0xFE, 0xFE, 0x78, 0xE0, 0xE0, 0x78, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x01, 0x01, 0x60, 0x7F, 0x7F, 0x60, 0x00, // M
+ 0x00, 0x06, 0xFE, 0xFE, 0x78, 0xE0, 0x80, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x01, 0x07, 0x1E, 0x7F, 0x7F, 0x60, 0x00, // N
+ 0x00, 0xF8, 0xFC, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x0E, 0xFC, 0xF8, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, // O
+
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x06, 0x06, 0x8E, 0xFC, 0xF8, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x63, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, // P
+ 0x00, 0xF8, 0xFC, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x0E, 0xFC, 0xF8, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x6C, 0x7C, 0x38, 0x7F, 0x6F, 0x00, // Q
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x06, 0x06, 0x8E, 0xFC, 0xF8, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x63, 0x03, 0x03, 0x6F, 0x7F, 0x79, 0x60, 0x00, // R
+ 0x00, 0x78, 0xFC, 0xCE, 0x86, 0x86, 0x86, 0x86, 0x9E, 0x1C, 0x18, 0x00, 0x00, 0x18, 0x38, 0x79, 0x61, 0x61, 0x61, 0x61, 0x73, 0x3F, 0x1E, 0x00, // S
+ 0x00, 0x0E, 0x0E, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, // T
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, 0x00, // U
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x3E, 0x78, 0x78, 0x3E, 0x0F, 0x03, 0x00, 0x00, // V
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x80, 0x80, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x1F, 0x7F, 0x78, 0x1F, 0x1F, 0x78, 0x7F, 0x1F, 0x00, 0x00, // W
+ 0x00, 0x06, 0x1E, 0x7E, 0xF6, 0xC0, 0xC0, 0xF6, 0x7E, 0x1E, 0x06, 0x00, 0x00, 0x60, 0x78, 0x7E, 0x6F, 0x03, 0x03, 0x6F, 0x7E, 0x78, 0x60, 0x00, // X
+ 0x00, 0x06, 0x7E, 0xFE, 0xC6, 0x00, 0x00, 0xC6, 0xFE, 0x7E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x63, 0x7F, 0x7F, 0x63, 0x01, 0x00, 0x00, 0x00, // Y
+ 0x00, 0x0E, 0x0E, 0x06, 0x06, 0x86, 0xC6, 0xE6, 0x76, 0x3E, 0x1E, 0x00, 0x00, 0x78, 0x7C, 0x6E, 0x67, 0x63, 0x61, 0x60, 0x60, 0x70, 0x70, 0x00, // Z
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, // [
+ 0x00, 0x00, 0x06, 0x1E, 0x78, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1E, 0x78, 0x60, 0x00, 0x00, // обратный слеш
+ 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, // ]
+ 0x00, 0x00, 0x00, 0x30, 0x3C, 0x1E, 0x1E, 0x3C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ^
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, // _
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // `
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x1C, 0x3E, 0x77, 0x63, 0x63, 0x63, 0x33, 0x7F, 0x7F, 0x60, 0x00, // a
+ 0x00, 0x06, 0xFE, 0xFE, 0x66, 0x30, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x30, 0x60, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, // b
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x30, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x60, 0x60, 0x78, 0x38, 0x18, 0x00, // c
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x66, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x60, 0x30, 0x7F, 0x7F, 0x60, 0x00, // d
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x1F, 0x3F, 0x76, 0x66, 0x66, 0x66, 0x66, 0x76, 0x37, 0x17, 0x00, // e
+ 0x00, 0x00, 0x00, 0x60, 0xFC, 0xFE, 0x66, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // f
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x60, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x33, 0x77, 0xEE, 0xCC, 0xCC, 0xCC, 0xEE, 0x7F, 0x3F, 0x00, 0x00, // g
+ 0x00, 0x06, 0xFE, 0xFE, 0x66, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, // h
+ 0x00, 0x00, 0x00, 0x00, 0x30, 0xF6, 0xF6, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, // i
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xF6, 0xF6, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, // j
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x80, 0xF0, 0xF0, 0x70, 0x30, 0x30, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x63, 0x07, 0x0F, 0x7C, 0x78, 0x70, 0x60, 0x00, // k
+ 0x00, 0x00, 0x00, 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, // l
+ 0x30, 0xF0, 0xE0, 0x30, 0x30, 0xF0, 0xE0, 0x30, 0x30, 0xF0, 0xE0, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x7F, 0x7F, 0x00, 0x60, 0x7F, 0x7F, 0x60, // m
+ 0x00, 0x30, 0xF0, 0xF0, 0x60, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, // n
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, // o
+
+ 0x00, 0x30, 0xF0, 0xF0, 0x60, 0x30, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xD8, 0x30, 0x30, 0x30, 0x38, 0x1F, 0x0F, 0x00, // p
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x60, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x0F, 0x1F, 0x38, 0x30, 0x30, 0x30, 0xD8, 0xFF, 0xFF, 0xC0, 0x00, // q
+ 0x00, 0x00, 0x30, 0xF0, 0xF0, 0x60, 0x30, 0x30, 0x70, 0x60, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // r
+ 0x00, 0xE0, 0xF0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x70, 0x70, 0x60, 0x00, 0x00, 0x19, 0x3B, 0x7B, 0x63, 0x63, 0x63, 0x63, 0x77, 0x3E, 0x1C, 0x00, // s
+ 0x00, 0x00, 0x00, 0x30, 0xFE, 0xFE, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, // t
+ 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x30, 0x7F, 0x7F, 0x60, 0x00, // u
+ 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1F, 0x78, 0x78, 0x1F, 0x07, 0x00, 0x00, 0x00, // v
+ 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x03, 0x1F, 0x7C, 0x70, 0x1E, 0x1E, 0x70, 0x7C, 0x1F, 0x03, 0x00, // w
+ 0x00, 0x00, 0x30, 0x70, 0xF0, 0x80, 0x80, 0xF0, 0x70, 0x30, 0x00, 0x00, 0x00, 0x00, 0x60, 0x70, 0x7D, 0x0F, 0x0F, 0x7D, 0x70, 0x60, 0x00, 0x00, // x
+ 0x00, 0x00, 0x30, 0xF0, 0xC0, 0x00, 0x00, 0xC0, 0xF0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x73, 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, // y
+ 0x00, 0x00, 0x70, 0x70, 0x30, 0x30, 0xB0, 0xF0, 0xF0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7C, 0x6E, 0x67, 0x63, 0x61, 0x70, 0x70, 0x00, 0x00, // z
+ 0x00, 0x00, 0x80, 0xC0, 0xFC, 0x7E, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x3F, 0x7E, 0xE0, 0xC0, 0xC0, 0x00, 0x00, 0x00, // {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, // |
+ 0x00, 0x00, 0x00, 0x03, 0x03, 0x07, 0x7E, 0xFC, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xE0, 0x7E, 0x3F, 0x03, 0x01, 0x00, 0x00, // }
+ 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, // ~
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ⌂
+
+ 0x00, 0x00, 0xF0, 0xFC, 0x1E, 0x06, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x63, 0x03, 0x03, 0x63, 0x7F, 0x7F, 0x60, 0x00, // А
+ 0x00, 0x06, 0xFE, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x8E, 0x0E, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x60, 0x60, 0x60, 0x71, 0x3F, 0x1F, 0x00, // Б
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x86, 0x86, 0x86, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x61, 0x61, 0x61, 0x73, 0x3F, 0x1E, 0x00, // В
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0E, 0x0E, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Г
+ 0x00, 0x00, 0xF0, 0xFC, 0x1E, 0x06, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x78, 0x7F, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x7F, 0x78, 0x00, // Д
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x86, 0x86, 0xC6, 0xC6, 0x0E, 0x0E, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x61, 0x61, 0x63, 0x63, 0x70, 0x70, 0x00, // Е
+ 0x00, 0x06, 0x7E, 0xFE, 0xC0, 0xFE, 0xFE, 0xC0, 0xFE, 0x7E, 0x06, 0x00, 0x00, 0x60, 0x7E, 0x7F, 0x03, 0x7F, 0x7F, 0x03, 0x7F, 0x7E, 0x60, 0x00, // Ж
+ 0x00, 0x18, 0x1C, 0x1E, 0x06, 0x06, 0xC6, 0xC6, 0xEE, 0xFC, 0x38, 0x00, 0x00, 0x18, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x71, 0x3F, 0x1F, 0x00, // З
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x80, 0xE0, 0x78, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x1E, 0x07, 0x01, 0x60, 0x7F, 0x7F, 0x60, 0x00, // И
+ 0x00, 0x06, 0xFE, 0xFE, 0x01, 0x83, 0xE3, 0x79, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x1E, 0x07, 0x01, 0x60, 0x7F, 0x7F, 0x60, 0x00, // Й
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x80, 0xC0, 0xF6, 0x7E, 0x1E, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x01, 0x03, 0x6F, 0x7E, 0x78, 0x60, 0x00, // К
+ 0x00, 0x00, 0xF0, 0xFC, 0x1E, 0x06, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, // Л
+ 0x00, 0x06, 0xFE, 0xFE, 0x78, 0xE0, 0xE0, 0x78, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x01, 0x01, 0x60, 0x7F, 0x7F, 0x60, 0x00, // М
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x80, 0x80, 0x86, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x01, 0x01, 0x61, 0x7F, 0x7F, 0x60, 0x00, // Н
+ 0x00, 0xF8, 0xFC, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x0E, 0xFC, 0xF8, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, // О
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, // П
+
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x06, 0x06, 0x8E, 0xFC, 0xF8, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x63, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, // Р
+ 0x00, 0xF8, 0xFC, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x1E, 0x1C, 0x18, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x60, 0x60, 0x78, 0x38, 0x18, 0x00, // С
+ 0x00, 0x0E, 0x0E, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, // Т
+ 0x00, 0x06, 0x1E, 0x7E, 0xF6, 0xC0, 0xC0, 0xF6, 0x7E, 0x1E, 0x06, 0x00, 0x00, 0x60, 0x60, 0x70, 0x7D, 0x1F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, // У
+ 0x00, 0xF0, 0xF8, 0x1C, 0x0C, 0xFE, 0xFE, 0x0C, 0x1C, 0xF8, 0xF0, 0x00, 0x00, 0x0F, 0x1F, 0x38, 0x30, 0x7F, 0x7F, 0x30, 0x38, 0x1F, 0x0F, 0x00, // Ф
+ 0x00, 0x06, 0x1E, 0x7E, 0xF6, 0xC0, 0xC0, 0xF6, 0x7E, 0x1E, 0x06, 0x00, 0x00, 0x60, 0x78, 0x7E, 0x6F, 0x03, 0x03, 0x6F, 0x7E, 0x78, 0x60, 0x00, // Х
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x60, 0x60, 0x60, 0x7F, 0x7F, 0xE0, 0xE0, // Ц
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x00, 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x63, 0x7F, 0x7F, 0x60, 0x00, // Ч
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0xF0, 0xF0, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x7F, 0x7F, 0x60, 0x7F, 0x7F, 0x60, 0x00, // Ш
+ 0x00, 0x06, 0xFE, 0xFE, 0x06, 0xF0, 0xF0, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x7F, 0x7F, 0x60, 0x7F, 0x7F, 0xE0, 0xE0, // Щ
+ 0x06, 0x06, 0xFE, 0xFE, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x61, 0x61, 0x61, 0x73, 0x3F, 0x1E, 0x00, // Ъ
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x80, 0x00, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x7F, 0x1F, 0x60, 0x7F, 0x7F, 0x60, 0x00, // Ы
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x61, 0x61, 0x61, 0x73, 0x3F, 0x1E, 0x00, // Ь
+ 0x00, 0x18, 0x1C, 0x1E, 0x06, 0x06, 0x86, 0x86, 0x8E, 0xFC, 0xF8, 0x00, 0x00, 0x18, 0x38, 0x78, 0x60, 0x60, 0x61, 0x61, 0x71, 0x3F, 0x1F, 0x00, // Э
+ 0x00, 0x06, 0xFE, 0xFE, 0x86, 0xF8, 0xFC, 0x0E, 0x06, 0x0E, 0xFC, 0xF8, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x1F, 0x3F, 0x70, 0x60, 0x70, 0x3F, 0x1F, // Ю
+ 0x00, 0xF8, 0xFC, 0x8E, 0x06, 0x06, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x00, 0x00, 0x60, 0x79, 0x7F, 0x6F, 0x03, 0x03, 0x63, 0x7F, 0x7F, 0x60, 0x00, // Я
+
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x1C, 0x3E, 0x77, 0x63, 0x63, 0x63, 0x33, 0x7F, 0x7F, 0x60, 0x00, // а
+ 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x70, 0x70, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x63, 0x63, 0x63, 0x63, 0x77, 0x3E, 0x1C, 0x00, // б
+ 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x30, 0x30, 0x30, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x63, 0x63, 0x63, 0x63, 0x77, 0x3F, 0x1C, 0x00, // в
+ 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x70, 0x70, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // г
+ 0x00, 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0xF0, 0xFF, 0x3F, 0x30, 0x30, 0x30, 0x30, 0x3F, 0xFF, 0xF0, 0x00, // д
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x1F, 0x3F, 0x76, 0x66, 0x66, 0x66, 0x66, 0x76, 0x37, 0x17, 0x00, // е
+ 0x00, 0x30, 0x70, 0xF0, 0x80, 0xF0, 0xF0, 0x80, 0xF0, 0x70, 0x30, 0x00, 0x00, 0x60, 0x70, 0x7D, 0x0F, 0x7F, 0x7F, 0x0F, 0x7D, 0x70, 0x60, 0x00, // ж
+ 0x00, 0xC0, 0xE0, 0xF0, 0x30, 0x30, 0x30, 0x30, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x18, 0x38, 0x78, 0x60, 0x63, 0x63, 0x63, 0x77, 0x3F, 0x1C, 0x00, // з
+ 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0xB0, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x7C, 0x0E, 0x07, 0x63, 0x7F, 0x7F, 0x60, 0x00, // и
+ 0x00, 0x30, 0xF0, 0xF3, 0x37, 0x06, 0x06, 0xB7, 0xF3, 0xF0, 0x30, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x7C, 0x0E, 0x07, 0x63, 0x7F, 0x7F, 0x60, 0x00, // й
+ 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x80, 0xF0, 0xF0, 0x70, 0x30, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x63, 0x07, 0x0F, 0x7D, 0x78, 0x70, 0x60, 0x00, // к
+ 0x00, 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x60, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, // л
+ 0x00, 0x30, 0xF0, 0xF0, 0xC0, 0x80, 0x80, 0xC0, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x07, 0x07, 0x61, 0x7F, 0x7F, 0x60, 0x00, // м
+ 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x63, 0x03, 0x03, 0x63, 0x7F, 0x7F, 0x60, 0x00, // н
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x3F, 0x1F, 0x00, // о
+ 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x30, 0x30, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, // п
+
+ 0x00, 0x30, 0xF0, 0xF0, 0x60, 0x30, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xD8, 0x30, 0x30, 0x30, 0x38, 0x1F, 0x0F, 0x00, // р
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x30, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x60, 0x60, 0x78, 0x38, 0x18, 0x00, // с
+ 0x00, 0x70, 0x70, 0x30, 0x30, 0xF0, 0xF0, 0x30, 0x30, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, // т
+ 0x00, 0x00, 0x30, 0xF0, 0xF0, 0x00, 0x00, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x73, 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, // у
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0xF8, 0xF8, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x1F, 0x3F, 0x70, 0x60, 0xFF, 0xFF, 0x60, 0x70, 0x3F, 0x1F, 0x00, // ф
+ 0x00, 0x00, 0x30, 0x70, 0xF0, 0x80, 0x80, 0xF0, 0x70, 0x30, 0x00, 0x00, 0x00, 0x00, 0x60, 0x70, 0x7D, 0x0F, 0x0F, 0x7D, 0x70, 0x60, 0x00, 0x00, // х
+ 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x60, 0x60, 0x60, 0x7F, 0x7F, 0xE0, 0xE0, // ц
+ 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x00, 0x03, 0x07, 0x06, 0x06, 0x06, 0x66, 0x7F, 0x7F, 0x60, 0x00, // ч
+ 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x80, 0x80, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x7F, 0x7F, 0x60, 0x7F, 0x7F, 0x60, 0x00, // ш
+ 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x80, 0x80, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x60, 0x7F, 0x7F, 0x60, 0x7F, 0x7F, 0xE0, 0xE0, // щ
+ 0x30, 0x30, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x63, 0x63, 0x63, 0x63, 0x77, 0x3E, 0x1C, 0x00, // ъ
+ 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x60, 0x7F, 0x7F, 0x63, 0x63, 0x77, 0x3E, 0x1C, 0x60, 0x7F, 0x7F, 0x60, // ы
+ 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x63, 0x63, 0x63, 0x63, 0x77, 0x3E, 0x1C, 0x00, // ь
+ 0x00, 0xC0, 0xE0, 0xF0, 0x30, 0x30, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x18, 0x38, 0x78, 0x60, 0x60, 0x63, 0x63, 0x73, 0x3F, 0x1F, 0x00, // э
+ 0x30, 0xF0, 0xF0, 0x30, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x70, 0xE0, 0xC0, 0x60, 0x7F, 0x7F, 0x63, 0x1F, 0x3F, 0x70, 0x60, 0x60, 0x70, 0x3F, 0x1F, // ю
+ 0x00, 0xC0, 0xE0, 0x70, 0x30, 0x30, 0x30, 0x30, 0xF0, 0xF0, 0x30, 0x00, 0x00, 0x61, 0x73, 0x7F, 0x6E, 0x06, 0x06, 0x66, 0x7F, 0x7F, 0x60, 0x00, // я
+
+ 0x00, 0x0C, 0xFC, 0xFF, 0x8F, 0x8C, 0x8C, 0xCF, 0xCF, 0x1C, 0x1C, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x61, 0x61, 0x61, 0x63, 0x63, 0x70, 0x70, 0x00, // Ё
+ 0x00, 0xC0, 0xE0, 0x76, 0x36, 0x30, 0x30, 0x36, 0x76, 0xE0, 0xC0, 0x00, 0x00, 0x1F, 0x3F, 0x76, 0x66, 0x66, 0x66, 0x66, 0x76, 0x37, 0x17, 0x00, // ё
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Є
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // є
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Ї
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ї
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Ў
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ў
+ 0x00, 0x3C, 0x7E, 0x66, 0x66, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // °
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ∙
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ·
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // √
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // №
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ¤
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ■
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //
+ 0x01, 0xAF, 0x30
+};
+// ширина символов, высота символов, код первого символа и количество символов
+const uint8_t mediumNumbers[] = {
+ 0x0C, 0x10, 0x2D, 0x0D,
+
+ 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, // -
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, // .
+ 0x00, 0x00, 0x02, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x02, 0x00, 0x00, 0x00, 0x00, 0x81, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x81, 0x00, 0x00, // /
+ 0x00, 0xFC, 0x7A, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7A, 0xFC, 0x00, 0x00, 0x7E, 0xBC, 0xC0, 0xC0, 0xc0, 0xC0, 0xC0, 0xC0, 0xBC, 0x7E, 0x00, // 0
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x00, // 1
+ 0x00, 0x00, 0x02, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x7A, 0xFC, 0x00, 0x00, 0x7E, 0xBD, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x81, 0x00, 0x00, // 2
+ 0x00, 0x00, 0x02, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x7A, 0xFC, 0x00, 0x00, 0x00, 0x81, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xBD, 0x7E, 0x00, // 3
+ 0x00, 0xFC, 0x78, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x78, 0xFC, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x3D, 0x7E, 0x00, // 4
+ 0x00, 0xFC, 0x7A, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x02, 0x00, 0x00, 0x00, 0x00, 0x81, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xBD, 0x7E, 0x00, // 5
+ 0x00, 0xFC, 0x7A, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x02, 0x00, 0x00, 0x00, 0x7E, 0xBD, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xBD, 0x7E, 0x00, // 6
+ 0x00, 0x00, 0x02, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7A, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x00, // 7
+ 0x00, 0xFC, 0x7A, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x7A, 0xFC, 0x00, 0x00, 0x7E, 0xBD, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xBD, 0x7E, 0x00, // 8
+ 0x00, 0xFC, 0x7A, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x7A, 0xFC, 0x00, 0x00, 0x00, 0x81, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xBD, 0x7E, 0x00, // 9
+ 0
+};
+
+// ширина символов, высота символов, код первого символа и количество символов
+const uint8_t bigNumbers[] = {
+ 0x0E, 0x18, 0x2D, 0x0D,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // -
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xE0, 0xE0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, // .
+ 0x00, 0x00, 0x02, 0x06, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00, // /
+ 0x00, 0xFC, 0xFA, 0xF6, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0xF6, 0xFA, 0xFC, 0x00, 0x00, 0xEF, 0xC7, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xC7, 0xEF, 0x00, 0x00, 0x7F, 0xBF, 0xDF, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xDF, 0xbf, 0x7F, 0x00, // 0
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF8, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xC7, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x7F, 0x00, // 1
+ 0x00, 0x00, 0x02, 0x06, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0xF6, 0xFA, 0xFC, 0x00, 0x00, 0xE0, 0xD0, 0xB8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x3B, 0x17, 0x0f, 0x00, 0x00, 0x7F, 0xBF, 0xDF, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00, // 2
+ 0x00, 0x00, 0x02, 0x06, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0e, 0xF6, 0xFA, 0xFC, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xBB, 0xD7, 0xEF, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xDF, 0xBF, 0x7F, 0x00, // 3
+ 0x00, 0xFC, 0xF8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF8, 0xFC, 0x00, 0x00, 0x0F, 0x17, 0x3B, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xBB, 0xD7, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x7F, 0x00, // 4
+ 0x00, 0xFC, 0xFA, 0xF6, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x06, 0x02, 0x00, 0x00, 0x00, 0x0F, 0x17, 0x3B, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xB8, 0xD0, 0xE0, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xDF, 0xBF, 0x7F, 0x00, // 5
+ 0x00, 0xFC, 0xFA, 0xF6, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x06, 0x02, 0x00, 0x00, 0x00, 0xEF, 0xD7, 0xBB, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xB8, 0xD0, 0xE0, 0x00, 0x00, 0x7F, 0xBF, 0xDF, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xDF, 0xBF, 0x7F, 0x00, // 6
+ 0x00, 0x00, 0x02, 0x06, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0xF6, 0xFA, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xC7, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x7F, 0x00, // 7
+ 0x00, 0xFC, 0xFA, 0xF6, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0xF6, 0xFA, 0xFC, 0x00, 0x00, 0xEF, 0xD7, 0xBB, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xBB, 0xD7, 0xEF, 0x00, 0x00, 0x7F, 0xBF, 0xDF, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xDF, 0xBF, 0x7F, 0x00, // 8
+ 0x00, 0xFC, 0xFA, 0xF6, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0xF6, 0xFA, 0xFC, 0x00, 0x00, 0x0F, 0x17, 0x3B, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xBB, 0xD7, 0xEF, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xDF, 0xBF, 0x7F, 0x00, // 9
+ 0
+};
+
+// ширина символов, высота символов, код первого символа и количество символов
+const uint8_t megaNumbers[] = {
+ 0x18, 0x28, 0x2D, 0x0D,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // -
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xF8, 0xFC, 0xFE, 0xFE, 0xFC, 0xF8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x1F, 0x3F, 0x3F, 0x1F, 0x0F, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x7C, 0xFE, 0xFF, 0xFF, 0xFE, 0x7C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // /
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0xF8, 0xF0, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xFC, 0xFE, 0x3F, 0x07, 0x01, 0x03, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF8, 0xF0, 0xE0, 0xE0, 0xC0, 0x80, 0xE0, 0xF8, 0xFF, 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x0F, 0x1F, 0x1F, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x07, 0x07, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x0F, 0x1F, 0x3F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // 1
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0xF0, 0xF0, 0xE0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x03, 0x01, 0x83, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF8, 0xFC, 0xFF, 0xFF, 0x7F, 0x3F, 0x1F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF0, 0xF8, 0xFE, 0xDF, 0xEF, 0xEF, 0xE7, 0xE3, 0xE1, 0xE1, 0xE0, 0xE0, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1F, 0x0F, 0x0F, 0x0F, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x0F, 0x1F, 0x1F, 0x0F, 0x07, 0x03, 0x00, 0x00, 0x00, // 2
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0, 0xF0, 0xF8, 0xF8, 0xF8, 0xF0, 0xF0, 0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0F, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x81, 0xC0, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x0F, 0x0F, 0x0F, 0x1F, 0x3F, 0xFF, 0xFF, 0xFF, 0xF9, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x0F, 0x0F, 0x0F, 0x07, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 3
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF8, 0xF8, 0xF8, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF8, 0x3C, 0x1F, 0x07, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFC, 0xFF, 0xE7, 0xE3, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x83, 0xC3, 0xC3, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x07, 0x0F, 0x0F, 0x0F, 0x07, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, // 4
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x07, 0x01, 0x81, 0xC1, 0xC1, 0xE1, 0xF1, 0xE1, 0xE1, 0xC1, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3F, 0x3F, 0x1F, 0x0E, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x1F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xF0, 0xFC, 0xFC, 0xFC, 0xF8, 0xF0, 0xF0, 0xE0, 0xC0, 0xC0, 0x80, 0x80, 0xE0, 0xFF, 0xFF, 0x7F, 0x3F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x07, 0x07, 0x0F, 0x0F, 0x0F, 0x0F, 0x07, 0x07, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 5
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0xF8, 0xF0, 0xF0, 0xE0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF8, 0xFC, 0xFE, 0x7F, 0x0F, 0x01, 0x01, 0x03, 0x83, 0x87, 0xCF, 0xCF, 0xDF, 0x8F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xB8, 0x1C, 0x1E, 0x0E, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFE, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0xC0, 0x80, 0xE0, 0xFF, 0xFF, 0x3F, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x0F, 0x0F, 0x0F, 0x0F, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 6
+ 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x78, 0x38, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1E, 0x1F, 0x07, 0x03, 0x03, 0x01, 0x01, 0x01, 0x81, 0xC1, 0xF1, 0xF9, 0xFD, 0x3F, 0x0F, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0x3F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 7
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFC, 0xFF, 0xFF, 0xE7, 0xC1, 0xC1, 0x81, 0x81, 0x81, 0x81, 0x83, 0xC3, 0xFF, 0xFF, 0x7F, 0x3F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xCF, 0xFF, 0xFF, 0x7F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFE, 0xF8, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xF0, 0xE0, 0xE0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE0, 0xE0, 0xFB, 0x7F, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0F, 0x0F, 0x0F, 0x0F, 0x1F, 0x1F, 0x0F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 8
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0xF8, 0xF8, 0xF8, 0xF0, 0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF8, 0xFE, 0xFF, 0xFF, 0x87, 0x01, 0x01, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0xF8, 0xF0, 0x70, 0x38, 0x3C, 0x1E, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0, 0xF9, 0xFD, 0xFB, 0xF1, 0xF0, 0xE0, 0xC0, 0xC0, 0xE0, 0xFC, 0xFF, 0x7F, 0x1F, 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x07, 0x07, 0x0F, 0x0F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 9
+ 0
+};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultImages.h Tue Jul 23 12:32:26 2019 +0000
@@ -0,0 +1,190 @@
+#define PROGMEM
+
+const uint8_t alarm[] = {
+ 9, 8,
+ 0x06, 0xBB, 0x45, 0x82, 0x9E, 0x92, 0x45, 0xBB, 0x06
+};
+
+const uint8_t antenna[] = {
+ 10, 8,
+ 0x01, 0x03, 0x06, 0x0C, 0xFF, 0xFF, 0x0C, 0x06, 0x03, 0x01
+};
+
+const uint8_t arrowDown[] = {
+ 8, 8,
+ 0x04, 0x0C, 0x1C, 0x3C, 0x3C, 0x1C, 0x0C, 0x04
+};
+
+const uint8_t arrowLeft[] = {
+ 8, 8,
+ 0x00, 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0x00, 0x00
+};
+
+const uint8_t arrowRight[] = {
+ 8, 8,
+ 0x00, 0x00, 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00
+};
+
+const uint8_t arrowUp[] = {
+ 8, 8,
+ 0x20, 0x30, 0x38, 0x3C, 0x3C, 0x38, 0x30, 0x20
+};
+
+const uint8_t battery0[] = {
+ 13, 8,
+ 0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF, 0x3C
+};
+
+const uint8_t battery1[] = {
+ 13, 8,
+ 0xFF, 0x81, 0xBD, 0xBD, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF, 0x3C
+};
+
+const uint8_t battery2[] = {
+ 13, 8,
+ 0xFF, 0x81, 0xBD, 0xBD, 0x81, 0xBD, 0xBD, 0x81, 0x81, 0x81, 0x81, 0xFF, 0x3C
+};
+
+const uint8_t battery3[] = {
+ 13, 8,
+ 0xFF, 0x81, 0xBD, 0xBD, 0x81, 0xBD, 0xBD, 0x81, 0xBD, 0xBD, 0x81, 0xFF, 0x3C
+};
+
+const uint8_t batteryCharging[] = {
+ 13, 8,
+ 0xFF, 0x81, 0x81, 0x81, 0x99, 0xBF, 0xB9, 0xBF, 0x99, 0x81, 0x81, 0xFF, 0x3C
+};
+
+const uint8_t batteryLow[] = {
+ 13, 8,
+ 0xFF, 0x81, 0x81, 0xC3, 0xA5, 0x99, 0x99, 0xA5, 0xC3, 0x81, 0x81, 0xFF, 0x3C
+};
+
+const uint8_t bluetooth[] = {
+ 5, 8,
+ 0x42, 0x24, 0xFF, 0x5A, 0x24
+};
+
+const uint8_t call[] = {
+ 8, 8,
+ 0x0E, 0x1F, 0x3E, 0x70, 0xE5, 0xED, 0xE1, 0x4E
+};
+
+const uint8_t callIn[] = {
+ 8, 8,
+ 0x0E, 0x1F, 0x3E, 0x70, 0xE0, 0xE7, 0xE6, 0x45
+};
+
+const uint8_t callOut[] = {
+ 8, 8,
+ 0x0E, 0x1F, 0x3E, 0x70, 0xE0, 0xE5, 0xE3, 0x47
+};
+
+const uint8_t check[] = {
+ 7, 8,
+ 0x30, 0x70, 0xE0, 0xF0, 0x7C, 0x1F, 0x07
+};
+
+const uint8_t checkboxOff[] PROGMEM = {
+ 8, 8,
+ 0x7E, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x7E
+};
+
+const uint8_t checkboxOn[] PROGMEM = {
+ 8, 8,
+ 0x7E, 0x81, 0x99, 0xB1, 0x99, 0x8D, 0x81, 0x7E
+};
+
+const uint8_t dynamic[] PROGMEM = {
+ 10, 8,
+ 0x3C, 0x24, 0x3C, 0x42, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+const uint8_t dynamicOff[] PROGMEM = {
+ 10, 8,
+ 0x3C, 0x24, 0x3C, 0x42, 0xFF, 0x00, 0x24, 0x18, 0x18, 0x24
+};
+
+const uint8_t dynamicOn[] PROGMEM = {
+ 10, 8,
+ 0x3C, 0x24, 0x3C, 0x42, 0xFF, 0x00, 0x24, 0x99, 0x42, 0x3C
+};
+
+const uint8_t signal1[] PROGMEM = {
+ 11, 8,
+ 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+const uint8_t signal2[] PROGMEM = {
+ 11, 8,
+ 0xC0, 0xC0, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+const uint8_t signal3[] PROGMEM = {
+ 11, 8,
+ 0xC0, 0xC0, 0x00, 0xF0, 0xF0, 0x00, 0xFC, 0xFC, 0x00, 0x00, 0x00
+};
+
+const uint8_t signal4[] PROGMEM = {
+ 11, 8,
+ 0xC0, 0xC0, 0x00, 0xF0, 0xF0, 0x00, 0xFC, 0xFC, 0x00, 0xFF, 0xFF
+};
+
+const uint8_t light[] PROGMEM = {
+ 9, 8,
+ 0x10, 0x92, 0x6C, 0x44, 0x93, 0x44, 0x6C, 0x92, 0x10
+};
+
+const uint8_t melody[] PROGMEM = {
+ 4, 8,
+ 0x40, 0xEC, 0xE6, 0x7F
+};
+
+const uint8_t sms[] PROGMEM = {
+ 10, 8,
+ 0x7E, 0xA5, 0x99, 0x91, 0xA1, 0xA1, 0x91, 0x99, 0xA5, 0x7E
+};
+
+const uint8_t netlevel1[] PROGMEM = {
+ 8, 8,
+ 0x07, 0x03, 0x05, 0x00, 0x00, 0x00, 0xC0, 0xC0
+};
+const uint8_t netlevel2[] PROGMEM = {
+ 8,8,
+ 0x07, 0x03, 0x05, 0xC0, 0xF0, 0x30, 0xD8, 0xD8
+};
+
+const uint8_t netlevel3[] PROGMEM = {
+ 8, 8,
+ 0xE3, 0xF9, 0x3C, 0xCE, 0xF6, 0x37, 0xDB, 0xDB
+};
+
+const uint8_t radioOff[] PROGMEM = {
+ 8, 8,
+ 0x3C, 0x42, 0x81, 0x81, 0x81, 0x81, 0x42, 0x3C
+};
+
+const uint8_t radioOn[] PROGMEM = {
+ 8, 8,
+ 0x3C, 0x42, 0x99, 0xBD, 0xBD, 0x99, 0x42, 0x3C
+};
+
+const uint8_t settings[] PROGMEM = {
+ 8, 8,
+ 0x5A, 0xFF, 0x66, 0xDB, 0xDB, 0x66, 0xFF, 0x5A
+};
+
+const uint8_t mesege [] PROGMEM = {
+ 42, 32,
+ 0xFC, 0xFC, 0xFC, 0x1C, 0x1C, 0x1C, 0x3C, 0x7C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
+ 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
+ 0xFC, 0x7C, 0x3C, 0x1C, 0x1C, 0x1C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC,
+ 0xF8, 0xF0, 0xE0, 0xC1, 0x83, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x83, 0xC1, 0xE0,
+ 0xF0, 0xF8, 0xFC, 0xF8, 0xF0, 0xE1, 0xC3, 0x87, 0x0F, 0x87, 0xC3, 0xE1, 0xF0, 0xF8, 0xFC, 0xF8,
+ 0xF0, 0xE0, 0xC1, 0x83, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x3F,
+ 0x3F, 0x38, 0x38, 0x38, 0x3C, 0x3E, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
+ 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3E,
+ 0x3C, 0x38, 0x38, 0x38, 0x3F, 0x3F, 0x3F, 0x3F
+};
\ No newline at end of file